<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/91209493</article-id>
<article-id pub-id-type="publisher-id">sensors-09-09493</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Acoustic Sensor Planning for Gunshot Location in National Parks: A Pareto Front Approach</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>González-Castaño</surname><given-names>Francisco Javier</given-names></name><xref ref-type="aff" rid="af1-sensors-09-09493"><sup>1</sup></xref><xref ref-type="aff" rid="af2-sensors-09-09493"><sup>2</sup></xref><xref ref-type="corresp" rid="c1-sensors-09-09493"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Alonso</surname><given-names>Javier Vales</given-names></name><xref ref-type="aff" rid="af3-sensors-09-09493"><sup>3</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Costa-Montenegro</surname><given-names>Enrique</given-names></name><xref ref-type="aff" rid="af2-sensors-09-09493"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>López-Matencio</surname><given-names>Pablo</given-names></name><xref ref-type="aff" rid="af3-sensors-09-09493"><sup>3</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Vicente-Carrasco</surname><given-names>Francisco</given-names></name><xref ref-type="aff" rid="af3-sensors-09-09493"><sup>3</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Parrado-García</surname><given-names>Francisco J.</given-names></name><xref ref-type="aff" rid="af3-sensors-09-09493"><sup>3</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Gil-Castiñeira</surname><given-names>Felipe</given-names></name><xref ref-type="aff" rid="af2-sensors-09-09493"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Costas-Rodríguez</surname><given-names>Sergio</given-names></name><xref ref-type="aff" rid="af1-sensors-09-09493"><sup>1</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-09-09493">
<label>1</label> Fundacion Centro Tecnologico de las Telecomunicaciones de Galicia (Gradiant), Campus As Lagoas/Marcosende, Vigo, Spain; E-Mail: <email>scostas@gradiant.org</email> (S.C.-R.)</aff>
<aff id="af2-sensors-09-09493">
<label>2</label> Telematics Engineering Department, University of Vigo, Spain; E-Mails: <email>kike@det.uvigo.es</email> (E.C.-M.); <email>xil@det.uvigo.es</email> (F.G.-C.)</aff>
<aff id="af3-sensors-09-09493">
<label>3</label> Information and Communications Technologies Department, Technical University of Cartagena, Spain; E-Mails: <email>javier.vales@upct.es</email> (J.V.A.); <email>pablo.lopez@upct.es</email> (P.L.-M.); <email>francisco.vicente@upct.es</email> (F.V.-C.); <email>fco.parrado@upct.es</email> (F.J.P.-G.)</aff>
<author-notes>
<corresp id="c1-sensors-09-09493">
<label>*</label>Author to whom correspondence should be addressed; E-Mail: <email>javier@det.uvigo.es</email>; Tel.: +34-98-681-3788; Fax: +34-98-681-2116.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2009</year></pub-date>
<pub-date pub-type="epub">
<day>26</day>
<month>11</month>
<year>2009</year></pub-date>
<volume>9</volume>
<issue>12</issue>
<fpage>9493</fpage>
<lpage>9512</lpage>
<history>
<date date-type="received">
<day>9</day>
<month>10</month>
<year>2009</year></date>
<date date-type="rev-recd">
<day>13</day>
<month>11</month>
<year>2009</year></date>
<date date-type="accepted">
<day>16</day>
<month>11</month>
<year>2009</year></date></history>
<permissions>
<copyright-statement>© 2009 by the authors; licensee Molecular Diversity Preservation International, Basel, Switzerland.</copyright-statement>
<copyright-year>2009</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>In this paper, we propose a solution for gunshot location in national parks. In Spain there are agencies such as SEPRONA that fight against poaching with considerable success. The DiANa project, which is endorsed by Cabaneros National Park and the SEPRONA service, proposes a system to automatically detect and locate gunshots. This work presents its technical aspects related to network design and planning. The system consists of a network of acoustic sensors that locate gunshots by hyperbolic multi-lateration estimation. The differences in sound time arrivals allow the computation of a low error estimator of gunshot location. The accuracy of this method depends on tight sensor clock synchronization, which an ad-hoc time synchronization protocol provides. On the other hand, since the areas under surveillance are wide, and electric power is scarce, it is necessary to maximize detection coverage and minimize system cost at the same time. Therefore, sensor network planning has two targets, <italic>i.e.</italic>, coverage and cost. We model planning as an unconstrained problem with two objective functions. We determine a set of candidate solutions of interest by combining a derivative-free descent method we have recently proposed with a Pareto front approach. The results are clearly superior to random seeding in a realistic simulation scenario.</p></abstract>
<kwd-group>
<kwd>acoustic sensing</kwd>
<kwd>sound location</kwd>
<kwd>sensor synchronization</kwd>
<kwd>sensor network planning</kwd>
<kwd>derivative-free optimization</kwd>
<kwd>Pareto front</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>The Spanish SEPRONA [<xref ref-type="bibr" rid="b1-sensors-09-09493">1</xref>] agency fights against poaching with considerable success. However, the problem remains relevant. Since 2007, SEPRONA has detained over 150 people for hunting felonies [<xref ref-type="bibr" rid="b2-sensors-09-09493">2</xref>, <xref ref-type="bibr" rid="b3-sensors-09-09493">3</xref>]. Consequently, the authors have proposed the DiANa project, <italic>Detección de caza furtiva con Armas de fuego en parques NAcionales</italic> (Detection of illegal hunting with gunfires in national parks), to automatically detect and locate gunshots, which is endorsed by Cabañeros National Park [<xref ref-type="bibr" rid="b4-sensors-09-09493">4</xref>].</p>
<p>The DiANa system consists of a network of acoustic sensors that locate gunshots. There exist some commercial solutions for gunshot detection, although they do not locate sound sources [<xref ref-type="bibr" rid="b5-sensors-09-09493">5</xref>]. There also exist sound location tools for the military, but they are too costly and cannot be deployed in large numbers in civilian applications [<xref ref-type="bibr" rid="b6-sensors-09-09493">6</xref>]. This paper presents an original method for gunshot location and a planning algorithm for its deployment in large terrain extensions (e.g., a national park). Two key design issues are implementation cost minimization and performance maximization in real-time scenarios. Therefore, sensor protocols and tasks (such as time synchronization and gunshot position estimators), as well as network planning for node placement, have been taken into account.</p>
<p>Assuming a group of sensors has correctly detected an acoustic signal (e.g., using Gaussian Mixture Models, GMM [<xref ref-type="bibr" rid="b7-sensors-09-09493">7</xref>, <xref ref-type="bibr" rid="b8-sensors-09-09493">8</xref>]), the location of this signal results from the combination of sensor data. A sensor only knows its own position and local time, and therefore these measures must suffice to locate the gunshot.</p>
<p>In the literature there are several location estimators, such as triangulation [<xref ref-type="bibr" rid="b9-sensors-09-09493">9</xref>] and trilateration [<xref ref-type="bibr" rid="b10-sensors-09-09493">10</xref>] methods. In the triangulation schema, every sensor determines the direction from which the acoustic event is detected, and then the location of that event is calculated as the intersection of the detection directions. We discarded this alternative, because determining the direction of the acoustic event would make the hardware design too complex and costly, and the solution would be highly sensitive to terrain shape. A trilateration schema determines the location of the event from the distance between the source of the acoustic event and a fixed sensor. These distances can be obtained if the generation time of the event is known. However, in our scenario, only the detection time is available to the nodes.</p>
<p>A directly observable acoustic signal between a couple of microphones is the time difference of arrival (TDoA) [<xref ref-type="bibr" rid="b11-sensors-09-09493">11</xref>–<xref ref-type="bibr" rid="b13-sensors-09-09493">13</xref>]. The TDoA technique exploits the relationship between distance and transmission time when the propagation speed is known. Once the time delays are calculated, they are processed in order to estimate the location of the source [<xref ref-type="bibr" rid="b14-sensors-09-09493">14</xref>–<xref ref-type="bibr" rid="b16-sensors-09-09493">16</xref>]. Due to the distances between the deployed sensors (in the order of hundreds of meters), and the smooth landscape in Cabañeros National Park (<xref ref-type="fig" rid="f1-sensors-09-09493">Figure 1</xref>), we have assumed a two-dimensional scenario.</p>
<p>The hyperbolic location method [<xref ref-type="bibr" rid="b17-sensors-09-09493">17</xref>] minimizes an error measure that is a nonlinear function of the potential source location. This approach is scalable, since location accuracy increases with the number of nodes that detect the gunshot (see Section 5.). Its domain can be a plane or a three-dimensional space.</p>
<p>TDoA-based ranging techniques require accurate clock synchronization. Every sensor knows its own position exactly, and it records the arrival time of the sound event. So, the sensor clocks must be as tightly synchronized as possible, using dedicated time-synchronization algorithms. Since a gunshot location network must scale to large sizes, it is necessary to minimize the number of exchanged messages to attain convergence, keeping energy consumption at reasonable levels if the electric grid is not available.</p>
<p>Selecting a synchronization schema for a real application like ours is not easy. The best known synchronization schemas implement network mechanisms to adjust all local clocks to the same value. This is achieved by exchanging time stamps between node pairs. The more frequent the exchanges, the higher the time accuracy. Two representative examples are Reference Broadcast Synchronization (RBS) [<xref ref-type="bibr" rid="b18-sensors-09-09493">18</xref>] and the Timing-Sync Protocol for sensor Networks (TSPN) [<xref ref-type="bibr" rid="b19-sensors-09-09493">19</xref>]. We discarded GPS receivers due to their high cost. In Section 2.3. we propose a new ad-hoc flood method to set the clock times in every network node to the same value. In this method, the nodes do not exchange synchronization messages, and thus they save power. Once a node detects a gunshot, the time of the event is transmitted to the sink node through a previously generated path. The method performs a cooperative backward time adjustment, so that every node along the path is able to estimate the event time.</p>
<p>Regarding network planning, since the areas under surveillance are wide, and electric power is seldom available, it is necessary to both maximize detection coverage and minimize system cost. Therefore, we model sensor network planning as an unconstrained problem with two objective functions. We provide a set of candidate solutions of interest by combining a derivative-free descent method we have recently proposed and a Pareto front approach.</p>
<p>Due to the inherent difficulties exhibited by the thus far formulated models in sensor network planning, several heuristic optimization strategies have been proposed in the literature: variants of simulated annealing [<xref ref-type="bibr" rid="b20-sensors-09-09493">20</xref>], genetic algorithms [<xref ref-type="bibr" rid="b21-sensors-09-09493">21</xref>], gradient descent (when applicable) [<xref ref-type="bibr" rid="b22-sensors-09-09493">22</xref>] and others [<xref ref-type="bibr" rid="b23-sensors-09-09493">23</xref>, <xref ref-type="bibr" rid="b24-sensors-09-09493">24</xref>].</p>
<p>Some of these approaches (simulated annealing, genetic algorithms and the like) do not guarantee theoretical convergence. Regarding gradient descent methods, the gradient is often unavailable or too costly to compute. Therefore, we have adapted a non-monotone derivative-free optimization technique with guaranteed convergence [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>] to formulate and solve a computationally efficient <bold>optimization model</bold> with a dual objective: maximization of acoustic network coverage and minimization of power infrastructure cost. The results are presented as a Pareto front, revealing solutions that are clearly superior to random seeding.</p>
<p>Our notation is as follows: Lower case Greek letters are scalars, lower case Latin letters are vectors in <italic>IR</italic><sup>2</sup>, 
<inline-formula>
<mml:math id="mm1">
<mml:semantics id="sm1">
<mml:mrow>
<mml:msubsup>
<mml:mtext mathvariant="italic">x</mml:mtext>
<mml:mi>k</mml:mi>
<mml:mi>j</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> is the <italic>j-th</italic> component of the vector <italic>x<sub>k</sub></italic>, and ‖<italic>x</italic>‖ is the Euclidean norm. A capital Latin letter, say <italic>S</italic>, stands for a collection of vectors in <italic>IR</italic><sup>2</sup>; if <italic>S</italic> = {<italic>s</italic><sub>1</sub>, …, <italic>s<sub>p</sub></italic>} we also say that <italic>S</italic> ∈ <italic>IR</italic><sup>2</sup><italic><sup>p</sup></italic>; <italic>τS</italic> = {<italic>τs</italic><sub>1</sub>, …, <italic>τ</italic>s<italic><sub>p</sub></italic>}, and the sum <italic>Z</italic> = <italic>S</italic> + <italic>D</italic> means that <italic>S</italic> and <italic>D</italic> have the same number of elements, say <italic>p</italic>, and <italic>z<sub>k</sub></italic> ∈ <italic>Z</italic> if <italic>and only if</italic> ∃<italic>k</italic> ∈ {1, …, <italic>p</italic>} | <italic>z<sub>k</sub></italic> = <italic>s<sub>k</sub></italic> + <italic>d<sub>k</sub></italic>. In general the subindex <italic>i</italic> is the value of an entity (scalar, vector, set, and so forth) at the <italic>i-th</italic> iteration of an algorithm; for instance <italic>S<sub>i</sub></italic> = {<italic>s<sub>i</sub></italic><sub>1</sub>, …, <italic>s<sub>ip</sub></italic>} is a set of <italic>p</italic> vectors in <italic>IR</italic><sup>2</sup>, at the <italic>i-th</italic> iteration.</p>
<p>The rest of the paper is organized as follows:</p>
<p>Section 2. describes the sound location and node synchronization procedures. In Section 3. we present the optimization model to plan the acoustic sensor network. In Section 4. we verify that the problem fulfills the conditions in [<xref ref-type="bibr" rid="b26-sensors-09-09493">26</xref>] to apply the advanced derivative-free algorithms in [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>]. In Section 5. we perform numerical tests to evaluate the approach. Finally, Section 6. concludes the article.</p></sec>
<sec>
<label>2.</label>
<title>Gunshot Location</title>
<p>In this section we describe the location procedure for acoustic events, which we have implemented for MicaZ motes. The goal of our system is gunshot location by means of a sensor network. Location is based on hyperbolic positioning [<xref ref-type="bibr" rid="b17-sensors-09-09493">17</xref>]. Hyperbolic positioning requires the sensor clocks to be synchronized, in order to apply the TDoA technique. For this reason we have implemented a synchronization protocol in the MICAz motes. Next, we describe the system architecture, the location method and, finally, the synchronization schema.</p>
<sec>
<label>2.1.</label>
<title>System architecture</title>
<p><xref ref-type="fig" rid="f2-sensors-09-09493">Figure 2</xref> shows the system architecture, with three components:
<list list-type="bullet">
<list-item>
<p>Sensor nodes: The sensor nodes in known positions are equipped with the necessary hardware for the detection of acoustic events. They can discriminate between <italic>normal</italic> and <italic>shot</italic> segment classes in audio streams. When a sensor node detects a sound event, it transmits a packet with information about the type of sound event and a sound timestamp to a special node, the sink.</p></list-item>
<list-item>
<p>Sink nodes: Sink nodes collect the packets sent by sensor nodes and deliver them to the GIS server to calculate the position of the sound event. Sink nodes may be sensing nodes as well.</p></list-item>
<list-item>
<p>GIS server: Using the information from the sink nodes, the GIS server estimates the position of the acoustic event by means of a hyperbolic method, described in Section 2.2.</p></list-item></list></p></sec>
<sec>
<label>2.2.</label>
<title>Source location procedure</title>
<p>Since our optimization model (see Section 3.) considers a flat landscape with scattered trees, we have selected a two-dimensional hyperbolic positioning algorithm. Nevertheless, it could be easily extended to three-dimensional location in rough scenarios.</p>
<p>Let us consider an acoustic event that takes place at an unknown position <italic>x</italic> ∈ <italic>IR</italic><sup>2</sup>, which we wish to determine. Formally, all sensing node locations <italic>s</italic> = (s<sup>1</sup>, <italic>s</italic><sup>2</sup>) belong to a well-defined <italic>compact</italic> set <italic>X</italic> ⊂ <italic>IR</italic><sup>2</sup>. We denote the <italic>Euclidean</italic> distance <italic>δ</italic>(<italic>s, x</italic>) between a sensor location <italic>s</italic> and another point <italic>x</italic> in the scenario, <italic>s, x</italic> ∈ <italic>X</italic>, by
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm2" display="block">
<mml:semantics id="sm2">
<mml:mrow>
<mml:msup>
<mml:mi>δ</mml:mi>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>‖</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mo>‖</mml:mo></mml:mrow></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>Let us also assume that a subset <italic>B</italic> ⊂ <italic>X</italic> of the nodes have detected the event, and that the position of those nodes is known. Let us denote the sound propagation speed as <italic>υ</italic>. Then, the time of arrival <italic>t<sub>b</sub></italic> of the event at any node <italic>b</italic> ∈ <italic>B</italic> is:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm3">
<mml:semantics id="sm3">
<mml:mrow>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>b</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>υ</mml:mi></mml:mfrac>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>b</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>and the difference between the arrival times of the event to a pair of nodes <italic>s<sub>b</sub></italic> and <italic>s<sub>b</sub></italic><sub>′</sub> is:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="mm4">
<mml:semantics id="sm4">
<mml:mrow>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub>
<mml:mo>≜</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mi>b</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>t</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mi>υ</mml:mi></mml:mfrac>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>b</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo>∈</mml:mo>
<mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>This expression defines hyperboles, whose intersection determines the source of the shot. <xref ref-type="fig" rid="f3-sensors-09-09493">Figure 3</xref> shows this process graphically.</p>
<p>For two given receiver locations, sb and <italic>s<sub>b′</sub></italic> a set of emitter locations would yield the same TDoA measurement. This is the <italic>locus</italic> of possible emitter locations and it describes a hyperbole. If we now consider a receiver at a third location <italic>s<sub>b</sub></italic><sub>″</sub>, it provides a second TDoA measurement, and, hence, allows the location of the emitter on a second hyperbole. In general, a set of distances from the source to every sensor pair identifies a set of hyperboles. As a consequence, the location of the source is the intersection of this set of hyperboles. In Section 5., our tests show that location accuracy increases with the number of gunshot detection nodes. In most trials, the accuracy in scenarios with three detection nodes or more is sufficient to find the acoustic source (the detailed TDoA location technique is described in [<xref ref-type="bibr" rid="b17-sensors-09-09493">17</xref>]).</p>
<p>Although non-linear expression (<xref rid="FD3" ref-type="disp-formula">3</xref>) has a unique solution if there are enough hyperboles, there is some uncertainty in the calculation since:
<list list-type="bullet">
<list-item>
<p>The speed of sound varies depending on altitude, humidity and air temperature. As we have mentioned, multi-path propagation affects the accuracy of acoustic signal detection. Single spread-spectrum techniques such as those in [<xref ref-type="bibr" rid="b27-sensors-09-09493">27</xref>] largely mitigate it.</p></list-item>
<list-item>
<p>The microphone directionality or polar pattern affects the result.</p></list-item>
<list-item>
<p>The clock drift may drastically vary in time due to environmental temperature and humidity changes. In Section 2.3. we propose an approach to reduce sensor clock deviations.</p></list-item></list></p>
<p>Due to these inaccuracies, expression (<xref rid="FD3" ref-type="disp-formula">3</xref>) may be inconsistent. Nevertheless, low-error estimations are possible. A nonlinear optimization problem can be formulated [<xref ref-type="bibr" rid="b28-sensors-09-09493">28</xref>] to minimize the difference between estimated and real positions. We minimize the square error of the location, defined as the differences between the squares of the theoretical and measured differential arrival times to a reference node <italic>s<sub>b</sub></italic><sub>′</sub>:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math id="mm5" display="block">
<mml:semantics id="sm5">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>arg</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mo>min</mml:mo></mml:mrow>
<mml:mi>x</mml:mi></mml:munder>
<mml:mo stretchy="false">{</mml:mo>
<mml:munder>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mo>∀</mml:mo>
<mml:mi>b</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mi>B</mml:mi>
<mml:mo>\</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:munder>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>b</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>υ</mml:mi>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mi>b</mml:mi>
<mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub>
<mml:mo stretchy="false">]</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>The least square minimization problem in (<xref rid="FD4" ref-type="disp-formula">4</xref>) is not convex. Thus, standard optimization algorithms, such as incremental gradient, are not guaranteed to converge to the global minimum. The initial conditions in an iterative algorithm may lead to a local optimum or a saddle point at the termination, adding imprecision to gunshot location. The required computing power is moderate, and the GIS server (<xref ref-type="fig" rid="f2-sensors-09-09493">Figure 2</xref>) can handle the calculations. The solutions can be obtained practically in real time (see Section 5.). Our synchronization algorithm (see Section 2.3.) also contributes to the location procedure, since it is required for the sink node to compute the TDoA between the detectors. The tests with our reference implementation in MICAz motes reveal that, the more sensors that detect the sound event, the greater the location precision (see Section 5.). This is due to error compensation in arrival time measures. In conclusion, a high density of sensors around a sound event always improves location precision. Therefore, optimal sensor positioning improves the performance of the location system.</p></sec>
<sec>
<label>2.3.</label>
<title>Synchronization schema</title>
<p>Time synchronization is a fundamental aspect in distributed sensor networks. In the proposed shot detection system, the differences in arrival times can only be computed if the nodes are tightly synchronized. To adjust the clocks, the nodes must exchange messages indicating the time reference. In fact, time adjustment degrades progressively due to clock drifts, and it is indeed mandatory to readjust it periodically (by sending new messages). However, power consumption is higher if synchronization packets are continuously transmitted. Even if a continuous energy source is available, it may be necessary to extend the network with autonomous nodes at its edges. Therefore, the number of exchanged messages should be as low possible, for a given accuracy goal. For gunshot location purposes, if we assume a maximum error of few meters, the maximum allowed error in time synchronization is in the order of a tenth of a second (<italic>d<sub>e</sub>/υ</italic>, where <italic>d<sub>e</sub></italic> is the allowed spatial error). For example, three milliseconds of clock drift will cause an estimated error of one meter, relative to the real source position. Thus, fine-grained clock synchronization is mandatory. The tests with our synchronization algorithm show a time accuracy of tenths of microseconds. The implementation has been carried out with TinyOS in MICAz devices.</p>
<p>The synchronization algorithm has two steps:
<list list-type="order">
<list-item>
<p><italic>Level discovery</italic>: This step is similar to the level discovery stage in TPSN [<xref ref-type="bibr" rid="b19-sensors-09-09493">19</xref>]. Before the synchronization process takes place, the network has to organize itself as a hierarchical tree, beginning at a root node (in our case we choose the sink). According to the minimum number of hops to the sink, a level is assigned to each node (level 0 to the root). To compute the tree, the process starts at the root, broadcasting a level discovery packet to the nodes at level 0. The nodes that receive this packet are marked as children of the root node, and they set their level to 1. The nodes ignore further level discovery packets with greater or equal level numbers. Then, level 1 nodes broadcast their level discovery packets, and so on. Note that this process also permits discover of optimal communication paths (in number of hops) to the root, and, thus, it is valid for network routing.</p></list-item>
<list-item>
<p><italic>Synchronization</italic>: Once the hierarchical network structure is completed, the synchronization process may start. In general, level <italic>k</italic> nodes synchronize their children (of level <italic>k</italic> + 1).</p>
<p>Besides its own local clock, a sensor node will maintain an estimation of its synchronizer node clock in the upper hierarchical level. The approximation consists of calculating the regression line of those two clocks. Previously, the level <italic>k</italic> node receives several synchronized time-stamps of level <italic>k</italic> – 1 (see <xref ref-type="fig" rid="f4-sensors-09-09493">Figure 4</xref>), which are broadcast following the tree structure that was created at the level discovery step. <xref ref-type="fig" rid="f4-sensors-09-09493">Figure 4</xref> shows the regression line used to calculate the <italic>parent</italic> node clock in a level <italic>k</italic> node. Value <italic>α<sub>k</sub></italic> represents the clock offset at reference time <italic>t</italic> = 0, and the slope <italic>β<sub>k</sub></italic> is the rate of change (clock drift) of the local clock.</p>
<p>Once a node detects a gunshot, it sends the event to its <italic>parent</italic> node in the upper level, according to the parent time clock. After one or more hops, level 0 (sink node) will receive estimations of the detection time that are synchronized with the sink clock, from one or more level 1 nodes. This way, local clock exchanges do not spend power. Since clock drift varies slowly, the regression line must only be calculated every 6 or 8 hours, according to our tests with MicaZ motes. Only large temperature variations affect the regression line slope, requiring node re-synchronization.</p></list-item></list></p></sec></sec>
<sec>
<label>3.</label>
<title>Optimization Model</title>
<p>The sound spectrum of a gunshot is dominated by the 130 Hz to 3 kHz frequency range [<xref ref-type="bibr" rid="b29-sensors-09-09493">29</xref>]. According to [<xref ref-type="bibr" rid="b30-sensors-09-09493">30</xref>], at these frequencies there is an extra attenuation of 3 dB each ∼25 m in woods, yielding 12 dB vs. 9 dB in open space. Given the sensitivity threshold of the sensing node, its maximum ranges are 1 Km in open space and 750 m in a wood.</p>
<p>We consider a large outdoor flat scenario with open space areas and wood patches. The scenario is crossed by a few power lines. In it, we wish to deploy a given number of fixed sensing nodes, so that the detection coverage is maximum. A point gets covered if it is reachable by one sensing node at least, although this capability increases if more sensing nodes see the point (to achieve source signal location we require a coverage of at least three nodes, as explained in Section 2.2.).</p>
<p>At the same time, we wish to minimize the distance between the sensing nodes and the power lines so that the cost of the power infrastructure is minimal in case the nodes are not autonomous. The nodes communicate through the electric grid itself, so transmission coverage is not an issue of interest.</p>
<p>This scenario clearly prevents an optimal educated guess, specially when only a small number of sensing nodes is available.</p>
<p>We define <italic>δ</italic>(<italic>s, x</italic>) = <italic>ω</italic><sub>1</sub>(<italic>s, x</italic>) + <italic>ω</italic><sub>2</sub>(<italic>s, x</italic>), where:
<list list-type="bullet">
<list-item>
<p><italic>ω</italic><sub>1</sub>(<italic>s, x</italic>) corresponds to propagation distance through wood space.</p></list-item>
<list-item>
<p><italic>ω</italic><sub>2</sub>(<italic>s, x</italic>) corresponds to propagation distance through open space.</p></list-item></list></p>
<p>Given a sensor location <italic>s</italic> ∈ <italic>X</italic> and a point <italic>x</italic> ∈ <italic>X</italic> we say that <italic>x</italic> is visible from sensor <italic>s</italic> if:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math id="mm6" display="block">
<mml:semantics id="sm6">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mspace width="0.2em"/>
<mml:mtext>Km</mml:mtext></mml:mrow>
<mml:mrow>
<mml:mn>750</mml:mn>
<mml:mspace width="0.2em"/>
<mml:mtext>m</mml:mtext></mml:mrow></mml:mfrac>
<mml:msub>
<mml:mi>ω</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>ω</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&lt;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="0.2em"/>
<mml:mtext>Km</mml:mtext></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>Let <italic>S</italic> = {<italic>s</italic><sub>1</sub> …, <italic>s<sub>p</sub></italic>}, <italic>s<sub>k</sub></italic> ∈ <italic>X, k</italic> = 1, …, <italic>p</italic>, be the positions of <italic>p</italic> acoustic sensors on <italic>X</italic>. We denote by <italic>V</italic>(<italic>x</italic>) the set of all sensors <italic>s</italic> ∈ <italic>S</italic> that are visible from the location <italic>x</italic>. We also define an arbitrary grid <italic>G</italic> ⊆ <italic>X.</italic> Objective function <italic>f</italic><sub>1</sub>, which measures acoustic sensor coverage, is defined as follows:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math id="mm7" display="block">
<mml:semantics id="sm7">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mi>G</mml:mi></mml:mrow></mml:munder>
<mml:mrow>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mn>0.5</mml:mn>
<mml:mo>⋅</mml:mo>
<mml:mtext>card</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>if card</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&lt;</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>0.01</mml:mn>
<mml:mo>⋅</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mtext>card</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mtext>if card</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>≥</mml:mo>
<mml:mn>3</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>This function penalizes grid points that see fewer than three sensors (a gunshot in those points cannot be located with highest precision), and gives a small bonus to grid points that see more than three sensors (the minimum number of sensors for highest precision location).</p>
<p>A second objective function <italic>f</italic><sub>2</sub> measures the cost of the sensor deployment. As in the case of sensor coverage, there are many ways to model this. In this paper we assume that the cost of a sensor unit is negligible compared to the cost of a permanent power line. As we previously said, the scenario is crossed by <italic>m</italic> power lines. We define:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math id="mm8" display="block">
<mml:semantics id="sm8">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mi>S</mml:mi></mml:mrow></mml:munder>
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mo>min</mml:mo></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mo>{</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>}</mml:mo></mml:mrow></mml:munder>
<mml:msub>
<mml:mi>δ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>δ<sub>i</sub></italic>(<italic>s</italic>) is the Euclidean distance between <italic>s</italic> and the <italic>i</italic>-th power line, <italic>i.e.</italic>, between <italic>s</italic> and the point in that line that is closest to <italic>s</italic> in Euclidean distance.</p>
<p>Our ultimate task is to place <italic>p</italic> sensors on <italic>X</italic> in such a way that the coverage <italic>f</italic><sub>1</sub> on <italic>X</italic> is maximized and the cost <italic>f</italic><sub>2</sub> on <italic>X</italic> is minimized. Clearly, these objectives are contradictory. Minimizing −<italic>f</italic><sub>1</sub> (<italic>i.e.</italic>, maximizing <italic>f</italic><sub>1</sub>) tends to spread the sensors, whereas minimizing <italic>f</italic><sub>2</sub> tends to concentrate them around the power lines. For that reason, it is desirable to produce the <bold>Pareto front</bold> [<xref ref-type="bibr" rid="b31-sensors-09-09493">31</xref>] of these two functions, which represents a pool of <italic>candidate</italic> solutions. A point <italic>x</italic>* ∈ <italic>X</italic> belongs to the Pareto front of a set of functions in <italic>X</italic> if a further decrease in one of them is not possible without causing an increase in some of them. The methodology in [<xref ref-type="bibr" rid="b31-sensors-09-09493">31</xref>] obtains joint descent directions for all the objective functions in a set, but it requires all of them to be differentiable, and that is not the case with <italic>f</italic><sub>1</sub>.</p>
<p>In our case, since there are only two objective functions, we define the following unconstrained optimization problem:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math id="mm9" display="block">
<mml:semantics id="sm9">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mtext mathvariant="italic">minimize</mml:mtext></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:munder>
<mml:mspace width="1em"/>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>θ</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>θ</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mn>2</mml:mn></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
<p>By solving problem (<xref rid="FD8" ref-type="disp-formula">8</xref>) repeatedly, assigning random values to <italic>θ</italic> in [0, 1], we obtain a collection of points of the Pareto front of <italic>f</italic><sub>1</sub> and <italic>f</italic><sub>2</sub>.</p>
<sec>
<title>Remark 1</title>
<p>Note that any local minima in − <italic>f</italic><sub>1</sub> and <italic>f</italic><sub>2</sub> belong, by definition, to the Pareto front.</p>
<p>The next section deals with the solution of the model, including a proper choice of parameters.</p></sec></sec>
<sec>
<label>4.</label>
<title>Solving the Optimization Model</title>
<p>Many optimization algorithms are iterative. Starting with a solution estimate <italic>S</italic><sub>1</sub> = {s<sub>11</sub>, …, <italic>s</italic><sub>1</sub><italic><sub>p</sub></italic>}, a subsequence {<italic>S<sub>i</sub></italic>}<italic><sub>i</sub></italic><sub>∈</sub><italic><sub>I</sub></italic> = {<italic>s<sub>i</sub></italic><sub>1</sub>, …, <italic>s<sub>ip</sub></italic>}<italic><sub>i</sub></italic><sub>∈</sub><italic><sub>I</sub></italic> is generated that hopefully converges to the solution of the problem. As it is common in all implementations, there are several parameters (<italic>magic numbers</italic>) the user must set. Some of them will notably influence the performance of the algorithm, and often depend upon the structure of the objective function.</p>
<sec>
<label>4.1.</label>
<title>Alternative approaches</title>
<p>Two methods were suggested in [<xref ref-type="bibr" rid="b23-sensors-09-09493">23</xref>, <xref ref-type="bibr" rid="b24-sensors-09-09493">24</xref>] for access point coverage optimization, a similar problem to ours: <italic>neighborhood search</italic> and <italic>simulated annealing</italic> [<xref ref-type="bibr" rid="b32-sensors-09-09493">32</xref>], which we compared in [<xref ref-type="bibr" rid="b33-sensors-09-09493">33</xref>]. These methods have no guaranteed convergence. On the other hand, gradient descent methods converge, but they can only be applied when the objective function is smooth, which is unusual in realistic models like ours.</p></sec>
<sec>
<label>4.2.</label>
<title>Derivative-free unconstrained minimization</title>
<p>The function <italic>f</italic>(<italic>S</italic>), with <italic>θ</italic> ∈ (0, 1], is non-smooth on <italic>X</italic> with directional derivatives everywhere defined, which is a required assumption in a recent algorithm for unconstrained minimization (ignoring <italic>θ</italic> = 0 is not relevant when estimating the Pareto front, because <italic>θ</italic> can be arbitrarily close to 0). Numerical results show that the algorithm is competitive with others that try to find a good local minimum [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>, <xref ref-type="bibr" rid="b26-sensors-09-09493">26</xref>]. Essentially the algorithm is an iterative process that does not force the decrease of <italic>f</italic>(<italic>S<sub>i</sub></italic>), but imposes a controlled bound <italic>φ<sub>i</sub></italic> ≥ <italic>f</italic>(<italic>S<sub>i</sub></italic>) at every iteration. More specifically, given a stepsize <italic>τ<sub>i</sub></italic>Δ &gt; 0, and a unitary direction <italic>D</italic> ∈ <italic>IR</italic><sup>2</sup><italic><sup>p</sup>, D</italic> = {<italic>d</italic><sub>1</sub>, …, <italic>d<sub>p</sub></italic>}, one iteration of the algorithm succeeds if
<disp-formula id="FD9">
<label>(9)</label>
<mml:math id="mm10" display="block">
<mml:semantics id="sm10">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>≤</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>φ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>ν</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>where <italic>ν</italic>(·), <italic>φ</italic> satisfy <bold>A4 - A5</bold> given below. The point <italic>S<sub>i</sub></italic> is <italic>blocked</italic> when the algorithm fails to satisfy (<xref rid="FD9" ref-type="disp-formula">9</xref>) on a set of directions {<italic>D</italic><sub>1</sub>, …, <italic>D<sub>n</sub></italic>}, <italic>n</italic> &gt; 2<italic>p</italic> that positively spans <italic>IR</italic><sup>2</sup><italic><sup>p</sup></italic>. It is shown in [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>] that under assumptions <bold>A1 - A5</bold> given below, the sequence of blocked points converges to a point <italic>S*</italic> that satisfies the zero order stationary point of <italic>f</italic>(<italic>S</italic>), <italic>i.e., f′</italic>(<italic>S*, D<sub>k</sub></italic>) ≥ 0, <italic>k</italic> = 1, …, <italic>n</italic>, where the directional derivative is nonnegative along the given directions. In theory, if <bold>A6</bold> also holds, then ∇<italic>f</italic>(<italic>S</italic>*) = 0, but we are aware that <bold>A6</bold> is seldom fulfilled for our kind of function and we do not stress this result in this paper. The reader may read [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>, <xref ref-type="bibr" rid="b26-sensors-09-09493">26</xref>] to complete the details. We reproduce [25, <xref ref-type="table" rid="t1-sensors-09-09493">Table 1</xref>] in <xref ref-type="table" rid="t1-sensors-09-09493">Table 1</xref>.</p>
<list list-type="simple">
<list-item>
<p><bold>A1.</bold> <italic>f</italic>(<italic>S</italic>) : <italic>IR</italic><sup>2</sup><italic><sup>p</sup></italic> → <italic>IR</italic> is bounded below, and 
<inline-formula>
<mml:math id="mm11">
<mml:semantics id="sm11">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>}</mml:mo></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>∞</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> remains in a compact set,</p></list-item>
<list-item>
<p><bold>A2.</bold> <italic>f</italic>(<italic>S</italic>) has directional derivatives <italic>f′</italic>(<italic>S, D</italic>) everywhere defined:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math id="mm12" display="block">
<mml:semantics id="sm12">
<mml:mrow>
<mml:mi>η</mml:mi>
<mml:mo>&gt;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>⇒</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>η</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>η</mml:mi>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>η</mml:mi>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>η</mml:mi>
<mml:msup>
<mml:mi>f</mml:mi>
<mml:mo>′</mml:mo></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>D</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>o</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>η</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula></p></list-item>
<list-item>
<p><bold>A3.</bold> The unit directions <italic>D</italic><sub>1</sub>, …, <italic>D<sub>n</sub></italic> positively span <italic>R</italic><sup>2</sup><italic><sup>p</sup></italic>.</p></list-item>
<list-item>
<p><bold>A4.</bold> The function <italic>ν</italic>(·) : <italic>IR</italic><sub>+</sub> → <italic>IR</italic><sub>+</sub> is <italic>little-o</italic> of <italic>τ</italic>, that is: lim <italic>ν</italic>(<italic>τ</italic>)/<italic>τ</italic> = 0</p></list-item>
<list-item>
<p><bold>A5.</bold> The reference values 
<inline-formula>
<mml:math id="mm13">
<mml:semantics id="sm13">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:msub>
<mml:mi>φ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>}</mml:mo></mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>∞</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> are upper bounds of <italic>f</italic>(·), <italic>i.e., φ<sub>i</sub></italic> ≥ <italic>f</italic>(<italic>S<sub>i</sub></italic>) for all <italic>i</italic>, and decrease sufficiently after a given finite number of successful iterations.</p></list-item>
<list-item>
<p><bold>A6.</bold> <italic>f</italic>(<italic>S</italic>) is strictly differentiable or locally convex at all limit points of the sequence 
<inline-formula>
<mml:math id="mm14">
<mml:semantics id="sm14">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>}</mml:mo></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mo>∞</mml:mo></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> generated by the algorithm.</p></list-item></list>
<sec>
<title>Remark 2</title>
<p>The simplest case of INTERPOLATE(<italic>S, D, τ</italic>Δ) is <italic>Z</italic> = <italic>S</italic> + <italic>τ</italic>Δ<italic>D, f<sub>Z</sub></italic> = <italic>f</italic>(<italic>Z</italic>), which we follow in this paper, although there exist more elaborate alternatives [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>].</p></sec>
<sec>
<title>Remark 3</title>
<p>If <italic>α</italic> = 0, we obtain the monotone version of the derivative-free algorithm, which converges to the local minimum in the neighborhood of the starting point.</p></sec>
<sec>
<title>Remark 4</title>
<p><bold>A5</bold> holds.</p></sec>
<sec>
<title>Remark 5</title>
<p>In order to improve convergence, [<xref ref-type="bibr" rid="b25-sensors-09-09493">25</xref>] suggested expanding <italic>τ</italic> every time a <italic>significant</italic> number of successes is achieved. Nevertheless, convergence is also guaranteed if <italic>τ</italic> only decreases.</p>
<p>Regarding conditions <bold>A1-A5:</bold> (1) The objective function <italic>f</italic>(·) : <italic>IR</italic><sup>2</sup><italic><sup>p</sup></italic> → <italic>IR</italic> as defined in (<xref rid="FD8" ref-type="disp-formula">8</xref>) is non negative by adding a constant and <italic>S</italic> = {<italic>s</italic><sub>1</sub>, …, <italic>s<sub>p</sub></italic>} remains in the compact set <italic>X</italic>, (2) <italic>f</italic>(·) possesses everywhere directional derivatives if <italic>θ</italic> ∈ (0, 1], (3) the directions of search <italic>D<sub>k</sub></italic> ∈ <italic>IR</italic><sup>2</sup><italic><sup>p</sup>, k</italic> = 1, …, <italic>n</italic> are easy to generate [<xref ref-type="bibr" rid="b26-sensors-09-09493">26</xref>], (4) the choice of <italic>ν</italic>(<italic>τ</italic>Δ) in Section 5. is 0.001(<italic>τ</italic>Δ)<sup>2</sup>, and (5) <italic>φ</italic> = <italic>f</italic>(<italic>S</italic>) as soon as all directions in <italic>D</italic> have been explored (<xref ref-type="table" rid="t1-sensors-09-09493">Table 1</xref> and Remark 4).</p></sec></sec></sec>
<sec>
<label>5.</label>
<title>Numerical Tests</title>
<p>We model the 10 km × 10 km flat wood scenario in <xref ref-type="fig" rid="f5-sensors-09-09493">Figure 5</xref>. The light areas represent open space, and the dark ones represent wood patches. The scenario is crossed by three “vertical” power lines, respectively at 1.66, 5 and 8.33 Km from the left side. This terrain representation partly encloses the difficulties in modelling Cabaneros national park.</p>
<p>Grid <italic>G</italic> is given by a uniform discretization of the scenario in 50-m steps. In it we want to install 200 acoustic sensors (<italic>p</italic> = 200) with maximum detection coverage, at a minimum power cost. In order to obtain the Pareto front, we obtain the solution of problem (<xref rid="FD8" ref-type="disp-formula">8</xref>) several times, starting from different random points <italic>S</italic><sub>0</sub>. We normalize the objective function by dividing it by its value at the starting points.</p>
<p>Since an algorithm can lead to a local optimum of problem (<xref rid="FD4" ref-type="disp-formula">4</xref>) or to a solution that differs from the global optimum, we have chosen a brute force approach that computes the function at every grid point. Real-time system response is not affected, as the calculation time in a 10 km × 10 km scenario is in the order of a tenth of millisecond.</p>
<p>Following the results in [<xref ref-type="bibr" rid="b33-sensors-09-09493">33</xref>], instead of applying the non-monotone derivative-free search as described in Section 4., we applied a <italic>zone search</italic> variant. If we simply “move” one sensor at a time, instead of “moving” them all, the evaluation of the objective function is significantly less time consuming, since most computations in <italic>f</italic>(<italic>S</italic>) do not change.</p>
<p>To formalize this approach, we split the scenario into <italic>q</italic> non-overlapping zones <italic>X<sub>j</sub>, j</italic> = 1, …, <italic>q</italic>, such that <italic>X</italic> = ∪<sub><italic>j</italic>=1..<italic>q</italic></sub><italic>X<sub>j</sub></italic> and <italic>X<sub>k</sub></italic> ∩ <italic>X<sub>j</sub></italic> = ∅, <italic>k</italic> ≠ <italic>j</italic>. Let <italic>V</italic>(<italic>s<sub>i</sub></italic>) = {<italic>x</italic> ∈ <italic>G</italic> | <italic>s<sub>i</sub></italic> ∈ <italic>V</italic>(<italic>x</italic>)}. When we move the <italic>k</italic>-th sensor, the remaining sensor positions do not change, <italic>i.e.</italic>, the group moves from <italic>S</italic> = {<italic>s</italic><sub>1</sub>, …, <italic>s<sub>k</sub></italic>, …, <italic>s<sub>p</sub></italic>} to 
<inline-formula>
<mml:math id="mm15">
<mml:semantics id="sm15">
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mo>′</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>{</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>. When this happens, 
<inline-formula>
<mml:math id="mm16">
<mml:semantics id="sm16">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>′</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>∪</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>. To quickly obtain a <italic>relaxed</italic> estimate <italic>T<sub>v</sub></italic> of 
<inline-formula>
<mml:math id="mm17">
<mml:semantics id="sm17">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>∪</mml:mo>
<mml:mi>V</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, we discard all <italic>X<sub>j</sub></italic> | ∀<italic>x</italic> ∈ <italic>X<sub>j</sub></italic> 
<inline-formula>
<mml:math id="mm18">
<mml:semantics id="sm18">
<mml:mrow>
<mml:mo>min</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>δ</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi>
<mml:mo>′</mml:mo></mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>&gt;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="0.2em"/>
<mml:mtext>Km</mml:mtext></mml:mrow></mml:semantics></mml:math></inline-formula>. Let <italic>T<sub>nv</sub></italic> be the set of discarded zones and let <italic>T<sub>v</sub></italic> = <italic>V</italic>(<italic>S′</italic>) − <italic>T<sub>nv</sub></italic>. Then, we compute Σ<italic><sub>x</sub></italic><sub>∈</sub><italic><sub>Tv</sub> f</italic>(<italic>S′</italic>), and keep Σ<italic><sub>x</sub></italic><sub>∈</sub><italic><sub>Tnv</sub> f</italic>(<italic>S′</italic>) = Σ<italic><sub>x</sub></italic><sub>∈</sub><italic><sub>Tnv</sub> f</italic>(<italic>S</italic>) from the previous iterate. In the numerical tests that follow, we divided our scenario in 100 [1 Km × 1 Km] zones (<italic>q</italic> = 100). We compute one objective function component per zone at the beginning of the algorithm execution. When only one sensor is moved, there is no need to recompute the objective function in zones that are not affected by the sensor movement.</p>
<p>This way, the time to compute an objective function value drops from 20 seconds on average to just 1.5 seconds on a Pentium IV.</p>
<p>Let <italic>S</italic> = {<italic>s</italic><sub>1</sub>, …, <italic>s<sub>k</sub></italic>, …, <italic>s<sub>p</sub></italic>}. In order to move only one AP at a time, say <italic>s<sub>k</sub></italic>, we generate a set of unit search directions <italic>d<sub>j</sub></italic> ∈ <italic>IR</italic><sup>2</sup>, <italic>j</italic> = 1, …, <italic>n</italic> such that the set <italic>D</italic> = {<italic>d</italic><sub>1</sub>, …, <italic>d<sub>n</sub></italic>} positively spans <italic>IR</italic><sup>2</sup>. We recall that <italic>n</italic> ≥ 3. We declare a <italic>success</italic> when
<disp-formula id="FD11">
<mml:math id="mm19" display="block">
<mml:semantics id="sm19">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mn>1</mml:mn></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>k</mml:mi></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>j</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi>p</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>≤</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>φ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:mi>f</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi>ν</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>τ</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>for some <italic>d<sub>j</sub></italic> ∈ <italic>D</italic> and some <italic>s</italic> ∈ <italic>S</italic>. The point <italic>S</italic> is <italic>blocked</italic> if the algorithm is unable to move a single <italic>s</italic> ∈ <italic>S</italic>. We observe that this schema may be carried out simultaneously in a multi processor environment and it is straightforward to show that after we try all <italic>s</italic> ∈ <italic>S</italic> we have searched on a set of directions that positively span <italic>IR</italic><sup>2</sup><italic><sup>p</sup></italic>, although we are using at least 3<italic>p</italic> directions of search.</p>
<p>We tuned the method in preliminary trials and determined the following parameter values:
<list list-type="bullet">
<list-item>
<p>Δ = 0.1 Km, <italic>i.e.</italic>, the method stops when the maximum sensor displacement is under 100 m.</p></list-item>
<list-item>
<p><italic>ε<sub>τ</sub></italic> = 1</p></list-item>
<list-item>
<p><italic>τ</italic> = 5</p></list-item>
<list-item>
<p>max_success= 40 (20%p), but we do not allow <italic>τ</italic> &gt; 8.</p></list-item>
<list-item>
<p>We initially set <italic>φ</italic> to the value of the objective function at the starting point.</p></list-item>
<list-item>
<p><italic>α</italic> = 0, <italic>i.e.</italic>, we perform a <italic>monotone</italic> derivative-free search.</p></list-item>
<list-item>
<p>Finally, we set <italic>ν</italic>(<italic>τ</italic>Δ) = 0.001(<italic>τ</italic>Δ)<sup>2</sup>.</p></list-item></list></p>
<p><xref ref-type="fig" rid="f6-sensors-09-09493">Figures 6</xref>, <xref ref-type="fig" rid="f7-sensors-09-09493">7</xref> and <xref ref-type="fig" rid="f8-sensors-09-09493">8</xref> show the results. Instead of representing <italic>f</italic><sub>2</sub> versus <italic>f</italic><sub>1</sub>, we represent <italic>f</italic><sub>2</sub> versus the coverage areas (in percentage) that correspond to <italic>V</italic>(<italic>x</italic>) ≥ 1, <italic>V</italic>(<italic>x</italic>) ≥ 2 and <italic>V</italic>(<italic>x</italic>) ≥ 3, respectively. Algorithm execution is repeated 20 times, from 20 different starting points. Each starting point consists of a random deployment of 200 acoustic sensors in the scenario in <xref ref-type="fig" rid="f5-sensors-09-09493">Figure 5</xref>, with a uniform distribution.</p>
<p>The results reveal that the Pareto front approach is useful. The solutions show a compromise between cost and coverage. In the <italic>V</italic>(<italic>x</italic>) ≥ 1 case there is no real advantage over a random seeding in terms of coverage, although the cost drops considerably for 100% coverage. However, in the <italic>V</italic>(<italic>x</italic>) ≥ 3 case, the optimization result is clearly superior to random seeding across the whole Pareto front. At maximum cost, there is a 20% increase in coverage, and at 85% coverage (the best coverage of random seeding) there is a 50% decrease in cost.</p>
<p><xref ref-type="fig" rid="f9-sensors-09-09493">Figures 9</xref>, <xref ref-type="fig" rid="f10-sensors-09-09493">10</xref> and <xref ref-type="fig" rid="f11-sensors-09-09493">11</xref> show three sensor deployments in our synthetic scenario in <xref ref-type="fig" rid="f5-sensors-09-09493">Figure 5</xref>, for three different choices of <italic>θ</italic> = {0.1, 0.5, 0.9} (red points represent sensor positions, blue areas zones with less coverage, dark blue areas indicate no coverage at all). The results are consistent with the fact that coverage improves for low <italic>θ</italic> values. As the values of <italic>θ</italic> become higher, the sensors tend to concentrate around the power lines. Therefore, power cost decreases, but so does the coverage (<xref ref-type="fig" rid="f11-sensors-09-09493">Figure 11</xref> for <italic>θ</italic> = 0.9).</p>
<p><xref ref-type="fig" rid="f12-sensors-09-09493">Figure 12</xref> represents the percentage of grid points covered by different numbers of sensors in the three previous deployments. In the <italic>θ</italic> = 0.9 case, where the cost function has more weight, over 35% grid points are out of coverage, and, due to the concentration of the sensors around the power lines, there are grid points that are covered by 13 sensors or more. As <italic>θ</italic> decreases, grid points covered by less than 3 sensors are rare, and the majority of the grid points are covered by 3-5 sensors.</p>
<p><xref ref-type="table" rid="t2-sensors-09-09493">Table 2</xref> shows location precision and expected coverage results. The location algorithm described in Section 2.2. has been tested in the three previous deployments (<italic>θ</italic> = {0.1, 0.5, 0.9}). <xref ref-type="table" rid="t2-sensors-09-09493">Table 2</xref> shows the average location error in meters (distance between estimated and real positions) for 10, 000 random gunshot positions in the simulation area, for each <italic>θ</italic> value and three levels of variation in sensor clocks. These variations are generated by adding a normal Gaussian random toss to the arrival time at each node, for three different values of <italic>σ</italic> between 0 and 10 ms. The results show that location accuracy increases with the number of detecting nodes, as well as with a better clock synchronization. In addition, this table provides information on the expected coverage at each scenario. For instance, in the <italic>θ</italic> = 0.1 case, the probability that one or more nodes detect the event is 0.99973, for two or more nodes it is 0.99777, and so on. Clearly, there must be a compromise between detection accuracy, coverage and deployment cost.</p></sec>
<sec sec-type="conclusions">
<label>6.</label>
<title>Conclusions</title>
<p>In this paper, we have proposed a gunshot location procedure based on sensor networks and a Pareto front approach to optimize large-scale deployments. The location procedure is based on hyperbolic multi-lateration using data from a synchronized sensor network. We also propose a practical distributed synchronization algorithm for that purpose, with low energy consumption. Sensor network planning follows a Pareto front approach, using a monotone descent method without derivatives that is compatible with realistic optimization functions. Our results are clearly superior to random placement, achieving a 50% cost reduction for 85% coverage. In the two-dimensional scenario, event detection by at least four nodes is required to achieve satisfactory gunshot location accuracy.</p></sec></body>
<back>
<ack>
<p>This work has been partly supported by Spanish grants DEP2006-56158-C03-01/02/03 and TEC2007-67966-C03-01/02 (CON-PARTE).</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-09-09493"><label>1.</label><citation citation-type="web"><article-title>SEPRONA. Servicio de Protección a la Naturaleza webpage</article-title><comment>Available online: <ext-link xlink:href="http://www.guardiacivil.org/quesomos/organizacion/operaciones/seprona/" ext-link-type="uri">http://www.guardiacivil.org/quesomos/organizacion/operaciones/seprona/</ext-link> (accessed September 20, 2009), (in Spanish)</comment></citation></ref>
<ref id="b2-sensors-09-09493"><label>2.</label><citation citation-type="web"><article-title>Detenidos 12 cazadores furtivos en la Operación Bambi</article-title><comment>Available online: <ext-link xlink:href="http://www.elpais.com/articulo/espana/Detenidos/cazadores/furtivos/Operacion/Bambi/elpepuesp/20080312elpepunac_14/Tes" ext-link-type="uri">http://www.elpais.com/articulo/espana/Detenidos/cazadores/furtivos/Operacion/Bambi/elpepuesp/20080312elpepunac_14/Tes</ext-link> (accessed September 22, 2009), (in Spanish)</comment></citation></ref>
<ref id="b3-sensors-09-09493"><label>3.</label><citation citation-type="web"><article-title>Desarticulada un red de cazadores furtivos en la Sierra de Gredos</article-title><comment>Available online: <ext-link xlink:href="http://www.hoy.es/20090325/local/desarticulada-cazadores-furtivos-sierra-200903251611.html" ext-link-type="uri">http://www.hoy.es/20090325/local/desarticulada-cazadores-furtivos-sierra-200903251611.html</ext-link> (accessed September 24, 2009), (in Spanish)</comment></citation></ref>
<ref id="b4-sensors-09-09493"><label>4.</label><citation citation-type="web"><article-title>Spanish National Parks webpage</article-title><comment>Available online: <ext-link xlink:href="http://reddeparquesnacionales.mma.es/en/parques/cabaneros/home_parque_cabaneros.htm" ext-link-type="uri">http://reddeparquesnacionales.mma.es/en/parques/cabaneros/home_parque_cabaneros.htm</ext-link> (accessed September 25, 2009), (in Spanish)</comment></citation></ref>
<ref id="b5-sensors-09-09493"><label>5.</label><citation citation-type="web"><article-title>Silvano webpage</article-title><comment>Available online: <ext-link xlink:href="http://www.furtivos.com/" ext-link-type="uri">http://www.furtivos.com/</ext-link> (accessed September 26, 2009)</comment></citation></ref>
<ref id="b6-sensors-09-09493"><label>6.</label><citation citation-type="web"><article-title>Anti-sniper/sniper detection/gunfire detection systems at a glance</article-title><source>Defense Rev.</source><comment>Available online: <ext-link xlink:href="http://www.defensereview.com/anti-snipersniper-detectiongunfire-detection-systems-at-a-glance" ext-link-type="uri">http://www.defensereview.com/anti-snipersniper-detectiongunfire-detection-systems-at-a-glance</ext-link> (accessed September 27, 2009)</comment></citation></ref>
<ref id="b7-sensors-09-09493"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Clavel</surname><given-names>C.</given-names></name><name><surname>Ehrette</surname><given-names>T.</given-names></name><name><surname>Richard</surname><given-names>G.</given-names></name></person-group><article-title>Events detection for an audio-based surveillance system</article-title><conf-name>Proceedings of IEEE International Conference on Multimedia and Expo</conf-name><conf-loc>Amsterdam, the Netherlands</conf-loc><year>2005</year></citation></ref>
<ref id="b8-sensors-09-09493"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Rouas</surname><given-names>J.</given-names></name><name><surname>Louradour</surname><given-names>J.</given-names></name><name><surname>Ambellouis</surname><given-names>S.</given-names></name></person-group><article-title>Audio events detection in public transport vehicle</article-title><conf-name>Proceedings of 9th International IEEE Conference on Intelligent Transportation Systems</conf-name><conf-loc>Toronto, Canada</conf-loc><conf-date>September 17–20, 2006</conf-date></citation></ref>
<ref id="b9-sensors-09-09493"><label>9.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Niculescu</surname><given-names>D.</given-names></name><name><surname>Nath</surname><given-names>B.</given-names></name></person-group><article-title>Ad hoc positioning system (APS) using AOA</article-title><conf-name>Proceedings of 22nd Annual Joint Conference of the IEEE Computer and Communications Societies</conf-name><conf-loc>San Francisco, CA, USA</conf-loc><conf-date>April 1–3, 2003</conf-date><comment>Vol. 3</comment><fpage>1734</fpage><lpage>1743</lpage></citation></ref>
<ref id="b10-sensors-09-09493"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Doukhnitch</surname><given-names>E.</given-names></name><name><surname>Salamah</surname><given-names>M.</given-names></name><name><surname>Ozen</surname><given-names>E.</given-names></name></person-group><article-title>An efficient approach for trilateration in 3D positioning</article-title><source>Comput. Commun.</source><year>2008</year><volume>31</volume><fpage>4124</fpage><lpage>4129</lpage><pub-id pub-id-type="doi">10.1016/j.comcom.2008.08.019</pub-id></citation></ref>
<ref id="b11-sensors-09-09493"><label>11.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Karl</surname><given-names>H.</given-names></name><name><surname>Willig</surname><given-names>A.</given-names></name></person-group><source>Protocols and Architectures for Wireless Sensor Networks</source><publisher-name>Kluwer Academic Publisher</publisher-name><publisher-loc>Dordrecht, The Netherlands</publisher-loc><year>2005</year><isbn>ISBN: 978-0-470-09510-2</isbn></citation></ref>
<ref id="b12-sensors-09-09493"><label>12.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>J.</given-names></name><name><surname>Huang</surname><given-names>Y.</given-names></name><name><surname>Benesty</surname><given-names>J.</given-names></name></person-group><source>Audio Signal Processing for Next-Generation Multimedia Communication Systems</source><publisher-name>Kluwer Academic Publisher</publisher-name><publisher-loc>Dordrecht, The Netherlands</publisher-loc><year>2004</year><fpage>4</fpage><lpage>5</lpage></citation></ref>
<ref id="b13-sensors-09-09493"><label>13.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Krishnamachari</surname><given-names>B.</given-names></name></person-group><source>Networking Wireless Sensors</source><publisher-name>Cambridge University</publisher-name><publisher-loc>Cambridge, UK</publisher-loc><year>2006</year><fpage>3</fpage><lpage>4</lpage></citation></ref>
<ref id="b14-sensors-09-09493"><label>14.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Valenzise</surname><given-names>G.</given-names></name><name><surname>Gerosa</surname><given-names>L.</given-names></name><name><surname>Tagliasacchi</surname><given-names>M.</given-names></name><name><surname>Antonacci</surname><given-names>F.</given-names></name><name><surname>Sarti</surname><given-names>A.</given-names></name></person-group><article-title>Scream and gunshot detection and localization for audio-surveillance systems</article-title><conf-name>Proceedings of IEEE International Conferences on Advanced Video and Signal-based Surveillance Systems</conf-name><conf-loc>London, UK</conf-loc><year>2007</year></citation></ref>
<ref id="b15-sensors-09-09493"><label>15.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>J.C.</given-names></name><name><surname>Yip</surname><given-names>L.</given-names></name><name><surname>Elson</surname><given-names>J.</given-names></name><name><surname>Hanbiao</surname><given-names>W.</given-names></name><name><surname>Maniezzo</surname><given-names>D.</given-names></name><name><surname>Hudson</surname><given-names>R.R.</given-names></name><name><surname>Kung</surname><given-names>Y.</given-names></name><name><surname>Estrin</surname><given-names>D.</given-names></name></person-group><article-title>Coherent acoustic array processing and localization on wireless sensor networks</article-title><source>IEEE</source><year>2003</year><volume>91</volume><fpage>1154</fpage><lpage>1162</lpage><pub-id pub-id-type="doi">10.1109/JPROC.2003.814924</pub-id></citation></ref>
<ref id="b16-sensors-09-09493"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Brandstein</surname><given-names>M.S.</given-names></name><name><surname>Adcock</surname><given-names>J.E.</given-names></name><name><surname>Silverman</surname><given-names>H.F.</given-names></name></person-group><article-title>A closed-form location estimator for use with room environment microphone arrays</article-title><source>IEEE Trans. Speech Audio Process.</source><year>1997</year><volume>5</volume><fpage>45</fpage><lpage>50</lpage><pub-id pub-id-type="doi">10.1109/89.554268</pub-id></citation></ref>
<ref id="b17-sensors-09-09493"><label>17.</label><citation citation-type="web"><person-group person-group-type="author"><name><surname>Patwari</surname><given-names>N.</given-names></name></person-group><article-title>Location Estimation in Sensor Networks</article-title><source>Dissertation</source><publisher-name>University of Michigan</publisher-name><publisher-loc>Ann Arbor, MI, USA</publisher-loc><year>2005</year><comment>Available online: <ext-link xlink:href="http://www-personal.engin.umich.edu/npatwari/thesis.pdf" ext-link-type="uri">http://www-personal.engin.umich.edu/npatwari/thesis.pdf</ext-link> (accessed September 26, 2009)</comment></citation></ref>
<ref id="b18-sensors-09-09493"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Elson</surname><given-names>J.</given-names></name><name><surname>Girod</surname><given-names>L.</given-names></name><name><surname>Estrin</surname><given-names>D.</given-names></name></person-group><article-title>Fine-grained network time synchronization using reference broadcasts</article-title><source>ACM SIGOPS Operat. Syst. Rev.</source><year>2002</year><volume>36</volume><fpage>147</fpage><lpage>163</lpage><pub-id pub-id-type="doi">10.1145/844128.844143</pub-id></citation></ref>
<ref id="b19-sensors-09-09493"><label>19.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ganeriwal</surname><given-names>S.</given-names></name><name><surname>Kumar</surname><given-names>R.</given-names></name><name><surname>Srivastava</surname><given-names>M.B.</given-names></name></person-group><article-title>Timing-sync protocol for sensor networks</article-title><conf-name>Proceedings of 1st International Conference on Embedded Networked Sensor Systems</conf-name><conf-loc>Los Angeles, CA, USA</conf-loc><conf-date>November 5–7, 2003</conf-date><fpage>138</fpage><lpage>149</lpage></citation></ref>
<ref id="b20-sensors-09-09493"><label>20.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Anderson</surname><given-names>H.</given-names></name><name><surname>McGeehan</surname><given-names>J.</given-names></name></person-group><article-title>Optimizing microcell base station locations using simulated annealing techniques</article-title><conf-name>Proceedings of IEEE 44th Vehicular Technology Conference</conf-name><conf-loc>Stockholm, Sweden</conf-loc><year>1994</year><fpage>858</fpage><lpage>862</lpage></citation></ref>
<ref id="b21-sensors-09-09493"><label>21.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Lieska</surname><given-names>K.</given-names></name><name><surname>Laitinen</surname><given-names>E.</given-names></name><name><surname>Läteenmäki</surname><given-names>J.</given-names></name></person-group><article-title>Radio coverage optimization with genetic algorithms</article-title><conf-name>Proceedings the 9th IEEE International Symposium on Personal, Indoor and Mobile Radio Communications</conf-name><conf-loc>Boston, MA, USA</conf-loc><year>1998</year><fpage>318</fpage><lpage>322</lpage></citation></ref>
<ref id="b22-sensors-09-09493"><label>22.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sherali</surname><given-names>H.D.</given-names></name><name><surname>Pendayla</surname><given-names>C.M.</given-names></name><name><surname>Rappaport</surname><given-names>T.S.</given-names></name></person-group><article-title>Optimal location of transmitters and receivers for micro-cellular radio communication system design</article-title><source>IEEE J. Sel. Areas Commun.</source><year>1996</year><volume>14</volume><fpage>662</fpage><lpage>673</lpage><pub-id pub-id-type="doi">10.1109/49.490417</pub-id></citation></ref>
<ref id="b23-sensors-09-09493"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Kamenetsky</surname><given-names>M.</given-names></name><name><surname>Unbehaun</surname><given-names>M.</given-names></name></person-group><article-title>Coverage planning for outdoor wireless LAN systems</article-title><conf-name>Proceedings International Zurich Seminar on Broadband Communications</conf-name><conf-loc>Zurich, Switzerland</conf-loc><year>2002</year><fpage>49:1</fpage><lpage>49:6</lpage></citation></ref>
<ref id="b24-sensors-09-09493"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Unbehaun</surname><given-names>M.</given-names></name></person-group><article-title>; Kamenetsky M. On the deployment of picocellular wireless infrastructure</article-title><source>IEEE Wirel. Commun.</source><year>2003</year><volume>10</volume><fpage>70</fpage><lpage>80</lpage></citation></ref>
<ref id="b25-sensors-09-09493"><label>25.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>García-Palomares</surname><given-names>U.M.</given-names></name><name><surname>González-Castaño</surname><given-names>F.J.</given-names></name><name><surname>Burguillo-Rial</surname><given-names>J.C.</given-names></name></person-group><article-title>A combined global and local search approach to global optimization</article-title><source>J. Global Optim.</source><year>2006</year><volume>34</volume><fpage>409</fpage><lpage>426</lpage><pub-id pub-id-type="doi">10.1007/s10898-005-3249-2</pub-id></citation></ref>
<ref id="b26-sensors-09-09493"><label>26.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>García-Palomares</surname><given-names>U.M.</given-names></name><name><surname>Rodríguez</surname><given-names>J.F.</given-names></name></person-group><article-title>New sequential and parallel derivative free algorithms for unconstrained minimization</article-title><source>SIAM J. Optim.</source><year>2002</year><volume>13</volume><fpage>79</fpage><lpage>96</lpage><pub-id pub-id-type="doi">10.1137/S1052623400370606</pub-id></citation></ref>
<ref id="b27-sensors-09-09493"><label>27.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Girod</surname><given-names>L.</given-names></name><name><surname>Estrin</surname><given-names>D.</given-names></name></person-group><article-title>Robust range estimation using acoustic and multimodal sensing</article-title><conf-name>Proceedings of EEE/RSJ International Conference on Intelligent Robots and Systems</conf-name><conf-loc>Maui, HI, USA</conf-loc><year>2001</year><comment>Vol. 3</comment><fpage>1312</fpage><lpage>1320</lpage></citation></ref>
<ref id="b28-sensors-09-09493"><label>28.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname><given-names>X.</given-names></name><name><surname>Hua</surname><given-names>B.</given-names></name><name><surname>Shang</surname><given-names>Y.</given-names></name><name><surname>Xiong</surname><given-names>Y.</given-names></name></person-group><article-title>A robust localization algorithm in wireless sensor networks</article-title><source>Front. Comput. Sci. China</source><year>2008</year><volume>2</volume><fpage>438</fpage><lpage>450</lpage><pub-id pub-id-type="doi">10.1007/s11704-008-0018-7</pub-id></citation></ref>
<ref id="b29-sensors-09-09493"><label>29.</label><citation citation-type="web"><person-group person-group-type="author"><name><surname>Pääkkönen</surname><given-names>R.</given-names></name></person-group><source>Finnish Suppressor Project</source><comment>Available online: <ext-link xlink:href="http://www.guns.connect.fi/rs/measure.html" ext-link-type="uri">http://www.guns.connect.fi/rs/measure.html</ext-link> (accessed September 28, 2009)</comment></citation></ref>
<ref id="b30-sensors-09-09493"><label>30.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Bucur</surname><given-names>V.</given-names></name></person-group><source>Acoustics of Wood</source><series>Springer Series in Wood Science</series><publisher-name>Springer</publisher-name><publisher-loc>Berlin, Germany</publisher-loc><month>February</month><day>10</day><year>2006</year></citation></ref>
<ref id="b31-sensors-09-09493"><label>31.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>García-Palomares</surname><given-names>U.M.</given-names></name><name><surname>Burguillo-Rial</surname><given-names>J.C.</given-names></name><name><surname>González-Castaño</surname><given-names>F.J.</given-names></name></person-group><article-title>Explicit gradient information in multiobjective optimization</article-title><source>Operat. Res. Lett.</source><year>2008</year><volume>36</volume><fpage>722</fpage><lpage>725</lpage><pub-id pub-id-type="doi">10.1016/j.orl.2008.07.010</pub-id></citation></ref>
<ref id="b32-sensors-09-09493"><label>32.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Locatelli</surname><given-names>M.</given-names></name></person-group><article-title>Simulated annealing algorithm for continuous global optimization: Convergence conditions</article-title><source>J. Optim. Theory Appl.</source><year>2000</year><volume>104</volume><fpage>121</fpage><lpage>133</lpage><pub-id pub-id-type="doi">10.1023/A:1004680806815</pub-id></citation></ref>
<ref id="b33-sensors-09-09493"><label>33.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>González-Castaño</surname><given-names>F.J.</given-names></name><name><surname>Costa-Montenegro</surname><given-names>E.</given-names></name><name><surname>Burguillo-Rial</surname><given-names>J.C.</given-names></name><name><surname>García-Palomares</surname><given-names>U.</given-names></name></person-group><article-title>Outdoor WLAN planning via non-monotone derivative-free optimization: algorithm adaptation and case study</article-title><source>Comput. Optim. Appl.</source><year>2008</year><volume>40</volume><fpage>405</fpage><lpage>419</lpage><pub-id pub-id-type="doi">10.1007/s10589-007-9091-3</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-09-09493" position="float">
<label>Figure 1.</label>
<caption>
<p>Landscape of the Cabañeros National Park.</p></caption>
<graphic xlink:href="sensors-09-09493f1.gif"/></fig>
<fig id="f2-sensors-09-09493" position="float">
<label>Figure 2.</label>
<caption>
<p>Gunshot location architecture.</p></caption>
<graphic xlink:href="sensors-09-09493f2.gif"/></fig>
<fig id="f3-sensors-09-09493" position="float">
<label>Figure 3.</label>
<caption>
<p>Hyperbolic multilateration of an acoustic signal.</p>
<p>(a) Locus of the TDoA obtained between positions <italic>x<sub>A</sub></italic> and <italic>x<sub>B</sub></italic>.</p>
<p>(b) Loci of the TDoA obtained between positions <italic>x<sub>A</sub></italic> and <italic>x<sub>B</sub></italic>, and between positions <italic>x<sub>A</sub></italic> and <italic>x<sub>C</sub></italic>.</p></caption>
<graphic xlink:href="sensors-09-09493f3a.gif"/>
<graphic xlink:href="sensors-09-09493f3b.gif"/></fig>
<fig id="f4-sensors-09-09493" position="float">
<label>Figure 4.</label>
<caption>
<p>Regression line performed in a level <italic>k</italic> node, with several broadcast time stamps from a level <italic>k</italic> – 1 node.</p></caption>
<graphic xlink:href="sensors-09-09493f4.gif"/></fig>
<fig id="f5-sensors-09-09493" position="float">
<label>Figure 5.</label>
<caption>
<p>Synthetic outdoor scenario for the numerical tests. The green lines represent power lines.</p></caption>
<graphic xlink:href="sensors-09-09493f5.gif"/></fig>
<fig id="f6-sensors-09-09493" position="float">
<label>Figure 6.</label>
<caption>
<p>Aggregated distance to the power lines (cost) vs. coverage area with <italic>V</italic> (<italic>x</italic>) ≥ 1.</p></caption>
<graphic xlink:href="sensors-09-09493f6.gif"/></fig>
<fig id="f7-sensors-09-09493" position="float">
<label>Figure 7.</label>
<caption>
<p>Aggregated distance to the power lines (cost) vs. coverage area with <italic>V</italic> (<italic>x</italic>) ≥ 2.</p></caption>
<graphic xlink:href="sensors-09-09493f7.gif"/></fig>
<fig id="f8-sensors-09-09493" position="float">
<label>Figure 8.</label>
<caption>
<p>Aggregated distance to the power lines (cost) vs. coverage area with <italic>V</italic> (<italic>x</italic>) ≥ 3.</p></caption>
<graphic xlink:href="sensors-09-09493f8.gif"/></fig>
<fig id="f9-sensors-09-09493" position="float">
<label>Figure 9.</label>
<caption>
<p>A sensor deployment for <italic>θ</italic> = 0.1.</p></caption>
<graphic xlink:href="sensors-09-09493f9.gif"/></fig>
<fig id="f10-sensors-09-09493" position="float">
<label>Figure 10.</label>
<caption>
<p>A sensor deployment for <italic>θ</italic> = 0.5.</p></caption>
<graphic xlink:href="sensors-09-09493f10.gif"/></fig>
<fig id="f11-sensors-09-09493" position="float">
<label>Figure 11.</label>
<caption>
<p>A sensor deployment for <italic>θ</italic> = 0.9.</p></caption>
<graphic xlink:href="sensors-09-09493f11.gif"/></fig>
<fig id="f12-sensors-09-09493" position="float">
<label>Figure 12.</label>
<caption>
<p>Percentage of covered grid points versus number of detecting sensors for different values of <italic>θ</italic>.</p></caption>
<graphic xlink:href="sensors-09-09493f12.gif"/></fig>
<table-wrap id="t1-sensors-09-09493" position="float">
<label>Table 1.</label>
<caption>
<p>Non-monotone derivative-free algorithm.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="top" colspan="2"><bold>Parameters:</bold> <italic>ε<sub>τ</sub>, μ, τ, φ</italic></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Get <italic>S</italic>, let <italic>f<sub>S</sub></italic> = <italic>f</italic>(<italic>S</italic>)</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">DO success= 0</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top"> Choose <italic>D<sub>k</sub>, k</italic> = 1, …, <italic>n</italic> that positively span <italic>IR</italic><sup>2</sup><italic><sup>p</sup></italic></td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top"> FOR <italic>j</italic> = 1 TO <italic>n</italic></td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">  [<italic>Z f<sub>Z</sub></italic>] = INTERPOLATE (<italic>S, D<sub>k</sub>, τ</italic>Δ)</td>
<td align="left" valign="top">Remark 2</td></tr>
<tr>
<td align="left" valign="top">  <italic>α</italic> = min(<italic>τ, α</italic>), <italic>φ</italic> = <italic>f<sub>S</sub></italic> + <italic>α</italic>(<italic>φ</italic> − <italic>f<sub>S</sub></italic>)</td>
<td align="left" valign="top">Remark 3</td></tr>
<tr>
<td align="left" valign="top">  IF (<italic>f<sub>Z</sub></italic> ≤ <italic>ϕ</italic> − <italic>ν</italic>(<italic>τ</italic>Δ))</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">   success=success+1</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">   <italic>S</italic> = <italic>Z, f<sub>S</sub></italic> = <italic>f<sub>Z</sub></italic></td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">  ENDIF</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top"> END FOR</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top"> <italic>φ</italic> = <italic>f<sub>S</sub></italic></td>
<td align="left" valign="top">Remark 4</td></tr>
<tr>
<td align="left" valign="top"> IF (success&gt;max_success)</td>
<td align="left" valign="top">Remark 5</td></tr>
<tr>
<td align="left" valign="top">  <italic>τ</italic> = <italic>τ</italic> + 1</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top"> ELSE</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">  <italic>τ</italic> = <italic>τ</italic> − 1</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top"> ENDIF</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">WHILE (<italic>τ</italic> &gt; <italic>ε<sub>τ</sub></italic>)</td>
<td align="left" valign="top"/></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-09-09493" position="float">
<label>Table 2.</label>
<caption>
<p>Gunshot average location error (m).</p></caption>
<table frame="hsides" rules="none">
<tbody>
<tr>
<td align="center" valign="top"/>
<td align="right" valign="top"/>
<td align="right" valign="top">&gt;1 [0.99973%]</td>
<td align="right" valign="top">&gt;2 [0.99777%]</td>
<td align="right" valign="top">&gt;3 [0.99448%]</td>
<td align="right" valign="top">&gt;4 [0.75258%]</td>
<td align="right" valign="top">&gt;5 [0.45608%]</td></tr>
<tr>
<td align="center" valign="bottom" colspan="7">
<hr/></td></tr>
<tr>
<td align="center" valign="middle" rowspan="3"><italic>θ</italic> = 0.1</td>
<td align="right" valign="top">sinc. &lt; 1<italic>ms</italic></td>
<td align="right" valign="top">64.40</td>
<td align="right" valign="top">64.40</td>
<td align="right" valign="top">64.40</td>
<td align="right" valign="top">5.30</td>
<td align="right" valign="top">1.60</td></tr>
<tr>
<td align="right" valign="top">sinc. 1ms</td>
<td align="right" valign="top">78.00</td>
<td align="right" valign="top">66.90</td>
<td align="right" valign="top">73.90</td>
<td align="right" valign="top">5.50</td>
<td align="right" valign="top">0.00</td></tr>
<tr>
<td align="right" valign="top">sinc. 10ms</td>
<td align="right" valign="top">76.90</td>
<td align="right" valign="top">90.70</td>
<td align="right" valign="top">73.40</td>
<td align="right" valign="top">13.60</td>
<td align="right" valign="top">3.90</td></tr>
<tr>
<td align="center" valign="bottom" colspan="7">
<hr/></td></tr>
<tr>
<td align="center" valign="top"/>
<td align="right" valign="top"/>
<td align="right" valign="top">&gt;1 [0.99988%]</td>
<td align="right" valign="top">&gt;2 [0.99730%]</td>
<td align="right" valign="top">&gt;3 [0.98856%]</td>
<td align="right" valign="top">&gt;4 [0.70991%]</td>
<td align="right" valign="top">&gt;5 [0.43301%]</td></tr>
<tr>
<td align="center" valign="bottom" colspan="7">
<hr/></td></tr>
<tr>
<td align="center" valign="middle" rowspan="3"><italic>θ</italic> = 0.5</td>
<td align="right" valign="top">sinc. &lt; 1<italic>ms</italic></td>
<td align="right" valign="top">139.20</td>
<td align="right" valign="top">138.90</td>
<td align="right" valign="top">123.50</td>
<td align="right" valign="top">8.30</td>
<td align="right" valign="top">0.00</td></tr>
<tr>
<td align="right" valign="top">sinc. 1ms</td>
<td align="right" valign="top">146.70</td>
<td align="right" valign="top">120.20</td>
<td align="right" valign="top">125.40</td>
<td align="right" valign="top">22.50</td>
<td align="right" valign="top">0.00</td></tr>
<tr>
<td align="right" valign="top">sinc. 10ms</td>
<td align="right" valign="top">144.90</td>
<td align="right" valign="top">162.60</td>
<td align="right" valign="top">150.20</td>
<td align="right" valign="top">42.70</td>
<td align="right" valign="top">4.00</td></tr>
<tr>
<td align="center" valign="bottom" colspan="7">
<hr/></td></tr>
<tr>
<td align="center" valign="top"/>
<td align="right" valign="top"/>
<td align="right" valign="top">&gt;1 [0.64476%]</td>
<td align="right" valign="top">&gt;2 [0.59659%]</td>
<td align="right" valign="top">&gt;3 [0.57273%]</td>
<td align="right" valign="top">&gt;4 [0.50632%]</td>
<td align="right" valign="top">&gt;5 [0.47687%]</td></tr>
<tr>
<td align="center" valign="bottom" colspan="7">
<hr/></td></tr>
<tr>
<td align="center" valign="middle" rowspan="3"><italic>θ</italic> = 0.9</td>
<td align="right" valign="top">sinc. &lt; 1<italic>ms</italic></td>
<td align="right" valign="top">114.00</td>
<td align="right" valign="top">66.80</td>
<td align="right" valign="top">20.20</td>
<td align="right" valign="top">11.00</td>
<td align="right" valign="top">1.50</td></tr>
<tr>
<td align="right" valign="top">sinc. 1ms</td>
<td align="right" valign="top">99.30</td>
<td align="right" valign="top">56.40</td>
<td align="right" valign="top">49.90</td>
<td align="right" valign="top">19.20</td>
<td align="right" valign="top">2.40</td></tr>
<tr>
<td align="right" valign="top">sinc. 10ms</td>
<td align="right" valign="top">171.80</td>
<td align="right" valign="top">127.10</td>
<td align="right" valign="top">88.00</td>
<td align="right" valign="top">31.70</td>
<td align="right" valign="top">19.50</td></tr></tbody></table></table-wrap></sec></back></article>
