We now present the energy consumption model used in our scheme. In a WSN, sensor nodes will communicate with each other through wireless communication. The design of a network topology control algorithm has a great impact on the energy consumption of a sensor node. To the ordinary sensor node, the longer the data transmission distances among sensor nodes are, the more the loss of radio signal is. Facing long-distance data transmissions, we will adopt the method of multi-hop to transmit data in order to save energy.

We adopt the energy consumption model in [31–33] as the single sensor node energy model. The energy consumption for sending data (*E*
_{Tx}) consists of the energy consumed by an amplifier circuit (*E*
_{Tx-amp}) and by a transmission circuit (*E*
_{Tx-elec}), while the energy consumption for receiving data is composed of the energy consumed by a receiving circuit (*E*
_{Rx-elec}). Based on this, we consider the energy computation for the cluster-based WSN model and the multi-agent-based WSN model in the following.

We consider two modes for energy consumption when sending data: free space transmission mode and multi-hop attenuation mode. The mode that we choose depends on the distance *d* between the sending node and the receiving node. If *d* is larger than threshold *d*
_{0}, the multi-hop attenuation mode will be chosen. If *d* is smaller than *d*
_{0}, the free space transmission mode will be used. Also, denote *l* as the size of data packet.

The computational formula of the energy consumption of sending node (*E*
_{
Tx
}) is

$$ {\begin{aligned} E_{\text{Tx}}(l,d) = E_{\text{Tx-elec}}(l) + E_{\text{Tx-amp}}(l,d) \left\{ \begin{array}{l} lE_{\text{elec}} + l {\varepsilon}_{fs}d^{2},\quad d<d_{0} \\ lE_{\text{elec}} + l {\varepsilon}_{\text{amp}}d^{4},\quad d \geq d_{0} \end{array}\right. \end{aligned}} $$

((1))

The computational formula of the energy consumption of receiving node (*E*
_{Rx}) is

$$ E_{\text{Rx}}(l) = E_{\text{Rx-elec}}(l) = l * E_{\text{elec}} $$

((2))

In this model, the value of parameter *E*
_{elec} is the energy consumed by transmitting one bit data; it depends on the methods of channel coding and signal propagation. The typical values of parameters accepted by researchers are

$$ E_{\text{elec}} = 50~\text{nJ/bit} $$

((3))

$$ {\varepsilon}_{\text{amp}} = 0.0013~\text{pJ/bit/}\mathrm{m}^{4} $$

((4))

$$ {\varepsilon}_{fs} = 10~\text{pJ/bit/}\mathrm{m}^{2} $$

((5))

According to [18], given a communication node energy consumption model, the energy consumption consists of three parts: energy for controlling data exchange *E*
_{Ctr}, energy for receiving data *E*
_{Rx}, energy for sending data *E*
_{Tx}. Because every node has the same energy consumption for controlling data exchange, we will ignore it in comparison.

Therefore, the total energy consumption (*E*
_{sum}) of every node is

$$ {{}\begin{aligned} E_{\text{sum}}(l,d) = \left\{ \begin{array}{l} l_{r}*E_{\text{elec}} + l_{t}*E_{\text{elec}} + l_{t} {\varepsilon}_{fs}d^{2},\quad d<d_{0} \\ l_{r}*E_{\text{elec}} + l_{t}*E_{\text{elec}} + l_{t} {\varepsilon}_{\text{amp}}d^{4},\quad d\geq d_{0} \end{array}\right. \end{aligned}} $$

((6))

where *l*
_{
r
} is the size of received data packet, and *l*
_{
t
} is the size of transmitted data packet.

Accordingly, we will use the energy formula introduced above to compute the energy consumption of two models: a cluster-based WSN model, a multi-agent-based WSN model.

### Energy consumption of cluster-based WSN

In this kind of algorithm such as LEACH algorithm, wireless sensor networks have sink node, cluster head node, and ordinary member node. Here, we assume that cluster head node has ability of fusing data and the rate of fusion is *p*. Ordinary member node sends raw data to its cluster head. Cluster head receives data from every cluster member from two parts: (1) ordinary cluster member nodes and (2) cluster head nodes. Assume that every cluster member node has a data packet whose size is *l*, and that cluster member nodes send data to the cluster head node, and that only sending data consumes energy. From the energy model formula above, we have the energy consumption of cluster member:

$$ E_{\text{mem}} = \left\{ \begin{array}{l} l*E_{\text{elec}} + l {\varepsilon}_{fs}d^{2},\quad d<d_{0} \\ l*E_{\text{elec}} + l {\varepsilon}_{\text{amp}}d^{4},\quad d\geq d_{0} \end{array}\right. $$

((7))

Assume every cluster head has *N* cluster members. The energy consumption of cluster head is divided into two parts: one is for receiving data from cluster members and the other is for sending gathered data to the sink node. So the energy consumption for receiving data (*E*
_{
cluRev
}) will be as follows.

$$ E_{\text{cluRev}} = N*l*E_{\text{elec}} $$

((8))

Energy consumption for sending data (*E*
_{cluTran}) is:

$$ {\begin{aligned} E_{\text{cluTran}} = \left\{ \begin{array}{l} \left[(N*(1-p) + 1)\right]*l*({E}_{\text{elec}} + {\varepsilon}_{fs}{d}^{2}), \quad {d} < {d}_{0} \\ \left[(N*(1-p) + 1)\right]*l*({E}_{\text{elec}} + {\varepsilon}_{\text{amp}}{d}^{4}), \quad {d} \geq {d}_{0} \end{array}\right. \end{aligned}} $$

((9))

We can know that the total energy consumption of cluster head is

$$ E_{\text{clu}} = E_{\text{cluTran}}+E_{\text{cluRev}} $$

((10))

### Energy consumption of multi-agent-based WSN

There are only sink node and ordinary sensor nodes in wireless sensor networks. During the process of data collection, a mobile agent will collect and fuse the data of each node. Assume that the size of a mobile agent is *l*
_{MA}, and the size of data packet collected from every sensor node is *l*. Here, we also assume that cluster head node has ability of fusing data and the rate of fusion is *p*. When the mobile agent reaches the *k*th node, the size of the data in total is

$$ l_{k} = l_{\text{MA}} + [1 + (k-1)(1-p)] * l $$

((11))

So the energy consumption of the *k*th node for sending data is

$$ E_{t} = \left\{ \begin{aligned} & l_{k}*E_{\text{elec}} + l_{k} {\varepsilon}_{fs}d^{2},\quad d<d_{0} \\ & l_{k}*E_{\text{elec}} + l_{k} {\varepsilon}_{\text{amp}}d^{4},\quad d \geq d_{0} \end{aligned}\right. $$

((12))

The energy consumption for receiving data is

$$ E_{r} = l_{k-1} * E_{\text{elec}} $$

((13))

So the total energy consumption of the *k*th node is

$$ E = E_{t} + E_{r} $$

((14))