<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">12986</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2020.012986</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Three-Dimensional Distance-Error-Correction-Based Hop Localization Algorithm for IoT Devices</article-title><alt-title alt-title-type="left-running-head">Three-Dimensional Distance-Error-Correction-Based Hop Localization Algorithm for IoT Devices</alt-title><alt-title alt-title-type="right-running-head">Three-Dimensional Distance-Error-Correction-Based Hop Localization Algorithm for IoT Devices</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author">
<name name-style="western">
<surname>Prashar</surname>
<given-names>Deepak</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western">
<surname>Joshi</surname>
<given-names>Gyanendra Prasad</given-names>
</name>
<xref ref-type="aff" rid="aff-2">2</xref>
</contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western">
<surname>Jha</surname>
<given-names>Sudan</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western">
<surname>Yang</surname>
<given-names>Eunmok</given-names>
</name>
<xref ref-type="aff" rid="aff-3">3</xref>
</contrib>
<contrib id="author-5" contrib-type="author" corresp="yes">
<name name-style="western">
<surname>Son</surname>
<given-names>Kwang Chul</given-names>
</name>
<xref ref-type="aff" rid="aff-4">4</xref>
<email>kcson@kw.ac.kr</email>
</contrib>
<aff id="aff-1">
<label>1</label><institution>School of Computer Science and Engineering, Lovely Professional University</institution>, <addr-line>Punjab, 144001</addr-line>, <country>India</country></aff>
<aff id="aff-2">
<label>2</label><institution>Department of Computer Science and Engineering, Sejong University</institution>, <addr-line>Seoul, 05006</addr-line>, <country>Korea</country></aff>
<aff id="aff-3">
<label>3</label><institution>Department of Financial Information Security, Kookmin University</institution>, <addr-line>Seoul, 02707</addr-line>, <country>Korea</country></aff>
<aff id="aff-4">
<label>4</label><institution>Department of Information Contents, Kwangwoon University</institution>, <addr-line>Seoul, 01897</addr-line>, <country>Korea</country></aff>
</contrib-group><author-notes><corresp id="cor1">&#x002A;Corresponding Author: Kwang Chul Son. Email: <email>kcson@kw.ac.kr</email></corresp></author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2020-11-21">
<day>21</day>
<month>11</month>
<year>2020</year>
</pub-date>
<volume>66</volume>
<issue>2</issue>
<fpage>1529</fpage>
<lpage>1549</lpage>
<history>
<date date-type="received">
<day>21</day>
<month>7</month>
<year>2020</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>8</month>
<year>2020</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2020 Prashar et al.</copyright-statement>
<copyright-year>2020</copyright-year>
<copyright-holder>Prashar et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_12986.pdf"></self-uri>
<abstract>
<p>The Internet of Things (IoT) is envisioned as a network of various wireless sensor nodes communicating with each other to offer state-of-the-art solutions to real-time problems. These networks of wireless sensors monitor the physical environment and report the collected data to the base station, allowing for smarter decisions. Localization in wireless sensor networks is to localize a sensor node in a two-dimensional plane. However, in some application areas, such as various surveillances, underwater monitoring systems, and various environmental monitoring applications, wireless sensors are deployed in a three-dimensional plane. Recently, localization-based applications have emerged as one of the most promising services related to IoT. In this paper, we propose a novel distributed range-free algorithm for node localization in wireless sensor networks. The proposed three-dimensional hop localization algorithm is based on the distance error correction factor. In this algorithm, the error decreases with the localization process. The distance correction factor is used at various stages of the localization process, which ultimately mitigates the error. We simulated the proposed algorithm using MATLAB and verified the accuracy of the algorithm. The simulation results are compared with some of the well-known existing algorithms in the literature. The results show that the proposed three-dimensional error-correction-based algorithm performs better than existing algorithms.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>3D localization</kwd>
<kwd>DV-hop algorithm</kwd>
<kwd>IoT</kwd>
<kwd>PSO</kwd>
<kwd>wireless sensor networks</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Sensor nodes are a central part of Internet of Things (IoT) systems, enabling the IoT and the Industrial IoT (IIoT) by collecting, analyzing, storing, transmitting, and utilizing the data based on the application. Sensors are becoming more versatile, and they are used more and more in many IoT applications, including Industry 4.0, consumer wearables, healthcare services, and remote monitoring systems. A Wireless Sensor Network (WSN) is used in the design of the IoT for sensing the environment, collecting the data, and sending the data to the base station and to the locations used for analysis. In WSNs, sensor nodes operate together to sense the surroundings to attain a common goal. However, if a Base Station (BS) receives data from a particular event, but does not recognize where the event has happened, the BS cannot take the best action for the event. Because automation and intelligence have become prominent components of today&#x2019;s technology-driven society, there is increasing demand for localization in various applications, including smart cities, smart healthcare, habitat monitoring, and military applications, among others [<xref ref-type="bibr" rid="ref-1">1</xref>&#x2013;<xref ref-type="bibr" rid="ref-3">3</xref>].</p>
<p>Localization means the ability to discover where an event occurs. The security of the localization information is crucial for some applications, like missile target identification, disaster management, and monitoring of the elderly, among others [<xref ref-type="bibr" rid="ref-4">4</xref>]. The classic meaning of localization is to localize a sensor node in a Two-Dimensional (2D) WSN. However, in certain application areas, such as surveillance, underwater monitoring, and environmental monitoring, WSNs are deployed in a Three-Dimensional (3D) plane. While 2D uses only two planes, the <italic>x</italic> and <italic>y</italic> planes, 3D uses an additional <italic>z</italic> plane for height. 3D localization is more complex than 2D localization. There are several 2D localization schemes available in the literature; however, for 3D localization, the options are limited [<xref ref-type="bibr" rid="ref-5">5</xref>]. Global Positioning System (GPS) is the best-known localization solution; however, it requires a line of sight with a number of GPS satellites for accurate location information. The GPS system does not work effectively if electromagnetic waves are obstructed by obstacles in environments such as indoors, underwater, in dense forests, and or in urban canyons. This means that an alternative method is needed to find event locations without GPS, even if GPS is still the most accurate method [<xref ref-type="bibr" rid="ref-6">6</xref>]. In this work, we focus on developing a novel approach based on hop counts for localization with better accuracy.</p>
<p>In WSNs, the nodes that know their position in the network are called anchor nodes, and those that do not know their location are known as unknown nodes [<xref ref-type="bibr" rid="ref-7">7</xref>]. In general, most localization algorithms are classified into two categories: range-based and range-free localization algorithms [<xref ref-type="bibr" rid="ref-8">8</xref>]. Range-based localization algorithms are always restricted in terms of hardware requirements, and primarily use parameters like Received Signal Strength Indicator (RSSI), Time of Arrival (TOA), Time Difference of Arrival (TDOA), etc. This approach is vulnerable to noise and signal fading and may lose some of the information. On the other hand, range-free localization algorithms use the connectivity and hop count values as a parameter. The main challenge with this approach is accuracy. Although range-free localization is less accurate than 2D algorithms, this is a cost-effective method without restrictive hardware requirements.</p>
<p>Consequently, we sought to find a range-free localization approach with greater accuracy in the 3D environment. While there has been a lot of research on the 2D environment, the 3D environment is actually where most of the real-world applications work. Working in the 3D environment is challenging, as it requires more complicated computations. In the last decade, much work has been done on hop-based algorithms, but there are still many issues related to accuracy and complexity. In this work, we propose an approach to enhance the accuracy of traditional hop-based algorithms for 3D environments. The proposed Three-Dimensional Distance-Error-Correction-based hop (3D-DECHop) localization algorithm is based on the distance error correction factor. The main contributions of the paper are as follows.</p><list list-type="roman-lower"><list-item>
<p>It proposes a distributed and range-free 3D localization algorithm based on the error correction factor for the hop-based localization system. The proposed algorithm mitigates error and increases accuracy.</p></list-item><list-item>
<p>The proposed approach is compared to the basic hop-based approach through empirical analysis to demonstrate its effectiveness.</p></list-item><list-item>
<p>An extensive assessment of the proposed approach and comparisons with other established algorithms of a similar nature are presented.</p></list-item></list>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Work</title>
<p>In this section we discuss some of the 3D localization algorithms reported in the literature. Localization for the 3D environment has been studied less than that for the 2D environment. One of the major challenges of the 3D localization algorithm is accuracy. There are several 3D localization algorithms that are well studied, such as Approximation Point in Triangle (APIT), centroid, amorphous, Multi Dimensional Scaling (MDS), grid scan, and Distance Vector hop (DV-Hop). Researchers have focused mainly on DV-Hop-based approaches because they are simpler and require less hardware. In general, a modified 3D DV-Hop approach depends on the error correction factor.</p>
<p>Chen et al. [<xref ref-type="bibr" rid="ref-9">9</xref>] proposed a centroid localization algorithm for 3D WSNs. This algorithm has three steps. First, every anchor passes the coordinate data to other sensor nodes in the same field. Every unknown node gets the detailed coordinates of the various anchor nodes. In the second step, an unknown node selects any four anchors within its range value form the tetrahedron. In the third step, nodes use the centroid theorem on the tetrahedron. This scheme is promising for 3D WSN applications. However, the localization error in this approach is very high and accuracy is low.</p>
<p>Yang et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] presented a 3D Voronoi diagram-based sequence localization correction algorithm called SLC3V. This algorithm uses a Voronoi diagram for dividing the 3D location space to build a rank sequence table. SLC3V uses the RSSI method between beacon nodes as a reference to correct the measured distance. The authors deploy the beacon nodes randomly in a 3D cube for simulation. The simulation results show that this algorithm can improve localization accuracy for sensor nodes in complex 3D space with fewer measurements and fewer computational costs. Singh et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] proposed a 3D node localization algorithm using Computational Intelligence (CI) for moving target nodes in an anisotropic network. CI applications, i.e., Particle Swarm Optimization (PSO), H-best Particle Swarm Optimization (HPSO), Biogeography-Based Optimization (BBO), and the Firefly Algorithm (FA), are used to estimate the optimum location of nodes. Each node is assumed to have a heterogeneous property due to residual battery status. Whenever a target moving node comes within range of the anchor, the projection method is used to find its position. This algorithm can be used in various harsh environment applications and in rescue operations in hostile areas.</p>
<p>Another approach based on the multidimensional scaling technique for 3D node localization in a WSN is proposed by Stojkoska [<xref ref-type="bibr" rid="ref-12">12</xref>]. In this work, the author used the heuristic methods for distance calculation. One of the limitations of this approach is that it does not perform well in complex deployment scenarios with irregular topologies. 3PDHDV-Hop is another approach, proposed by Wang et al. [<xref ref-type="bibr" rid="ref-13">13</xref>], which uses the partial value instead of the average value of the hop size in a 3D network environment. It reduces error and improves accuracy by selecting the projection plane. A localization based on the Gauss&#x2013;Newton method is developed for 3D WSNs to improve the coordinate estimation [<xref ref-type="bibr" rid="ref-14">14</xref>]. This algorithm delivers better outcomes compared to other DV-Hop-based algorithms, which use the least square technique for position estimation. Ahmad et al. [<xref ref-type="bibr" rid="ref-15">15</xref>] proposed a scheme called Parametric Loop Division (PLD). In this algorithm, the sensor node position is calculated with the support of anchor nodes deployed in the form of a ring matrix. Compared to APIT, DV-Hop, and MDS algorithms, this scheme has low computation costs and low complexity. Yi et al. [<xref ref-type="bibr" rid="ref-16">16</xref>] proposed a hybrid approach based on APIT and DV-Hop. The APIT and DV-Hop algorithms are merged, and a new hybrid approach is formulated for improving localization accuracy with large coverage. The localization accuracy in dense environments is increased using triangles in the triangle interior point test (PIT) by selecting good triangles. The simulation results show that this hybrid algorithm can improve localization accuracy in a dense environment and increase location coverage of beacon nodes in a sparse environment.</p>
<p>Chen et al. [<xref ref-type="bibr" rid="ref-17">17</xref>] proposed a PSO-based 3D localization algorithm to mitigate the challenges of the basic DV-Hop algorithms. This approach is more effective and has less cost involved in the computation. Another algorithm for 3D space, called particle-based improved DV-Hop (PMDV-Hop), is proposed for the real-world environment [<xref ref-type="bibr" rid="ref-18">18</xref>]. In this algorithm, the average distance per hop of the anchor nodes is calculated by RMSE and is dynamically corrected with weighted RMSE. The PSO of intelligent optimization algorithms is applied to an MDV-Hop localization algorithm, called PMDV-hop. In this algorithm, the inertia weight and trust coefficient are calculated dynamically. An enhanced DV-Hop algorithm, which depends on cuckoo search to increase effectiveness in terms of error and precision values, is presented by Zhang et al. [<xref ref-type="bibr" rid="ref-19">19</xref>]. This approach uses an adaptive bird nest and step search technique to increase the convergence percentage of the algorithm. One of the challenges not addressed by this algorithm is the un-organized distribution of anchor nodes (which is accommodated by our proposed approach). It is because in our proposed approach there is no fixed position deployment of nodes whereas in the former one, they have deployed the nodes at some fixed positions. In our proposed approach random distribution models are used for deploying the nodes.</p>
<p>Some variations of the algorithms discussed above are presented with more analysis and in an improved form in [<xref ref-type="bibr" rid="ref-20">20</xref>&#x2013;<xref ref-type="bibr" rid="ref-24">24</xref>]. From these reviews we concluded that accurate localization in a 3D environment is a very challenging task, and that there is still room for improvement in this domain. Therefore, we set out to improve the accuracy of the hop-based algorithm. The environment in 3D is more complex than 2D and it is not just adding one more dimension into it. But the main challenges lie in deciding the plane of the coordinate for calculating the correct position which is the future work pertaining to the present proposed approach. Also, the proposed work can be extended with the introduction of optimization strategies for inferring more accurate insights.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Proposed 3D-DEC Hop Algorithm</title>
<p>In general, all hop-based algorithms are based on the Distance Vector (DV) approach. They include three basic steps: hop count calculation, average hop size calculation, and estimation of coordinates. First of all, the distances between the nodes are calculated using the hop count. Then hop size values are calculated for the estimation of coordinates, using any available method. During the distance calculation, there are opportunities for error accumulation, which can reduce localization accuracy. The algorithm is more prone to error when the environment is real, i.e., when the environment is 3D. In this section, we describe the proposed new 3D distance-error-correction-based hop (3D-DECHop) localization algorithm. It is based on our previous work, where we developed a distance error correction approach for 2D hop-based localization [<xref ref-type="bibr" rid="ref-25">25</xref>]. Here, the proposed approach is in 3D but there is much difference in the execution of the localization process and deployment of the nodes in the given environment.</p>
<sec id="s3_1">
<label>3.1</label>
<title>Steps of the 3D-DECHop Approach</title>
<p>The proposed 3D-DECHop algorithm has the following steps:</p><list list-type="roman-lower"><list-item>
<p>Hop count calculation</p></list-item><list-item>
<p>Modified average hop size calculation based on distance error correction</p></list-item><list-item>
<p>Estimation of the coordinates</p></list-item></list>
<p><bold>Representation of variables</bold></p><list list-type="roman-lower"><list-item>
<p>(<italic>X</italic><sub><italic>a</italic></sub>, <italic>Y</italic><sub><italic>a</italic></sub>, <italic>Z</italic><sub><italic>a</italic></sub>): Coordinates of the anchor node</p></list-item><list-item>
<p>(<italic>X</italic><sub><italic>u</italic></sub>, <italic>Y</italic><sub><italic>u</italic></sub>, <italic>Z</italic><sub><italic>u</italic></sub>): Coordinates of the unknown node</p></list-item><list-item>
<p><italic>h_cont:</italic> The number of hops between the sending and the receiving node</p></list-item><list-item>
<p><italic>tn</italic>: The total number of anchor nodes</p></list-item><list-item>
<p><italic>average_hop_dist</italic><sub><italic>a</italic></sub>: Average hop distance of a particular anchor from other anchor nodes</p></list-item><list-item>
<p><italic>av_net_hop_dist</italic>: The average of the average hop distances of all the anchors</p></list-item><list-item>
<p><italic>dist_err</italic><sub><italic>a</italic></sub>: The error in distance between actual coordinates using hop-based distance</p></list-item><list-item>
<p><italic>average_error_Anchor</italic><sub><italic>a</italic></sub>: An average of <italic>dist_err</italic><sub><italic>a</italic></sub></p></list-item><list-item>
<p><italic>total_error</italic>: The overall error from each anchor</p></list-item><list-item>
<p><italic>dist</italic><sub><italic>u,a</italic>:</sub> The distance between the unknown and the anchor node</p></list-item></list>
<sec id="s3_1_1">
<label>3.1.1</label>
<title>Hop Count Calculation</title>
<p>In the proposed 3D-DECHop algorithm, the hop count calculation is done as in 3D DV-Hop and PSO-based 3D DV-Hop algorithms. All anchor nodes in the network broadcast the packets that contain the details of the coordinates, initially set as <italic>h_count</italic> &#x003D; 0, and the <italic>ID</italic> of the node. Each node, whether it is an anchor or an unknown node, maintains the table of every anchor node. A node can receive packets from the same anchor node via different paths, because of broadcasting. Therefore, whenever a node receives the same packet, it checks the hop count. If the hop count is smaller than the previous entry in the table, the node receives the packet and updates the table hop count; otherwise it discards the packet. Eventually, every node finds the minimum hop count to every other node in the network.</p>
</sec>
<sec id="s3_1_2">
<label>3.1.2</label>
<title>Modified Average Hop Size Calculation</title>
<p>Anchor nodes use the following equation, <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref>, to find the average hop distance to another anchor node.</p>
<p><italic>For each anchor</italic></p>
<p><disp-formula id="eqn-1">
<label>(1)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-1.png"/><tex-math id="tex-eqn-1"><![CDATA[$$average\_hop\_dis{t_a} = \displaystyle{{\sum \sqrt {( {( {{X_a}} ) - ( {{X_j}} )} ){^2} + {{(( {{Y_a}} ) - ( {{Y_j}} ))}^2} + {{(\left( {{Z_a}} \right) - ({Z_j}))}^2}} } \over {\sum h \_con{t_{a,j}}}}\,\quad j = 1{\rm}\;{\rm to}\;{\rm }{t_n}\;{\rm and}\;{\rm }j \ne {\rm }a$$]]></tex-math><mml:math id="mml-eqn-1" display="block"><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mo>&#x2211;</mml:mo><mml:msqrt><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mo>&#x2211;</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:mspace width="thinmathspace"></mml:mspace><mml:mspace width="1em"></mml:mspace><mml:mi>j</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn><mml:mrow></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow></mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mrow></mml:mrow><mml:mi>a</mml:mi></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p>After obtaining the average hop distance, anchors broadcast the <italic>average_hop_dist</italic><sub><italic>a</italic></sub>. Once anchors receive and update their tables with the <italic>average_hop_dist</italic><sub><italic>a</italic></sub>, they calculate the average of <inline-formula id="ieqn-1">
<alternatives><inline-graphic xlink:href="ieqn-1.png"/><tex-math id="tex-ieqn-1"><![CDATA[${average}\_{hop}\_{dis}{{t}_{ a}}$]]></tex-math><mml:math id="mml-ieqn-1"><mml:mrow><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">v</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">g</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">h</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">a</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> as <inline-formula id="ieqn-2">
<alternatives><inline-graphic xlink:href="ieqn-2.png"/><tex-math id="tex-ieqn-2"><![CDATA[${av}\_{net}\_{hop}\_{dist}$]]></tex-math><mml:math id="mml-ieqn-2"><mml:mrow><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">h</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula>. While in conventional 3D DV-Hop, the average hop distance to the closest anchor node is used, in the proposed 3D-DECHop algorithm the average of the hop distance for the entire network is used, as in <xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref>. Through the addition of the <inline-formula id="ieqn-3">
<alternatives><inline-graphic xlink:href="ieqn-3.png"/><tex-math id="tex-ieqn-3"><![CDATA[${av}\_{net}\_{ hop}\_{dist}$]]></tex-math><mml:math id="mml-ieqn-3"><mml:mrow><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">h</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula> value, which is a modification of the traditional algorithm, the overall localization process becomes independent of the nearest anchor. The reason for this process is that the use of the average distance to the closest anchor node adds to error ambiguity in traditional DV-Hop because of variations in the actual distances between the nodes. Sometimes the average distance is greater than the absolute distance, and other times it can be smaller. To solve this issue of error ambiguity, the 3D-DECHop algorithm does not use the closest anchor average hop distance, but works in the intermediate network hop distance to find the precise hop distance, as shown in the algorithm step below.</p>
<p><italic>For each anchor</italic></p>
<p><disp-formula id="eqn-2">
<label>(2)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-2.png"/><tex-math id="tex-eqn-2"><![CDATA[$$av\_net\_hop\_dist = \displaystyle{{\sum\nolimits_{a = 1}^{tn} {average} \_hop\_dis{t_a}} \over {tn}}$$]]></tex-math><mml:math id="mml-eqn-2" display="block"><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:mrow><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p>Subsequently, the error regarding each anchor is identified as <italic>dist_err</italic><sub><italic>a</italic></sub> and then calculated with <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref>. This defines the error value in terms of the hop distance that arises on account of the use of the average hop distance. Then the true distance is found from the multiplication of the hop distance and hop count. Afterward, the error computed in <xref ref-type="disp-formula" rid="eqn-3">(3)</xref> is broadcast by each anchor, as defined in the algorithm step below.</p>
<p><italic>For each anchor</italic></p>
<p><disp-formula id="eqn-3">
<label>(3)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-3.png"/><tex-math id="tex-eqn-3"><![CDATA[$$dist\_er{r_a} = \left( {a{v_\_}ne{t_\_}ho{p_\_}dist \times {h_\_}con{t_{a,j}}} \right)-\sqrt {\; \left( {\left( {{X_a}} \right) - \left( {{X_j}} \right)} \right){^2} + ( {( {{Y_a}} ) - ( {{Y_j}} )} ){^2} + {{( {( {{Z_a}} ) - ( {{Z_j}} )} )}^2}} $$]]></tex-math><mml:math id="mml-eqn-3" display="block"><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p>Now each anchor broadcasts the error.</p>
<p><italic>For each anchor</italic>,</p>
<p><italic>Broadcast distance error</italic>.</p>
<p><italic>End</italic></p>
<p>Again, we need to estimate the average error of each anchor with other anchors through <xref ref-type="disp-formula" rid="eqn-5">Eq. (4)</xref>, as defined in the algorithm step below.</p>
<p><italic>For each anchor</italic></p>
<p><disp-formula id="eqn-5">
<label>(4)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-5.png"/><tex-math id="tex-eqn-5"><![CDATA[$$average\_error\_Ancho{r_a} = \displaystyle{{\mathop \sum \nolimits_{tn}^{a = 1} dist\_er{r_a}} \over {tn}}$$]]></tex-math><mml:math id="mml-eqn-5" display="block"><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p>Now every anchor broadcasts the average error in the network. A node calculates the total error, considering all anchor nodes using <xref ref-type="disp-formula" rid="eqn-6">(5)</xref>. Now the node is able to find the intermediate error of all the anchors in the network, as mentioned in [<xref ref-type="bibr" rid="ref-25">25</xref>].</p>
<p><italic>For each anchor</italic></p>
<p><disp-formula id="eqn-6">
<label>(5)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-6.png"/><tex-math id="tex-eqn-6"><![CDATA[$$total\_error = \displaystyle{{\mathop \sum \nolimits_{a = 1}^{tn} average\_error\_Ancho{r_a}} \over {tn}}$$]]></tex-math><mml:math id="mml-eqn-6" display="block"><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>A</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p>Finally, each unknown node finds the distance between the anchor node and other nodes through <xref ref-type="disp-formula" rid="eqn-7">(6)</xref>. Here, as in the traditional algorithms, the average network error is the cross product with the hop count, used to calculate the updated error.</p>
<p>Similarly, to reduce the distance error in 3D-DECHop, a product of the combined error with the hop count is subtracted from the updated distance, as per <xref ref-type="disp-formula" rid="eqn-7">(6)</xref>. The reason for multiplying the hop count with the combined error is the ambiguity in the traditional DV-Hop, where the hop count leads to error. Here, the <italic>total_error</italic> is subtracted from <italic>h_cont</italic> because it is formulated from <italic>dist_err</italic> which further contains <italic>h_cont</italic> as mentioned in <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref>. Hence, if the distance error is reduced, then the localization error is also noticeably reduced, and the precise result is formulated in the step below.</p>
<p><italic>For every anchor</italic></p>
<p><italic>For every unknown</italic></p>
<p><disp-formula id="eqn-7">
<label>(6)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-7.png"/><tex-math id="tex-eqn-7"><![CDATA[$$dis{t_{u,a}} = \left( {a{v}\_net{\_}hop{\_}dist \times h\_con{t_{u,a}}} \right) - \; \left( {h\_con{t_{u,a}} \times total\_error} \right)$$]]></tex-math><mml:math id="mml-eqn-7" display="block"><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">_</mml:mi></mml:msub></mml:mrow><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p><italic>End</italic></p>
</sec>
<sec id="s3_1_3">
<label>3.1.3</label>
<title>Estimation of the Coordinates</title>
<p>After getting the distance, the multilateration method is used to find the coordinates, as shown in <xref ref-type="disp-formula" rid="eqn-8">Eq. (7)</xref> to <xref ref-type="disp-formula" rid="eqn-17">(12)</xref>.</p>
<p><italic>For 1 to anchor -1</italic></p>
<p><disp-formula id="eqn-8">
<label>(7)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-8.png"/><tex-math id="tex-eqn-8"><![CDATA[$$\left[ {\matrix{ {{{\left( {{X_u} - {X_1}} \right)}^2} + {{\left( {{Y_u} - {Y_1}} \right)}^2} + {{\left( {{Z_u} - {Z_1}} \right)}^2} = dist_1^2} \cr {{{\left( {{X_u} - {X_2}} \right)}^2} + {{\left( {{Y_u} - {Y_2}} \right)}^2} + {{\left( {{Z_u} - {Z_2}} \right)}^2} = dist_2^2} \cr : \cr {{{\left( {{X_u} - {X_{tn}}} \right)}^2} + {{\left( {{Y_u} - {Y_{tn}}} \right)}^2} + {{\left( {{Z_u} - {Z_{tn}}} \right)}^2} = dist_{tn}^2} \cr } } \right]$$]]></tex-math><mml:math id="mml-eqn-8" display="block"><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnspacing="1em" rowspacing="4pt"><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>:</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p><italic>Find AX&#x003D;B</italic></p>
<p><disp-formula id="eqn-9">
<label>(8)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-9.png"/><tex-math id="tex-eqn-9"><![CDATA[$$A = - 2 \times \left[ {\matrix{ {\left( {{X_1} - {X_{tn}}} \right)\left( {{Y_1} - {Y_{tn}}} \right)\left( {{Z_1} - {Z_{tn}}} \right)} \cr {\left( {{X_2} - {X_{tn}}} \right)\left( {{Y_2} - {Z_{tn}}} \right)\left( {{Z_2} - {X_{tn}}} \right)} \cr : \cr {\left( {{X_{tn - 1}} - {X_{tn}}} \right)\left( {{Y_{tn - 1}} - {Y_{tn}}} \right)\left( {{Z_{tn - 1}} - {Z_{tn}}} \right)} \cr } } \right]$$]]></tex-math><mml:math id="mml-eqn-9" display="block"><mml:mi>A</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnspacing="1em" rowspacing="4pt"><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>:</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><disp-formula id="eqn-10">
<label>(9)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-10.png"/><tex-math id="tex-eqn-10"><![CDATA[$${X^u} = \left[ {\matrix{ {{X_u}} \cr {{Y_u}} \cr {{Z_u}} \cr } } \right]$$]]></tex-math><mml:math id="mml-eqn-10" display="block"><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnspacing="1em" rowspacing="4pt"><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><italic>For every unknown</italic></p>
<p><italic>For 1 to anchor -1</italic></p>
<p><disp-formula id="eqn-11">
<label>(10)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-11.png"/><tex-math id="tex-eqn-11"><![CDATA[$$B = \left[ {\matrix{ {dist_1^2 - dist_{tn}^2 - {{\left( {{X_1}} \right)}^2} + {{\left( {{X_n}} \right)}^2} - {{\left( {{Y_1}} \right)}^2} + {{\left( {{Y_n}} \right)}^2} - {{\left( {{Z_1}} \right)}^2} + {{\left( {{Z_n}} \right)}^2}} \cr {dist_2^2 - dist_{tn}^2 - {{\left( {{X_2}} \right)}^2} + {{\left( {{X_n}} \right)}^2} - {{\left( {{Y_2}} \right)}^2} + {{\left( {{Y_n}} \right)}^2} - {{\left( {{Z_1}} \right)}^2} + {{\left( {{Z_n}} \right)}^2}} \cr : \cr : \cr {dist_{tn - 1}^2 - dist_{tn}^2 - X_{tn - 1}^2 + X_n^2 - Y_{tn - 1}^2 + Y_n^2 - {{\left( {{Y_{tn - 1}}} \right)}^2} + {{\left( {{Y_n}} \right)}^2}} \cr } } \right]$$]]></tex-math><mml:math id="mml-eqn-11" display="block"><mml:mi>B</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable columnspacing="1em" rowspacing="4pt"><mml:mtr><mml:mtd><mml:mrow><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>:</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>:</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x002B;</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x002B;</mml:mo><mml:msubsup><mml:mi>Y</mml:mi><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><disp-formula id="eqn-12">
<label>(11)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-12.png"/><tex-math id="tex-eqn-12"><![CDATA[$${X_u} = {({A^T}A)^{ - 1}}{A^T}b$$]]></tex-math><mml:math id="mml-eqn-12" display="block"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mi>A</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mi>b</mml:mi></mml:math>
</alternatives></disp-formula></p>
<p><italic>End</italic></p>
<p><italic>End</italic></p>
<p>Here, <italic>A</italic><sup><italic>T</italic></sup> is the value of the transpose of matrix <italic>A</italic> followed by the computation of coordinate values.</p>
</sec>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Error Analysis in 3D-DECHop</title>
<p>This section deals with the mathematical error analysis of the 3D-DECHop approach in comparison to traditional 3D DV-Hop by considering the scenario as shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. <italic>A1</italic>, <italic>A2</italic>, <italic>A3</italic>, and <italic>A4</italic> are anchor nodes representing the vertices of a tetrahedron, while <italic>U</italic> is unknown node. The values on the connecting lines represent the distance between the nodes, which is taken from the practical implementation of the scenario.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Node representation for error analysis in the 3D-DECHop algorithm</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-1.png"/>
</fig>
<p>Step 1: <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref> is used to determine the average hop distance for all the anchor nodes, as stated below. The distance is given in meters (m).</p>
<p>Step 2: Let us assume that U is an unknown node. The traditional DV-Hop always finds the average hop distance of the closest anchor node. In the scenario from <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, these nodes would use the average hop distance of <italic>A3</italic>, that is, 34.1747, as it is the nearest node. An unknown node then finds the distance between itself and the anchor node by following <xref ref-type="disp-formula" rid="eqn-17">Eq. (12)</xref>. A1 &#x003D; (13.5872 &#x002B; 31.0661 &#x002B; 58.6456)/(1 &#x002B; 1 &#x002B; 2) &#x003D; 25.8247, A2 &#x003D; (13.5872 &#x002B; 39.8419 &#x002B; 69.8664)/(1 &#x002B; 1 &#x002B; 2) &#x003D; 30.8239, A3 &#x003D; (31.0661 &#x002B; 39.8419 &#x002B; 31.6162)/(1 &#x002B; 1 &#x002B; 1) &#x003D; 34.1747, A4 &#x003D; (58.6456 &#x002B; 69.8664 &#x002B; 31.6162)/(2 &#x002B; 2 &#x002B; 1) &#x003D; 32.0256.</p>
<p><disp-formula id="eqn-17">
<label>(12)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-17.png"/><tex-math id="tex-eqn-17"><![CDATA[$$Dist = (h\_cont\;b/w\ A3\;and\;U) \times Average\;hop\;distance\;(A3)$$]]></tex-math><mml:math id="mml-eqn-17" display="block"><mml:mi>D</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>b</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>w</mml:mi><mml:mi>A</mml:mi><mml:mn>3</mml:mn><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>U</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mi>A</mml:mi><mml:mi>v</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>3</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></disp-formula></p>
<p><italic>i.e., 1 &#x00D7; 34.1747 &#x003D; 34.1747</italic>.</p>
<p>However, the actual distance between <italic>U</italic> and <italic>A3</italic> is 15. In this way, the distance error causes the error in localization when the 3D DV-Hop algorithm is used.</p>
<p>Step 3: To reduce the distance error, we use the average of the average hop distance corresponding to every anchor of the 3D-DECHop algorithm, as in <xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref>. Here, the unknown node relies not only on the closest anchor node, but also on the average hop distance. It has been observed that this was the main cause of the error in the basic DV-Hop approach. The average distance of the network is calculated using <xref ref-type="disp-formula" rid="eqn-13">Eq. (13)</xref>.</p>
<p><disp-formula id="eqn-13">
<label>(13)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-13.png"/><tex-math id="tex-eqn-13"><![CDATA[$${av}\_{net}\_{hop}\_{ dist} = \left( {25.8247 + 30.8239 + 34.1747 + 32.0256} \right)/4 = 30.7122$$]]></tex-math><mml:math id="mml-eqn-13" display="block"><mml:mrow><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">h</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>25.8247</mml:mn><mml:mo>&#x002B;</mml:mo><mml:mn>30.8239</mml:mn><mml:mo>&#x002B;</mml:mo><mml:mn>34.1747</mml:mn><mml:mo>&#x002B;</mml:mo><mml:mn>32.0256</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>4</mml:mn><mml:mo>&#x003D;</mml:mo><mml:mn>30.7122</mml:mn></mml:math>
</alternatives></disp-formula></p>
<p>Every anchor then calculates the distance error, as per <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref>. The distance error of <italic>A1</italic> is updated for the other anchors, as shown in <xref ref-type="disp-formula" rid="eqn-18">Eq. (14)</xref> to <xref ref-type="disp-formula" rid="eqn-20">Eq. (16)</xref>.</p>
<p><disp-formula id="eqn-18">
<label>(14)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-18.png"/><tex-math id="tex-eqn-18"><![CDATA[$$dist\_err(A1) = (av\_net\_hop\_dist \times h\_cont (A1,\;A2)) - true\;distance$$]]></tex-math><mml:math id="mml-eqn-18" display="block"><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>A</mml:mi><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2013;</mml:mo><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi></mml:math>
</alternatives></disp-formula></p>
<p>Thus, <italic>dist_err</italic>(A1) &#x003D; (30.7122 &#x00D7; 1) &#x2013; 13.5872 &#x003D; 17.125.</p>
<p><disp-formula id="eqn-19">
<label>(15)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-19.png"/><tex-math id="tex-eqn-19"><![CDATA[$$dist\_err(A1) = (avg\_net\_hop\_dist \times h\_cont\;(A1,\;A3)) - true\;distance$$]]></tex-math><mml:math id="mml-eqn-19" display="block"><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>A</mml:mi><mml:mn>3</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2013;</mml:mo><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi></mml:math>
</alternatives></disp-formula></p>
<p>Thus, <italic>dist_err</italic>(A1) &#x003D; (30.7122 &#x00D7; 1) &#x2013; 31.0661&#x003D;0.3539.</p>
<p><disp-formula id="eqn-20">
<label>(16)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-20.png"/><tex-math id="tex-eqn-20"><![CDATA[$$dist\_err(A1) = (avg\_net\_hop\_dist \times h\_cont (A1,\;A4)) - true\;distance$$]]></tex-math><mml:math id="mml-eqn-20" display="block"><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi>g</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext> </mml:mtext><mml:mi>A</mml:mi><mml:mn>4</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2013;</mml:mo><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi></mml:math>
</alternatives></disp-formula></p>
<p>Thus, <inline-formula id="ieqn-5">
<alternatives><inline-graphic xlink:href="ieqn-5.png"/><tex-math id="tex-ieqn-5"><![CDATA[${dist}\_{err}$]]></tex-math><mml:math id="mml-ieqn-5"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mi mathvariant="normal">_</mml:mi><mml:mrow><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula>(A1) &#x003D; (30.7122 &#x00D7; 2) &#x2013; 58 &#x003D; 3.4244. Therefore, the distance error of <italic>A1</italic> can be calculated using <xref ref-type="disp-formula" rid="eqn-5">Eq. (4)</xref> as (17.125 &#x002B; 0.3539 &#x002B; 3.4244)/3 &#x003D; 6.9677.</p>
<p>Similarly, the distance error of <italic>A2</italic> &#x003D; 0.42. The distance error of <italic>A3</italic> &#x003D; &#x2212;3.1819 and the distance error of <italic>A4</italic> &#x003D; &#x2013;1.6850.</p>
<p>Now, to calculate the total distance error, we use <xref ref-type="disp-formula" rid="eqn-6">Eq. (5)</xref>, i.e., &#x003D; (6.9677 &#x002B; 0.42 &#x002B; (&#x2212;3.1819) &#x002B; (&#x2212;1.6850))/4 &#x003D; 0.6302.</p>
<p>Step 4: Calculating the distance between the unknown and the anchor node using <xref ref-type="disp-formula" rid="eqn-7">Eq. (6)</xref>, as defined in <xref ref-type="disp-formula" rid="eqn-21">Eq. (17)</xref>.</p>
<p><disp-formula id="eqn-21">
<label>(17)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-21.png"/><tex-math id="tex-eqn-21"><![CDATA[$$dist_{u,a}= ((h\_cont\ b/w\ U\;and\;A1) \times av\_net\_hop\_dist) - (h\_cont\;b/w\;U\;and\;A1 \times total\_error)$$]]></tex-math><mml:math id="mml-eqn-21" display="block"><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mi>b</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>w</mml:mi><mml:mi>U</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mi>a</mml:mi><mml:mi>v</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>h</mml:mi><mml:mi>o</mml:mi><mml:mi>p</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2013;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>b</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>w</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>U</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>A</mml:mi><mml:mn>1</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mi>t</mml:mi><mml:mi>o</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></disp-formula></p>
<p>Thus, <inline-formula id="ieqn-8">
<alternatives><inline-graphic xlink:href="ieqn-8.png"/><tex-math id="tex-ieqn-8"><![CDATA[${dis}{{ t}_{{u},{a}}}$]]></tex-math><mml:math id="mml-ieqn-8"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="normal">u</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">a</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> &#x003D; (1 &#x00D7; 30.7122) &#x2013; (1 &#x00D7; 0.6302) &#x003D; 30.01.</p>
<p>The actual distance between <italic>A1</italic> and <italic>U</italic> is 32. Basic DV-Hop yields a distance of 25.8247, while the error becomes 6.176. However, with the 3D-DECHop approach, distance is 30.01 and error is 1.99. The error is smaller than with basic 3D DV-Hop.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Performance Evaluation</title>
<p>In this section, the behavior of the proposed 3D-DECHop in algorithm is analyzed using MATLAB [<xref ref-type="bibr" rid="ref-26">26</xref>] for the Average Localization Error (ALE), Localization Mean Square Error (LMSE), Relative Position Error (RPE), Mean Localization Error (MLE), and Localization Error Ratio (LER) for the given parameters, such as the anchor node ratio, the total node amount, and the communication range. The regular model of deployment is considered for all the comparisons of 3D-DECHop with other methods.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Simulation Setup and Comparison Metrics</title>
<p>Localization in 3D space shows how the algorithm would perform in actual space. <xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows the deployment of nodes in a 3D space with dimensions of 100 m &#x00D7; 100 m &#x00D7; 100 m. In this deployment scenario, there is a total of 150 nodes deployed, out of which 30 nodes are anchor nodes. The anchor nodes are shown in red. The remaining 120 nodes, shown as black diamond symbols, are the unknown nodes, whose positions are to be determined using the proposed algorithm.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Node representation of the 3D-DECHop algorithm</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-2.png"/>
</fig>
<p>For the comparison of the proposed 3D-DECHop algorithm with existing algorithms, some common metrics are calculated as described below.</p>
<p><bold>Average Localization Error (ALE):</bold> This factor gives the variation corresponding to the actual and the estimated value of the coordinates calculated for each node in the localization process. It is defined as <xref ref-type="disp-formula" rid="eqn-14">Eq. (18)</xref>.</p>
<p><disp-formula id="eqn-14">
<label>(18)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-14.png"/><tex-math id="tex-eqn-14"><![CDATA[$$ALE = \displaystyle{{\sqrt {{{\left( {{X_{u  }}-{X_{ac}}} \right)}^2} + {{\left( {{Y_{u  }}-{Y_{ac}}} \right)}^2} + {{\left( {{Z_{u  }}-{Z_{ac}}} \right)}^2}} } \over {Amount\; of\; Unknown\; Nodes \times Range}}$$]]></tex-math><mml:math id="mml-eqn-14" display="block"><mml:mi>A</mml:mi><mml:mi>L</mml:mi><mml:mi>E</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mi>A</mml:mi><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>u</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>U</mml:mi><mml:mi>n</mml:mi><mml:mi>k</mml:mi><mml:mi>n</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mi>n</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>N</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>R</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi><mml:mi>e</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p>Here, <italic>X</italic><sub><italic>u</italic></sub>, <italic>Y</italic><sub><italic>u</italic></sub> are the unknown node&#x2019;s estimated coordinates and <italic>X</italic><sub><italic>ac</italic></sub>, <italic>Y</italic><sub><italic>ac</italic></sub> are actual node&#x2019;s coordinates. Other metrics, like RPE and LER, are computed in the same fashion as ALE. <bold>Localization error variance (LMSE):</bold> It is defined as the ratio of the average localization error to the range amount for that node. It is considered the main factor for measuring the accuracy of the localization algorithm against various parameters, such as the sensor number, the anchor node number, and the node range. It is represented as <xref ref-type="disp-formula" rid="eqn-15">Eq. (19)</xref>.</p>
<p><disp-formula id="eqn-15">
<label>(19)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-15.png"/><tex-math id="tex-eqn-15"><![CDATA[$$LMSE = \sqrt {\displaystyle{{\mathop \sum \nolimits_{i = 1}^U {{\left( {\sqrt {{{\left( {{X_{u  }}-{X_{ac}}} \right)}^2} - {{\left( {{Y_{u  }}-{Y_{ac}}} \right)}^2} + {{\left( {{Z_{u  }}-{Z_{ac}}} \right)}^2}} - localization\; Error*R} \right)}^2}} \over {U \times \; {R^2}}}}$$]]></tex-math><mml:math id="mml-eqn-15" display="block"><mml:mi>L</mml:mi><mml:mi>M</mml:mi><mml:mi>S</mml:mi><mml:mi>E</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msqrt><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>U</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>o</mml:mi><mml:mi>c</mml:mi><mml:mi>a</mml:mi><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>z</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>E</mml:mi><mml:mi>r</mml:mi><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi><mml:mo>&#x2217;</mml:mo><mml:mi>R</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mi>U</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:msup><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:msqrt></mml:math>
</alternatives></disp-formula></p>
<p>Here, <italic>U</italic> signifies the number of unknown nodes and <italic>R</italic> represents the range of each node.</p>
<p><bold>Mean Localization Error (MLE):</bold> This factor gives the variation corresponding to the actual and the estimated value of the coordinates calculated for each node in the localization process. It is defined as <xref ref-type="disp-formula" rid="eqn-16">Eq. (20)</xref>.</p>
<p><disp-formula id="eqn-16">
<label>(20)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-16.png"/><tex-math id="tex-eqn-16"><![CDATA[$$MLE = \displaystyle{{\sqrt {{{\left( {{X_{u  }}-{X_{ac}}} \right)}^2} + {{\left( {{Y_{u  }}-{Y_{ac}}} \right)}^2} + {{\left( {{Z_{u  }}-{Z_{ac}}} \right)}^2}} } \over {Number\; of\; Unknown\; Nodes}}$$]]></tex-math><mml:math id="mml-eqn-16" display="block"><mml:mi>M</mml:mi><mml:mi>L</mml:mi><mml:mi>E</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Y</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>u</mml:mi><mml:mi>m</mml:mi><mml:mi>b</mml:mi><mml:mi>e</mml:mi><mml:mi>r</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>U</mml:mi><mml:mi>n</mml:mi><mml:mi>k</mml:mi><mml:mi>n</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mi>n</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>N</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p>Here, <italic>X</italic><sub><italic>u</italic></sub>, <italic>Y</italic><sub><italic>u</italic></sub> are the unknown node&#x2019;s estimated coordinates, and <italic>X</italic><sub><italic>ac</italic></sub>, <italic>Y</italic><sub><italic>ac</italic></sub> are the unknown node&#x2019;s actual coordinates.</p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Comparisons and Analysis</title>
<p>The analysis of the 3D-DECHop algorithm is executed through simulations in MATLAB 2013 [<xref ref-type="bibr" rid="ref-26">26</xref>]. In this section, the performance of the algorithm is assessed and compared with the existing approaches described in the literature, such as novel centroid [<xref ref-type="bibr" rid="ref-9">9</xref>], 3D DV-Hop [<xref ref-type="bibr" rid="ref-17">17</xref>], PSO-based 3D DV-Hop [<xref ref-type="bibr" rid="ref-17">17</xref>], PMDV-Hop [<xref ref-type="bibr" rid="ref-18">18</xref>], 3D-IDCP [<xref ref-type="bibr" rid="ref-19">19</xref>], 3D-OSSDL [<xref ref-type="bibr" rid="ref-22">22</xref>], DBDV-Hop [<xref ref-type="bibr" rid="ref-27">27</xref>], and ACSDV-Hop [<xref ref-type="bibr" rid="ref-28">28</xref>], using the same conditions and parameters. The results of the simulations are analyzed based on various factors, such as total number of nodes, number of anchor nodes, and node range. The simulation results are the average of 100 simulations. The selection of parameters is based on the algorithm by which our proposed approach is to be compared.</p>
<sec id="s4_2_1">
<label>4.2.1</label>
<title>Comparison with Novel Centroid Localization</title>
<p>The 3D-DECHop algorithm is different from the basic centroid and novel centroid approaches proposed in [<xref ref-type="bibr" rid="ref-9">9</xref>]. We evaluated the algorithm in 3D space with 100 nodes deployed in a 100 m &#x00D7; 100 m &#x00D7; 100 m cube. The nodes are uniformly deployed, each within 40 m of another node. We compared the algorithms in terms of the ALE while varying the ratio of anchor nodes and the range, as shown in <xref ref-type="fig" rid="fig-3">Figs. 3</xref> and <xref ref-type="fig" rid="fig-4">4</xref>. First of all, we analyzed the amount of variation in anchor nodes in relation to the total number of nodes, as shown in <xref ref-type="fig" rid="fig-3">Fig. 3</xref>. We can see that the error value decreases as the number of anchor nodes increases for all algorithms. This is because a higher ratio of anchor nodes to unknown nodes leads to greater availability of nodes that can assist with finding the precise position of the node of interest. It leads to more accurate localization. However, for the 3D-DECHop algorithm, the error is significantly smaller than in other algorithms. For instance, when there are 15 anchor nodes, the error for the 3D-DECHop algorithm is 0.24 m; meanwhile, centroid yields an error of 0.74 m, and novel centroid yields an error of 0.61 m. This gain in the correction metric came from the distance updating in the 3D-DECHop algorithm.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>ALE <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-3.png"/>
</fig>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>ALE <italic>vs</italic>. node range</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-4.png"/>
</fig>
<p>Similarly, the impact of varying range on the given algorithms is shown in <xref ref-type="fig" rid="fig-4">Fig. 4</xref> with 100 nodes and 20 anchor nodes. It is clear that when the range of a node is increased, the error decreases for the all the algorithms considered because a greater number of nodes is available for the position assessment corresponding to the node of interest. After the range increases to 40 m, error decreases very sharply. Also, the error corresponding to a range of 40 m is 0.23 m, 0.55 m, and 0.71 m for the proposed, novel centroid, and centroid algorithms, respectively.</p>
</sec>
<sec id="s4_2_2">
<label>4.2.2</label>
<title>Comparison with 3D-OSSDL (Optimal Space Step Distance Localization)</title>
<p>The proposed algorithm is compared with the basic DV-Hop and 3D-OSSDL [<xref ref-type="bibr" rid="ref-29">29</xref>] approaches using the deployment region of 100 m &#x00D7; 100 m &#x00D7; 100 m with 250 nodes and with a range of 60 m for all nodes. The algorithms are compared based on MLE, while considering the impact of varying the anchor node number, total node number, and range, as shown in <xref ref-type="fig" rid="fig-5">Figs. 5</xref>&#x2013;<xref ref-type="fig" rid="fig-7">7</xref>.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>MLE <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-5.png"/>
</fig>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>MLE <italic>vs</italic>. node range</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-6.png"/>
</fig>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>MLE <italic>vs</italic>. total node amount</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-7.png"/>
</fig>
<p>As shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>, when the number of anchor nodes increases from 15 to 35, the value of the error decreases. The reason for this is similar to that discussed in Section 4.2.1. While the anchor node number is 30, the 3D-DECHop algorithm yields an error of 7 m, while the error is 27 m and 37.5 m for the DV-Hop and 3D-OSSDL algorithms, respectively. Hence, we conclude that the 3D-DECHop algorithm performs much better than the other two algorithms.</p>
<p>Also, when the range of the node is increased from 30 m to 70 m while keeping the total number of nodes at 250 with a 10% anchor ratio, error is eventually reduced, as shown in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>. The error corresponding to the range of 40 m is 6.8 m, 28.5 m, and 34.3 m for the proposed, DV-Hop, and 3D-OSSDL [<xref ref-type="bibr" rid="ref-29">29</xref>] algorithms, respectively. Similarly, when the number of nodes is increased, error decreases, as more nodes are available to help estimate the position of the unknown node, as shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>. Here, the anchor node ratio is taken as 10% of the nodes deployed, and the range is 60 m for all the nodes. The simulation results suggest that the 3D-DECHop algorithm performs much better than the other algorithms.</p>
</sec>
<sec id="s4_2_3">
<label>4.2.3</label>
<title>Comparison with DV-Hop-Based and Bounding Cube (DBDV-Hop) Algorithm</title>
<p>The 3D-DECHop algorithm is compared to the bounding cube and DBDV-Hop [<xref ref-type="bibr" rid="ref-29">29</xref>] approaches using the deployment area of 100 m &#x00D7; 100 m &#x00D7; 100 m, with 100 nodes and a range of 40 m for all nodes. The algorithms are compared based on RPEwhile considering the effect of varying the anchor node percentage and range, as shown in <xref ref-type="fig" rid="fig-8">Figs. 8</xref>&#x2013;<xref ref-type="fig" rid="fig-10">10</xref>.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>RPE <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-8.png"/>
</fig>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>RPE <italic>vs</italic>. node range (anchor ratio 14%)</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-9.png"/>
</fig>
<fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>RPE <italic>vs</italic>. node range (anchor ratio 16%)</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-10.png"/>
</fig>
<p>When the number of anchor nodes is changed from 6 to 20 with other parameters kept the same, positioning error decreases slightly at 10 anchor nodes, and then increases at 16 anchor nodes. But for the 3D-DECHop algorithm, the error variations are smaller than for the alternative algorithms; hence it is more stable and accurate. For 12 anchor nodes, the error is 0. 24 m for the proposed algorithm, as compared to 0.41 m and 0.49 m for DBDV-Hop and bounding cube, respectively. Similarly, changing the range affects the positioning error when the anchor node ratios are 14% and 16% with a total of 100 nodes, as shown in <xref ref-type="fig" rid="fig-9">Figs. 9</xref> and <xref ref-type="fig" rid="fig-10">10</xref>, respectively. As the range increases from 25 m to 60 m, in both the cases, the error value decreases. It also seems that beyond the range of 45 m, the 3D-DECHop algorithm is quite stable compared to the other algorithms.</p>
</sec>
<sec id="s4_2_4">
<label>4.2.4</label>
<title>Comparison with 3D DV-Hop-Based on PSO</title>
<p>Accuracy is one of the main factors for the assessment of various localization algorithms. It depends on the number of anchor nodes deployed. In this experiment, a total 200 nodes are implemented in the same space as in the previous comparisons. Each of these nodes has a fixed range of 30 m. To assess the performance, a LMSE value is calculated for situations where the number of anchor nodes varies from 10 to 60 nodes. <xref ref-type="fig" rid="fig-11">Fig. 11</xref> shows the change in the LMSE value depending on the number of anchor nodes. We conclude that the 3D-DECHop algorithm behaves better than the 3D DV-Hop and PSO-based 3D DV-Hop algorithms [<xref ref-type="bibr" rid="ref-17">17</xref>].</p>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>LMSE <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-11.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-11">Fig. 11</xref> shows that as the number of anchors raises, the LMSE value decreases for every algorithm. This is because as the number of anchor nodes rises, the count between the unknown and the anchor nodes decreases. This, in turn, further reduces the value of the hop size, which leads to the precise value of error at the end stage when error is calculated. Moreover, the average error is very limited for the 3D-DECHop algorithm in contrast to other algorithms, as per <xref ref-type="fig" rid="fig-11">Fig. 11</xref>. This is a result of the correction factor, which is added in the 3D-DECHop approach and which further refines the dimensions of the hop size while considering the other aspects of the network.</p>
<p>Sensor node deployment is chosen based on the application and the environment. The number of nodes affects the accuracy of the localization algorithms. Here, the number of sensor nodes has been increased from 100 to 400 for the space measuring 100 m &#x00D7; 100 m &#x00D7; 100 m. Each node has a range of 30 m, and the number of anchor nodes is fixed at 40. To assess the performance, a LMSE value is calculated for every number for nodes between 100 and 400. <xref ref-type="fig" rid="fig-12">Fig. 12</xref> shows the change in the value of LMSE with the number of sensor nodes. The simulation outcomes show that with these parameters, the 3D-DECHop algorithm does better than 3D DV-Hop [<xref ref-type="bibr" rid="ref-17">17</xref>] and PSO-based 3D DV-Hop algorithms.</p>
<fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>LMSE <italic>vs</italic>. number of deployed nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-12.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-12">Fig. 12</xref> shows that with an increase in the number of sensor nodes, the value of LMSE decreases for all the algorithms. This is because with the increase in the number of sensor nodes, connectivity value among the nodes also increases. This, in turn, provides more data on the location of nodes, and thus enhances the performance of the whole network. It is also shown that after a certain number of sensor nodes (200 nodes in <xref ref-type="fig" rid="fig-12">Fig. 12</xref>), the variation in the localization error becomes significantly smaller; hence the algorithm is more stable and has higher precision and accuracy than the others.</p>
<p>The range value of the node is also one of the main factors for evaluating the accuracy of the given algorithm. Here the number of sensor nodes is fixed at 100 in the space measuring 100 m &#x00D7; 100 m &#x00D7; 100 m. The range value is allowed to vary from 22 m to 40 m for measuring the accuracy of the algorithm, while the number of anchor nodes is fixed at 30. Afterward, the LMSE value is calculated for range values from 22 m to 40 m. <xref ref-type="fig" rid="fig-13">Fig. 13</xref> shows the change in LMSE value in response to variation in the range value. It shows that with these parameters, 3D-DECHop algorithm behaves better than 3D DV-Hop and PSO-based 3D DV-Hop algorithms.</p>
<fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>LMSE <italic>vs</italic>. node range</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-13.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-13">Fig. 13</xref> clearly shows that with an increase in the range value, the LMSE value decreases for all the algorithms. The reason is that more nodes would come within range of each node and thus boost the connectivity value. This further increases the accuracy, as stated before. We can see that there is very little variation in the LMSE value with the change in the range value for the 3D-DECHop algorithm compared to the other algorithms. As in <xref ref-type="fig" rid="fig-13">Fig. 13</xref>, the error value stabilizes after the range of 30 m, but in our case the error variation is much smaller even at the start with a range of 22 m. Hence, we conclude that range value variation has a much smaller effect on the LMSE for the proposed algorithm. This is one of the advantages of the proposed algorithm.</p>
</sec>
<sec id="s4_2_5">
<label>4.2.5</label>
<title>Comparison with Improved 3D Localization Algorithm</title>
<p>The proposed algorithm is compared with 3DV-Hop, 3DV-Distance, and 3D-IDCP [<xref ref-type="bibr" rid="ref-19">19</xref>] approaches with a deployment region of 100 m &#x00D7; 100 m &#x00D7; 100 m and with 100 nodes with a range of 40 m for all the nodes. We compared the algorithms based on the LERwhile considering the impact of varying the anchor ratio, as shown in <xref ref-type="fig" rid="fig-14">Fig. 14</xref>. The outcomes show that the error ratio decreases for all the algorithms when the anchor node ratio increases. This is due to the extra nodes that are accessible to the unknown node for estimating its position coordinates. Still, the 3D-DECHop algorithm does better than the alternative algorithms. For example, when the anchor node ratio is 25%, the error is 0.2 m for the 3D-DECHop algorithm and 0.65 m, 0.59 m, and 0.55 m for the 3DV-Hop, 3DV-Distance, and 3D-IDCP algorithms, respectively.</p>
<fig id="fig-14">
<label>Figure 14</label>
<caption>
<title>LER <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-14.png"/>
</fig>
</sec>
<sec id="s4_2_6">
<label>4.2.6</label>
<title>Comparison with Adaptive Cuckoo Search</title>
<p>The proposed algorithm is contrasted with traditional DV-Hop, ADV-Hop, and ACSDV-Hop [<xref ref-type="bibr" rid="ref-28">28</xref>] approaches using the deployment region of 100 m &#x00D7; 100 m &#x00D7; 100 m with 200 nodes and a range of 30 m for all the nodes. We compared the algorithms based on ALE while considering the impact of varying the anchor node ratio, the range, and the total number of nodes, as shown in <xref ref-type="fig" rid="fig-15">Figs. 15</xref>&#x2013;<xref ref-type="fig" rid="fig-17">17</xref>. The impact of varying the number of anchor nodes on the error is shown in <xref ref-type="fig" rid="fig-15">Fig. 15</xref>, where it is clear that when the number of anchor nodes increases, the error decreases for all the algorithms. For example, with 30 anchor nodes, the error is 1.4 m for the 3D-DECHop algorithm, and 3.4 m, 2.4 m, and 1.7 m for the traditional DV-Hop, ADV-Hop, and ACSDV-Hop algorithms, respectively.</p>
<fig id="fig-15">
<label>Figure 15</label>
<caption>
<title>ALE <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-15.png"/>
</fig>
<fig id="fig-16">
<label>Figure 16</label>
<caption>
<title>ALE <italic>vs</italic>. node range</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-16.png"/>
</fig>
<fig id="fig-17">
<label>Figure 17</label>
<caption>
<title>ALE <italic>vs</italic>. number of nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-17.png"/>
</fig>
<p>Similarly, when the node range is increased from 15 to 50 with 200 nodes and a 25% anchor node ratio, as shown in <xref ref-type="fig" rid="fig-16">Fig. 16</xref>, the error decreases as the range increases. This happens because a greater number of nodes comes within range of each node as the range is increased. It is also shown that after the range reaches 20 m, the error stabilizes for all the algorithms. Nevertheless, the error for the proposed algorithm is smaller than for the other algorithms for all range values. This is also the case when the number of nodes varies from 100 to 300 with an anchor ration of 20% and a range of 30 m, as shown in <xref ref-type="fig" rid="fig-17">Fig. 17</xref>. Once the number of nodes deployed exceeds 200, there is a marginal shift in error for all the algorithms, but 3D-DECHop still performs better than the other algorithms. Also, the deviation for the 3D-DECHop algorithm much smaller than for all the other algorithms. Moreover, in the transition from 100 to 200 nodes, error does not decline abruptly, as with the other algorithms.</p>
</sec>
<sec id="s4_2_7">
<label>4.2.7</label>
<title>Comparison with PSO-Based Improved DV-Hop (PMDV-Hop)</title>
<p>The 3D-DECHop algorithm is compared with MDV-Hop, PDV-Hop, and PMDV-Hop [<xref ref-type="bibr" rid="ref-18">18</xref>] approaches using the deployment region of 100 m &#x00D7; 100 m &#x00D7; 100 m with 200 nodes and a range of 30 m for all the nodes. We compared the algorithms based on ALE while considering the impact of varying the number of anchor nodes and the range, as shown in <xref ref-type="fig" rid="fig-18">Fig. 18</xref>. First of all, we analyzed the effect of the anchor node ratio by varying it from 5% to 20%, as shown in <xref ref-type="fig" rid="fig-18">Fig. 18</xref>.</p>
<fig id="fig-18">
<label>Figure 18</label>
<caption>
<title>ALE <italic>vs</italic>. number of anchor nodes</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-18.png"/>
</fig>
<p>It is clear that for all the algorithms there is a smooth decline in the error above the anchor node ratio of 20%. For the 3D-DECHop, the error reduction is greater than for the others. Also, when the range is varied from 20 m to 60 m with 200 nodes and a 15% anchor ratio, the error decreases for all the algorithms up to a range of 40 m, and then increases again as nodes communicate with each other. But in the case of the 3D-DECHop algorithm, the decline in error continues even after the range of 40 m.</p>
</sec>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusion</title>
<p>Localization plays an important role in the IoT and in real-world applications of wireless sensor networks. In this work we propose a new hop-based algorithm suitable for the 3D environment, called 3D-DECHop. This algorithm is distributed and based on our previous work with the 2D environment. The accuracy of the algorithm is evaluated based on the minimum error generated during localization process. The correction factor is introduced and utilized during the various stages of the localization process, ultimately reducing the error to a large extent. In the proposed 3D-DECHop algorithm, the hop size is customized so that less error occurs. The algorithm incurs average error, unlike the separate node error in traditional DV-Hop algorithms, eventually leading to more accurate calculations. Simulation results show that the 3D-DECHop algorithm outperforms other existing algorithms, yielding lower error levels with various specifications, such as the number of nodes, the number of anchor nodes, and the range. The 3D-DECHop algorithm performs at its best when the anchor ratio is one fifth of the total number of nodes and the range is 40 m. In the future, we hope to prove the accuracy of the proposed algorithm both through an analytical approach and through experiments. Optimization can also make more preciseness in the localization error. Moreover, localization is a practical problem and it will add more essence when the experiments are conducted in the real environment. It will increase the credibility of the proposed work and we will try to execute the same in the near future.</p>
</sec>
</body>
<back>
<fn-group>
<fn fn-type="conflict">
<p><bold>Funding Statement:</bold> The present research has been conducted by the Research Grant of Kwangwoon University in 2020.</p>
</fn>
<fn fn-type="conflict">
<p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p>
</fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1">
<label>[1]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>S. Y.</given-names> 
<surname>Nam</surname></string-name> and <string-name>
<given-names>G. P.</given-names> 
<surname>Joshi</surname></string-name>
</person-group>, &#x201C;
<article-title>Unmanned aerial vehicle localization using distributed sensors</article-title>,&#x201D; 
<source>International Journal of Distributed Sensor Networks</source>, vol. 
<volume>13</volume>, no. 
<issue>9</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>8</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-2">
<label>[2]</label><mixed-citation publication-type="book">
<person-group person-group-type="author"><string-name>
<given-names>H.</given-names> 
<surname>Habibzadeh</surname></string-name> and <string-name>
<given-names>T.</given-names> 
<surname>Soyata</surname></string-name>
</person-group>, &#x201C;<chapter-title>Toward uniform smart healthcare ecosystems: A survey on prospects, security, and privacy considerations</chapter-title>,&#x201D; in 
<source>Connected Health in Smart Cities</source>. 
<publisher-loc>Berlin, Germany</publisher-loc>: 
<publisher-name>Springer International Publishing</publisher-name>, pp.
<fpage>75</fpage>&#x2013;
<lpage>112</lpage>, 
<year>2020</year>.</mixed-citation>
</ref>
<ref id="ref-3">
<label>[3]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Giri</surname></string-name>, <string-name>
<given-names>S.</given-names> 
<surname>Dutta</surname></string-name> and <string-name>
<given-names>S.</given-names> 
<surname>Neogy</surname></string-name>
</person-group>, &#x201C;<article-title>Fuzzy logic-based range-free localization for wireless sensor networks in agriculture</article-title>,&#x201D; in 
<source>Advances in Intelligent Systems and Computing</source>. vol. 
<volume>995</volume>, pp. 
<fpage>3</fpage>&#x2013;
<lpage>12</lpage>, 
<year>2020</year>.</mixed-citation>
</ref>
<ref id="ref-4">
<label>[4]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>G. P.</given-names> 
<surname>Joshi</surname></string-name>, <string-name>
<given-names>S.</given-names> 
<surname>Acharya</surname></string-name>, <string-name>
<given-names>C. S.</given-names> 
<surname>Kim</surname></string-name>, <string-name>
<given-names>B. S.</given-names> 
<surname>Kim</surname></string-name> and <string-name>
<given-names>S. W.</given-names> 
<surname>Kim</surname></string-name>
</person-group>, &#x201C;
<article-title>Smart solutions in elderly care facilities with RFID system and its integration with wireless sensor networks</article-title>,&#x201D; 
<source>International Journal of Distributed Sensor Networks</source>, vol. 
<volume>2015</volume>, no. 
<issue>8</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>11</lpage>, 
<year>2014</year>.</mixed-citation>
</ref>
<ref id="ref-5">
<label>[5]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>G.</given-names> 
<surname>Han</surname></string-name>, <string-name>
<given-names>J.</given-names> 
<surname>Jiang</surname></string-name>, <string-name>
<given-names>C.</given-names> 
<surname>Zhang</surname></string-name>, <string-name>
<given-names>T. Q.</given-names> 
<surname>Duong</surname></string-name>, <string-name>
<given-names>M. </given-names> 
<surname>Guizani</surname></string-name> <etal>et al.</etal>
</person-group><italic>,</italic> &#x201C;
<article-title>A survey on mobile anchor node assisted localization in wireless sensor networks</article-title>,&#x201D; 
<source>IEEE Communications Surveys and Tutorials</source>, vol. 
<volume>18</volume>, no. 
<issue>3</issue>, pp. 
<fpage>2220</fpage>&#x2013;
<lpage>2243</lpage>, 
<year>2016</year>.</mixed-citation>
</ref>
<ref id="ref-6">
<label>[6]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>N. M.</given-names> 
<surname>Nguyen</surname></string-name>, <string-name>
<given-names>L. C.</given-names> 
<surname>Tran</surname></string-name>, <string-name>
<given-names>F.</given-names> 
<surname>Safaei</surname></string-name>, <string-name>
<given-names>S. L.</given-names> 
<surname>Phung</surname></string-name>, <string-name>
<given-names>P. </given-names>
<surname>Vial</surname></string-name> <etal>et al.</etal>
</person-group><italic>,</italic> &#x201C;
<article-title>Performance evaluation of non-GPS based localization techniques under shadowing effects</article-title>,&#x201D; 
<source>Sensors</source>, vol. 
<volume>19</volume>, no. 
<issue>11</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>21</lpage>, 
<year>2019</year>.</mixed-citation>
</ref>
<ref id="ref-7">
<label>[7]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Yick</surname></string-name>, <string-name>
<given-names>B.</given-names> 
<surname>Mukherjee</surname></string-name> and <string-name>
<given-names>D.</given-names> 
<surname>Ghosal</surname></string-name>
</person-group>, &#x201C;
<article-title>Wireless sensor network survey</article-title>,&#x201D; 
<source>Computer Networks</source>, vol. 
<volume>52</volume>, no. 
<issue>12</issue>, pp. 
<fpage>2292</fpage>&#x2013;
<lpage>2330</lpage>, 
<year>2008</year>.</mixed-citation>
</ref>
<ref id="ref-8">
<label>[8]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>G.</given-names> 
<surname>Han</surname></string-name>, <string-name>
<given-names>H.</given-names> 
<surname>Xu</surname></string-name>, <string-name>
<given-names>T. Q.</given-names> 
<surname>Duong</surname></string-name>, <string-name>
<given-names>J.</given-names> 
<surname>Jiang</surname></string-name> and <string-name>
<given-names>T.</given-names> 
<surname>Hara</surname></string-name>
</person-group>, &#x201C;
<article-title>Localization algorithms of wireless sensor networks: A survey</article-title>,&#x201D; 
<source>Telecommunication Systems</source>, vol. 
<volume>52</volume>, no. 
<issue>4</issue>, pp. 
<fpage>2419</fpage>&#x2013;
<lpage>2436</lpage>, 
<year>2013</year>.</mixed-citation>
</ref>
<ref id="ref-9">
<label>[9]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>H.</given-names> 
<surname>Chen</surname></string-name>, <string-name>
<given-names>P.</given-names> 
<surname>Huang</surname></string-name>, <string-name>
<given-names>M.</given-names> 
<surname>Martins</surname></string-name>, <string-name>
<given-names>H. C.</given-names> 
<surname>So</surname></string-name> and <string-name>
<given-names>K.</given-names> 
<surname>Sezaki</surname></string-name>
</person-group>, &#x201C;
<article-title>Novel centroid localization algorithm for three-dimensional wireless sensor networks</article-title>,&#x201D; in <conf-name>Proc. WiCOM</conf-name>, 
<conf-loc>Dalian, China</conf-loc>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>4</lpage>, 
<year>2008</year>. </mixed-citation>
</ref>
<ref id="ref-10">
<label>[10]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>X.</given-names> 
<surname>Yang</surname></string-name>, <string-name>
<given-names>F.</given-names> 
<surname>Yan</surname></string-name> and <string-name>
<given-names>J.</given-names> 
<surname>Liu</surname></string-name>
</person-group>, &#x201C;
<article-title>3D localization algorithm based on Voronoi diagram and rank sequence in wireless sensor network</article-title>,&#x201D; 
<source>Scientific Programming</source>, vol. 
<volume>2017</volume>, no. 
<issue>4769710</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>8</lpage>, 
<year>2017</year>, 
<comment>2017</comment>.</mixed-citation>
</ref>
<ref id="ref-11">
<label>[11]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>P.</given-names> 
<surname>Singh</surname></string-name>, <string-name>
<given-names>A.</given-names> 
<surname>Khosla</surname></string-name>, <string-name>
<given-names>A.</given-names> 
<surname>Kumar</surname></string-name> and <string-name>
<given-names>M.</given-names> 
<surname>Khosla</surname></string-name>
</person-group>, &#x201C;
<article-title>3D localization of moving target nodes using single anchor node in anisotropic wireless sensor networks</article-title>,&#x201D; 
<source>AEU International Journal of Electronics and Communications</source>, vol. 
<volume>82</volume>, pp. 
<fpage>543</fpage>&#x2013;
<lpage>552</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-12">
<label>[12]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>B. R.</given-names> 
<surname>Stojkoska</surname></string-name>
</person-group>, &#x201C;
<article-title>Nodes localization in 3D wireless sensor networks based on multidimensional scaling algorithm</article-title>,&#x201D; 
<source>International Scholarly Research Notices</source>, vol. 
<volume>2014</volume>, no. 
<issue>845027</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>10</lpage>, 
<year>2014</year>.</mixed-citation>
</ref>
<ref id="ref-13">
<label>[13]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>R. J.</given-names> 
<surname>Wang</surname></string-name>, <string-name>
<given-names>Z. G.</given-names> 
<surname>Qin</surname></string-name>, <string-name>
<given-names>J. H.</given-names> 
<surname>Wang</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Zhao</surname></string-name> and <string-name>
<given-names>W. W.</given-names> 
<surname>Ni</surname></string-name>
</person-group>, &#x201C;
<article-title>3DPHDV-Hop: A new 3D positioning algorithm using partial hop size in WSN</article-title>,&#x201D; in <conf-name>Proc. ICCCAS</conf-name>, 
<conf-loc>Chengdu, China</conf-loc>, pp. 
<fpage>91</fpage>&#x2013;
<lpage>95</lpage>, 
<year>2013</year>. </mixed-citation>
</ref>
<ref id="ref-14">
<label>[14]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Kaur</surname></string-name>, <string-name>
<given-names>P.</given-names> 
<surname>Kumar</surname></string-name> and <string-name>
<given-names>G. P.</given-names> 
<surname>Gupta</surname></string-name>
</person-group>, &#x201C;
<article-title>Sensor nodes localization for 3D wireless sensor networks using gauss-newton method</article-title>,&#x201D; in <conf-name>Proc. ICSICCS</conf-name>, 
<conf-loc>Punjab, India</conf-loc>, vol. 
<volume>669</volume>, pp. 
<fpage>187</fpage>&#x2013;
<lpage>198</lpage>, 
<year>2019</year>. </mixed-citation>
</ref>
<ref id="ref-15">
<label>[15]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>T.</given-names> 
<surname>Ahmad</surname></string-name>, <string-name>
<given-names>X. J.</given-names> 
<surname>Li</surname></string-name> and <string-name>
<given-names>B. C.</given-names> 
<surname>Seet</surname></string-name>
</person-group>, &#x201C;
<article-title>Parametric loop division for 3D localization in wireless sensor networks</article-title>,&#x201D; 
<source>Sensors</source>, vol. 
<volume>17</volume>, no. 
<issue>7</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>32</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-16">
<label>[16]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>L.</given-names> 
<surname>Yi</surname></string-name> and <string-name>
<given-names>M.</given-names> 
<surname>Chen</surname></string-name>
</person-group>, &#x201C;
<article-title>An enhanced hybrid 3D localization algorithm based on APIT and DV-Hop</article-title>,&#x201D; 
<source>International Journal of Online Engineering</source>, vol. 
<volume>13</volume>, no. 
<issue>9</issue>, pp. 
<fpage>69</fpage>&#x2013;
<lpage>86</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-17">
<label>[17]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>X.</given-names> 
<surname>Chen</surname></string-name> and <string-name>
<given-names>B.</given-names> 
<surname>Zhang</surname></string-name>
</person-group>, &#x201C;
<article-title>3D DV-hop localisation scheme based on particle swarm optimisation in wireless sensor networks</article-title>,&#x201D; 
<source>International Journal of Sensor Networks</source>, vol. 
<volume>16</volume>, no. 
<issue>2</issue>, pp. 
<fpage>100</fpage>&#x2013;
<lpage>105</lpage>, 
<year>2014</year>.</mixed-citation>
</ref>
<ref id="ref-18">
<label>[18]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>W.</given-names> 
<surname>Wang</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Yang</surname></string-name>, <string-name>
<given-names>L.</given-names> 
<surname>Wang</surname></string-name> and <string-name>
<given-names>W.</given-names> 
<surname>Lu</surname></string-name>
</person-group>, &#x201C;
<article-title>PMDV-hop: An effective range-free 3D localization scheme based on the particle swarm optimization in wireless sensor network</article-title>,&#x201D; 
<source>KSII Transactions on Internet and Information Systems</source>, vol. 
<volume>12</volume>, no. 
<issue>1</issue>, pp. 
<fpage>61</fpage>&#x2013;
<lpage>80</lpage>, 
<year>2018</year>.</mixed-citation>
</ref>
<ref id="ref-19">
<label>[19]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>Y.</given-names> 
<surname>Xu</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Zhuang</surname></string-name> and <string-name>
<given-names>J. J.</given-names> 
<surname>Gu</surname></string-name>
</person-group>, &#x201C;
<article-title>An improved 3D localization algorithm for the wireless sensor network</article-title>,&#x201D; 
<source>International Journal of Distributed Sensor Networks</source>, vol. 
<volume>2015</volume>, no. 
<issue>315714</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>9</lpage>, 
<year>2015</year>.</mixed-citation>
</ref>
<ref id="ref-20">
<label>[20]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>B.</given-names> 
<surname>Shah</surname></string-name> and <string-name>
<given-names>K. L.</given-names> 
<surname>Kim</surname></string-name>
</person-group>, &#x201C;
<article-title>A survey on three-dimensional wireless <italic>ad hoc</italic> and sensor networks</article-title>,&#x201D; 
<source>International Journal of Distributed Sensor Networks</source>, vol. 
<volume>2014</volume>, no. 
<issue>616014</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>10</lpage>, 
<year>2014</year>.</mixed-citation>
</ref>
<ref id="ref-21">
<label>[21]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>Y.</given-names> 
<surname>Xu</surname></string-name>, <string-name>
<given-names>X.</given-names> 
<surname>Luo</surname></string-name>, <string-name>
<given-names>W.</given-names> 
<surname>Wang</surname></string-name> and <string-name>
<given-names>W.</given-names> 
<surname>Zhao</surname></string-name>
</person-group>, &#x201C;
<article-title>Efficient DV-HOP localization forwireless cyber-physical social sensing system: A correntropy-based neural network learning scheme</article-title>,&#x201D; 
<source>Sensors</source>, vol. 
<volume>17</volume>, no. 
<issue>135</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>17</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-22">
<label>[22]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Fan</surname></string-name>, <string-name>
<given-names>B.</given-names> 
<surname>Zhang</surname></string-name> and <string-name>
<given-names>G.</given-names> 
<surname>Dai</surname></string-name>
</person-group>, &#x201C;
<article-title>D3D-MDS: A distributed 3D localization scheme for an irregular wireless sensor network using multidimensional scaling</article-title>,&#x201D; 
<source>International Journal of Distributed Sensor Networks</source>, vol. 
<volume>2015</volume>, no. 
<issue>103564</issue>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>10</lpage>, 
<year>2015</year>.</mixed-citation>
</ref>
<ref id="ref-23">
<label>[23]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Mass-Sanchez</surname></string-name>, <string-name>
<given-names>E.</given-names> 
<surname>Ruiz-Ibarra</surname></string-name>, <string-name>
<given-names>J.</given-names> 
<surname>Cortez-Gonz&#x00E1;lez</surname></string-name>, <string-name>
<given-names>A.</given-names> 
<surname>Espinoza-Ruiz</surname></string-name> and <string-name>
<given-names>L. A.</given-names> 
<surname>Castro</surname></string-name>
</person-group>, &#x201C;
<article-title>Weighted hyperbolic DV-hop positioning node localization algorithm in WSNs</article-title>,&#x201D; 
<source>Wireless Personal Communications</source>, vol. 
<volume>96</volume>, no. 
<issue>4</issue>, pp. 
<fpage>5011</fpage>&#x2013;
<lpage>5033</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-24">
<label>[24]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>G.</given-names> 
<surname>Sharma</surname></string-name> and <string-name>
<given-names>A.</given-names> 
<surname>Kumar</surname></string-name>
</person-group>, &#x201C;
<article-title>Improved DV-Hop localization algorithm using teaching learning-based optimization for wireless sensor networks</article-title>,&#x201D; 
<source>Telecommunication Systems</source>, vol. 
<volume>67</volume>, no. 
<issue>2</issue>, pp. 
<fpage>163</fpage>&#x2013;
<lpage>178</lpage>, 
<year>2018</year>.</mixed-citation>
</ref>
<ref id="ref-25">
<label>[25]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>D.</given-names> 
<surname>Prashar</surname></string-name> and <string-name>
<given-names>K.</given-names> 
<surname>Jyoti</surname></string-name>
</person-group>, &#x201C;
<article-title>Distance error correction-based hop localization algorithm for wireless sensor network</article-title>,&#x201D; 
<source>Wireless Personal Communications</source>, vol. 
<volume>106</volume>, no. 
<issue>3</issue>, pp. 
<fpage>1465</fpage>&#x2013;
<lpage>1488</lpage>, 
<year>2019</year>.</mixed-citation>
</ref>
<ref id="ref-26">
<label>[26]</label><mixed-citation publication-type="other">
<person-group person-group-type="author">
<collab>MathWorks</collab>
</person-group>, &#x201C;
<article-title>MATLAB 2013</article-title>,&#x201D; 
<source>MATLAB 7</source>, 
<publisher-loc>Natick, MA, USA</publisher-loc>, 
<year>2013</year>. Available: <uri>https://www.mathworks.com/products/matlab.html</uri>.</mixed-citation>
</ref>
<ref id="ref-27">
<label>[27]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>S.</given-names> 
<surname>Yang</surname></string-name>, <string-name>
<given-names>Z.</given-names> 
<surname>Bo</surname></string-name>, <string-name>
<given-names>K.</given-names> 
<surname>Wang</surname></string-name> and <string-name>
<given-names>C.</given-names> 
<surname>Hui</surname></string-name>
</person-group>, &#x201C;
<article-title>DB: A developed 3D positioning algorithm in WSN based on DV-Hop and bounding cube</article-title>,&#x201D; in <conf-name>Proc. CAMAN</conf-name>, 
<conf-loc>Wuhan, China</conf-loc>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>4</lpage>, 
<year>2011</year>. </mixed-citation>
</ref>
<ref id="ref-28">
<label>[28]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>L.</given-names> 
<surname>Zhang</surname></string-name>, <string-name>
<given-names>F.</given-names> 
<surname>Peng</surname></string-name>, <string-name>
<given-names>P.</given-names> 
<surname>Cao</surname></string-name> and <string-name>
<given-names>W.</given-names> 
<surname>Ji</surname></string-name>
</person-group>, &#x201C;
<article-title>An improved three-dimensional DV-hop localization algorithm optimized by adaptive cuckoo search algorithm</article-title>,&#x201D; 
<source>International Journal of Online Engineering</source>, vol. 
<volume>13</volume>, no. 
<issue>2</issue>, pp. 
<fpage>102</fpage>&#x2013;
<lpage>118</lpage>, 
<year>2017</year>.</mixed-citation>
</ref>
<ref id="ref-29">
<label>[29]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>Y.</given-names> 
<surname>Liu</surname></string-name>, <string-name>
<given-names>J.</given-names> 
<surname>Xing</surname></string-name> and <string-name>
<given-names>R.</given-names> 
<surname>Wang</surname></string-name>
</person-group>, &#x201C;
<article-title>3D-OSSDL: Three-dimensional optimum space step distance localization scheme in stereo wireless sensor networks</article-title>,&#x201D; in <conf-name>Proc. ICCE2011</conf-name>, 
<conf-loc>Melbourne, Australia</conf-loc>, pp. 
<fpage>17</fpage>&#x2013;
<lpage>25</lpage>, 
<year>2011</year>. </mixed-citation>
</ref>
</ref-list>
</back>
</article>