Keywords

1 Introduction

The advances in wireless networking technology offer a great opportunity for wireless connectivity of field devices both in oil and gas and other chemical processing plants. The requirements of a field network include real-time support for mixed traffic, availability, security, reliability and scalability in a harsh industrial environment. These conditions have to be fulfilled by any wireless network in order to operate. Safety, reliability, availability, robustness and performance are of paramount importance in the area of industrial automation. The network cannot be sensitive to interference nor stop operation because of an equipment failure, nor can have high latency in data transmission and ensure that information is not misplaced [1,2,3].

Wireless Sensor Networks are technically a challenging system, requiring expertise from several different areas. Thus, the information concerning important design criteria is often scattered. Additionally, characteristics for the industrial automation applications are usually stricter than the other domains, since the failure of the communication system may lead to loss of production or even lives.

Main advantages of wireless technology are reduced installation time of devices, no need of cabling structure, cost saving projects, infrastructure savings, device configuration flexibility, cost savings in installation, flexibility in changing the existing architectures, possibility of installing sensors in hard-to-access locations and others. Amongst the various challenges which are associated with the use of wireless communication, data security and interference are the most important issues. Data security issues are related to the use of wireless for transportation of vital process information and that requires the incorporation of data encryption and advanced security measures. As far as interference aspects are concerned, the use of license free radio channel for communication is susceptible to interference from other nearby sources operating in the same band. If the ISM for Industrial, Scientific and Medical band is to be used for communication, then it requires network coordinator to continuously assess the channel status to ensure reliable communications. Moreover, in industrial automation environment, data transmission in a wireless network may face interference generated by other electrical equipment, such as walkie-talkies, other wireless communication networks and electrical equipment, moving obstacles (trucks, cranes, etc.) and fixed ones (buildings, pipelines, tanks, etc.). In an attempt to minimize these effects, frequency scattering techniques and mesh or tree topologies are used, in which a message can be transmitted from one node to another with the aid of other nodes, which act as intermediate routers, directing messages to other nodes until it reaches its final destination. This allows the network to get a longer range and to be nearly fault tolerant, because if an intermediate node fails or cannot receive a message, that message could be routed to another node. However, a mesh network also requires careful placement of these intermediate nodes, since they are responsible for doing the forwarding of the data generated by the sensor nodes in the network to the gateway directly or indirectly, through hops. Those intermediate nodes are responsible for meeting the criteria of safety, reliability and robustness of the network and are also of paramount importance in the forwarding of data transmission. They could leave part or all the network dead, if they display any fault [7]. Most solutions to the routers placement solve this problem with optimization algorithms that minimize the number of intermediate router nodes to meet the criteria for coverage, network connectivity and longevity of the network and data fidelity [8, 9].

This work uses an artificial immune systems based procedure, inspired on the human immune system, applied to the described router nodes placement problem. In [5] and [10] the authors report the procedure but the present work stresses the affinity function flexibility in terms of a multiobjective function which enables the inclusion of several objectives in a weighted fashion way. Several cases studies are included in the present work and a particular case study shows an example of modifying the affinity function so that three different paths are guaranteed from each node to the gateway. The algorithms based on immune networks have very desirable characteristics in the solution of this problem, among which we can mention: scalability, self-organization, learning ability and continuous treatment of noisy data [10].

The present work is divided into four sections. Section 2 discusses briefly artificial immune systems. Section 3 presents the application of artificial immune systems to the nodes placement problem and Sect. 4 discusses case studies results and conclusions.

2 Immune Systems Concepts

The immune system is a biological mechanism for identifying and destroying pathogens within a larger organism [13]. Pathogens are agents that cause disease such as bacteria, viruses, fungi, worms, etc. Anything that causes an immune response is known as an antigen. An antigen may be harmless, such as grass pollen, or harmful, such as the flu virus. In other words disease-causing antigens are called pathogens. So the immune system is designed to protect the body from pathogens. In humans, the immune system begins to develop in the embryo. The immune system begins with hematopoietic, (i.e. blood-making from Greek) stem cells. These stem cells differentiate into the major players in the immune system e.g. granulocytes, monocytes, and lymphocytes. These stems cells also differentiate into cells in the blood that are not connected to immune function, such as erythrocytes e.g. red blood cells, and megakaryocytes for blood clotting. Stem cells continue to be produced and differentiate throughout our lifetime. The immune system is usually divided into two categories–innate and adaptive–although these distinctions are not mutually exclusive. The innate subsystem is similar in all individuals of the same species, whereas the adaptive subsystem depends on the experience of each individual i.e. exposure to infectious agents. The innate immune response is able to prevent and control many infections. Nevertheless, many pathogenic microbes have evolved to overcome innate immune defenses, and so to protect ourselves against these infections, we have to call in the more powerful mechanisms of adaptive immunity. Adaptive immunity is normally silent, and responds or adapts to the presence of infectious microbes by becoming active, expanding, and generating potent mechanisms for neutralizing and eliminating the microbes. The components of the adaptive immune subsystem are lymphocytes and their products. The most notable cells of adaptive immunity are lymphocytes. There are two main classes of lymphocytes. B lymphocytes, named so, because they mature in the bone marrow, secrete proteins called antibodies, which bind to and eliminate extracellular microbes. T lymphocytes, which mature in the thymus, and function mainly to combat microbes that have learned to live inside cells where they are inaccessible to antibodies. The normal immune system has to be capable of recognizing virtually any microbe and foreign substance that one might encounter, and the response to each microbe has to be directed against that microbe. The substances that are recognized by these lymphocytes are called antigens. The immune system recognizes and directs responses against a massive number of antigens by generating a large number of lymphocytes, each with a single antigen receptor. Therefore, there are about 1012 lymphocytes in an adult, and it is estimated that these are able to recognize at least 107−109 different antigens [13]. Thus, only a few thousand lymphocytes express identical antigen receptors and recognize the same antigen. The antigen receptors of B cells are membrane-bound antibodies, also called immunoglobulins, or Ig. Antibodies are Y-shaped structures [13]. The tops of the Y recognize the antigen and, in B cells, the tail of the Y anchors the molecule in the plasma membrane. Antibodies are capable of recognizing whole microbes and macromolecules as well as small chemicals. These could be in the circulation e.g. a bacterial toxin, or attached to cells (e.g. a microbial cell wall component. The antigen receptors of T cells are structurally similar to antibodies, but T cell receptors (TCRs) recognize only small peptides that are displayed on specialized peptide-display molecules [13]. Although the immune system is capable of recognizing millions of foreign antigens, it usually does not react against one’s own, i.e. self, antigenic substances. This is because lymphocytes that happen to express receptors for self-antigens are killed or shut off when they recognize these antigens. This phenomenon is called self-tolerance, implying that we tolerate our own antigens and the breakdown of this process yields in autoimmune diseases. When one antibody binds to other material, the lymphocyte carrying it, is stimulated to reproduce by cloning, this is known as Clonal selection principle. Genes coding lymphocytes have a mutation rate above normal, one mutation per cell division, on average, leading to what is known as somatic hypermutation. Clonal selection and hypermutation increases affinity between antibodies and antigens. There are three steps for an Artificial Immune System (AIS). First, find a representation of the components i.e. artificial equivalents to cells and antigens. Second, define affinity functions between components in order to quantify interaction among them. Third, write a set of immune algorithms that control system behavior. Why would a computer scientist get the trouble to study immune systems? Immune systems are massively parallel information processing mechanisms and are incredibly effective examples of distributed systems built from diverse components which are constantly being renewed. So that may inspire better computer security systems, for example, because of their adaptiveness, they can train themselves to react to new threats. Moreover they are error—tolerant, so that small mistakes are not fatal, and also self-protecting.

2.1 Metaphors of the Immune System

The main algorithms that implement the artificial immune systems were developed from metaphors of the immune system: the mechanism of negative selection, the theory of immune network and the clonal selection principle.

The function of the negative selection mechanism is to provide tolerance to self-cells, namely those belonging to the organism. Thus, the immune system gains the ability to detect unknown antigens and not react to the body’s own cells. During the generation of T-cells, which are cells produced in the bone marrow, receptors are generated by a pseudo-random process of genetic arrangement. Later on, they undergo a maturation mechanism in the thymus, called negative selection, in which T cells that react to body proteins are destroyed. Thus, only cells that do not connect to the body proteins can leave the thymus. The T cells, known as mature cells, circulate in the body for immune functions and to protect it against antigens.

The theory of immune system network considers several important aspects like the combination of antibodies with the antigens for the early elimination of the antigens. Each antibody has its own antigenic determinant, called idiotope. In this context, Jerne [14] proposed the Immune Network Theory to describe the activity of lymphocytes in an alternative way. According to Jerne [14], the antibodies and lymphocytes do not act alone, but the immune system keeps a network of B cells for antigen recognition. These cells can stimulate and inhibit each other in various ways, leading to stabilization of the network. Two B cells are connected if they share an affinity above a certain threshold and the strength of this connection is directly proportional to the affinity they share.

The clonal selection principle describes the basic features of an immune response to an antigenic stimulus, and ensures that only cells that recognize the antigen are selected to proliferate. The daughter cells are copies or clones of their parents and are subject to a process of mutation with high rates, called somatic hypermutation. In the clonal selection the removal of daughter cells are performed, and these cells have receptors that respond to the body’s own proteins as well as the most suitable mature cell proliferation, i.e., those with a greater affinity to the antigens [13].

3 Router Nodes Positioning

Router Nodes positioning has been addressed in the literature by several researchers. Cannons et al. [4] proposed an algorithm for positioning router nodes and determine which router will relay the information from each sensor. Gersho and Gray [6] proposed one to promote the reliability of wireless sensors communication network, minimizing the average probability of sensor transmission error. Shi et al. [11] propo-sed a positioning algorithm of multi-router nodes to minimize energy consumption for data transmission in mobile ad hoc network (MANET - Mobile Ad Hoc Network). The problem was modeled as an optimization clustering problem. The suggested algorithm to solve the problem uses heuristic methods based on the k-means algorithm. More recently Lanza-Gutiérrez and Pulido [12] proposed an study on how to efficiently deploy relay nodes into previously established static Wireless Sensor Netwoks, with the purpose of optimizing two relevant factors for the industry: average energy consumption of the sensors and average for router nodes placement based on genetic algorithm which minimizes the number of nodes required for network.

The use of wireless sensor network in industrial automation is still a matter of concern with respect to the data reliability and security by users. Thus, an appropriate node positioning is of paramount importance for the wireless network to meet safety, reliability and efficiency criteria.

Positioning of nodes is a difficult task, because one should take into account all the obstacles and interference present in an industrial environment. The gateway, as well as the sensors generally have a fixed position near the control room. But the placement of router nodes, which are responsible for routing the data, generated by the sensors network to the gateway directly or indirectly, is determined by the characteristics of the network.

The main characteristics of wireless sensor networks for industrial automation differ from traditional ones by the following aspects: The maximum number of sensors in a traditional wireless network is on the order of millions while automation wireless networks is on the order of tens to hundreds; The network reliability and latency are essential and fundamental factors for network wireless automation. To determine the number of router nodes and define the position in the network, some important aspects in industrial automation should be considered. It should be guaranteed:

  1. (1)

    redundant paths so that the system be node fault-tolerant;

  2. (2)

    full connectivity between nodes, both sensors and routers, so that each node of the network can be connected to all the others exploring the collaborative role of routers;

  3. (3)

    node energy efficiency such that no node is overwhelmed with many relaying information from the sensors;

  4. (4)

    low-latency system for better efficiency in response time;

  5. (5)

    combined attributes for industrial processes to avoid accidents due to, for example, high monitored process temperature;

  6. (6)

    self-organization ability, i.e. the ability of the network to reorganize the retransmission of data paths when a new sensor is added to the network or when a sensor stops working due to lack of power or a problem in wireless communication channel.

All these factors must be met, always taking into consideration the prime factor security: the fault tolerance. In the end of the router nodes placement, the network of wireless sensors applied to industrial automation should be robust, reliable, scalable and self-organizing.

The positioning of router nodes in industrial wireless sensor networks is a com-plex and critical task to the network operation. It is through the final position of routers that one can determine how reliable, safe, affordable and robust the network is.

In the application of immune systems to router nodes positioning reported in this work, B cells that make up the immune network will be composed by a set of sensor nodes and a set of router nodes. The sensor nodes are located in places where the plant instrumentation is required. These nodes have fixed coordinates, i.e. they cannot be moved. For security to be guaranteed it is necessary to have redundant paths between these nodes and the gateway. The set of router nodes will be added to allow redundant paths. The position of these nodes will be changed during the process of obtaining the final network. The stimulation of the B cells, corresponding to the set of routers, is defined by the affinity degree among B cells in the training of the network. In this work, the role of the antigen is viewed more broadly as the entity that stimulates B cells. Thus, the function of the antigen takes into consideration possible missing paths to critical sensors, the number of times that a router is used and its proximity to sensors. The modeling of B cells affinity is the weighted sum of the three criteria that the positioning of each router will answer. The criteria are: fault degree of each router, number of times each router is used depending on the path and number of sensor nodes neighboring to each router.

3.1 The Router Nodes Algorithm

In the proposed algorithm, process dynamics can be divided into two processes: network pruning and cloning, and node mutation of the network routers.

In the pruning process, np router nodes that during a certain time failed to become useful to the network will be removed from it. The cloning process is responsible for generating nc clones of router nodes that were over stimulated. The clones may suffer mutations of two kinds:

  1. (i)

    Hypermutation – for positioning new elements in the network which are inversely proportional to the degree of stimulation of the router node selected;

  2. (ii)

    Net Mutation – for positioning the new information into the network in order to assure the new clones are neighbors of the selected clone [16].

After the inclusion of the new router nodes, a stop condition is performed. If the condition is not met, all routers undergo an action of repulsive forces, generated by obstacles and routers for other nodes, followed by attractive forces created by critical sensor nodes. Those critical nodes are the ones that do not meet the minimum number of paths necessary to reach the gateway. The actions of repelling potential fields have the function of driving them away from obstacles, to allow direct line of sight for the router network nodes to increase the reliability of transmission and also increase the distance among the routers to increase network coverage. On the other hand, the attractive potential fields attract routers to critical sensors, easing the formation of redundant paths among sensors and the gateway. After the action of potential fields, from the new positioning of routers, a new network is established and the procedure continues until the stopping criterion is met.

The algorithm proposed in this work deals with a procedure based on artificial immune networks, which solves the problem of positioning the router nodes so that every sensor device is able to communicate with the gateway directly and or indirectly by redundant paths.

Figure 1 shows the main modules of the algorithm. The first module is called immune network, and the second, is called potential fields (i.e. positioning module) containing elements used in positioning sensor networks using potential fields [15].

Fig. 1.
figure 1

The proposed algorithm.

The immune network module performs an algorithm that can be described by the following steps:

  • Creation: Creation of an initial set of B cells to form a network.

  • Evaluation: Determination of the B cells affinity to calculate their stimulation.

  • Pruning: Performs the resource management and remove cells that are without resources from the network.

  • Selection: Selects the most stimulated B cells to be cloned.

  • Cloning: Generates a set of clones from the most stimulated B cells.

  • Mutation: Does the mutation of cloned cells.

In the stage of creation, an initial set of routers is randomly generated to initiate the process of obtaining the network, and the user can specify how many routers to place it initially.

In the evaluation phase, a network which is represented by a graph is formed with sensor nodes and router nodes. From this graph, values of several variables are obtained that will be used to calculate the affinity. Examples of such variables are the number of paths that exist between each sensor and the gateway, the number of times that a router is used on the formed paths, etc.

It should be stressed that the affinity value is calculated for each router and comprises three parts. The first part provides the degree of fault of each network router - this affinity is the most important of all. It defines the value or importance each router has in the network configuration. This is done as follows: a router is removed from the network, and the number of paths that remain active for the sensors send information for the gateway is evaluated. If the number of active paths remaining after the node removal is small, the router node needs another nearby router to reduce their degree of fault.

Furthermore, if the node suffers battery discharge or hardware problems, other paths to relay information should be guaranteed until the problem is solved.

The second part relates to the number of times that each router is used in paths that relay the information from the sensors to the gateway. The greater the number of times it is used, more important is that router.

The third part relates the number of sensor nodes neighboring to each router – one can say that the more sensor nodes neighbors, the greater the likelihood that it will become part of the way that the sensor needs to transmit your message to the gateway.

4 Examples and Conclusions

Case studies were simulated in a 1 × 1 square scenario. The cloning procedure considered that only the router with higher affinity would be selected to produce three clones in each generation. For each case study 10 experiments were carried out that demonstrated the algorithm’s ability to create at least two redundant paths to get the information from any sensor to the gateway.

Two set of results will be presented. The first set does not consider obstacles which are treated in the second set.

4.1 Case Studies with No Obstacles

Two configurations were considered to demonstrate the functionality of the proposed algorithm. The configurations used in the simulation were motivated by oil & gas refinery automation applications.

The first one called PosA consists of five network nodes, where node 1 is the gateway and nodes 2, 3, 4 and 5 are fixed sensors. The gateway has direct line of sight with all the network nodes as shown in Fig. 2.

Fig. 2.
figure 2

Sensors and gateway for PosA configuration. Node 1 is the gateway and nodes 2 to 5 are the sensors.

The second one (PosB) considers a network with nine nodes, where node one is the gateway and the others are fixed sensors. As in configuration PosA, PosB has direct line of sight with all the network nodes as shown in Fig. 3. For both configurations it will be considered that there is no connectivity among them, i.e. the distance between them will be greater than their operating range.

Fig. 3.
figure 3

Sensors and gateway for PosB configuration. Node 1 is the gateway and nodes 2 to 9 are the sensors.

For the case studies simulations considered, the goal is to get any two paths for each sensor to transmit the monitored sensor data to the gateway node in the case study 1 and three for the case study 2. The operating range is 0.2, and 0,1 for cases studies 1 and 2 respectively i.e. for both configurations there is no connectivity between any sensor and the gateway.

Table 1 describes the parameters used in the case study 1. After completion of ten experiments, the best network configuration can be seen in Fig. 4, and the consolidations of the tests are shown in Table 2.

Table 1. Case study 1. PosA configuration parameters.
Fig. 4.
figure 4

Best router nodes positioning for case study 1 in PosA configuration. Node 1 is the gateway, nodes 2 to 5 are the sensors, and nodes 6 to 13 are the router nodes.

Table 2. Network performance for case study 1. PosA configuration.

Figure 4 also shows that one of the paths from sensor node 3 to the gateway shows three jumps (3-7-8-1) i.e. the information had to be relayed by two routers to reach the gateway node. Regarding the degree of fault, all eight routers have 20% degree of fault tolerance. This means that 80% of the paths from the sensors to the gateway continue to exist even after the removal of a node. With respect to the maximum number of routers used in terms of paths, the router node 8 is used twice in the paths 3-8-1 and 3-7-8-1. Consequently, this router will have a greater battery consumption than the others, which could make it stop working and be disconnected from the network. But even if that happens, there will still be a path (3-7-10-1) for node 3 to communicate to the gateway.

Case study 2 considers configuration PosB for the sensors and gateway. Table 3 shows the parameters used in the case study 2 simulations. The goal now is to assure at least three paths for each sensor and gateway, but now the affinity criteria consider fault degree, number of times a router is used and number of neighbor sensors. After ten experiments the best network configuration is shown in Fig. 5 and the network performance is seen in Table 4. Table 4 indicates that even using a low number of initial routers the algorithm was able to reach a positioning result meeting the goals and avoided again critical nodes.

Table 3. Case study 2. PosB configuration parameters.
Fig. 5.
figure 5

Best router nodes positioning for case study 2 in PosB configuration. Node 1 is the gateway, nodes 2 to 9 are the sensors, and nodes 9 onwards are the router nodes.

Table 4. Network performance for case study 2. PosB configuration.

Figure 5 also shows that nodes 3,5, 7 and 9 in the paths 3-48-35-41-75-56-80-1, 5-26-11-34-65-85-71-1, 5-14-17-45-55-53-72-1, 7-25-23-37-67-84-69-1, 7-10-30-18-81-79-61-1, 9-22-27-46-44-66-89-1 and 9-13-33-42-68-29-80-1, features seven hops to the gateway. That means that the information sent by these devices will be delayed when received by the gateway node, since it will need to be relayed through six intermediate nodes. Regarding to the degree of fault, the intermediate nodes 35 and 41 has 19% degree of fault, and all the other routers have an index less than 19%. Regarding to the maximum number of routers used in terms of paths, router nodes 89 is used four times in the paths (2-28-68-29-89-1, 2-52-39-64-89-1, 9-22-27-46-44-66-89-1 e 8-36-78-24-89-1). As far as the number of sensors to neighboring routers is concerned, none of the 89 routers had over one neighbor sensor, indicating that the power consumption of the devices will be the same, increasing the life time of the network devices.

4.2 Case Studies with Obstacles

Two configurations with obstacles were considered to illustrate the proposed router nodes positioning algorithm in environments with obstacles.

The first configuration (PosC) comprises two circular obstacles with a radius of 0.1, and five nodes, in which node 1 is the gateway and the others are sensor nodes. Initially, the gateway has not direct line of sight with sensor nodes 3 and 5 and is not connected, i.e. out of range, to any of the network nodes, as depicted in Fig. 6.

Fig. 6.
figure 6

Sensors and gateway for PosC configuration. Node 1 is the gateway and nodes 2 to 5 are the sensors.

The second configuration (PosD) has eight obstacles: three circular ones have radius of 0.05, another circular one has radius 0.15 and four rectangular obstacles with different sizes. Besides, the gateway is node 1 and nodes 2 to 8 are the seven sensor nodes. Initially, the gateway has not direct line of sight to any of the sensor nodes and is not connected to any network node as it is out range to the other nodes. Moreover, sensor nodes have also not a direct line of sight with each other and are also not connected as they are out of range with each other too. Figure 7 shows the PosD configuration.

Fig. 7.
figure 7

Sensors and gateway for PosD configuration. Node 1 is the gateway and nodes 2 to 8 are the sensors.

In this section, case studies 3 and 4 are considered using the configurations PosC and PosD.

For case study 3, the network configuration is cross shaped, the operating range of the network nodes is 0.2 and the positioning procedure lead to two disjoint paths for the sensors send data to the gateway.

Case study 4 uses configuration PosD and considers the same operating range as in the case study 1, 0.2, and three disjoint paths are required.

Tables 5 and 7 show the used parameters for case studies 3 and 4 respectively.

Table 5. Case study 3. PosC configuration parameters.
Table 6. Network performance for case study 3. PosC configuration.
Table 7. Case study 4. PosD configuration parameters.

Figure 8 shows the best configuration obtained from the 10 experiments. Table 6 shows the network performance for case study 3.

Fig. 8.
figure 8

Best router nodes positioning for case study 3 in PosC configuration. Node 1 is the gateway, nodes 2 to 5 are the sensors, and nodes 6 to 20 are the router nodes.

It can be seen in Fig. 8 that the sensor nodes 3 and 5 in the paths 3-16-17-20-1, 3-19-7-10-1, 5-13-11-18-1 and 5-12-14-15-1 show four jumps to the gateway. This means the data sent by these devices suffer a delay when received by the gateway, since it will need to be relayed through three intermediate nodes. With respect to the degree of fault, the intermediate nodes 7, 10, 11, 12, 13, 14, 16, 17 and 19 have a 30% degree of fault, and the other router nodes have an index lower than 30%. So 70% of the paths from the sensors to the gateway, continue to exist even after the removal of a node.

Figure 9 shows the best configuration out of ten experiments for case study 4 and Table 8 shows the network performance for case study 4.

Fig. 9.
figure 9

Best router nodes positioning for case study 4 in PosD configuration. Node 1 is the gateway, nodes 2 to 8 are the sensors, and nodes 9 to 63 are the router nodes.

Table 8. Network performance for case study 4. PosD configuration.

Figure 9 indicates that for sensor nodes 3 and 6, the paths 3-20-22-24-7-40-63-53-36-1, 3-50-49-61-4-52-15-56-39-1 and 6-58-61-4-60-31-15-37-26-1 show nine hops to the gateway. This means that the data sent by these devices suffer a delay in the gateway, since it will need to be relayed by eight intermediate nodes. With respect to the degree of fault, the router node 32 have 21% degree of fault, and the other router nodes have an index lower than 21%. This means that 79% of the paths from the sensors are still present even after a node removal.

This work proposed a positioning algorithm for router nodes in wireless network using immune systems techniques. It should be stressed that the affinity function, which acts as an objective function, is made flexible enough to incorporate several objectives in a weighted fashion. The weights as well as the criteria could be combined so that the resulted wireless sensor network can have different characteristics meeting a group of desired criteria for different solutions and environments.

The procedure creates redundant paths to the data collected by the sensors to be sent to the gateway by any two or more paths, meeting the criteria of degree of failure, the number of retransmission by routers and number of sensors to neighboring routers. In other words the method allows each criterion to be enabled at a time or even to be combined with adjustable weights. The affinity function, which works as an objective function, is multi-objective, so several other objectives could be jointly considered.