# A Novel Approach to Multi-Provider Network Slice Selector for 5G and Future Communication Systems
## 5 Proposed Solution
### Structure Specification  
The NSSF DAF is structured around three large blocks or main modules, as shown in Figure 4.  
Figure 3: Proposed NSSF DAF: Network Slice Selection Function Decision-Aid Framework. The _Collector_ module presents a set of components responsible for data acquisition and pre-processing. The characteristics and functionality of these components are detailed below:  
1. _Data Collection_: The component presents a set of methods responsible for obtaining the QoS metrics (e.g., Latency, Jitter, Packet Loss, Reliability, Bandwidth), QoE, and user consumption profile (e.g., VoD 4K, AR/VR, V2X). This component uses passive measurement techniques, using packet analyzers and protocols (sniffers). It can be configured to use active measurements through ICMP requests, collecting information such as Round-Trip Time (RTT), and other metrics. The module offers data consumption routines through publish/subscribe solutions. 2. _Data Cleaning_: This component is responsible for data cleaning, the fixing of reading errors, and dataset structuring. 3. _Validation_: The component responsible for verifying that the set of metrics received satisfies what is expected from a dataset. 4. _Transforming_: The Transforming component has the following three subcomponents: Scaling, Typing, and Encoding. The Scaling subcomponent performs the normalization process with libraries and methods, which facilitates the application of machine learning techniques. The Typing subcomponent makes the necessary data typing conversions (e.g., float to integer, integer to float, string to float). Finally, the Encoding subcomponent performs the necessary transformations in categorical metrics by converting them to numeric classes, in order to include them in the machine learning models. The _Processor_ module presents a set of components prepared to use several optimization techniques, computational intelligence, and stochastic and multi-criteria decision approaches. The characteristics and functionality of these components are detailed as follows:  
1. Fuzzy Logic: The component supports the use of fuzzy logic, its membership functions, fuzzification, and defuzzification methods. The _Collector_ module output allows for component integration transparently. 2. Genetic Algorithms: The component allows the use of genetic algorithms. The _Collector_ module organizes the data, thereby facilitating integration, the definition of generations, and an initial population. It also facilitates the application of multi-objective formulations directly to the dataset. Figure 4: NSSF DAF Structure specification. Machine Learning: The component supports the use of machine learning techniques. Data organization performed by the _Collector_ module facilitates the use of supervised models. It also allows reading non-relational databases, batch files, or data streaming, which allows using unsupervised models. 4. MCDM Methods: The component allows the use of several multi-criteria decision methods. The structuring of datasets facilitates the assembly of decision matrices. The weights of the criteria can be defined directly by the network operator or service provider, and can also be obtained using hybrid approaches with machine learning techniques. Weights can even be mapped directly from the end user's consumption profile. These integrations take place through APIs. The _Decision Maker_ module presents the necessary components needed to integrate the techniques used in the _Processor_ module, with Cloud Computing tools and solutions, especially the network orchestrators. The characteristics and functionality of these components are detailed below:  
1. _Generator SLA_: The component is responsible for generating the SLA that will be used in the creation of on-demand slices (horizontal model), or for forwarding data flows to the already available and pre-configured slices (vertical model). The SLA is assembled from the output of the _Processor_ module and fulfils the requirements of the application in use or the user's consumption profile. 2.