X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/ThesisAli.git/blobdiff_plain/716093027f2d341ce0b373115dba8e6ac7c05482..cd18d10c8b21709c65c71c19c28340bb9d82a5bc:/CHAPITRE_03.tex diff --git a/CHAPITRE_03.tex b/CHAPITRE_03.tex old mode 100755 new mode 100644 index ced7ed9..ab74629 --- a/CHAPITRE_03.tex +++ b/CHAPITRE_03.tex @@ -2,7 +2,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% -%% CHAPTER 03 %% +%% CHAPTER 03 %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -11,105 +11,160 @@ %%-------------------------------------------------------------------------------------------------------%% \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 wide 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 becoming 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 calculates their optimal solution. - +\label{ch3:1} +%Performance evaluation and optimization solvers are important tools. +In the last few years, several intensive researches have been done about the WSNs, and for a wide range of real-world applications. Therefore, the performance evaluation of algorithms and protocols becomes challenging at various stages of design, development, and implementation. In fact, to perform an efficient deployment, it is desirable to analyze the performance of the newly designed algorithms and protocols in WSNs. Since performance evaluation tools are becoming precious means for evaluating the efficiency of algorithms and protocols in WSNs, they have received a great interest by many researchers around the world. +On the other side, the main challenges in the design of WSNs handle new hard and complex theoretical optimization problems. 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 problems are modeled by an optimization problem for instance to optimize the network lifetime while satisfying 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 calculates their optimal solution. +Optimization solvers dedicated to specific resolution methods (meta-heuristics, linear programming, etc) are required. +%Many important real-world problems have formulated as integer programming problems. +%In this dissertation, we use linear programming because we used integer programs to optimize the coverage and the lifetime in WSNs. +In this dissertation, we optimize the coverage and the lifetime in WSNs and the problem is formulated through linear programming. These kind of models allow to obtain optimal solutions satisfying an objective (for instance, maximize coverage) under constraints (for instance, available remaining energy). + +The remainder of this chapter is organized as follows. The next section is devoted to the evaluation tools for evaluating and validating the performance of proposed algorithms and protocols. Section \ref{ch3:3} gives the most popular free and commercial linear optimization solvers to solve linear programming problems. Finally, we give concluding remarks in section \ref{ch3:4}. + \section{Evaluation Tools} -Several proposed works in WSNs require evaluating 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 actually deployed WSN suffer some constraints because the large number of sensor nodes, which are deployed in a hostile and inaccessible environments. Moreover, 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. +\label{ch3:2} +On the one hand, several proposed works in WSNs require evaluating 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 before of the expected lifetime. However, evaluation experiments on actually deployed WSN suffer some constraints because of the large number of sensor nodes and the deployment in hostile and inaccessible environments. Moreover, the analytical (or theoretical) models might be unrealistic for real world systems. + +Two main evaluation tools are available to evaluate and validate the performance of proposed works of researchers in large-scale wireless sensor networks: testbeds and simulations~\cite{ref180}. The energy consumption results obtained by simulation and testbed evaluation tools give an alternative on time, precision, and cost. + +%Therefore, the energy consumption results obtained by simulation and testbed evaluations give an alternative on time, precision and cost. 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}. +%Two main evaluation tools are available for evaluating and validating large-scale wireless sensor networks performance: testbeds and simulations~\cite{ref180}. \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}. +%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. +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}. \begin{enumerate} [(i)] \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. +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. 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 has the following specifications: 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:} +\item \textbf{WISEBED:} -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 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 for 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 a variety of interfaces and software environment. +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 corresponds to the WSN in which a set of these sensor nodes is connected to the gateway to provide access to the other remaining sensor nodes. The gateways are connected to a portal server, which not only supervises the WSN, but also allows user interactions with the testbed. Each WISBED site includes separate portal server. The major goal of this testbed is to provide a multi-level infrastructure of interconnected testbeds of large scale wireless sensor networks for research purposes. It provides an interdisciplinary approach which integrates the hardware, software, algorithms, and data. WISEBED provides heterogeneous large-scale structure because it brings several heterogeneous small-scale devices together to form a large-scale network structure. +%It provides the research with different quality networks due to the heterogeneous structure of the network. -\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 in 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 firmware 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 with innovative services for academic and industrial users. +%Several objectives of WISEBED testbed should be provided such as heterogeneity, virtualization, and facilitate the system evaluation by end users via a 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 wireless sensor devices and heterogeneous communicating objects. IoT-LAB includes more than 2700 wireless sensor nodes deployed in six different regions in France. 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 tools for protocols and applications development, along with direct command-line access to the platform. Wireless sensor nodes firmware 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 a part of the FIT (Future Internet of the Things) experimental platform, a set of supplementary elements that enable experimentation with innovative services for academic and industrial users. \end{enumerate} -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 may be halted due to the lack of the precisely defined requirements~\cite{ref186}. The tests and experiments on a large number of sensor nodes lead to a scalability challenge, 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}. +A testbed is a large hardware evaluation tool. However, to construct a suitable tool with capable architecture, the information about the desired requirements is required. For instance, table \ref{Tablex:ch3} presents each research topic and the required abilities and provisions for a specialized testbed in the corresponding field of study~\cite{ref186}. Many existing testbeds are developed without obvious definition of requirements. Therefore, the research efforts may be halted due to the lack of the precisely defined requirements~\cite{ref186}. The tests and experiments on a large number of sensor nodes lead to a scalability challenge, and a large amount of data for logging, debugging, and measurement output. Another drawback is that there are no enough tools to deal (semi-)automatically with the amount of data and supporting the researchers to evaluate their systems. -Several sensor nodes testbeds are found in order to support WSNs research efforts, but only a few of them provide 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. Hence, the simulation tools stay the most practical tools to obtain a feedback on the performance of a new solution~\cite{ref180}. + +\begin{table}[h] +\caption{WSN research topics vs testbed requirements} +\label{Tablex:ch3} +\resizebox{\textwidth}{!}{% +\begin{tabular}{|c|c|} +\hline +\textbf{WSN research topic} & \textbf{Testbed requirement} \\ \hline +Energy efficiency & Energy consumption estimation and measurement \\ \hline +Mobile sensor nodes & Mobile nodes and localization infrastructure \\ \hline +Realistic WSN context & Deployment in target environments \\ \hline +Scalability and performance in WSNs & simulations and hybrid testbeds, large network size \\ \hline +Sensor node design & Development of sensor nodes, monitoring, measurement, debugging \\ \hline +Interoperability and platform support & Support for different platforms, heterogeneity \\ \hline +Application and protocol design & Tool support for development, debugging and deployment \\ \hline +\end{tabular} +} +\end{table} +Several sensor nodes testbeds are available to support the research efforts in WSNs, but only a few of them provide common evaluation goals for a large number of users~\cite{ref187,ref181}. However, all the WSN testbeds have usually many common properties, such as a typical number of sensors of the order of hundreds and sometimes only tens of nodes; the deployment of the sensor nodes 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 through a simulation because setting up the experiments, instrumenting the nodes, gathering the metrics on the performance, and so on is so expensive. For evaluating the systems and protocols on large sensor networks, the simulation tools are the better choice due to the costs for hardware and maintenance~\cite{ref186}. Hence, the simulation tools stay the most practical tools to obtain a feedback on the performance of a new solution~\cite{ref180}. + \subsection{Simulation Tools} % take the simulators from paper "Limitations of simulation tools for large-scale wireless sensor networks" \cite{ref179} -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}. +Simulation tools are widely used due to the complexity and difficulty to apply real testbed for WSNs experiments. They permit users to evaluate and validate their systems and protocols on WSNs before the deployment. +Simulation tools reduce the correction actions before operating the WSN. In addition, most the works on the WSNs use the simulation tools for performance evaluation. So, these tools are considered as predominant techniques to study and analyze the performance of WSNs. + +%This can reduce the correction actions before operating the WSN. +%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. +%This is a confirmation to consider these tools as predominant techniques used to study and analyze the performance of WSNs. +Several simulation tools are available for WSNs, which vary in their characteristics and capabilities. So, this section introduces only some of these simulators, and more details about simulators are available in~\cite{ref188,ref189,ref190}. \begin{enumerate} [(i)] \item \textbf{NS2:} -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. +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 for wired as well as wireless networks to simulate different protocols with different network topologies. ns-2 is built in C++ and the simulation interface is provided via OTcl, an object-oriented dialect of Tcl. The network topology is determined by the users by writing OTcl scripts, and then the main program of ns-2 simulates this topology with fixed parameters. ns-2 provides a graphical view of the network by using network animator (Nam). Nam interface includes control features that allow researchers to forward, pause, stop, and control the simulation. ns-2 is the most common and widely used network simulator for scientific research work. -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. +The next version, ns-3, is considered as a new simulator and a final replacement of ns-2, not a simple extension~\cite{ref194}. 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}. ns-3 supports both simulation and emulation using sockets. It also provides a tracing facility to help users in debugging. \item \textbf{OMNeT++:} -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. +OMNeT++ (Objective Modular Network Testbed) is an open-source, free, discrete-event, component-based C++ simulation library, modular simulation framework for building network simulators~\cite{ref158,ref203}. Even if OMNeT++ is not a network simulator itself, it is very popular as a network simulation platform for both scientific and industrial communities. The major goal behind the 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 an extensive Graphical User Interface (GUI) and intelligence support. It runs on Windows, Linux, Mac OS~X, and other Unix-like systems, and provides a component architecture for models. Components (modules) are first 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 (modelity and soon) and can be used for specific applications.\\ \\ + \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. +OPNET (Optimized Network Engineering Tool)~\cite{ref192,ref200,ref201} is the first commercial simulation tool 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 the communication network. OPNET allows researchers to develop various models by means of a graphical interface. It 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. OPNET is, a commercial simulator and the license is very expensive. This represents the main disadvantage of that simulator. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\iffalse -\item \textbf{GloMoSim:} +\item \textbf{GloMoSim:} -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 (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 uses a library called Parsec, which is an extension of C for parallel programming. The main feature of GloMoSim simulator is the parallel environment. A 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. The GloMoSim tool is designed to be extensible with all protocols implemented as modules in its library. It also uses an object-oriented approach. +%It is 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. - +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 give an accurate simulation for many sensor network applications. No releasing updates are available since 2000. 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. - +\item \textbf{SENSE:} +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 various requirements of the users by taking into consideration the extensibility, reusability, and scalability. The SENSE uses an object-oriented approach and J-Sim's simulator component based architecture. It supports the parallelization with a poor support for users. +SENSE provides a component-port model to release simulation models from interdependency. This allows independence among components and enables the extensibility and reusability. A level of reusability is obtained 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 improved the scalability by 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, a visualization tool, which can quickly discover the bugs during the simulation, is desirable. + +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \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. +TOSSIM~\cite{ref205,ref207,ref208} is a discrete event simulator for TinyOS based sensor networks, where the TinyOS application can be compiled on the TOSSIM framework, which runs on a computer rather than on the mote. This allow the users to test, debug, and analyze theirs algorithms in a controlled and repeatable environment. The users can check up their codes using debuggers and other development tools by executing them on the computer. TOSSIM is regarded as an emulator rather than a simulator because of its ability to simulate both software and hardware of the mote. TOSSIM is specially-designed for TinyOS applications run on Berkeley MICA Motes. TOSSIM needs to be improved to include four requirements: scalability, completeness, fidelity, and bridging, and to 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. The bridging requirement is satisfied due to executing the simulated code directly in a real mote. Two programming interfaces are supported by TOSSIM: Python and C++. The C++ interface transforms the code easily from one form to another. Python allows interaction with an 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 in the probabilistic bit error model. Moreover, TOSSIM is only supported by MICA motes platform. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\iffalse \item \textbf{GTSNetS:} -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. - +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 is to support several thousand nodes. +It is organized efficiently in a modular way to support large-scale WSNs and designed to be easy to use by the users. Several choices are provided by GTSNetS to users, offering various alternatives in network protocols, energy models, applications, and tracing options. Furthermore, the existing models can be 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. Therefore, 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. +The tool is no longer maintained since October 2008. +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \end{enumerate} -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. +In this section, we investigated some simulation tools for WSNs. A large number of simulation tools are available for WSNs, with different characteristics and capabilities. Hence, it seems 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 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, such as mobility, Internet, vehicular, and sensor networks. @@ -126,32 +181,32 @@ In this section, we investigated some simulation tools for WSNs. Since a large &\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 \\ + \textbf{ns -2} & C++/OTcl with limited visual support & Open source with good user support & Energy model, battery model, mobility & Excellent & Limited \\ \hline - \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 \\ + \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 \\ \hline - \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 \\ + \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 \\ \hline - \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 \\ +% \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 \\ -\hline +%\hline - \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 \\ + %\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 +%\hline - \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 \\ +% \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 \\ \hline - \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 \\ + \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} @@ -161,127 +216,129 @@ In this section, we investigated some simulation tools for WSNs. Since a large \end{table} - - \section{Optimization Solvers} - - 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: +\label{ch3:3} +There are several optimization solvers to solve linear optimization problems. 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 as follows: \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. +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. +A linear programming problem, in which some or all of the unknown variables are restricted to be integers, it is called an integer programming (IP) problem. -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. +%IP problems are a special cases of optimization problems, where the variables can only assume integer values. 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. The optimization problems with integer variables can also be linear or nonlinear, depending on the terms of their objective function and their constraints. However, the terms IP and MIP are almost always associated with problems that have linear features. + +Linear optimization is used to solve different problems in various fields of study. It is applied for economic, business, and industry problems. For example, in the industry linear optimization is used to solve transportation, energy, telecommunications, and manufacturing problems. +%Linear optimization is succeeded in modeling different types of problems like planning, routing, scheduling, assignment, and design. + +Many approaches have been proposed to solve linear programming (IP or Mixed Integer Programming (MIP)) problems and they are classified into two main groups~\cite{ref221}: -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} -\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{Heuristic Optimization:} provides good solutions, but not necessarily optimal solutions, for problems that can not be solved efficiently and with acceptable computation time by classical optimization methods. There is no guarantee for the optimal solution. Examples of such approaches are genetic algorithms, swarm intelligence, and tabu search \cite{ref237}. -\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. +\item \textbf{Classical Optimization:} provides and guarantees optimal solutions for problems. Examples of such methods are zero-one enumeration algorithms and branch-and-bound algorithm, which are provided by linear optimization solvers \cite{ref221}. \end{itemize} -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}. +Linear optimization solvers vary in their characteristics and capabilities. Therefore, in this section, we present the most popular free and commercial linear optimization solvers~\cite{ref212}. \begin{enumerate} [(i)] \item \textbf{GNU Linear Programming Kit (GLPK):} -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. +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. The 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 C++ and java application programming interface (API) in order to interact 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. \item \textbf{lp$\_$solve:} -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. - +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. \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. +The COIN-OR Linear Programming (CLP)~\cite{ref216,ref217} is a free, open-source, linear programming solver written in C++ programming language. It 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. COIN-OR projects such as SYMPHONY, BCP (Branch Cut and Price), and CBC (COIN-OR Branch and Cut) also uses CLP. It includes Dual and Primal Simplex algorithms, but it also contains an Interior Point algorithm. The 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. The CLP is able to use the input MPS, Free MPS, and LP file formats. \item \textbf{CPLEX:} -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 +The 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. The 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. The CPLEX is capable of optimizing the business decisions with high-performance optimization engines. It develops and deploys optimization models quickly by using flexible interfaces and pre-constructed deployment scenarios. %In addition, it creates real-world applications. \item \textbf{Gurobi:} -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. +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. 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 are available. \end{enumerate} -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. +B. Meindl and M. Templ~\cite{ref212} studied the efficiency of above optimization solvers. They used a set of instances of a difficult optimization problem called the Attacker problems (formulated as a LP) \cite{ref240} in order to achieve a performance comparison of GLPK, lp$\_$solve, CLP, GUROBI, and CPLEX optimization solvers. %They 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. + +In tables~\ref{my-label1} and \ref{my-label2}, we report the result of their comparisons the running times of the five linear program solvers to find solutions for instances related to the two-dimensional problem, and for instances related to the three-dimensional problem (with more variables and constraints). +%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. +The running time of the fastest solver has been scaled to one and the running times of the other linear solvers were scaled to reflect this scaling. \begin{table}[h] -\caption{Scaled running times for 2-dimensional problem instances} +\caption{Total (in seconds) and scaled running times for 2-dimensional problem instances (results of B. Meindl and M. Templ~\cite{ref212})} \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 +\textbf{Total Running Time} & 180.1 & 2861.9 & 273.9 & 73.6 & 20.9 \\ \hline +\textbf{Scaled Running Time} & 9 & 137 & 13 & 4 & 1 \\ \hline \end{tabular} } \end{table} \begin{table}[h] -\caption{Scaled running times for 3-dimensional problem instances} +\caption{Total (in seconds) and scaled running times for 3-dimensional problem instances (results of B. Meindl and M. Templ~\cite{ref212})} \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 +\textbf{Total Running Time} & 48405 & 979876 & 666792 & 38634 & 236 \\ \hline +\textbf{Scaled Running Time} & 205 & 4149 & 2823 & 164 & 1 \\ \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} +%\begin{table}[h] +%\caption{Total (in seconds) and scaled running times for all problems (results of B. Meindl and M. Templ~\cite{ref212})} +%\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{Total Running Time} & 48585 & 982737 & 667066 & 38708 & 257 \\ \hline +%\textbf{Scaled Running Time} & 189 & 3822 & 2594 & 151 & 1 \\ \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: +The results in tables~\ref{my-label1} and \ref{my-label2} indicate that open source solvers perform worse than standard commercial solvers when applied to instances of the attacker’s problem. The GLPK outperforms the other free and open source solvers, but is still slower than CPLEX and GUROBI. We have decided to use the GLPK as an optimization solver in this dissertation to solve the proposed integer programs during the decision phase of the nodes. We motivate the use of the GLPK optimization solver for many reasons, 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} +\item It is free and its installation is easy. +\item The 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 used a divide-and-conquer method to divide the large problem into smaller instances, and then the GLPK optimization solver is used to solve each of them. +\item It is easy to use the GLPK solver and it is possible to call its routines within a simulator. +\item The GLPK comes with a stand-alone solver, a callable library, and the modeling language GMPL. The GMPL is compatible with AMPL and is extremely easy to learn. + \item Modeling language and solver can be used independently. +\item GUI is available for Windows, Mac OS X, and Linux. Java, Python, and Matlab interfaces are available. +%\item Database support and formatted text output. +%\item Exact simplex algorithm and branch-and-bound method are integrated with GLPK. +\end{enumerate} \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. +\label{ch3:4} +\indent In this chapter, an overview of the evaluation tools for wireless sensor networks and optimization solvers has been presented. Major testbeds for wireless sensor network have been demonstrated. We have found that most researchers in the field of WSNs use the simulators to evaluate theirs works because they are free, easy to use, more flexible, and scalable for large WSNs. Several simulators for wireless sensor networks are described. The comparison among some types of network simulators show that OMNeT++ simulator is a good candidate to be used as performance evaluation tool to evaluate the efficiency of our protocols in this dissertation. This chapter also highlights the optimization problem in WSNs and the most popular free and commercial linear optimization solvers. The commercial optimization solvers outperform the free optimization solvers. GLPK has been 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. \ No newline at end of file