## 1 Introduction  
Current advances in micro-electromechanical systems (MEMS), low-power wireless communications, low-power analog and digital electronics that have led to the development of low-cost and low-power sensor nodes that are small in size is receiving increasing attention. Sensor nodes have the ability to sense the nearby environment, perform simple computations and communicate within a small region. Although their capacities are limited, combining these small sensors in large numbers provides a new technological platform, called Wireless Sensor Networks (WSNs). WSNs provide reliable operations in various application areas, including environmental monitoring, health monitoring, vehicle tracking system, military surveillance and earthquake observation [1]. They have been suggested for many applications where a large distribution of small and low-cost sensors is used in a vast area to sense the environment to detect events, gather information and transfer the information to a sink hop-by hop through the sensor nodes themselves. At each node both processing and the transmission of the information consume, more or less, some energy, which is usually supplied from the limited battery-based energy sources of the nodes themselves. Since the deployment of the sensors is usually done once for a long period of time, it is desired that the energy supply of the nodes last for a long time. Not only is the energy of individual nodes important during the lifetime of the network, but also the balance of the energy all across the network is equally important for full coverage of the area as well as finding a route along the path towards the sink. Today, such networks have many applications in different scenarios such as battlefields, intelligent streets and highways, medicine, _etc._[2, 3, 4]. Also, according to the nature of sensors, we can mention some advantages of sensor networks such as fast deployment in emergency situations, capability to be used in dangerous situations and low cost for information gathering over a long time. However, due to the limited sources of energy, delivering sensory data to the sink necessitates an efficient data routing solution. In _ad hoc_ networks, routing protocols are anticipated to perform three main functions:  
1. Determining and detecting network topology changes like node and link failures. 2. Maintaining network connectivity. 3. Computing and discovering appropriate routes. To achieve these objectives, numerous solutions such as flooding, _ad hoc_ clustering, geometric spanners, _etc_ have been used [5, 6, 7]. However, in sensor networks, it is obvious that most of the _ad hoc_ routing protocols are not suitable since the most important form of traffic in such networks is many to one and all the nodes normally report to a single Base Station (BS) or fusion center. Nevertheless, some qualities of these protocols can be related to the features of sensor networks, such as multi-hop communication and Quality of Service routing. Depending on the network structure, routing in WSNs can be classified into:  
**Flat-based or Data Centric routing**: Examples of this class are Sensor Protocols for Information via Negotiation (SPIN) [8], Minimum Cost Forwarding (MCF) [9], Directed Diffusion (DD) [10] or those mentioned in [11, 12, 13]. **Hierarchical-Based or Cluster-Based Routing**: Energy efficient, weight-clustering algorithm (EWC) [13], TEEN (Threshold sensitive Energy Efficient sensor Network protocol) [14], Self-organizing Protocol (SOP) [15] or the systems described in [16, 17, 18] belong to this category. **Location-Based Routing**: Energy Aware Greedy Routing (EAGR) [19], Geographic and Energy Aware Routing (GEAR) [1], Geographical Adaptive Fidelity (GAF) [20] are some examples of this class of sensor networks routing protocols. Data-centric protocols are query-based and work based on the naming of requested data. In this type of routing protocols, a query will be sent from a sink to certain regions in the network and it waits for the responses from the sensor nodes.