I. Introduction
Combinatorial optimization is lively field of applied mathematics, combining techniques from combinatorics, linear programming, and the theory of algorithms, to solve optimization problems over discrete structures [1]. There are many practical optimization problems to be put under combinatorial optimization, such as operations management and logistics, production planning, resource allocation, scheduling, location and distribution problems, etc. [2], [3]. To solve combinatorial optimization problems, many algorithms or approaches have been developed. It is well known t hat many combinatorial optimization problems are NP-hard, and it is unlikely that we will ever be able to find efficient (i.e. polynomial-time) algorithms for their solution. In such cases it is worth looking for algorithms that always return a feasible solution whose measure is not too far from the optimum [4], such as Genetic Algorithm, Simulated Annealing, Tabu Search, Neural Networks, Ant Algorithm, etc.