# A Novel Algorithm to Optimize the Energy Consumption Using IoT and Based on Ant Colony Algorithm
## 2 Literature Review  
### Routing Algorithms in IoT Platform  
In [16], to reduce delivery delays, a method was proposed and simulated for routing in the Internet of Things using a public algorithm. The proposed algorithm for synchronizing duplicate databases ensures a sufficient number of random data exchanges on the network so that all nodes can eventually receive all the messages. As a result, all messages are delivered to the destination. Available routing is similar to massive sending on a network because it tries to send every message to all network nodes. Of course, in each step, like massive sending, the message is not sent to all neighboring nodes, but it tries to determine the location of the recipient using several unique methods (such as using GPS) so that the network resource consumption (such as memory) is reduced. However, this method strongly requires bandwidth and buffer. In [17], a simple routing method called direct forwarding was proposed, in which when the source node generated a message, it stores it in its buffer and carries it until a collision with a destination node and delivers the message to it. This method generates one copy of the message, and as a result, the least data transfer is performed to deliver the message, and the overhead is minimized on the network. However, the message's delivery may be delayed too much because there are no restrictions on the delivery delay. In 2016, researchers used content-oriented routing technology to solve the traffic congestion problem in the central network area [18]. With routing data related to intermediate relay nodes for processing, it is possible to achieve data at a higher speed, thus effectively reducing network traffic. As a result, a significant reduction in latency can be achieved. In addition, duplicate data transmission can be eliminated after data collection, which mainly reduces wireless communications' energy consumption and saves battery life. Therefore, in this paper, two methods for implementing this technology were proposed and simulated. The first method is content-centric routing (CCR), and the second method is the integration of the first method with the Internet Engineering Task Force Routing Protocol for Low-Power and Lossy Networks (IETF RPL) protocol, both of which are implemented on the Contiki operating system using the TelosB platform. The simulation results show the superiority of the first method in low network latency, high energy efficiency, and reliability. In 2015, after reviewing various IoT routing methods by researchers [19], an optimizing energy consumption algorithm called Energy-Efficient Content-Based Routing (EECBR) was proposed and simulated. The proposed algorithm uses a virtual topology that is centrally constructed, and routing is distributed in such a way that the path of the generated events is directed to the desired subscribers or sensors. This method has been implemented and simulated with Omnet ++ software, and the simulation results have better conditions in terms of the energy variance than the compared ones. A novel modelling framework has been introduced in [20] to model the security-energy-environment issues as the main features in considering the quality of service (QoS) for the applications of the Internet of Things. In [21], an overview on the energy management in the Internet of Things environment was presented. This review aims to recognize significant research trends of power consumption in Internet of Things platform. A method for eliminating the shortcomings and deficiencies related to resource constraints in the field of memory, computing power, and the energy of the wireless sensor terminal node in the Internet of Things is presented in the reference [22], which is performed by the IoT routing method and based on the informed clustering of energy. This method is called resource-aware Ad hoc On Distance Vector (RA-AODVjr) and is designed by combining RA clustering and AODVjr routing protocol.