We present a geometric buildup algorithm for solving the sensor network localization problem with either accurate or noisy distance data. The algorithm determines the locations of the sensors, one at a time, by using the distances between the determined sensors and the undetermined ones. Each time, only a small system of distance equations needs to be solved and therefore, in an ideal case when the required distances are available for every sensor to be determined, the computation can be completed in
Ad hoc wireless sensor networks consist of a large number of spatially distributed sensor nodes that communicate with their nearby sensors within a radio range [
Sensor network localization has been applied to many application fields, including environmental studies such as monitoring environmental conditions [
Mathematically, the sensor network localization problem can be described as follows. Assume that there are
More specifically, if exact distances for all pairs of nodes are available, a distance geometry problem can be solved in polynomial time by using for example a singular value decomposition algorithm in
Much work has been done on the sensor network localization problem. Biswas et al. [
We investigate the solution of the sensor network localization problem within a geometric buildup framework. A basic geometric buildup algorithm [
In every buildup step, for determining a point, a small system of distance equations needs to be solved. However, the point may be overdetermined for there may be more equations than the coordinates for the point. On the other hand, the distances may have errors and the equations are most likely to be inconsistent. To overcome this difficulty, a leastsquares approximation method has been developed for solving the distance equations [
The availability of an initial set of determined points can be important for a geometric buildup algorithm to start and succeed. Fortunately, for sensor network localization, there is usually a set of anchor nodes that can be used as an initial set of nodes. However, if there are only a few anchors scattered widely in space, the chance is that there may not be many sensors with (at least three) distances to these anchors and the algorithm may be able to determine only a small set of sensors. For this reason, we have also implemented a twophase buildup algorithm. In the first phase, we determine as many sensors as possible starting with the initial anchors. In the second phase, from the undermined sensors, if there are any, we find a clique of sensors, that is, a subset of sensors with all distances among them available. We position the sensors in the clique in space (which is possible using their distances) and start from them to determine the remaining sensors. In this way, we can have more sensors determined than a single phase algorithm.
This paper is organized as follows. In Section
In this section, we present three versions of geometric buildup algorithms for sensor network localization. Three cases of problems are concerned (1) when exact distances are available, (2) when distances have errors, and (3) when there are only a few distant anchors. A geometric buildup algorithm, named as basic, extended, and twophase geometric buildup algorithms, respectively, is described for each of the three cases.
When a set of exact distances is given, that is, the distances in (
The points
Step 1: Let the anchors be the initial set of determined sensors.
Step 2:
determine sensor
Note that for every undetermined sensor, there may be more than three determined sensors that have distances to it. Therefore, there may be more than three distance equations in (
An extended geometric buildup algorithm works as follows. It again takes the anchors as the initial set of determined sensor. Then, for each undetermined sensor, it finds all the determined sensors that have distances to the undetermined sensor. If there are at least three such determined sensors and if they are not collinear, then the algorithm tries to find the coordinates for the undetermined sensor by solving a system of distance equations corresponding to all these determined sensors. In particular, since the equations may not be consistent, they are solved approximately in a leastsquares sense as described in the following.
Let
Let
Now suppose that the spectral decomposition of
It seems that the system of equations in (
As we have mentioned above, the coordinates of
Step 1: Set the anchors to be the initial set of determined sensors.
Step 2:
determine the positions of all
and update the coordinates of all
translation and orthogonal transformation.
The basic and extended geometric buildup algorithms both start building up from the anchors. If only a few anchors are available and if the distance data is also very sparse, the algorithms may not be able to determine any sensors since they may not be able to find an undetermined sensor that has at least three given distances to the anchors. Even if the algorithms can proceed, they may not be able to determine all the sensors if some undetermined sensors do not have enough required distances to the determined sensors. Here, we present a twophase geometric buildup algorithm to deal with these situations.
In Phase 1, we proceed with the extended geometric buildup algorithm until no sensors can be determined. In Phase 2, we find, in the undetermined sensors, a subset of at least three sensors where the distances between every pair of sensors are given (details are in Algorithm
known.
Step 1: Choose the first element in
Step 2:
add it into
Hopefully, the two sets of sensors determined in Phases 1 and 2 have an overlapping subset of at least three sensors, say
Step 1:
Set the anchors to be the initial set of sensors.
Apply the extended geometric buildup algorithm.
Step 2:
Find and determine an initial set of sensors.
Apply the extended geometric buildup algorithm.
Step 3: Align the sensors determined in the two phases.
In this section, we present some numerical results from applying the twophase geometric buildup algorithm (abbreviated as BU) to a set of test problems for sensor network localization. The test problems were generated in a similar way as used in [
The output includes three parameters and all of our outputs are the average results from five independent test problems. One parameter is
Input and output of the twophase geometric buildup algorithm.






NumUndet: 
RMSD: 
All our calculations are done in MATLAB 7.9.0 (R2009b) on a Dell xps M1330 laptop with 2.00 GHz CPU and 3.00 GB memory.
We have generated a set of sensor networks with 500, 1000, 2000, and 4000 nodes, respectively. We downloaded the code “SFSDP V111” of the SFSDP approach [
Example
Approach  NumUndet  RMSD  

BU  500  50  0.1  1  0.25  
SFSDP  500  50  0.1  0  13.1  
SFSDP  500  50  0.3  0  7.6  
SNLSDPclique  500  50  0.1  0.4  0.4  
BU  1000  100  0.1  0  0.6  
SFSDP  1000  100  0.1  0  22.7  
SFSDP  1000  100  0.3  0  16.0  
SNLSDPclique  1000  100  0.1  0  0.7  
BU  2000  100  0.1  0  7.0  
SFSDP  2000  100  0.1  0  42.3  
SFSDP  2000  100  0.3  0  34.9  
SNLSDPclique  2000  100  0.1  0  1.8  
BU  4000  100  0.06  0  9.4  
SFSDP  4000  100  0.06  0  317.8  
SFSDP  4000  100  0.1  0  109.2  
SNLSDPclique  4000  100  0.06  0  3.1 
A network determined by the geometric buildup algorithm.
We have also tested some largerscale problems with exact distances. The results for each problem size are obtained and shown in Table
Largescale problems with exact distances.
Approach  NumUndet  RMSD  

BU  5000  100  0.06  0  18.0  
6000  200  0.05  0  17.9  
7000  200  0.05  0  28.4  
8000  300  0.04  0  32.1  
9000  300  0.04  0  43.7  
10000  300  0.04  0  51.9  
SNLSDPclique  10000  300  0.04  0  16.3 
We have also tested a special network generated by [
Example
NumUndet  RMSD  

50  3  0.3  0  7.4  0.04  
50  3  0.35  0  3.8  0.05 
Another problem we have tested comes from [
In this problem, the four anchors are far away from each other. If one unknown sensor has distances to at least three of them, the radio range has to be at least the distance from one of them to the origin (
Example
Approach  NumUndet  RMSD  Time^{a}  

BU^{b}  500  4  0.3  0  12.2  1 sec  
SOS^{c}  0  85 min  
ESDP^{d}  0  30 sec 
^{ a}This time indicates all the running time including that to generate problems.
^{ b}BU was implemented on a laptop with 3.00 GB memory and 2.00 GHz CPU.
^{
c}SOS [
^{
d}ESDP [
We have also tested a set of problems with a large fraction of anchors but low distance noises (e.g.,
Example
NumUndet  RMSD of BU^{a}  RMSD of ESDP^{a}  

1000  100  0.06  0  38.6  2.2  
1000  100  0.06  0.001  26.2  2.1  
1000  100  0.06  0.01  36.8  2.5  
4000  400  0.035  0  5.6  41.3  
4000  400  0.035  0.001  4  40.7  
4000  400  0.035  0.01  3.2  40.8 
^{
a}RMSD of ESDP is obtained by implementing the steepest descent local search refinement for noisy sensor network problems. RMSD of BU is obtained without postrefinement. The RMSD values of ESDP come from [
Examples with
Approach  NumUndet  RMSD  

BU  1000  100  0.08  0  0.53  
SFSDP  1000  100  0.2  0  44.0  
SNLSDPclique  1000  100  0.2  0  1  
SNLSDPclique  1000  100  0.08  0.2  0.7  
BU  2000  100  0.05  3.4  8.9  
SFSDP  2000  100  0.2  0  134.6  
SNLSDPclique  2000  100  0.2  0  2.7  
SNLSDPclique  2000  100  0.05  1.8  1.4  
BU  2000  200  0.05  3  6.0  
BU  4000  100  0.035  6  75.7  
SFSDP  4000  100  0.1  0  269.4  
SNLSDPclique  4000  100  0.1  0  5.6  
SNLSDPclique  4000  100  0.035  11.4  3.9  
BU  4000  200  0.035  8.8  65.6  
BU  4000  300  0.035  5.8  52.4  
BU  4000  400  0.035  5.8  43.0 
Graphical display of a sensor network with
We also compared the running time of the BU algorithm with the ESDP [
We have also tested some problems with larger noises, for example,
Note that for SFSDP, larger
Effect of varying radio ranges.
NumUndet  RMSD  

1000  100  0.06  0.001  20.8  
1000  100  0.08  0.001  0.6  
1000  100  0.12  0.001  0  
1000  100  0.15  0.001  0  
1000  100  0.18  0.001  0  
1000  100  0.2  0.001  0  
1000  100  0.22  0.001  0  
2000  100  0.05  0.1  5.4  
2000  100  0.07  0.1  0  
2000  100  0.08  0.1  0  
2000  100  0.1  0.1  0  
2000  100  0.11  0.1  0 
We now summarize in the following on how the distance noise, the number of anchors, and the radio range affect the performance of the geometric buildup algorithm.
First, as shown in Table
Second, as shown in Table
Third, as further demonstrated in Table
In this paper, we have investigated a geometric buildup approach to the sensor network localization problem. We follow the buildup scheme [
We have tested the geometric buildup algorithm on a set of simulated sensor network localization problems with sparse and exact or inexact distances. The results showed that the algorithm runs fast on the test problems with acceptable accuracy. The algorithm is easy to follow and implement, and if further developed, may particularly be suitable for largescale applications. The algorithm still needs to be improved to handle problems with large distance noises and problems with extremely sparse distances, which we will work on in our future efforts.
Zheng’s work was done during her visit to Iowa State University. Her work was supported by the postdoctoral fellowship provided by the Laurence H. Baker Center for Bioinformatics and Biological Statistics and the Department of Mathematics, Iowa State University. Luo’s work was done during his visit to Iowa State University. His work was supported by the Grant 2007CB310604 from National Basic Research Program of China and Chinese Scholar Council no. [2007]3091. Wu’s work was supported partially by the NIH/NIGMS Grant R01GM081680 from the National Institutes of Health, and the NSF/DMS Grant DMS0914354 from the National Science Foundation, United States. The first author appreciates Professor Yinyu Ye for the SDP code of the sensor network localization given in a workshop (Beijing, 2006) and her advisor Professor Yaxiang Yuan for his encouragement and help all the time. The authors would like to thank Atilla Sit for sharing his initial SVD buildup code and Vladimir Sukhoy and the referees for many helpful discussions and suggestions.