<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s90806150</article-id>
<article-id pub-id-type="publisher-id">sensors-09-06150</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>An Efficient and Self-Adapting Localization in Static Wireless Sensor Networks</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Teng</surname><given-names>Guodong</given-names></name><xref ref-type="aff" rid="af1-sensors-09-06150"><sup>1</sup></xref><xref ref-type="aff" rid="af2-sensors-09-06150"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Zheng</surname><given-names>Kougen</given-names></name><xref ref-type="aff" rid="af1-sensors-09-06150"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-09-06150"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Dong</surname><given-names>Wei</given-names></name><xref ref-type="aff" rid="af1-sensors-09-06150"><sup>1</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-09-06150">
<label>1</label> College of Computer Science, Zhejiang University, Hangzhou, 310027, China; E-Mails: <email>teng@zju.edu.cn</email> (G. T.); <email>dongw@zju.edu.cn</email> (D. W.)</aff>
<aff id="af2-sensors-09-06150">
<label>2</label> Hangzhou Normal University, Hangzhou, 310036, China</aff>
<author-notes>
<corresp id="c1-sensors-09-06150">
<label>*</label>Author to whom correspondence should be addressed; E-Mail: <email>zkg@zju.edu.cn</email>; Tel.: +086-0571-8795-3955; Fax: +086-0571-8795-3955</corresp></author-notes>
<pub-date pub-type="collection">
<year>2009</year></pub-date>
<pub-date pub-type="epub">
<day>4</day>
<month>8</month>
<year>2009</year></pub-date>
<volume>9</volume>
<issue>8</issue>
<fpage>6150</fpage>
<lpage>6170</lpage>
<history>
<date date-type="received">
<day>28</day>
<month>5</month>
<year>2009</year></date>
<date date-type="rev-recd">
<day>24</day>
<month>6</month>
<year>2009</year></date>
<date date-type="accepted">
<day>29</day>
<month>7</month>
<year>2009</year></date></history>
<permissions>
<copyright-statement>© 2009 by the authors; licensee MDPI, Basel, Switzerland</copyright-statement>
<copyright-year>2009</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>Localization is one of the most important subjects in Wireless Sensor Networks (WSNs). To reduce the number of beacons and adopt probabilistic methods, some particle filter-based mobile beacon-assisted localization approaches have been proposed, such as Mobile Beacon-assisted Localization (MBL), Adapting MBL (A-MBL), and the method proposed by Hang <italic>et al</italic>. Some new significant problems arise in these approaches, however. The first question is which probability distribution should be selected as the dynamic model in the prediction stage. The second is whether the unknown node adopts neighbors’ observation in the update stage. The third is how to find a self-adapting mechanism to achieve more flexibility in the adapting stage. In this paper, we give the theoretical analysis and experimental evaluations to suggest which probability distribution in the dynamic model should be adopted to improve the efficiency in the prediction stage. We also give the condition for whether the unknown node should use the observations from its neighbors to improve the accuracy. Finally, we propose a Self-Adapting Mobile Beacon-assisted Localization (SA-MBL) approach to achieve more flexibility and achieve almost the same performance with A-MBL.</p></abstract>
<kwd-group>
<kwd>Wireless Sensor Networks (WSNs)</kwd>
<kwd>localization</kwd>
<kwd>particle filter</kwd>
<kwd>Self-Adapting Mobile Beacon-assisted Localization (SA-MBL)</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Recent advancements in wireless communications and electronics have enabled the development of low-cost sensor networks [<xref ref-type="bibr" rid="b1-sensors-09-06150">1</xref>]. There are several essential issues (e.g., localization, deployment, and coverage) in Wireless Sensor Networks (WSNs). Localization is one of the most important subjects because the location information is typically usefully for coverage, deployment, routing, location service, target tracking, and rescues [<xref ref-type="bibr" rid="b2-sensors-09-06150">2</xref>].</p>
<p>The localization of static WSNs relies on several beacons which know their locations scattered throughout the sensor networks and the precision of the localization increases with the number of beacons [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>]. To reduce the number of beacons, many mobile beacon-assisted approaches have been proposed. These approaches can be categorized based on whether the localization techniques are <italic>Range-based</italic> or <italic>Range-free</italic>, whether the localization algorithms are <italic>Centralized</italic> or <italic>Distributed</italic>, and whether the localization results are <italic>Deterministic</italic> or <italic>Probabilistic</italic>.</p>
<p>Compared with previous works on mobile beacon-assisted localization [<xref ref-type="bibr" rid="b4-sensors-09-06150">4</xref>–<xref ref-type="bibr" rid="b15-sensors-09-06150">15</xref>], Mobile Beacon-assisted Localization (MBL) [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>] integrates many more of the advantages of the methods, such as range-free technique, distributed algorithm and probabilistic approach. Paper [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>] also proposes another localization approach based on MBL, called Adapting MBL (A-MBL), to increase the efficiency and accuracy of MBL by adapting the size of sample sets and the parameter of the dynamic model during the estimation process. Evaluation results show that the accuracy of these approaches outperforms some other approaches [<xref ref-type="bibr" rid="b13-sensors-09-06150">13</xref>,<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>] when both of them use only a single mobile beacon for localization in static WSNs. Some new significant problems arise about A-MBL, however.</p>
<sec>
<title>Dynamic model</title>
<p>In general, the prediction stage in the particle filters uses the dynamic model to predict the state probability density forward from one measurement time to the next. Particularly in particle filters based mobile beacon-assisted localization, the dynamic model is needed for unknown nodes to provide enough variability in choosing new samples, i.e., which is used to limit a sample impoverishment phenomenon. MBL (or A-MBL) and Hang <italic>et al.</italic> [<xref ref-type="bibr" rid="b14-sensors-09-06150">14</xref>] adopt uniform distribution and normal distribution as the dynamic model, respectively. To the best of our knowledge, no theoretical analysis or experimental evaluations are given to explain why this particular dynamic model should be adopted, however. In fact, on one hand, the choice of the dynamic model will affect the accuracy of localization results. On the other hand, the approach to simulating random variables of the dynamic model will affect the efficiency of localization process. To this end, an appropriate dynamic model should improve the location accuracy when locating unknown nodes and time efficiency when simulating random variables.</p></sec>
<sec>
<title>Neighbors’ observation</title>
<p>In general, the update operation uses the latest measurement to modify the prediction probability density. Particularly in particle filters based mobile beacon-assisted localization, the unknown node filters the impossible samples based on new observations. MBL (or A-MBL) only relies on the observations from the beacon. This has two advantages. First, the number of unknown nodes will not affect the accuracy of localization. Second, the computation and communication costs drop drastically, since nodes are no longer involved in the localization of other nodes [<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>]. Typically, network protocols maintain information about their neighbors in order to make informed decisions for routing, aggregation, and dissemination [<xref ref-type="bibr" rid="b17-sensors-09-06150">17</xref>]. Some proposed approaches, such as Mobile and Static sensor network Localization (MSL) [<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>], use observations from the neighbors of unknown nodes, which may have greater communication costs, to increase efficiency and accuracy. It is still unknown whether or not to use observations from the neighbors in mobile beacon-assisted approaches, however. It is known that adopting neighbors’ observation should improve the location accuracy when locating unknown nodes and communication efficiency when collecting observations.</p></sec>
<sec>
<title>Adapting mechanism</title>
<p>The parameters in the dynamic model will affect the accuracy and efficiency of particle filter-based mobile beacon-assisted localization. As an example concerning the number of samples [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>,<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>,<xref ref-type="bibr" rid="b18-sensors-09-06150">18</xref>], under the same conditions, keeping more samples improves efficiency at the beginning of localization. The time complexity of the update stage and the memory requirements to keep samples are both linear in the number of samples needed for the estimation, however. Another example about the parameter <italic>α</italic> in the dynamic model [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>,<xref ref-type="bibr" rid="b18-sensors-09-06150">18</xref>], a greater value of parameter in the dynamic model improves the efficiency at the beginning of localization and the accuracy at the other extreme. Though adopting predefined adjustment tables in A-MBL is convenient and effective, obtaining these tables is difficult. To this end, the key question in A-MBL is how to determine the number of samples and the value of parameter in the dynamic model to achieve more flexibility. It is known that the approach should be unrelated to the deployment region, the location time and the number of unknown nodes, i.e., the approach should be self-adapting.</p>
<p>To address above problems, we first describe three different dynamic models and some related approaches to simulating random variables of the dynamic models. The theoretical analysis and experimental evaluation will be given to explain why the particular dynamic model should be adopted. Then, we describe how to make use of the neighbors’ observations in the update stage. Next, we give the condition whether the unknown node use the observation from the neighbors to improve the accuracy. Finally, we analysis and compare some approaches to judge the localization to reach the stable phase. As a result, a self-adapting mechanism will be proposed.</p>
<p>Major contributions of this paper are as follows:
<list list-type="bullet">
<list-item>
<p>In order to improve the time efficiency in the prediction stage of particle filter-based mobile beacon-assisted localization, we give the theoretical analysis and experimental evaluations to suggest which probability distribution should be adopted in the dynamic model.</p></list-item>
<list-item>
<p>We give the condition for whether the unknown node should use the observation from its neighbors to improve the accuracy.</p></list-item>
<list-item>
<p>We propose a Self-Adapting Mobile Beacon-assisted Localization (SA-MBL) approach to achieve more flexibility and obtain almost the same performance as with A-MBL.</p></list-item></list></p>
<p>The rest of this paper is organized as follows: Section 2 describes the algorithm of A-MBL. Section 3 analyses and discusses the different dynamic models, the neighbors’ observation, and the self-adapting mechanism. Section 4 shows and discusses our evaluation results. Section 5 gives an overview of related works. Finally, Section 6 concludes our work.</p></sec></sec>
<sec>
<label>2.</label>
<title>Related Work</title>
<p>Much research has been done on mobile-beacon assisted localization for WSNs. A general survey can be found in [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>]. Here, we provide a brief survey focusing only on Monte Carlo localization techniques suitable for static or dynamic WSNs. The range-free, distributed and probabilistic algorithm MCL [<xref ref-type="bibr" rid="b18-sensors-09-06150">18</xref>] proposed by Hu <italic>et al.</italic> only works in mobile sensor networks. In the prediction phase, MCL applies the mobility model to each sample to obtain a set of new samples. The probability of current location based on previous location estimates is given by a uniform distribution.</p>
<p>Different from MCL, in the range-free, distributed and probabilistic algorithms MSL and MSL<sup>*</sup>, each sensor node uses observations from only those neighbors that have better location estimates that it, i.e., the weight of a sample is determined using the neighbors’ observations besides the location announcements from the beacons. MSL modified the mobility model to allow this algorithm to work in static WSNs. As in the MCL, the uniform distribution is adopted as the mobility model in MSL.</p>
<p>In addition, some Monte Carlo localization specially designed for static sensor networks have been proposed. Hang <italic>e</italic>t <italic>al</italic>. in [<xref ref-type="bibr" rid="b14-sensors-09-06150">14</xref>], discuss a hybrid (range-free and range-base), centralized and probabilistic algorithms in the context of the static WSNs localization using a single mobile beacon. This algorithm assigns a dynamic model to enable samples to move closer to the actual location, and the dynamic model adopts a normal distribution. After the location distribution of unknown node is update, the beacon will also update the location distribution of the unknown node’s neighbors based on the one-hop observation data between the pair of neighbors. MA-MCL [<xref ref-type="bibr" rid="b15-sensors-09-06150">15</xref>] does a similar work which proposes a range-free, centralized and probabilistic localization approach. MA-MCL adopts a uniform distribution as the mobility model.</p>
<p>In [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>], we proposed a range-free, distributed and probabilistic MBL approach. This approach outperforms both MSL and Arrival and Departure Overlap (ADO) [<xref ref-type="bibr" rid="b13-sensors-09-06150">13</xref>] when both of them use only a single mobile beacon for localization in static WSNs. In the prediction phase, like MCL and MSL, MBL adopts a uniform distribution as the dynamic model. This paper also proposes A-MBL, to increase the efficiency and accuracy of MBL by adapting the size of sample sets and the parameter of the dynamic model during the estimation process. As the MBL, A-MBL does not use the observation information from neighbors.</p></sec>
<sec>
<label>3.</label>
<title>Description of A-MBL</title>
<sec>
<label>3.1.</label>
<title>Assumption</title>
<p>Similar to the assumption in [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>], let us consider a sensor network with <italic>M</italic> static sensor nodes in a 2D plane which do not have <italic>a priori</italic> known locations (called <italic>unknown nodes</italic>) and a single mobile node (called <italic>beacon</italic>), equipped with localization hardware, e.g., a GPS, which allows it to know its location at all times. We assume that all unknown nodes are randomly deployed in an area of size <italic>S</italic> and each sensor (unknown node or beacon) has the same ideal radio range <italic>r</italic>. The beacon is capable of moving a distance in a time step (<italic>v<sub>b</sub></italic>) in any direction where 0 ≤ <italic>v<sub>b</sub></italic> ≤<italic>v<sub>max</sub></italic>. The beacon knows <italic>v<sub>max</sub></italic>, but it does not know the value of <italic>v<sub>b</sub></italic> or the direction of movement in any time step. At time <italic>t</italic>, every unknown node within the radio range of the beacon will hear a location announcement from that beacon. We do not assume very tightly synchronized clocks. In a realistic deployment, it would be necessary to deal with network collisions and account for missed messages [<xref ref-type="bibr" rid="b18-sensors-09-06150">18</xref>].</p></sec>
<sec>
<label>3.2.</label>
<title>A-MBL</title>
<p>A-MBL uses the <italic>particle filter</italic> approach (also called <italic>sequential Monte Carlo method</italic>) to perform Bayesian filter based localization on a sample representation. The key idea is to represent the required posterior density by a set of random samples with associated weights and to compute estimates based on these samples and weights [<xref ref-type="bibr" rid="b19-sensors-09-06150">19</xref>].</p>
<p>Let 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mo>&lt;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>&gt;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> denotes a <italic>random measure</italic> that characterizes the posterior density <italic>p</italic>(<italic>l<sub>t</sub></italic> | <italic>o<sub>t</sub></italic>) which denotes the current location estimate <italic>l<sub>t</sub></italic> conditioned on the observation <italic>o<sub>t</sub></italic> from the beacon at time <italic>t</italic>, where 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mi>L</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> denotes a set of support <italic>samples</italic> (or called <italic>particles</italic>) with associated <italic>weights</italic> 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mi>W</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> at time <italic>t</italic> and <italic>N</italic> denotes the number of samples of an unknown node.</p>
<p>The details of the A-MBL are as follows:</p>
<p><bold>Initialization</bold>: In this stage, all unknown nodes have no information about their locations. The initial set of samples <xref ref-type="disp-formula" rid="FD1">Equation 1</xref> for each unknown node is chosen randomly from the whole deployed area and represented by a set of uniformly distributed samples with equal weights <xref ref-type="disp-formula" rid="FD2">Equation 2</xref>. The weight equal to one represents the importance of corresponding sample, which infers one of the location estimates of the unknown node:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>∼</mml:mo>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>l</mml:mi>
<mml:mn>0</mml:mn></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>S</mml:mi></mml:mfrac>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi></mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi></mml:mrow></mml:math></disp-formula>where <italic>L</italic><sub>0</sub> denotes the initial set of each sample, <italic>p</italic>(<italic>l</italic><sub>0</sub>) denotes initial location probability density, the symbol ∼ denotes sample generated sign, i.e., the samples on the left side are generated from the probability density on the right side, and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>w</mml:mi></mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> denotes the initial weight of each sample.</p>
<p><bold>Prediction</bold>: In this stage, we adopt a <italic>dynamic model</italic> in which the unknown node is capable of moving a distance in a time step (<italic>v<sub>node</sub></italic>) in any direction where 0 ≤ <italic>v<sub>node</sub></italic> ≤ α. The unknown node knows α, but it does not know the value of <italic>v<sub>node</sub></italic> or the direction of movement in any time step. Then, the unknown node generates new samples as follows:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mtext>is selected from</mml:mtext>
<mml:mo> </mml:mo>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mtext>where</mml:mtext>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>L</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo> </mml:mo>
<mml:mtext>for all</mml:mtext>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi></mml:mrow>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>P<sub>t</sub></italic> represents the approximation of prior density at time <italic>t</italic> after the prediction stage, <italic>L</italic><sub><italic>t−1</italic></sub> represents the approximation of posterior density at time <italic>t−1</italic>, and the <italic>transition equation</italic> for each sample described as follows:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>π</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">TRUE</mml:mi></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">FALSE</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>filter(R)</italic> denotes the unknown node receives the current location announcement of the beacon, but did not receive the location announcement from the beacon’s previous location, or the unknown node received the preceding location announcement from the beacon, but does not receive the location announcement from the beacon’s current location. For more details about <italic>filter(R)</italic> see [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>].</p>
<p><bold>Update</bold>: In this stage, the unknown node filters the impossible samples based on new observations. The unknown node updates samples as follows:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>U</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mtext>where</mml:mtext>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>∈</mml:mo>
<mml:msub>
<mml:mi>P</mml:mi>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mtext>and</mml:mtext>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>U<sub>t</sub></italic> represents the approximation of posterior density at time <italic>t</italic> after the update stage, and the weight 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> will be obtained by 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>o</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. The weight of sample is determined by the filter condition:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>w</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>o</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mn>1</mml:mn></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">TRUE</mml:mi></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">FALSE</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p><bold>Resampling:</bold> A-MBL adopts a Systematic resampling algorithm [<xref ref-type="bibr" rid="b20-sensors-09-06150">20</xref>] in this paper since it is simple to implement, takes <italic>O(N<sub>s</sub>)</italic> time, and minimizes the Monte Carlo variation.</p>
<p><bold>Adapting</bold>: A-MBL adopts two predefined adjustment tables, one for the number of samples <italic>N</italic>, and the other for the parameter α. Once some record in the table is matched, the number of samples and the value of <italic>α</italic> in the unknown node will be adjusted according to the corresponding time.</p>
<p>The complete A-MBL for every unknown node is shown in [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>].</p></sec></sec>
<sec>
<label>4.</label>
<title>Key Issues</title>
<sec>
<label>4.1.</label>
<title>Dynamic Model</title>
<p>In this section, we use the term “<italic>random numbers</italic>” to mean independent <italic>random variables</italic> from a probability distribution, i.e., we use random numbers to simulate random variables from some probability distribution. For example, let random variable Z is uniformly distributed over (0, 1). If U is uniformly distributed over (0, 1) random numbers, then <xref ref-type="disp-formula" rid="FD7">Equation 7</xref> denotes random variables Z are simulated by random numbers U:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>Z</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>U</mml:mi></mml:mrow></mml:math></disp-formula>We denote the horizontal X and vertical Y location of the <italic>i</italic>-th sample of an unknown node at time <italic>t</italic> by 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>X</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>Y</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<sec>
<label>4.1.1.</label>
<title>Square uniform distribution</title>
<p>If we adopt Square Uniform Distribution (SUD) as the dynamic model, i.e., a new sample is generated from each current sample by randomly choosing a point within a square with a side length 2α when the <italic>filter(R)</italic> is equal to <italic>TRUE</italic>. Thus, the transition equation for each sample described as follows:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">TRUE</mml:mi></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">FALSE</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>Next, we simulate SUD from random numbers shown as follows:</p>
<p>Let the horizontal <italic>X</italic> and vertical <italic>Y</italic> location of the <italic>i</italic>-th sample of an unknown node are independent uniform random variables on the interval (−<italic>α</italic>, <italic>α</italic>). If <italic>U</italic><sub>1</sub> and <italic>U</italic><sub>2</sub> are independent uniformly distributed over (0, 1) random numbers, then
<disp-formula id="FD9">
<label>(9)</label>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>α</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>α</mml:mi>
<mml:mo>*</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>α</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>α</mml:mi>
<mml:mo>*</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Each unknown node will use <xref ref-type="disp-formula" rid="FD9">Equation 9</xref> to generate its own samples when SUD is adopted as the dynamic model.</p></sec>
<sec>
<label>4.1.2.</label>
<title>Circle uniform distribution</title>
<p>If we adopt Circle Uniform Distribution (CUD) as the dynamic model, i.e., a new sample is generated from each current sample by randomly choosing a point within a circle centered at the current location of the sample and the radius α when the <italic>filter(R)</italic> equal to <italic>TRUE.</italic> Then, the transition equation for each sample described as follows:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:mi>π</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>α</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">TRUE</mml:mi></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">FALSE</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>How can the uniform distribution of filters in a circle be realized? One solution could be to generate the filters uniformly in a circle and then draw again if the point is not within the circle. The approach called <italic>Accept-Reject</italic> is shown in <xref ref-type="table" rid="t5-sensors-09-06150">Algorithm 1</xref></p>
<table-wrap id="t5-sensors-09-06150" position="anchor">
<label>Algorithm 1.</label>
<caption>
<p>Accept-Reject method.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="left" valign="top">1: <bold>do</bold></td></tr>
<tr>
<td align="left" valign="top">2: Generate random numbers U1 and U2;</td></tr>
<tr>
<td align="left" valign="top">3: <italic>X</italic> = −<italic>α</italic> + 2<italic>α*U</italic><sub>1</sub>, <italic>Y =</italic> −<italic>α +</italic> 2<italic>α*U</italic><sub>2</sub>;</td></tr>
<tr>
<td align="left" valign="top">4: <bold>While</bold> <italic>X</italic><sup>2</sup> + <italic>Y</italic><sup>2</sup> ≥ <italic>r</italic><sup>2</sup></td></tr>
<tr>
<td align="left" valign="top">5: Accept X, Y;</td></tr></tbody></table></table-wrap>
<p>Since the probability that a random point in the square will fall within the circle is equal to π/4 (the area of the circle divided by the area of the square), it follows that, on average, the Accept-Reject method will require 4/π = 1.273 iterations of step 2. Hence, it will, on average, require 2.546 random numbers to generate 2 independent random variables.</p>
<p>A more efficient solution is to choose the angle uniformly as before, but for the radius an intermediate value <italic>U</italic> is generated uniformly between 0 and 1, and then <italic>r</italic> is calculated as <italic>r=sqrt(U)*α</italic>, where <italic>sqrt</italic>() denotes square root function. The approach is called <italic>polar</italic> method.</p>
<p>Formally, let the distribution of samples in a circle of the radius (0, α) with the angle <italic>θ</italic> uniformly between (0, 2π). If <italic>U</italic><sub>1</sub> and <italic>U</italic><sub>2</sub> are independent uniformly distributed over (0, 1) random numbers, then:
<disp-formula id="FD11">
<label>(11)</label>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>θ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>*</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">sqrt</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>*</mml:mo>
<mml:mi>α</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo> </mml:mo>
<mml:mtext>cos</mml:mtext>
<mml:mo> </mml:mo>
<mml:mi>θ</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo> </mml:mo>
<mml:mtext>sin</mml:mtext>
<mml:mo> </mml:mo>
<mml:mi>θ</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where θ is described in <xref ref-type="fig" rid="f1-sensors-09-06150">Figure 1</xref>.</p>
<p>Each unknown node can use <xref ref-type="table" rid="t5-sensors-09-06150">Algorithm 1</xref> or <xref ref-type="disp-formula" rid="FD11">Equation 11</xref> to generate its own samples when CUD is adopted as the dynamic model.</p></sec>
<sec>
<label>4.1.3.</label>
<title>Normal distribution</title>
<p>If we adopt Normal Distribution (ND) with parameters 0 and σ<sup>2</sup> as the dynamic model, then the transition equation for each sample is described as follows:
<disp-formula id="FD12">
<label>(12)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>σ</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">TRUE</mml:mi></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn></mml:mtd>
<mml:mtd columnalign="left">
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">filter</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>R</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">FALSE</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>Special techniques have been devised to simulate from most of the common continuous distributions [<xref ref-type="bibr" rid="b21-sensors-09-06150">21</xref>]. Now, we review the two most popular generating approaches of ND.</p>
<p>(1) Box-Muller</p>
<p>Let the horizontal X and vertical Y location of the <italic>i</italic>-th sample of an unknown node are independent standard normal random variables. If <italic>U</italic><sub>1</sub> and <italic>U</italic><sub>2</sub> are independent uniformly distributed over (0, 1) random numbers, then:
<disp-formula id="FD13">
<label>(13)</label>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>X</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mtext>log</mml:mtext>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:msup>
<mml:mo> </mml:mo>
<mml:mtext>cos</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mtext>log</mml:mtext>
<mml:mo> </mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:msup>
<mml:mo> </mml:mo>
<mml:mtext>sin</mml:mtext>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>The preceding approach to generating standard normal random variables is called the <italic>Box-Muller</italic> method. Its efficiency suffers somewhat from its need to compute the preceding sine and cosine values. There is, however, a way to get around this potentially time-consuming difficulty.</p>
<p>(2) Polar method</p>
<p>The literature [<xref ref-type="bibr" rid="b21-sensors-09-06150">21</xref>] also introduces the following approach to generating a pair of independent standard normals:</p>
<table-wrap id="t6-sensors-09-06150" position="anchor">
<label>Algorithm 2.</label>
<caption>
<p>Polar method</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="left" valign="top">1: <bold>do</bold></td></tr>
<tr>
<td align="left" valign="top">2: Generate random numbers U1 and U2;</td></tr>
<tr>
<td align="left" valign="top">3: Set <italic>V</italic><sub>1</sub> = 2<italic>U</italic><sub>1</sub> −1, <italic>V</italic><sub>2</sub> = 2<italic>U</italic><sub>2</sub> −1, 
<inline-formula>
<mml:math>
<mml:mi>S</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mi>V</mml:mi>
<mml:mn>1</mml:mn>
<mml:mn>2</mml:mn></mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mi>V</mml:mi>
<mml:mn>2</mml:mn>
<mml:mn>2</mml:mn></mml:msubsup></mml:math></inline-formula>;</td></tr>
<tr>
<td align="left" valign="top">4: <bold>While</bold> <italic>S</italic> &gt; 1</td></tr>
<tr>
<td align="left" valign="top">5: 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo> </mml:mo>
<mml:mtext>log</mml:mtext>
<mml:mo> </mml:mo>
<mml:mi>S</mml:mi></mml:mrow>
<mml:mi>S</mml:mi></mml:mfrac></mml:mrow></mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mi>Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo> </mml:mo>
<mml:mtext>log</mml:mtext>
<mml:mo> </mml:mo>
<mml:mi>S</mml:mi></mml:mrow>
<mml:mi>S</mml:mi></mml:mfrac></mml:mrow></mml:msqrt>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo>;</mml:mo></mml:mrow></mml:math></inline-formula></td></tr></tbody></table></table-wrap>
<p>The preceding is called the <italic>polar</italic> method. It will, on average, require 2.546 random numbers, one logarithm, one square root, one division, and 9.546 multiplications to generate two independent standard normals.</p>
<p>If the normal random variable has mean <italic>u</italic> and the variance σ<sup>2</sup>, then it is given as:
<disp-formula id="FD14">
<label>(14)</label>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>u</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>σ</mml:mi>
<mml:mi>X</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>u</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>σ</mml:mi>
<mml:mi>Y</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>To compare the efficiency of the various algorithms mentioned above, we show the results of the comparison in <xref ref-type="table" rid="t1-sensors-09-06150">Table 1</xref>. As shown in <xref ref-type="table" rid="t1-sensors-09-06150">Table 1</xref>, the method to simulate SUD is the most efficient among these algorithms. Whether or not to use SUD as the dynamic model also depends on the accuracy of localization results, however. We will evaluate the localization accuracy of these approaches adopted as the dynamic model in Section 4.2.</p></sec></sec>
<sec>
<label>4.2.</label>
<title>Neighbors’ Observation</title>
<p>The aim of combined with the observation from the neighbors is to improve performance, and then get results in faster convergence of the algorithms. To this end, we modify the sampling procedure in MBL to use observations from the neighbors, i.e., each unknown node not only relies on observations from the beacon, but also from the neighbors that have better estimates.</p>
<p>As the approaches described in [<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>], after choosing a sample from the unknown node, its weight is determined using the beacon and neighbors’ observation. The weight of a sample <italic>l<sup>i</sup></italic> chosen for the unknown node <italic>p</italic>, is described as <italic>w<sub>l<sup>i</sup></sub></italic> (<italic>p</italic>), which is computed as follows: corresponding to the <italic>k-</italic>th neighbor <italic>q<sub>k</sub></italic> of the unknown node <italic>p</italic>, we set a <italic>partial weight</italic> for the sample <italic>l<sup>i</sup></italic>, <italic>w′<sub>l<sup>i</sup></sub></italic> (<italic>q<sub>k</sub></italic>). The weight <italic>w</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>p</italic>) of sample <italic>l<sup>i</sup></italic> is the product of the partial weights <italic>w′</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>q<sub>k</sub></italic>) obtained corresponding to each neighbor <italic>q</italic> of the unknown node <italic>p</italic>. That is:
<disp-formula id="FD15">
<label>(15)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>w</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:msub>
<mml:mo> </mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mo>∏</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>n</mml:mi></mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>l</mml:mi>
<mml:mi>i</mml:mi></mml:msup></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mrow>
<mml:mo> </mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>n</italic> is the number of neighbors of the unknown node <italic>p</italic>.</p>
<p>The partial weights <italic>w′</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>q<sub>k</sub></italic>) of the sample <italic>l<sup>i</sup></italic> corresponding to observations from the beacon or the neighbors of unknown node are computed as follows:
<list list-type="order">
<list-item>
<p>If the unknown node receives the observation from the beacon, then the partial weight <italic>w′</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>q<sub>k</sub></italic>) of sample <italic>l<sup>i</sup></italic> will be computed by the <xref ref-type="disp-formula" rid="FD6">Equation 6</xref> as MBL (or A-MBL).</p></list-item>
<list-item>
<p>If the unknown node receives the observations from its neighbors, then the partial weight <italic>w′</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>q<sub>k</sub></italic>) of the sample <italic>l<sup>i</sup></italic> corresponding to the neighbor <italic>q<sub>k</sub></italic> is computed using the weights 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> of the sample 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> of the neighbor <italic>q<sub>k</sub></italic> as follows:
<disp-formula id="FD16">
<label>(16)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup></mml:mrow>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo> </mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>N</mml:mi></mml:munderover>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">where</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>l</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>,</mml:mo>
<mml:mo> </mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>≤</mml:mo>
<mml:mi>r</mml:mi></mml:mrow></mml:mrow></mml:math></disp-formula></p></list-item></list></p>
<p>To summarize the inter-dependencies of the weights amongst the relevant node, we visualize the observations in <xref ref-type="fig" rid="f2-sensors-09-06150">Figure 2</xref>. In <xref ref-type="fig" rid="f2-sensors-09-06150">Figure 2</xref>, the black dot denotes the current unknown node and the red dots denote the samples of it. The green dots denote the neighbor of the unknown node and the blue dots denote the samples of neighbors. The dotted lines between the red dot and green dot denote the partial weight <italic>w′</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>q<sub>k</sub></italic>) of sample <italic>l<sup>i</sup></italic>. The dash dot line between the red dot and the blue dot denote the weights 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>w</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> of the sample 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>q</mml:mi></mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> of the neighbor <italic>q<sub>k</sub></italic>.</p>
<p>The sample <italic>l<sup>i</sup></italic> is kept if <italic>w</italic><sub><italic>l</italic><sup><italic>i</italic></sup></sub> (<italic>p</italic>) is greater than a threshold value <italic>β</italic>.</p>
<p>An important question is that the right conditions should be met in order to combine with the observation from neighbors is to improve accuracy and obtain faster convergence of the algorithms.</p>
<p>Nagpal <italic>et al.</italic> [<xref ref-type="bibr" rid="b22-sensors-09-06150">22</xref>] have claimed that π<italic>r</italic>/4<italic>n<sub>d</sub></italic> is a lower bound for the error in any range-free localization algorithm in static sensor networks, where <italic>n<sub>d</sub></italic> is the node density, the average number of nodes in one hop transmission range, i.e., <italic>n<sub>d</sub></italic> is the average number of neighbors to an unknown node. In our scenarios, using a single mobile beacon that knows its position is broadly equivalent to using many static beacons each broadcasting once. We may consider each observation from mobile beacon to an unknown node as one constraint (bounded) from the static beacon in the radio range of the unknown node. Thus, the number of observations to the unknown node in mobile beacon-assisted approach is equal to the number of constraints from static neighbor beacons of the unknown node, i.e., the number of observations in mobile beacon-assisted approach is equal the node density, <italic>n<sub>d</sub></italic>. As a result, if the number of observations from the mobile beacon to the unknown node is larger than <italic>n<sub>d</sub></italic>, the neighbors’ observation will not improve the precision of the unknown nodes.</p></sec>
<sec>
<label>4.3.</label>
<title>Self-Adapting Mechanism</title>
<p>How to determine the number of samples and the value of parameter <italic>α</italic> in the dynamic model to achieve more flexibility is the key question to A-MBL. On the one hand, likelihood-based adaptation [<xref ref-type="bibr" rid="b23-sensors-09-06150">23</xref>], KLD-Sampling adaptation [<xref ref-type="bibr" rid="b24-sensors-09-06150">24</xref>], and coefficient of variation [<xref ref-type="bibr" rid="b3-sensors-09-06150">3</xref>] do not judge the accuracy of MBL to reach the stable phase. On the other hand, the values in such predefined adjustment tables in A-MBL are related to the localization time, i.e., different scale deployment of the sensor nodes requires different predefined adjustment tables. Obtaining these tables is hard work. The intuitive answer to those questions is that MBL needs a self-adapting mechanism to achieve more flexibility, and the corresponding approach is called Self-Adapting MBL (SA-MBL).</p>
<p>The following major factors should be considered to satisfy the self-adapting mechanism:
<list list-type="order">
<list-item>
<p>The approach should judge the localization to reach the stable phase as the effect of pre-defined table in A-MBL.</p></list-item>
<list-item>
<p>The approach should be unrelated to the scale deployment of sensor nodes, the localization time, and the speed of the beacon, etc., but just related to the unknown nodes themselves.</p></list-item></list></p>
<p>In other words, in order to better judge the stable phase of localization, we need some stable attribute obtained from the unknown nodes themselves.</p>
<p>We know that the locations of samples are in continuous convergence as new observations are incorporated in the initialization phase. When the accuracy of MBL reaches the stable phase, the distribution of samples will also reach a stable phase. To this end, we hope to find the statistical distribution of samples which can be closer to above-mentioned objectives.</p>
<p>We suppose that the samples of an unknown node are sampling from a SUD when we adopt the SUD as the dynamic model. Then, we want to obtain the parameters in the SUD of the samples when the localization reaches the stable phase. We adopt the Method of Moments Estimators (MME) to estimate the parameter of the SUD.</p>
<p>To a single unknown node, the horizontal <italic>X</italic> and vertical <italic>Y</italic> location of the <italic>i</italic>-th sample have two unknown parameters, respectively. Let the horizontal location X of the <italic>i</italic>-th sample have two unknown parameters [<italic>a, b</italic>]. <italic>X<sup>1</sup></italic>, <italic>X<sup>2</sup></italic>,…,<italic>X<sup>N</sup></italic> are horizontal locations of samples <italic>l<sup>1</sup></italic>, <italic>l<sup>2</sup></italic>,…,<italic>l<sup>N</sup></italic> of size <italic>N</italic>, respectively. Then, the MME for <italic>a</italic> and <italic>b</italic> is as follows:
<disp-formula id="FD17">
<label>(17)</label>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>a</mml:mi>
<mml:mo>=</mml:mo>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>¯</mml:mo></mml:mover>
<mml:mo>−</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>3</mml:mn>
<mml:mi>N</mml:mi></mml:mfrac>
<mml:mo> </mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>N</mml:mi></mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>−</mml:mo>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>¯</mml:mo></mml:mover></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:msqrt></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>¯</mml:mo></mml:mover>
<mml:mo>+</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mn>3</mml:mn>
<mml:mi>N</mml:mi></mml:mfrac>
<mml:mo> </mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>N</mml:mi></mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>−</mml:mo>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>¯</mml:mo></mml:mover></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:msqrt></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where:
<disp-formula id="FD18">
<label>(18)</label>
<mml:math display="block">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>X</mml:mi>
<mml:mo>¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>N</mml:mi></mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>X</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>We adopt <xref ref-type="disp-formula" rid="FD19">Equation 19</xref> to judge the accuracy of MBL to reach the stable phase, where AME denotes Average of Moments Estimators. When AME reaches the stable phase, the number of samples and the parameters in the dynamic model will be adjusted. Once the parameters in the dynamic model have been adjusted, the precision will be improved and AME will reach a new stable phase. The above stability, adjustment and re-stability process does not stop, until the localization obtains the desired positioning accuracy:
<disp-formula id="FD19">
<label>(19)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">AME</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>M</mml:mi></mml:mfrac>
<mml:mo> </mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>M</italic> is the number of unknown nodes, <italic>a<sub>i</sub></italic> and <italic>b<sub>i</sub></italic> denote the parameters of the uniform distribution of the <italic>i</italic>-th unknown node.</p>
<p>From an implementation perspective, <xref ref-type="disp-formula" rid="FD17">Equation 17</xref> will be computed in the unknown node at a certain time interval. All unknown nodes do not require send the result of (<italic>b</italic> – <italic>a</italic>) to the beacon at one time, but each unknown node sends the value when it contacts the beacon. <xref ref-type="disp-formula" rid="FD19">Equation 19</xref> will be computed in the beacon and the beacon only maintains (<italic>b</italic> – <italic>a</italic>) of the recently <italic>M</italic> contacted unknown nodes.</p></sec></sec>
<sec>
<label>5.</label>
<title>Evaluation</title>
<p>The key metric [<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>] for evaluating a localization algorithm is the accuracy of the location estimates or <italic>localization error</italic>. This is computed as follows:
<disp-formula id="FD20">
<label>(20)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">Error</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>M</mml:mi></mml:mfrac>
<mml:mo> </mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>e</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow>
<mml:mo stretchy="false">‖</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD21">
<label>(21)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>d</mml:mi></mml:msub>
<mml:mo> </mml:mo>
<mml:mi>S</mml:mi></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>π</mml:mi>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>where <italic>M</italic> is the number of unknown nodes and can be obtained from the <xref ref-type="disp-formula" rid="FD21">Equation 21</xref>,<italic>R<sub>i</sub></italic> denotes the real location of the <italic>i</italic>-th unknown node, <italic>e<sub>i</sub></italic> denotes the location estimate of the <italic>i</italic>-th unknown node, and ||<italic>e<sub>i</sub></italic> - <italic>R<sub>i</sub></italic>|| denotes the distance between locations <italic>e<sub>i</sub></italic> and <italic>R<sub>i</sub></italic>. The errors shown in the simulation results are in terms of the radio range, i.e., the errors shown are computed by dividing the error in <xref ref-type="disp-formula" rid="FD20">Equation 20</xref> by the radio range of sensor node. Most parameter settings for our simulations are those used in [<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>,<xref ref-type="bibr" rid="b18-sensors-09-06150">18</xref>]. Our results were obtained using sensor nodes randomly distributed in a 500 units × 500 units square field, i.e., S = 500 × 500. In our experiments, we set ideal radio range <italic>r</italic> = 100, the node density <italic>n<sub>d</sub></italic> = 10, the number of samples for an unknown node <italic>N</italic> = 50, the parameter α = 0.1<italic>r</italic> in the SUD or CUD, the parameter <italic>σ</italic> = 0.02<italic>r</italic> in the ND, and the maximum speed of beacon <italic>v<sub>max</sub></italic> = 1.0<italic>r</italic>. We adopt Walking GPS architecture [<xref ref-type="bibr" rid="b12-sensors-09-06150">12</xref>] for the beacon and unknown nodes which significantly reduce the size of the code and data memory used on the sensor node. Other simulation parameters of the unknown node are based on the MicaZ sensor node. The beacon’s movement is implemented using random waypoint mobility model.</p>
<sec>
<label>5.1.</label>
<title>Dynamic Model</title>
<p>In this section, we will evaluate the accuracy of different probability densities adopted as the dynamic model in the prediction stage for MBL. The graph in <xref ref-type="fig" rid="f3-sensors-09-06150">Figure 3</xref> shows the comparison of accuracy for SUD_MBL, CUD_MBL, and ND_MBL, where SUD_MBL, CUD_MBL, and ND_MBL denote different dynamic models SUD, CUD, and ND as shown in <xref ref-type="disp-formula" rid="FD8">Equation 8</xref>, <xref ref-type="disp-formula" rid="FD10">10</xref>, and <xref ref-type="disp-formula" rid="FD12">12</xref> adopted by MBL respectively in the prediction stage.</p>
<p>As shown in <xref ref-type="fig" rid="f3-sensors-09-06150">Figure 3</xref>, on the one hand, for SUD_MBL and CUD_MBL, the curvatures of the two curves are always very close to each other, i.e., different dynamic models SUD and CUD will not affect the accuracy of MBL. On the other hand, in the initialization phase, the convergence of SUD_MBL and CUD_MBL is much faster than ND_MBL, but, in the stable phase, the accuracy of ND_MBL is a little bit higher than in SUD_MBL and CUD_MBL. In order to compare the accuracy of those different dynamic models for MBL from the quantitative point of view, we give <xref ref-type="table" rid="t2-sensors-09-06150">Table 2</xref> to show the accuracy of MBL under three different dynamic models. These experimental results are the average of 20 executions with different pseudorandom number generator seeds. In <xref ref-type="table" rid="t2-sensors-09-06150">Table 2</xref>, ND_MBL shows nearly 20%–25% better accuracy when compared to the SUD_MBL and CUD_MBL. Shown in Section 3.1.3, we have known that SUD_MBL is more efficient than ND_MBL. Taking into account both the efficiency and accuracy of localization, which the dynamic model should we choose?</p>
<p>We give another result as shown in <xref ref-type="fig" rid="f4-sensors-09-06150">Figure 4</xref>. Compared to the SUD_A-MBL which denotes A-MBL adopting SUD as the dynamic model, ND_MBL has no advantage due to the invariable parameter in the dynamic model, i.e., the accuracy of MBL with adapting mechanism are higher than ND_MBL with different dynamic model to improve accuracy. That is to say, SUD_A-MBL achieves higher accuracy and does not lose efficiency. Of course, if ND_MBL also adopts an adapting mechanism, then ND_MBL can achieve higher accuracy. We show the accuracy comparison results between SUD_A-MBL and ND_A-MBL in <xref ref-type="fig" rid="f5-sensors-09-06150">Figure 5</xref>. Though SUD_A-MBL and ND_A-MBL will reach almost the same accuracy at the end, ND_A-MBL needs more time to do so than SUD_A-MBL, i.e., the efficiency of ND_A-MBL is lower because it spends longer time achieving the stable phase of localization process.</p></sec>
<sec>
<label>5.2.</label>
<title>Neighbors’ Observation</title>
<p>The threshold value <italic>β</italic> which mentioned in Section 3.2 depends on the number of neighbors of an unknown node. In [<xref ref-type="bibr" rid="b16-sensors-09-06150">16</xref>], MSL uses <italic>β</italic> = (0.1)<italic><sup>neighbor</sup></italic>, where <italic>neighbor</italic> denotes the number of neighbors of an unknown node. In our experiments, we set <italic>neighbor = n<sub>d</sub></italic>, i.e., <italic>β</italic> = (0.1)<sup><italic>n</italic><sub><italic>d</italic></sub></sup>. To reduce computational complexity, the unknown node will use the observation from the neighbors in some interval.</p>
<p>The graph in <xref ref-type="fig" rid="f6-sensors-09-06150">Figure 6</xref> shows the comparison results of accuracy for SUD_MBL and NEIGHBOR_SUD_MBL when the time interval is 200, where NEIGHBOR_SUD_MBL denotes SUD_MBL relying on observation not only from the beacon, but also from its neighbors in the update stage. As shown in <xref ref-type="fig" rid="f6-sensors-09-06150">Figure 6</xref>, SUD_MBL and NEIGHBOR_SUD_MBL, these two curvature of the curves are always very close to each other, i.e., combined with the observation from neighbors will not improve the accuracy of MBL and have not faster convergence under these conditions.</p>
<p>The graph in <xref ref-type="fig" rid="f7-sensors-09-06150">Figure 7</xref> shows the comparison results of accuracy for SUD_MBL and NEIGHBOR_SUD_MBL when the time interval is 20. When the time is 20, the accuracy of NEIGHBOR_SUD_MBL is suddenly improved, just because of the impact of neighbor’s observation. After the time is larger than 106, the accuracy will not be improved by a neighbor’s observation. Obviously, NEIGHBOR_SUD_MBL is more accurate than SUD_MBL from 20 to 106.</p>
<p>Under the same conditions, we show the result of SUD_MBL concerning the number of observations from the mobile beacon to the unknown node. <xref ref-type="table" rid="t3-sensors-09-06150">Table 3</xref> shows the average number of observations of unknown nodes from the beacon. As shown the second column in <xref ref-type="table" rid="t3-sensors-09-06150">Table 3</xref>, when the average number of observations (Number = 10) is equal to <italic>n<sub>d</sub></italic> (<italic>n<sub>d</sub></italic> <italic>=</italic> 10), SUD_MBL is still in the stabilization process (the time is 106), i.e., the samples of unknown node cannot represent the location of unknown node at this time. With the increase of the number of observations from the beacon, this number will far exceed the <italic>n<sub>d</sub></italic>, i.e., the neighbors’ observation will not improve the accuracy of SUD_MBL.</p></sec>
<sec>
<label>5.3.</label>
<title>SA-MBL</title>
<p><xref ref-type="fig" rid="f8-sensors-09-06150">Figure 8</xref> shows the coverage of AME for three different <italic>α</italic> of SUD_MBL. Whether the parameter <italic>α</italic> is 0.1r, 0.05r or 0.01r, as the time goes on, the AME of the unknown node will achieve stable phase eventually. To catch the AME of the stable phase under 10 different parameters <italic>α</italic> for later use, we give the <xref ref-type="table" rid="t4-sensors-09-06150">Table 4</xref> to show the results. These experimental results are the average of 20 executions with different pseudorandom number generator seeds. Based on this table, SA-MBL will adjust the value <italic>α</italic> according to the corresponding AME. In general, when this condition <italic>| AME<sub>c</sub></italic> - <italic>AME<sub>i</sub></italic> | &lt; ε is satisfied, where <italic>AME<sub>c</sub></italic> denotes the current AME maintained in the beacon and <italic>AME<sub>i</sub></italic> represents some value listed in the <italic>i</italic>-th row of the <xref ref-type="table" rid="t4-sensors-09-06150">Table 4</xref>. Then, the current parameter α<sub>c</sub> maintained in the unknown node will be set as α<sub>c</sub> = α<sub>i+1</sub>. For example, when current value of AME in the beacon is nearly 34, the parameter α will be adjusted to 0.07<italic>r</italic>. Similarly, the number of samples <italic>N</italic> will be adjusted accordingly based on <xref ref-type="table" rid="t4-sensors-09-06150">Table 4</xref>.</p>
<p>The graph in <xref ref-type="fig" rid="f9-sensors-09-06150">Figure 9</xref> shows the comparison of accuracy between A-MBL and SA-MBL. As shown in this figre, for A_MBL and SA_MBL, the curvature of the two curves are always very close to each other, i.e., MBL with Self-Adapting mechanism will get almost the same performance with A-MBL for which obtaining predefined adjustment tables is difficult. The graph in <xref ref-type="fig" rid="f10-sensors-09-06150">Figure 10</xref> shows the efficiency and accuracy comparison for SA-MBL under the same conditions except for the deployment region. In order to obtain close precision, the largest the deployment region (S = 700 × 700) will spend the longest convergence time among these experiments.</p>
<p>In another experiment we vary the unknown node density from 2 to 20. We set the time of beacon movement as 3,000 to achieve the stable phase. As shown in <xref ref-type="fig" rid="f11-sensors-09-06150">Figure 11</xref>, the unknown node density will not affect the accuracy of SA-MBL. That is to say, the adapting mechanism in SA-MBL can be unrelated to the deployment region, the location time and node density, i.e., the approach is actually self-adapting. Finally, the localization error bar in <xref ref-type="fig" rid="f11-sensors-09-06150">Figure 11</xref> shows that the SA-MBL is stable.</p></sec></sec>
<sec sec-type="conclusions">
<label>6.</label>
<title>Conclusions</title>
<p>In this paper, we compare the efficiency of various probability distributions in the dynamic model, and evaluate the accuracy of these approaches adopted as the dynamic model. We suggest that SUD should be adopted as the dynamic model due to achieve higher accuracy and not lose efficiency. We also conclude that the neighbors’ observation do not achieve more accuracy of MBL than expected. Finally, we propose SA-MBL which can judge the accuracy of MBL to reach the stable phase as the effect of predefined adjustment tables in A-MBL and be unrelated to the scale deployment of sensor nodes, localization time, and the speed of the beacon, etc., but just related to the unknown nodes themselves. As a result, SA-MBL can achieve more flexibility and result in almost the same performance as A-MBL. In future work, a number of practical factors will be considered, and the practical factors may affect efficiency, accuracy, and flexibility of our localization approaches.</p></sec></body>
<back>
<ack>
<p>This work is supported by the National Basic Research Program of China (973 Program) under grant No. 2006CB303000.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-09-06150"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Akyildiz</surname><given-names>I.F.</given-names></name><name><surname>Su</surname><given-names>W.</given-names></name><name><surname>Sankarasubramaniam</surname><given-names>Y.</given-names></name><name><surname>Cayirci</surname><given-names>E.</given-names></name></person-group><article-title>A survey on sensor networks</article-title><source>IEEE Commun. Mag</source><year>2002</year><volume>40</volume><fpage>102</fpage><lpage>114</lpage></citation></ref>
<ref id="b2-sensors-09-06150"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hightower</surname><given-names>J.</given-names></name><name><surname>Borriello</surname><given-names>G.</given-names></name></person-group><article-title>Location systems for ubiquitous computing</article-title><source>IEEE Comput</source><year>2001</year><volume>34</volume><fpage>57</fpage><lpage>66</lpage></citation></ref>
<ref id="b3-sensors-09-06150"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Teng</surname><given-names>G.</given-names></name><name><surname>Zheng</surname><given-names>K.</given-names></name><name><surname>Dong</surname><given-names>W.</given-names></name></person-group><article-title>Adapting mobile beacon-assisted localization in wireless sensor networks</article-title><source>Sensors</source><year>2009</year><volume>9</volume><fpage>2760</fpage><lpage>2779</lpage><pub-id pub-id-type="doi">10.3390/s90402760</pub-id><pub-id pub-id-type="pmid">22574044</pub-id></citation></ref>
<ref id="b4-sensors-09-06150"><label>4.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Priyantha</surname><given-names>N.B.</given-names></name><name><surname>Balakrishnan</surname><given-names>H.</given-names></name><name><surname>Demaine</surname><given-names>E.D.</given-names></name><name><surname>Teller</surname><given-names>S.</given-names></name></person-group><article-title>Mobile-assisted Localization in Wireless Sensor Networks</article-title><conf-name>Proceedings of The 24th Annual Joint Conference of the IEEE Computer and Communications Societies</conf-name><conf-loc>Miami, FL, USA</conf-loc><conf-date>2005</conf-date><fpage>172</fpage><lpage>183</lpage></citation></ref>
<ref id="b5-sensors-09-06150"><label>5.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Kim</surname><given-names>K.</given-names></name><name><surname>Lee</surname><given-names>W.</given-names></name></person-group><article-title>MBAL: A Mobile Beacon-assisted Localization Scheme for Wireless Sensor Networks</article-title><conf-name>Proceedings of The 16th International Conference on Computer Communications and Networks</conf-name><conf-loc>Honolulu, HI, USA</conf-loc><conf-date>2007</conf-date><fpage>57</fpage><lpage>62</lpage></citation></ref>
<ref id="b6-sensors-09-06150"><label>6.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Sichitiu</surname><given-names>M.L.</given-names></name><name><surname>Ramadurai</surname><given-names>V.</given-names></name></person-group><article-title>Localization of Wireless Sensor Networks with a Mobile Beacon</article-title><conf-name>Proceedings of The First IEEE Conference on Mobile Ad-hoc and Sensor Systems</conf-name><conf-loc>Philadelphia, PA, USA</conf-loc><conf-date>2004</conf-date><fpage>174</fpage><lpage>183</lpage></citation></ref>
<ref id="b7-sensors-09-06150"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Caballero</surname><given-names>F.</given-names></name><name><surname>Merino</surname><given-names>L.</given-names></name><name><surname>Maza</surname><given-names>I.</given-names></name><name><surname>Ollero</surname><given-names>A.</given-names></name></person-group><article-title>A Particle Filtering Method for Wireless Sensor Network Localization with an Aerial Robot Beacon</article-title><conf-name>Proceedings of IEEE International Conference on Robotics and Automation</conf-name><conf-loc>Pasadena, CA, USA</conf-loc><conf-date>2008</conf-date><fpage>596</fpage><lpage>601</lpage></citation></ref>
<ref id="b8-sensors-09-06150"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Marinakis</surname><given-names>D.</given-names></name><name><surname>Meger</surname><given-names>D.</given-names></name><name><surname>Rekleitis</surname><given-names>I.</given-names></name><name><surname>Dudek</surname><given-names>G.</given-names></name></person-group><article-title>Hybrid Inference for Sensor Network Localization Using a Mobile Robot</article-title><conf-name>Proceedings of the Twenty-Second AAAI Conference on Artificial Intelligence</conf-name><conf-loc>Vancouver, BC, Canada</conf-loc><conf-date>2007</conf-date><fpage>1089</fpage><lpage>1094</lpage></citation></ref>
<ref id="b9-sensors-09-06150"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ihler</surname><given-names>A.T.</given-names></name><name><surname>Fisher</surname><given-names>J.W.</given-names></name><name><surname>Moses</surname><given-names>R.L.</given-names></name><name><surname>Willsky</surname><given-names>A.S.</given-names></name></person-group><article-title>Nonparametric belief propagation for self-localization of sensor networks</article-title><source>IEEE J. Sel. Area Comm</source><year>2005</year><volume>23</volume><fpage>809</fpage><lpage>819</lpage><pub-id pub-id-type="doi">10.1109/JSAC.2005.843548</pub-id></citation></ref>
<ref id="b10-sensors-09-06150"><label>10.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Peng</surname><given-names>R.</given-names></name><name><surname>Sichitiu</surname><given-names>M.L.</given-names></name></person-group><article-title>Robust, Probabilistic, Constraint-Based Localization for Wireless Sensor Networks</article-title><conf-name>Proceedings of The Second Annual IEEE Sensor and Ad Hoc Communications and Networks</conf-name><conf-loc>Santa Clara, CA, USA</conf-loc><conf-date>2005</conf-date><fpage>541</fpage><lpage>550</lpage></citation></ref>
<ref id="b11-sensors-09-06150"><label>11.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Li</surname><given-names>M.</given-names></name><name><surname>Liu</surname><given-names>Y.</given-names></name></person-group><article-title>Rendered Path: Range-Free Localization in Anisotropic Sensor Networks with Holes</article-title><conf-name>Proceedings of The 13th Annual ACM International Conference on Mobile Computing and Networking</conf-name><conf-loc>Montreal, QU, Canada</conf-loc><conf-date>2007</conf-date><fpage>51</fpage><lpage>62</lpage></citation></ref>
<ref id="b12-sensors-09-06150"><label>12.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Stoleru</surname><given-names>R.</given-names></name><name><surname>He</surname><given-names>T.</given-names></name><name><surname>Stankovic</surname><given-names>J.A.</given-names></name></person-group><article-title>Walking gps: A Practical Solution for Localization in Manually Deployed Wireless Sensor Networks</article-title><conf-name>Proceedings of The 29th Annual IEEE International Conference on Local Computer Networks</conf-name><conf-loc>Tampa, FL, USA</conf-loc><conf-date>2004</conf-date><fpage>480</fpage><lpage>489</lpage></citation></ref>
<ref id="b13-sensors-09-06150"><label>13.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Xiao</surname><given-names>B.</given-names></name><name><surname>Chen</surname><given-names>H.K.</given-names></name><name><surname>Zhou</surname><given-names>S.G.</given-names></name></person-group><article-title>A Walking Beacon-assisted Localization in Wireless Sensor Networks</article-title><conf-name>Proceedings of International Conference on Communications</conf-name><conf-loc>Glasgow, Scotland</conf-loc><conf-date>2007</conf-date><fpage>3070</fpage><lpage>3075</lpage></citation></ref>
<ref id="b14-sensors-09-06150"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname><given-names>R.</given-names></name><name><surname>Zruba</surname><given-names>G.V.</given-names></name></person-group><article-title>Monte carlo localization of wireless sensor networks with a single mobile beacon</article-title><source>Wirel. Netw</source><year>2008</year><pub-id pub-id-type="doi">10.1007/s11276-008-0096-3</pub-id></citation></ref>
<ref id="b15-sensors-09-06150"><label>15.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Teng</surname><given-names>G.</given-names></name><name><surname>Zheng</surname><given-names>K.</given-names></name><name><surname>Dong</surname><given-names>W.</given-names></name></person-group><article-title>MA-MCL: Mobile-Assisted Monte Carlo Localization for Wireless Sensor Networks</article-title><conf-name>Proceedings of The 4th Int'l Symp. on Innovations and Real-time Applications of Distributed Sensor Networks</conf-name><conf-loc>Hangzhou, China</conf-loc><conf-date>2009</conf-date><fpage>148</fpage><lpage>155</lpage></citation></ref>
<ref id="b16-sensors-09-06150"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Rudafshani</surname><given-names>M.</given-names></name><name><surname>Datta</surname><given-names>S.</given-names></name></person-group><article-title>Localization in Wireless Sensor Networks</article-title><conf-name>Proceedings of the 6th International Conference on Information Processing in Sensor Networks</conf-name><conf-loc>Cambridge, MA, USA</conf-loc><conf-date>2007</conf-date><fpage>51</fpage><lpage>60</lpage></citation></ref>
<ref id="b17-sensors-09-06150"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Woo</surname><given-names>A.</given-names></name><name><surname>Tong</surname><given-names>T.</given-names></name><name><surname>Culler</surname><given-names>D.</given-names></name></person-group><article-title>Taming the Underlying Challenges of Reliable Multihop Routing in Sensor Networks</article-title><conf-name>Proceedings of the First International Conference on Embedded Networked Sensor Systems</conf-name><conf-loc>Los Angeles, CA, USA</conf-loc><conf-date>2003</conf-date><fpage>14</fpage><lpage>27</lpage></citation></ref>
<ref id="b18-sensors-09-06150"><label>18.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>L.</given-names></name><name><surname>Evans</surname><given-names>D.</given-names></name></person-group><article-title>Localization for Mobile Sensor Networks</article-title><conf-name>Proceedings of the 10th Annual International Conference on Mobile Computing and Networking</conf-name><conf-loc>New York, NY, USA</conf-loc><conf-date>2004</conf-date><fpage>45</fpage><lpage>57</lpage></citation></ref>
<ref id="b19-sensors-09-06150"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arulampalam</surname><given-names>S.</given-names></name><name><surname>Maskell</surname><given-names>S.</given-names></name><name><surname>Gordon</surname><given-names>N.</given-names></name></person-group><article-title>A tutorial on particle filters for online nonlinear/non-gaussian bayesian tracking</article-title><source>IEEE Trans. Signal Process</source><year>2002</year><volume>50</volume><fpage>174</fpage><lpage>188</lpage><pub-id pub-id-type="doi">10.1109/78.978374</pub-id></citation></ref>
<ref id="b20-sensors-09-06150"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kitagawa</surname><given-names>G.</given-names></name></person-group><article-title>Monte carlo filter and smoother for non-gaussian nonlinear state space models</article-title><source>J. Comput. Graph. Stat</source><year>1996</year><volume>5</volume><fpage>1</fpage><lpage>25</lpage></citation></ref>
<ref id="b21-sensors-09-06150"><label>21.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Ross</surname><given-names>S.M.</given-names></name></person-group><source>Introduction to Probability Models</source><edition>Ninth Edition</edition><publisher-name>Academic Press</publisher-name><publisher-loc>Burlington, MA, USA</publisher-loc><year>2006</year><fpage>663</fpage><lpage>680</lpage></citation></ref>
<ref id="b22-sensors-09-06150"><label>22.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Nagpal</surname><given-names>R.</given-names></name><name><surname>Shrobe</surname><given-names>H.</given-names></name><name><surname>Bachrach</surname><given-names>J.</given-names></name></person-group><article-title>Organizing a Global Coordinate System from Local Information on an Ad Hoc Sensor Network</article-title><conf-name>Proceedings of Second International Workshop on Information Processing in Sensor Networks</conf-name><conf-loc>Palo Alto, CA, USA</conf-loc><conf-date>2003</conf-date><fpage>333</fpage><lpage>348</lpage></citation></ref>
<ref id="b23-sensors-09-06150"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Fox</surname><given-names>D.</given-names></name><name><surname>Burgard</surname><given-names>W.</given-names></name><name><surname>Dellaert</surname><given-names>F.</given-names></name></person-group><article-title>Monte Carlo Localization: Efficient Position Estimation for Mobile Robots</article-title><conf-name>Proceedings of The Sixteenth National Conference on Artificial Intelligence</conf-name><conf-loc>Orlando, FL, USA</conf-loc><conf-date>1999</conf-date><fpage>343</fpage><lpage>349</lpage></citation></ref>
<ref id="b24-sensors-09-06150"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Fox</surname><given-names>D.</given-names></name></person-group><article-title>Adapting the sample size in particle filters through KLD-sampling</article-title><source>Int. J. Rob. Res</source><year>2003</year><volume>22</volume><fpage>985</fpage><lpage>1003</lpage><pub-id pub-id-type="doi">10.1177/0278364903022012001</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-09-06150" position="float">
<label>Figure 1.</label>
<caption>
<p>Polar method of CUD.</p></caption>
<graphic xlink:href="sensors-09-06150f1.gif"/></fig>
<fig id="f2-sensors-09-06150" position="float">
<label>Figure 2.</label>
<caption>
<p>The weight of neighbors.</p></caption>
<graphic xlink:href="sensors-09-06150f2.gif"/></fig>
<fig id="f3-sensors-09-06150" position="float">
<label>Figure 3.</label>
<caption>
<p>Accuracy comparison of different dynamic model.</p></caption>
<graphic xlink:href="sensors-09-06150f3.gif"/></fig>
<fig id="f4-sensors-09-06150" position="float">
<label>Figure 4.</label>
<caption>
<p>Accuracy comparison between SUD_A-MBL and ND_MBL.</p></caption>
<graphic xlink:href="sensors-09-06150f4.gif"/></fig>
<fig id="f5-sensors-09-06150" position="float">
<label>Figure 5.</label>
<caption>
<p>Accuracy comparison between SUD_A-MBL and ND_A-MBL.</p></caption>
<graphic xlink:href="sensors-09-06150f5.gif"/></fig>
<fig id="f6-sensors-09-06150" position="float">
<label>Figure 6.</label>
<caption>
<p>Comparison of neighbor’s impact when (Time ≥200) and (Time mod 200 = 0).</p></caption>
<graphic xlink:href="sensors-09-06150f6.gif"/></fig>
<fig id="f7-sensors-09-06150" position="float">
<label>Figure 7.</label>
<caption>
<p>Comparison of neighbor’s impact when (Time ≥ 20) and (Time mod 20 = 0).</p></caption>
<graphic xlink:href="sensors-09-06150f7.gif"/></fig>
<fig id="f8-sensors-09-06150" position="float">
<label>Figure 8.</label>
<caption>
<p>The coverage of AME in three different α.</p></caption>
<graphic xlink:href="sensors-09-06150f8.gif"/></fig>
<fig id="f9-sensors-09-06150" position="float">
<label>Figure 9.</label>
<caption>
<p>Accuracy comparison between A-MBL and SA_MBL.</p></caption>
<graphic xlink:href="sensors-09-06150f9.gif"/></fig>
<fig id="f10-sensors-09-06150" position="float">
<label>Figure 10.</label>
<caption>
<p>Location convergence under different deployment regions.</p></caption>
<graphic xlink:href="sensors-09-06150f10.gif"/></fig>
<fig id="f11-sensors-09-06150" position="float">
<label>Figure 11.</label>
<caption>
<p>Unknown node density.</p></caption>
<graphic xlink:href="sensors-09-06150f11.gif"/></fig>
<fig id="f12-sensors-09-06150" position="float">
<label>Figure 12.</label>
<caption>
<p>Error bar of SA-MBL.</p></caption>
<graphic xlink:href="sensors-09-06150f12.gif"/></fig>
<table-wrap id="t1-sensors-09-06150" position="float">
<label>Table 1.</label>
<caption>
<p>The efficiency of different algorithms.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle" rowspan="2"><bold>Probability Distribution</bold></th>
<th colspan="3" align="center" valign="middle"><bold>UD (Uniform Distribution)</bold>
<hr/></th>
<th colspan="2" align="center" valign="middle" rowspan="2"><bold>ND (Normal Distribution)</bold></th></tr>
<tr>
<th align="center" valign="middle"><bold>SUD</bold></th>
<th colspan="2" align="center" valign="middle"><bold>CUD</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Simulation Method</td>
<td align="center" valign="top"/>
<td align="center" valign="top">Accept-Reject</td>
<td align="center" valign="top">Polar</td>
<td align="center" valign="top">Box-Muller</td>
<td align="center" valign="top">Polar</td></tr>
<tr>
<td align="left" valign="top">Random Numbers</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2.546</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2.546</td></tr>
<tr>
<td align="left" valign="top">Trigonometric Function</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">0</td></tr>
<tr>
<td align="left" valign="top">Logarithm</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td></tr>
<tr>
<td align="left" valign="top">Square Root</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td></tr>
<tr>
<td align="left" valign="top">Multiplication</td>
<td align="center" valign="top">4</td>
<td align="center" valign="top">7.638</td>
<td align="center" valign="top">5</td>
<td align="center" valign="top">6</td>
<td align="center" valign="top">10.638</td></tr>
<tr>
<td align="left" valign="top">Division</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-09-06150" position="float">
<label>Table 2.</label>
<caption>
<p>The accuracy of different dynamic model.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="bottom"><bold>Name</bold></th>
<th align="left" valign="middle"><bold>SUN_MBL</bold></th>
<th align="left" valign="middle"><bold>CUD_MBL</bold></th>
<th align="left" valign="middle"><bold>ND_MBL</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="middle"><bold>Error</bold></td>
<td align="left" valign="middle">0.097430</td>
<td align="left" valign="middle">0.090572</td>
<td align="left" valign="middle">0.073601</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-09-06150" position="float">
<label>Table 3.</label>
<caption>
<p>The average number of observations from beacon.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Time</bold></th>
<th align="left" valign="middle"><bold>106</bold></th>
<th align="left" valign="middle"><bold>208</bold></th>
<th align="left" valign="middle"><bold>500</bold></th>
<th align="left" valign="middle"><bold>1000</bold></th>
<th align="left" valign="middle"><bold>2000</bold></th>
<th align="left" valign="middle"><bold>3000</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="middle"><bold>Number</bold></td>
<td align="left" valign="middle">10</td>
<td align="left" valign="middle">20</td>
<td align="left" valign="middle">45</td>
<td align="left" valign="middle">91</td>
<td align="left" valign="middle">176</td>
<td align="left" valign="middle">260</td></tr></tbody></table></table-wrap>
<table-wrap id="t4-sensors-09-06150" position="float">
<label>Table 4.</label>
<caption>
<p>Parameters for ten different values of AME.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle"><bold>No.</bold></th>
<th align="center" valign="middle"><bold>α</bold></th>
<th align="center" valign="middle"><bold>N</bold></th>
<th align="center" valign="middle"><bold>AME</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0.10r</td>
<td align="center" valign="top">50</td>
<td align="center" valign="top">38.749791</td></tr>
<tr>
<td align="center" valign="top">2</td>
<td align="center" valign="top">0.09r</td>
<td align="center" valign="top">50</td>
<td align="center" valign="top">36.766873</td></tr>
<tr>
<td align="center" valign="top">3</td>
<td align="center" valign="top">0.08r</td>
<td align="center" valign="top">40</td>
<td align="center" valign="top">34.275935</td></tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">0.07r</td>
<td align="center" valign="top">40</td>
<td align="center" valign="top">30.948355</td></tr>
<tr>
<td align="center" valign="top">5</td>
<td align="center" valign="top">0.06r</td>
<td align="center" valign="top">30</td>
<td align="center" valign="top">28.403102</td></tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">0.05r</td>
<td align="center" valign="top">30</td>
<td align="center" valign="top">24.881642</td></tr>
<tr>
<td align="center" valign="top">7</td>
<td align="center" valign="top">0.04r</td>
<td align="center" valign="top">20</td>
<td align="center" valign="top">21.765849</td></tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">0.03r</td>
<td align="center" valign="top">20</td>
<td align="center" valign="top">18.161460</td></tr>
<tr>
<td align="center" valign="top">9</td>
<td align="center" valign="top">0.02r</td>
<td align="center" valign="top">10</td>
<td align="center" valign="top">13.720697</td></tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">0.01r</td>
<td align="center" valign="top">10</td>
<td align="center" valign="top">08.323300</td></tr></tbody></table></table-wrap></sec></back></article>
