A Genetic Algorithm for Task Allocation Problem in the Internet of Things
In the last few years, the Internet of Things (IoT) is gaining remarkable attention in both academic and industrial worlds. The main goal of the IoT is laying on describing everyday objects with different capabilities in an interconnected fashion to the Internet to share resources and to carry out the assigned tasks. Most of the IoT objects are heterogeneous in terms of the amount of energy, processing ability, memory storage, etc. However, one of the most important challenges facing the IoT networks is the energy-efficient task allocation. An efficient task allocation protocol in the IoT network should ensure the fair and efficient distribution of resources for all objects to collaborate dynamically with limited energy. The canonical definition for network lifetime in the IoT is to increase the period of cooperation between objects to carry out all the assigned tasks. The main contribution in this paper is to address the problem of task allocation in the IoT as an optimization problem with a lifetime-aware model. A genetic algorithm is proposed as a task allocation protocol. For the proposed algorithm, a problem-tailored individual representation and a modified uniform crossover are designed. Further, the individual initialization and perturbation operators (crossover and mutation) are designed so as to remedy the infeasibility of any solution located or reached by the proposed genetic algorithm. The results showed reasonable performance for the proposed genetic-based task allocation protocol. Further, the results prove the necessity for designing problem-specific operators instead of adopting the canonical counterparts.