INTRODUCTION
Location information of node plays a very important position on various applications of Wireless Sensor Networks (WSN). The current location algorithms can be divided into two major categories according to ranging and without ranging (Sun et al., 2005). DVHop algorithm proposed by Niculescu and Nath (2003) is a typical localization algorithm without ranging, with computing simplicity and low hardware requirements, making it widely used in node localization in WSN. However, the algorithm has a large positioning error. To solve this problem, many researchers have done a lot of research, such as in the study of Zhang et al. (2012), Wen et al. (2014), Xiao and Liu (2012), Feng et al. (2012), Wang and Shi (2012), Wang et al. (2011), Lu et al. (2011), Li and Zhou (2011) and Li et al. (2013). They have improved the algorithm and achieved certain results. These improved algorithms basically improved the error caused by the first and second stage of the positioning process. However, there are few works that study the error caused by the third phase of the positioning process.
In this study, combining the principles of evolutionary programming algorithm, a DVHop improvement program based on evolutionary programming resample is proposed to solve the error caused by the third phase of the positioning process. Simulation results show that under conditions that without additional hardware, positioning accuracy of EPRDVHop algorithm has greatly been improved.
DVHOP ALGORITHM:
Positioning process: The estimated distance between an unknown node and the anchor node is obtained by hop multiplied by average distance per hop, therefore, to estimate the unknown node coordinates. The positioning process is divided into three steps:
Step 1: 
Each anchor node broadcasts packet {id_{i}, (x_{i}, y_{i}),hop_{i}} which contains an identification number, its coordinates and number of hops to the network and the value of hop_{i} is initialized to 0. After receiving the packet, the neighbour nodes check whether the table has the anchor node information or not. If the packet information is recorded, set hop_{i}+1 and then forward the packet to its neighbor nodes. If there already exists and the hop is larger than the hop recorded in the table, then the packet is ignored. After the broadcast ends, all nodes will get the minimum hops value of each anchor node 
Step 2: 
Using the coordinate position obtained in the first stage and hops, each of the anchor nodes calculate the average distance per hop by the Eq. 1: 

where, (x_{i}, y_{i}), (x_{j},
y_{j}) are coordinates of node i, j, respectively and hopij is the
minimum number of hops between the two nodes. Then anchor nodes broadcast
hopsize to the network and unknown nodes only write down the first hopsize.
Then the estimated distance d between each anchor node is obtained by using
hop multiplied by hopsize 
Step 3: 
The coordinate location of the unknown node is obtained by trilateration or maximum likelihood estimation method 
Positioning error analysis: In traditional DVHop algorithm, after the unknown node obtains the estimated distances of three or more anchor nodes, the trilateration or maximum likelihood estimation method is used to determine the coordinate location of the unknown nodes. The coordinate position of the anchor nodes is set as (x_{1}, y_{1}), (x_{2}, y_{2}),…, (x_{n}, y_{n}) and the coordinate position of the unknown node is set as (x, y), the estimated distances of unknown node and anchor nodes, are d_{1}, d_{2},…, d_{n}, respectively, so Eq. 2 holds:
Linear expression of Eq. 2 is AX = b, where, X = (x, y)^{T}:
The standard minimum mean square error is used to obtain coordinate of the unknown node, which is denoted as X^{T} = (A^{T}A)^{1} A^{Tb}.
In the first stage of traditional DVHop algorithm, when getting the minimum number of hops between nodes, distance is recorded as a jump as long as it lies in inner radius, no matter how near and far it is, which cannot reflect the size of the actual distance. There must exist errors when the average distance per hop is calculated by using Eq. 1. Results of d_{1}, d_{2},…, d_{n} will inevitably lead to the accumulation of errors. Therefore, unknown node coordinate obtained by Eq. 2 has large error, which affects the positioning accuracy of the algorithm.
Set error of actual distance and estimated distance of anchor node and unknown node as ε, Eq. 2 can be changed into Eq. 3:
When solving the unknown node’s coordinates (x, y), Eq. 4 obtains the minimum value as long as the minimum value of ε is achieved and the obtained coordinates of unknown node at this time by the influence of the error is minimized, therefore, the accuracy of the coordinate calculation is improved:
METHODOLOGY
EPDVHop algorithm
EP algorithm: Evolutionary Programming (EP) is an evolutionary model of a finite state machine which is proposed by Fogel and Fogel (1996). It solves prediction problem by imitating process of biological evolution in nature. EP Algorithm is robust, intelligent, etc. and is a very broad application optimization search tool.
In evolutionary programming model, it uses potential problem of finite state machine to represent individuals. It first generates a finite state machine groups that are the parent groups. Each of these individuals produces offspring individuals by a mutation. Then the offspring of individuals are assessed, the best individuals from parent groups and mutated progeny groups are chosen to make new group. Evolutionary programming algorithm flow is shown in Fig. 1.
As can be seen from Fig. 1, the realization of EP algorithm mainly includes: determining expression of the problem; randomly generate initial population; calculating fitness value of the initial individual, calculating the fitness of a new individual and selecting these operation to generate a new group by mutation. Selecting the best individual as the optimal solution until a satisfactory solution is obtained or termination condition is satisfied.
Improvement process of algorithm: The main idea of the EPDVHop algorithm is: using evolutionary programming algorithm in place of trilateration to calculate the coordinate position of unknown nodes. The specific process is elaborated as follows:

Fig. 1: 
Flowchart of EP algorithm 
Position sampling: After the second stage, unknown nodes get the estimated distance to the anchor nodes by hopxhopsize. The initial estimate of the coordinate position of the unknown node is obtained by position sampling. Suppose the sampling position coordinates of the unknown node is S(x_{samplei}, y_{samplei}), then:
where, δ_{i}, θ_{i} represent random parameters of the sampling radius and sampling angle, respectively, value intervals are [0,1], [0, 2π], respectively. Select the sampling location which satisfies the Eq. 6:
where, d_{j} is the distance between the anchor node j and the unknown node (x_{j}, y_{j}) is the coordinate of the position of the anchor node j. ε is the distance error, which can be artificially set, the value of which is set to be 3 m. If sampling location S(x_{samplei}, y_{samplei}) satisfies the Eq. 6, it is retained otherwise discarded. When the number of sampling locations reaches the threshold N_{eff} or reaches the preset maximum sampling number N_{max}, sampling stops, getting the number of samples N_{s}. The estimate of initial position of the unknown node can be calculated by the following equation:
Location resample based on evolutionary programming: The initial position (x, y) of the unknown node is optimized by evolutionary programming algorithm. Selecting the appropriate position according to error analysis to make Eq. 4 take the minimum value. The objective function is:
Therefore, estimates of the position are conversed into seeking the minimum problem. So the fitness function is chosen as:
where α, β is a constant coefficient fitness function, the value of which are set as α = β = 1.
Setting the sampling location S(x_{samplei}, y_{samplei}) of unknown node as the initial population and resample location of unknown nodes is produced by evolutionary programming. Resample position of unknown nodes is assumed as S(x_{samplei}, y_{samplei}), then:
where, EP is evolutionary programming, S is the selection operator, E is the mutation operator:
Designing mutation operator: First, each individual (x, y) is mutated by Eq. 11 using mutation operation of standard evolutionary programming:
where, both (0,1) and N_{y}(0,1) are normally distributed, random numbers which generated for direction of (x, y) and fit(t) is the fitness of older individuals.
Designing selection operator: Select operations using tournament selection method. I is referred to as set of P(t)∪P'(t), P(t) is a population which consists of μ parent individuals.
P'(t) is populations which consist of μ offspring individuals gotten after a mutation operation. For each individual P_{k} = (x_{k}, y_{k}) of the set I, choose q other individuals from set I, compare the fitness of P_{k} and fitness of q individuals, the number of individuals whose fitness is higher than fitness of P_{k} is referred to as score w_{k} of P_{k}. Choose μ highest scoring individuals from set I to form the new generation of population P(t+1) after selecting.
Iterative optimization: When the evolution is completed, then enter the iterative optimization stage. The resample position are substituted into Eq. 8, to calculate a new estimate of the position (x(t+1), y(t+1)). Set t←t+1, get into the next iteration. Terminate the iterative process until reaching the maximum number of iterations or satisfying the Eq. 12:
where, τ is optimization of residuals, which is set as 1 m in EPDRVHop algorithm.
After the node position estimations constantly adjust to each other, such that the objective function reaches a minimum value which can be expected to obtain more accurate location estimate.
Implementation steps of EPRDVHop algorithm: The implementation process of EPDRVHop algorithm is:
Step 1: 
Like the first stage of traditional DVHop algorithm, obtain the minimum number of hops between nodes 
Step 2: 
Like the second stage of traditional DVHop algorithm, calculate the estimate of the distance between an unknown node and each of the anchor nodes 
Step 3: 
It randomly generates the location of sampling point S(x_{samplei}, y_{samplei}), calculates the sampling points which satisfy Eq. 6 and obtains an initial estimate of the position (x, y) 
Step 4: 
Sampling points generate a new resampling location S'(x'_{samplei}, y'_{samplei}) by mutation and selection. The new individuals are substituted into the fitness Eq. 9 to give new fitness; a new round of evolution is started, until a specified number of evolutions are completed 
Step 5: 
Resample position which is generated by evolution is substituted into the objective function of Eq. 8. When the minimum value of the objective function is obtained, the old location estimate is replaced by the new position estimate producing the new objective function and do the next round of iteration until the termination condition is met 
Step 6: 
The iteration is end and the final coordinate position of the unknown node is obtained 
RESULTS AND DISCUSSION
Positioning performance simulation
Setup of parameters: In order to verify the positioning performance of EPRDVHop algorithm, we use MATLAB platform to do simulations. Suppose that nodes are randomly distributed in the 100x100 m square area. Distance difference ε is 5 m. The maximum sampling frequency is 1000. The threshold of the number of sampling locations is 100. Optimization of residuals τ is 1 m. Population size is 100. The value of parameter q is 30 and the communication radius is 15 m. Positioning error is used as experimental evaluation in this study. Assuming true coordinates and estimated coordinates of unknown node respectively are (x_{t}, y_{t}), (x_{e}, y_{e}), respectively and communication radius is R. The positioning error is defined as:
Comparing positioning results under different numbers of anchor nodes: Getting a high precision positioning effect requires sufficient number of anchor nodes but because of cost factors, the number of anchor nodes is generally limited. In the case that the total number of nodes is 200, the number of anchor node gradually increases from the 5 to 40. We compare the performances of EPRDVHop algorithm and DVHop algorithm, the simulation results of which are shown in Fig. 2.
As can be seen from Fig. 2, positioning errors of the two algorithms are gradually reduced with the number of anchor node increasing. When the coordinates of the unknown nodes are calculated by the DVHop algorithm, the resulting position is not further optimized, so the error is larger than that of EPRDVHop algorithm. The EPRDVHop algorithm uses evolutionary programming resample algorithm to estimate the coordinates of the unknown node, the error which caused by the number of hops and the average distance perhop is reduced to a minimum and the result of the initial coordinate position is further iteratively optimized, so we can get the optimal location estimate, which makes positioning performance of EPRDVHop algorithm significantly better than that of the traditional DVHop algorithm. Comparing with DVHop algorithm under the same conditions, the positioning errors of EPRDVHop algorithm are reduced by between thirteen percent and eighteen percent.
Comparing positioning results of different nodes: Proportion of anchor nodes is maintained as unchanged ten percent. Compare positioning performance of EPRDVHop algorithm and DVHop algorithm by changing the total number of nodes. The simulation results are shown in Fig. 3.
As can be seen from Fig. 3, the positioning errors of the two algorithms gradually decrease with the number of nodes increasing. In a smaller number of nodes, EPRDVHop algorithm can achieve a high positioning accuracy and the positioning performance is better than DVHop algorithm. Under the same conditions, comparing with DVHop algorithm, the positioning errors of EPRDVHop algorithm are reduced by between fourteen percent and nineteen percent.

Fig. 2:  Comparison of positioning errors of different anchor nodes 

Fig. 3:  Comparison of positioning error of different nodes 

Fig. 4:  Comparison of positioning errors under different communication radius 
Comparing positioning results of different communication radius: Under the same conditions that the number of nodes is 200 and the ratio of anchor node is ten percent, we compare positioning performance of the two algorithms under the changing communication radius of nodes, the simulation results are shown in Fig. 4.
As can be seen from Fig. 4, communication opportunity to internode increases with the radius of communication increasing and the positioning errors of the two algorithms are gradually decreasing. But the positioning errors of EPRDVHop algorithm are significantly lower than DVHop algorithm (Zhang et al., 2012; Wen et al., 2014; Xiao and Liu, 2012; Feng et al., 2012; Wang and Shi, 2012; Wang et al., 2011; Lu et al., 2011; Li and Zhou, 2011; Li et al., 2013); therefore, positioning errors of EPRDVHop algorithm are reduced by between thirteen percent and eighteen percent compared with DVHop algorithm.
CONCLUSIONS
By analyzing positioning errors caused by the third phase of DVHop localization algorithm, an improved DVHop algorithm based on evolutionary programming resample (EPRDVHop) is proposed aimed at solving the problem of greater error of using the least squares method to estimate the unknown node. EPRDVHop algorithm uses evolutionary programming resample to replace the least squares method to estimate the coordinates of unknown nodes. Evolutionary programming resample with ability of optimization search to make error of realworld coordinates and estimated coordinates to be a minimum, which significantly improves the performance of the positioning algorithm. This algorithm with no additional hardware equipment still has the advantage of low cost. In order to meet higher positioning accuracy requirements in WSN, amendments of hops and the average distance perhop combined with evolutionary programming are considered to obtain higher accuracy in the future.
ACKNOWLEDGMENTS
The study of our work is supported in part by Young Talents Fund Project in Anhui Province of China (No. 2013SQRL083ZD), Anhui University Provincial Natural Science Research Project (No. KJ2014A247), Open platform topics of Suzhou University of China (No. 2012YKF38) and University student’s Innovative Training Project (201310379019).