Optimization of the Coverage and Accuracy of an Indoor Positioning System with a Variable Number of Sensors

This paper focuses on optimal sensor deployment for indoor localization with a multi-objective evolutionary algorithm. Our goal is to obtain an algorithm to deploy sensors taking the number of sensors, accuracy and coverage into account. Contrary to most works in the literature, we consider the presence of obstacles in the region of interest (ROI) that can cause occlusions between the target and some sensors. In addition, we aim to obtain all of the Pareto optimal solutions regarding the number of sensors, coverage and accuracy. To deal with a variable number of sensors, we add speciation and structural mutations to the well-known non-dominated sorting genetic algorithm (NSGA-II). Speciation allows one to keep the evolution of sensor sets under control and to apply genetic operators to them so that they compete with other sets of the same size. We show some case studies of the sensor placement of an infrared range-difference indoor positioning system with a fairly complex model of the error of the measurements. The results obtained by our algorithm are compared to sensor placement patterns obtained with random deployment to highlight the relevance of using such a deployment algorithm.


Introduction
Sensor placement is an important task in the design of indoor positioning systems, since the amount of sensors and their location affect the accuracy and the cost of the whole system. Among available methods for estimating the position of a target, range-based localization systems use anchor nodes and measurements that can be converted into distances or distance differences; e.g., time of arrival (TOA), time-difference of arrival (TDOA), received signal strength (RSS), etc. Once we have obtained the information about the distances between the target and the anchor nodes, we can perform trilateration or multilateration to estimate the actual position of the target. The reader can find a comprehensive review about positioning techniques and technologies in [1]. The methods that we propose in this paper can be applied to any positioning system based on the range-difference of arrival (RDOA). It does not matter if the target is an emitter or a receiver; however, we consider that the target is an emitter and that the anchors are sensors. Henceforth, we refer to anchors and sensors as the same thing.
The major contributions to the accuracy of an RDOA-based system are the quality of the measurements, the target-anchor geometry and the estimation algorithm. We assume that we will use an efficient estimator, i.e., the estimator attains the Cramér-Rao lower bound (CRLB), for computing Additionally, they consider the use of heterogeneous sensors and the placement of sensors in an area where there are other fixed sensors. However, they minimize a single objective, such as the volume of the error ellipsoid, which does not provide information about the shape of the error ellipsoids. Their approach deals only with a fixed number of sensors.
Recent approaches solve the sensor placement problem with sensor selection and convex optimization. Joshi and Boyd [22] propose a heuristic for selecting a subset of sensors out of a higher number of candidates for linear measurement models. Chepuri and Leus [23] deal with the same problem considering non-linear measurement models with independent observations. They use the additive property of FIM for independent measurements and place sensors so that a predefined accuracy is achieved with a given probability. On the contrary, we do not need to choose a desired accuracy, nor do we need to constrain the position of the sensors to a grid. Another approach involves leveraging the submodular property of some performance metrics [24]. The advantage of optimizing a submodular function is the availability of simple algorithms that are near-optimal. Shamaiah et al. [25] use a greedy algorithm for solving the sensor placement problem in a linear dynamical system. Their work shows that the greedy algorithm outperforms convex relaxation in both accuracy and computation time. As for non-linear models, Rao et al. [26] linearize the range-only problem and use a greedy algorithm to optimize two submodular functions.
After reviewing the state-of-the-art of sensor placement for localization, we have reached the conclusion that we are bound to resort to heuristic methods when deploying sensors in a complex scenario, considering complex functions for the measurement error model or focusing on a whole ROI instead of a single target. In this paper, we apply multi-objective evolutionary optimization to obtain the optimum sensor placement. Inspired by the work of Chaudhry et al. [27], we have adapted the well-known non-dominated sorting genetic algorithm (NSGA-II) [28] to solve the sensor placement problem for target localization. This paper continues our previous works [29,30], where we used a standard multi-objective genetic algorithm to place sensors considering multiple criteria. In [29], we placed a fixed number of sensors for localization with range-difference measurements while considering several criteria related to accuracy, whereas in [30], we considered a variable amount of sensors, as well as non-line of sight (NLOS) conditions. This contribution introduces the problems that appear when applying the algorithm without modifications considering a variable number of sensors. We opt to modify the original NSGA-II adding speciation and evolving subpopulations according to the size of different sensor sets. Results show a considerable improvement over standard NSGA-II. Overall, we can summarize the global advantages of our work compared to those works in optimum sensor placement for target localization: • The multi-objective optimization of different metrics from the CRLB: Most of the related work deals with the determinant of the FIM. This metric is related to the volume of the error ellipsoid. However, an elongated ellipsoid may result in a small volume, whereas the error in the major axis is high.

•
We do not constrain the position of the sensors.

•
The consideration of obstacles that can cause occlusions to NLOS sensors: we must therefore maximize the coverage of the ROI.

•
The number of sensors can vary within an interval. Searching solutions with high accuracy, but a low amount of sensors is also an objective.

•
Since we optimize conflicting objectives, we obtain a set of Pareto optimal solutions. We find this to be the greatest advantage of multi-objective optimization, since we obtain every optimal solution and know the values of the objectives. This information can be used by the resource manager according to the current needs and availability. To the best of our knowledge, there are not any other researchers that address the sensor placement problem for localization this way. A comprehensive review of multi-objective optimization applied to sensor networks was recently published [31]. Most of the works referenced in the survey focus on sensor deployment for optimizing coverage and energy management, and those that deal with target tracking just address the sensor scheduling problem [32,33].
The rest of the paper is organized as follows. Section 2 gives a quick overview of both the positioning problem with range-difference measurements, in Section 2.1, and the objectives under consideration for sensor placement, in Section 2.2. We describe our algorithm in Section 3 and present some results in Section 4. Finally, Section 5 provides the conclusion and some remarks for future work.

Problem Statement
This section starts with a short overview of RDOA position estimation, which ends focusing on the uncertainty of the localization error. The reader is referred to [34] for the basic mathematics of position estimation. After introducing the localization problem, we describe our approach for sensor placement. The objective functions under consideration are presented at the end of the section.

Position Estimation
Let us assume that we have K range measurements from which we can pick K − 1 sensors and subtract their measurement values from the value of the remaining sensor, which acts as a reference. It is irrelevant which sensor is picked as the reference since we take into account the mathematical correlation of the measurements appropriately and can carry out outlier detection at the level of the undifferenced observations [35]. The K − 1 range-difference measurementsd i,r can be expressed as a function of the position of the target x T : Variable x i is the coordinate vector of sensor i, where i takes values from one to K − 1. The subscript r denotes the reference sensor. Operator ||·|| represents the 2 norm, and i,r is the distance difference measurement error of the i and reference sensors. Assuming normal distribution, the range-difference measurement is modeled asd i,r ∼ N d i,r , σ 2 i + σ 2 r . The mean d i,r is the true range-difference, and the variance is the sum of the variances of the distance measurement between sensor i and the target, denoted as σ 2 i , and the reference sensor and the target, denoted as σ 2 r . Problem (1) can be solved using iterative or closed-form methods; the most popular ones are reviewed in [36].
As far as the uncertainty of the estimation is concerned, the minimum variance that an unbiased estimator can attain is given by the CRLB, calculated with the inverse of the FIM [37], which is denoted as I. The expression of the CRLB for the RDOA problem is [38]: where the superscript represents the transpose operator. The matrix G is formed by the differences of the partial derivatives of the norms from Equation (1), i.e., differences of unit vectors. In the 2D case, G takes the form: Finally, having a common reference for all of the RDOA measurements implies that the reference error is present in every RDOA measurement; thus, the covariance matrix Σ is fully populated: The following subsection presents the objectives considered for optimum sensor placement.

Sensor Placement
In order to obtain an optimum sensor deployment scheme, we focus on three design criteria, namely the number of sensors, accuracy and coverage. We aim to develop an algorithm that automatically finds optimal deployment patterns that minimize the number of sensors in use and the uncertainty of the position estimation while maximizing the coverage. There is obviously a trade-off among these criteria, since the accuracy and coverage improve as long as the number of sensors increases. Different accuracy measures are also in conflict with each other. Thus, we do not obtain a single optimum solution, but a set of optimal solutions, the so-called Pareto front (PF). Selecting one of these Pareto-optimal solutions involves the application of high-level criteria. The advantage of finding the Pareto front of the sensor deployment problem is the fact that the resource manager knows every possible solution; therefore, he can select one of them according to the current needs. To summarize, we will use the algorithm presented in Section 3 to solve a multi-objective optimization problem. The objectives under consideration are described in this section. The decision variables are the coordinates of the sensors. The amount of decision variables changes according to the number of sensors. Since the sensors cannot be deployed out of the ROI or within obstacles, our constraints are these boundaries. The last constraint is the amount of sensors, which is given by two values representing the minimum and the maximum number. We detail the actual parameters of the problem at the beginning of each example of Section 4.

Accuracy Objectives
We do not focus on a particular estimator for solving Problem (1), but we assume that an efficient estimator that attains CRLB will be used. A sensor set that obtains a low CRLB usually obtains a low MSE of the estimate of the target position as well [23]. Several scalar metrics of the CRLB can be obtained [39], and each one of them has a different geometric interpretation related to the error ellipsoid. In previous work [29], we have placed a fixed number of sensors considering some of these performance measures at the same time instead of focusing on a single metric. This approach allows one to have a better knowledge of the estimated position. If we only minimize the trace of the CRLB, which means minimizing the MSE, we cannot know anything about the shape of the error ellipsoid. However, we can combine the trace with another metric related to the circularity of the ellipse. Therefore, we avoid obtaining an estimate of the position with an elongated ellipse while keeping the MSE to a minimum. This can be achieved with a multi-objective optimization of the following functions: The eigenvalues of a covariance matrix are proportional to the length of the axes of the ellipsoid. Equation (5) is equivalent to the trace of I −1 , which is the MSE. Dividing the maximum eigenvalue by the minimum provides a measure of the circularity; see Equation (6). The goal is to keep f circ as close to one as possible, without incrementing the value given by f MSE .
After defining the ROI where the localization of the target takes place, we select P test points as candidates for the true localization of the target. A regular square or cubic grid is considered for obtaining these points. After obtaining the P evaluations of the performance measures, we need a scalar value related to the evaluation of the metric for the whole region. According to the requirements of the resource manager, it could be interesting to focus on the worst case or on the average uncertainty of the region: The function f i could be any of Equations (5) and (6). The weights w i take real values between zero and one to vary the priority given to different zones.

Coverage Objective
The indoor positioning system should be able to provide the localization of a target in any part of the ROI. When estimating a 2D position with RDOA, it is necessary to acquire at least two distance-difference measurements that provide two intersecting hyperbolae. Thus, we need at least three distance measurements to perform localization. The target must therefore be within the scope of at least three sensors, and when this condition is satisfied, the target is considered to be three-covered. To ensure a high degree of coverage for localization, we need to optimize the k-coverage of the ROI, where k = 3 in 2D localization and k = 4 in a 3D scenario. We consider that a point of the ROI is covered by a sensor if the point has an LOS connection with the sensor, and we denote with N k the number of points of the grid that are k-covered. Maximizing the division of this number by the total amount of test points P increases the percentage of the ROI that is k-covered:

Proposed Algorithm
At the beginning of this section, we describe the problems that we have encountered when applying NSGA-II to the sensor placement problem. Then, we introduce and justify the modifications that we propose for NSGA-II. We have used the DEAP framework available for Python [40] to implement an evolutionary algorithm based on NSGA-II and to obtain the results that we present in Section 4.
NSGA-II starts ranking the population and assigning the crowding distance to the individuals. The algorithm compares the values that the individuals achieve after evaluating the objectives. An individual dominates another individual if all of the evaluated objectives of the former are better than those of the latter. Individuals that are not dominated by any other individual belong to the first front, which is called the PF. Individuals that are only dominated by those individuals of the PF are assigned to the second front, and so on. Once the population is ranked, the crowding distance is computed for each individual of the same front. The crowding distance is an estimation of the perimeter of the cuboid formed by an individual and its immediate neighbors of the front in the objective space. Among the individuals of the same front, NSGA-II prefers those with a higher crowding distance, so as to keep diversity within the population. After the assignation of non-dominance and crowding distance, the algorithm continues with the usual steps of a genetic algorithm (GA), namely, selection, crossover and mutation. When selecting the parents, the individuals compete in a tournament selection.
The algorithm selects the individual of the lowest front. In case they belong to the same front, the individual whose crowding distance has a higher value is preferred. Crossover and mutation operators create a new offspring population, which is merged with the original population. Finally, this bigger population is reduced to the size of the original population after reassigning non-dominance and crowding distance. The reader can go deeper into NSGA-II through the aforementioned work [28].
In [29], we used the algorithm out-of-the-box as it is implemented in MATLAB for deploying a fixed number of anchor nodes. The obtained results were satisfactory; however, when applying the algorithm for deploying a variable number of anchor nodes, we do not obtain a full PF. We should be able to obtain the same solutions that we would get running the algorithm for different fixed numbers of anchor nodes independently. Of course, the algorithm must discard those solutions that achieve a lower accuracy even though their number of sensors is higher. After running NSGA-II for deploying three to eight sensors in a regular square, the obtained solutions are biased towards the lowest number a sensors. Figure 1 is useful for explaining this tendency. The graph shows the PFs for different number of sensors after optimizing the MSE and the spread of the error ellipsoids. The solutions have been obtained with independent runs of NSGA-II varying the number of sensors. Since each PF has the same number of points, it can be seen that the crowding distance of solutions with three sensors will be higher. The tournament selection of NSGA-II uses the crowding distance as a mechanism to keep the variety of the individuals within the population. It is well known that for many-objective optimization, the solution's convergence of NSGA-II is usually biased, and some researchers have proposed some mechanisms for diversity management [41,42]. Among those mechanisms, evolving multiple subpopulations independently allows one to keep diversity and improves the performance of the evolutionary algorithm [43]; this process is known as speciation or niching. After analyzing Figure 1, it is evident that there is a wide gap in the fitness landscape according to the number of sensors. Taking this issue into account, it seems to be a good idea to consider that those topologies with the same number of sensors belong to the same specie. Additionally, we use the coordinates of the anchors with real numbers as chromosomes; hence, crossover operations between individuals with different number of sensors become cumbersome, and that is another reason for speciation. We also have the benefit of being able to generate new topologies using structural mutation and migration, so that a topology formed after adding or removing a sensor competes with other topologies of the same number of sensors. We took this idea from [27], where the authors deploy a wireless sensor network optimizing coverage, connectivity and energy. However, they do not focus on accuracy. Figure 2 provides a general overview of the proposed GA. The algorithm starts creating S subpopulations SP k with the same size S p . The index k of the subpopulations takes values in the range [1, S]. The minimum and maximum number of sensors are constant and belong to SP 1 and SP S , respectively. The individuals of SP 2 have exactly one more sensor than SP 1 , and so on. The independent evolution of species also allows one to parallelize the creation and evolution processes. To summarize, the proposed GA is a basic NSGA-II where the population is split by the number of sensors. The subpopulations evolve concurrently, and it is possible that the amount of sensors varies due to the mutation operator. A structural mutation involves the addition or removal of a sensor. In case this happens to an individual of SP k , a migration process moves the individual to SP k+1 if addition or to SP k−1 when a sensor is removed. Each subpopulation undergoes four states during an iteration of the GA: • SP k : initial population. Population size: S p . • SP * k : evolved population, the initial population and its offspring. It can contain individuals with different number of sensors. Population size: 2S p .
• SP * * k : evolved population without individuals with different numbers of sensors. Population size varies among subpopulations.

•
Trimmed SP * * k : best individuals of SP * * k according to NSGA-II selection; i.e., non-dominance rank and crowding distance. It becomes the initial population in the next GA iteration. The size of the population is S p .
We only evaluate the objectives, and assign ranks and crowding distances, of the individuals after creating the initial population and at the beginning of the trimming step. Once the algorithm has iterated over G generations, the resulting subpopulations are merged, and the algorithm returns the PF. We do not consider the number of sensors as an objective during the GA iterations. However, after merging all of the subpopulations, we perform another NSGA-II selection operation, including the number of sensors as a function to be minimized. This allows one to discard those solutions that achieve lower accuracy and coverage with more sensors; since they can be dominated by some individuals of a species with a lower index.
Finally, we describe the genetic operators that we use to create the offspring population. The remaining aspects of the GA are common or should have already been clarified. Since the beginning of the evolution step and just before the migration process, we apply a sequence of four genetic operators to the individuals of each subpopulation: • Selection: tournament selection of two individuals. It selects S p individuals, which will be the parents of the offspring subpopulation. Two individuals are picked randomly among the initial subpopulation. The method checks first the non-dominance rank of each individual and selects the best one; in case they belong to the same front, it chooses the one with the higher crowding distance. • Crossover: blend crossover. For each consecutive pair of two parents (p i and p i+1 ) of the list given by the previous step, there is an r x chance of generating two new individuals (c i and c i+1 ) that replace the parents; otherwise, they remain unchanged. Equation (10) gives the new individuals: In our case, c and p are the coordinates of each sensor of the individual in a consecutive array. The variable α is a vector of random elements with the same length of p, and it takes random values in the range [−1, 2]. The operator • is the Hadamard (element-wise) product. The offspring can therefore be in the expanded cuboid formed by the parents. In case any sensor falls into any obstacle, the algorithm sends them to the nearer corner, so that they cover a bigger space without altering their position too much.
• Mutation: Gaussian mutation. There is an r m chance that an individual undergoes mutation. If mutated, a random variable v ∼ (µ m , σ m ) is added to each gene of the individual; i.e., to a coordinate. We perform again the same procedure if the sensor falls into an obstacle.

•
Structural mutation: at a given chance r s , a sensor can be added to or removed from the individual. If the individual belongs to the first or last subpopulation, we can only add or delete a sensor, respectively; otherwise, the operation is randomly selected. When deleting, we compute the number of sensors that are LOS with each other and delete the sensor with the higher value. When there are two or more sensors with the same number of LOS sensors, we compute the sum of the distance from each one of these sensors to its LOS neighbors. The sensor with the lower value is then removed. The sensor that is nearer to the others should be the sensor that adds less information, since very close sensors result in almost overlapping hyperboloids. This deletion mutation allows one to obtain a sensor placement scheme with less sensors without sacrificing a good deal of accuracy and coverage. On the other hand, when adding a new sensor, we compute the k-coverage level for each grid point; as defined in Section 2.2. We place the sensor in the point of the grid with the lowest k-coverage level; in case two or more grid points share the same value, we choose the one with the higher sum of the distances from the grid point to its LOS sensors.

Results
We use the distance measurement model of an infrared system to get the variances of Equation (4). As shown in Figure 3a, the emitter moves along the xy-plane, while the height between emitter and sensor is constant. The distance error is a function of the distance between emitter and sensor d = d 2 xy + 2.15 2 , as well as the angle of incidence φ = atan d xy 2.15 . We will not repeat the other constant parameters that model the system, which can be found in the works that describe it [44,45]. Finally, Figure 3b shows the evolution of the standard deviation of the distance measurement error σ d versus the distance in the xy-plane d xy . Since we know the height of the emitter, we perform 2D localization in the horizontal plane. We use the same probabilities for the genetic operators during the simulations that appear in the following subsections. Table 1 shows these values. After each test, we provide the average execution time of each iteration of the algorithm. The code has been run on an Intel R Core TM i7-4712MQ mobile processor with 8 GB RAM DDR3 1333 MHz (MSI CX61 2PC-1215XES, New Taipei City, Taiwan).
Putting it all together, we define a model of the ROI and a grid of points, which are the candidates for the location of the target. Our approach evaluates the objectives using these points as the position of the target, and then, it obtains a metric related to the whole area (e.g., the average accuracy). The algorithm starts generating a random population, sets of sensors placed in the ROI, and evaluating the objective functions for each individual. To compute the accuracy metrics, which are based on CRLB, we use the infrared model to obtain the covariance of the distance measurements and get the value of Equation (2). After evaluating the population, the algorithm starts iterating until a given number of generations is reached. Finally, it returns the PF.

LOS Sensors
These results show the Pareto front for a sensor placement case when there is always an LOS path between the emitter and the sensors. It is the same case studied in [29] without fixing the number of sensors to a scalar constant. We consider six subpopulations, and the amount of sensors varies in the range of three to eight. Each subpopulation contains 100 individuals. The ROI is a 9 m 2 regular square, and we evaluate 121 positions regularly separated by 3 cm and equally weighted. The Pareto front with NSGA-II has been obtained with a population of 600 individuals, where only individuals with the same number of sensors can perform crossover. We have run the algorithm for 2000 generations. The average time per iteration of the algorithm was 12 s. Figure 4 evidences the benefits and necessity of speciation. The Pareto front has been split into six graphs according to the number of sensors. Each algorithm returns the same amount of Pareto solutions. As stated above, the solutions obtained with NSGA-II tend to the lowest amount of sensors, whereas the proposed algorithm can control the amount of solutions of each subpopulation. Hence, it converges to a Pareto front close to that of Figure 1. Table 2 concludes this case study by providing a comparison of both algorithms.

Occluded Sensors
This section shows the application of the algorithm for the same cases of [30]. In that paper, the standard NSGA-II did not converge to a smooth Pareto front. In addition, it can be seen that many solutions provide a high position error. The new algorithm provides a better convergence, as can be seen in the following results. We include a comparison with random deployment to show the benefits of using a deployment algorithm. The values of the objectives with random deployment have been obtained averaging 50 random sensor sets for each number of sensors. Instead of considering a coverage radius, we consider that a point is in the scope of a sensor if there is a straight line that joins them without crossing any obstacle. The degradation of the accuracy in points that are not near a sensor is taken into account in the measurement error model, as was shown in Figure 3b This case study focuses on the placement of five to 12 sensors in a 25 m 2 regular square with an obstacle in the center. The obstacle is a 1 m 2 square column. We evaluate a total of 112 grid points that are regularly separated by 0.5 m and equally weighted. The objectives to be optimized are the averaged trace of the CRLB and the percentage of the points that are at least three-covered. Each subpopulation contains 100 individuals, and the algorithm was run for 2000 generations. Each iteration of the algorithm took 55 s on average. Figure 5 shows some Pareto optimal solutions, and a comparison of our algorithm with random deployment can be seen in Table 3.  Our algorithm outperforms random deployment considerably, and the lower the number of sensors, the higher the evidence. The higher coverage is achieved with any amount of sensors. With a low number of sensors and the presence of occlusions, it may easily happen that some points of the ROI are only in the scope of collinear sensors. In case this happens, the accuracy of the target localization in these points will be very poor; see Table 3, five sensors with random deployment. As shown in Figure 5, the symmetry of the solutions is also a good indicator of the algorithm's performance.

Case 2: Two Obstacles
In this example, we place five to 15 sensors in a room with the same shape considering the presence of two obstacles. The obstacles are again 1 m 2 square columns; their center points are [1.25, 2.5] and [3.75, 2.5]. The subpopulations can contain 20 individuals. The algorithm has been run for 1000 generations, and each iteration took 30 s on average. Figure 6 shows some Pareto optimal solutions. The full coverage is not always achieved with the best accuracy, and we show the extreme solutions of the Pareto front in these cases. When the solution with the best accuracy provides full coverage, the Pareto front is made of a single solution, and there is no actual trade-off. The configurations show a certain degree of symmetry; some basic shapes can also be recognized. Table 4 provides a comparison with random deployment. We only show the worst values of the Pareto front for each objective; the improvement is evident. Finally, after analyzing these solutions, it can be seen that sensors are usually placed near the boundaries of the 5 m × 5 m square and the obstacles. We can consider an intuitive approach that places sensors in these boundaries regularly. However, this solution has probably the highest target-sensor distance; hence, it would be a good solution when the error due to distance between sensor and target is low or negligible. We must also take into account the fact that the area covered by a sensor decreases when the sensors are placed in the boundaries of obstacles. Nevertheless, we have evaluated this intuitive solution for the cases of one and two obstacles. We have placed sensors in the corners (internal and external squares, eight sensors for the first case and 12 sensors for the second). Placing eight sensors in the corners of the one obstacle case provides an average CRLB trace of 4.595e−5 m 2 . Comparing this value to Table 3, it can be seen that we obtain a better accuracy with six sensors. When we place 12 sensors in the corners of the case with two obstacles, we get an accuracy of 1.533e−5 m 2 , which can be improved with nine sensors according to Table 4. Anyway, this intuitive solution could also be a good starting point for generating the first population.

Conclusions
A multi-objective evolutionary algorithm for deploying a variable number of sensors for RDOA localization has been presented in this paper. We have acknowledged the strengths and weaknesses of state-of-the-art proposals on sensor placement for localization and proposed a method to deploy a variable number of sensors considering several objectives. Our results have shown a great improvement over random deployment in some NLOS scenarios. We have used speciation and structural mutations on NSGA-II, which is included in most standard libraries. The algorithm should therefore be easy to implement modifying these libraries. We have applied it on an infrared RDOA positioning system with a fairly complex measurement noise model. Additionally, using RDOA implies that the covariance matrix of the observations is not diagonal. Dealing with algebraic methods in such a system is quite hard or even unfeasible. However, with an evolutionary algorithm, we only need to evaluate the objectives without resorting to the computation of complicated derivatives. The structural mutations should improve the performance and speed of the algorithm. This can intuitively be seen with the shapes of some placement patterns. Deploying four sensors, we find the optimum configuration to be a square; whereas the configuration that optimizes the placement of five sensors is a square with a sensor in the center. It is evident that once we have obtained one of those solutions, we can obtain the other one with a structural mutation in a single step.
Future works will be oriented toward the reduction of errors due to multipath. As a result of reflections in walls, ceiling and floor, many reflected signals reach a sensor by different paths. This phenomenon is known as multipath interference. Multipath causes an offset in the distance measurement, which should be kept to a minimum. We are currently working on obtaining a model that determines the offset that reflected signals cause in the final measurement. The development and application of this model is an extremely difficult task since the multipath effect is highly dependable on the ROI. We should model the distance measurement as a sum of the true distance between sensor and target, the noise of the LOS signal and the contribution of the multipath (offset). The latter term will be another objective of the optimization problem. We will also focus on localization of targets in motion. Another line for future work is the improvement of the execution time of the algorithm exploiting the parallelization of modern multi-core processors and graphics processing units. As can be seen in Figure 2, the migration operator is the only part of the algorithm that cannot be parallelized, whereas evolution and trimming processes can happen concurrently. The different simulations shown in this paper took from three hours up to a full day running on a laptop. A comparison with other algorithms is also a subject of further studies.