+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$). In the beginning, a node checks whether it has enough energy to stay active during the next sensing phase (i.e., the remaining energy $RE_j$ $\geq$ $E_{th}$ (the amount of energy required to be alive during one period)). 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 criteria described in section \ref{ch4:sec:02:03:02}.
+%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 ActiveSleep 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 ActiveSleep packet to know its state for the coming sensing phase. The flowchart of DiLCO protocol executed in each sensor node is presented in Figure \ref{flow4}.
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[scale=0.50]{Figures/ch4/Algo1.png} % 70mm
+\caption{The flowchart of DiLCO protocol.}
+\label{flow4}
+\end{figure}