From 0299cb811caaea53aec64c52be67397bc055f5c8 Mon Sep 17 00:00:00 2001 From: ali Date: Mon, 11 May 2015 11:04:39 +0200 Subject: [PATCH 1/1] Update by Ali --- PeCO-EO/articleeo.aux | 10 +- PeCO-EO/articleeo.log | 275 +++---- PeCO-EO/articleeo.pdf | Bin 734726 -> 734629 bytes PeCO-EO/articleeo.tex | 1731 +++++++++++++++++++++-------------------- 4 files changed, 1010 insertions(+), 1006 deletions(-) diff --git a/PeCO-EO/articleeo.aux b/PeCO-EO/articleeo.aux index b3e8863..d1ccafa 100644 --- a/PeCO-EO/articleeo.aux +++ b/PeCO-EO/articleeo.aux @@ -53,27 +53,27 @@ \citation{varga} \citation{AMPL} \citation{glpk} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Simulation Results}{11}} \citation{ChinhVu} \citation{xu2001geography} \citation{Idrees2} \citation{idrees2014coverage} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Simulation Results}{11}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}\bf Coverage Ratio}{12}} \newlabel{figure5}{{5}{12}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}\bf Active Sensors Ratio}{12}} \newlabel{figure6}{{6}{13}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.3}\bf Energy Consumption}{13}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.4}\bf Network Lifetime}{13}} -\bibstyle{gENO} -\bibdata{biblio} -\bibcite{akyildiz2002wireless}{{1}{2002}{{Akyildiz et~al.}}{{Akyildiz, Su, Sankarasubramaniam, and Cayirci}}} \newlabel{figure7}{{7}{14}} \@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion and Future Works}{14}} \newlabel{sec:Conclusion and Future Works}{{6}{14}} +\bibstyle{gENO} +\bibdata{biblio} +\bibcite{akyildiz2002wireless}{{1}{2002}{{Akyildiz et~al.}}{{Akyildiz, Su, Sankarasubramaniam, and Cayirci}}} \bibcite{anastasi2009energy}{{2}{2009}{{Anastasi et~al.}}{{Anastasi, Conti, Di~Francesco, and Passarella}}} -\bibcite{berman04}{{3}{2004}{{Berman and Calinescu}}{{}}} \newlabel{figure8}{{8}{15}} \newlabel{figure9}{{9}{15}} +\bibcite{berman04}{{3}{2004}{{Berman and Calinescu}}{{}}} \bibcite{cardei2005improving}{{4}{2005}{{Cardei and Du}}{{}}} \bibcite{cardei2005energy}{{5}{2005}{{Cardei et~al.}}{{Cardei, Thai, Li, and Wu}}} \bibcite{castano2013column}{{6}{2013}{{Casta{\~n}o et~al.}}{{Casta{\~n}o, Rossi, Sevaux, and Velasco}}} diff --git a/PeCO-EO/articleeo.log b/PeCO-EO/articleeo.log index f4869bc..f0d9217 100644 --- a/PeCO-EO/articleeo.log +++ b/PeCO-EO/articleeo.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.9.3) 20 FEB 2015 14:20 +This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2014.3.11) 10 MAY 2015 00:35 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -258,21 +258,24 @@ Package: subfigure 2002/07/30 v2.1.4 subfigure package \subfig@top=\skip53 \subfig@bottom=\skip54 )) +(/usr/share/texlive/texmf-dist/tex/latex/tools/indentfirst.sty +Package: indentfirst 1995/11/23 v1.03 Indent first paragraph (DPC) +) (./articleeo.aux) \openout1 = `articleeo.aux'. -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 8. +LaTeX Font Info: ... okay on input line 8. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 8. +LaTeX Font Info: ... okay on input line 8. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 8. +LaTeX Font Info: ... okay on input line 8. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 8. +LaTeX Font Info: ... okay on input line 8. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 8. +LaTeX Font Info: ... okay on input line 8. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 8. +LaTeX Font Info: ... okay on input line 8. (/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] \scratchcounter=\count123 @@ -336,89 +339,89 @@ e )) LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <13> not available -(Font) size <12> substituted on input line 20. +(Font) size <12> substituted on input line 21. LaTeX Font Warning: Font shape `OT1/cmr/bx/n' in size <13> not available -(Font) size <12> substituted on input line 20. +(Font) size <12> substituted on input line 21. LaTeX Font Warning: Font shape `OT1/cmr/bx/it' in size <13> not available -(Font) size <12> substituted on input line 20. +(Font) size <12> substituted on input line 21. -LaTeX Font Info: Try loading font information for OML+cmr on input line 20. +LaTeX Font Info: Try loading font information for OML+cmr on input line 21. (/usr/share/texlive/texmf-dist/tex/latex/base/omlcmr.fd File: omlcmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OML/cmr/m/it' in size <10> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 20. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 21. LaTeX Font Info: Font shape `OML/cmr/m/it' in size <7> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 20. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 21. LaTeX Font Info: Font shape `OML/cmr/m/it' in size <5> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 20. -LaTeX Font Info: Try loading font information for OMS+cmr on input line 20. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 21. +LaTeX Font Info: Try loading font information for OMS+cmr on input line 21. (/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 20. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 21. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <7> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 20. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 21. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <5> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 20. -LaTeX Font Info: Try loading font information for OMX+cmr on input line 20. -LaTeX Font Info: No file OMXcmr.fd. on input line 20. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 21. +LaTeX Font Info: Try loading font information for OMX+cmr on input line 21. +LaTeX Font Info: No file OMXcmr.fd. on input line 21. LaTeX Font Warning: Font shape `OMX/cmr/m/n' undefined -(Font) using `OMX/cmex/m/n' instead on input line 20. +(Font) using `OMX/cmex/m/n' instead on input line 21. -LaTeX Font Info: Try loading font information for U+msa on input line 20. +LaTeX Font Info: Try loading font information for U+msa on input line 21. (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2009/06/22 v3.00 AMS symbols A ) -LaTeX Font Info: Try loading font information for U+msb on input line 20. +LaTeX Font Info: Try loading font information for U+msb on input line 21. (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2009/06/22 v3.00 AMS symbols B ) LaTeX Font Info: Font shape `OML/cmr/m/it' in size <8> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 20. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 21. LaTeX Font Info: Font shape `OML/cmr/m/it' in size <6> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 20. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 21. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <8> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 20. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 21. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <6> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 20. -LaTeX Font Info: Calculating math sizes for size <11> on input line 42. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 21. +LaTeX Font Info: Calculating math sizes for size <11> on input line 43. LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <5.5> not available -(Font) size <5> substituted on input line 42. +(Font) size <5> substituted on input line 43. LaTeX Font Info: Font shape `OML/cmr/m/it' in size <11> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 42. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 43. LaTeX Font Info: Font shape `OML/cmr/m/it' in size <7.69997> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 42. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 43. LaTeX Font Info: Font shape `OML/cmr/m/it' in size <5.5> not available -(Font) Font shape `OML/cmm/m/it' tried instead on input line 42. +(Font) Font shape `OML/cmm/m/it' tried instead on input line 43. LaTeX Font Warning: Font shape `OML/cmm/m/it' in size <5.5> not available -(Font) size <5> substituted on input line 42. +(Font) size <5> substituted on input line 43. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <11> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 42. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 43. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <7.69997> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 42. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 43. LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <5.5> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 42. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 43. LaTeX Font Warning: Font shape `OMS/cmsy/m/n' in size <5.5> not available -(Font) size <5> substituted on input line 42. +(Font) size <5> substituted on input line 43. -Underfull \hbox (badness 10000) in paragraph at lines 60--74 +Underfull \hbox (badness 10000) in paragraph at lines 61--75 [] @@ -500,40 +503,40 @@ Overfull \vbox (701.0pt too high) has occurred while \output is active [] [3] LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefined -(Font) using `OT1/cmr/bx/n' instead on input line 199. +(Font) using `OT1/cmr/bx/n' instead on input line 200. Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-20 10:11:12 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 358485 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:43 +(epstopdf) date: 2015-05-09 17:25:26 (epstopdf) size: 78307 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 249. +(epstopdf) \includegraphics on input line 250. Package epstopdf Info: Output file is already uptodate. File: figure1a-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure1a-eps-converted-to.pdf used on input line 249. +Package pdftex.def Info: figure1a-eps-converted-to.pdf used on input line 250. (pdftex.def) Requested size: 213.39566pt x 202.1362pt. Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-20 10:11:12 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 241675 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:44 +(epstopdf) date: 2015-05-09 17:25:27 (epstopdf) size: 57181 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 250. +(epstopdf) \includegraphics on input line 251. Package epstopdf Info: Output file is already uptodate. File: figure1b-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure1b-eps-converted-to.pdf used on input line 250. +Package pdftex.def Info: figure1b-eps-converted-to.pdf used on input line 251. (pdftex.def) Requested size: 213.39566pt x 148.93011pt. Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -561,21 +564,21 @@ Overfull \vbox (701.0pt too high) has occurred while \output is active [] [4] Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-20 10:11:12 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 508784 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:44 +(epstopdf) date: 2015-05-09 17:25:27 (epstopdf) size: 138861 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 293. +(epstopdf) \includegraphics on input line 294. Package epstopdf Info: Output file is already uptodate. File: figure2-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure2-eps-converted-to.pdf used on input line 293. +Package pdftex.def Info: figure2-eps-converted-to.pdf used on input line 294. (pdftex.def) Requested size: 362.77263pt x 182.4463pt. Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -603,21 +606,21 @@ Overfull \vbox (701.0pt too high) has occurred while \output is active [] [5 <./figure1a-eps-converted-to.pdf> <./figure1b-eps-converted-to.pdf>] Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-20 10:11:12 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 196938 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:45 +(epstopdf) date: 2015-05-09 17:25:28 (epstopdf) size: 48639 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 343. +(epstopdf) \includegraphics on input line 344. Package epstopdf Info: Output file is already uptodate. File: figure3-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure3-eps-converted-to.pdf used on input line 343. +Package pdftex.def Info: figure3-eps-converted-to.pdf used on input line 344. (pdftex.def) Requested size: 177.82971pt x 147.74475pt. Underfull \vbox (badness 1648) has occurred while \output is active [] @@ -648,21 +651,21 @@ Overfull \vbox (701.0pt too high) has occurred while \output is active [] [6 <./figure2-eps-converted-to.pdf> <./figure3-eps-converted-to.pdf>] Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-20 10:11:12 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 428048 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:45 +(epstopdf) date: 2015-05-09 17:25:29 (epstopdf) size: 76496 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 376. +(epstopdf) \includegraphics on input line 377. Package epstopdf Info: Output file is already uptodate. File: figure4-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure4-eps-converted-to.pdf used on input line 376. +Package pdftex.def Info: figure4-eps-converted-to.pdf used on input line 377. (pdftex.def) Requested size: 227.62204pt x 167.01096pt. Underfull \vbox (badness 1953) has occurred while \output is active [] @@ -765,27 +768,27 @@ Overfull \vbox (701.0pt too high) has occurred while \output is active [] [10] -LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 632. +LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 633. -LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 647. +LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 648. -LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 660. +LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 661. -LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 667. +LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 668. -LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 669. +LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 670. -LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 671. +LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 672. @@ -814,38 +817,21 @@ Overfull \vbox (701.0pt too high) has occurred while \output is active [] [11] Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:02 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 29526 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:46 +(epstopdf) date: 2015-05-09 17:25:29 (epstopdf) size: 12638 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 728. +(epstopdf) \includegraphics on input line 729. Package epstopdf Info: Output file is already uptodate. File: figure5-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure5-eps-converted-to.pdf used on input line 728. -(pdftex.def) Requested size: 242.40503pt x 175.15395pt. -Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:02 -(epstopdf) size: 29515 bytes -(epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:46 -(epstopdf) size: 12695 bytes -(epstopdf) Command: -(epstopdf) \includegraphics on input line 750. -Package epstopdf Info: Output file is already uptodate. - - -File: figure6-eps-converted-to.pdf Graphic file (type pdf) - - -Package pdftex.def Info: figure6-eps-converted-to.pdf used on input line 750. +Package pdftex.def Info: figure5-eps-converted-to.pdf used on input line 729. (pdftex.def) Requested size: 242.40503pt x 175.15395pt. Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -872,99 +858,96 @@ Overfull \vbox (29.0pt too high) has occurred while \output is active [] Overfull \vbox (701.0pt too high) has occurred while \output is active [] [12 <./figure5-eps-converted-to.pdf>] +Package epstopdf Info: Source file: +(epstopdf) date: 2015-05-08 17:47:31 +(epstopdf) size: 29515 bytes +(epstopdf) Output file: +(epstopdf) date: 2015-05-09 17:25:30 +(epstopdf) size: 12695 bytes +(epstopdf) Command: +(epstopdf) \includegraphics on input line 751. +Package epstopdf Info: Output file is already uptodate. + + +File: figure6-eps-converted-to.pdf Graphic file (type pdf) + + +Package pdftex.def Info: figure6-eps-converted-to.pdf used on input line 751. +(pdftex.def) Requested size: 242.40503pt x 175.15395pt. Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:02 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 24136 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:46 +(epstopdf) date: 2015-05-09 17:25:30 (epstopdf) size: 8179 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 773. +(epstopdf) \includegraphics on input line 774. Package epstopdf Info: Output file is already uptodate. File: figure7a-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure7a-eps-converted-to.pdf used on input line 773. +Package pdftex.def Info: figure7a-eps-converted-to.pdf used on input line 774. (pdftex.def) Requested size: 234.5788pt x 166.39838pt. Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:02 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 24138 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:47 +(epstopdf) date: 2015-05-09 17:25:31 (epstopdf) size: 8180 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 774. +(epstopdf) \includegraphics on input line 775. Package epstopdf Info: Output file is already uptodate. File: figure7b-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure7b-eps-converted-to.pdf used on input line 774. +Package pdftex.def Info: figure7b-eps-converted-to.pdf used on input line 775. (pdftex.def) Requested size: 234.5788pt x 166.39838pt. LaTeX Warning: `!h' float specifier changed to `!ht'. Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:03 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 24103 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:47 +(epstopdf) date: 2015-05-09 17:25:31 (epstopdf) size: 8351 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 800. +(epstopdf) \includegraphics on input line 801. Package epstopdf Info: Output file is already uptodate. File: figure8a-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure8a-eps-converted-to.pdf used on input line 800. +Package pdftex.def Info: figure8a-eps-converted-to.pdf used on input line 801. (pdftex.def) Requested size: 234.5788pt x 166.39838pt. Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:03 +(epstopdf) date: 2015-05-08 17:47:31 (epstopdf) size: 24855 bytes (epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:47 +(epstopdf) date: 2015-05-09 17:25:31 (epstopdf) size: 8466 bytes (epstopdf) Command: -(epstopdf) \includegraphics on input line 801. +(epstopdf) \includegraphics on input line 802. Package epstopdf Info: Output file is already uptodate. File: figure8b-eps-converted-to.pdf Graphic file (type pdf) -Package pdftex.def Info: figure8b-eps-converted-to.pdf used on input line 801. +Package pdftex.def Info: figure8b-eps-converted-to.pdf used on input line 802. (pdftex.def) Requested size: 234.5788pt x 166.39838pt. -LaTeX Warning: `!h' float specifier changed to `!ht'. - -Package epstopdf Info: Source file: -(epstopdf) date: 2015-02-06 11:42:03 -(epstopdf) size: 27000 bytes -(epstopdf) Output file: -(epstopdf) date: 2015-02-20 10:12:48 -(epstopdf) size: 7927 bytes -(epstopdf) Command: -(epstopdf) \includegraphics on input line 823. -Package epstopdf Info: Output file is already uptodate. - -File: figure9-eps-converted-to.pdf Graphic file (type pdf) - - -Package pdftex.def Info: figure9-eps-converted-to.pdf used on input line 823. -(pdftex.def) Requested size: 242.40503pt x 175.15395pt. - - LaTeX Warning: `!h' float specifier changed to `!ht'. @@ -991,8 +974,27 @@ Overfull \vbox (29.0pt too high) has occurred while \output is active [] Overfull \vbox (701.0pt too high) has occurred while \output is active [] - [13 <./figure6-eps-converted-to.pdf>] (./articleeo.bbl -Underfull \vbox (badness 10000) has occurred while \output is active [] + [13 <./figure6-eps-converted-to.pdf>] +Package epstopdf Info: Source file: +(epstopdf) date: 2015-05-08 17:47:31 +(epstopdf) size: 27000 bytes +(epstopdf) Output file: +(epstopdf) date: 2015-05-09 17:25:32 +(epstopdf) size: 7927 bytes +(epstopdf) Command: +(epstopdf) \includegraphics on input line 824. +Package epstopdf Info: Output file is already uptodate. + + +File: figure9-eps-converted-to.pdf Graphic file (type pdf) + + +Package pdftex.def Info: figure9-eps-converted-to.pdf used on input line 824. +(pdftex.def) Requested size: 242.40503pt x 175.15395pt. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -1019,6 +1021,7 @@ Overfull \vbox (29.0pt too high) has occurred while \output is active [] Overfull \vbox (701.0pt too high) has occurred while \output is active [] [14 <./figure7a-eps-converted-to.pdf> <./figure7b-eps-converted-to.pdf>] +(./articleeo.bbl Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -1138,13 +1141,13 @@ LaTeX Font Warning: Some font shapes were not available, defaults substituted. ) Here is how much of TeX's memory you used: - 3701 strings out of 495059 - 47855 string characters out of 3182031 - 116213 words of memory out of 3000000 - 6813 multiletter control sequences out of 15000+200000 + 3708 strings out of 495059 + 48092 string characters out of 3182030 + 116289 words of memory out of 3000000 + 6816 multiletter control sequences out of 15000+200000 14560 words of font info for 56 fonts, out of 3000000 for 9000 14 hyphenation exceptions out of 8191 - 41i,14n,27p,419b,327s stack positions out of 5000i,500n,10000p,200000b,50000s + 41i,14n,27p,419b,325s stack positions out of 5000i,500n,10000p,200000b,50000s -Output written on articleeo.pdf (17 pages, 734726 bytes). +Output written on articleeo.pdf (17 pages, 734629 bytes). PDF statistics: 202 PDF objects out of 1000 (max. 8388607) 137 compressed objects within 2 object streams diff --git a/PeCO-EO/articleeo.pdf b/PeCO-EO/articleeo.pdf index bf3d33f1f45715f4578ca6347629739c9516c6d6..bc80ba6945bdaa5fd6d1bc7137a1cc8a2df6363b 100644 GIT binary patch delta 57689 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 UFY|)k_pGG?dPA-;q3zwl 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 diff --git a/PeCO-EO/articleeo.tex b/PeCO-EO/articleeo.tex index c0c6f7b..40af2f4 100644 --- a/PeCO-EO/articleeo.tex +++ b/PeCO-EO/articleeo.tex @@ -1,865 +1,866 @@ -% gENOguide.tex -% v4.0 released April 2013 - -\documentclass{gENO2e} -%\usepackage[linesnumbered,ruled,vlined,commentsnumbered]{algorithm2e} -%\renewcommand{\algorithmcfname}{ALGORITHM} -\begin{document} - -%\jvol{00} \jnum{00} \jyear{2013} \jmonth{April} - -%\articletype{GUIDE} - -\title{{\itshape Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks}} - -\author{Ali Kadhum Idrees$^{a}$, Karine Deschinkel$^{a}$$^{\ast}$\thanks{$^\ast$Corresponding author. Email: karine.deschinkel@univ-fcomte.fr}, Michel Salomon$^{a}$ and Rapha\"el Couturier $^{a}$ -$^{a}${\em{FEMTO-ST Institute, UMR 6174 CNRS, University of Franche-Comte, - Belfort, France}};} - - -\maketitle - -\begin{abstract} -The most important problem in a Wireless Sensor Network (WSN) is to optimize the -use of its limited energy provision, so that it can fulfill its monitoring task -as long as possible. Among known available approaches that can be used to -improve power management, lifetime coverage optimization provides activity -scheduling which ensures sensing coverage while minimizing the energy cost. We propose such an approach called Perimeter-based Coverage Optimization -protocol (PeCO). It is a hybrid of centralized and distributed methods: the -region of interest is first subdivided into subregions and our protocol is then -distributed among sensor nodes in each subregion. -The novelty of our approach lies essentially in the formulation of a new -mathematical optimization model based on the perimeter coverage level to schedule -sensors' activities. Extensive simulation experiments demonstrate that PeCO can -offer longer lifetime coverage for WSNs in comparison with some other protocols. - -\begin{keywords}Wireless Sensor Networks, Area Coverage, Energy efficiency, Optimization, Scheduling. -\end{keywords} - -\end{abstract} - - -\section{Introduction} -\label{sec:introduction} - -\noindent The continuous progress in Micro Electro-Mechanical Systems (MEMS) and -wireless communication hardware has given rise to the opportunity to use large -networks of tiny sensors, called Wireless Sensor Networks -(WSN)~\citep{akyildiz2002wireless,puccinelli2005wireless}, to fulfill monitoring -tasks. A WSN consists of small low-powered sensors working together by -communicating with one another through multi-hop radio communications. Each node -can send the data it collects in its environment, thanks to its sensor, to the -user by means of sink nodes. The features of a WSN made it suitable for a wide -range of application in areas such as business, environment, health, industry, -military, and so on~\citep{yick2008wireless}. Typically, a sensor node contains -three main components~\citep{anastasi2009energy}: a sensing unit able to measure -physical, chemical, or biological phenomena observed in the environment; a -processing unit which will process and store the collected measurements; a radio -communication unit for data transmission and receiving. - -The energy needed by an active sensor node to perform sensing, processing, and -communication is supplied by a power supply which is a battery. This battery has -a limited energy provision and it may be unsuitable or impossible to replace or -recharge it in most applications. Therefore it is necessary to deploy WSN with -high density in order to increase reliability and to exploit node redundancy -thanks to energy-efficient activity scheduling approaches. Indeed, the overlap -of sensing areas can be exploited to schedule alternatively some sensors in a -low power sleep mode and thus save energy. Overall, the main question that must -be answered is: how to extend the lifetime coverage of a WSN as long as possible -while ensuring a high level of coverage? These past few years many -energy-efficient mechanisms have been suggested to retain energy and extend the -lifetime of the WSNs~\citep{rault2014energy}.\\\\ -This paper makes the following contributions. -\begin{enumerate} -\item We have devised a framework to schedule nodes to be activated alternatively such - that the network lifetime is prolonged while ensuring that a certain level of - coverage is preserved. A key idea in our framework is to exploit spatial and - temporal subdivision. On the one hand, the area of interest is divided into - several smaller subregions and, on the other hand, the time line is divided into - periods of equal length. In each subregion the sensor nodes will cooperatively - choose a leader which will schedule nodes' activities, and this grouping of - sensors is similar to typical cluster architecture. -\item We have proposed a new mathematical optimization model. Instead of trying to - cover a set of specified points/targets as in most of the methods proposed in - the literature, we formulate an integer program based on perimeter coverage of - each sensor. The model involves integer variables to capture the deviations - between the actual level of coverage and the required level. Hence, an - optimal scheduling will be obtained by minimizing a weighted sum of these - deviations. -\item We have conducted extensive simulation experiments, using the discrete event - simulator OMNeT++, to demonstrate the efficiency of our protocol. We have compared - our PeCO protocol to two approaches found in the literature: - DESK~\citep{ChinhVu} and GAF~\citep{xu2001geography}, and also to our previous - work published in~\citep{Idrees2} which is based on another optimization model - for sensor scheduling. -\end{enumerate} - - - - - - -The rest of the paper is organized as follows. In the next section we review -some related work in the field. Section~\ref{sec:The PeCO Protocol Description} -is devoted to the PeCO protocol description and Section~\ref{cp} focuses on the -coverage model formulation which is used to schedule the activation of sensor -nodes. Section~\ref{sec:Simulation Results and Analysis} presents simulations -results and discusses the comparison with other approaches. Finally, concluding -remarks are drawn and some suggestions are given for future works in -Section~\ref{sec:Conclusion and Future Works}. - -\section{Related Literature} -\label{sec:Literature Review} - -\noindent In this section, we summarize some related works regarding the -coverage problem and distinguish our PeCO protocol from the works presented in -the literature. - -The most discussed coverage problems in literature can be classified in three -categories~\citep{li2013survey} according to their respective monitoring -objective. Hence, area coverage \citep{Misra} means that every point inside a -fixed area must be monitored, while target coverage~\citep{yang2014novel} refers -to the objective of coverage for a finite number of discrete points called -targets, and barrier coverage~\citep{HeShibo,kim2013maximum} focuses on -preventing intruders from entering into the region of interest. In -\citep{Deng2012} authors transform the area coverage problem into the target -coverage one taking into account the intersection points among disks of sensors -nodes or between disk of sensor nodes and boundaries. In -\citep{Huang:2003:CPW:941350.941367} authors prove that if the perimeters of -sensors are sufficiently covered it will be the case for the whole area. They -provide an algorithm in $O(nd~log~d)$ time to compute the perimeter-coverage of -each sensor, where $d$ denotes the maximum number of sensors that are -neighbors to a sensor and $n$ is the total number of sensors in the -network. {\it In PeCO protocol, instead of determining the level of coverage of - a set of discrete points, our optimization model is based on checking the - perimeter-coverage of each sensor to activate a minimal number of sensors.} - -The major approach to extend network lifetime while preserving coverage is to -divide/organize the sensors into a suitable number of set covers (disjoint or -non-disjoint)\citep{wang2011coverage}, where each set completely covers a region of interest, and to -activate these set covers successively. The network activity can be planned in -advance and scheduled for the entire network lifetime or organized in periods, -and the set of active sensor nodes is decided at the beginning of each period -\citep{ling2009energy}. Active node selection is determined based on the problem -requirements (e.g. area monitoring, connectivity, or power efficiency). For -instance, \citet{jaggi2006} address the problem of maximizing -the lifetime by dividing sensors into the maximum number of disjoint subsets -such that each subset can ensure both coverage and connectivity. A greedy -algorithm is applied once to solve this problem and the computed sets are -activated in succession to achieve the desired network lifetime. -\citet{chin2007}, \citet{yan2008design}, \citet{pc10}, propose algorithms -working in a periodic fashion where a cover set is computed at the beginning of -each period. {\it Motivated by these works, PeCO protocol works in periods, - where each period contains a preliminary phase for information exchange and - decisions, followed by a sensing phase where one cover set is in charge of the - sensing task.} - -Various centralized and distributed approaches, or even a mixing of these two -concepts, have been proposed to extend the network lifetime \citep{zhou2009variable}. In distributed algorithms~\citep{Tian02,yangnovel,ChinhVu,qu2013distributed} each sensor decides of its -own activity scheduling after an information exchange with its neighbors. The -main interest of such an approach is to avoid long range communications and thus -to reduce the energy dedicated to the communications. Unfortunately, since each -node has only information on its immediate neighbors (usually the one-hop ones) -it may make a bad decision leading to a global suboptimal solution. Conversely, -centralized -algorithms~\citep{cardei2005improving,zorbas2010solving,pujari2011high} always -provide nearly or close to optimal solution since the algorithm has a global -view of the whole network. The disadvantage of a centralized method is obviously -its high cost in communications needed to transmit to a single node, the base -station which will globally schedule nodes' activities, data from all the other -sensor nodes in the area. The price in communications can be huge since -long range communications will be needed. In fact the larger the WNS is, the -higher the communication and thus the energy cost are. {\it In order to be - suitable for large-scale networks, in the PeCO protocol, the area of interest - is divided into several smaller subregions, and in each one, a node called the - leader is in charge of selecting the active sensors for the current - period. Thus our protocol is scalable and is a globally distributed method, - whereas it is centralized in each subregion.} - -Various coverage scheduling algorithms have been developed these past few years. -Many of them, dealing with the maximization of the number of cover sets, are -heuristics. These heuristics involve the construction of a cover set by -including in priority the sensor nodes which cover critical targets, that is to -say targets that are covered by the smallest number of sensors -\citep{berman04,zorbas2010solving}. Other approaches are based on mathematical -programming formulations~\citep{cardei2005energy,5714480,pujari2011high,Yang2014} -and dedicated techniques (solving with a branch-and-bound algorithm available in -optimization solver). The problem is formulated as an optimization problem -(maximization of the lifetime or number of cover sets) under target coverage and -energy constraints. Column generation techniques, well-known and widely -practiced techniques for solving linear programs with too many variables, have -also been -used~\citep{castano2013column,doi:10.1080/0305215X.2012.687732,deschinkel2012column}. {\it In the PeCO - protocol, each leader, in charge of a subregion, solves an integer program - which has a twofold objective: minimize the overcoverage and the undercoverage - of the perimeter of each sensor.} - - - -\section{ The P{\scshape e}CO Protocol Description} -\label{sec:The PeCO Protocol Description} - -\noindent In this section, we describe in details our Perimeter-based Coverage -Optimization protocol. First we present the assumptions we made and the models -we considered (in particular the perimeter coverage one), second we describe the -background idea of our protocol, and third we give the outline of the algorithm -executed by each node. - - -\subsection{Assumptions and Models} -\label{CI} - -\noindent A WSN consisting of $J$ stationary sensor nodes randomly and uniformly -distributed in a bounded sensor field is considered. The wireless sensors are -deployed in high density to ensure initially a high coverage ratio of the area -of interest. We assume that all the sensor nodes are homogeneous in terms of -communication, sensing, and processing capabilities and heterogeneous from -the energy provision point of view. The location information is available to a -sensor node either through hardware such as embedded GPS or location discovery -algorithms. We assume that each sensor node can directly transmit its -measurements to a mobile sink node. For example, a sink can be an unmanned -aerial vehicle (UAV) flying regularly over the sensor field to collect -measurements from sensor nodes. A mobile sink node collects the measurements and -transmits them to the base station. We consider a Boolean disk coverage model, -which is the most widely used sensor coverage model in the literature, and all -sensor nodes have a constant sensing range $R_s$. Thus, all the space points -within a disk centered at a sensor with a radius equal to the sensing range are -said to be covered by this sensor. We also assume that the communication range -$R_c$ satisfies $R_c \geq 2 \cdot R_s$. In fact, \citet{Zhang05} -proved that if the transmission range fulfills the previous hypothesis, the -complete coverage of a convex area implies connectivity among active nodes. - -The PeCO protocol uses the same perimeter-coverage model as \citet{huang2005coverage}. It can be expressed as follows: a sensor is -said to be perimeter covered if all the points on its perimeter are covered by -at least one sensor other than itself. They proved that a network area is -$k$-covered if and only if each sensor in the network is $k$-perimeter-covered (perimeter covered by at least $k$ sensors). - -Figure~\ref{figure1}(a) shows the coverage of sensor node~$0$. On this -figure, we can see that sensor~$0$ has nine neighbors and we have reported on -its perimeter (the perimeter of the disk covered by the sensor) for each -neighbor the two points resulting from the intersection of the two sensing -areas. These points are denoted for neighbor~$i$ by $iL$ and $iR$, respectively -for left and right from a neighboing point of view. The resulting couples of -intersection points subdivide the perimeter of sensor~$0$ into portions called -arcs. - -\begin{figure}[ht!] - \centering - \begin{tabular}{@{}cr@{}} - \includegraphics[width=75mm]{figure1a.eps} & \raisebox{3.25cm}{(a)} \\ - \includegraphics[width=75mm]{figure1b.eps} & \raisebox{2.75cm}{(b)} - \end{tabular} - \caption{(a) Perimeter coverage of sensor node 0 and (b) finding the arc of - $u$'s perimeter covered by $v$.} - \label{figure1} -\end{figure} - -Figure~\ref{figure1}(b) describes the geometric information used to find the -locations of the left and right points of an arc on the perimeter of a sensor -node~$u$ covered by a sensor node~$v$. Node~$v$ is supposed to be located on the -west side of sensor~$u$, with the following respective coordinates in the -sensing area~: $(v_x,v_y)$ and $(u_x,u_y)$. From the previous coordinates we can -compute the euclidean distance between nodes~$u$ and $v$: $Dist(u,v)=\sqrt{\vert - u_x - v_x \vert^2 + \vert u_y-v_y \vert^2}$, while the angle~$\alpha$ is -obtained through the formula: - \[ -\alpha = \arccos \left(\frac{Dist(u,v)}{2R_s} -\right). -\] -The arc on the perimeter of~$u$ defined by the angular interval $[\pi - - \alpha,\pi + \alpha]$ is said to be perimeter-covered by sensor~$v$. - -Every couple of intersection points is placed on the angular interval $[0,2\pi]$ -in a counterclockwise manner, leading to a partitioning of the interval. -Figure~\ref{figure1}(a) illustrates the arcs for the nine neighbors of -sensor $0$ and figure~\ref{figure2} gives the position of the corresponding arcs -in the interval $[0,2\pi]$. More precisely, we can see that the points are -ordered according to the measures of the angles defined by their respective -positions. The intersection points are then visited one after another, starting -from the first intersection point after point~zero, and the maximum level of -coverage is determined for each interval defined by two successive points. The -maximum level of coverage is equal to the number of overlapping arcs. For -example, -between~$5L$ and~$6L$ the maximum level of coverage is equal to $3$ -(the value is highlighted in yellow at the bottom of figure~\ref{figure2}), which -means that at most 2~neighbors can cover the perimeter in addition to node $0$. -Table~\ref{my-label} summarizes for each coverage interval the maximum level of -coverage and the sensor nodes covering the perimeter. The example discussed -above is thus given by the sixth line of the table. - - -\begin{figure*}[t!] -\centering -\includegraphics[width=127.5mm]{figure2.eps} -\caption{Maximum coverage levels for perimeter of sensor node $0$.} -\label{figure2} -\end{figure*} - - - - - \begin{table} - \tbl{Coverage intervals and contributing sensors for sensor node 0 \label{my-label}} -{\begin{tabular}{|c|c|c|c|c|c|c|c|c|} -\hline -\begin{tabular}[c]{@{}c@{}}Left \\ point \\ angle~$\alpha$ \end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ left \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ right \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Maximum \\ coverage\\ level\end{tabular} & \multicolumn{5}{c|}{\begin{tabular}[c]{@{}c@{}}Set of sensors\\ involved \\ in coverage interval\end{tabular}} \\ \hline -0.0291 & 1L & 2L & 4 & 0 & 1 & 3 & 4 & \\ \hline -0.104 & 2L & 3R & 5 & 0 & 1 & 3 & 4 & 2 \\ \hline -0.3168 & 3R & 4R & 4 & 0 & 1 & 4 & 2 & \\ \hline -0.6752 & 4R & 1R & 3 & 0 & 1 & 2 & & \\ \hline -1.8127 & 1R & 5L & 2 & 0 & 2 & & & \\ \hline -1.9228 & 5L & 6L & 3 & 0 & 2 & 5 & & \\ \hline -2.3959 & 6L & 2R & 4 & 0 & 2 & 5 & 6 & \\ \hline -2.4258 & 2R & 7L & 3 & 0 & 5 & 6 & & \\ \hline -2.7868 & 7L & 8L & 4 & 0 & 5 & 6 & 7 & \\ \hline -2.8358 & 8L & 5R & 5 & 0 & 5 & 6 & 7 & 8 \\ \hline -2.9184 & 5R & 7R & 4 & 0 & 6 & 7 & 8 & \\ \hline -3.3301 & 7R & 9R & 3 & 0 & 6 & 8 & & \\ \hline -3.9464 & 9R & 6R & 4 & 0 & 6 & 8 & 9 & \\ \hline -4.767 & 6R & 3L & 3 & 0 & 8 & 9 & & \\ \hline -4.8425 & 3L & 8R & 4 & 0 & 3 & 8 & 9 & \\ \hline -4.9072 & 8R & 4L & 3 & 0 & 3 & 9 & & \\ \hline -5.3804 & 4L & 9R & 4 & 0 & 3 & 4 & 9 & \\ \hline -5.9157 & 9R & 1L & 3 & 0 & 3 & 4 & & \\ \hline -\end{tabular}} - - -\end{table} - - - - -In the PeCO protocol, the scheduling of the sensor nodes' activities is formulated with an -integer program based on coverage intervals. The formulation of the coverage -optimization problem is detailed in~section~\ref{cp}. Note that when a sensor -node has a part of its sensing range outside the WSN sensing field, as in -figure~\ref{figure3}, the maximum coverage level for this arc is set to $\infty$ -and the corresponding interval will not be taken into account by the -optimization algorithm. - - \newpage -\begin{figure}[h!] -\centering -\includegraphics[width=62.5mm]{figure3.eps} -\caption{Sensing range outside the WSN's area of interest.} -\label{figure3} -\end{figure} - - -\subsection{The Main Idea} - -\noindent The WSN area of interest is, in a first step, divided into regular -homogeneous subregions using a divide-and-conquer algorithm. In a second step -our protocol will be executed in a distributed way in each subregion -simultaneously to schedule nodes' activities for one sensing period. - -As shown in figure~\ref{figure4}, node activity scheduling is produced by our -protocol in a periodic manner. Each period is divided into 4 stages: Information -(INFO) Exchange, Leader Election, Decision (the result of an optimization -problem), and Sensing. For each period there is exactly one set cover -responsible for the sensing task. Protocols based on a periodic scheme, like -PeCO, are more robust against an unexpected node failure. On the one hand, if -a node failure is discovered before taking the decision, the corresponding sensor -node will not be considered by the optimization algorithm. On the other -hand, if the sensor failure happens after the decision, the sensing task of the -network will be temporarily affected: only during the period of sensing until a -new period starts, since a new set cover will take charge of the sensing task in -the next period. The energy consumption and some other constraints can easily be -taken into account since the sensors can update and then exchange their -information (including their residual energy) at the beginning of each period. -However, the pre-sensing phases (INFO Exchange, Leader Election, and Decision) -are energy consuming, even for nodes that will not join the set cover to monitor -the area. - -\begin{figure}[t!] -\centering -\includegraphics[width=80mm]{figure4.eps} -\caption{PeCO protocol.} -\label{figure4} -\end{figure} - -We define two types of packets to be used by PeCO protocol: - -\begin{itemize} -\item INFO packet: sent by each sensor node to all the nodes inside a same - subregion for information exchange. -\item ActiveSleep packet: sent by the leader to all the nodes in its subregion - to transmit to them their respective status (stay Active or go Sleep) during - sensing phase. -\end{itemize} - - -Five status are possible for a sensor node in the network: - -\begin{itemize} -\item LISTENING: waits for a decision (to be active or not); -\item COMPUTATION: executes the optimization algorithm as leader to - determine the activities scheduling; -\item ACTIVE: node is sensing; -\item SLEEP: node is turned off; -\item COMMUNICATION: transmits or receives packets. -\end{itemize} - - -\subsection{PeCO Protocol Algorithm} - -\noindent The pseudocode implementing the protocol on a node is given below. -More precisely, Algorithm~\ref{alg:PeCO} gives a brief description of the -protocol applied by a sensor node $s_k$ where $k$ is the node index in the WSN. - - - -\begin{algorithm} - % \KwIn{all the parameters related to information exchange} -% \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)} -% \BlankLine - %\emph{Initialize the sensor node and determine it's position and subregion} \; - -\noindent{\bf If} $RE_k \geq E_{th}$ {\bf then}\\ -\hspace*{0.6cm} \emph{$s_k.status$ = COMMUNICATION;}\\ -\hspace*{0.6cm} \emph{Send $INFO()$ packet to other nodes in subregion;}\\ -\hspace*{0.6cm} \emph{Wait $INFO()$ packet from other nodes in subregion;}\\ -\hspace*{0.6cm} \emph{Update K.CurrentSize;}\\ -\hspace*{0.6cm} \emph{LeaderID = Leader election;}\\ -\hspace*{0.6cm} {\bf If} $ s_k.ID = LeaderID $ {\bf then}\\ -\hspace*{1.2cm} \emph{$s_k.status$ = COMPUTATION;}\\ -\hspace*{1.2cm}{\bf If} \emph{$ s_k.ID $ is Not previously selected as a Leader} {\bf then}\\ -\hspace*{1.8cm} \emph{ Execute the perimeter coverage model;}\\ -\hspace*{1.2cm} {\bf end}\\ -\hspace*{1.2cm}{\bf If} \emph{($s_k.ID $ is the same Previous Leader)~And~(K.CurrentSize = K.PreviousSize)}\\ -\hspace*{1.8cm} \emph{ Use the same previous cover set for current sensing stage;}\\ -\hspace*{1.2cm} {\bf end}\\ -\hspace*{1.2cm} {\bf else}\\ -\hspace*{1.8cm}\emph{Update $a^j_{ik}$; prepare data for IP~Algorithm;}\\ -\hspace*{1.8cm} \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$);}\\ -\hspace*{1.8cm} \emph{K.PreviousSize = K.CurrentSize;}\\ -\hspace*{1.2cm} {\bf end}\\ -\hspace*{1.2cm}\emph{$s_k.status$ = COMMUNICATION;}\\ -\hspace*{1.2cm}\emph{Send $ActiveSleep()$ to each node $l$ in subregion;}\\ -\hspace*{1.2cm}\emph{Update $RE_k $;}\\ -\hspace*{0.6cm} {\bf end}\\ -\hspace*{0.6cm} {\bf else}\\ -\hspace*{1.2cm}\emph{$s_k.status$ = LISTENING;}\\ -\hspace*{1.2cm}\emph{Wait $ActiveSleep()$ packet from the Leader;}\\ -\hspace*{1.2cm}\emph{Update $RE_k $;}\\ -\hspace*{0.6cm} {\bf end}\\ -{\bf end}\\ -{\bf else}\\ -\hspace*{0.6cm} \emph{Exclude $s_k$ from entering in the current sensing stage;}\\ -{\bf end}\\ -\label{alg:PeCO} -\end{algorithm} - - - -In this algorithm, K.CurrentSize and K.PreviousSize respectively represent the -current number and the previous number of living nodes in the subnetwork of the -subregion. Initially, the sensor node checks its remaining energy $RE_k$, which -must be greater than a threshold $E_{th}$ in order to participate in the current -period. Each sensor node determines its position and its subregion using an -embedded GPS or a location discovery algorithm. After that, all the sensors -collect position coordinates, remaining energy, sensor node ID, and the number -of their one-hop live neighbors during the information exchange. The sensors -inside a same region cooperate to elect a leader. The selection criteria for the -leader, in order of priority, are: larger numbers of neighbors, larger remaining -energy, and then in case of equality, larger index. Once chosen, the leader -collects information to formulate and solve the integer program which allows to -construct the set of active sensors in the sensing stage. - - -\section{Perimeter-based Coverage Problem Formulation} -\label{cp} - -\noindent In this section, the coverage model is mathematically formulated. We -start with a description of the notations that will be used throughout the -section.\\ -First, we have the following sets: -\begin{itemize} -\item $S$ represents the set of WSN sensor nodes; -\item $A \subseteq S $ is the subset of alive sensors; -\item $I_j$ designates the set of coverage intervals (CI) obtained for - sensor~$j$. -\end{itemize} -$I_j$ refers to the set of coverage intervals which have been defined according -to the method introduced in subsection~\ref{CI}. For a coverage interval $i$, -let $a^j_{ik}$ denotes the indicator function of whether sensor~$k$ is involved -in coverage interval~$i$ of sensor~$j$, that is: -\begin{equation} -a^j_{ik} = \left \{ -\begin{array}{lll} - 1 & \mbox{if sensor $k$ is involved in the } \\ - & \mbox{coverage interval $i$ of sensor $j$}, \\ - 0 & \mbox{otherwise.}\\ -\end{array} \right. -\end{equation} -Note that $a^k_{ik}=1$ by definition of the interval. - -Second, we define several binary and integer variables. Hence, each binary -variable $X_{k}$ determines the activation of sensor $k$ in the sensing phase -($X_k=1$ if the sensor $k$ is active or 0 otherwise). $M^j_i$ is an integer -variable which measures the undercoverage for the coverage interval $i$ -corresponding to sensor~$j$. In the same way, the overcoverage for the same -coverage interval is given by the variable $V^j_i$. - -If we decide to sustain a level of coverage equal to $l$ all along the perimeter -of sensor $j$, we have to ensure that at least $l$ sensors involved in each -coverage interval $i \in I_j$ of sensor $j$ are active. According to the -previous notations, the number of active sensors in the coverage interval $i$ of -sensor $j$ is given by $\sum_{k \in A} a^j_{ik} X_k$. To extend the network -lifetime, the objective is to activate a minimal number of sensors in each -period to ensure the desired coverage level. As the number of alive sensors -decreases, it becomes impossible to reach the desired level of coverage for all -coverage intervals. Therefore we use variables $M^j_i$ and $V^j_i$ as a measure -of the deviation between the desired number of active sensors in a coverage -interval and the effective number. And we try to minimize these deviations, -first to force the activation of a minimal number of sensors to ensure the -desired coverage level, and if the desired level cannot be completely satisfied, -to reach a coverage level as close as possible to the desired one. - - - - -Our coverage optimization problem can then be mathematically expressed as follows: - -\begin{equation} -\left \{ -\begin{array}{ll} -\min \sum_{j \in S} \sum_{i \in I_j} (\alpha^j_i ~ M^j_i + \beta^j_i ~ V^j_i )&\\ -\textrm{subject to :}&\\ -\sum_{k \in A} ( a^j_{ik} ~ X_{k}) + M^j_i \geq l \quad \forall i \in I_j, \forall j \in S\\ -\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i \leq l \quad \forall i \in I_j, \forall j \in S\\ -X_{k} \in \{0,1\}, \forall k \in A -\end{array} -\right. -\end{equation} - -$\alpha^j_i$ and $\beta^j_i$ are nonnegative weights selected according to the -relative importance of satisfying the associated level of coverage. For example, -weights associated with coverage intervals of a specified part of a region may -be given by a relatively larger magnitude than weights associated with another -region. This kind of integer program is inspired from the model developed for -brachytherapy treatment planning for optimizing dose distribution -\citep{0031-9155-44-1-012}. The integer program must be solved by the leader in -each subregion at the beginning of each sensing phase, whenever the environment -has changed (new leader, death of some sensors). Note that the number of -constraints in the model is constant (constraints of coverage expressed for all -sensors), whereas the number of variables $X_k$ decreases over periods, since we -consider only alive sensors (sensors with enough energy to be alive during one -sensing phase) in the model. - -\section{Performance Evaluation and Analysis} -\label{sec:Simulation Results and Analysis} - - -\subsection{Simulation Settings} - - -The WSN area of interest is supposed to be divided into 16~regular subregions -and we use the same energy consumption than in our previous work~\citep{Idrees2}. -Table~\ref{table3} gives the chosen parameters settings. - -\begin{table}[ht] -\tbl{Relevant parameters for network initialization \label{table3}}{ - -\centering - -\begin{tabular}{c|c} - -\hline -Parameter & Value \\ [0.5ex] - -\hline -% inserts single horizontal line -Sensing field & $(50 \times 25)~m^2 $ \\ - -WSN size & 100, 150, 200, 250, and 300~nodes \\ - -Initial energy & in range 500-700~Joules \\ - -Sensing period & duration of 60 minutes \\ -$E_{th}$ & 36~Joules\\ -$R_s$ & 5~m \\ - -$\alpha^j_i$ & 0.6 \\ - -$\beta^j_i$ & 0.4 - -\end{tabular}} - - -\end{table} -To obtain experimental results which are relevant, simulations with five -different node densities going from 100 to 300~nodes were performed considering -each time 25~randomly generated networks. The nodes are deployed on a field of -interest of $(50 \times 25)~m^2 $ in such a way that they cover the field with a -high coverage ratio. Each node has an initial energy level, in Joules, which is -randomly drawn in the interval $[500-700]$. If its energy provision reaches a -value below the threshold $E_{th}=36$~Joules, the minimum energy needed for a -node to stay active during one period, it will no more participate in the -coverage task. This value corresponds to the energy needed by the sensing phase, -obtained by multiplying the energy consumed in active state (9.72 mW) with the -time in seconds for one period (3600 seconds), and adding the energy for the -pre-sensing phases. According to the interval of initial energy, a sensor may -be active during at most 20 periods. - -The values of $\alpha^j_i$ and $\beta^j_i$ have been chosen to ensure a good -network coverage and a longer WSN lifetime. We have given a higher priority to -the undercoverage (by setting the $\alpha^j_i$ with a larger value than -$\beta^j_i$) so as to prevent the non-coverage for the interval~$i$ of the -sensor~$j$. On the other hand, we have assigned to -$\beta^j_i$ a value which is slightly lower so as to minimize the number of active sensor nodes which contribute -in covering the interval. - -We introduce the following performance metrics to evaluate the efficiency of our -approach. - - -\begin{itemize} -\item {\bf Network Lifetime}: the lifetime is defined as the time elapsed until - the coverage ratio falls below a fixed threshold. $Lifetime_{95}$ and - $Lifetime_{50}$ denote, respectively, the amount of time during which is - guaranteed a level of coverage greater than $95\%$ and $50\%$. The WSN can - fulfill the expected monitoring task until all its nodes have depleted their - energy or if the network is no more connected. This last condition is crucial - because without network connectivity a sensor may not be able to send to a - base station an event it has sensed. -\item {\bf Coverage Ratio (CR)} : it measures how well the WSN is able to - observe the area of interest. In our case, we discretized the sensor field as - a regular grid, which yields the following equation: - - -\[ - \scriptsize - \mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100 -\] - - - where $n$ is the number of covered grid points by active sensors of every - subregions during the current sensing phase and $N$ is total number of grid - points in the sensing field. In our simulations we have set a layout of - $N~=~51~\times~26~=~1326$~grid points. -\item {\bf Active Sensors Ratio (ASR)}: a major objective of our protocol is to - activate as few nodes as possible, in order to minimize the communication - overhead and maximize the WSN lifetime. The active sensors ratio is defined as - follows: - -\[ - \scriptsize - \mbox{ASR}(\%) = \frac{\sum\limits_{r=1}^R \mbox{$|A_r^p|$}}{\mbox{$|S|$}} \times 100 -\] - - where $|A_r^p|$ is the number of active sensors in the subregion $r$ in the - current sensing period~$p$, $|S|$ is the number of sensors in the network, and - $R$ is the number of subregions. -\item {\bf Energy Consumption (EC)}: energy consumption can be seen as the total - energy consumed by the sensors during $Lifetime_{95}$ or $Lifetime_{50}$, - divided by the number of periods. The value of EC is computed according to - this formula: - -\[ - \scriptsize - \mbox{EC} = \frac{\sum\limits_{p=1}^{P} \left( E^{\mbox{com}}_p+E^{\mbox{list}}_p+E^{\mbox{comp}}_p - + E^{a}_p+E^{s}_p \right)}{P}, -\] - - where $P$ corresponds to the number of periods. The total energy consumed by - the sensors comes through taking into consideration four main energy - factors. The first one, denoted $E^{\scriptsize \mbox{com}}_p$, represents the - energy consumption spent by all the nodes for wireless communications during - period $p$. $E^{\scriptsize \mbox{list}}_p$, the next factor, corresponds to - the energy consumed by the sensors in LISTENING status before receiving the - decision to go active or sleep in period $p$. $E^{\scriptsize \mbox{comp}}_p$ - refers to the energy needed by all the leader nodes to solve the integer - program during a period. Finally, $E^a_{p}$ and $E^s_{p}$ indicate the energy - consumed by the WSN during the sensing phase (active and sleeping nodes). -\end{itemize} - - -\subsection{Simulation Results} - -In order to assess and analyze the performance of our protocol we have -implemented PeCO protocol in OMNeT++~\citep{varga} simulator. Besides PeCO, two -other protocols, described in the next paragraph, will be evaluated for -comparison purposes. The simulations were run on a DELL laptop with an Intel -Core~i3~2370~M (1.8~GHz) processor (2 cores) whose MIPS (Million Instructions -Per Second) rate is equal to 35330. To be consistent with the use of a sensor -node based on Atmels AVR ATmega103L microcontroller (6~MHz) having a MIPS rate -equal to 6, the original execution time on the laptop is multiplied by 2944.2 -$\left(\frac{35330}{2} \times \frac{1}{6} \right)$. The modeling language for -Mathematical Programming (AMPL)~\citep{AMPL} is employed to generate the integer -program instance in a standard format, which is then read and solved by the -optimization solver GLPK (GNU linear Programming Kit available in the public -domain) \citep{glpk} through a Branch-and-Bound method. - -As said previously, the PeCO is compared to three other approaches. The first -one, called DESK, is a fully distributed coverage algorithm proposed by -\citep{ChinhVu}. The second one, called GAF~\citep{xu2001geography}, consists in -dividing the monitoring area into fixed squares. Then, during the decision -phase, in each square, one sensor is chosen to remain active during the sensing -phase. The last one, the DiLCO protocol~\citep{Idrees2}, is an improved version -of a research work we presented in~\citep{idrees2014coverage}. Let us notice that -PeCO and DiLCO protocols are based on the same framework. In particular, the -choice for the simulations of a partitioning in 16~subregions was made because -it corresponds to the configuration producing the best results for DiLCO. The -protocols are distinguished from one another by the formulation of the integer -program providing the set of sensors which have to be activated in each sensing -phase. DiLCO protocol tries to satisfy the coverage of a set of primary points, -whereas the PeCO protocol objective is to reach a desired level of coverage for each -sensor perimeter. In our experimentations, we chose a level of coverage equal to -one ($l=1$). - -\subsubsection{\bf Coverage Ratio} - -Figure~\ref{figure5} shows the average coverage ratio for 200 deployed nodes -obtained with the four protocols. DESK, GAF, and DiLCO provide a slightly better -coverage ratio with respectively 99.99\%, 99.91\%, and 99.02\%, compared to the 98.76\% -produced by PeCO for the first periods. This is due to the fact that at the -beginning the DiLCO protocol puts to sleep status more redundant sensors (which -slightly decreases the coverage ratio), while the three other protocols activate -more sensor nodes. Later, when the number of periods is beyond~70, it clearly -appears that PeCO provides a better coverage ratio and keeps a coverage ratio -greater than 50\% for longer periods (15 more compared to DiLCO, 40 more -compared to DESK). The energy saved by PeCO in the early periods allows later a -substantial increase of the coverage performance. - -\parskip 0pt -\begin{figure}[h!] -\centering - \includegraphics[scale=0.5] {figure5.eps} -\caption{Coverage ratio for 200 deployed nodes.} -\label{figure5} -\end{figure} - - - - -\subsubsection{\bf Active Sensors Ratio} - -Having the less active sensor nodes in each period is essential to minimize the -energy consumption and thus to maximize the network lifetime. Figure~\ref{figure6} -shows the average active nodes ratio for 200 deployed nodes. We observe that -DESK and GAF have 30.36 \% and 34.96 \% active nodes for the first fourteen -rounds and DiLCO and PeCO protocols compete perfectly with only 17.92~\% and -20.16~\% active nodes during the same time interval. As the number of periods -increases, PeCO protocol has a lower number of active nodes in comparison with -the three other approaches, while keeping a greater coverage ratio as shown in -figure \ref{figure5}. - -\begin{figure}[h!] -\centering -\includegraphics[scale=0.5]{figure6.eps} -\caption{Active sensors ratio for 200 deployed nodes.} -\label{figure6} -\end{figure} - -\subsubsection{\bf Energy Consumption} - -We studied the effect of the energy consumed by the WSN during the communication, -computation, listening, active, and sleep status for different network densities -and compared it for the four approaches. Figures~\ref{figure7}(a) and (b) -illustrate the energy consumption for different network sizes and for -$Lifetime95$ and $Lifetime50$. The results show that our PeCO protocol is the -most competitive from the energy consumption point of view. As shown in both -figures, PeCO consumes much less energy than the three other methods. One might -think that the resolution of the integer program is too costly in energy, but -the results show that it is very beneficial to lose a bit of time in the -selection of sensors to activate. Indeed the optimization program allows to -reduce significantly the number of active sensors and so the energy consumption -while keeping a good coverage level. - -\begin{figure}[h!] - \centering - \begin{tabular}{@{}cr@{}} - \includegraphics[scale=0.475]{figure7a.eps} & \raisebox{2.75cm}{(a)} \\ - \includegraphics[scale=0.475]{figure7b.eps} & \raisebox{2.75cm}{(b)} - \end{tabular} - \caption{Energy consumption per period for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.} - \label{figure7} -\end{figure} - - - -\subsubsection{\bf Network Lifetime} - -We observe the superiority of PeCO and DiLCO protocols in comparison with the -two other approaches in prolonging the network lifetime. In -Figures~\ref{figure8}(a) and (b), $Lifetime95$ and $Lifetime50$ are shown for -different network sizes. As highlighted by these figures, the lifetime -increases with the size of the network, and it is clearly largest for DiLCO -and PeCO protocols. For instance, for a network of 300~sensors and coverage -ratio greater than 50\%, we can see on figure~\ref{figure8}(b) that the lifetime -is about twice longer with PeCO compared to DESK protocol. The performance -difference is more obvious in figure~\ref{figure8}(b) than in -figure~\ref{figure8}(a) because the gain induced by our protocols increases with - time, and the lifetime with a coverage of 50\% is far longer than with -95\%. - -\begin{figure}[h!] - \centering - \begin{tabular}{@{}cr@{}} - \includegraphics[scale=0.475]{figure8a.eps} & \raisebox{2.75cm}{(a)} \\ - \includegraphics[scale=0.475]{figure8b.eps} & \raisebox{2.75cm}{(b)} - \end{tabular} - \caption{Network Lifetime for (a)~$Lifetime_{95}$ \\ - and (b)~$Lifetime_{50}$.} - \label{figure8} -\end{figure} - - - -Figure~\ref{figure9} compares the lifetime coverage of our protocols for -different coverage ratios. We denote by Protocol/50, Protocol/80, Protocol/85, -Protocol/90, and Protocol/95 the amount of time during which the network can -satisfy an area coverage greater than $50\%$, $80\%$, $85\%$, $90\%$, and $95\%$ -respectively, where the term Protocol refers to DiLCO or PeCO. Indeed there are applications -that do not require a 100\% coverage of the area to be monitored. PeCO might be -an interesting method since it achieves a good balance between a high level -coverage ratio and network lifetime. PeCO always outperforms DiLCO for the three -lower coverage ratios, moreover the improvements grow with the network -size. DiLCO is better for coverage ratios near 100\%, but in that case PeCO is -not ineffective for the smallest network sizes. - -\begin{figure}[h!] -\centering \includegraphics[scale=0.5]{figure9.eps} -\caption{Network lifetime for different coverage ratios.} -\label{figure9} -\end{figure} - - - - -\section{Conclusion and Future Works} -\label{sec:Conclusion and Future Works} - -In this paper we have studied the problem of Perimeter-based Coverage Optimization in -WSNs. We have designed a new protocol, called Perimeter-based Coverage Optimization, which -schedules nodes' activities (wake up and sleep stages) with the objective of -maintaining a good coverage ratio while maximizing the network lifetime. This -protocol is applied in a distributed way in regular subregions obtained after -partitioning the area of interest in a preliminary step. It works in periods and -is based on the resolution of an integer program to select the subset of sensors -operating in active status for each period. Our work is original in so far as it -proposes for the first time an integer program scheduling the activation of -sensors based on their perimeter coverage level, instead of using a set of -targets/points to be covered. - - -We have carried out several simulations to evaluate the proposed protocol. The -simulation results show that PeCO is more energy-efficient than other -approaches, with respect to lifetime, coverage ratio, active sensors ratio, and -energy consumption. - -We plan to extend our framework so that the schedules are planned for multiple -sensing periods. - -We also want to improve our integer program to take into account heterogeneous -sensors from both energy and node characteristics point of views. - -Finally, it would be interesting to implement our protocol using a -sensor-testbed to evaluate it in real world applications. - -\bibliographystyle{gENO} -\bibliography{biblio} - - -\end{document} +% gENOguide.tex +% v4.0 released April 2013 + +\documentclass{gENO2e} +%\usepackage[linesnumbered,ruled,vlined,commentsnumbered]{algorithm2e} +%\renewcommand{\algorithmcfname}{ALGORITHM} +\usepackage{indentfirst} +\begin{document} + +%\jvol{00} \jnum{00} \jyear{2013} \jmonth{April} + +%\articletype{GUIDE} + +\title{{\itshape Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks}} + +\author{Ali Kadhum Idrees$^{a}$, Karine Deschinkel$^{a}$$^{\ast}$\thanks{$^\ast$Corresponding author. Email: karine.deschinkel@univ-fcomte.fr}, Michel Salomon$^{a}$ and Rapha\"el Couturier $^{a}$ +$^{a}${\em{FEMTO-ST Institute, UMR 6174 CNRS, University of Franche-Comte, + Belfort, France}};} + + +\maketitle + +\begin{abstract} +The most important problem in a Wireless Sensor Network (WSN) is to optimize the +use of its limited energy provision, so that it can fulfill its monitoring task +as long as possible. Among known available approaches that can be used to +improve power management, lifetime coverage optimization provides activity +scheduling which ensures sensing coverage while minimizing the energy cost. We propose such an approach called Perimeter-based Coverage Optimization +protocol (PeCO). It is a hybrid of centralized and distributed methods: the +region of interest is first subdivided into subregions and our protocol is then +distributed among sensor nodes in each subregion. +The novelty of our approach lies essentially in the formulation of a new +mathematical optimization model based on the perimeter coverage level to schedule +sensors' activities. Extensive simulation experiments demonstrate that PeCO can +offer longer lifetime coverage for WSNs in comparison with some other protocols. + +\begin{keywords}Wireless Sensor Networks, Area Coverage, Energy efficiency, Optimization, Scheduling. +\end{keywords} + +\end{abstract} + + +\section{Introduction} +\label{sec:introduction} + +The continuous progress in Micro Electro-Mechanical Systems (MEMS) and +wireless communication hardware has given rise to the opportunity to use large +networks of tiny sensors, called Wireless Sensor Networks +(WSN)~\citep{akyildiz2002wireless,puccinelli2005wireless}, to fulfill monitoring +tasks. A WSN consists of small low-powered sensors working together by +communicating with one another through multi-hop radio communications. Each node +can send the data it collects in its environment, thanks to its sensor, to the +user by means of sink nodes. The features of a WSN made it suitable for a wide +range of application in areas such as business, environment, health, industry, +military, and so on~\citep{yick2008wireless}. Typically, a sensor node contains +three main components~\citep{anastasi2009energy}: a sensing unit able to measure +physical, chemical, or biological phenomena observed in the environment; a +processing unit which will process and store the collected measurements; a radio +communication unit for data transmission and receiving. + +The energy needed by an active sensor node to perform sensing, processing, and +communication is supplied by a power supply which is a battery. This battery has +a limited energy provision and it may be unsuitable or impossible to replace or +recharge it in most applications. Therefore it is necessary to deploy WSN with +high density in order to increase reliability and to exploit node redundancy +thanks to energy-efficient activity scheduling approaches. Indeed, the overlap +of sensing areas can be exploited to schedule alternatively some sensors in a +low power sleep mode and thus save energy. Overall, the main question that must +be answered is: how to extend the lifetime coverage of a WSN as long as possible +while ensuring a high level of coverage? These past few years many +energy-efficient mechanisms have been suggested to retain energy and extend the +lifetime of the WSNs~\citep{rault2014energy}.\\\\ +This paper makes the following contributions. +\begin{enumerate} +\item We have devised a framework to schedule nodes to be activated alternatively such + that the network lifetime is prolonged while ensuring that a certain level of + coverage is preserved. A key idea in our framework is to exploit spatial and + temporal subdivision. On the one hand, the area of interest is divided into + several smaller subregions and, on the other hand, the time line is divided into + periods of equal length. In each subregion the sensor nodes will cooperatively + choose a leader which will schedule nodes' activities, and this grouping of + sensors is similar to typical cluster architecture. +\item We have proposed a new mathematical optimization model. Instead of trying to + cover a set of specified points/targets as in most of the methods proposed in + the literature, we formulate an integer program based on perimeter coverage of + each sensor. The model involves integer variables to capture the deviations + between the actual level of coverage and the required level. Hence, an + optimal schedule will be obtained by minimizing a weighted sum of these + deviations. +\item We have conducted extensive simulation experiments, using the discrete event + simulator OMNeT++, to demonstrate the efficiency of our protocol. We have compared + our PeCO protocol to two approaches found in the literature: + DESK~\citep{ChinhVu} and GAF~\citep{xu2001geography}, and also to our previous + work published in~\citep{Idrees2} which is based on another optimization model + for sensor scheduling. +\end{enumerate} + + + + + + +The rest of the paper is organized as follows. In the next section we review +some related work in the field. Section~\ref{sec:The PeCO Protocol Description} +is devoted to the PeCO protocol description and Section~\ref{cp} focuses on the +coverage model formulation which is used to schedule the activation of sensor +nodes. Section~\ref{sec:Simulation Results and Analysis} presents simulations +results and discusses the comparison with other approaches. Finally, concluding +remarks are drawn and some suggestions are given for future works in +Section~\ref{sec:Conclusion and Future Works}. + +\section{Related Literature} +\label{sec:Literature Review} + +In this section, we summarize some related works regarding the +coverage problem and distinguish our PeCO protocol from the works presented in +the literature. + +The most discussed coverage problems in literature can be classified in three +categories~\citep{li2013survey} according to their respective monitoring +objective. Hence, area coverage \citep{Misra} means that every point inside a +fixed area must be monitored, while target coverage~\citep{yang2014novel} refers +to the objective of coverage for a finite number of discrete points called +targets, and barrier coverage~\citep{HeShibo,kim2013maximum} focuses on +preventing intruders from entering into the region of interest. In +\citep{Deng2012} authors transform the area coverage problem into the target +coverage one taking into account the intersection points among disks of sensors +nodes or between disk of sensor nodes and boundaries. In +\citep{Huang:2003:CPW:941350.941367} authors prove that if the perimeters of +sensors are sufficiently covered it will be the case for the whole area. They +provide an algorithm in $O(nd~log~d)$ time to compute the perimeter-coverage of +each sensor, where $d$ denotes the maximum number of sensors that are +neighbors to a sensor and $n$ is the total number of sensors in the +network. {\it In PeCO protocol, instead of determining the level of coverage of + a set of discrete points, our optimization model is based on checking the + perimeter-coverage of each sensor to activate a minimal number of sensors.} + +The major approach to extend network lifetime while preserving coverage is to +divide/organize the sensors into a suitable number of set covers (disjoint or +non-disjoint)\citep{wang2011coverage}, where each set completely covers a region of interest, and to +activate these set covers successively. The network activity can be planned in +advance and scheduled for the entire network lifetime or organized in periods, +and the set of active sensor nodes is decided at the beginning of each period +\citep{ling2009energy}. Active node selection is determined based on the problem +requirements (e.g. area monitoring, connectivity, or power efficiency). For +instance, \citet{jaggi2006} address the problem of maximizing +the lifetime by dividing sensors into the maximum number of disjoint subsets +such that each subset can ensure both coverage and connectivity. A greedy +algorithm is applied once to solve this problem and the computed sets are +activated in succession to achieve the desired network lifetime. +\citet{chin2007}, \citet{yan2008design}, \citet{pc10}, propose algorithms +working in a periodic fashion where a cover set is computed at the beginning of +each period. {\it Motivated by these works, PeCO protocol works in periods, + where each period contains a preliminary phase for information exchange and + decisions, followed by a sensing phase where one cover set is in charge of the + sensing task.} + +Various centralized and distributed approaches, or even a mixing of these two +concepts, have been proposed to extend the network lifetime \citep{zhou2009variable}. In distributed algorithms~\citep{Tian02,yangnovel,ChinhVu,qu2013distributed} each sensor decides of its +own activity scheduling after an information exchange with its neighbors. The +main interest of such an approach is to avoid long range communications and thus +to reduce the energy dedicated to the communications. Unfortunately, since each +node has only information on its immediate neighbors (usually the one-hop ones) +it may make a bad decision leading to a global suboptimal solution. Conversely, +centralized +algorithms~\citep{cardei2005improving,zorbas2010solving,pujari2011high} always +provide nearly or close to optimal solution since the algorithm has a global +view of the whole network. The disadvantage of a centralized method is obviously +its high cost in communications needed to transmit to a single node, the base +station which will globally schedule nodes' activities, and data from all the other +sensor nodes in the area. The price in communications can be huge since +long range communications will be needed. In fact the larger the WNS is, the +higher the communication and thus the energy cost are. {\it In order to be + suitable for large-scale networks, in the PeCO protocol, the area of interest + is divided into several smaller subregions, and in each one, a node called the + leader is in charge of selecting the active sensors for the current + period. Thus our protocol is scalable and is a globally distributed method, + whereas it is centralized in each subregion.} + +Various coverage scheduling algorithms have been developed these past few years. +Many of them, dealing with the maximization of the number of cover sets, are +heuristics. These heuristics involve the construction of a cover set by +including in priority the sensor nodes which cover critical targets, that is to +say targets that are covered by the smallest number of sensors +\citep{berman04,zorbas2010solving}. Other approaches are based on mathematical +programming formulations~\citep{cardei2005energy,5714480,pujari2011high,Yang2014} +and dedicated techniques (solving with a branch-and-bound algorithm available in +optimization solver). The problem is formulated as an optimization problem +(maximization of the lifetime or number of cover sets) under target coverage and +energy constraints. Column generation techniques, well-known and widely +practiced techniques for solving linear programs with too many variables, have +also been +used~\citep{castano2013column,doi:10.1080/0305215X.2012.687732,deschinkel2012column}. {\it In the PeCO + protocol, each leader, in charge of a subregion, solves an integer program + which has a twofold objective: minimize the overcoverage and the undercoverage + of the perimeter of each sensor.} + + + +\section{ The P{\scshape e}CO Protocol Description} +\label{sec:The PeCO Protocol Description} + +In this section, we describe in details our Perimeter-based Coverage +Optimization protocol. First we present the assumptions we made and the models +we considered (in particular the perimeter coverage one), second we describe the +background idea of our protocol, and third we give the outline of the algorithm +executed by each node. + + +\subsection{Assumptions and Models} +\label{CI} + +A WSN consisting of $J$ stationary sensor nodes randomly and uniformly +distributed in a bounded sensor field is considered. The wireless sensors are +deployed in high density to ensure initially a high coverage ratio of the area +of interest. We assume that all the sensor nodes are homogeneous in terms of +communication, sensing, and processing capabilities and heterogeneous from +the energy provision point of view. The location information is available to a +sensor node either through hardware such as embedded GPS or location discovery +algorithms. We assume that each sensor node can directly transmit its +measurements to a mobile sink node. For example, a sink can be an unmanned +aerial vehicle (UAV) flying regularly over the sensor field to collect +measurements from sensor nodes. A mobile sink node collects the measurements and +transmits them to the base station. We consider a Boolean disk coverage model, +which is the most widely used sensor coverage model in the literature, and all +sensor nodes have a constant sensing range $R_s$. Thus, all the space points +within a disk centered at a sensor with a radius equal to the sensing range are +said to be covered by this sensor. We also assume that the communication range +$R_c$ satisfies $R_c \geq 2 \cdot R_s$. In fact, \citet{Zhang05} +proved that if the transmission range fulfills the previous hypothesis, the +complete coverage of a convex area implies connectivity among active nodes. + +The PeCO protocol uses the same perimeter-coverage model as \citet{huang2005coverage}. It can be expressed as follows: a sensor is +said to be perimeter covered if all the points on its perimeter are covered by +at least one sensor other than itself. They proved that a network area is +$k$-covered if and only if each sensor in the network is $k$-perimeter-covered (perimeter covered by at least $k$ sensors). + +Figure~\ref{figure1}(a) shows the coverage of sensor node~$0$. On this +figure, we can see that sensor~$0$ has nine neighbors and we have reported on +its perimeter (the perimeter of the disk covered by the sensor) for each +neighbor the two points resulting from the intersection of the two sensing +areas. These points are denoted for neighbor~$i$ by $iL$ and $iR$, respectively +for left and right from a neighboing point of view. The resulting couples of +intersection points subdivide the perimeter of sensor~$0$ into portions called +arcs. + +\begin{figure}[ht!] + \centering + \begin{tabular}{@{}cr@{}} + \includegraphics[width=75mm]{figure1a.eps} & \raisebox{3.25cm}{(a)} \\ + \includegraphics[width=75mm]{figure1b.eps} & \raisebox{2.75cm}{(b)} + \end{tabular} + \caption{(a) Perimeter coverage of sensor node 0 and (b) finding the arc of + $u$'s perimeter covered by $v$.} + \label{figure1} +\end{figure} + +Figure~\ref{figure1}(b) describes the geometric information used to find the +locations of the left and right points of an arc on the perimeter of a sensor +node~$u$ covered by a sensor node~$v$. Node~$v$ is supposed to be located on the +west side of sensor~$u$, with the following respective coordinates in the +sensing area~: $(v_x,v_y)$ and $(u_x,u_y)$. From the previous coordinates we can +compute the euclidean distance between nodes~$u$ and $v$: $Dist(u,v)=\sqrt{\vert + u_x - v_x \vert^2 + \vert u_y-v_y \vert^2}$, while the angle~$\alpha$ is +obtained through the formula: + \[ +\alpha = \arccos \left(\frac{Dist(u,v)}{2R_s} +\right). +\] +The arc on the perimeter of~$u$ defined by the angular interval $[\pi + - \alpha,\pi + \alpha]$ is said to be perimeter-covered by sensor~$v$. + +Every couple of intersection points is placed on the angular interval $[0,2\pi)$ +in a counterclockwise manner, leading to a partitioning of the interval. +Figure~\ref{figure1}(a) illustrates the arcs for the nine neighbors of +sensor $0$ and Figure~\ref{figure2} gives the position of the corresponding arcs +in the interval $[0,2\pi)$. More precisely, we can see that the points are +ordered according to the measures of the angles defined by their respective +positions. The intersection points are then visited one after another, starting +from the first intersection point after point~zero, and the maximum level of +coverage is determined for each interval defined by two successive points. The +maximum level of coverage is equal to the number of overlapping arcs. For +example, +between~$5L$ and~$6L$ the maximum level of coverage is equal to $3$ +(the value is highlighted in yellow at the bottom of Figure~\ref{figure2}), which +means that at most 2~neighbors can cover the perimeter in addition to node $0$. +Table~\ref{my-label} summarizes for each coverage interval the maximum level of +coverage and the sensor nodes covering the perimeter. The example discussed +above is thus given by the sixth line of the table. + + +\begin{figure*}[t!] +\centering +\includegraphics[width=127.5mm]{figure2.eps} +\caption{Maximum coverage levels for perimeter of sensor node $0$.} +\label{figure2} +\end{figure*} + + + + + \begin{table} + \tbl{Coverage intervals and contributing sensors for sensor node 0 \label{my-label}} +{\begin{tabular}{|c|c|c|c|c|c|c|c|c|} +\hline +\begin{tabular}[c]{@{}c@{}}Left \\ point \\ angle~$\alpha$ \end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ left \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ right \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Maximum \\ coverage\\ level\end{tabular} & \multicolumn{5}{c|}{\begin{tabular}[c]{@{}c@{}}Set of sensors\\ involved \\ in coverage interval\end{tabular}} \\ \hline +0.0291 & 1L & 2L & 4 & 0 & 1 & 3 & 4 & \\ \hline +0.104 & 2L & 3R & 5 & 0 & 1 & 3 & 4 & 2 \\ \hline +0.3168 & 3R & 4R & 4 & 0 & 1 & 4 & 2 & \\ \hline +0.6752 & 4R & 1R & 3 & 0 & 1 & 2 & & \\ \hline +1.8127 & 1R & 5L & 2 & 0 & 2 & & & \\ \hline +1.9228 & 5L & 6L & 3 & 0 & 2 & 5 & & \\ \hline +2.3959 & 6L & 2R & 4 & 0 & 2 & 5 & 6 & \\ \hline +2.4258 & 2R & 7L & 3 & 0 & 5 & 6 & & \\ \hline +2.7868 & 7L & 8L & 4 & 0 & 5 & 6 & 7 & \\ \hline +2.8358 & 8L & 5R & 5 & 0 & 5 & 6 & 7 & 8 \\ \hline +2.9184 & 5R & 7R & 4 & 0 & 6 & 7 & 8 & \\ \hline +3.3301 & 7R & 9R & 3 & 0 & 6 & 8 & & \\ \hline +3.9464 & 9R & 6R & 4 & 0 & 6 & 8 & 9 & \\ \hline +4.767 & 6R & 3L & 3 & 0 & 8 & 9 & & \\ \hline +4.8425 & 3L & 8R & 4 & 0 & 3 & 8 & 9 & \\ \hline +4.9072 & 8R & 4L & 3 & 0 & 3 & 9 & & \\ \hline +5.3804 & 4L & 9R & 4 & 0 & 3 & 4 & 9 & \\ \hline +5.9157 & 9R & 1L & 3 & 0 & 3 & 4 & & \\ \hline +\end{tabular}} + + +\end{table} + + + + +In the PeCO protocol, the scheduling of the sensor nodes' activities is formulated with an +integer program based on coverage intervals. The formulation of the coverage +optimization problem is detailed in~Section~\ref{cp}. Note that when a sensor +node has a part of its sensing range outside the WSN sensing field, as in +Figure~\ref{figure3}, the maximum coverage level for this arc is set to $\infty$ +and the corresponding interval will not be taken into account by the +optimization algorithm. + + \newpage +\begin{figure}[h!] +\centering +\includegraphics[width=62.5mm]{figure3.eps} +\caption{Sensing range outside the WSN's area of interest.} +\label{figure3} +\end{figure} + + +\subsection{The Main Idea} + +The WSN area of interest is, in a first step, divided into regular +homogeneous subregions using a divide-and-conquer algorithm. In a second step +our protocol will be executed in a distributed way in each subregion +simultaneously to schedule nodes' activities for one sensing period. + +As shown in Figure~\ref{figure4}, node activity scheduling is produced by our +protocol in a periodic manner. Each period is divided into 4 stages: Information +(INFO) Exchange, Leader Election, Decision (the result of an optimization +problem), and Sensing. For each period there is exactly one set cover +responsible for the sensing task. Protocols based on a periodic scheme, like +PeCO, are more robust against an unexpected node failure. On the one hand, if +a node failure is discovered before taking the decision, the corresponding sensor +node will not be considered by the optimization algorithm. On the other +hand, if the sensor failure happens after the decision, the sensing task of the +network will be temporarily affected: only during the period of sensing until a +new period starts, since a new set cover will take charge of the sensing task in +the next period. The energy consumption and some other constraints can easily be +taken into account since the sensors can update and then exchange their +information (including their residual energy) at the beginning of each period. +However, the pre-sensing phases (INFO Exchange, Leader Election, and Decision) +are energy consuming, even for nodes that will not join the set cover to monitor +the area. + +\begin{figure}[t!] +\centering +\includegraphics[width=80mm]{figure4.eps} +\caption{PeCO protocol.} +\label{figure4} +\end{figure} + +We define two types of packets to be used by PeCO protocol: + +\begin{itemize} +\item INFO packet: sent by each sensor node to all the nodes inside a same + subregion for information exchange. +\item ActiveSleep packet: sent by the leader to all the nodes in its subregion + to transmit to them their respective status (stay Active or go Sleep) during + sensing phase. +\end{itemize} + + +Five statuses are possible for a sensor node in the network: + +\begin{itemize} +\item LISTENING: waits for a decision (to be active or not); +\item COMPUTATION: executes the optimization algorithm as leader to + determine the activities scheduling; +\item ACTIVE: node is sensing; +\item SLEEP: node is turned off; +\item COMMUNICATION: transmits or receives packets. +\end{itemize} + + +\subsection{PeCO Protocol Algorithm} + +The pseudocode implementing the protocol on a node is given below. +More precisely, Algorithm~\ref{alg:PeCO} gives a brief description of the +protocol applied by a sensor node $s_k$ where $k$ is the node index in the WSN. + + + +\begin{algorithm} + % \KwIn{all the parameters related to information exchange} +% \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)} +% \BlankLine + %\emph{Initialize the sensor node and determine it's position and subregion} \; + +\noindent{\bf If} $RE_k \geq E_{th}$ {\bf then}\\ +\hspace*{0.6cm} \emph{$s_k.status$ = COMMUNICATION;}\\ +\hspace*{0.6cm} \emph{Send $INFO()$ packet to other nodes in subregion;}\\ +\hspace*{0.6cm} \emph{Wait $INFO()$ packet from other nodes in subregion;}\\ +\hspace*{0.6cm} \emph{Update K.CurrentSize;}\\ +\hspace*{0.6cm} \emph{LeaderID = Leader election;}\\ +\hspace*{0.6cm} {\bf If} $ s_k.ID = LeaderID $ {\bf then}\\ +\hspace*{1.2cm} \emph{$s_k.status$ = COMPUTATION;}\\ +\hspace*{1.2cm}{\bf If} \emph{$ s_k.ID $ is Not previously selected as a Leader} {\bf then}\\ +\hspace*{1.8cm} \emph{ Execute the perimeter coverage model;}\\ +\hspace*{1.2cm} {\bf end}\\ +\hspace*{1.2cm}{\bf If} \emph{($s_k.ID $ is the same Previous Leader)~And~(K.CurrentSize = K.PreviousSize)}\\ +\hspace*{1.8cm} \emph{ Use the same previous cover set for current sensing stage;}\\ +\hspace*{1.2cm} {\bf end}\\ +\hspace*{1.2cm} {\bf else}\\ +\hspace*{1.8cm}\emph{Update $a^j_{ik}$; prepare data for IP~Algorithm;}\\ +\hspace*{1.8cm} \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$);}\\ +\hspace*{1.8cm} \emph{K.PreviousSize = K.CurrentSize;}\\ +\hspace*{1.2cm} {\bf end}\\ +\hspace*{1.2cm}\emph{$s_k.status$ = COMMUNICATION;}\\ +\hspace*{1.2cm}\emph{Send $ActiveSleep()$ to each node $l$ in subregion;}\\ +\hspace*{1.2cm}\emph{Update $RE_k $;}\\ +\hspace*{0.6cm} {\bf end}\\ +\hspace*{0.6cm} {\bf else}\\ +\hspace*{1.2cm}\emph{$s_k.status$ = LISTENING;}\\ +\hspace*{1.2cm}\emph{Wait $ActiveSleep()$ packet from the Leader;}\\ +\hspace*{1.2cm}\emph{Update $RE_k $;}\\ +\hspace*{0.6cm} {\bf end}\\ +{\bf end}\\ +{\bf else}\\ +\hspace*{0.6cm} \emph{Exclude $s_k$ from entering in the current sensing stage;}\\ +{\bf end}\\ +\label{alg:PeCO} +\end{algorithm} + + + +In this algorithm, K.CurrentSize and K.PreviousSize respectively represent the +current number and the previous number of living nodes in the subnetwork of the +subregion. Initially, the sensor node checks its remaining energy $RE_k$, which +must be greater than a threshold $E_{th}$ in order to participate in the current +period. Each sensor node determines its position and its subregion using an +embedded GPS or a location discovery algorithm. After that, all the sensors +collect position coordinates, remaining energy, sensor node ID, and the number +of their one-hop live neighbors during the information exchange. The sensors +inside a same region cooperate to elect a leader. The selection criteria for the +leader, in order of priority, are: larger numbers of neighbors, larger remaining +energy, and then in case of equality, larger index. Once chosen, the leader +collects information to formulate and solve the integer program which allows to +construct the set of active sensors in the sensing stage. + + +\section{Perimeter-based Coverage Problem Formulation} +\label{cp} + +In this section, the coverage model is mathematically formulated. We +start with a description of the notations that will be used throughout the +section.\\ +First, we have the following sets: +\begin{itemize} +\item $S$ represents the set of WSN sensor nodes; +\item $A \subseteq S $ is the subset of alive sensors; +\item $I_j$ designates the set of coverage intervals (CI) obtained for + sensor~$j$. +\end{itemize} +$I_j$ refers to the set of coverage intervals which have been defined according +to the method introduced in subsection~\ref{CI}. For a coverage interval $i$, +let $a^j_{ik}$ denotes the indicator function of whether sensor~$k$ is involved +in coverage interval~$i$ of sensor~$j$, that is: +\begin{equation} +a^j_{ik} = \left \{ +\begin{array}{lll} + 1 & \mbox{if sensor $k$ is involved in the } \\ + & \mbox{coverage interval $i$ of sensor $j$}, \\ + 0 & \mbox{otherwise.}\\ +\end{array} \right. +\end{equation} +Note that $a^k_{ik}=1$ by definition of the interval. + +Second, we define several binary and integer variables. Hence, each binary +variable $X_{k}$ determines the activation of sensor $k$ in the sensing phase +($X_k=1$ if the sensor $k$ is active or 0 otherwise). $M^j_i$ is an integer +variable which measures the undercoverage for the coverage interval $i$ +corresponding to sensor~$j$. In the same way, the overcoverage for the same +coverage interval is given by the variable $V^j_i$. + +If we decide to sustain a level of coverage equal to $l$ all along the perimeter +of sensor $j$, we have to ensure that at least $l$ sensors involved in each +coverage interval $i \in I_j$ of sensor $j$ are active. According to the +previous notations, the number of active sensors in the coverage interval $i$ of +sensor $j$ is given by $\sum_{k \in A} a^j_{ik} X_k$. To extend the network +lifetime, the objective is to activate a minimal number of sensors in each +period to ensure the desired coverage level. As the number of alive sensors +decreases, it becomes impossible to reach the desired level of coverage for all +coverage intervals. Therefore we use variables $M^j_i$ and $V^j_i$ as a measure +of the deviation between the desired number of active sensors in a coverage +interval and the effective number. And we try to minimize these deviations, +first to force the activation of a minimal number of sensors to ensure the +desired coverage level, and if the desired level cannot be completely satisfied, +to reach a coverage level as close as possible to the desired one. + + + + +Our coverage optimization problem can then be mathematically expressed as follows: + +\begin{equation} +\left \{ +\begin{array}{ll} +\min \sum_{j \in S} \sum_{i \in I_j} (\alpha^j_i ~ M^j_i + \beta^j_i ~ V^j_i )&\\ +\textrm{subject to :}&\\ +\sum_{k \in A} ( a^j_{ik} ~ X_{k}) + M^j_i \geq l \quad \forall i \in I_j, \forall j \in S\\ +\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i \leq l \quad \forall i \in I_j, \forall j \in S\\ +X_{k} \in \{0,1\}, \forall k \in A +\end{array} +\right. +\end{equation} + +$\alpha^j_i$ and $\beta^j_i$ are nonnegative weights selected according to the +relative importance of satisfying the associated level of coverage. For example, +weights associated with coverage intervals of a specified part of a region may +be given by a relatively larger magnitude than weights associated with another +region. This kind of integer program is inspired from the model developed for +brachytherapy treatment planning for optimizing dose distribution +\citep{0031-9155-44-1-012}. The integer program must be solved by the leader in +each subregion at the beginning of each sensing phase, whenever the environment +has changed (new leader, death of some sensors). Note that the number of +constraints in the model is constant (constraints of coverage expressed for all +sensors), whereas the number of variables $X_k$ decreases over periods, since we +consider only alive sensors (sensors with enough energy to be alive during one +sensing phase) in the model. + +\section{Performance Evaluation and Analysis} +\label{sec:Simulation Results and Analysis} + + +\subsection{Simulation Settings} + + +The WSN area of interest is supposed to be divided into 16~regular subregions +and we use the same energy consumption model as in our previous work~\citep{Idrees2}. +Table~\ref{table3} gives the chosen parameters settings. + +\begin{table}[ht] +\tbl{Relevant parameters for network initialization \label{table3}}{ + +\centering + +\begin{tabular}{c|c} + +\hline +Parameter & Value \\ [0.5ex] + +\hline +% inserts single horizontal line +Sensing field & $(50 \times 25)~m^2 $ \\ + +WSN size & 100, 150, 200, 250, and 300~nodes \\ + +Initial energy & in range 500-700~Joules \\ + +Sensing period & duration of 60 minutes \\ +$E_{th}$ & 36~Joules\\ +$R_s$ & 5~m \\ + +$\alpha^j_i$ & 0.6 \\ + +$\beta^j_i$ & 0.4 + +\end{tabular}} + + +\end{table} +To obtain experimental results which are relevant, simulations with five +different node densities going from 100 to 300~nodes were performed considering +each time 25~randomly generated networks. The nodes are deployed on a field of +interest of $(50 \times 25)~m^2 $ in such a way that they cover the field with a +high coverage ratio. Each node has an initial energy level, in Joules, which is +randomly drawn in the interval $[500-700]$. If its energy provision reaches a +value below the threshold $E_{th}=36$~Joules, the minimum energy needed for a +node to stay active during one period, it will no longer participate in the +coverage task. This value corresponds to the energy needed by the sensing phase, +obtained by multiplying the energy consumed in the active state (9.72 mW) with the +time in seconds for one period (3600 seconds), and adding the energy for the +pre-sensing phases. According to the interval of initial energy, a sensor may +be active during at most 20 periods. + +The values of $\alpha^j_i$ and $\beta^j_i$ have been chosen to ensure a good +network coverage and a longer WSN lifetime. We have given a higher priority to +the undercoverage (by setting the $\alpha^j_i$ with a larger value than +$\beta^j_i$) so as to prevent the non-coverage for the interval~$i$ of the +sensor~$j$. On the other hand, we have assigned to +$\beta^j_i$ a value which is slightly lower so as to minimize the number of active sensor nodes which contribute +in covering the interval. + +We introduce the following performance metrics to evaluate the efficiency of our +approach. + + +\begin{itemize} +\item {\bf Network Lifetime}: the lifetime is defined as the time elapsed until + the coverage ratio falls below a fixed threshold. $Lifetime_{95}$ and + $Lifetime_{50}$ denote, respectively, the amount of time during which is + guaranteed a level of coverage greater than $95\%$ and $50\%$. The WSN can + fulfill the expected monitoring task until all its nodes have depleted their + energy or if the network is no more connected. This last condition is crucial + because without network connectivity a sensor may not be able to send to a + base station an event it has sensed. +\item {\bf Coverage Ratio (CR)} : it measures how well the WSN is able to + observe the area of interest. In our case, we discretized the sensor field as + a regular grid, which yields the following equation: + + +\[ + \scriptsize + \mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100 +\] + + + where $n$ is the number of covered grid points by active sensors of every + subregions during the current sensing phase and $N$ is total number of grid + points in the sensing field. In our simulations we have set a layout of + $N~=~51~\times~26~=~1326$~grid points. +\item {\bf Active Sensors Ratio (ASR)}: a major objective of our protocol is to + activate as few nodes as possible, in order to minimize the communication + overhead and maximize the WSN lifetime. The active sensors ratio is defined as + follows: + +\[ + \scriptsize + \mbox{ASR}(\%) = \frac{\sum\limits_{r=1}^R \mbox{$|A_r^p|$}}{\mbox{$|J|$}} \times 100 +\] + + where $|A_r^p|$ is the number of active sensors in the subregion $r$ in the + current sensing period~$p$, $|J|$ is the number of sensors in the network, and + $R$ is the number of subregions. +\item {\bf Energy Consumption (EC)}: energy consumption can be seen as the total + energy consumed by the sensors during $Lifetime_{95}$ or $Lifetime_{50}$, + divided by the number of periods. The value of EC is computed according to + this formula: + +\[ + \scriptsize + \mbox{EC} = \frac{\sum\limits_{p=1}^{P} \left( E^{\mbox{com}}_p+E^{\mbox{list}}_p+E^{\mbox{comp}}_p + + E^{a}_p+E^{s}_p \right)}{P}, +\] + + where $P$ corresponds to the number of periods. The total energy consumed by + the sensors comes through taking into consideration four main energy + factors. The first one, denoted $E^{\scriptsize \mbox{com}}_p$, represents the + energy consumption spent by all the nodes for wireless communications during + period $p$. $E^{\scriptsize \mbox{list}}_p$, the next factor, corresponds to + the energy consumed by the sensors in LISTENING status before receiving the + decision to go active or sleep in period $p$. $E^{\scriptsize \mbox{comp}}_p$ + refers to the energy needed by all the leader nodes to solve the integer + program during a period. Finally, $E^a_{p}$ and $E^s_{p}$ indicate the energy + consumed by the WSN during the sensing phase (active and sleeping nodes). +\end{itemize} + + +\subsection{Simulation Results} + +In order to assess and analyze the performance of our protocol we have +implemented PeCO protocol in OMNeT++~\citep{varga} simulator. Besides PeCO, two +other protocols, described in the next paragraph, will be evaluated for +comparison purposes. The simulations were run on a DELL laptop with an Intel +Core~i3~2370~M (1.8~GHz) processor (2 cores) whose MIPS (Million Instructions +Per Second) rate is equal to 35330. To be consistent with the use of a sensor +node based on Atmels AVR ATmega103L microcontroller (6~MHz) having a MIPS rate +equal to 6, the original execution time on the laptop is multiplied by 2944.2 +$\left(\frac{35330}{2} \times \frac{1}{6} \right)$. The modeling language for +Mathematical Programming (AMPL)~\citep{AMPL} is employed to generate the integer +program instance in a standard format, which is then read and solved by the +optimization solver GLPK (GNU linear Programming Kit available in the public +domain) \citep{glpk} through a Branch-and-Bound method. + +As said previously, the PeCO is compared to three other approaches. The first +one, called DESK, is a fully distributed coverage algorithm proposed by +\citep{ChinhVu}. The second one, called GAF~\citep{xu2001geography}, consists in +dividing the monitoring area into fixed squares. Then, during the decision +phase, in each square, one sensor is chosen to remain active during the sensing +phase. The last one, the DiLCO protocol~\citep{Idrees2}, is an improved version +of a research work we presented in~\citep{idrees2014coverage}. Let us notice that +PeCO and DiLCO protocols are based on the same framework. In particular, the +choice for the simulations of a partitioning in 16~subregions was made because +it corresponds to the configuration producing the best results for DiLCO. The +protocols are distinguished from one another by the formulation of the integer +program providing the set of sensors which have to be activated in each sensing +phase. DiLCO protocol tries to satisfy the coverage of a set of primary points, +whereas the PeCO protocol objective is to reach a desired level of coverage for each +sensor perimeter. In our experimentations, we chose a level of coverage equal to +one ($l=1$). + +\subsubsection{\bf Coverage Ratio} + +Figure~\ref{figure5} shows the average coverage ratio for 200 deployed nodes +obtained with the four protocols. DESK, GAF, and DiLCO provide a slightly better +coverage ratio with respectively 99.99\%, 99.91\%, and 99.02\%, compared to the 98.76\% +produced by PeCO for the first periods. This is due to the fact that at the +beginning the DiLCO protocol puts to sleep status more redundant sensors (which +slightly decreases the coverage ratio), while the three other protocols activate +more sensor nodes. Later, when the number of periods is beyond~70, it clearly +appears that PeCO provides a better coverage ratio and keeps a coverage ratio +greater than 50\% for longer periods (15 more compared to DiLCO, 40 more +compared to DESK). The energy saved by PeCO in the early periods allows later a +substantial increase of the coverage performance. + +\parskip 0pt +\begin{figure}[h!] +\centering + \includegraphics[scale=0.5] {figure5.eps} +\caption{Coverage ratio for 200 deployed nodes.} +\label{figure5} +\end{figure} + + + + +\subsubsection{\bf Active Sensors Ratio} + +Having the less active sensor nodes in each period is essential to minimize the +energy consumption and thus to maximize the network lifetime. Figure~\ref{figure6} +shows the average active nodes ratio for 200 deployed nodes. We observe that +DESK and GAF have 30.36 \% and 34.96 \% active nodes for the first fourteen +rounds and DiLCO and PeCO protocols compete perfectly with only 17.92~\% and +20.16~\% active nodes during the same time interval. As the number of periods +increases, PeCO protocol has a lower number of active nodes in comparison with +the three other approaches, while keeping a greater coverage ratio as shown in +Figure \ref{figure5}. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{figure6.eps} +\caption{Active sensors ratio for 200 deployed nodes.} +\label{figure6} +\end{figure} + +\subsubsection{\bf Energy Consumption} + +We studied the effect of the energy consumed by the WSN during the communication, +computation, listening, active, and sleep status for different network densities +and compared it for the four approaches. Figures~\ref{figure7}(a) and (b) +illustrate the energy consumption for different network sizes and for +$Lifetime95$ and $Lifetime50$. The results show that our PeCO protocol is the +most competitive from the energy consumption point of view. As shown in both +figures, PeCO consumes much less energy than the three other methods. One might +think that the resolution of the integer program is too costly in energy, but +the results show that it is very beneficial to lose a bit of time in the +selection of sensors to activate. Indeed the optimization program allows to +reduce significantly the number of active sensors and so the energy consumption +while keeping a good coverage level. + +\begin{figure}[h!] + \centering + \begin{tabular}{@{}cr@{}} + \includegraphics[scale=0.475]{figure7a.eps} & \raisebox{2.75cm}{(a)} \\ + \includegraphics[scale=0.475]{figure7b.eps} & \raisebox{2.75cm}{(b)} + \end{tabular} + \caption{Energy consumption per period for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.} + \label{figure7} +\end{figure} + + + +\subsubsection{\bf Network Lifetime} + +We observe the superiority of PeCO and DiLCO protocols in comparison with the +two other approaches in prolonging the network lifetime. In +Figures~\ref{figure8}(a) and (b), $Lifetime95$ and $Lifetime50$ are shown for +different network sizes. As highlighted by these figures, the lifetime +increases with the size of the network, and it is clearly largest for DiLCO +and PeCO protocols. For instance, for a network of 300~sensors and coverage +ratio greater than 50\%, we can see on Figure~\ref{figure8}(b) that the lifetime +is about twice longer with PeCO compared to DESK protocol. The performance +difference is more obvious in Figure~\ref{figure8}(b) than in +Figure~\ref{figure8}(a) because the gain induced by our protocols increases with + time, and the lifetime with a coverage of 50\% is far longer than with +95\%. + +\begin{figure}[h!] + \centering + \begin{tabular}{@{}cr@{}} + \includegraphics[scale=0.475]{figure8a.eps} & \raisebox{2.75cm}{(a)} \\ + \includegraphics[scale=0.475]{figure8b.eps} & \raisebox{2.75cm}{(b)} + \end{tabular} + \caption{Network Lifetime for (a)~$Lifetime_{95}$ \\ + and (b)~$Lifetime_{50}$.} + \label{figure8} +\end{figure} + + + +Figure~\ref{figure9} compares the lifetime coverage of our protocols for +different coverage ratios. We denote by Protocol/50, Protocol/80, Protocol/85, +Protocol/90, and Protocol/95 the amount of time during which the network can +satisfy an area coverage greater than $50\%$, $80\%$, $85\%$, $90\%$, and $95\%$ +respectively, where the term Protocol refers to DiLCO or PeCO. Indeed there are applications +that do not require a 100\% coverage of the area to be monitored. PeCO might be +an interesting method since it achieves a good balance between a high level +coverage ratio and network lifetime. PeCO always outperforms DiLCO for the three +lower coverage ratios, moreover the improvements grow with the network +size. DiLCO is better for coverage ratios near 100\%, but in that case PeCO is +not ineffective for the smallest network sizes. + +\begin{figure}[h!] +\centering \includegraphics[scale=0.5]{figure9.eps} +\caption{Network lifetime for different coverage ratios.} +\label{figure9} +\end{figure} + + + + +\section{Conclusion and Future Works} +\label{sec:Conclusion and Future Works} + +In this paper we have studied the problem of Perimeter-based Coverage Optimization in +WSNs. We have designed a new protocol, called Perimeter-based Coverage Optimization, which +schedules nodes' activities (wake up and sleep stages) with the objective of +maintaining a good coverage ratio while maximizing the network lifetime. This +protocol is applied in a distributed way in regular subregions obtained after +partitioning the area of interest in a preliminary step. It works in periods and +is based on the resolution of an integer program to select the subset of sensors +operating in active status for each period. Our work is original in so far as it +proposes for the first time an integer program scheduling the activation of +sensors based on their perimeter coverage level, instead of using a set of +targets/points to be covered. + + +We have carried out several simulations to evaluate the proposed protocol. The +simulation results show that PeCO is more energy-efficient than other +approaches, with respect to lifetime, coverage ratio, active sensors ratio, and +energy consumption. + +We plan to extend our framework so that the schedules are planned for multiple +sensing periods. + +We also want to improve our integer program to take into account heterogeneous +sensors from both energy and node characteristics point of views. + +Finally, it would be interesting to implement our protocol using a +sensor-testbed to evaluate it in real world applications. + +\bibliographystyle{gENO} +\bibliography{biblio} + + +\end{document} -- 2.39.5