From 3786874811521a4a17d6dce861d30a503b61c48a Mon Sep 17 00:00:00 2001 From: ali Date: Sat, 28 Feb 2015 23:58:13 +0100 Subject: [PATCH 1/1] Update by Ali --- CHAPITRE_03.tex | 918 +++----------- CHAPITRE_04.tex | 1024 ++++++++++------ CHAPITRE_05.tex | 933 +++++++------- Figures/ch3/FirstModel.pdf | Bin 70337 -> 0 bytes Figures/ch3/R1/ASR.pdf | Bin 11796 -> 0 bytes Figures/ch3/R1/CR.pdf | Bin 11606 -> 0 bytes Figures/ch3/R1/EC50.pdf | Bin 8345 -> 0 bytes Figures/ch3/R1/EC95.pdf | Bin 8523 -> 0 bytes Figures/ch3/R1/LT50.pdf | Bin 8183 -> 0 bytes Figures/ch3/R1/LT95.pdf | Bin 8037 -> 0 bytes Figures/ch3/R1/SR.pdf | Bin 9228 -> 0 bytes Figures/ch3/R1/T.eps | 913 -------------- Figures/ch3/R1/T.pdf | Bin 8212 -> 0 bytes Figures/ch3/R1/T.ps | 899 -------------- Figures/ch3/R2/ASR.pdf | Bin 12086 -> 0 bytes Figures/ch3/R2/CR.pdf | Bin 12028 -> 0 bytes Figures/ch3/R2/EC50.pdf | Bin 7963 -> 0 bytes Figures/ch3/R2/EC95.pdf | Bin 7991 -> 0 bytes Figures/ch3/R2/LT50.pdf | Bin 7976 -> 0 bytes Figures/ch3/R2/LT95.pdf | Bin 7918 -> 0 bytes Figures/ch3/R2/SR.pdf | Bin 8612 -> 0 bytes Figures/ch3/R2/T.eps | 945 --------------- Figures/ch3/R2/T.pdf | Bin 7948 -> 0 bytes Figures/ch3/R2/T.ps | 931 -------------- Figures/ch3/R3/ASR.pdf | Bin 11798 -> 0 bytes Figures/ch3/R3/CR.pdf | Bin 11999 -> 0 bytes Figures/ch3/R3/EC50.pdf | Bin 8246 -> 0 bytes Figures/ch3/R3/EC95.pdf | Bin 8255 -> 0 bytes Figures/ch3/R3/LT50.pdf | Bin 8324 -> 0 bytes Figures/ch3/R3/LT95.pdf | Bin 8324 -> 0 bytes Figures/ch3/R3/SR.pdf | Bin 9148 -> 0 bytes Figures/ch3/fig21.pdf | Bin 50967 -> 0 bytes Figures/ch3/fig22.pdf | Bin 52655 -> 0 bytes Figures/ch3/fig23.pdf | Bin 54891 -> 0 bytes Figures/ch3/fig24.pdf | Bin 59081 -> 0 bytes Figures/ch3/fig25.pdf | Bin 60619 -> 0 bytes Figures/ch3/fig26.pdf | Bin 62812 -> 0 bytes Figures/ch3/fig27.pdf | Bin 62906 -> 0 bytes Figures/ch3/principles13.pdf | Bin 57812 -> 0 bytes Figures/ch4/GeneralModel.jpg | Bin 93904 -> 0 bytes Figures/ch4/Modelgeneral.pdf | Bin 93022 -> 0 bytes Figures/ch4/R1/ASR.pdf | Bin 13766 -> 11796 bytes Figures/ch4/R1/CR.pdf | Bin 13978 -> 11606 bytes Figures/ch4/R1/EC50.pdf | Bin 8677 -> 8345 bytes Figures/ch4/R1/EC95.pdf | Bin 8742 -> 8523 bytes Figures/ch4/R1/LT50.pdf | Bin 8807 -> 8183 bytes Figures/ch4/R1/LT95.pdf | Bin 8613 -> 8037 bytes Figures/ch4/R1/SR.pdf | Bin 10792 -> 9228 bytes Figures/ch4/R1/T.pdf | Bin 7931 -> 8212 bytes Figures/ch5/Model.pdf | Bin 95995 -> 0 bytes Figures/ch5/R/ASR-eps-converted-to.pdf | Bin 12695 -> 0 bytes Figures/ch5/R/ASR.eps | 1472 ----------------------- Figures/ch5/R/ASR.pdf | Bin 12695 -> 0 bytes Figures/ch5/R/CR-eps-converted-to.pdf | Bin 12638 -> 0 bytes Figures/ch5/R/CR.eps | 1472 ----------------------- Figures/ch5/R/CR.pdf | Bin 12638 -> 0 bytes Figures/ch5/R/EC50-eps-converted-to.pdf | Bin 8180 -> 0 bytes Figures/ch5/R/EC50.eps | 882 -------------- Figures/ch5/R/EC50.pdf | Bin 8180 -> 0 bytes Figures/ch5/R/EC95-eps-converted-to.pdf | Bin 8179 -> 0 bytes Figures/ch5/R/EC95.eps | 882 -------------- Figures/ch5/R/EC95.pdf | Bin 8179 -> 0 bytes Figures/ch5/R/LT50-eps-converted-to.pdf | Bin 8466 -> 0 bytes Figures/ch5/R/LT50.eps | 942 --------------- Figures/ch5/R/LT50.pdf | Bin 8466 -> 0 bytes Figures/ch5/R/LT95-eps-converted-to.pdf | Bin 8351 -> 0 bytes Figures/ch5/R/LT95.eps | 882 -------------- Figures/ch5/R/LT95.pdf | Bin 8351 -> 0 bytes Figures/ch5/R/LTa-eps-converted-to.pdf | Bin 7927 -> 0 bytes Figures/ch5/R/LTa.eps | 1000 --------------- Figures/ch5/R/LTa.pdf | Bin 7927 -> 0 bytes Figures/ch5/ex4pcm.jpg | Bin 40413 -> 0 bytes Figures/ch5/ex5pcm.jpg | Bin 110151 -> 0 bytes Figures/ch5/expcm.pdf | Bin 166541 -> 0 bytes Figures/ch5/expcm2.jpg | Bin 120585 -> 0 bytes Figures/ch5/pcm.jpg | Bin 66915 -> 0 bytes Figures/ch5/twosensors.jpg | Bin 50265 -> 0 bytes Thesis.tex | 9 +- Thesis.toc | 111 +- bib.bib | 367 ++++++ entete.tex | 6 +- 81 files changed, 1735 insertions(+), 12853 deletions(-) delete mode 100644 Figures/ch3/FirstModel.pdf delete mode 100644 Figures/ch3/R1/ASR.pdf delete mode 100644 Figures/ch3/R1/CR.pdf delete mode 100644 Figures/ch3/R1/EC50.pdf delete mode 100644 Figures/ch3/R1/EC95.pdf delete mode 100644 Figures/ch3/R1/LT50.pdf delete mode 100644 Figures/ch3/R1/LT95.pdf delete mode 100644 Figures/ch3/R1/SR.pdf delete mode 100644 Figures/ch3/R1/T.eps delete mode 100644 Figures/ch3/R1/T.pdf delete mode 100644 Figures/ch3/R1/T.ps delete mode 100644 Figures/ch3/R2/ASR.pdf delete mode 100644 Figures/ch3/R2/CR.pdf delete mode 100644 Figures/ch3/R2/EC50.pdf delete mode 100644 Figures/ch3/R2/EC95.pdf delete mode 100644 Figures/ch3/R2/LT50.pdf delete mode 100644 Figures/ch3/R2/LT95.pdf delete mode 100644 Figures/ch3/R2/SR.pdf delete mode 100644 Figures/ch3/R2/T.eps delete mode 100644 Figures/ch3/R2/T.pdf delete mode 100644 Figures/ch3/R2/T.ps delete mode 100644 Figures/ch3/R3/ASR.pdf delete mode 100644 Figures/ch3/R3/CR.pdf delete mode 100644 Figures/ch3/R3/EC50.pdf delete mode 100644 Figures/ch3/R3/EC95.pdf delete mode 100644 Figures/ch3/R3/LT50.pdf delete mode 100644 Figures/ch3/R3/LT95.pdf delete mode 100644 Figures/ch3/R3/SR.pdf delete mode 100644 Figures/ch3/fig21.pdf delete mode 100644 Figures/ch3/fig22.pdf delete mode 100644 Figures/ch3/fig23.pdf delete mode 100644 Figures/ch3/fig24.pdf delete mode 100644 Figures/ch3/fig25.pdf delete mode 100644 Figures/ch3/fig26.pdf delete mode 100644 Figures/ch3/fig27.pdf delete mode 100644 Figures/ch3/principles13.pdf delete mode 100644 Figures/ch4/GeneralModel.jpg delete mode 100644 Figures/ch4/Modelgeneral.pdf delete mode 100644 Figures/ch5/Model.pdf delete mode 100644 Figures/ch5/R/ASR-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/ASR.eps delete mode 100644 Figures/ch5/R/ASR.pdf delete mode 100644 Figures/ch5/R/CR-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/CR.eps delete mode 100644 Figures/ch5/R/CR.pdf delete mode 100644 Figures/ch5/R/EC50-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/EC50.eps delete mode 100644 Figures/ch5/R/EC50.pdf delete mode 100644 Figures/ch5/R/EC95-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/EC95.eps delete mode 100644 Figures/ch5/R/EC95.pdf delete mode 100644 Figures/ch5/R/LT50-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/LT50.eps delete mode 100644 Figures/ch5/R/LT50.pdf delete mode 100644 Figures/ch5/R/LT95-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/LT95.eps delete mode 100644 Figures/ch5/R/LT95.pdf delete mode 100644 Figures/ch5/R/LTa-eps-converted-to.pdf delete mode 100644 Figures/ch5/R/LTa.eps delete mode 100644 Figures/ch5/R/LTa.pdf delete mode 100644 Figures/ch5/ex4pcm.jpg delete mode 100644 Figures/ch5/ex5pcm.jpg delete mode 100644 Figures/ch5/expcm.pdf delete mode 100644 Figures/ch5/expcm2.jpg delete mode 100644 Figures/ch5/pcm.jpg delete mode 100644 Figures/ch5/twosensors.jpg diff --git a/CHAPITRE_03.tex b/CHAPITRE_03.tex index 0d9bea9..9c63893 100644 --- a/CHAPITRE_03.tex +++ b/CHAPITRE_03.tex @@ -1,825 +1,289 @@ + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% -%% CHAPTER 03 %% +%% CHAPTER 04 %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks} -\label{ch3} - - - -\section{Summary} -\label{ch3:sec:01} -In this chapter, a Distributed Lifetime Coverage Optimization protocol (DiLCO) to maintain -the coverage and to improve the lifetime in wireless sensor networks is -proposed. The area of interest is first divided into subregions using a -divide-and-conquer method and then the DiLCO protocol is distributed on the -sensor nodes in each subregion. The DiLCO combines two efficient techniques: -leader election for each subregion, followed by an optimization-based planning -of activity scheduling decisions for each subregion. The proposed DiLCO works -into rounds during which a small number of nodes, remaining active for sensing, -is selected to ensure coverage so as to maximize the lifetime of wireless sensor -network. Each round consists of four phases: (i)~Information Exchange, -(ii)~Leader Election, (iii)~Decision, and (iv)~Sensing. The decision process is -carried out by a leader node, which solves an integer program. Compared with -some existing protocols, simulation results show that the proposed protocol can -prolong the network lifetime and improve the coverage performance effectively. - - -\section{Description of the DiLCO Protocol} -\label{ch3:sec:02} - -\noindent In this section, we introduce the DiLCO protocol which is distributed on each subregion in the area of interest. It is based on two efficient -techniques: network leader election and sensor activity scheduling for coverage preservation and energy conservation, applied periodically to efficiently -maximize the lifetime in the network. - -\subsection{Assumptions and Network Model} -\label{ch3:sec:02:01} -\noindent We consider a sensor network composed of static nodes distributed independently and uniformly at random. A high density deployment ensures a high -coverage ratio of the interested area at the start. The nodes are supposed to have homogeneous characteristics from a communication and a processing point of -view, whereas they have heterogeneous energy provisions. Each node has access to its location thanks, either to a hardware component (like a GPS unit), or a -location discovery algorithm. Furthermore, we assume that sensor nodes are time synchronized in order to properly coordinate their operations to achieve complex sensing tasks~\cite{ref157}. The two sensor nodes have been supposed a neighbors if the euclidean distance between them is at most equal to 2$R_s$. +\chapter{Evaluation Tools and Optimization Solvers} +\label{ch03} + +%%-------------------------------------------------------------------------------------------------------%% +\section{Introduction} + Performance evaluation and optimization solvers are important tools and they are received a great interest by many researchers around the world. In the last few years, several intensive researches have been done about the WSNs, and for a large range of real world applications. Therefore, the performance evaluation of algorithms and protocols becomes challenging at various stages of design, development and implementation. In order to perform an efficient deployment, it is desirable to analyze the performance of the newly designed algorithms and protocols in WSNs. Performance evaluation tools are became precious means for evaluating the efficiency of algorithms and protocols in WSNs. +On the other side, the main challenges in the design of WSNs have given rise to a new hard and complex theoretical problems in optimization area. These optimization problems are related to several topics in WSNs such as coverage, topology control, scheduling, routing, mobility, etc. So, the optimization is very important in WSNs because the limited resources of the sensor nodes. For this reason, several proposed optimization problems are mathematically formulated so as to optimize the network lifetime and satisfy the application requirements. Therefore, in order to get the optimal solutions for these mathematical optimization problems, the optimization solver is the best candidate tool to solve them. The optimization solver takes mathematical optimization problem descriptions in a certain file format and calculate their optimal solution. + + +\section{Evaluation Tools} +Several proposed works in WSNs require to evaluate the power depletion efficiently and accurately for network lifetime prediction. On the other hand, the wrong energy evaluation leads to waste of energy because the sensor nodes might be rendered useless long time before draining their energy. Furthermore, the sensor nodes might die in advance of the expected lifetime. However, evaluation experiments on actual deployed WSN suffer some constraints because the large number of sensor nodes, which are deployed in a hostile and inaccessible environments. Furthermore, the analytical (or theoretical) models might be unrealistic for real world systems. +Therefore, the energy consumption results by simulation and testbed evaluations give an alternative on time, precision and cost. In addition, the researchers can also evaluate and test their proposed works with simulation tools as well as testbed devices. +Two main evaluation tools for evaluating and validating large-scale wireless sensor networks performance: testbeds and simulations~\cite{ref176}. + -\indent We consider a boolean disk coverage model which is the most widely used sensor coverage model in the literature. Thus, since a sensor has a constant -sensing range $R_s$, every space points within a disk centered at a sensor with the radius of the sensing range is said to be covered by this sensor. We also -assume that the communication range $R_c$ is at least twice the sensing range $R_s$ (i.e., $R_c \geq 2R_s$). In fact, Zhang and Hou~\cite{ref126} proved that if the transmission range fulfills the previous hypothesis, a complete coverage of a convex area implies connectivity among the working nodes in the active mode. 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) is 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. -During the execution of the DiLCO protocol, two kinds of packet will be used: +\subsection{Testbed Tools} %~\cite{ref180} + +The testbed-based evaluations are necessary before deploying the WSN because it provides more realistic results for the complex physical phenomena constraints of the real world. In this section, only some testbeds are explained. These testbeds enable researchers and programmers to validate the performance of their algorithms and protocols on a physical network. More extensive details about testbeds are available in~\cite{ref178,ref178}. \begin{enumerate} [(i)] -\item \textbf{INFO packet:} sent by each sensor node to all the nodes inside a same subregion for information exchange. -\item \textbf{ActiveSleep packet:} sent by the leader to all the nodes in its subregion to inform them to stay Active or to go Sleep during the sensing phase. -\end{enumerate} -There are five possible status for each sensor node in the network: -%and each sensor node will have five possible status in the network: -\begin{enumerate}[(i)] -\item \textbf{LISTENING:} sensor is waiting for a decision (to be active or not). -\item \textbf{COMPUTATION:} sensor applies the optimization process as leader. -\item \textbf{ACTIVE:} sensor is active. -\item \textbf{SLEEP:} sensor is turned off. -\item \textbf{COMMUNICATION:} sensor is transmitting or receiving packet. +\item \textbf{MoteLab:} + +MoteLab~\cite{ref181,ref182} is a WSN testbed developed at the electrical and computer engineering department of Harvard University. It is a public testbed, researchers can execute their WSN systems using a web-based interface. Authored researchers develop and test their applications and protocols on sensor nodes and visualize sensor nodes output via web-based interface. They are allowed to upload their executable files to run on real mote. Each mote is wall powered and is connected to a central server that offers scheduling, reprogramming and data logging. It is composed of 190 TMote Sky wireless sensor nodes. The wireless sensor node specifications are a TI MSP430 processor, 10 KB RAM, 1Mb flash, and Chipcon CC2420 radio. Each node is connected to the Ethernet. The users should be familiar with NesC programming language because the MoteLab only supports the TinyOS operating system. + +\item \textbf{WISBED:} + +The WISEBED~\cite{ref183} is a large-scale WSN testbed with a hierarchical architecture that consists of four major parts: wireless sensor nodes, gateways, portal server, and overlay network. The lowest level of the hierarchy includes WSN and a set of the these sensor nodes are connected to the gateway to provide access to the attached sensor nodes. The gateways are connected to a portal server which not only supervises the WSN but it also allows to user interaction with the testbed, where each WISBED site includes separate portal server. The principal objectives of WISEBED are: heterogeneous WSN testbed, WSN testbed virtualization, facilitate the system evaluation by end users via variety of interfaces and software environment. + + + +\item \textbf{IoT-LAB:} + + IoT-LAB testbed~\cite{ref184,ref185} supplies a very large scale infrastructure service appropriate for evaluating small wireless sensor devices and heterogeneous communicating objects. IoT-LAB includes more than 2700 wireless sensor nodes deployed over six different regions in France. A different kinds of wireless sensor nodes are available, with different processor architectures (MSP430, STM32 and Cortex-A8) and different wireless chips (802.15.4 PHY @ 800 MHz or 2.4 GHz). Sensor nodes are either mobile or fixed and can be used in different topologies throughout all the regions. +IoT-LAB provides web-based reservation and tooling for protocols and applications development, along with direct command-line access to the platform. Wireless sensor nodes firmwares can be constructed from source and deployed on reserved nodes, application activity can be controlled and observed, power consumption or radio interference can be measured using the offered tools. IoT-LAB is part of the FIT experimental platform, a set of supplementary elements that enable experimentation on innovative services for academic and industrial users. + + \end{enumerate} -\subsection{Primary Point Coverage Model} -\label{ch3:sec:02:02} -\indent Instead of working with the coverage area, we consider for each -sensor a set of points called primary points. We also assume that the -sensing disk defined by a sensor is covered if all the primary points of -this sensor are covered. By knowing the position (point center: ($p_x,p_y$)) of a wireless -sensor node and its $R_s$, we calculate the primary points directly -based on the proposed model. We use these primary points (that can be -increased or decreased if necessary) as references to ensure that the -monitored region of interest is covered by the selected set of -sensors, instead of using all the points in the area. - -\indent We can calculate the positions of the selected primary -points in the circle disk of the sensing range of a wireless sensor -node (see figure~\ref{fig1}) as follows:\\ -$(p_x,p_y)$ = point center of wireless sensor node\\ -$X_1=(p_x,p_y)$ \\ -$X_2=( p_x + R_s * (1), p_y + R_s * (0) )$\\ -$X_3=( p_x + R_s * (-1), p_y + R_s * (0)) $\\ -$X_4=( p_x + R_s * (0), p_y + R_s * (1) )$\\ -$X_5=( p_x + R_s * (0), p_y + R_s * (-1 )) $\\ -$X_6= ( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (0)) $\\ -$X_7=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (0))$\\ -$X_8=( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\ -$X_9=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\ -$X_{10}=( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\ -$X_{11}=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\ -$X_{12}=( p_x + R_s * (0), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\ -$X_{13}=( p_x + R_s * (0), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\ -$X_{14}=( p_x + R_s * (\frac{\sqrt{3}}{2}), p_y + R_s * (\frac{1}{2})) $\\ -$X_{15}=( p_x + R_s * (\frac{-\sqrt{3}}{2}), p_y + R_s * (\frac{1}{2})) $\\ -$X_{16}=( p_x + R_s * (\frac{\sqrt{3}}{2}), p_y + R_s * (\frac{- 1}{2})) $\\ -$X_{17}=( p_x + R_s * (\frac{-\sqrt{3}}{2}), p_y + R_s * (\frac{- 1}{2})) $\\ -$X_{18}=( p_x + R_s * (\frac{\sqrt{3}}{2}), p_y + R_s * (0) $\\ -$X_{19}=( p_x + R_s * (\frac{-\sqrt{3}}{2}), p_y + R_s * (0) $\\ -$X_{20}=( p_x + R_s * (0), p_y + R_s * (\frac{1}{2})) $\\ -$X_{21}=( p_x + R_s * (0), p_y + R_s * (-\frac{1}{2})) $\\ -$X_{22}=( p_x + R_s * (\frac{1}{2}), p_y + R_s * (\frac{\sqrt{3}}{2})) $\\ -$X_{23}=( p_x + R_s * (\frac{- 1}{2}), p_y + R_s * (\frac{\sqrt{3}}{2})) $\\ -$X_{24}=( p_x + R_s * (\frac{- 1}{2}), p_y + R_s * (\frac{-\sqrt{3}}{2})) $\\ -$X_{25}=( p_x + R_s * (\frac{1}{2}), p_y + R_s * (\frac{-\sqrt{3}}{2})) $. - -\begin{figure}[h!] -\centering - \begin{multicols}{3} -\centering -\includegraphics[scale=0.20]{Figures/ch3/fig21.pdf}\\~ ~ ~ ~ ~(a) -\includegraphics[scale=0.20]{Figures/ch3/fig22.pdf}\\~ ~ ~ ~ ~(b) -\includegraphics[scale=0.20]{Figures/ch3/principles13.pdf}\\~ ~ ~ ~ ~(c) -\hfill -\includegraphics[scale=0.20]{Figures/ch3/fig24.pdf}\\~ ~ ~(d) -\includegraphics[scale=0.20]{Figures/ch3/fig25.pdf}\\~ ~ ~(e) -\includegraphics[scale=0.20]{Figures/ch3/fig26.pdf}\\~ ~ ~(f) -\end{multicols} -\caption{Wireless Sensor Node represented by (a)5, (b)9, (c)13, (d)17, (e)21 and (f)25 primary points respectively} -\label{fig1} -\end{figure} - - - -\subsection{Main Idea} -\label{ch3:sec:02:03} -\noindent We start by applying a divide-and-conquer algorithm to partition the -area of interest into smaller areas called subregions and then our protocol is -executed simultaneously in each subregion. - -\begin{figure}[ht!] -\centering -\includegraphics[scale=0.60]{Figures/ch3/FirstModel.pdf} % 70mm -\caption{DiLCO protocol} -\label{FirstModel} -\end{figure} - -As shown in Figure~\ref{FirstModel}, the proposed DiLCO protocol is a periodic -protocol where each period is decomposed into 4~phases: Information Exchange, -Leader Election, Decision, and Sensing. For each period there will be exactly -one cover set in charge of the sensing task. A periodic scheduling is -interesting because it enhances the robustness of the network against node -failures. First, a node that has not enough energy to complete a period, or -which fails before the decision is taken, will be excluded from the scheduling -process. Second, if a node fails later, whereas it was supposed to sense the -region of interest, it will only affect the quality of the coverage until the -definition of a new cover set in the next period. Constraints, like energy -consumption, can be easily taken into consideration since the sensors can update -and exchange their information during the first phase. Let us notice that the -phases before the sensing one (Information Exchange, Leader Election, and -Decision) are energy consuming for all the nodes, even nodes that will not be -retained by the leader to keep watch over the corresponding area. - -Below, we describe each phase in more details. - -\subsubsection{Information Exchange Phase} -\label{ch3:sec:02:03:01} -Each sensor node $j$ sends its position, remaining energy $RE_j$, and the number -of neighbors $NBR_j$ to all wireless sensor nodes in its subregion by using an -INFO packet (containing information on position coordinates, current remaining -energy, sensor node ID, number of its one-hop live neighbors) and then waits for -packets sent by other nodes. After that, each node will have information about -all the sensor nodes in the subregion. In our model, the remaining energy -corresponds to the time that a sensor can live in the active mode. - -\subsubsection{Leader Election Phase} -\label{ch3:sec:02:03:02} -This step includes choosing the Wireless Sensor Node Leader (WSNL), which will be responsible for executing the coverage algorithm. Each subregion in the area of interest will select its own WSNL independently for each round. All the sensor nodes cooperate to select WSNL. The nodes in the same subregion will select the leader based on the received information from all other nodes in the same subregion. The selection criteria are, in order of importance: larger number of neighbors, larger remaining energy, and then in case of equality, larger index. Observations on previous simulations suggest to use the number of one-hop neighbors as the primary criterion to reduce energy consumption due to the communications. - - -\subsubsection{Decision phase} -\label{ch3:sec:02:03:03} -The WSNL will solve an integer program (see section~\ref{ch3:sec:03}) to select which sensors will be activated in the following sensing phase to cover the subregion. WSNL will send Active-Sleep packet to each sensor in the subregion based on the algorithm's results. - - -\subsubsection{Sensing phase} -\label{ch3:sec:02:03:04} -Active sensors in the round will execute their sensing task to -preserve maximal coverage in the region of interest. We will assume -that the cost of keeping a node awake (or asleep) for sensing task is -the same for all wireless sensor nodes in the network. Each sensor -will receive an Active-Sleep packet from WSNL informing it to stay -awake or to go to sleep for a time equal to the period of sensing until -starting a new round. - -An outline of the protocol implementation is given by Algorithm~\ref{alg:DiLCO} -which describes the execution of a period by a node (denoted by $s_j$ for a -sensor node indexed by $j$). At the beginning a node checks whether it has -enough energy to stay active during the next sensing phase. If yes, it exchanges -information with all the other nodes belonging to the same subregion: it -collects from each node its position coordinates, remaining energy ($RE_j$), ID, -and the number of one-hop neighbors still alive. Once the first phase is -completed, the nodes of a subregion choose a leader to take the decision based -on the following criteria with decreasing importance: larger number of -neighbors, larger remaining energy, and then in case of equality, larger index. -After that, if the sensor node is leader, it will execute the integer program -algorithm (see Section~\ref{ch3:sec:03}) which provides a set of sensors planned to be -active in the next sensing phase. As leader, it will send an Active-Sleep packet -to each sensor in the same subregion to indicate it if it has to be active or -not. Alternately, if the sensor is not the leader, it will wait for the -Active-Sleep packet to know its state for the coming sensing phase. - - -\begin{algorithm}[h!] - - \BlankLine - %\emph{Initialize the sensor node and determine it's position and subregion} \; - - \If{ $RE_j \geq E_{th}$ }{ - \emph{$s_j.status$ = COMMUNICATION}\; - \emph{Send $INFO()$ packet to other nodes in the subregion}\; - \emph{Wait $INFO()$ packet from other nodes in the subregion}\; - %\emph{UPDATE $RE_j$ for every sent or received INFO Packet}\; - %\emph{ Collect information and construct the list L for all nodes in the subregion}\; - - %\If{ the received INFO Packet = No. of nodes in it's subregion -1 }{ - \emph{LeaderID = Leader election}\; - \If{$ s_j.ID = LeaderID $}{ - \emph{$s_j.status$ = COMPUTATION}\; - \emph{$\left\{\left(X_{1},\dots,X_{k},\dots,X_{J}\right)\right\}$ = - Execute Integer Program Algorithm($J$)}\; - \emph{$s_j.status$ = COMMUNICATION}\; - \emph{Send $ActiveSleep()$ to each node $k$ in subregion} \; - \emph{Update $RE_j $}\; - } - \Else{ - \emph{$s_j.status$ = LISTENING}\; - \emph{Wait $ActiveSleep()$ packet from the Leader}\; - - \emph{Update $RE_j $}\; - } - % } - } - \Else { Exclude $s_j$ from entering in the current sensing phase} - - % \emph{return X} \; -\caption{DiLCO($s_j$)} -\label{alg:DiLCO} - -\end{algorithm} - - - -\section{Primary Points based Coverage Problem Formulation} -\label{ch3:sec:03} -\indent Our model is based on the model proposed by \cite{ref156} where the -objective is to find a maximum number of disjoint cover sets. To accomplish -this goal, the authors proposed an integer program which forces undercoverage -and overcoverage of targets to become minimal at the same time. They use binary -variables $x_{jl}$ to indicate if sensor $j$ belongs to cover set $l$. In our -model, we consider that the binary variable $X_{j}$ determines the activation of -sensor $j$ in the sensing phase. We also consider primary points as targets. -The set of primary points is denoted by $P$ and the set of sensors by $J$. - -\noindent Let $\alpha_{jp}$ denote the indicator function of whether the primary -point $p$ is covered, that is: -\begin{equation} -\alpha_{jp} = \left \{ -\begin{array}{l l} - 1 & \mbox{if the primary point $p$ is covered} \\ - & \mbox{by sensor node $j$}, \\ - 0 & \mbox{otherwise.}\\ -\end{array} \right. -%\label{eq12} -\end{equation} -The number of active sensors that cover the primary point $p$ can then be -computed by $\sum_{j \in J} \alpha_{jp} * X_{j}$ where: -\begin{equation} -X_{j} = \left \{ -\begin{array}{l l} - 1& \mbox{if sensor $j$ is active,} \\ - 0 & \mbox{otherwise.}\\ -\end{array} \right. -%\label{eq11} -\end{equation} -We define the Overcoverage variable $\Theta_{p}$ as: -\begin{equation} - \Theta_{p} = \left \{ -\begin{array}{l l} - 0 & \mbox{if the primary point}\\ - & \mbox{$p$ is not covered,}\\ - \left( \sum_{j \in J} \alpha_{jp} * X_{j} \right)- 1 & \mbox{otherwise.}\\ -\end{array} \right. -\label{eq13} -\end{equation} -\noindent More precisely, $\Theta_{p}$ represents the number of active sensor -nodes minus one that cover the primary point~$p$. The Undercoverage variable -$U_{p}$ of the primary point $p$ is defined by: -\begin{equation} -U_{p} = \left \{ -\begin{array}{l l} - 1 &\mbox{if the primary point $p$ is not covered,} \\ - 0 & \mbox{otherwise.}\\ -\end{array} \right. -\label{eq14} -\end{equation} - -\noindent Our coverage optimization problem can then be formulated as follows: -\begin{equation} \label{eq:ip2r} -\left \{ -\begin{array}{ll} -\min \sum_{p \in P} (w_{\theta} \Theta_{p} + w_{U} U_{p})&\\ -\textrm{subject to :}&\\ -\sum_{j \in J} \alpha_{jp} X_{j} - \Theta_{p}+ U_{p} =1, &\forall p \in P\\ -%\label{c1} -%\sum_{t \in T} X_{j,t} \leq \frac{RE_j}{e_t} &\forall j \in J \\ -%\label{c2} -\Theta_{p}\in \mathbb{N}, &\forall p \in P\\ -U_{p} \in \{0,1\}, &\forall p \in P \\ -X_{j} \in \{0,1\}, &\forall j \in J -\end{array} -\right. -\end{equation} -\begin{itemize} -\item $X_{j}$ : indicates whether or not the sensor $j$ is actively sensing (1 - if yes and 0 if not); -\item $\Theta_{p}$ : {\it overcoverage}, the number of sensors minus one that - are covering the primary point $p$; -\item $U_{p}$ : {\it undercoverage}, indicates whether or not the primary point - $p$ is being covered (1 if not covered and 0 if covered). -\end{itemize} +A testbed is a large evaluation tool. However, to construct a suitable tool with capable architecture, the information about wanted requirement is required. Many existing testbeds are developed without obvious definition of requirements. Therefore, the research efforts maybe halted due to the lack in the precisely defined requirements~\cite{ref186}. The tests and experiments on a large number of sensor nodes lead to a scalability challenges and a large amount of data for logging, debugging and measurement output. There are no enough tools so as to deal (semi-)automatically with the amount of data and supporting the researchers to evaluate their systems. For evaluating the systems and protocols on a large sensor networks, the simulation tools are the better choice due to the costs for hardware and maintenance~\cite{ref186}. -The first group of constraints indicates that some primary point $p$ should be -covered by at least one sensor and, if it is not always the case, overcoverage -and undercoverage variables help balancing the restriction equations by taking -positive values. Two objectives can be noticed in our model. First, we limit the -overcoverage of primary points to activate as few sensors as possible. Second, -to avoid a lack of area monitoring in a subregion we minimize the -undercoverage. Both weights $w_\theta$ and $w_U$ must be carefully chosen in -order to guarantee that the maximum number of points are covered during each -period. -\section{Simulation Results and Analysis} -\label{ch3:sec:04} - -\subsection{Simulation Framework} -\label{ch3:sec:04:01} - -To assess the performance of DiLCO protocol, we have used the discrete event simulator OMNeT++ \cite{ref158} to run different series of simulations. Table~\ref{tablech3} gives the chosen parameters setting. - -\begin{table}[ht] -\caption{Relevant parameters for network initializing.} -% title of Table -\centering -% used for centering table -\begin{tabular}{c|c} -% centered columns (4 columns) - \hline -%inserts double horizontal lines -Parameter & Value \\ [0.5ex] - +Several sensor nodes testbeds are found in order to support WSNs research efforts, but only few of them provide a common evaluation goals for a large number of users~\cite{ref187,ref181}. However, all the WSN testbeds are shared in general properties such as: the number of sensors are at most hundreds and sometimes only tens of nodes are involved in the typical testbeds; the sensor nodes are placed in a static grid topology; metrics and debug information are obtained via wired connections. Therefore, the WSN testbeds impose strong limitations on the WSNs in terms of size and topology. Moreover, the cost of performing an experiment on a testbed is much higher than on a simulation because setting-up the experiments, instrumenting the nodes, gathering the metrics on the performance, and so on are so expensive. Therefore, the simulation tools stay the most practical tools to obtain a feedback on the performance of a new solution~\cite{ref180}. -\hline -% inserts single horizontal line -Sensing Field & $(50 \times 25)~m^2 $ \\ -% inserting body of the table -%\hline -Nodes Number & 50, 100, 150, 200 and 250~nodes \\ -%\hline -Initial Energy & 500-700~joules \\ -%\hline -Sensing Period & 60 Minutes \\ -$E_{th}$ & 36 Joules\\ -$R_s$ & 5~m \\ -%\hline -$w_{\Theta}$ & 1 \\ -% [1ex] adds vertical space -%\hline -$w_{U}$ & $|P|^2$ -%inserts single line -\end{tabular} -\label{tablech3} -% is used to refer this table in the text -\end{table} -Simulations with five different node densities going from 50 to 250~nodes were -performed considering each time 25~randomly generated networks, to obtain -experimental results which are relevant. 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. +\subsection{Simulation Tools} +% take the simulators from paper "Limitations of simulation tools for large-scale wireless sensor networks" \cite{ref179} -\subsection{Modeling Language and Optimization Solver} -\label{ch3:sec:04:02} -The modeling language for Mathematical Programming (AMPL)~\cite{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) \cite{glpk} through a Branch-and-Bound method. +The simulation tools are widely used due to the complexity and difficulty to apply real testbed for WSNs experiments. The simulation tools permit users to evaluate and validate their systems and protocols on WSNs before the deployment, so that the correction actions are reduced before operating the WSN, and the large scale evaluation of systems, applications, and protocols are practicable in a flexible environment~\cite{ref180}. +Most of the papers on the wireless sensor networks use the simulation tools to evaluate the performance of their algorithms and protocols and this is a confirmation to consider them as predominant techniques used to study and analyze the performance and potency of a wireless senor networks. Several variety of simulation tools are available for WSNs, which vary in their characteristics and capabilities, so in this section, only some simulators are explained, and for more details about simulators are available in~\cite{ref188,ref189,ref190}. -\subsection{Energy Consumption Model} -\label{ch3:sec:04:03} +\begin{enumerate} [(i)] -\indent In this dissertation, we used an energy consumption model proposed by~\cite{ref111} and based on \cite{ref112} with slight modifications. The energy consumption for sending/receiving the packets is added, whereas the part related to the sensing range is removed because we consider a fixed sensing range. +\item \textbf{NS2:} -\indent For our energy consumption model, we refer to the sensor node Medusa~II which uses an Atmels AVR ATmega103L microcontroller~\cite{ref112}. The typical architecture of a sensor is composed of four subsystems: the MCU subsystem which is capable of computation, communication subsystem (radio) which is responsible for transmitting/receiving messages, the sensing subsystem that collects data, and the power supply which powers the complete sensor node \cite{ref112}. Each of the first three subsystems can be turned on or off depending on the current status of the sensor. Energy consumption (expressed in milliWatt per second) for the different status of the sensor is summarized in Table~\ref{table1}. +The Network Simulator-2 (ns-2)~\cite{ref191,ref192} is an open source, discrete event network simulator. The major goal of ns-2 is to provide a simulation environment to wired as well as wireless networks to simulate a different protocols with different network topologies. The ns-2 is constructed using C++ and the simulation interface is provided via OTcl, an object-oriented dialect of Tcl. The network topology is determined by writing OTcl scripts by the users, and then the main program of ns-2 simulates that topology with a fixed parameters. ns-2 provides a graphical view of the network by using network animator(NAM). NAM interface includes control features that permit to the researchers to forward, pause, stop and control the simulation. ns-2 is the most common and widely used network simulator for scientific research work. -\begin{table}[ht] -\caption{The Energy Consumption Model} -% title of Table -\centering -% used for centering table -\begin{tabular}{|c|c|c|c|c|} -% centered columns (4 columns) - \hline -%inserts double horizontal lines -Sensor status & MCU & Radio & Sensing & Power (mW) \\ [0.5ex] -\hline -% inserts single horizontal line -LISTENING & on & on & on & 20.05 \\ -% inserting body of the table -\hline -ACTIVE & on & off & on & 9.72 \\ -\hline -SLEEP & off & off & off & 0.02 \\ -\hline -COMPUTATION & on & on & on & 26.83 \\ -%\hline -%\multicolumn{4}{|c|}{Energy needed to send/receive a 1-bit} & 0.2575\\ - \hline -\end{tabular} +The ns-3 project~\cite{ref193} was started in mid 2006 and is still under intensive development. Like ns-2, ns-3 is an open source, discrete-event network simulator targeted essentially for research and educational use~\cite{ref195}. The ns-3, is a new simulator that is considered as a final replacement of ns-2, not an extension~\cite{ref194}. The ns-3 supports both simulation and emulation using sockets. It also provides a tracing facility in order to help users in debugging. -\label{table1} -% is used to refer this table in the text -\end{table} -\indent For the sake of simplicity we ignore the energy needed to turn on the radio, to start up the sensor node, to move from one status to another, etc. Thus, when a sensor becomes active (i.e., it has already chosen its status), it can turn its radio off to save battery. The value of energy spent to send a 1-bit-content message is obtained by using the equation in ~\cite{ref112} to calculate the energy cost for transmitting messages and we propose the same value for receiving the packets. The energy needed to send or receive a 1-bit packet is equal to $0.2575~mW$. +\item \textbf{OMNeT++:} -%We have used an energy consumption model, which is presented in chapter 1, section \ref{ch1:sec9:subsec2}. +OMNeT++ (Objective Modular Network Test-bed) is an open-source, free, discrete-event, component-based C++ simulation library, modular simulation framework for building network simulators~\cite{ref196,ref203}. In spite of OMNeT++ is not a network simulator itself, it is acquired a global popularity as a network simulation platform in both scientific and industrial communities. The major goal behind development of OMNeT++ is to provide a strong simulation tool which can be used by the academic and commercial researchers for simulating different types of networks in a distributed and parallel way~\cite{ref197}. OMNeT++ has extensive graphical user interface (GUI), intelligence support, and it runs on Windows, Linux, Mac OS X, and other Unix-like systems. It provides a component architecture for models. Components (modules) are programmed in C++, then assembled into larger components and models using a high-level language (NED)~\cite{ref198}. Several simulation frameworks can be used with OMNeT++ such as INET, INETMANET, MiXiM, and Castalia, where each of them provides a set of simulation facilities and can be used for a specific applications. -The initial energy of each node is randomly set in the interval $[500;700]$. A sensor node will not participate in the next round if its remaining energy is less than $E_{th}=36~\mbox{Joules}$, the minimum energy needed for the node to stay alive during one round. This value has been computed by multiplying the energy consumed in active state (9.72 mW) by the time in second for one round (3600 seconds), and adding the energy for the pre-sensing phases. According to the interval of initial energy, a sensor may be alive during at most 20 rounds. +\item \textbf{OPNET:} +OPNET (Optimized Network Engineering tool)~\cite{ref199,ref200,ref201} is the first commercial simulation tool that developed in 1987 for communication networks. It is a discrete event, object-oriented, general purpose network simulator, which is widely used in industry. It uses C and Java languages. It provides a comprehensive development environment for the specification, simulation, configuration, and performance analysis of communication network. OPNET permits researchers in developing the various models by means of a graphical interface and provides different types of tools such as Probe Editor, Filter Tool, and Animation Viewer for data collection to model graph, and animate the resulting output. Unlike NS-2 , OPNET provides modeling for different sensor-specific hardware, such as physical-link transceivers and antennas. It includes sensor-specific models such as ad-hoc connectivity, mobility of nodes, node failure models, modeling of power-consumption, etc. The major drawback of OPENT is that it is commercial and the license is very expensive. -\subsection{Performance Metrics} -\label{ch3:sec:04:04} -In the simulations, we introduce the following performance metrics to evaluate -the efficiency of our approach: -\begin{enumerate}[i)] -%\begin{itemize} -\item {{\bf Network Lifetime}:} we define the network lifetime as the time until - the coverage ratio drops below a predefined threshold. We denote by - $Lifetime_{95}$ (respectively $Lifetime_{50}$) the amount of time during which - the network can satisfy an area coverage greater than $95\%$ (respectively - $50\%$). We assume that the sensor network can fulfill its task until all its - nodes have been drained of their energy or it becomes disconnected. Network - connectivity is crucial because an active sensor node without connectivity - towards a base station cannot transmit any information regarding an observed - event in the area that it monitors. - -\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 to compute the - coverage ratio: -\begin{equation*} -\scriptsize -\mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100. -\end{equation*} -where $n$ is the number of covered grid points by active sensors of every -subregions during the current sensing phase and $N$ is the total number of grid -points in the sensing field. In our simulations, we have a layout of $N = 51 -\times 26 = 1326$ grid points. - -\item {{\bf Energy Consumption}:} energy consumption (EC) can be seen as the - total amount of energy consumed by the sensors during $Lifetime_{95}$ - or $Lifetime_{50}$, divided by the number of periods. Formally, the computation - of EC can be expressed as follows: - \begin{equation*} - \scriptsize - \mbox{EC} = \frac{\sum\limits_{m=1}^{M} \left( E^{\mbox{com}}_m+E^{\mbox{list}}_m+E^{\mbox{comp}}_m - + E^{a}_m+E^{s}_m \right)}{M}, - \end{equation*} - -where $M$ corresponds to the number of periods. The total amount of energy -consumed by the sensors (EC) comes through taking into consideration four main -energy factors. The first one, denoted $E^{\scriptsize \mbox{com}}_m$, -represents the energy consumption spent by all the nodes for wireless -communications during period $m$. $E^{\scriptsize \mbox{list}}_m$, 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 $m$. -$E^{\scriptsize \mbox{comp}}_m$ refers to the energy needed by all the leader -nodes to solve the integer program during a period. Finally, $E^a_{m}$ and -$E^s_{m}$ indicate the energy consumed by the whole network in the sensing phase -(active and sleeping nodes). - -\item{{\bf Number of Active Sensors Ratio(ASR)}:} It is important to have as few active nodes as possible in each round, -in order to minimize the communication overhead and maximize the -network lifetime. The Active Sensors Ratio is defined as follows: -\begin{equation*} -\scriptsize -\mbox{ASR}(\%) = \frac{\sum\limits_{r=1}^R \mbox{$A_r$}}{\mbox{$S$}} \times 100 . -\end{equation*} -Where: $A_r$ is the number of active sensors in the subregion $r$ during current period, $S$ is the total number of sensors in the network, and $R$ is the total number of the subregions in the network. - -\item {{\bf Execution Time}:} a sensor node has limited energy resources and computing power, therefore it is important that the proposed algorithm has the shortest possible execution time. The energy of a sensor node must be mainly used for the sensing phase, not for the pre-sensing ones. In this dissertation, the original execution time is computed on a laptop DELL with Intel Core~i3~2370~M (2.4 GHz) processor (2 cores) and the MIPS (Million Instructions Per Second) rate equal to 35330. To be consistent with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and a MIPS rate equal to 6 to run the optimization resolution, this time is multiplied by 2944.2 $\left( \frac{35330}{2} \times \frac{1}{6} \right)$. - -\item {{\bf Stopped simulation runs}:} A simulation ends when the sensor network becomes disconnected (some nodes are dead and are not able to send information to the base station). We report the number of simulations that are stopped due to network disconnections and for which round it occurs ( in chapter 3, period consists of one round). +\item \textbf{GloMoSim:} -\end{enumerate} +GloMoSim(Global Mobile System Simulator)~\cite{ref202,ref204,ref205} is an open source, well documented source code, and scalable simulation environment developed in 1998 for mobile wireless networks. It is used a Parsec, which is an extension of C for parallel programming. The main feature of GloMoSim simulator that differentiate it from other WSN simulators in that it uses parallel environment. The parallel network simulation is hard due to the communication among the simulated nodes on different machines. Several types of protocols and models are found in GloMoSim including TCP, +IEEE 802.11 CSMA/CA, MAC, UDP, HTTP, FTP, CBR, ODMRP, WRP, DSR, MACA, Telnet, AODV, etc. It uses a VT visualization tool to observe and debug these protocols. GloMoSim is designed to be extensible, with all protocols implemented as modules in the GloMoSim library. It also uses an object-oriented approach; where, it dividing the nodes, and each object is responsible for executing one layer in the protocol stack of every node for its given division. This mechanism minimizes the overhead of a large scale sensor network. +GloMoSim supports a wide range of protocols and its configuration is easy. Due to the parallel processing nature, It supplies a fast simulation. GloMoSim provides efficient simulation for IP networks whilst it does not support accurate simulation for many sensor network applications. Since 2000, GloMoSim has been stopping releasing updates. It is currently updated as a commercial product called QualNet. + + + \item \textbf{SENSE:} + +The SENSE (Sensor Network Simulator and Emulator)~\cite{ref206} is an open source, general purpose, discrete event, efficient, easy to use, and powerful network simulator. The main objective of designing this simulator is to support the various requirements of the users by taking into consideration the extensibility, reusability, and scalability. The SENSE uses object-oriented approach and J-Sim's simulator component based architecture. It support the parallelization with a poor support for users. +The simulation models are released from interdependency that usually found in an object-oriented architecture by a component-port model, which is provided by SENSE. This permits independence among components and enables the extensibility and reusability. An another level of reusability by the extensive use of C++ template, where a component is usually declared as a template class so that it handles different types of data. The designers are improved the scalability through using the same packet in the memories of all sensors, assuming that the packet should not be changed. The core of the simulator still lacks a general set of models, routing protocols and a wide variety of configuration templates for WSNs. In addition, visualization tool is desirable, which can quickly discover the bugs during the simulation. + + -\subsection{Performance Analysis for Different Subregions} -\label{ch3:sec:04:05} - -In this subsection, we are studied the performance of our DiLCO protocol for a different number of subregions (Leaders). -The DiLCO-1 protocol is a centralized approach on all the area of the interest, while DiLCO-2, DiLCO-4, DiLCO-8, DiLCO-16 and DiLCO-32 are distributed on two, four, eight, sixteen, and thirty-two subregions respectively. We did not take the DiLCO-1 protocol in our simulation results because it need high execution time to give the decision leading to consume all it's energy before producing the solution for optimization problem. - -\begin{enumerate}[i)] -\item {{\bf Coverage Ratio}} -%\subsubsection{Coverage Ratio} -%\label{ch3:sec:04:02:01} -In this experiment, Figure~\ref{Figures/ch3/R1/CR} shows the average coverage ratio for 150 deployed nodes. -\parskip 0pt -\begin{figure}[h!] -\centering - \includegraphics[scale=0.6] {Figures/ch3/R1/CR.pdf} -\caption{Coverage ratio for 150 deployed nodes} -\label{Figures/ch3/R1/CR} -\end{figure} -It can be seen that DiLCO protocol (with 4, 8, 16 and 32 subregions) gives nearly similar coverage ratios during the first thirty rounds. -DiLCO-2 protocol gives near similar coverage ratio with other ones for first 10 rounds and then decreased until the died of the network in the round $18^{th}$ because it consumes more energy with the effect of the network disconnection. -As shown in the figure ~\ref{Figures/ch3/R1/CR}, as the number of subregions increases, the coverage preservation for area of interest increases for a larger number of rounds. Coverage ratio decreases when the number of rounds increases due to dead nodes. Although some nodes are dead, thanks to DiLCO-8, DiLCO-16 and DiLCO-32 protocols, other nodes are preserved to ensure the coverage. Moreover, when we have a dense sensor network, it leads to maintain the coverage for a larger number of rounds. DiLCO-8, DiLCO-16 and DiLCO-32 protocols are slightly more efficient than other protocols, because they subdivide the area of interest into 8, 16 and 32~subregions; if one of the subregions becomes disconnected, the coverage may be still ensured in the remaining subregions. - -\item {{\bf Active Sensors Ratio}} -%\subsubsection{Active Sensors Ratio} - Figure~\ref{Figures/ch3/R1/ASR} shows the average active nodes ratio for 150 deployed nodes. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R1/ASR.pdf} -\caption{Active sensors ratio for 150 deployed nodes } -\label{Figures/ch3/R1/ASR} -\end{figure} -The results presented in figure~\ref{Figures/ch3/R1/ASR} show the increase in the number of subregions led to increase in the number of active nodes. The DiLCO-16 and DiLCO-32 protocols have a larger number of active nodes but it preserve the coverage for a larger number of rounds. The advantage of the DiLCO-16 and DiLCO-32 protocols are that even if a network is disconnected in one subregion, the other ones usually continues the optimization process, and this extends the lifetime of the network. - -\item {{\bf The percentage of stopped simulation runs}} -%\subsubsection{The percentage of stopped simulation runs} -Figure~\ref{Figures/ch3/R1/SR} illustrates the percentage of stopped simulation runs per round for 150 deployed nodes. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R1/SR.pdf} -\caption{Percentage of stopped simulation runs for 150 deployed nodes } -\label{Figures/ch3/R1/SR} -\end{figure} +\item \textbf{TOSSIM:} + +TOSSIM~\cite{ref205,ref207,ref208} is a discrete event simulator for TinyOS sensor networks, where the TinyOS application can be compiled on the TOSSIM framework, which executes on a computer rather than on the mote. This permits to the users to test, debug, and analyze their algorithms and protocols in a controlled and repeatable environment. The users can check up their codes using debuggers and other development tools during executing them on the computer. TOSSIM is regarded as an emulator rather than a simulator because its ability to simulate both the software and hardware of the mote. TOSSIM is especially designed for TinyOS applications to be run on Berkeley MICA Motes. TOSSIM have to develop four requirements: scalability, completeness, fidelity and bridging. It should be manage a large number of sensor nodes with different configurations to be scalable. For completeness, it has to capture behavior and interactions of a system at a different of levels. The simulator should capture behavior of a network with accurate timing of interactions on a mote and among motes for fidelity. Due to the simulated code executes directly in a real mote, therefore the bridging requirement is met. Two programming interfaces are supported by TOSSIM: Python and C++. C++ interface transforms the code easily from one form to another. Python permits interacting with a executing simulation dynamically, like a powerful debugger. TOSSIM provides a high fidelity and scalable simulation of a complete TinyOS sensor network. It visualizes and interacts with executing simulations using GUI tool and TinyViz . The users can develop new visualizations and interfaces for TinyViz using simple plug-in model. The simulator's effectiveness for analyzing low level protocols is decreased due to inaccuracies of probabilistic bit error model. Moreover, TOSSIM is only supported by MICA motes platform. -It can be observed that the DiLCO-2 is the approach which stops first because it applied the optimization on only two subregions for the area of interest that is why it is first exhibits network disconnections. -Thus, as explained previously, in case of the DiLCO-16 and DiLCO-32 with several subregions, the optimization effectively continues as long as a network in a subregion is still connected. This longer partial coverage optimization participates in extending the network lifetime. -\item {{\bf The Energy Consumption}} -%\subsubsection{The Energy Consumption} -We measure the energy consumed by the sensors during the communication, listening, computation, active, and sleep modes for different network densities and compare it for different subregions. Figures~\ref{Figures/ch3/R1/EC95} and ~\ref{Figures/ch3/R1/EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. +\item \textbf{GTSNetS:} -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R1/EC95.pdf} -\caption{Energy Consumption for Lifetime95} -\label{Figures/ch3/R1/EC95} -\end{figure} +GTSNetS (Georgia Tech Sensor Network Simulator)~\cite{ref209,ref210} is an open-source, C++, large scale, event-driven simulation tool to evaluate the applications, algorithms and protocols. It is capable of evaluating the impact of various architectural choices and designs on the lifetime and performance of a particular sensor network. GTSNetS is constructed on the top of the Georgia Tech Network Simulator (GTNetS), where it uses and expands all the design choices of the existing GTNetS simulator. The main feature of GTSNetS simulator in that it is support several thousand nodes. +It is organized efficiently in a modular to support large scale WSNs. It is designed to be easy to use by the users in order to simulate a certain sensor network. Several choices is provided by GTSNetS to users to select from different alternatives such as: network protocols, energy models, applications, and tracing options. Furthermore, the existing models of the simulator can simply extended or replaced according to user need. The network lifetime can be tracked by GTSNetS and the energy consumption of each unit can be evaluated. Therefore, the users can study the impact of different architectural choices on lifetime and energy consumption. The mobility is inherited from GTNetS simulator, so it provides a specification of mobile sensor nodes, moving sensed objects, as well as a mobile base station. +GTSNetS provides graphical user interface and extensive packet tracing. The stopped updating and maintaining the project since Oct, 2008 represents the main disadvantage of this simulator. + + + +\end{enumerate} -The results show that DiLCO-16 and DiLCO-32 are the most competitive from the energy consumption point of view but as the network size increase the energy consumption increase compared with DiLCO-2, DiLCO-4, and DiLCO-8. The other approaches have a high energy consumption due to the energy consumed during the different modes of the sensor node.\\ -As shown in Figures~\ref{Figures/ch3/R1/EC95} and ~\ref{Figures/ch3/R1/EC50}, DiLCO-2 consumes more energy than the other versions of DiLCO, especially for large sizes of network. This is easy to understand since the bigger the number of sensors involved in the integer program, the larger the time computation to solve the optimization problem as well as the higher energy consumed during the communication. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R1/EC50.pdf} -\caption{Energy Consumption for Lifetime50} -\label{Figures/ch3/R1/EC50} -\end{figure} -In fact, a distributed method on the subregions greatly reduces the number of communications, the time of listening and computation so thanks to the partitioning of the initial network in several independent subnetworks. - -\item {{\bf Execution Time}} -%\subsubsection{Execution Time} -In this experiment, the execution time of the our distributed optimization approach has been studied. Figure~\ref{Figures/ch3/R1/T} gives the average execution times in seconds for the decision phase (solving of the optimization problem) during one round. They are given for the different approaches and various numbers of sensors. The original execution time is computed as described in section \ref{ch3:sec:04:02}. -%The original execution time is computed on a laptop DELL with intel Core i3 2370 M (2.4 GHz) processor (2 cores) and the MIPS (Million Instructions Per Second) rate equal to 35330. To be consistent with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and a MIPS rate equal to 6 to run the optimization resolution, this time is multiplied by 2944.2 $\left( \frac{35330}{2} \times 6\right)$ and reported on Figure~\ref{fig8} for different network sizes. - -\begin{figure}[h!] +In this section, we investigated some simulation tools for WSNs. Since a large number of simulation tools available for WSNs, which have different characteristics and capabilities, so it seems to be hard to decide which simulation tool to choose and which one is more appropriate for large-scale WSNs. Table~\ref{table:1} illustrates a comparison among some simulation tools~\cite{ref179}. According to the table~\ref{table:1}, OMNeT++ seems to be a good candidate to be used as an evaluation tool for our proposed protocols in this dissertation. OMNeT++ is a free, extensible, and scalable simulator. It provides an easy-to-use interface using C++ language. Furthermore, several frameworks can be used with OMNeT++ such as INET, INETMANET, Veins, MiXiM, and castalia to support various needs of users like mobility, Internet, vehicular, and sensor networks. + + + +\begin{table}[h!] \centering -\includegraphics[scale=0.6]{Figures/ch3/R1/T.pdf} -\caption{Execution Time (in seconds)} -\label{Figures/ch3/R1/T} -\end{figure} +\caption{Comparison among some simulation tools} -We can see from figure~\ref{Figures/ch3/R1/T}, that the DiLCO-32 has very low execution times in comparison with other DiLCO versions, because it distributed on larger number of small subregions. Conversely, DiLCO-2 requires to solve an optimization problem considering half the nodes in each subregion presents high execution times. +\begin{tabular}{ |>{\centering\arraybackslash}m{0.7in}||>{\centering\arraybackslash}m{0.8in}|>{\centering\arraybackslash}m{1in}|>{\centering\arraybackslash}m{1.2in}|>{\centering\arraybackslash}m{0.8in}|>{\centering\arraybackslash}m{0.8in}| } + \hline + \multirow{2}{*} {\begin{minipage}{0.7in}\centering \textbf{Simulation Tool}\end{minipage}} %{\textbf{Simulation Tool} } + &\multicolumn{5}{|c|}{\textbf{Features of Simulation Tool}} \\ + \cline{2-6} + + &\textbf{Interface} &\textbf{Accessibility \& User Support}&\textbf{Availability of WSNs Modules}&\textbf{Extensibility}&\textbf{Scalability}\\ + \hline \hline + + \textbf{ns -2} & C++/OTcl with limited visual support & Open source with Good user support & Energy Model, battery model, Mobility & Excellent & Limited \\ -The DiLCO-32 protocol has more suitable times at the same time it turn on redundant nodes more. We think that in distributed fashion the solving of the optimization problem in a subregion can be tackled by sensor nodes. Overall, to be able to deal with very large networks, a distributed method is clearly required. +\hline -\item {{\bf The Network Lifetime}} -%\subsubsection{The Network Lifetime} -In figure~\ref{Figures/ch3/R1/LT95} and \ref{Figures/ch3/R1/LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes. + \textbf{OMNeT++} & C++/NED with good GUI and debugging support & Free for academic use, license for commercial use with Good user support & Energy Model, battery model, accurate wireless channel and radio modeling & Excellent & Large-scale \\ -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R1/LT95.pdf} -\caption{Network Lifetime for $Lifetime95$} -\label{Figures/ch3/R1/LT95} -\end{figure} -We see that DiLCO-2 protocol results in execution times that quickly become unsuitable for a sensor network as well as the energy consumed during the communication seems to be huge because it is distributed over only two subregions. +\hline -As highlighted by figures~\ref{Figures/ch3/R1/LT95} and \ref{Figures/ch3/R1/LT50}, the network lifetime obviously increases when the size of the network increases, with DiLCO-16 protocol that leads to the larger lifetime improvement. By choosing the best suited nodes, for each round, to cover the area of interest and by -letting the other ones sleep in order to be used later in next rounds, DiLCO-16 protocol efficiently extends the network lifetime because the benefit from the optimization with 16 subregions is better than DiLCO-32 protocol with 32 subregion. DilCO-32 protocol puts in active mode a larger number of sensor nodes especially near the borders of the subdivisions. + \textbf{OPNET} & C or C++/Java with Excellent GUI and debugging support & Free for academic use, license for commercial use with Excellent user support & Energy model, battery model, Routing protocols (directed diffusion), Mobility, node failure model & Excellent & Moderate \\ -Comparison shows that DiLCO-16 protocol, which uses 16 leaders, is the best one because it is used less number of active nodes during the network lifetime compared with DiLCO-32 protocol. It also means that distributing the protocol in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R1/LT50.pdf} -\caption{Network Lifetime for $Lifetime50$} -\label{Figures/ch3/R1/LT50} -\end{figure} -\end{enumerate} +\hline -\subsection{Performance Analysis for Primary Point Models} -\label{ch3:sec:04:06} + \textbf{GloMoSim} & Parsec (C-Based) with limited visual support & Open source with Poor user support & Sensor network specific MAC and network protocols, mobility model & Good & Large-scale \\ -In this section, we are studied the performance of DiLCO~16 approach for a different primary point models. The objective of this comparison is to select the suitable primary point model to be used by DiLCO protocol. +\hline -In this comparisons, DiLCO-16 protocol are used with five models which are called Model~1( With 5 Primary Points), Model~2 ( With 9 Primary Points), Model~3 ( With 13 Primary Points), Model~4 ( With 17 Primary Points), and Model~5 ( With 21 Primary Points). + \textbf{SENSE} & C++ with good GUI support & Open source with Poor user support & Energy models, battery models, Mobility, modeling of physical environment & Excellent & Large-scale \\ +\hline -\begin{enumerate}[i)] + \textbf{GTSNetS} & C++ with good user interface \& visual support & Open source with good user support & Energy model, battery model, accuracy model, model applications, Mobility & Excellent & Very large-scale \\ -\item {{\bf Coverage Ratio}} -%\subsubsection{Coverage Ratio} -In this experiment, we Figure~\ref{Figures/ch3/R2/CR} shows the average coverage ratio for 150 deployed nodes. -\parskip 0pt -\begin{figure}[h!] -\centering - \includegraphics[scale=0.6] {Figures/ch3/R2/CR.pdf} -\caption{Coverage ratio for 150 deployed nodes} -\label{Figures/ch3/R2/CR} -\end{figure} -It is shown that all models provide a very near coverage ratios during the network lifetime, with very small superiority for the models with higher number of primary points. Moreover, when the number of rounds increases, coverage ratio produced by Model~3, Model~4, and Model~5 decreases in comparison with Model~1 and Model~2 due to the high energy consumption during the listening to take the decision after finishing optimization process for larger number of primary points. As shown in figure ~\ref{Figures/ch3/R2/CR}, Coverage ratio decreases when the number of rounds increases due to dead nodes. Although some nodes are dead, -thanks to Model~2, which is slightly more efficient than other Models, because it is balanced between the number of rounds and the better coverage ratio in comparison with other Models. - -\item {{\bf Active Sensors Ratio}} -%\subsubsection{Active Sensors Ratio} - Figure~\ref{Figures/ch3/R2/ASR} shows the average active nodes ratio for 150 deployed nodes. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/ASR.pdf} -\caption{Active sensors ratio for 150 deployed nodes } -\label{Figures/ch3/R2/ASR} -\end{figure} +\hline -The results presented in figure~\ref{Figures/ch3/R2/ASR} show the superiority of the proposed Model 1, in comparison with the other Models. The -model with less number of primary points uses less active nodes than the other models, which uses a more number of primary points to represent the area of the sensor. According to the results that presented in figure~\ref{Figures/ch3/R2/CR}, we observe that although the Model~1 continue to a larger number of rounds, but it has less coverage ratio compared with other models. The advantage of the Model~2 approach is to use less number of active nodes for each round compared with Model~3, Model~4, and Model~5; and this led to continue for a larger number of rounds with extending the network lifetime. Model~2 has a better coverage ratio compared to Model~1 and acceptable number of rounds. + \textbf{TOSSIM} & C++/Python with good GUI support & Open source (BSD) with Excellent user support & Energy models with power TOSSIM ads-on, Bit-level radio model & Good & Large-scale \\ +\hline +\end{tabular} -\item {{\bf he percentage of stopped simulation runs}} -%\subsubsection{The percentage of stopped simulation runs} -In this study, we want to show the effect of increasing the primary points on the number of stopped simulation runs for each round. Figure~\ref{Figures/ch3/R2/SR} illustrates the percentage of stopped simulation runs per round for 150 deployed nodes. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/SR.pdf} -\caption{Percentage of stopped simulation runs for 150 deployed nodes } -\label{Figures/ch3/R2/SR} -\end{figure} +\label{table:1} +\end{table} -As shown in Figure~\ref{Figures/ch3/R2/SR}, when the number of primary points are increased, the percentage of the stopped simulation runs per round is increased. The reason behind the increase is the increase in the sensors dead when the primary points increases. We are observed that the Model~1 is a better than other models because it conserve more energy by turn on less number of sensors during the sensing phase, but in the same time it preserve the coverage with a less coverage ratio in comparison with other models. Model~2 seems to be more suitable to be used in wireless sensor networks. -\item {{\bf The Energy Consumption}} -%\subsubsection{The Energy Consumption} -In this experiment, we study the effect of increasing the primary points to represent the area of the sensor on the energy consumed by the wireless sensor network for different network densities. Figures~\ref{Figures/ch3/R2/EC95} and ~\ref{Figures/ch3/R2/EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/EC95.pdf} -\caption{Energy Consumption with $95\%-Lifetime$} -\label{Figures/ch3/R2/EC95} -\end{figure} - -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/EC50.pdf} -\caption{Energy Consumption with $Lifetime50$} -\label{Figures/ch3/R2/EC50} -\end{figure} -We see from the results presented in Figures~\ref{Figures/ch3/R2/EC95} and \ref{Figures/ch3/R2/EC50}, The energy consumed by the network for each round increases when the primary points increases, because the decision for optimization process will takes more time leads to consume more energy during the listening mode. The results show that Model~1 is the most competitive from the energy consumption point of view but the worst one from coverage ratio point of view. The other Models have a high energy consumption due to the increase in the primary points, which are led to increase the energy consumption during the listening mode before producing the solution by solving the optimization process. In fact, we see that Model~2 is a good candidate to be used by wireless sensor network because it preserve a good coverage ratio and a suitable energy consumption in comparison with other models. +\section{Optimization Solvers} -\item {{\bf Execution Time}} -%\subsubsection{Execution Time} -In this experiment, we have studied the impact of the increase in primary points on the execution time of DiLCO protocol. Figure~\ref{Figures/ch3/R2/T} gives the average execution times in seconds for the decision phase (solving of the optimization problem) during one round. The original execution time is computed as described in section \ref{ch3:sec:04:02}. + Several optimization solvers are exist, which are able to solve the linear optimization problems. Linear Optimization ( or Linear programming)~\cite{ref211} is a technique for determining the maximum or minimum of a linear function of non-negative variables subject to constraints expressed as linear equalities or inequalities. Linear programming is a special case of mathematical programming (mathematical optimization). +Linear programs are problems that can be expressed in canonical form: -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/T.pdf} -\caption{Execution Time(s) vs The Number of Sensors } -\label{Figures/ch3/R2/T} -\end{figure} + \begin{align} & \text{Maximize}~ (or ~\text{Minimize})~ && \mathbf{c}^\mathrm{T} \mathbf{x}\\ & \text{Subject to} && A \mathbf{x} \leq \mathbf{b} \\ & \text{and} && \mathbf{x} \ge \mathbf{0} \end{align} + + where x represents the vector of variables (to be determined), c and b are vectors of (known) coefficients, A is a (known) matrix of coefficients, and $\left( \cdot \right) ^\mathrm{T}$ is the matrix transpose. The term to be maximized or minimized is called the objective function ($c^Tx$ in this case). The inequalities $Ax \leqslant b$ and $x \geqslant 0$ are the constraints which specify a convex polytope over which the objective function is to be optimized. +In linear programming problem, if some or all of the unknown variables are restricted to be integers, it is called an integer programming (IP) problem. IP problems are a special cases of optimization problems where the variables can only assume integer values, where the IP problems are NP-hard. Mixed integer linear programming (MIP) problems are also special cases where only some of the variables are restricted to integer values. Optimization problems with integer variables can also be linear or nonlinear, depending on the terms of their objective function and their constraints. However, generally, the terms IP and MIP are almost always associated with problems that have linear features. -They are given for the different primary point models and various numbers of sensors. We can see from Figure~\ref{Figures/ch3/R2/T}, that Model~1 has lower execution time in comparison with other Models, because it used smaller number of primary points to represent the area of the sensor. Conversely, the other primary point models have been presented a higher execution times. -Moreover, Model~2 has more suitable times and coverage ratio that lead to continue for a larger number of rounds extending the network lifetime. We think that a good primary point model, this one that balances between the coverage ratio and the number of rounds during the lifetime of the network. +Linear optimization is used to solve different problems in various fields of study. It is applied for economic, business, and Industry. Several linear optimization models are proposed in Industry such as, transportation, energy, telecommunications, and manufacturing. Linear optimization is succeeded in modeling different types of problems like planning, routing, scheduling, assignment, and design. -\item {{\bf The Network Lifetime}} -%\subsubsection{The Network Lifetime} -Finally, we will study the effect of increasing the primary points on the lifetime of the network. In Figure~\ref{Figures/ch3/R2/LT95} and in Figure~\ref{Figures/ch3/R2/LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes. +Many approaches have been used to solve the linear programming (IP or MIP) problems and they are classified into two main groups~\cite{ref221}: +\begin{itemize} -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/LT95.pdf} -\caption{Network Lifetime for $Lifetime95$} -\label{Figures/ch3/R2/LT95} -\end{figure} +\item \textbf{Heuristic Optimization:} provides a good solutions for the problems that can not be solved efficiently in classical optimization methods. On the other hand, there is no guarantee for optimal solution. Examples of such approaches are genetic algorithms, swarm intelligence, neural network, and tabu search. +\item \textbf{Classical Optimization:} provides and guarantees optimal solutions for the convex problems. Examples of such methods are zero-one enumeration algorithm and branch-and-bound algorithm, which are provided by linear optimization solvers. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R2/LT50.pdf} -\caption{Network Lifetime for $Lifetime50$} -\label{Figures/ch3/R2/LT50} -\end{figure} +\end{itemize} -As highlighted by figures~\ref{Figures/ch3/R2/LT95} and \ref{Figures/ch3/R2/LT50}, the network lifetime obviously increases when the size of the network increases, with Model~1 that leads to the larger lifetime improvement. -Comparison shows that the Model~1, which uses less number of primary points, is the best one because it is less energy consumption during the network lifetime. It is also the worst one from the point of view of coverage ratio. Our proposed Model~2 efficiently prolongs the network lifetime with a good coverage ratio in comparison with other models. - -\end{enumerate} +Several variety of linear optimization solvers are available, which vary in their characteristics and capabilities, so in this section, we explain the most popular free and commercial liner optimization solvers~\cite{ref212}. -\subsection{Performance Comparison with other Approaches} -\label{ch3:sec:04:07} -Based on the results, which are conducted from previous two subsections, \ref{ch3:sec:04:02} and \ref{ch3:sec:04:03}, we have found that DiLCO-16 protocol and DiLCO-32 protocol with Model~2 are the best candidates to be compared with other two approaches. The first approach, called DESK that proposed by ~\cite{DESK}, which is a full distributed coverage algorithm. The second approach, called GAF~\cite{GAF}, consists in dividing the region into fixed squares. During the decision phase, in each square, one sensor is chosen to remain on during the sensing phase time. +\begin{enumerate} [(i)] -\begin{enumerate}[i)] +\item \textbf{GNU Linear Programming Kit (GLPK):} -\item {{\bf Coverage Ratio}} -%\subsubsection{Coverage Ratio} -In this experiment, the average coverage ratio for 150 deployed nodes has been demonstrated figure~\ref{Figures/ch3/R3/CR}. - -\parskip 0pt -\begin{figure}[h!] -\centering - \includegraphics[scale=0.6] {Figures/ch3/R3/CR.pdf} -\caption{Coverage ratio for 150 deployed nodes} -\label{Figures/ch3/R3/CR} -\end{figure} +The GLPK~\cite{ref214,ref213,AMPL} is a free and open source software written in C programming language, which is presented for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a mathematical programming project that is a part of the GNU project. GLPK uses the revised simplex method and the primal-dual interior point method for non-integer problems and the branch-and-bound algorithm together with Gomory's mixed integer cuts for (mixed) integer problems. +The users use either an interactive command line or a C++ application programming interface (API) in order to interact with GLPK, where a C and java API are available with GLPK. Several input file formats are accepted by GLPK such as: MPS (Mathematical Programming System), Free MPS, LP, GLPK, and MathProg format. The major components of the GLPK package are primal and dual simplex methods, primal-dual interior-point method, branch-and-cut method, translator for GNU MathProg, API, and stand-alone LP/MIP solver. -It has been shown that DESK and GAF provide a little better coverage ratio with 99.99\% and 99.91\% against 99.1\% and 99.2\% produced by DiLCO-16 and DiLCO-32 for the lowest number of rounds. This is due to the fact that DiLCO protocol versions put in sleep mode redundant sensors using optimization (which lightly decreases the coverage ratio) while there are more nodes are active in the case of DESK and GAF. -Moreover, when the number of rounds increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, DiLCO-16 protocol and DiLCO-32 protocol maintain almost a good coverage. This is because they optimized the coverage and the lifetime in wireless sensor network by selecting the best representative sensor nodes to take the responsibility of coverage during the sensing phase and this will leads to continue for a larger number of rounds and prolonging the network lifetime; although some nodes are dead, sensor activity scheduling of our protocol chooses other nodes to ensure the coverage of the area of interest. +\item \textbf{lp$\_$solve:} -\item {{\bf Active Sensors Ratio}} -%\subsubsection{Active Sensors Ratio} -It is important to have as few active nodes as possible in each round, in order to minimize the energy consumption and maximize the network lifetime. Figure~\ref{Figures/ch3/R3/ASR} shows the average active nodes ratio for 150 deployed nodes. +The lp$\textunderscore$solve~\cite{ref215,ref213} is a free linear (integer) programming solver based on the revised simplex method and the Branch-and-bound method for the integers. It is freely available under the GNU Lesser General Public License. The Primal and Dual Simplex algorithms are used by lp$\textunderscore$solve for solving LP models. lp$\textunderscore$solve is written using C programming language and can be compiled on many different platforms like linux and Windows. The users interact with it using either a command line or an API. It provides a C, C$\#$, C++, Java, and .NET API. lp$\textunderscore$solve can read the input MPS, Free MPS and LP file format. The pure linear, (mixed) integer/binary, semi-continuous and special ordered sets (SOS) models are solved. It handles integer variables, semi-continuous variables, and Special Ordered Sets by means of Branch-and-bound algorithm. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R3/ASR.pdf} -\caption{Active sensors ratio for 150 deployed nodes } -\label{Figures/ch3/R3/ASR} -\end{figure} -The results presented in figure~\ref{Figures/ch3/R3/ASR} show the superiority of the proposed DiLCO-16 protocol and DiLCO-32 protocol, in comparison with the other approaches. We have observed that DESK and GAF have 37.5 \% and 44.5 \% active nodes and DiLCO-16 protocol and DiLCO-32 protocol compete perfectly with only 17.4 \%, 24.8 \% and 26.8 \% active nodes for the first 14 rounds. Then as the number of rounds increases DiLCO-16 protocol and DiLCO-32 protocol have larger number of active nodes in comparison with DESK and GAF, especially from round $35^{th}$ because they give a better coverage ratio than other approaches. We see that DESK and GAF have less number of active nodes beginning at the rounds $35^{th}$ and $32^{th}$ because there are many nodes are died due to the high energy consumption by the redundant nodes during the sensing phase. +\item \textbf{CLP:} +COIN-OR Linear Programming (CLP)~\cite{ref216,ref217} is a free, open-source linear programming solver written in C++ programming language. CLP is reliable and able to tackle the very large linear optimization problems. The CLP is a part of the Coin-OR project that aims at creating open software for the operations research community. An other COIN-OR projects such as SYMPHONY, BCP (Branch Cut and Price), and CBC (COIN-OR Branch and Cut) are used CLP. It includes Dual and Primal Simplex algorithms, but it also contains an Interior Point algorithm. +CLP is available under the Eclipse Public License version 1.0, and the users interact with +it through either an interactive command line or through a C++ API. CLP is able to use the input MPS, Free MPS and LP file formats. -\item {{\bf The percentage of stopped simulation runs}} -%\subsubsection{The percentage of stopped simulation runs} -The results presented in this experiment, is to show the comparison of DiLCO-16 protocol and DiLCO-32 protocol with other two approaches from point of view of stopped simulation runs per round. -Figure~\ref{Figures/ch3/R3/SR} illustrates the percentage of stopped simulation -runs per round for 150 deployed nodes. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R3/SR.pdf} -\caption{Percentage of stopped simulation runs for 150 deployed nodes } -\label{Figures/ch3/R3/SR} -\end{figure} -It has been observed that DESK is the approach, which stops first because it consumes more energy for communication as well as it turn on a large number of redundant nodes during the sensing phase. On the other hand DiLCO-16 protocol and DiLCO-32 protocol have less stopped simulation runs in comparison with DESK and GAF because it distributed the optimization on several subregions in order to optimizes the coverage and the lifetime of the network by activating a less number of nodes during the sensing phase leading to extend the network lifetime and coverage preservation. The optimization effectively continues as long as a network in a subregion is still connected. +\item \textbf{CPLEX:} -\item {{\bf The Energy Consumption}} -%\subsubsection{The Energy Consumption} -In this experiment, we have studied the effect of the energy consumed by the wireless sensor network during the communication, computation, listening, active, and sleep modes for different network densities and compare it with other approaches. Figures~\ref{Figures/ch3/R3/EC95} and ~\ref{Figures/ch3/R3/EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. +IBM ILOG CPLEX Optimization Studio (often informally referred to simply as CPLEX)~\cite{ref218,ref211} is a commercial, analytical decision support, and optimization software toolkit for fast development of optimization models using mathematical and constraint programming. It combines an integrated development environment (IDE) with the powerful Optimization Programming Language (OPL) and high-performance ILOG CPLEX optimizer solvers. CPLEX is developed by IBM and is designed to tackle the large scale (mixed integer) linear problems. The CPLEX optimizer includes a modeling layer called concert that provides interfaces to the C++, C$\#$, Python, and Java languages. Furthermore, it provides a connection to Microsoft Excel and MATLAB. +CPLEX is capable of optimize the business decisions with high-performance optimization engines, develop and deploy optimization models quickly by using flexible interfaces and pre-constructed deployment scenarios, and create real-world applications -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R3/EC95.pdf} -\caption{Energy Consumption with $95\%-Lifetime$} -\label{Figures/ch3/R3/EC95} -\end{figure} -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R3/EC50.pdf} -\caption{Energy Consumption with $Lifetime50$} -\label{Figures/ch3/R3/EC50} -\end{figure} +\item \textbf{Gurobi:} -The results show that DiLCO-16 protocol and DiLCO-32 protocol are the most competitive from the energy consumption point of view. The other approaches have a high energy consumption due to activating a larger number of redundant nodes as well as the energy consumed during the different modes of sensor nodes. In fact, a distributed method on the subregions greatly reduces the number of communications and the time of listening so thanks to the partitioning of the initial network into several independent subnetworks. +The Gurobi Optimizer~\cite{ref219,ref220,ref211} is a commercial optimization solver for LP, quadratic programming (QP), quadratically constrained programming (QCP), mixed integer linear programming (MILP), mixed-integer quadratic programming (MIQP), and mixed-integer quadratically constrained programming (MIQCP). The Gurobi optimizer is written in C and it is available on all computing platforms and accessible from several programming languages. The Gurobi optimizer supports interfaces for various programming and modeling languages including: object-oriented interfaces for C++, Java, .NET, and Python; matrix-oriented interfaces for C, MATLAB, and R; Links to standard modeling languages like AIMMS, AMPL, GAMS, and MPL; and Links to Excel through Premium Solver Platform and Risk Solver Platform. -\item {{\bf The Network Lifetime}} -%\subsubsection{The Network Lifetime} -In this experiment, we have observed the superiority of DiLCO-16 protocol and DiLCO-32 protocol against other two approaches in prolonging the network lifetime. In figures~\ref{Figures/ch3/R3/LT95} and \ref{Figures/ch3/R3/LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes. +\end{enumerate} -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R3/LT95.pdf} -\caption{Network Lifetime for $Lifetime95$} -\label{Figures/ch3/R3/LT95} -\end{figure} +B. Meindl and M. Templ~\cite{ref212} studied the efficiency of above optimization solvers and they are used the attacker problems in order to achieve the performance comparison of GLPK, lp$\_$solve, CLP, GUROBI, and CPLEX optimization solvers. They are considered a total of 200 problem instances for this study, 100 of these problem instances are based on problems with two dimensions, and 100 problem instances are three-dimensional. +Tables~\ref{my-label1}, \ref{my-label2}, and \ref{my-label3} compares the running times that it took each of the five linear program solvers to find solutions to the 200 two-dimensional, 200 three-dimensional and all 400 problem instances. In order to solve the attacker’s problem for a given problem instance, it is needed to both minimize and maximize any given problem. Therefore, a total of 400 problem instances had been solved when only 200 problem instances have been generated. -\begin{figure}[h!] -\centering -\includegraphics[scale=0.6]{Figures/ch3/R3/LT50.pdf} -\caption{Network Lifetime for $Lifetime50$} -\label{Figures/ch3/R3/LT50} -\end{figure} -As highlighted by figures~\ref{Figures/ch3/R3/LT95} and \ref{Figures/ch3/R3/LT50}, the network lifetime obviously increases when the size of the network increases, with DiLCO-16 protocol and DiLCO-32 protocol that leads to maximize the lifetime of the network compared with other approaches. -By choosing the best suited nodes, for each round, by optimizing the coverage and lifetime of the network to cover the area of interest and by letting the other ones sleep in order to be used later in next periods, DiLCO-16 protocol and DiLCO-32 protocol efficiently prolonged the network lifetime. -Comparison shows that DiLCO-16 protocol and DiLCO-32 protocol, which are used distributed optimization over the subregions, is the best one because it is robust to network disconnection during the network lifetime as well as it consumes less energy in comparison with other approaches. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network. +\begin{table}[h] +\caption{Scaled running times for 2-dimensional problem instances} +\label{my-label1} +\resizebox{\textwidth}{!}{% +\begin{tabular}{|c|c|c|c|c|c|} +\hline +\textbf{Optimization Solvers} & \textbf{GLPK} & \textbf{lp\_solve} & \textbf{CLP} & \textbf{Gurobi} & \textbf{CPLEX} \\ \hline +\textbf{Scaled Running Times} & 9.00 & 137.00 & 13.00 & 4.00 & 1.00 \\ \hline +\end{tabular} +} +\end{table} +\begin{table}[h] +\caption{Scaled running times for 3-dimensional problem instances} +\label{my-label2} +\resizebox{\textwidth}{!}{% +\begin{tabular}{|c|c|c|c|c|c|} +\hline +\textbf{Optimization Solvers} & \textbf{GLPK} & \textbf{lp\_solve} & \textbf{CLP} & \textbf{Gurobi} & \textbf{CPLEX} \\ \hline +\textbf{Scaled Running Times} & 205.00 & 4149.00 & 2823.00 & 164.00 & 1.00 \\ \hline +\end{tabular} +} +\end{table} + + +\begin{table}[h] +\caption{Scaled running times for all problems} +\label{my-label3} +\resizebox{\textwidth}{!}{% +\begin{tabular}{|c|c|c|c|c|c|} +\hline +\textbf{Optimization Solvers} & \textbf{GLPK} & \textbf{lp\_solve} & \textbf{CLP} & \textbf{Gurobi} & \textbf{CPLEX} \\ \hline +\textbf{Scaled Running Times} & 189.00 & 3822.00 & 2594.00 & 151.00 & 1.00 \\ \hline +\end{tabular} +} +\end{table} + + +The results that illustrated in tables~\ref{my-label1}, \ref{my-label2}, and \ref{my-label3} indicate that open source solvers perform worse than standard commercial solvers when applied to instances of the attacker’s problem. GLPK outperforms the free and open source solvers, but still is slower than CPLEX and GUROBI. We are used the GLPK as an optimization solver in this dissertation so as to solve the proposed integer programs during the decision phase of the network lifetime. +Several reasons have been led us to use the GLPK optimization solver including: + +\begin{enumerate} [(i)] +\item It is free and it's installation is easy. +\item GLPK does not lead to a fast solution of a large problem as in commercial optimization solvers, but it solves the smaller problems with a reasonable time. In this dissertation, we are used divide-and-conquer method so as to divide the large problem into smaller instances and then the GLPK optimization solver is used to solve the smaller problem. +\item It is easy to use the GLPK solver and it is possible to call it's routines within the simulator. +\item GLPK comes with a stand-alone solver, a callable library, and the modeling language GMPL which is compatible with AMPL. GMPL is extremely easy to learn. + +\item Modeling language and solver can be used independently. + +\item GUI for Windows, Mac OS X, and Linux available. +\item Database support and formatted text output. +\item Java, python, matlab interface available. +\item Exact simplex algorithm and branch-and-bound method are integrated with GLPK. \end{enumerate} -\section{Conclusion} -\label{ch3:sec:05} -A crucial problem in WSN is to schedule the sensing activities of the different nodes in order to ensure both coverage of the area of interest and longer -network lifetime. The inherent limitations of sensor nodes, in energy provision, communication and computing capacities, require protocols that optimize the use -of the available resources to fulfill the sensing task. To address this problem, this chapter proposes a two-step approach. Firstly, the field of sensing -is divided into smaller subregions using the concept of divide-and-conquer method. Secondly, a distributed protocol called Distributed Lifetime Coverage -Optimization is applied in each subregion to optimize the coverage and lifetime performances. In a subregion, our protocol consists in electing a leader node -which will then perform a sensor activity scheduling. The challenges include how to select the most efficient leader in each subregion and the best representative set of active nodes to ensure a high level of coverage. To assess the performance of our approach, we compared it with two other approaches using many performance metrics like coverage ratio or network lifetime. We have also studied the impact of the number of subregions chosen to subdivide the area of interest, considering different network sizes. The experiments show that increasing the number of subregions improves the lifetime. The more subregions there are, the more robust the network is against random disconnection resulting from dead nodes. However, for a given sensing field and network size there is an optimal number of subregions. Therefore, in case of our simulation context a subdivision in $16$~subregions seems to be the most relevant. +\section{Conclusion} +\indent In this chapter, an overview about the evaluation tools and optimization solvers for wireless sensor networks have been presented. The testbed for wireless sensor network and some major types have been demonstrated. We have found that most researchers in the field of WSNs used the simulators to evaluate their works because they are free, easy to use, and more flexible and scalable for a large WSNs. The simulation tools and several types of wireless sensor network simulators are described. The comparison among some types of network simulators has nominated OMNeT++ simulator as a good candidate to be used as performance evaluation tool so as to evaluate the efficiency of our protocols in this dissertation. This chapter highlights the optimization problem in WSNs and the most popular free and commercial liner optimization solvers. The performance of the commercial optimization solvers outperform the free optimization solvers. GLPK has chosen as a good candidate to solve the proposed optimization problems in this dissertation because it is free, easy to use, and better than some other free optimization solvers. diff --git a/CHAPITRE_04.tex b/CHAPITRE_04.tex index d09e8b3..ac6a480 100644 --- a/CHAPITRE_04.tex +++ b/CHAPITRE_04.tex @@ -4,66 +4,210 @@ %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Multiround Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks} +\chapter{Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks} \label{ch4} + + \section{Summary} \label{ch4:sec:01} -Coverage and lifetime are two paramount problems in Wireless Sensor Networks (WSNs). In this paper, a method called Multiround Distributed Lifetime Coverage -Optimization protocol (MuDiLCO) is proposed to maintain the coverage and to improve the lifetime in wireless sensor networks. The area of interest is first -divided into subregions and then the MuDiLCO protocol is distributed on the sensor nodes in each subregion. The proposed MuDiLCO protocol works in periods -during which sets of sensor nodes are scheduled to remain active for a number of rounds during the sensing phase, to ensure coverage so as to maximize the -lifetime of WSN. The decision process is carried out by a leader node, which solves an integer program to produce the best representative sets to be used -during the rounds of the sensing phase. Compared with some existing protocols, simulation results based on multiple criteria (energy consumption, coverage -ratio, and so on) show that the proposed protocol can prolong efficiently the network lifetime and improve the coverage performance. - -\section{MuDiLCO Protocol Description} +In this chapter, a Distributed Lifetime Coverage Optimization protocol (DiLCO) to maintain +the coverage and to improve the lifetime in wireless sensor networks is +proposed. The area of interest is first divided into subregions using a +divide-and-conquer method and then the DiLCO protocol is distributed on the +sensor nodes in each subregion. The DiLCO combines two efficient techniques: +leader election for each subregion, followed by an optimization-based planning +of activity scheduling decisions for each subregion. The proposed DiLCO works +into rounds during which a small number of nodes, remaining active for sensing, +is selected to ensure coverage so as to maximize the lifetime of wireless sensor +network. Each round consists of four phases: (i)~Information Exchange, +(ii)~Leader Election, (iii)~Decision, and (iv)~Sensing. The decision process is +carried out by a leader node, which solves an integer program. Compared with +some existing protocols, simulation results show that the proposed protocol can +prolong the network lifetime and improve the coverage performance effectively. + + +\section{Description of the DiLCO Protocol} \label{ch4:sec:02} -\noindent In this section, we introduce the MuDiLCO protocol which is distributed on each subregion in the area of interest. It is based on two energy-efficient -mechanisms: subdividing the area of interest into several subregions (like cluster architecture) using divide and conquer method, where the sensor nodes cooperate within each subregion as independent group in order to achieve a network leader election; and sensor activity scheduling for maintaining the coverage and prolonging the network lifetime, which are applied periodically. MuDiLCO protocol uses the same assumptions and network model that presented in chapter 3, section \ref{ch3:sec:02:01} and it has been used the primary point coverage model which is described in the same chapter, section \ref{ch3:sec:02:02}. +\noindent In this section, we introduce the DiLCO protocol which is distributed on each subregion in the area of interest. It is based on two efficient +techniques: network leader election and sensor activity scheduling for coverage preservation and energy conservation, applied periodically to efficiently +maximize the lifetime in the network. + +\subsection{Assumptions and Network Model} +\label{ch4:sec:02:01} +\noindent We consider a sensor network composed of static nodes distributed independently and uniformly at random. A high density deployment ensures a high +coverage ratio of the interested area at the start. The nodes are supposed to have homogeneous characteristics from a communication and a processing point of +view, whereas they have heterogeneous energy provisions. Each node has access to its location thanks, either to a hardware component (like a GPS unit), or a +location discovery algorithm. Furthermore, we assume that sensor nodes are time synchronized in order to properly coordinate their operations to achieve complex sensing tasks~\cite{ref157}. The two sensor nodes have been supposed a neighbors if the euclidean distance between them is at most equal to 2$R_s$. -\subsection{Background Idea and Algorithm} + +\indent We consider a boolean disk coverage model which is the most widely used sensor coverage model in the literature. Thus, since a sensor has a constant +sensing range $R_s$, every space points within a disk centered at a sensor with the radius of the sensing range is said to be covered by this sensor. We also +assume that the communication range $R_c$ is at least twice the sensing range $R_s$ (i.e., $R_c \geq 2R_s$). In fact, Zhang and Hou~\cite{ref126} proved that if the transmission range fulfills the previous hypothesis, a complete coverage of a convex area implies connectivity among the working nodes in the active mode. 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) is 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. + +During the execution of the DiLCO protocol, two kinds of packet will be used: + +\begin{enumerate} [(i)] +\item \textbf{INFO packet:} sent by each sensor node to all the nodes inside a same subregion for information exchange. +\item \textbf{ActiveSleep packet:} sent by the leader to all the nodes in its subregion to inform them to stay Active or to go Sleep during the sensing phase. +\end{enumerate} + +There are five possible status for each sensor node in the network: +%and each sensor node will have five possible status in the network: +\begin{enumerate}[(i)] +\item \textbf{LISTENING:} sensor is waiting for a decision (to be active or not). +\item \textbf{COMPUTATION:} sensor applies the optimization process as leader. +\item \textbf{ACTIVE:} sensor is active. +\item \textbf{SLEEP:} sensor is turned off. +\item \textbf{COMMUNICATION:} sensor is transmitting or receiving packet. +\end{enumerate} + +\subsection{Primary Point Coverage Model} \label{ch4:sec:02:02} -The area of interest can be divided using the divide-and-conquer strategy into -smaller areas, called subregions, and then our MuDiLCO protocol will be -implemented in each subregion in a distributed way. - -As can be seen in Figure~\ref{fig2}, our protocol works in periods fashion, -where each is divided into 4 phases: Information~Exchange, Leader~Election, -Decision, and Sensing. The information exchange among wireless sensor nodes is described in chapter 3, section \ref{ch3:sec:02:03:01}. The leader election in each subregion is explained in chapter 3, section \ref{ch3:sec:02:03:02}, but the difference in that the elected leader in each subregion is for each period. In decision phase, each WSNL will solve an integer program to select which cover sets will be -activated in the following sensing phase to cover the subregion to which it belongs. The integer program will produce $T$ cover sets, one for each round. The WSNL will send an Active-Sleep packet to each sensor in the subregion based on the algorithm's results, indicating if the sensor should be active or not in -each round of the sensing phase. Each sensing phase may be itself divided into $T$ rounds -and for each round a set of sensors (a cover set) is responsible for the sensing -task. Each sensor node in the subregion will -receive an Active-Sleep packet from WSNL, informing it to stay awake or to go to -sleep for each round of the sensing phase. Algorithm~\ref{alg:MuDiLCO}, which -will be executed by each node at the beginning of a period, explains how the -Active-Sleep packet is obtained. In this way a multiround optimization process is performed during each -period after Information~Exchange and Leader~Election phases, in order to -produce $T$ cover sets that will take the mission of sensing for $T$ rounds. -\begin{figure}[ht!] -\centering \includegraphics[width=160mm]{Figures/ch4/GeneralModel.jpg} % 70mm Modelgeneral.pdf -\caption{The MuDiLCO protocol scheme executed on each node} -\label{fig2} -\end{figure} +\indent Instead of working with the coverage area, we consider for each +sensor a set of points called primary points. We also assume that the +sensing disk defined by a sensor is covered if all the primary points of +this sensor are covered. By knowing the position (point center: ($p_x,p_y$)) of a wireless +sensor node and its $R_s$, we calculate the primary points directly +based on the proposed model. We use these primary points (that can be +increased or decreased if necessary) as references to ensure that the +monitored region of interest is covered by the selected set of +sensors, instead of using all the points in the area. + +\indent We can calculate the positions of the selected primary +points in the circle disk of the sensing range of a wireless sensor +node (see figure~\ref{fig1}) as follows:\\ +$(p_x,p_y)$ = point center of wireless sensor node\\ +$X_1=(p_x,p_y)$ \\ +$X_2=( p_x + R_s * (1), p_y + R_s * (0) )$\\ +$X_3=( p_x + R_s * (-1), p_y + R_s * (0)) $\\ +$X_4=( p_x + R_s * (0), p_y + R_s * (1) )$\\ +$X_5=( p_x + R_s * (0), p_y + R_s * (-1 )) $\\ +$X_6= ( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (0)) $\\ +$X_7=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (0))$\\ +$X_8=( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\ +$X_9=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\ +$X_{10}=( p_x + R_s * (\frac{-\sqrt{2}}{2}), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\ +$X_{11}=( p_x + R_s * (\frac{\sqrt{2}}{2}), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\ +$X_{12}=( p_x + R_s * (0), p_y + R_s * (\frac{\sqrt{2}}{2})) $\\ +$X_{13}=( p_x + R_s * (0), p_y + R_s * (\frac{-\sqrt{2}}{2})) $\\ +$X_{14}=( p_x + R_s * (\frac{\sqrt{3}}{2}), p_y + R_s * (\frac{1}{2})) $\\ +$X_{15}=( p_x + R_s * (\frac{-\sqrt{3}}{2}), p_y + R_s * (\frac{1}{2})) $\\ +$X_{16}=( p_x + R_s * (\frac{\sqrt{3}}{2}), p_y + R_s * (\frac{- 1}{2})) $\\ +$X_{17}=( p_x + R_s * (\frac{-\sqrt{3}}{2}), p_y + R_s * (\frac{- 1}{2})) $\\ +$X_{18}=( p_x + R_s * (\frac{\sqrt{3}}{2}), p_y + R_s * (0) $\\ +$X_{19}=( p_x + R_s * (\frac{-\sqrt{3}}{2}), p_y + R_s * (0) $\\ +$X_{20}=( p_x + R_s * (0), p_y + R_s * (\frac{1}{2})) $\\ +$X_{21}=( p_x + R_s * (0), p_y + R_s * (-\frac{1}{2})) $\\ +$X_{22}=( p_x + R_s * (\frac{1}{2}), p_y + R_s * (\frac{\sqrt{3}}{2})) $\\ +$X_{23}=( p_x + R_s * (\frac{- 1}{2}), p_y + R_s * (\frac{\sqrt{3}}{2})) $\\ +$X_{24}=( p_x + R_s * (\frac{- 1}{2}), p_y + R_s * (\frac{-\sqrt{3}}{2})) $\\ +$X_{25}=( p_x + R_s * (\frac{1}{2}), p_y + R_s * (\frac{-\sqrt{3}}{2})) $. + +\begin{figure}[h!] +\centering + \begin{multicols}{3} +\centering +\includegraphics[scale=0.20]{Figures/ch4/fig21.pdf}\\~ ~ ~ ~ ~(a) +\includegraphics[scale=0.20]{Figures/ch4/fig22.pdf}\\~ ~ ~ ~ ~(b) +\includegraphics[scale=0.20]{Figures/ch4/principles13.pdf}\\~ ~ ~ ~ ~(c) +\hfill +\includegraphics[scale=0.20]{Figures/ch4/fig24.pdf}\\~ ~ ~(d) +\includegraphics[scale=0.20]{Figures/ch4/fig25.pdf}\\~ ~ ~(e) +\includegraphics[scale=0.20]{Figures/ch4/fig26.pdf}\\~ ~ ~(f) +\end{multicols} +\caption{Wireless Sensor Node represented by (a)5, (b)9, (c)13, (d)17, (e)21 and (f)25 primary points respectively} +\label{fig1} +\end{figure} -This protocol minimizes the impact of unexpected node failure (not due to batteries running out of energy), because it works in periods. -On the one hand, if a node failure is detected before making the decision, the node will not participate to this phase, and, on the other hand, if the node failure occurs after the decision, the sensing task of the network will be temporarily affected: only during the period of sensing until a new period starts. +\subsection{Main Idea} +\label{ch4:sec:02:03} +\noindent We start by applying a divide-and-conquer algorithm to partition the +area of interest into smaller areas called subregions and then our protocol is +executed simultaneously in each subregion. -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 (Information Exchange, Leader Election, and Decision) are energy consuming for some nodes, even when they do not join the network to monitor the area. +\begin{figure}[ht!] +\centering +\includegraphics[scale=0.60]{Figures/ch4/FirstModel.pdf} % 70mm +\caption{DiLCO protocol} +\label{FirstModel} +\end{figure} + +As shown in Figure~\ref{FirstModel}, the proposed DiLCO protocol is a periodic +protocol where each period is decomposed into 4~phases: Information Exchange, +Leader Election, Decision, and Sensing. For each period there will be exactly +one cover set in charge of the sensing task. A periodic scheduling is +interesting because it enhances the robustness of the network against node +failures. First, a node that has not enough energy to complete a period, or +which fails before the decision is taken, will be excluded from the scheduling +process. Second, if a node fails later, whereas it was supposed to sense the +region of interest, it will only affect the quality of the coverage until the +definition of a new cover set in the next period. Constraints, like energy +consumption, can be easily taken into consideration since the sensors can update +and exchange their information during the first phase. Let us notice that the +phases before the sensing one (Information Exchange, Leader Election, and +Decision) are energy consuming for all the nodes, even nodes that will not be +retained by the leader to keep watch over the corresponding area. + +Below, we describe each phase in more details. + +\subsubsection{Information Exchange Phase} +\label{ch4:sec:02:03:01} +Each sensor node $j$ sends its position, remaining energy $RE_j$, and the number +of neighbors $NBR_j$ to all wireless sensor nodes in its subregion by using an +INFO packet (containing information on position coordinates, current remaining +energy, sensor node ID, number of its one-hop live neighbors) and then waits for +packets sent by other nodes. After that, each node will have information about +all the sensor nodes in the subregion. In our model, the remaining energy +corresponds to the time that a sensor can live in the active mode. + +\subsubsection{Leader Election Phase} +\label{ch4:sec:02:03:02} +This step includes choosing the Wireless Sensor Node Leader (WSNL), which will be responsible for executing the coverage algorithm. Each subregion in the area of interest will select its own WSNL independently for each round. All the sensor nodes cooperate to select WSNL. The nodes in the same subregion will select the leader based on the received information from all other nodes in the same subregion. The selection criteria are, in order of importance: larger number of neighbors, larger remaining energy, and then in case of equality, larger index. Observations on previous simulations suggest to use the number of one-hop neighbors as the primary criterion to reduce energy consumption due to the communications. + + +\subsubsection{Decision phase} +\label{ch4:sec:02:03:03} +The WSNL will solve an integer program (see section~\ref{ch4:sec:03}) to select which sensors will be activated in the following sensing phase to cover the subregion. WSNL will send Active-Sleep packet to each sensor in the subregion based on the algorithm's results. + + +\subsubsection{Sensing phase} +\label{ch4:sec:02:03:04} +Active sensors in the round will execute their sensing task to +preserve maximal coverage in the region of interest. We will assume +that the cost of keeping a node awake (or asleep) for sensing task is +the same for all wireless sensor nodes in the network. Each sensor +will receive an Active-Sleep packet from WSNL informing it to stay +awake or to go to sleep for a time equal to the period of sensing until +starting a new round. + +An outline of the protocol implementation is given by Algorithm~\ref{alg:DiLCO} +which describes the execution of a period by a node (denoted by $s_j$ for a +sensor node indexed by $j$). At the beginning a node checks whether it has +enough energy to stay active during the next sensing phase. If yes, it exchanges +information with all the other nodes belonging to the same subregion: it +collects from each node its position coordinates, remaining energy ($RE_j$), ID, +and the number of one-hop neighbors still alive. Once the first phase is +completed, the nodes of a subregion choose a leader to take the decision based +on the following criteria with decreasing importance: larger number of +neighbors, larger remaining energy, and then in case of equality, larger index. +After that, if the sensor node is leader, it will execute the integer program +algorithm (see Section~\ref{ch4:sec:03}) which provides a set of sensors planned to be +active in the next sensing phase. As leader, it will send an Active-Sleep packet +to each sensor in the same subregion to indicate it if it has to be active or +not. Alternately, if the sensor is not the leader, it will wait for the +Active-Sleep packet to know its state for the coming sensing phase. - \begin{algorithm}[h!] - % \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} \; - \If{ $RE_j \geq E_{R}$ }{ + \If{ $RE_j \geq E_{th}$ }{ \emph{$s_j.status$ = COMMUNICATION}\; \emph{Send $INFO()$ packet to other nodes in the subregion}\; \emph{Wait $INFO()$ packet from other nodes in the subregion}\; @@ -74,17 +218,16 @@ The energy consumption and some other constraints can easily be taken into \emph{LeaderID = Leader election}\; \If{$ s_j.ID = LeaderID $}{ \emph{$s_j.status$ = COMPUTATION}\; - \emph{$\left\{\left(X_{1,k},\dots,X_{T,k}\right)\right\}_{k \in J}$ = - Execute Integer Program Algorithm($T,J$)}\; + \emph{$\left\{\left(X_{1},\dots,X_{k},\dots,X_{J}\right)\right\}$ = + Execute Integer Program Algorithm($J$)}\; \emph{$s_j.status$ = COMMUNICATION}\; - \emph{Send $ActiveSleep()$ to each node $k$ in subregion a packet \\ - with vector of activity scheduling $(X_{1,k},\dots,X_{T,k})$}\; + \emph{Send $ActiveSleep()$ to each node $k$ in subregion} \; \emph{Update $RE_j $}\; } \Else{ \emph{$s_j.status$ = LISTENING}\; \emph{Wait $ActiveSleep()$ packet from the Leader}\; - % \emph{After receiving Packet, Retrieve the schedule and the $T$ rounds}\; + \emph{Update $RE_j $}\; } % } @@ -92,34 +235,28 @@ The energy consumption and some other constraints can easily be taken into \Else { Exclude $s_j$ from entering in the current sensing phase} % \emph{return X} \; -\caption{MuDiLCO($s_j$)} -\label{alg:MuDiLCO} +\caption{DiLCO($s_j$)} +\label{alg:DiLCO} \end{algorithm} - -\subsection{Primary Points based Multiround Coverage Problem Formulation} -%\label{ch4:sec:02:02} - -According to our algorithm~\ref{alg:MuDiLCO}, the integer program is based on the model -proposed by \cite{ref156} with some modifications, where the objective is -to find a maximum number of disjoint cover sets. To fulfill this goal, the -authors proposed an integer program which forces undercoverage and overcoverage -of targets to become minimal at the same time. They use binary variables -$x_{jl}$ to indicate if sensor $j$ belongs to cover set $l$. In our model, we -consider binary variables $X_{t,j}$ to determine the possibility of activating -sensor $j$ during round $t$ of a given sensing phase. We also consider primary -points as targets. The set of primary points is denoted by $P$ and the set of -sensors by $J$. Only sensors able to be alive during at least one round are -involved in the integer program. - - -For a primary point $p$, let $\alpha_{j,p}$ denote the indicator function of -whether the point $p$ is covered, that is: +\section{Primary Points based Coverage Problem Formulation} +\label{ch4:sec:03} +\indent Our model is based on the model proposed by \cite{ref156} where the +objective is to find a maximum number of disjoint cover sets. To accomplish +this goal, the authors proposed an integer program which forces undercoverage +and overcoverage of targets to become minimal at the same time. They use binary +variables $x_{jl}$ to indicate if sensor $j$ belongs to cover set $l$. In our +model, we consider that the binary variable $X_{j}$ determines the activation of +sensor $j$ in the sensing phase. We also consider primary points as targets. +The set of primary points is denoted by $P$ and the set of sensors by $J$. + +\noindent Let $\alpha_{jp}$ denote the indicator function of whether the primary +point $p$ is covered, that is: \begin{equation} -\alpha_{j,p} = \left \{ +\alpha_{jp} = \left \{ \begin{array}{l l} 1 & \mbox{if the primary point $p$ is covered} \\ & \mbox{by sensor node $j$}, \\ @@ -127,117 +264,80 @@ whether the point $p$ is covered, that is: \end{array} \right. %\label{eq12} \end{equation} -The number of active sensors that cover the primary point $p$ during -round $t$ is equal to $\sum_{j \in J} \alpha_{j,p} * X_{t,j}$ where: +The number of active sensors that cover the primary point $p$ can then be +computed by $\sum_{j \in J} \alpha_{jp} * X_{j}$ where: \begin{equation} -X_{t,j} = \left \{ +X_{j} = \left \{ \begin{array}{l l} - 1& \mbox{if sensor $j$ is active during round $t$,} \\ + 1& \mbox{if sensor $j$ is active,} \\ 0 & \mbox{otherwise.}\\ \end{array} \right. %\label{eq11} \end{equation} -We define the Overcoverage variable $\Theta_{t,p}$ as: +We define the Overcoverage variable $\Theta_{p}$ as: \begin{equation} - \Theta_{t,p} = \left \{ + \Theta_{p} = \left \{ \begin{array}{l l} - 0 & \mbox{if the primary point $p$}\\ - & \mbox{is not covered during round $t$,}\\ - \left( \sum_{j \in J} \alpha_{jp} * X_{tj} \right)- 1 & \mbox{otherwise.}\\ + 0 & \mbox{if the primary point}\\ + & \mbox{$p$ is not covered,}\\ + \left( \sum_{j \in J} \alpha_{jp} * X_{j} \right)- 1 & \mbox{otherwise.}\\ \end{array} \right. \label{eq13} \end{equation} -More precisely, $\Theta_{t,p}$ represents the number of active sensor nodes -minus one that cover the primary point $p$ during round $t$. The -Undercoverage variable $U_{t,p}$ of the primary point $p$ during round $t$ is -defined by: +\noindent More precisely, $\Theta_{p}$ represents the number of active sensor +nodes minus one that cover the primary point~$p$. The Undercoverage variable +$U_{p}$ of the primary point $p$ is defined by: \begin{equation} -U_{t,p} = \left \{ +U_{p} = \left \{ \begin{array}{l l} - 1 &\mbox{if the primary point $p$ is not covered during round $t$,} \\ + 1 &\mbox{if the primary point $p$ is not covered,} \\ 0 & \mbox{otherwise.}\\ \end{array} \right. \label{eq14} \end{equation} -Our coverage optimization problem can then be formulated as follows: -\begin{equation} - \min \sum_{t=1}^{T} \sum_{p=1}^{P} \left(W_{\theta}* \Theta_{t,p} + W_{U} * U_{t,p} \right) \label{eq15} -\end{equation} - -Subject to -\begin{equation} - \sum_{j=1}^{|J|} \alpha_{j,p} * X_{t,j} = \Theta_{t,p} - U_{t,p} + 1 \label{eq16} \hspace{6 mm} \forall p \in P, t = 1,\dots,T -\end{equation} - -\begin{equation} - \sum_{t=1}^{T} X_{t,j} \leq \lfloor {RE_{j}/E_{R}} \rfloor \hspace{6 mm} \forall j \in J, t = 1,\dots,T - \label{eq144} -\end{equation} - -\begin{equation} -X_{t,j} \in \lbrace0,1\rbrace, \hspace{10 mm} \forall j \in J, t = 1,\dots,T \label{eq17} -\end{equation} - -\begin{equation} -U_{t,p} \in \lbrace0,1\rbrace, \hspace{10 mm}\forall p \in P, t = 1,\dots,T \label{eq18} +\noindent Our coverage optimization problem can then be formulated as follows: +\begin{equation} \label{eq:ip2r} +\left \{ +\begin{array}{ll} +\min \sum_{p \in P} (w_{\theta} \Theta_{p} + w_{U} U_{p})&\\ +\textrm{subject to :}&\\ +\sum_{j \in J} \alpha_{jp} X_{j} - \Theta_{p}+ U_{p} =1, &\forall p \in P\\ +%\label{c1} +%\sum_{t \in T} X_{j,t} \leq \frac{RE_j}{e_t} &\forall j \in J \\ +%\label{c2} +\Theta_{p}\in \mathbb{N}, &\forall p \in P\\ +U_{p} \in \{0,1\}, &\forall p \in P \\ +X_{j} \in \{0,1\}, &\forall j \in J +\end{array} +\right. \end{equation} -\begin{equation} - \Theta_{t,p} \geq 0 \hspace{10 mm}\forall p \in P, t = 1,\dots,T \label{eq178} -\end{equation} - - - \begin{itemize} -\item $X_{t,j}$: indicates whether or not the sensor $j$ is actively sensing - during round $t$ (1 if yes and 0 if not); -\item $\Theta_{t,p}$ - {\it overcoverage}: the number of sensors minus one that - are covering the primary point $p$ during round $t$; -\item $U_{t,p}$ - {\it undercoverage}: indicates whether or not the primary - point $p$ is being covered during round $t$ (1 if not covered and 0 if - covered). +\item $X_{j}$ : indicates whether or not the sensor $j$ is actively sensing (1 + if yes and 0 if not); +\item $\Theta_{p}$ : {\it overcoverage}, the number of sensors minus one that + are covering the primary point $p$; +\item $U_{p}$ : {\it undercoverage}, indicates whether or not the primary point + $p$ is being covered (1 if not covered and 0 if covered). \end{itemize} The first group of constraints indicates that some primary point $p$ should be covered by at least one sensor and, if it is not always the case, overcoverage and undercoverage variables help balancing the restriction equations by taking -positive values. The constraint given by equation~(\ref{eq144}) guarantees that -the sensor has enough energy ($RE_j$ corresponds to its remaining energy) to be -alive during the selected rounds knowing that $E_{R}$ is the amount of energy -required to be alive during one round. - -There are two main objectives. First, we limit the overcoverage of primary -points in order to activate a minimum number of sensors. Second we prevent the -absence of monitoring on some parts of the subregion by minimizing the -undercoverage. The weights $W_\theta$ and $W_U$ must be properly chosen so as -to guarantee that the maximum number of points are covered during each round. -%% MS W_theta is smaller than W_u => problem with the following sentence -In our simulations priority is given to the coverage by choosing $W_{U}$ very -large compared to $W_{\theta}$. - - - - +positive values. Two objectives can be noticed in our model. First, we limit the +overcoverage of primary points to activate as few sensors as possible. Second, +to avoid a lack of area monitoring in a subregion we minimize the +undercoverage. Both weights $w_\theta$ and $w_U$ must be carefully chosen in +order to guarantee that the maximum number of points are covered during each +period. +\section{Simulation Results and Analysis} +\label{ch4:sec:04} -\section{Experimental Study and Analysis} -\label{ch4:sec:03} +\subsection{Simulation Framework} +\label{ch4:sec:04:01} -\subsection{Simulation Setup} -\label{ch4:sec:03:01} -We conducted a series of simulations to evaluate the efficiency and the -relevance of our approach, using the discrete event simulator OMNeT++ -\cite{ref158}. The simulation parameters are summarized in Table~\ref{table3}. Each experiment for a network is run over 25~different random topologies and the results presented hereafter are the average of these -25 runs. -%Based on the results of our proposed work in~\cite{idrees2014coverage}, we found as the region of interest are divided into larger subregions as the network lifetime increased. In this simulation, the network are divided into 16 subregions. -We performed simulations for five different densities varying from 50 to -250~nodes deployed over a $50 \times 25~m^2 $ sensing field. More -precisely, the deployment is controlled at a coarse scale in order to ensure -that the deployed nodes can cover the sensing field with the given sensing -range. - -%%RC these parameters are realistic? -%% maybe we can increase the field and sensing range. 5mfor Rs it seems very small... what do the other good papers consider ? +To assess the performance of DiLCO protocol, we have used the discrete event simulator OMNeT++ \cite{ref158} to run different series of simulations. Table~\ref{tablech4} gives the chosen parameters setting. \begin{table}[ht] \caption{Relevant parameters for network initializing.} @@ -250,334 +350,476 @@ range. %inserts double horizontal lines Parameter & Value \\ [0.5ex] -%Case & Strategy (with Two Leaders) & Strategy (with One Leader) & Simple Heuristic \\ [0.5ex] -% inserts table -%heading + \hline % inserts single horizontal line -Sensing field size & $(50 \times 25)~m^2 $ \\ +Sensing Field & $(50 \times 25)~m^2 $ \\ % inserting body of the table %\hline -Network size & 50, 100, 150, 200 and 250~nodes \\ +Nodes Number & 50, 100, 150, 200 and 250~nodes \\ %\hline -Initial energy & 500-700~joules \\ +Initial Energy & 500-700~joules \\ %\hline -Sensing time for one round & 60 Minutes \\ -$E_{R}$ & 36 Joules\\ +Sensing Period & 60 Minutes \\ +$E_{th}$ & 36 Joules\\ $R_s$ & 5~m \\ %\hline -$W_{\Theta}$ & 1 \\ +$w_{\Theta}$ & 1 \\ % [1ex] adds vertical space %\hline -$W_{U}$ & $|P|^2$ +$w_{U}$ & $|P|^2$ %inserts single line \end{tabular} -\label{table3} +\label{tablech4} % is used to refer this table in the text \end{table} - -Our protocol is declined into four versions: MuDiLCO-1, MuDiLCO-3, MuDiLCO-5, -and MuDiLCO-7, corresponding respectively to $T=1,3,5,7$ ($T$ the number of -rounds in one sensing period). In the following, we will make comparisons with -two other methods. The first method, called DESK and proposed by \cite{DESK}, -is a full distributed coverage algorithm. The second method, called -GAF~\cite{GAF}, consists in dividing the region into fixed squares. -During the decision phase, in each square, one sensor is then chosen to remain -active during the sensing phase time. - -Some preliminary experiments were performed in chapter 3 to study the choice of the number of -subregions which subdivides the sensing field, considering different network -sizes. They show that as the number of subregions increases, so does the network -lifetime. Moreover, it makes the MuDiLCO protocol more robust against random -network disconnection due to node failures. However, too many subdivisions -reduce the advantage of the optimization. In fact, there is a balance between -the benefit from the optimization and the execution time needed to solve -it. Therefore, we have set the number of subregions to 16 rather than 32. - -We used the modeling language and the optimization solver which are mentioned in chapter 3, section \ref{ch3:sec:04:02}. In addition, we employed an energy consumption model, which is presented in chapter 3, section \ref{ch3:sec:04:03}. - -%The initial energy of each node is randomly set in the interval $[500;700]$. A sensor node will not participate in the next round if its remaining energy is less than $E_{R}=36~\mbox{Joules}$, the minimum energy needed for the node to stay alive during one round. This value has been computed by multiplying the energy consumed in active state (9.72 mW) by the time in second for one round (3600 seconds). According to the interval of initial energy, a sensor may be alive during at most 20 rounds. - -\subsection{Metrics} -\label{ch4:sec:03:02} -To evaluate our approach we consider the following performance metrics: - -\begin{enumerate}[i] - -\item {{\bf Coverage Ratio (CR)}:} the coverage ratio measures how much of the area - of a sensor field is covered. In our case, the sensing field is represented as - a connected grid of points and we use each grid point as a sample point to - compute the coverage. The coverage ratio can be calculated by: + +Simulations with five different node densities going from 50 to 250~nodes were +performed considering each time 25~randomly generated networks, to obtain +experimental results which are relevant. 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. + + +\subsection{Modeling Language and Optimization Solver} +\label{ch4:sec:04:02} +The modeling language for Mathematical Programming (AMPL)~\cite{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) \cite{glpk} through a Branch-and-Bound method. + +\subsection{Energy Consumption Model} +\label{ch4:sec:04:03} + +\indent In this dissertation, we used an energy consumption model proposed by~\cite{ref111} and based on \cite{ref112} with slight modifications. The energy consumption for sending/receiving the packets is added, whereas the part related to the sensing range is removed because we consider a fixed sensing range. + +\indent For our energy consumption model, we refer to the sensor node Medusa~II which uses an Atmels AVR ATmega103L microcontroller~\cite{ref112}. The typical architecture of a sensor is composed of four subsystems: the MCU subsystem which is capable of computation, communication subsystem (radio) which is responsible for transmitting/receiving messages, the sensing subsystem that collects data, and the power supply which powers the complete sensor node \cite{ref112}. Each of the first three subsystems can be turned on or off depending on the current status of the sensor. Energy consumption (expressed in milliWatt per second) for the different status of the sensor is summarized in Table~\ref{table1}. + +\begin{table}[ht] +\caption{The Energy Consumption Model} +% title of Table +\centering +% used for centering table +\begin{tabular}{|c|c|c|c|c|} +% centered columns (4 columns) + \hline +%inserts double horizontal lines +Sensor status & MCU & Radio & Sensing & Power (mW) \\ [0.5ex] +\hline +% inserts single horizontal line +LISTENING & on & on & on & 20.05 \\ +% inserting body of the table +\hline +ACTIVE & on & off & on & 9.72 \\ +\hline +SLEEP & off & off & off & 0.02 \\ +\hline +COMPUTATION & on & on & on & 26.83 \\ +%\hline +%\multicolumn{4}{|c|}{Energy needed to send/receive a 1-bit} & 0.2575\\ + \hline +\end{tabular} + +\label{table1} +% is used to refer this table in the text +\end{table} + +\indent For the sake of simplicity we ignore the energy needed to turn on the radio, to start up the sensor node, to move from one status to another, etc. Thus, when a sensor becomes active (i.e., it has already chosen its status), it can turn its radio off to save battery. The value of energy spent to send a 1-bit-content message is obtained by using the equation in ~\cite{ref112} to calculate the energy cost for transmitting messages and we propose the same value for receiving the packets. The energy needed to send or receive a 1-bit packet is equal to $0.2575~mW$. + + +%We have used an energy consumption model, which is presented in chapter 1, section \ref{ch1:sec9:subsec2}. + +The initial energy of each node is randomly set in the interval $[500;700]$. A sensor node will not participate in the next round if its remaining energy is less than $E_{th}=36~\mbox{Joules}$, the minimum energy needed for the node to stay alive during one round. This value has been computed by multiplying the energy consumed in active state (9.72 mW) by the time in second for one round (3600 seconds), and adding the energy for the pre-sensing phases. According to the interval of initial energy, a sensor may be alive during at most 20 rounds. + + +\subsection{Performance Metrics} +\label{ch4:sec:04:04} +In the simulations, we introduce the following performance metrics to evaluate +the efficiency of our approach: + +\begin{enumerate}[i)] +%\begin{itemize} +\item {{\bf Network Lifetime}:} we define the network lifetime as the time until + the coverage ratio drops below a predefined threshold. We denote by + $Lifetime_{95}$ (respectively $Lifetime_{50}$) the amount of time during which + the network can satisfy an area coverage greater than $95\%$ (respectively + $50\%$). We assume that the sensor network can fulfill its task until all its + nodes have been drained of their energy or it becomes disconnected. Network + connectivity is crucial because an active sensor node without connectivity + towards a base station cannot transmit any information regarding an observed + event in the area that it monitors. + +\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 to compute the + coverage ratio: \begin{equation*} \scriptsize -\mbox{CR}(\%) = \frac{\mbox{$n^t$}}{\mbox{$N$}} \times 100, +\mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100. \end{equation*} -where $n^t$ is the number of covered grid points by the active sensors of all -subregions during round $t$ in the current sensing phase and $N$ is the total number -of grid points in the sensing field of the network. In our simulations $N = 51 +where $n$ is the number of covered grid points by active sensors of every +subregions during the current sensing phase and $N$ is the total number of grid +points in the sensing field. In our simulations, we have a layout of $N = 51 \times 26 = 1326$ grid points. -\item{{\bf Number of Active Sensors Ratio (ASR)}:} it is important to have as - few active nodes as possible in each round, in order to minimize the - communication overhead and maximize the network lifetime. The Active Sensors - Ratio is defined as follows: -\begin{equation*} -\scriptsize \mbox{ASR}(\%) = \frac{\sum\limits_{r=1}^R - \mbox{$A_r^t$}}{\mbox{$|J|$}} \times 100, -\end{equation*} -where $A_r^t$ is the number of active sensors in the subregion $r$ during round -$t$ in the current sensing phase, $|J|$ is the total number of sensors in the -network, and $R$ is the total number of subregions in the network. - -\item {{\bf Network Lifetime}:} is described in chapter 3, section \ref{ch3:sec:04:04}. - -\item {{\bf Energy Consumption (EC)}:} the average energy consumption can be - seen as the total energy consumed by the sensors during the $Lifetime_{95}$ or - $Lifetime_{50}$ divided by the number of rounds. EC can be computed as - follows: - - % New version with global loops on period +\item {{\bf Energy Consumption}:} energy consumption (EC) can be seen as the + total amount of energy consumed by the sensors during $Lifetime_{95}$ + or $Lifetime_{50}$, divided by the number of periods. Formally, the computation + of EC can be expressed as follows: \begin{equation*} \scriptsize - \mbox{EC} = \frac{\sum\limits_{m=1}^{M_L} \left[ \left( E^{\mbox{com}}_m+E^{\mbox{list}}_m+E^{\mbox{comp}}_m \right) +\sum\limits_{t=1}^{T_m} \left( E^{a}_t+E^{s}_t \right) \right]}{\sum\limits_{m=1}^{M_L} T_m}, + \mbox{EC} = \frac{\sum\limits_{m=1}^{M} \left( E^{\mbox{com}}_m+E^{\mbox{list}}_m+E^{\mbox{comp}}_m + + E^{a}_m+E^{s}_m \right)}{M}, \end{equation*} - -where $M_L$ is the number of periods and $T_m$ the number of rounds in a -period~$m$, both during $Lifetime_{95}$ or $Lifetime_{50}$. The total energy +where $M$ corresponds to the number of periods. The total amount of energy consumed by the sensors (EC) comes through taking into consideration four main -energy factors. The first one , denoted $E^{\scriptsize \mbox{com}}_m$, -represents the energy consumption spent by all the nodes for wireless +energy factors. The first one, denoted $E^{\scriptsize \mbox{com}}_m$, +represents the energy consumption spent by all the nodes for wireless communications during period $m$. $E^{\scriptsize \mbox{list}}_m$, 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 $m$. $E^{\scriptsize \mbox{comp}}_m$ refers to the energy needed by all the leader -nodes to solve the integer program during a period. Finally, $E^a_t$ and $E^s_t$ -indicate the energy consumed by the whole network in round $t$. +nodes to solve the integer program during a period. Finally, $E^a_{m}$ and +$E^s_{m}$ indicate the energy consumed by the whole network in the sensing phase +(active and sleeping nodes). +\item{{\bf Number of Active Sensors Ratio(ASR)}:} It is important to have as few active nodes as possible in each round, +in order to minimize the communication overhead and maximize the +network lifetime. The Active Sensors Ratio is defined as follows: +\begin{equation*} +\scriptsize +\mbox{ASR}(\%) = \frac{\sum\limits_{r=1}^R \mbox{$A_r$}}{\mbox{$S$}} \times 100 . +\end{equation*} +Where: $A_r$ is the number of active sensors in the subregion $r$ during current period, $S$ is the total number of sensors in the network, and $R$ is the total number of the subregions in the network. -\item {{\bf Execution Time}:} is described in chapter 3, section \ref{ch3:sec:04:04}. +\item {{\bf Execution Time}:} a sensor node has limited energy resources and computing power, therefore it is important that the proposed algorithm has the shortest possible execution time. The energy of a sensor node must be mainly used for the sensing phase, not for the pre-sensing ones. In this dissertation, the original execution time is computed on a laptop DELL with Intel Core~i3~2370~M (2.4 GHz) processor (2 cores) and the MIPS (Million Instructions Per Second) rate equal to 35330. To be consistent with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and a MIPS rate equal to 6 to run the optimization resolution, this time is multiplied by 2944.2 $\left( \frac{35330}{2} \times \frac{1}{6} \right)$. -\item {{\bf Stopped simulation runs}:} is described in chapter 3, section \ref{ch3:sec:04:04}. +\item {{\bf Stopped simulation runs}:} A simulation ends when the sensor network becomes disconnected (some nodes are dead and are not able to send information to the base station). We report the number of simulations that are stopped due to network disconnections and for which round it occurs ( in chapter 3, period consists of one round). \end{enumerate} -\subsection{Results Analysis and Comparison } -\label{ch4:sec:03:02} +\subsection{Performance Analysis for Different Subregions} +\label{ch4:sec:04:05} + +In this subsection, we are studied the performance of our DiLCO protocol for a different number of subregions (Leaders). +The DiLCO-1 protocol is a centralized approach on all the area of the interest, while DiLCO-2, DiLCO-4, DiLCO-8, DiLCO-16 and DiLCO-32 are distributed on two, four, eight, sixteen, and thirty-two subregions respectively. We did not take the DiLCO-1 protocol in our simulation results because it need high execution time to give the decision leading to consume all it's energy before producing the solution for optimization problem. + +\begin{enumerate}[i)] +\item {{\bf Coverage Ratio}} +%\subsubsection{Coverage Ratio} +%\label{ch4:sec:04:02:01} +In this experiment, Figure~\ref{Figures/ch4/R1/CR} shows the average coverage ratio for 150 deployed nodes. +\parskip 0pt +\begin{figure}[h!] +\centering + \includegraphics[scale=0.6] {Figures/ch4/R1/CR.pdf} +\caption{Coverage ratio for 150 deployed nodes} +\label{Figures/ch4/R1/CR} +\end{figure} +It can be seen that DiLCO protocol (with 4, 8, 16 and 32 subregions) gives nearly similar coverage ratios during the first thirty rounds. +DiLCO-2 protocol gives near similar coverage ratio with other ones for first 10 rounds and then decreased until the died of the network in the round $18^{th}$ because it consumes more energy with the effect of the network disconnection. +As shown in the figure ~\ref{Figures/ch4/R1/CR}, as the number of subregions increases, the coverage preservation for area of interest increases for a larger number of rounds. Coverage ratio decreases when the number of rounds increases due to dead nodes. Although some nodes are dead, thanks to DiLCO-8, DiLCO-16 and DiLCO-32 protocols, other nodes are preserved to ensure the coverage. Moreover, when we have a dense sensor network, it leads to maintain the coverage for a larger number of rounds. DiLCO-8, DiLCO-16 and DiLCO-32 protocols are slightly more efficient than other protocols, because they subdivide the area of interest into 8, 16 and 32~subregions; if one of the subregions becomes disconnected, the coverage may be still ensured in the remaining subregions. + +\item {{\bf Active Sensors Ratio}} +%\subsubsection{Active Sensors Ratio} + Figure~\ref{Figures/ch4/R1/ASR} shows the average active nodes ratio for 150 deployed nodes. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R1/ASR.pdf} +\caption{Active sensors ratio for 150 deployed nodes } +\label{Figures/ch4/R1/ASR} +\end{figure} +The results presented in figure~\ref{Figures/ch4/R1/ASR} show the increase in the number of subregions led to increase in the number of active nodes. The DiLCO-16 and DiLCO-32 protocols have a larger number of active nodes but it preserve the coverage for a larger number of rounds. The advantage of the DiLCO-16 and DiLCO-32 protocols are that even if a network is disconnected in one subregion, the other ones usually continues the optimization process, and this extends the lifetime of the network. + +\item {{\bf The percentage of stopped simulation runs}} +%\subsubsection{The percentage of stopped simulation runs} +Figure~\ref{Figures/ch4/R1/SR} illustrates the percentage of stopped simulation runs per round for 150 deployed nodes. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R1/SR.pdf} +\caption{Percentage of stopped simulation runs for 150 deployed nodes } +\label{Figures/ch4/R1/SR} +\end{figure} + +It can be observed that the DiLCO-2 is the approach which stops first because it applied the optimization on only two subregions for the area of interest that is why it is first exhibits network disconnections. +Thus, as explained previously, in case of the DiLCO-16 and DiLCO-32 with several subregions, the optimization effectively continues as long as a network in a subregion is still connected. This longer partial coverage optimization participates in extending the network lifetime. + +\item {{\bf The Energy Consumption}} +%\subsubsection{The Energy Consumption} +We measure the energy consumed by the sensors during the communication, listening, computation, active, and sleep modes for different network densities and compare it for different subregions. Figures~\ref{Figures/ch4/R1/EC95} and ~\ref{Figures/ch4/R1/EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R1/EC95.pdf} +\caption{Energy Consumption for Lifetime95} +\label{Figures/ch4/R1/EC95} +\end{figure} -\begin{enumerate}[(i)] +The results show that DiLCO-16 and DiLCO-32 are the most competitive from the energy consumption point of view but as the network size increase the energy consumption increase compared with DiLCO-2, DiLCO-4, and DiLCO-8. The other approaches have a high energy consumption due to the energy consumed during the different modes of the sensor node.\\ + +As shown in Figures~\ref{Figures/ch4/R1/EC95} and ~\ref{Figures/ch4/R1/EC50}, DiLCO-2 consumes more energy than the other versions of DiLCO, especially for large sizes of network. This is easy to understand since the bigger the number of sensors involved in the integer program, the larger the time computation to solve the optimization problem as well as the higher energy consumed during the communication. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R1/EC50.pdf} +\caption{Energy Consumption for Lifetime50} +\label{Figures/ch4/R1/EC50} +\end{figure} +In fact, a distributed method on the subregions greatly reduces the number of communications, the time of listening and computation so thanks to the partitioning of the initial network in several independent subnetworks. -\item {{\bf Coverage Ratio}} -%\subsection{Coverage ratio} -%\label{ch4:sec:03:02:01} - -Figure~\ref{fig3} shows the average coverage ratio for 150 deployed nodes. We -can notice that for the first thirty rounds both DESK and GAF provide a coverage -which is a little bit better than the one of MuDiLCO. - -This is due to the fact that, in comparison with MuDiLCO which uses optimization -to put in SLEEP status redundant sensors, more sensor nodes remain active with -DESK and GAF. As a consequence, when the number of rounds increases, a larger -number of node failures can be observed in DESK and GAF, resulting in a faster -decrease of the coverage ratio. Furthermore, our protocol allows to maintain a -coverage ratio greater than 50\% for far more rounds. Overall, the proposed -sensor activity scheduling based on optimization in MuDiLCO maintains higher -coverage ratios of the area of interest for a larger number of rounds. It also -means that MuDiLCO saves more energy, with less dead nodes, at most for several -rounds, and thus should extend the network lifetime. +\item {{\bf Execution Time}} +%\subsubsection{Execution Time} +In this experiment, the execution time of the our distributed optimization approach has been studied. Figure~\ref{Figures/ch4/R1/T} gives the average execution times in seconds for the decision phase (solving of the optimization problem) during one round. They are given for the different approaches and various numbers of sensors. The original execution time is computed as described in section \ref{ch4:sec:04:02}. +%The original execution time is computed on a laptop DELL with intel Core i3 2370 M (2.4 GHz) processor (2 cores) and the MIPS (Million Instructions Per Second) rate equal to 35330. To be consistent with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and a MIPS rate equal to 6 to run the optimization resolution, this time is multiplied by 2944.2 $\left( \frac{35330}{2} \times 6\right)$ and reported on Figure~\ref{fig8} for different network sizes. -\begin{figure}[ht!] +\begin{figure}[h!] \centering - \includegraphics[scale=0.6] {Figures/ch4/R1/CR.pdf} -\caption{Average coverage ratio for 150 deployed nodes} -\label{fig3} +\includegraphics[scale=0.6]{Figures/ch4/R1/T.pdf} +\caption{Execution Time (in seconds)} +\label{Figures/ch4/R1/T} \end{figure} +We can see from figure~\ref{Figures/ch4/R1/T}, that the DiLCO-32 has very low execution times in comparison with other DiLCO versions, because it distributed on larger number of small subregions. Conversely, DiLCO-2 requires to solve an optimization problem considering half the nodes in each subregion presents high execution times. -\item {{\bf Active sensors ratio}} -%\subsection{Active sensors ratio} -%\label{ch4:sec:03:02:02} +The DiLCO-32 protocol has more suitable times at the same time it turn on redundant nodes more. We think that in distributed fashion the solving of the optimization problem in a subregion can be tackled by sensor nodes. Overall, to be able to deal with very large networks, a distributed method is clearly required. -It is crucial to have as few active nodes as possible in each round, in order to -minimize the communication overhead and maximize the network -lifetime. Figure~\ref{fig4} presents the active sensor ratio for 150 deployed -nodes all along the network lifetime. It appears that up to round thirteen, DESK -and GAF have respectively 37.6\% and 44.8\% of nodes in ACTIVE status, whereas -MuDiLCO clearly outperforms them with only 24.8\% of active nodes. After the -thirty-fifth round, MuDiLCO exhibits larger numbers of active nodes, which agrees -with the dual observation of higher level of coverage made previously. -Obviously, in that case DESK and GAF have less active nodes, since they have -activated many nodes at the beginning. Anyway, MuDiLCO activates the available -nodes in a more efficient manner. +\item {{\bf The Network Lifetime}} +%\subsubsection{The Network Lifetime} +In figure~\ref{Figures/ch4/R1/LT95} and \ref{Figures/ch4/R1/LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes. -\begin{figure}[ht!] +\begin{figure}[h!] \centering -\includegraphics[scale=0.6]{Figures/ch4/R1/ASR.pdf} -\caption{Active sensors ratio for 150 deployed nodes} -\label{fig4} +\includegraphics[scale=0.6]{Figures/ch4/R1/LT95.pdf} +\caption{Network Lifetime for $Lifetime95$} +\label{Figures/ch4/R1/LT95} \end{figure} +We see that DiLCO-2 protocol results in execution times that quickly become unsuitable for a sensor network as well as the energy consumed during the communication seems to be huge because it is distributed over only two subregions. -\item {{\bf Stopped simulation runs}} -%\subsection{Stopped simulation runs} -%\label{ch4:sec:03:02:03} +As highlighted by figures~\ref{Figures/ch4/R1/LT95} and \ref{Figures/ch4/R1/LT50}, the network lifetime obviously increases when the size of the network increases, with DiLCO-16 protocol that leads to the larger lifetime improvement. By choosing the best suited nodes, for each round, to cover the area of interest and by +letting the other ones sleep in order to be used later in next rounds, DiLCO-16 protocol efficiently extends the network lifetime because the benefit from the optimization with 16 subregions is better than DiLCO-32 protocol with 32 subregion. DilCO-32 protocol puts in active mode a larger number of sensor nodes especially near the borders of the subdivisions. -Figure~\ref{fig6} reports the cumulative percentage of stopped simulations runs -per round for 150 deployed nodes. This figure gives the breakpoint for each method. DESK stops first, after approximately 45~rounds, because it consumes the -more energy by turning on a large number of redundant nodes during the sensing -phase. GAF stops secondly for the same reason than DESK. MuDiLCO overcomes -DESK and GAF because the optimization process distributed on several subregions -leads to coverage preservation and so extends the network lifetime. Let us -emphasize that the simulation continues as long as a network in a subregion is -still connected. +Comparison shows that DiLCO-16 protocol, which uses 16 leaders, is the best one because it is used less number of active nodes during the network lifetime compared with DiLCO-32 protocol. It also means that distributing the protocol in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R1/LT50.pdf} +\caption{Network Lifetime for $Lifetime50$} +\label{Figures/ch4/R1/LT50} +\end{figure} +\end{enumerate} -\begin{figure}[ht!] +\subsection{Performance Analysis for Primary Point Models} +\label{ch4:sec:04:06} + +In this section, we are studied the performance of DiLCO~16 approach for a different primary point models. The objective of this comparison is to select the suitable primary point model to be used by DiLCO protocol. + +In this comparisons, DiLCO-16 protocol are used with five models which are called Model~1( With 5 Primary Points), Model~2 ( With 9 Primary Points), Model~3 ( With 13 Primary Points), Model~4 ( With 17 Primary Points), and Model~5 ( With 21 Primary Points). + + +\begin{enumerate}[i)] + +\item {{\bf Coverage Ratio}} +%\subsubsection{Coverage Ratio} +In this experiment, we Figure~\ref{Figures/ch4/R2/CR} shows the average coverage ratio for 150 deployed nodes. +\parskip 0pt +\begin{figure}[h!] \centering -\includegraphics[scale=0.6]{Figures/ch4/R1/SR.pdf} -\caption{Cumulative percentage of stopped simulation runs for 150 deployed nodes } -\label{fig6} + \includegraphics[scale=0.6] {Figures/ch4/R2/CR.pdf} +\caption{Coverage ratio for 150 deployed nodes} +\label{Figures/ch4/R2/CR} \end{figure} +It is shown that all models provide a very near coverage ratios during the network lifetime, with very small superiority for the models with higher number of primary points. Moreover, when the number of rounds increases, coverage ratio produced by Model~3, Model~4, and Model~5 decreases in comparison with Model~1 and Model~2 due to the high energy consumption during the listening to take the decision after finishing optimization process for larger number of primary points. As shown in figure ~\ref{Figures/ch4/R2/CR}, Coverage ratio decreases when the number of rounds increases due to dead nodes. Although some nodes are dead, +thanks to Model~2, which is slightly more efficient than other Models, because it is balanced between the number of rounds and the better coverage ratio in comparison with other Models. +\item {{\bf Active Sensors Ratio}} +%\subsubsection{Active Sensors Ratio} + Figure~\ref{Figures/ch4/R2/ASR} shows the average active nodes ratio for 150 deployed nodes. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R2/ASR.pdf} +\caption{Active sensors ratio for 150 deployed nodes } +\label{Figures/ch4/R2/ASR} +\end{figure} + +The results presented in figure~\ref{Figures/ch4/R2/ASR} show the superiority of the proposed Model 1, in comparison with the other Models. The +model with less number of primary points uses less active nodes than the other models, which uses a more number of primary points to represent the area of the sensor. According to the results that presented in figure~\ref{Figures/ch4/R2/CR}, we observe that although the Model~1 continue to a larger number of rounds, but it has less coverage ratio compared with other models. The advantage of the Model~2 approach is to use less number of active nodes for each round compared with Model~3, Model~4, and Model~5; and this led to continue for a larger number of rounds with extending the network lifetime. Model~2 has a better coverage ratio compared to Model~1 and acceptable number of rounds. - -\item {{\bf Energy consumption}} \label{subsec:EC} -%\subsection{Energy consumption} -%\label{ch4:sec:03:02:04} -We measure the energy consumed by the sensors during the communication, -listening, computation, active, and sleep status for different network densities -and compare it with the two other methods. Figures~\ref{fig7}(a) -and~\ref{fig7}(b) illustrate the energy consumption, considering different -network sizes, for $Lifetime_{95}$ and $Lifetime_{50}$. +\item {{\bf he percentage of stopped simulation runs}} +%\subsubsection{The percentage of stopped simulation runs} +In this study, we want to show the effect of increasing the primary points on the number of stopped simulation runs for each round. Figure~\ref{Figures/ch4/R2/SR} illustrates the percentage of stopped simulation runs per round for 150 deployed nodes. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R2/SR.pdf} +\caption{Percentage of stopped simulation runs for 150 deployed nodes } +\label{Figures/ch4/R2/SR} +\end{figure} + +As shown in Figure~\ref{Figures/ch4/R2/SR}, when the number of primary points are increased, the percentage of the stopped simulation runs per round is increased. The reason behind the increase is the increase in the sensors dead when the primary points increases. We are observed that the Model~1 is a better than other models because it conserve more energy by turn on less number of sensors during the sensing phase, but in the same time it preserve the coverage with a less coverage ratio in comparison with other models. Model~2 seems to be more suitable to be used in wireless sensor networks. + + +\item {{\bf The Energy Consumption}} +%\subsubsection{The Energy Consumption} +In this experiment, we study the effect of increasing the primary points to represent the area of the sensor on the energy consumed by the wireless sensor network for different network densities. Figures~\ref{Figures/ch4/R2/EC95} and ~\ref{Figures/ch4/R2/EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R2/EC95.pdf} +\caption{Energy Consumption with $95\%-Lifetime$} +\label{Figures/ch4/R2/EC95} +\end{figure} \begin{figure}[h!] \centering - %\begin{multicols}{1} +\includegraphics[scale=0.6]{Figures/ch4/R2/EC50.pdf} +\caption{Energy Consumption with $Lifetime50$} +\label{Figures/ch4/R2/EC50} +\end{figure} + +We see from the results presented in Figures~\ref{Figures/ch4/R2/EC95} and \ref{Figures/ch4/R2/EC50}, The energy consumed by the network for each round increases when the primary points increases, because the decision for optimization process will takes more time leads to consume more energy during the listening mode. The results show that Model~1 is the most competitive from the energy consumption point of view but the worst one from coverage ratio point of view. The other Models have a high energy consumption due to the increase in the primary points, which are led to increase the energy consumption during the listening mode before producing the solution by solving the optimization process. In fact, we see that Model~2 is a good candidate to be used by wireless sensor network because it preserve a good coverage ratio and a suitable energy consumption in comparison with other models. + +\item {{\bf Execution Time}} +%\subsubsection{Execution Time} +In this experiment, we have studied the impact of the increase in primary points on the execution time of DiLCO protocol. Figure~\ref{Figures/ch4/R2/T} gives the average execution times in seconds for the decision phase (solving of the optimization problem) during one round. The original execution time is computed as described in section \ref{ch4:sec:04:02}. + +\begin{figure}[h!] \centering -\includegraphics[scale=0.6]{Figures/ch4/R1/EC95.pdf}\\~ ~ ~ ~ ~(a) \\ -%\vfill -\includegraphics[scale=0.6]{Figures/ch4/R1/EC50.pdf}\\~ ~ ~ ~ ~(b) +\includegraphics[scale=0.6]{Figures/ch4/R2/T.pdf} +\caption{Execution Time(s) vs The Number of Sensors } +\label{Figures/ch4/R2/T} +\end{figure} -%\end{multicols} -\caption{Energy consumption for (a) $Lifetime_{95}$ and (b) $Lifetime_{50}$} -\label{fig7} -\end{figure} +They are given for the different primary point models and various numbers of sensors. We can see from Figure~\ref{Figures/ch4/R2/T}, that Model~1 has lower execution time in comparison with other Models, because it used smaller number of primary points to represent the area of the sensor. Conversely, the other primary point models have been presented a higher execution times. +Moreover, Model~2 has more suitable times and coverage ratio that lead to continue for a larger number of rounds extending the network lifetime. We think that a good primary point model, this one that balances between the coverage ratio and the number of rounds during the lifetime of the network. + +\item {{\bf The Network Lifetime}} +%\subsubsection{The Network Lifetime} +Finally, we will study the effect of increasing the primary points on the lifetime of the network. In Figure~\ref{Figures/ch4/R2/LT95} and in Figure~\ref{Figures/ch4/R2/LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R2/LT95.pdf} +\caption{Network Lifetime for $Lifetime95$} +\label{Figures/ch4/R2/LT95} +\end{figure} -The results show that MuDiLCO is the most competitive from the energy -consumption point of view. The other approaches have a high energy consumption -due to activating a larger number of redundant nodes as well as the energy -consumed during the different status of the sensor node. Among the different -versions of our protocol, the MuDiLCO-7 one consumes more energy than the other -versions. This is easy to understand since the bigger the number of rounds and -the number of sensors involved in the integer program are, the larger the time -computation to solve the optimization problem is. To improve the performances of -MuDiLCO-7, we should increase the number of subregions in order to have less -sensors to consider in the integer program. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R2/LT50.pdf} +\caption{Network Lifetime for $Lifetime50$} +\label{Figures/ch4/R2/LT50} +\end{figure} - \item {{\bf Execution time}} -%\subsection{Execution time} -%\label{ch4:sec:03:02:05} +As highlighted by figures~\ref{Figures/ch4/R2/LT95} and \ref{Figures/ch4/R2/LT50}, the network lifetime obviously increases when the size of the network increases, with Model~1 that leads to the larger lifetime improvement. +Comparison shows that the Model~1, which uses less number of primary points, is the best one because it is less energy consumption during the network lifetime. It is also the worst one from the point of view of coverage ratio. Our proposed Model~2 efficiently prolongs the network lifetime with a good coverage ratio in comparison with other models. + +\end{enumerate} -We observe the impact of the network size and of the number of rounds on the -computation time. Figure~\ref{fig77} gives the average execution times in -seconds (needed to solve optimization problem) for different values of $T$. The original execution time is computed as described in chapter 3, section \ref{ch3:sec:04:02}. +\subsection{Performance Comparison with other Approaches} +\label{ch4:sec:04:07} +Based on the results, which are conducted from previous two subsections, \ref{ch4:sec:04:02} and \ref{ch4:sec:04:03}, we have found that DiLCO-16 protocol and DiLCO-32 protocol with Model~2 are the best candidates to be compared with other two approaches. The first approach, called DESK that proposed by ~\cite{DESK}, which is a full distributed coverage algorithm. The second approach, called GAF~\cite{GAF}, consists in dividing the region into fixed squares. During the decision phase, in each square, one sensor is chosen to remain on during the sensing phase time. -%The original execution time is computed on a laptop DELL with Intel Core~i3~2370~M (2.4 GHz) processor (2 cores) and the MIPS (Million Instructions Per Second) rate equal to 35330. To be consistent with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and a MIPS rate equal to 6 to run the optimization resolution, this time is multiplied by 2944.2 $\left( \frac{35330}{2} \times \frac{1}{6} \right)$ and reported on Figure~\ref{fig77} for different network sizes. +\begin{enumerate}[i)] -\begin{figure}[ht!] +\item {{\bf Coverage Ratio}} +%\subsubsection{Coverage Ratio} +In this experiment, the average coverage ratio for 150 deployed nodes has been demonstrated figure~\ref{Figures/ch4/R3/CR}. + +\parskip 0pt +\begin{figure}[h!] \centering -\includegraphics[scale=0.6]{Figures/ch4/R1/T.pdf} -\caption{Execution Time (in seconds)} -\label{fig77} + \includegraphics[scale=0.6] {Figures/ch4/R3/CR.pdf} +\caption{Coverage ratio for 150 deployed nodes} +\label{Figures/ch4/R3/CR} +\end{figure} + +It has been shown that DESK and GAF provide a little better coverage ratio with 99.99\% and 99.91\% against 99.1\% and 99.2\% produced by DiLCO-16 and DiLCO-32 for the lowest number of rounds. This is due to the fact that DiLCO protocol versions put in sleep mode redundant sensors using optimization (which lightly decreases the coverage ratio) while there are more nodes are active in the case of DESK and GAF. + +Moreover, when the number of rounds increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, DiLCO-16 protocol and DiLCO-32 protocol maintain almost a good coverage. This is because they optimized the coverage and the lifetime in wireless sensor network by selecting the best representative sensor nodes to take the responsibility of coverage during the sensing phase and this will leads to continue for a larger number of rounds and prolonging the network lifetime; although some nodes are dead, sensor activity scheduling of our protocol chooses other nodes to ensure the coverage of the area of interest. + +\item {{\bf Active Sensors Ratio}} +%\subsubsection{Active Sensors Ratio} +It is important to have as few active nodes as possible in each round, in order to minimize the energy consumption and maximize the network lifetime. Figure~\ref{Figures/ch4/R3/ASR} shows the average active nodes ratio for 150 deployed nodes. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R3/ASR.pdf} +\caption{Active sensors ratio for 150 deployed nodes } +\label{Figures/ch4/R3/ASR} \end{figure} -As expected, the execution time increases with the number of rounds $T$ taken -into account to schedule the sensing phase. The times obtained for $T=1,3$ -or $5$ seem bearable, but for $T=7$ they become quickly unsuitable for a sensor -node, especially when the sensor network size increases. Again, we can notice -that if we want to schedule the nodes activities for a large number of rounds, -we need to choose a relevant number of subregions in order to avoid a complicated -and cumbersome optimization. On the one hand, a large value for $T$ permits to -reduce the energy-overhead due to the three pre-sensing phases, on the other -hand a leader node may waste a considerable amount of energy to solve the -optimization problem. - - - -\item {{\bf Network lifetime}} -%\subsection{Network lifetime} -%\label{ch4:sec:03:02:06} - -The next two figures, Figures~\ref{fig8}(a) and \ref{fig8}(b), illustrate the -network lifetime for different network sizes, respectively for $Lifetime_{95}$ -and $Lifetime_{50}$. Both figures show that the network lifetime increases -together with the number of sensor nodes, whatever the protocol, thanks to the -node density which results in more and more redundant nodes that can be -deactivated and thus save energy. Compared to the other approaches, our MuDiLCO -protocol maximizes the lifetime of the network. In particular the gain in -lifetime for a coverage over 95\% is greater than 38\% when switching from GAF -to MuDiLCO-3. The slight decrease that can be observed for MuDiLCO-7 in case -of $Lifetime_{95}$ with large wireless sensor networks results from the -difficulty of the optimization problem to be solved by the integer program. -This point was already noticed in \ref{subsec:EC} devoted to the -energy consumption, since network lifetime and energy consumption are directly -linked. +The results presented in figure~\ref{Figures/ch4/R3/ASR} show the superiority of the proposed DiLCO-16 protocol and DiLCO-32 protocol, in comparison with the other approaches. We have observed that DESK and GAF have 37.5 \% and 44.5 \% active nodes and DiLCO-16 protocol and DiLCO-32 protocol compete perfectly with only 17.4 \%, 24.8 \% and 26.8 \% active nodes for the first 14 rounds. Then as the number of rounds increases DiLCO-16 protocol and DiLCO-32 protocol have larger number of active nodes in comparison with DESK and GAF, especially from round $35^{th}$ because they give a better coverage ratio than other approaches. We see that DESK and GAF have less number of active nodes beginning at the rounds $35^{th}$ and $32^{th}$ because there are many nodes are died due to the high energy consumption by the redundant nodes during the sensing phase. +\item {{\bf The percentage of stopped simulation runs}} +%\subsubsection{The percentage of stopped simulation runs} +The results presented in this experiment, is to show the comparison of DiLCO-16 protocol and DiLCO-32 protocol with other two approaches from point of view of stopped simulation runs per round. +Figure~\ref{Figures/ch4/R3/SR} illustrates the percentage of stopped simulation +runs per round for 150 deployed nodes. \begin{figure}[h!] \centering -% \begin{multicols}{0} +\includegraphics[scale=0.6]{Figures/ch4/R3/SR.pdf} +\caption{Percentage of stopped simulation runs for 150 deployed nodes } +\label{Figures/ch4/R3/SR} +\end{figure} +It has been observed that DESK is the approach, which stops first because it consumes more energy for communication as well as it turn on a large number of redundant nodes during the sensing phase. On the other hand DiLCO-16 protocol and DiLCO-32 protocol have less stopped simulation runs in comparison with DESK and GAF because it distributed the optimization on several subregions in order to optimizes the coverage and the lifetime of the network by activating a less number of nodes during the sensing phase leading to extend the network lifetime and coverage preservation. The optimization effectively continues as long as a network in a subregion is still connected. + + +\item {{\bf The Energy Consumption}} +%\subsubsection{The Energy Consumption} +In this experiment, we have studied the effect of the energy consumed by the wireless sensor network during the communication, computation, listening, active, and sleep modes for different network densities and compare it with other approaches. Figures~\ref{Figures/ch4/R3/EC95} and ~\ref{Figures/ch4/R3/EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. + +\begin{figure}[h!] \centering -\includegraphics[scale=0.6]{Figures/ch4/R1/LT95.pdf}\\~ ~ ~ ~ ~(a) \\ -%\hfill -\includegraphics[scale=0.6]{Figures/ch4/R1/LT50.pdf}\\~ ~ ~ ~ ~(b) +\includegraphics[scale=0.6]{Figures/ch4/R3/EC95.pdf} +\caption{Energy Consumption with $95\%-Lifetime$} +\label{Figures/ch4/R3/EC95} +\end{figure} -%\end{multicols} -\caption{Network lifetime for (a) $Lifetime_{95}$ and (b) $Lifetime_{50}$} - \label{fig8} -\end{figure} +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R3/EC50.pdf} +\caption{Energy Consumption with $Lifetime50$} +\label{Figures/ch4/R3/EC50} +\end{figure} +The results show that DiLCO-16 protocol and DiLCO-32 protocol are the most competitive from the energy consumption point of view. The other approaches have a high energy consumption due to activating a larger number of redundant nodes as well as the energy consumed during the different modes of sensor nodes. In fact, a distributed method on the subregions greatly reduces the number of communications and the time of listening so thanks to the partitioning of the initial network into several independent subnetworks. -\end{enumerate} +\item {{\bf The Network Lifetime}} +%\subsubsection{The Network Lifetime} +In this experiment, we have observed the superiority of DiLCO-16 protocol and DiLCO-32 protocol against other two approaches in prolonging the network lifetime. In figures~\ref{Figures/ch4/R3/LT95} and \ref{Figures/ch4/R3/LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R3/LT95.pdf} +\caption{Network Lifetime for $Lifetime95$} +\label{Figures/ch4/R3/LT95} +\end{figure} -\section{Conclusion} -\label{ch4:sec:04} -We have addressed the problem of the coverage and of the lifetime optimization in -wireless sensor networks. This is a key issue as sensor nodes have limited -resources in terms of memory, energy, and computational power. To cope with this -problem, the field of sensing is divided into smaller subregions using the -concept of divide-and-conquer method, and then we propose a protocol which -optimizes coverage and lifetime performances in each subregion. Our protocol, -called MuDiLCO (Multiround Distributed Lifetime Coverage Optimization) combines -two efficient techniques: network leader election and sensor activity -scheduling. +\begin{figure}[h!] +\centering +\includegraphics[scale=0.6]{Figures/ch4/R3/LT50.pdf} +\caption{Network Lifetime for $Lifetime50$} +\label{Figures/ch4/R3/LT50} +\end{figure} -The activity scheduling in each subregion works in periods, where each period -consists of four phases: (i) Information Exchange, (ii) Leader Election, (iii) -Decision Phase to plan the activity of the sensors over $T$ rounds, (iv) Sensing -Phase itself divided into T rounds. +As highlighted by figures~\ref{Figures/ch4/R3/LT95} and \ref{Figures/ch4/R3/LT50}, the network lifetime obviously increases when the size of the network increases, with DiLCO-16 protocol and DiLCO-32 protocol that leads to maximize the lifetime of the network compared with other approaches. +By choosing the best suited nodes, for each round, by optimizing the coverage and lifetime of the network to cover the area of interest and by letting the other ones sleep in order to be used later in next periods, DiLCO-16 protocol and DiLCO-32 protocol efficiently prolonged the network lifetime. +Comparison shows that DiLCO-16 protocol and DiLCO-32 protocol, which are used distributed optimization over the subregions, is the best one because it is robust to network disconnection during the network lifetime as well as it consumes less energy in comparison with other approaches. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network. -Simulations results show the relevance of the proposed protocol in terms of -lifetime, coverage ratio, active sensors ratio, energy consumption, execution -time. Indeed, when dealing with large wireless sensor networks, a distributed -approach, like the one we propose, allows to reduce the difficulty of a single -global optimization problem by partitioning it in many smaller problems, one per -subregion, that can be solved more easily. Nevertheless, results also show that -it is not possible to plan the activity of sensors over too many rounds, because -the resulting optimization problem leads to too high resolution times and thus to -an excessive energy consumption. +\end{enumerate} +\section{Conclusion} +\label{ch4:sec:05} +A crucial problem in WSN is to schedule the sensing activities of the different nodes in order to ensure both coverage of the area of interest and longer +network lifetime. The inherent limitations of sensor nodes, in energy provision, communication and computing capacities, require protocols that optimize the use +of the available resources to fulfill the sensing task. To address this problem, this chapter proposes a two-step approach. Firstly, the field of sensing +is divided into smaller subregions using the concept of divide-and-conquer method. Secondly, a distributed protocol called Distributed Lifetime Coverage +Optimization is applied in each subregion to optimize the coverage and lifetime performances. In a subregion, our protocol consists in electing a leader node +which will then perform a sensor activity scheduling. The challenges include how to select the most efficient leader in each subregion and the best representative set of active nodes to ensure a high level of coverage. To assess the performance of our approach, we compared it with two other approaches using many performance metrics like coverage ratio or network lifetime. We have also studied the impact of the number of subregions chosen to subdivide the area of interest, considering different network sizes. The experiments show that increasing the number of subregions improves the lifetime. The more subregions there are, the more robust the network is against random disconnection resulting from dead nodes. However, for a given sensing field and network size there is an optimal number of subregions. Therefore, in case of our simulation context a subdivision in $16$~subregions seems to be the most relevant. - \ No newline at end of file diff --git a/CHAPITRE_05.tex b/CHAPITRE_05.tex index 01d5dbe..9afbba1 100644 --- a/CHAPITRE_05.tex +++ b/CHAPITRE_05.tex @@ -4,200 +4,58 @@ %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chapter{Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks} +\chapter{Multiround Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks} \label{ch5} - -\section{summary} +\section{Summary} \label{ch5:sec:01} - -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. In -this paper, 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 have been performed using -OMNeT++, the discrete event simulator, to demonstrate that PeCO can -offer longer lifetime coverage for WSNs in comparison with some other protocols. - -\section{THE PeCO PROTOCOL DESCRIPTION} +Coverage and lifetime are two paramount problems in Wireless Sensor Networks (WSNs). In this paper, a method called Multiround Distributed Lifetime Coverage +Optimization protocol (MuDiLCO) is proposed to maintain the coverage and to improve the lifetime in wireless sensor networks. The area of interest is first +divided into subregions and then the MuDiLCO protocol is distributed on the sensor nodes in each subregion. The proposed MuDiLCO protocol works in periods +during which sets of sensor nodes are scheduled to remain active for a number of rounds during the sensing phase, to ensure coverage so as to maximize the +lifetime of WSN. The decision process is carried out by a leader node, which solves an integer program to produce the best representative sets to be used +during the rounds of the sensing phase. Compared with some existing protocols, simulation results based on multiple criteria (energy consumption, coverage +ratio, and so on) show that the proposed protocol can prolong efficiently the network lifetime and improve the coverage performance. + +\section{MuDiLCO Protocol Description} \label{ch5:sec:02} +\noindent In this section, we introduce the MuDiLCO protocol which is distributed on each subregion in the area of interest. It is based on two energy-efficient +mechanisms: subdividing the area of interest into several subregions (like cluster architecture) using divide and conquer method, where the sensor nodes cooperate within each subregion as independent group in order to achieve a network leader election; and sensor activity scheduling for maintaining the coverage and prolonging the network lifetime, which are applied periodically. MuDiLCO protocol uses the same assumptions and network model that presented in chapter 4, section \ref{ch4:sec:02:01} and it has been used the primary point coverage model which is described in the same chapter, section \ref{ch4:sec:02:02}. -\noindent In this section, we describe in details our Lifetime 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{ch5:sec:02:01} -PeCO protocol uses the same assumptions and network model that presented in chapter 3, section \ref{ch3:sec:02:01}. - -The PeCO protocol uses the same perimeter-coverage model as Huang and -Tseng in~\cite{ref133}. 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{pcm2sensors}(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 intersection of the two sensing -areas. These points are denoted for neighbor~$i$ by $iL$ and $iR$, respectively -for left and right from neighbor 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=95mm]{Figures/ch5/pcm.jpg} & \raisebox{3.25cm}{(a)} \\ - \includegraphics[width=95mm]{Figures/ch5/twosensors.jpg} & \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{pcm2sensors} -\end{figure} - -Figure~\ref{pcm2sensors}(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(\dfrac{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{pcm2sensors}(a) illustrates the arcs for the nine neighbors of -sensor $0$ and Figure~\ref{expcm} 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{expcm}), 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=150.5mm]{Figures/ch5/expcm2.jpg} -\caption{Maximum coverage levels for perimeter of sensor node $0$.} -\label{expcm} -\end{figure*} - - - \begin{table}[h!] - \caption{Coverage intervals and contributing sensors for sensor node 0.} - \centering -\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} - -\label{my-label} -\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{ch5:sec:03}. Note that when a sensor -node has a part of its sensing range outside the WSN sensing field, as in -Figure~\ref{ex4pcm}, 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. - - -\begin{figure}[h!] -\centering -\includegraphics[width=95.5mm]{Figures/ch5/ex4pcm.jpg} -\caption{Sensing range outside the WSN's area of interest.} -\label{ex4pcm} -\end{figure} - - - - - -\subsection{The Main Idea} + +\subsection{Background Idea and Algorithm} \label{ch5:sec:02:02} - -\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{fig2}, 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=95.5mm]{Figures/ch5/Model.pdf} -\caption{PeCO protocol.} +The area of interest can be divided using the divide-and-conquer strategy into +smaller areas, called subregions, and then our MuDiLCO protocol will be +implemented in each subregion in a distributed way. + +As can be seen in Figure~\ref{fig2}, our protocol works in periods fashion, +where each is divided into 4 phases: Information~Exchange, Leader~Election, +Decision, and Sensing. The information exchange among wireless sensor nodes is described in chapter 4, section \ref{ch4:sec:02:03:01}. The leader election in each subregion is explained in chapter 4, section \ref{ch4:sec:02:03:02}, but the difference in that the elected leader in each subregion is for each period. In decision phase, each WSNL will solve an integer program to select which cover sets will be +activated in the following sensing phase to cover the subregion to which it belongs. The integer program will produce $T$ cover sets, one for each round. The WSNL will send an Active-Sleep packet to each sensor in the subregion based on the algorithm's results, indicating if the sensor should be active or not in +each round of the sensing phase. Each sensing phase may be itself divided into $T$ rounds +and for each round a set of sensors (a cover set) is responsible for the sensing +task. Each sensor node in the subregion will +receive an Active-Sleep packet from WSNL, informing it to stay awake or to go to +sleep for each round of the sensing phase. Algorithm~\ref{alg:MuDiLCO}, which +will be executed by each node at the beginning of a period, explains how the +Active-Sleep packet is obtained. In this way a multiround optimization process is performed during each +period after Information~Exchange and Leader~Election phases, in order to +produce $T$ cover sets that will take the mission of sensing for $T$ rounds. +\begin{figure}[ht!] +\centering \includegraphics[width=160mm]{Figures/ch5/GeneralModel.jpg} % 70mm Modelgeneral.pdf +\caption{The MuDiLCO protocol scheme executed on each node} \label{fig2} \end{figure} +This protocol minimizes the impact of unexpected node failure (not due to batteries running out of energy), because it works in periods. +On the one hand, if a node failure is detected before making the decision, the node will not participate to this phase, and, on the other hand, if the node failure occurs after the decision, the sensing task of the network will be temporarily affected: only during the period of sensing until a new period starts. -\subsection{PeCO Protocol Algorithm} -\label{ch5:sec:02:03} +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 (Information Exchange, Leader Election, and Decision) are energy consuming for some nodes, even when they do not join the network to monitor the area. - -\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}[h!] % \KwIn{all the parameters related to information exchange} @@ -205,364 +63,521 @@ protocol applied by a sensor node $s_k$ where $k$ is the node index in the WSN. \BlankLine %\emph{Initialize the sensor node and determine it's position and subregion} \; - \If{ $RE_k \geq E_{th}$ }{ - \emph{$s_k.status$ = COMMUNICATION}\; - \emph{Send $INFO()$ packet to other nodes in subregion}\; - \emph{Wait $INFO()$ packet from other nodes in subregion}\; - \emph{Update K.CurrentSize}\; - \emph{LeaderID = Leader election}\; - \If{$ s_k.ID = LeaderID $}{ - \emph{$s_k.status$ = COMPUTATION}\; - - \If{$ s_k.ID $ is Not previously selected as a Leader }{ - \emph{ Execute the perimeter coverage model}\; - % \emph{ Determine the segment points using perimeter coverage model}\; - } + \If{ $RE_j \geq E_{R}$ }{ + \emph{$s_j.status$ = COMMUNICATION}\; + \emph{Send $INFO()$ packet to other nodes in the subregion}\; + \emph{Wait $INFO()$ packet from other nodes in the subregion}\; + %\emph{UPDATE $RE_j$ for every sent or received INFO Packet}\; + %\emph{ Collect information and construct the list L for all nodes in the subregion}\; - \If{$ (s_k.ID $ is the same Previous Leader) And (K.CurrentSize = K.PreviousSize)}{ - - \emph{ Use the same previous cover set for current sensing stage}\; - } - \Else{ - \emph{Update $a^j_{ik}$; prepare data for IP~Algorithm}\; - \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$)}\; - \emph{K.PreviousSize = K.CurrentSize}\; - } - - \emph{$s_k.status$ = COMMUNICATION}\; - \emph{Send $ActiveSleep()$ to each node $l$ in subregion}\; - \emph{Update $RE_k $}\; + %\If{ the received INFO Packet = No. of nodes in it's subregion -1 }{ + \emph{LeaderID = Leader election}\; + \If{$ s_j.ID = LeaderID $}{ + \emph{$s_j.status$ = COMPUTATION}\; + \emph{$\left\{\left(X_{1,k},\dots,X_{T,k}\right)\right\}_{k \in J}$ = + Execute Integer Program Algorithm($T,J$)}\; + \emph{$s_j.status$ = COMMUNICATION}\; + \emph{Send $ActiveSleep()$ to each node $k$ in subregion a packet \\ + with vector of activity scheduling $(X_{1,k},\dots,X_{T,k})$}\; + \emph{Update $RE_j $}\; } \Else{ - \emph{$s_k.status$ = LISTENING}\; + \emph{$s_j.status$ = LISTENING}\; \emph{Wait $ActiveSleep()$ packet from the Leader}\; - \emph{Update $RE_k $}\; + % \emph{After receiving Packet, Retrieve the schedule and the $T$ rounds}\; + \emph{Update $RE_j $}\; } + % } } - \Else { Exclude $s_k$ from entering in the current sensing stage} -\caption{PeCO($s_k$)} -\label{alg:PeCO} + \Else { Exclude $s_j$ from entering in the current sensing phase} + + % \emph{return X} \; +\caption{MuDiLCO($s_j$)} +\label{alg:MuDiLCO} + \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{ch5:sec:03} +\subsection{Primary Points based Multiround Coverage Problem Formulation} +%\label{ch5:sec:02:02} +According to our algorithm~\ref{alg:MuDiLCO}, the integer program is based on the model +proposed by \cite{ref156} with some modifications, where the objective is +to find a maximum number of disjoint cover sets. To fulfill this goal, the +authors proposed an integer program which forces undercoverage and overcoverage +of targets to become minimal at the same time. They use binary variables +$x_{jl}$ to indicate if sensor $j$ belongs to cover set $l$. In our model, we +consider binary variables $X_{t,j}$ to determine the possibility of activating +sensor $j$ during round $t$ of a given sensing phase. We also consider primary +points as targets. The set of primary points is denoted by $P$ and the set of +sensors by $J$. Only sensors able to be alive during at least one round are +involved in the integer program. -\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{ch5:sec:02:01}. 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: +For a primary point $p$, let $\alpha_{j,p}$ denote the indicator function of +whether the point $p$ is covered, 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$}, \\ +\alpha_{j,p} = \left \{ +\begin{array}{l l} + 1 & \mbox{if the primary point $p$ is covered} \\ + & \mbox{by sensor node $j$}, \\ 0 & \mbox{otherwise.}\\ \end{array} \right. %\label{eq12} -\notag \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: -%Objective: -\begin{equation} %\label{eq:ip2r} -\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\\ -%\label{c1} -\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i \leq l \quad \forall i \in I_j, \forall j \in S\\ -% \label{c2} -% \Theta_{p}\in \mathbb{N}, &\forall p \in P\\ -% U_{p} \in \{0,1\}, &\forall p \in P\\ -X_{k} \in \{0,1\}, \forall k \in A -\end{array} -\right. -\notag +The number of active sensors that cover the primary point $p$ during +round $t$ is equal to $\sum_{j \in J} \alpha_{j,p} * X_{t,j}$ where: +\begin{equation} +X_{t,j} = \left \{ +\begin{array}{l l} + 1& \mbox{if sensor $j$ is active during round $t$,} \\ + 0 & \mbox{otherwise.}\\ +\end{array} \right. +%\label{eq11} +\end{equation} +We define the Overcoverage variable $\Theta_{t,p}$ as: +\begin{equation} + \Theta_{t,p} = \left \{ +\begin{array}{l l} + 0 & \mbox{if the primary point $p$}\\ + & \mbox{is not covered during round $t$,}\\ + \left( \sum_{j \in J} \alpha_{jp} * X_{tj} \right)- 1 & \mbox{otherwise.}\\ +\end{array} \right. +\label{eq13} \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 -\cite{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{ch5:sec:04} +More precisely, $\Theta_{t,p}$ represents the number of active sensor nodes +minus one that cover the primary point $p$ during round $t$. The +Undercoverage variable $U_{t,p}$ of the primary point $p$ during round $t$ is +defined by: +\begin{equation} +U_{t,p} = \left \{ +\begin{array}{l l} + 1 &\mbox{if the primary point $p$ is not covered during round $t$,} \\ + 0 & \mbox{otherwise.}\\ +\end{array} \right. +\label{eq14} +\end{equation} + +Our coverage optimization problem can then be formulated as follows: +\begin{equation} + \min \sum_{t=1}^{T} \sum_{p=1}^{P} \left(W_{\theta}* \Theta_{t,p} + W_{U} * U_{t,p} \right) \label{eq15} +\end{equation} + +Subject to +\begin{equation} + \sum_{j=1}^{|J|} \alpha_{j,p} * X_{t,j} = \Theta_{t,p} - U_{t,p} + 1 \label{eq16} \hspace{6 mm} \forall p \in P, t = 1,\dots,T +\end{equation} + +\begin{equation} + \sum_{t=1}^{T} X_{t,j} \leq \lfloor {RE_{j}/E_{R}} \rfloor \hspace{6 mm} \forall j \in J, t = 1,\dots,T + \label{eq144} +\end{equation} + +\begin{equation} +X_{t,j} \in \lbrace0,1\rbrace, \hspace{10 mm} \forall j \in J, t = 1,\dots,T \label{eq17} +\end{equation} + +\begin{equation} +U_{t,p} \in \lbrace0,1\rbrace, \hspace{10 mm}\forall p \in P, t = 1,\dots,T \label{eq18} +\end{equation} + +\begin{equation} + \Theta_{t,p} \geq 0 \hspace{10 mm}\forall p \in P, t = 1,\dots,T \label{eq178} +\end{equation} + + + +\begin{itemize} +\item $X_{t,j}$: indicates whether or not the sensor $j$ is actively sensing + during round $t$ (1 if yes and 0 if not); +\item $\Theta_{t,p}$ - {\it overcoverage}: the number of sensors minus one that + are covering the primary point $p$ during round $t$; +\item $U_{t,p}$ - {\it undercoverage}: indicates whether or not the primary + point $p$ is being covered during round $t$ (1 if not covered and 0 if + covered). +\end{itemize} -\subsection{Simulation Settings} -\label{ch5:sec:04:01} +The first group of constraints indicates that some primary point $p$ should be +covered by at least one sensor and, if it is not always the case, overcoverage +and undercoverage variables help balancing the restriction equations by taking +positive values. The constraint given by equation~(\ref{eq144}) guarantees that +the sensor has enough energy ($RE_j$ corresponds to its remaining energy) to be +alive during the selected rounds knowing that $E_{R}$ is the amount of energy +required to be alive during one round. -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~\cite{Idrees2}. -Table~\ref{table3} gives the chosen parameters settings. +There are two main objectives. First, we limit the overcoverage of primary +points in order to activate a minimum number of sensors. Second we prevent the +absence of monitoring on some parts of the subregion by minimizing the +undercoverage. The weights $W_\theta$ and $W_U$ must be properly chosen so as +to guarantee that the maximum number of points are covered during each round. +%% MS W_theta is smaller than W_u => problem with the following sentence +In our simulations priority is given to the coverage by choosing $W_{U}$ very +large compared to $W_{\theta}$. + + + + + +\section{Experimental Study and Analysis} +\label{ch5:sec:03} + +\subsection{Simulation Setup} +\label{ch5:sec:03:01} +We conducted a series of simulations to evaluate the efficiency and the +relevance of our approach, using the discrete event simulator OMNeT++ +\cite{ref158}. The simulation parameters are summarized in Table~\ref{table3}. Each experiment for a network is run over 25~different random topologies and the results presented hereafter are the average of these +25 runs. +%Based on the results of our proposed work in~\cite{idrees2014coverage}, we found as the region of interest are divided into larger subregions as the network lifetime increased. In this simulation, the network are divided into 16 subregions. +We performed simulations for five different densities varying from 50 to +250~nodes deployed over a $50 \times 25~m^2 $ sensing field. More +precisely, the deployment is controlled at a coarse scale in order to ensure +that the deployed nodes can cover the sensing field with the given sensing +range. + +%%RC these parameters are realistic? +%% maybe we can increase the field and sensing range. 5mfor Rs it seems very small... what do the other good papers consider ? \begin{table}[ht] -\caption{Relevant parameters for network initialization.} +\caption{Relevant parameters for network initializing.} % title of Table \centering % used for centering table \begin{tabular}{c|c} % centered columns (4 columns) -\hline + \hline +%inserts double horizontal lines Parameter & Value \\ [0.5ex] +%Case & Strategy (with Two Leaders) & Strategy (with One Leader) & Simple Heuristic \\ [0.5ex] +% inserts table +%heading \hline % inserts single horizontal line -Sensing field & $(50 \times 25)~m^2 $ \\ - -WSN size & 100, 150, 200, 250, and 300~nodes \\ +Sensing field size & $(50 \times 25)~m^2 $ \\ +% inserting body of the table +%\hline +Network size & 50, 100, 150, 200 and 250~nodes \\ %\hline -Initial energy & in range 500-700~Joules \\ +Initial energy & 500-700~joules \\ %\hline -Sensing period & duration of 60 minutes \\ -$E_{th}$ & 36~Joules\\ +Sensing time for one round & 60 Minutes \\ +$E_{R}$ & 36 Joules\\ $R_s$ & 5~m \\ %\hline -$\alpha^j_i$ & 0.6 \\ +$W_{\Theta}$ & 1 \\ % [1ex] adds vertical space %\hline -$\beta^j_i$ & 0.4 +$W_{U}$ & $|P|^2$ %inserts single line \end{tabular} \label{table3} % is used to refer this table in the text \end{table} + +Our protocol is declined into four versions: MuDiLCO-1, MuDiLCO-3, MuDiLCO-5, +and MuDiLCO-7, corresponding respectively to $T=1,3,5,7$ ($T$ the number of +rounds in one sensing period). In the following, we will make comparisons with +two other methods. The first method, called DESK and proposed by \cite{DESK}, +is a full distributed coverage algorithm. The second method, called +GAF~\cite{GAF}, consists in dividing the region into fixed squares. +During the decision phase, in each square, one sensor is then chosen to remain +active during the sensing phase time. + +Some preliminary experiments were performed in chapter 4 to study the choice of the number of +subregions which subdivides the sensing field, considering different network +sizes. They show that as the number of subregions increases, so does the network +lifetime. Moreover, it makes the MuDiLCO protocol more robust against random +network disconnection due to node failures. However, too many subdivisions +reduce the advantage of the optimization. In fact, there is a balance between +the benefit from the optimization and the execution time needed to solve +it. Therefore, we have set the number of subregions to 16 rather than 32. + +We used the modeling language and the optimization solver which are mentioned in chapter 4, section \ref{ch4:sec:04:02}. In addition, we employed an energy consumption model, which is presented in chapter 4, section \ref{ch4:sec:04:03}. + +%The initial energy of each node is randomly set in the interval $[500;700]$. A sensor node will not participate in the next round if its remaining energy is less than $E_{R}=36~\mbox{Joules}$, the minimum energy needed for the node to stay alive during one round. This value has been computed by multiplying the energy consumed in active state (9.72 mW) by the time in second for one round (3600 seconds). According to the interval of initial energy, a sensor may be alive during at most 20 rounds. + +\subsection{Metrics} +\label{ch5:sec:03:02} +To evaluate our approach we consider the following performance metrics: + +\begin{enumerate}[i] + +\item {{\bf Coverage Ratio (CR)}:} the coverage ratio measures how much of the area + of a sensor field is covered. In our case, the sensing field is represented as + a connected grid of points and we use each grid point as a sample point to + compute the coverage. The coverage ratio can be calculated by: +\begin{equation*} +\scriptsize +\mbox{CR}(\%) = \frac{\mbox{$n^t$}}{\mbox{$N$}} \times 100, +\end{equation*} +where $n^t$ is the number of covered grid points by the active sensors of all +subregions during round $t$ in the current sensing phase and $N$ is the total number +of grid points in the sensing field of the network. In our simulations $N = 51 +\times 26 = 1326$ grid points. + +\item{{\bf Number of Active Sensors Ratio (ASR)}:} it is important to have as + few active nodes as possible in each round, in order to minimize the + communication overhead and maximize the network lifetime. The Active Sensors + Ratio is defined as follows: +\begin{equation*} +\scriptsize \mbox{ASR}(\%) = \frac{\sum\limits_{r=1}^R + \mbox{$A_r^t$}}{\mbox{$|J|$}} \times 100, +\end{equation*} +where $A_r^t$ is the number of active sensors in the subregion $r$ during round +$t$ in the current sensing phase, $|J|$ is the total number of sensors in the +network, and $R$ is the total number of subregions in the network. + +\item {{\bf Network Lifetime}:} is described in chapter 4, section \ref{ch4:sec:04:04}. + +\item {{\bf Energy Consumption (EC)}:} the average energy consumption can be + seen as the total energy consumed by the sensors during the $Lifetime_{95}$ or + $Lifetime_{50}$ divided by the number of rounds. EC can be computed as + follows: + + % New version with global loops on period + \begin{equation*} + \scriptsize + \mbox{EC} = \frac{\sum\limits_{m=1}^{M_L} \left[ \left( E^{\mbox{com}}_m+E^{\mbox{list}}_m+E^{\mbox{comp}}_m \right) +\sum\limits_{t=1}^{T_m} \left( E^{a}_t+E^{s}_t \right) \right]}{\sum\limits_{m=1}^{M_L} T_m}, + \end{equation*} + + +where $M_L$ is the number of periods and $T_m$ the number of rounds in a +period~$m$, both during $Lifetime_{95}$ or $Lifetime_{50}$. The total energy +consumed by the sensors (EC) comes through taking into consideration four main +energy factors. The first one , denoted $E^{\scriptsize \mbox{com}}_m$, +represents the energy consumption spent by all the nodes for wireless +communications during period $m$. $E^{\scriptsize \mbox{list}}_m$, 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 $m$. +$E^{\scriptsize \mbox{comp}}_m$ refers to the energy needed by all the leader +nodes to solve the integer program during a period. Finally, $E^a_t$ and $E^s_t$ +indicate the energy consumed by the whole network in round $t$. + + +\item {{\bf Execution Time}:} is described in chapter 4, section \ref{ch4:sec:04:04}. + +\item {{\bf Stopped simulation runs}:} is described in chapter 4, section \ref{ch4:sec:04:04}. +\end{enumerate} -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. +\subsection{Results Analysis and Comparison } +\label{ch5:sec:03:02} -We applied the performance metrics, which are described in chapter 3, section \ref{ch3:sec:04:04} in order to evaluate the efficiency of our approach. We used the modeling language and the optimization solver which are mentioned in chapter 3, section \ref{ch3:sec:04:02}. In addition, we employed an energy consumption model, which is presented in chapter 3, section \ref{ch3:sec:04:03}. +\begin{enumerate}[(i)] -\subsection{Simulation Results} -\label{ch5:sec:04:02} +\item {{\bf Coverage Ratio}} +%\subsection{Coverage ratio} +%\label{ch5:sec:03:02:01} -In order to assess and analyze the performance of our protocol we have implemented PeCO protocol in OMNeT++~\cite{ref158} simulator. Besides PeCO, three other protocols, described in the next paragraph, will be evaluated for comparison purposes. -%The simulations were run on a laptop DELL with an Intel Core~i3~2370~M (2.4~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)~\cite{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) \cite{glpk} through a Branch-and-Bound method. -As said previously, the PeCO is compared with three other approaches. The first one, called DESK, is a fully distributed coverage algorithm proposed by \cite{DESK}. The second one, called GAF~\cite{GAF}, 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~\cite{Idrees2}, is an improved version of a research work we presented in~\cite{ref159}. 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 chosen because it corresponds to the configuration producing the better 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 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$). +Figure~\ref{fig3} shows the average coverage ratio for 150 deployed nodes. We +can notice that for the first thirty rounds both DESK and GAF provide a coverage +which is a little bit better than the one of MuDiLCO. +This is due to the fact that, in comparison with MuDiLCO which uses optimization +to put in SLEEP status redundant sensors, more sensor nodes remain active with +DESK and GAF. As a consequence, when the number of rounds increases, a larger +number of node failures can be observed in DESK and GAF, resulting in a faster +decrease of the coverage ratio. Furthermore, our protocol allows to maintain a +coverage ratio greater than 50\% for far more rounds. Overall, the proposed +sensor activity scheduling based on optimization in MuDiLCO maintains higher +coverage ratios of the area of interest for a larger number of rounds. It also +means that MuDiLCO saves more energy, with less dead nodes, at most for several +rounds, and thus should extend the network lifetime. +\begin{figure}[ht!] +\centering + \includegraphics[scale=0.6] {Figures/ch5/R1/CR.pdf} +\caption{Average coverage ratio for 150 deployed nodes} +\label{fig3} +\end{figure} -\subsubsection{Coverage Ratio} -\label{ch5:sec:04:02:01} -Figure~\ref{fig333} 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. +\item {{\bf Active sensors ratio}} +%\subsection{Active sensors ratio} +%\label{ch5:sec:03:02:02} -\parskip 0pt -\begin{figure}[h!] +It is crucial to have as few active nodes as possible in each round, in order to +minimize the communication overhead and maximize the network +lifetime. Figure~\ref{fig4} presents the active sensor ratio for 150 deployed +nodes all along the network lifetime. It appears that up to round thirteen, DESK +and GAF have respectively 37.6\% and 44.8\% of nodes in ACTIVE status, whereas +MuDiLCO clearly outperforms them with only 24.8\% of active nodes. After the +thirty-fifth round, MuDiLCO exhibits larger numbers of active nodes, which agrees +with the dual observation of higher level of coverage made previously. +Obviously, in that case DESK and GAF have less active nodes, since they have +activated many nodes at the beginning. Anyway, MuDiLCO activates the available +nodes in a more efficient manner. + +\begin{figure}[ht!] \centering - \includegraphics[scale=0.5] {Figures/ch5/R/CR.eps} -\caption{Coverage ratio for 200 deployed nodes.} -\label{fig333} +\includegraphics[scale=0.6]{Figures/ch5/R1/ASR.pdf} +\caption{Active sensors ratio for 150 deployed nodes} +\label{fig4} \end{figure} +\item {{\bf Stopped simulation runs}} +%\subsection{Stopped simulation runs} +%\label{ch5:sec:03:02:03} +Figure~\ref{fig6} reports the cumulative percentage of stopped simulations runs +per round for 150 deployed nodes. This figure gives the breakpoint for each method. DESK stops first, after approximately 45~rounds, because it consumes the +more energy by turning on a large number of redundant nodes during the sensing +phase. GAF stops secondly for the same reason than DESK. MuDiLCO overcomes +DESK and GAF because the optimization process distributed on several subregions +leads to coverage preservation and so extends the network lifetime. Let us +emphasize that the simulation continues as long as a network in a subregion is +still connected. -\subsubsection{Active Sensors Ratio} -\label{ch5:sec:04:02:02} -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{fig444} -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{fig333}. - -\begin{figure}[h!] +\begin{figure}[ht!] \centering -\includegraphics[scale=0.5]{Figures/ch5/R/ASR.eps} -\caption{Active sensors ratio for 200 deployed nodes.} -\label{fig444} +\includegraphics[scale=0.6]{Figures/ch5/R1/SR.pdf} +\caption{Cumulative percentage of stopped simulation runs for 150 deployed nodes } +\label{fig6} \end{figure} -\subsubsection{The Energy Consumption} -\label{ch5:sec:04:02:03} - -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{fig3EC}(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. + +\item {{\bf Energy consumption}} \label{subsec:EC} +%\subsection{Energy consumption} +%\label{ch5:sec:03:02:04} + +We measure the energy consumed by the sensors during the communication, +listening, computation, active, and sleep status for different network densities +and compare it with the two other methods. Figures~\ref{fig7}(a) +and~\ref{fig7}(b) illustrate the energy consumption, considering different +network sizes, for $Lifetime_{95}$ and $Lifetime_{50}$. + + \begin{figure}[h!] - \centering - \begin{tabular}{@{}cr@{}} - \includegraphics[scale=0.475]{Figures/ch5/R/EC95.eps} & \raisebox{2.75cm}{(a)} \\ - \includegraphics[scale=0.475]{Figures/ch5/R/EC50.eps} & \raisebox{2.75cm}{(b)} - \end{tabular} - \caption{Energy consumption per period for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.} - \label{fig3EC} -\end{figure} +\centering + %\begin{multicols}{1} +\centering +\includegraphics[scale=0.6]{Figures/ch5/R1/EC95.pdf}\\~ ~ ~ ~ ~(a) \\ +%\vfill +\includegraphics[scale=0.6]{Figures/ch5/R1/EC50.pdf}\\~ ~ ~ ~ ~(b) +%\end{multicols} +\caption{Energy consumption for (a) $Lifetime_{95}$ and (b) $Lifetime_{50}$} +\label{fig7} +\end{figure} -\subsubsection{The Network Lifetime} -\label{ch5:sec:04:02:04} +The results show that MuDiLCO is the most competitive from the energy +consumption point of view. The other approaches have a high energy consumption +due to activating a larger number of redundant nodes as well as the energy +consumed during the different status of the sensor node. Among the different +versions of our protocol, the MuDiLCO-7 one consumes more energy than the other +versions. This is easy to understand since the bigger the number of rounds and +the number of sensors involved in the integer program are, the larger the time +computation to solve the optimization problem is. To improve the performances of +MuDiLCO-7, we should increase the number of subregions in order to have less +sensors to consider in the integer program. -We observe the superiority of PeCO and DiLCO protocols in comparison with the -two other approaches in prolonging the network lifetime. In -Figures~\ref{fig3LT}(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{fig3LT}(b) that the lifetime -is about twice longer with PeCO compared to DESK protocol. The performance -difference is more obvious in Figure~\ref{fig3LT}(b) than in -Figure~\ref{fig3LT}(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]{Figures/ch5/R/LT95.eps} & \raisebox{2.75cm}{(a)} \\ - \includegraphics[scale=0.475]{Figures/ch5/R/LT50.eps} & \raisebox{2.75cm}{(b)} - \end{tabular} - \caption{Network Lifetime for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.} - \label{fig3LT} + + \item {{\bf Execution time}} +%\subsection{Execution time} +%\label{ch5:sec:03:02:05} + +We observe the impact of the network size and of the number of rounds on the +computation time. Figure~\ref{fig77} gives the average execution times in +seconds (needed to solve optimization problem) for different values of $T$. The original execution time is computed as described in chapter 4, section \ref{ch4:sec:04:02}. + +%The original execution time is computed on a laptop DELL with Intel Core~i3~2370~M (2.4 GHz) processor (2 cores) and the MIPS (Million Instructions Per Second) rate equal to 35330. To be consistent with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and a MIPS rate equal to 6 to run the optimization resolution, this time is multiplied by 2944.2 $\left( \frac{35330}{2} \times \frac{1}{6} \right)$ and reported on Figure~\ref{fig77} for different network sizes. + +\begin{figure}[ht!] +\centering +\includegraphics[scale=0.6]{Figures/ch5/R1/T.pdf} +\caption{Execution Time (in seconds)} +\label{fig77} \end{figure} -Figure~\ref{figLTALL} 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. +As expected, the execution time increases with the number of rounds $T$ taken +into account to schedule the sensing phase. The times obtained for $T=1,3$ +or $5$ seem bearable, but for $T=7$ they become quickly unsuitable for a sensor +node, especially when the sensor network size increases. Again, we can notice +that if we want to schedule the nodes activities for a large number of rounds, +we need to choose a relevant number of subregions in order to avoid a complicated +and cumbersome optimization. On the one hand, a large value for $T$ permits to +reduce the energy-overhead due to the three pre-sensing phases, on the other +hand a leader node may waste a considerable amount of energy to solve the +optimization problem. + + + +\item {{\bf Network lifetime}} +%\subsection{Network lifetime} +%\label{ch5:sec:03:02:06} + +The next two figures, Figures~\ref{fig8}(a) and \ref{fig8}(b), illustrate the +network lifetime for different network sizes, respectively for $Lifetime_{95}$ +and $Lifetime_{50}$. Both figures show that the network lifetime increases +together with the number of sensor nodes, whatever the protocol, thanks to the +node density which results in more and more redundant nodes that can be +deactivated and thus save energy. Compared to the other approaches, our MuDiLCO +protocol maximizes the lifetime of the network. In particular the gain in +lifetime for a coverage over 95\% is greater than 38\% when switching from GAF +to MuDiLCO-3. The slight decrease that can be observed for MuDiLCO-7 in case +of $Lifetime_{95}$ with large wireless sensor networks results from the +difficulty of the optimization problem to be solved by the integer program. +This point was already noticed in \ref{subsec:EC} devoted to the +energy consumption, since network lifetime and energy consumption are directly +linked. + \begin{figure}[h!] -\centering \includegraphics[scale=0.5]{Figures/ch5/R/LTa.eps} -\caption{Network lifetime for different coverage ratios.} -\label{figLTALL} -\end{figure} +\centering +% \begin{multicols}{0} +\centering +\includegraphics[scale=0.6]{Figures/ch5/R1/LT95.pdf}\\~ ~ ~ ~ ~(a) \\ +%\hfill +\includegraphics[scale=0.6]{Figures/ch5/R1/LT50.pdf}\\~ ~ ~ ~ ~(b) + +%\end{multicols} +\caption{Network lifetime for (a) $Lifetime_{95}$ and (b) $Lifetime_{50}$} + \label{fig8} +\end{figure} + +\end{enumerate} + \section{Conclusion} \label{ch5:sec:04} -In this chapter, 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. -%in order to compute all active sensor schedules in only one step for many periods; -We also want to improve our integer program to take into account heterogeneous -sensors from both energy and node characteristics point of views. -%the third, we are investigating new optimization model based on the sensing range so as to maximize the lifetime coverage in WSN; -Finally, it would be interesting to implement our protocol using a -sensor-testbed to evaluate it in real world applications. +We have addressed the problem of the coverage and of the lifetime optimization in +wireless sensor networks. This is a key issue as sensor nodes have limited +resources in terms of memory, energy, and computational power. To cope with this +problem, the field of sensing is divided into smaller subregions using the +concept of divide-and-conquer method, and then we propose a protocol which +optimizes coverage and lifetime performances in each subregion. Our protocol, +called MuDiLCO (Multiround Distributed Lifetime Coverage Optimization) combines +two efficient techniques: network leader election and sensor activity +scheduling. + +The activity scheduling in each subregion works in periods, where each period +consists of four phases: (i) Information Exchange, (ii) Leader Election, (iii) +Decision Phase to plan the activity of the sensors over $T$ rounds, (iv) Sensing +Phase itself divided into T rounds. + +Simulations results show the relevance of the proposed protocol in terms of +lifetime, coverage ratio, active sensors ratio, energy consumption, execution +time. Indeed, when dealing with large wireless sensor networks, a distributed +approach, like the one we propose, allows to reduce the difficulty of a single +global optimization problem by partitioning it in many smaller problems, one per +subregion, that can be solved more easily. Nevertheless, results also show that +it is not possible to plan the activity of sensors over too many rounds, because +the resulting optimization problem leads to too high resolution times and thus to +an excessive energy consumption. + + + + + \ No newline at end of file diff --git a/Figures/ch3/FirstModel.pdf b/Figures/ch3/FirstModel.pdf deleted file mode 100644 index 4ff568ad3bf61c00ea8b05cb125c2fedfdb109e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70337 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 diff --git a/Figures/ch3/R1/CR.pdf b/Figures/ch3/R1/CR.pdf deleted file mode 100644 index 2b2174274cb102ef46b01d06fe0b01793bce2c69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11606 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 diff --git a/Figures/ch3/R1/EC50.pdf b/Figures/ch3/R1/EC50.pdf deleted file mode 100644 index 33f45c4feb3ab4b0064eca9cb430bfa8c0925190..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8345 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 Cyg(cP diff --git a/Figures/ch3/R1/EC95.pdf b/Figures/ch3/R1/EC95.pdf deleted file mode 100644 index 77743c7aee977dcc2214afb5c315a16b0260216a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8523 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 diff --git a/Figures/ch3/R1/LT50.pdf b/Figures/ch3/R1/LT50.pdf deleted file mode 100644 index 7fc256e696f9a6e1a56a281ae24962155107ac50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8183 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 diff --git a/Figures/ch3/R1/LT95.pdf b/Figures/ch3/R1/LT95.pdf deleted file mode 100644 index 3603834404c883567a0070f195606028b9e68830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8037 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 ACjbBd diff --git a/Figures/ch3/R1/SR.pdf b/Figures/ch3/R1/SR.pdf deleted file mode 100644 index 4b56c5a74b624472b067e64e4f7585b474f3b235..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9228 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 matrix makepattern -/Pat1 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke - 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} ->> matrix makepattern -/Pat2 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L - 8 8 L 8 0 L 0 0 L fill} ->> matrix makepattern -/Pat3 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L - 0 12 M 12 0 L stroke} ->> matrix makepattern -/Pat4 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L - 0 -4 M 12 8 L stroke} ->> matrix makepattern -/Pat5 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L - 0 12 M 8 -4 L 4 12 M 10 0 L stroke} ->> matrix makepattern -/Pat6 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L - 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} ->> matrix makepattern -/Pat7 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L - 12 0 M -4 8 L 12 4 M 0 10 L stroke} ->> matrix makepattern -/Pat8 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L - -4 0 M 12 8 L -4 4 M 8 10 L stroke} ->> matrix makepattern -/Pat9 exch def -/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def -/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def -/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def -/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def -/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def -/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def -/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def -} def -% -% -%End of PostScript Level 2 code -% -/PatternBgnd { - TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse -} def -% -% Substitute for Level 2 pattern fill codes with -% grayscale if Level 2 support is not selected. -% -/Level1PatternFill { -/Pattern1 {0.250 Density} bind def -/Pattern2 {0.500 Density} bind def -/Pattern3 {0.750 Density} bind def -/Pattern4 {0.125 Density} bind def -/Pattern5 {0.375 Density} bind def -/Pattern6 {0.625 Density} bind def -/Pattern7 {0.875 Density} bind def -} def -% -% Now test for support of Level 2 code -% -Level1 {Level1PatternFill} {Level2PatternFill} ifelse -% -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -% -% Encoding for ISO-8859-1 (also called Latin1) -% -/reencodeISO { -dup dup findfont dup length dict begin -{ 1 index /FID ne { def }{ pop pop } ifelse } forall -currentdict /CharStrings known { - CharStrings /Idieresis known { - /Encoding ISOLatin1Encoding def } if -} if -currentdict end definefont -} def -/ISOLatin1Encoding [ -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright -/parenleft/parenright/asterisk/plus/comma/minus/period/slash -/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon -/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N -/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright -/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m -/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve -/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut -/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar -/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot -/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior -/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine -/guillemotright/onequarter/onehalf/threequarters/questiondown -/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla -/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute -/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis -/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave -/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex -/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis -/yacute/thorn/ydieresis -] def -/MFshow { - { dup 5 get 3 ge - { 5 get 3 eq {gsave} {grestore} ifelse } - {dup dup 0 get findfont exch 1 get scalefont setfont - [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 - get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq - {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 - get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div - dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get - show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop - pop aload pop M} ifelse }ifelse }ifelse } - ifelse } - forall} def -/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def -/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } - {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont - 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def -/MLshow { currentpoint stroke M - 0 exch R - Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def -/MRshow { currentpoint stroke M - exch dup MFwidth neg 3 -1 roll R - Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def -/MCshow { currentpoint stroke M - exch dup MFwidth -2 div 3 -1 roll R - Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def -/XYsave { [( ) 1 2 true false 3 ()] } bind def -/XYrestore { [( ) 1 2 true false 4 ()] } bind def -/Helvetica reencodeISO def -Level1 SuppressPDFMark or -{} { -/SDict 10 dict def -systemdict /pdfmark known not { - userdict /pdfmark systemdict /cleartomark get put -} if -SDict begin [ - /Title () - /Subject (gnuplot plot) - /Creator (gnuplot 4.6 patchlevel 0) - /Author (ali) -% /Producer (gnuplot) -% /Keywords () - /CreationDate (Sat Jun 14 03:19:11 2014) - /DOCINFO pdfmark -end -} ifelse -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -doclip -50 50 translate -0.100 0.100 scale -0 setgray -newpath -(Helvetica) findfont 110 scalefont setfont -BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if -1.000 UL -LTb -671 352 M -63 0 V -4107 0 R --63 0 V -stroke -605 352 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 1)] -] -36.7 MRshow -1.000 UL -LTb -671 544 M -31 0 V -4139 0 R --31 0 V -671 797 M -63 0 V -4107 0 R --63 0 V -stroke -605 797 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 5)] -] -36.7 MRshow -1.000 UL -LTb -671 989 M -31 0 V -4139 0 R --31 0 V -671 1242 M -63 0 V -4107 0 R --63 0 V -stroke -605 1242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 25)] -] -36.7 MRshow -1.000 UL -LTb -671 1434 M -31 0 V -4139 0 R --31 0 V -671 1687 M -63 0 V -4107 0 R --63 0 V -stroke -605 1687 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 125)] -] -36.7 MRshow -1.000 UL -LTb -671 1879 M -31 0 V -4139 0 R --31 0 V -671 2133 M -63 0 V -4107 0 R --63 0 V -stroke -605 2133 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 625)] -] -36.7 MRshow -1.000 UL -LTb -671 2324 M -31 0 V -4139 0 R --31 0 V -671 2578 M -63 0 V -4107 0 R --63 0 V -stroke -605 2578 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 3125)] -] -36.7 MRshow -1.000 UL -LTb -671 2769 M -31 0 V -4139 0 R --31 0 V -671 3023 M -63 0 V -4107 0 R --63 0 V -stroke -605 3023 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 15625)] -] -36.7 MRshow -1.000 UL -LTb -671 3215 M -31 0 V -4139 0 R --31 0 V -671 3468 M -63 0 V -4107 0 R --63 0 V -stroke -605 3468 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 78125)] -] -36.7 MRshow -1.000 UL -LTb -671 352 M -0 63 V -0 3053 R -0 -63 V -stroke -671 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 25)] -] -36.7 MCshow -1.000 UL -LTb -1088 352 M -0 63 V -0 3053 R -0 -63 V -stroke -1088 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 50)] -] -36.7 MCshow -1.000 UL -LTb -1505 352 M -0 63 V -0 3053 R -0 -63 V -stroke -1505 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 75)] -] -36.7 MCshow -1.000 UL -LTb -1922 352 M -0 63 V -0 3053 R -0 -63 V -stroke -1922 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 100)] -] -36.7 MCshow -1.000 UL -LTb -2339 352 M -0 63 V -0 3053 R -0 -63 V -stroke -2339 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 125)] -] -36.7 MCshow -1.000 UL -LTb -2756 352 M -0 63 V -0 3053 R -0 -63 V -stroke -2756 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 150)] -] -36.7 MCshow -1.000 UL -LTb -3173 352 M -0 63 V -0 3053 R -0 -63 V -stroke -3173 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 175)] -] -36.7 MCshow -1.000 UL -LTb -3590 352 M -0 63 V -0 3053 R -0 -63 V -stroke -3590 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 200)] -] -36.7 MCshow -1.000 UL -LTb -4007 352 M -0 63 V -0 3053 R -0 -63 V -stroke -4007 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 225)] -] -36.7 MCshow -1.000 UL -LTb -4424 352 M -0 63 V -0 3053 R -0 -63 V -stroke -4424 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 250)] -] -36.7 MCshow -1.000 UL -LTb -4841 352 M -0 63 V -0 3053 R -0 -63 V -stroke -4841 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 275)] -] -36.7 MCshow -1.000 UL -LTb -1.000 UL -LTb -671 3468 N -671 352 L -4170 0 V -0 3116 V --4170 0 V -Z stroke -LCb setrgbcolor -88 1910 M -currentpoint gsave translate -270 rotate 0 0 moveto -[ [(Helvetica) 110.0 0.0 true true 0 (Execution Time \(s\) )] -] -36.7 MCshow -grestore -LTb -LCb setrgbcolor -2756 77 M -[ [(Helvetica) 110.0 0.0 true true 0 (Number of Wireless Sensor Nodes)] -] -36.7 MCshow -LTb -1.000 UP -1.000 UL -LTb -% Begin plot #1 -1.000 UP -2.000 UL -LT0 -0.00 0.55 0.55 C LCb setrgbcolor -1380 3402 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-2)] -] -36.7 MRshow -LT0 -0.00 0.55 0.55 C 1446 3402 M -327 0 V -1088 1727 M -834 407 V -834 313 V -834 333 V -834 260 V -1088 1727 TriUF -1922 2134 TriUF -2756 2447 TriUF -3590 2780 TriUF -4424 3040 TriUF -1609 3402 TriUF -% End plot #1 -% Begin plot #2 -1.000 UP -2.000 UL -LT1 -0.50 0.00 0.00 C LCb setrgbcolor -1380 3292 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-4)] -] -36.7 MRshow -LT1 -0.50 0.00 0.00 C 1446 3292 M -327 0 V -1088 1334 M -834 367 V -834 227 V -834 183 V -834 142 V -1088 1334 Star -1922 1701 Star -2756 1928 Star -3590 2111 Star -4424 2253 Star -1609 3292 Star -% End plot #2 -% Begin plot #3 -1.000 UP -2.000 UL -LT2 -0.00 0.00 0.55 C LCb setrgbcolor -1380 3182 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-8)] -] -36.7 MRshow -LT2 -0.00 0.00 0.55 C 1446 3182 M -327 0 V -1088 1000 M -834 310 V -834 215 V -834 155 V -834 118 V -1088 1000 CircleF -1922 1310 CircleF -2756 1525 CircleF -3590 1680 CircleF -4424 1798 CircleF -1609 3182 CircleF -% End plot #3 -% Begin plot #4 -1.000 UP -2.000 UL -LT3 -0.00 0.39 0.00 C LCb setrgbcolor -1380 3072 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-16)] -] -36.7 MRshow -LT3 -0.00 0.39 0.00 C 1446 3072 M -327 0 V -1088 921 M -834 85 V -834 134 V -834 113 V -834 93 V -1088 921 DiaF -1922 1006 DiaF -2756 1140 DiaF -3590 1253 DiaF -4424 1346 DiaF -1609 3072 DiaF -% End plot #4 -% Begin plot #5 -1.000 UP -2.000 UL -LT4 -0.50 0.00 0.50 C LCb setrgbcolor -1380 2962 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-32)] -] -36.7 MRshow -LT4 -0.50 0.00 0.50 C 1446 2962 M -327 0 V -1088 659 M -834 91 V -834 86 V -834 65 V -834 74 V -1088 659 BoxF -1922 750 BoxF -2756 836 BoxF -3590 901 BoxF -4424 975 BoxF -1609 2962 BoxF -% End plot #5 -1.000 UL -LTb -671 3468 N -671 352 L -4170 0 V -0 3116 V --4170 0 V -Z stroke -1.000 UP -1.000 UL -LTb -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 -%%Trailer -cleartomark -countdictstack -exch sub { end } repeat -restore -%%EOF diff --git a/Figures/ch3/R1/T.pdf b/Figures/ch3/R1/T.pdf deleted file mode 100644 index 81a93e8ebe7dbb66dae49be377c1dda2c7d86c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8212 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 es{OxnIJ2wp3?`n=> matrix makepattern -/Pat1 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke - 0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke} ->> matrix makepattern -/Pat2 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L - 8 8 L 8 0 L 0 0 L fill} ->> matrix makepattern -/Pat3 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L - 0 12 M 12 0 L stroke} ->> matrix makepattern -/Pat4 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L - 0 -4 M 12 8 L stroke} ->> matrix makepattern -/Pat5 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L - 0 12 M 8 -4 L 4 12 M 10 0 L stroke} ->> matrix makepattern -/Pat6 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L - 0 -4 M 8 12 L 4 -4 M 10 8 L stroke} ->> matrix makepattern -/Pat7 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L - 12 0 M -4 8 L 12 4 M 0 10 L stroke} ->> matrix makepattern -/Pat8 exch def -<< Tile8x8 - /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L - -4 0 M 12 8 L -4 4 M 8 10 L stroke} ->> matrix makepattern -/Pat9 exch def -/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def -/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def -/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def -/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def -/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def -/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def -/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def -} def -% -% -%End of PostScript Level 2 code -% -/PatternBgnd { - TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse -} def -% -% Substitute for Level 2 pattern fill codes with -% grayscale if Level 2 support is not selected. -% -/Level1PatternFill { -/Pattern1 {0.250 Density} bind def -/Pattern2 {0.500 Density} bind def -/Pattern3 {0.750 Density} bind def -/Pattern4 {0.125 Density} bind def -/Pattern5 {0.375 Density} bind def -/Pattern6 {0.625 Density} bind def -/Pattern7 {0.875 Density} bind def -} def -% -% Now test for support of Level 2 code -% -Level1 {Level1PatternFill} {Level2PatternFill} ifelse -% -/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont -dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall -currentdict end definefont pop -% -% Encoding for ISO-8859-1 (also called Latin1) -% -/reencodeISO { -dup dup findfont dup length dict begin -{ 1 index /FID ne { def }{ pop pop } ifelse } forall -currentdict /CharStrings known { - CharStrings /Idieresis known { - /Encoding ISOLatin1Encoding def } if -} if -currentdict end definefont -} def -/ISOLatin1Encoding [ -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright -/parenleft/parenright/asterisk/plus/comma/minus/period/slash -/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon -/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N -/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright -/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m -/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve -/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut -/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar -/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot -/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior -/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine -/guillemotright/onequarter/onehalf/threequarters/questiondown -/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla -/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute -/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis -/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave -/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex -/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis -/yacute/thorn/ydieresis -] def -/MFshow { - { dup 5 get 3 ge - { 5 get 3 eq {gsave} {grestore} ifelse } - {dup dup 0 get findfont exch 1 get scalefont setfont - [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6 - get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq - {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5 - get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div - dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get - show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop - pop aload pop M} ifelse }ifelse }ifelse } - ifelse } - forall} def -/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def -/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse } - {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont - 6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def -/MLshow { currentpoint stroke M - 0 exch R - Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def -/MRshow { currentpoint stroke M - exch dup MFwidth neg 3 -1 roll R - Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def -/MCshow { currentpoint stroke M - exch dup MFwidth -2 div 3 -1 roll R - Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def -/XYsave { [( ) 1 2 true false 3 ()] } bind def -/XYrestore { [( ) 1 2 true false 4 ()] } bind def -/Helvetica reencodeISO def -Level1 SuppressPDFMark or -{} { -/SDict 10 dict def -systemdict /pdfmark known not { - userdict /pdfmark systemdict /cleartomark get put -} if -SDict begin [ - /Title () - /Subject (gnuplot plot) - /Creator (gnuplot 4.6 patchlevel 0) - /Author (ali) -% /Producer (gnuplot) -% /Keywords () - /CreationDate (Sat Jun 14 03:19:11 2014) - /DOCINFO pdfmark -end -} ifelse -end -%%EndProlog -%%Page: 1 1 -gnudict begin -gsave -doclip -50 50 translate -0.100 0.100 scale -0 setgray -newpath -(Helvetica) findfont 110 scalefont setfont -BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if -1.000 UL -LTb -671 352 M -63 0 V -4107 0 R --63 0 V -stroke -605 352 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 1)] -] -36.7 MRshow -1.000 UL -LTb -671 544 M -31 0 V -4139 0 R --31 0 V -671 797 M -63 0 V -4107 0 R --63 0 V -stroke -605 797 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 5)] -] -36.7 MRshow -1.000 UL -LTb -671 989 M -31 0 V -4139 0 R --31 0 V -671 1242 M -63 0 V -4107 0 R --63 0 V -stroke -605 1242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 25)] -] -36.7 MRshow -1.000 UL -LTb -671 1434 M -31 0 V -4139 0 R --31 0 V -671 1687 M -63 0 V -4107 0 R --63 0 V -stroke -605 1687 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 125)] -] -36.7 MRshow -1.000 UL -LTb -671 1879 M -31 0 V -4139 0 R --31 0 V -671 2133 M -63 0 V -4107 0 R --63 0 V -stroke -605 2133 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 625)] -] -36.7 MRshow -1.000 UL -LTb -671 2324 M -31 0 V -4139 0 R --31 0 V -671 2578 M -63 0 V -4107 0 R --63 0 V -stroke -605 2578 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 3125)] -] -36.7 MRshow -1.000 UL -LTb -671 2769 M -31 0 V -4139 0 R --31 0 V -671 3023 M -63 0 V -4107 0 R --63 0 V -stroke -605 3023 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 15625)] -] -36.7 MRshow -1.000 UL -LTb -671 3215 M -31 0 V -4139 0 R --31 0 V -671 3468 M -63 0 V -4107 0 R --63 0 V -stroke -605 3468 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 78125)] -] -36.7 MRshow -1.000 UL -LTb -671 352 M -0 63 V -0 3053 R -0 -63 V -stroke -671 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 25)] -] -36.7 MCshow -1.000 UL -LTb -1088 352 M -0 63 V -0 3053 R -0 -63 V -stroke -1088 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 50)] -] -36.7 MCshow -1.000 UL -LTb -1505 352 M -0 63 V -0 3053 R -0 -63 V -stroke -1505 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 75)] -] -36.7 MCshow -1.000 UL -LTb -1922 352 M -0 63 V -0 3053 R -0 -63 V -stroke -1922 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 100)] -] -36.7 MCshow -1.000 UL -LTb -2339 352 M -0 63 V -0 3053 R -0 -63 V -stroke -2339 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 125)] -] -36.7 MCshow -1.000 UL -LTb -2756 352 M -0 63 V -0 3053 R -0 -63 V -stroke -2756 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 150)] -] -36.7 MCshow -1.000 UL -LTb -3173 352 M -0 63 V -0 3053 R -0 -63 V -stroke -3173 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 175)] -] -36.7 MCshow -1.000 UL -LTb -3590 352 M -0 63 V -0 3053 R -0 -63 V -stroke -3590 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 200)] -] -36.7 MCshow -1.000 UL -LTb -4007 352 M -0 63 V -0 3053 R -0 -63 V -stroke -4007 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 225)] -] -36.7 MCshow -1.000 UL -LTb -4424 352 M -0 63 V -0 3053 R -0 -63 V -stroke -4424 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 250)] -] -36.7 MCshow -1.000 UL -LTb -4841 352 M -0 63 V -0 3053 R -0 -63 V -stroke -4841 242 M -[ [(Helvetica) 110.0 0.0 true true 0 ( 275)] -] -36.7 MCshow -1.000 UL -LTb -1.000 UL -LTb -671 3468 N -671 352 L -4170 0 V -0 3116 V --4170 0 V -Z stroke -LCb setrgbcolor -88 1910 M -currentpoint gsave translate -270 rotate 0 0 moveto -[ [(Helvetica) 110.0 0.0 true true 0 (Execution Time \(s\) )] -] -36.7 MCshow -grestore -LTb -LCb setrgbcolor -2756 77 M -[ [(Helvetica) 110.0 0.0 true true 0 (Number of Wireless Sensor Nodes)] -] -36.7 MCshow -LTb -1.000 UP -1.000 UL -LTb -% Begin plot #1 -1.000 UP -2.000 UL -LT0 -0.00 0.55 0.55 C LCb setrgbcolor -1380 3402 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-2)] -] -36.7 MRshow -LT0 -0.00 0.55 0.55 C 1446 3402 M -327 0 V -1088 1727 M -834 407 V -834 313 V -834 333 V -834 260 V -1088 1727 TriUF -1922 2134 TriUF -2756 2447 TriUF -3590 2780 TriUF -4424 3040 TriUF -1609 3402 TriUF -% End plot #1 -% Begin plot #2 -1.000 UP -2.000 UL -LT1 -0.50 0.00 0.00 C LCb setrgbcolor -1380 3292 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-4)] -] -36.7 MRshow -LT1 -0.50 0.00 0.00 C 1446 3292 M -327 0 V -1088 1334 M -834 367 V -834 227 V -834 183 V -834 142 V -1088 1334 Star -1922 1701 Star -2756 1928 Star -3590 2111 Star -4424 2253 Star -1609 3292 Star -% End plot #2 -% Begin plot #3 -1.000 UP -2.000 UL -LT2 -0.00 0.00 0.55 C LCb setrgbcolor -1380 3182 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-8)] -] -36.7 MRshow -LT2 -0.00 0.00 0.55 C 1446 3182 M -327 0 V -1088 1000 M -834 310 V -834 215 V -834 155 V -834 118 V -1088 1000 CircleF -1922 1310 CircleF -2756 1525 CircleF -3590 1680 CircleF -4424 1798 CircleF -1609 3182 CircleF -% End plot #3 -% Begin plot #4 -1.000 UP -2.000 UL -LT3 -0.00 0.39 0.00 C LCb setrgbcolor -1380 3072 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-16)] -] -36.7 MRshow -LT3 -0.00 0.39 0.00 C 1446 3072 M -327 0 V -1088 921 M -834 85 V -834 134 V -834 113 V -834 93 V -1088 921 DiaF -1922 1006 DiaF -2756 1140 DiaF -3590 1253 DiaF -4424 1346 DiaF -1609 3072 DiaF -% End plot #4 -% Begin plot #5 -1.000 UP -2.000 UL -LT4 -0.50 0.00 0.50 C LCb setrgbcolor -1380 2962 M -[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO-32)] -] -36.7 MRshow -LT4 -0.50 0.00 0.50 C 1446 2962 M -327 0 V -1088 659 M -834 91 V -834 86 V -834 65 V -834 74 V -1088 659 BoxF -1922 750 BoxF -2756 836 BoxF -3590 901 BoxF -4424 975 BoxF -1609 2962 BoxF -% End plot #5 -1.000 UL -LTb -671 3468 N -671 352 L -4170 0 V -0 3116 V --4170 0 V -Z stroke -1.000 UP -1.000 UL -LTb -stroke -grestore -end -showpage -%%Trailer -%%DocumentFonts: Helvetica -%%Pages: 1 diff --git a/Figures/ch3/R2/ASR.pdf b/Figures/ch3/R2/ASR.pdf deleted file mode 100644 index 4e1160aa9269155cd50ba539e63db5b2b08eb645..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12086 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