一、背景
遗传算法是基于自然选择和自然遗传机制的一种随机搜索算法,具有良好的并行性和全局寻优能力,能够自适应地调整搜索方向。这是一种相对来说比较简单的算法,因为它不需要问题求解者具备非常完备的问题领域知识,它能够通过类似生物体繁殖后代的机制自动生成问题的解,不过这个解往往不是该问题的最优解,而是相对来说的次优解。正是由于遗传算法简单的算法思路以及强大的搜索能力,它在机器人寻路、函数优化以及组合优化等诸多领域都得到了相当广泛的应用。用遗传算法求解旅行商问题就是遗传算法应用到组合优化问题中的一个经典例子。
二、旅行商问题
旅行商问题的目的是求解最优线路,是一类经典的规划类问题。旅行商问题是指,一个旅行商,要去往 n个不同的城市,需要每个城市都去,并且仅仅去一次,再回到最初的城市,形成一个环路,从众多可能路径中求解出一个最短的路径。旅行商问题是一个N完全问题,其所有的路线 数的搜索空间随着城市数 n的增大而快速增大,就产生了所谓的 “组合爆炸 ”问题。
旅行商问题的数学模型为:假设有 n 个( n 为有限正自然数)城市集合C={ 1,2,…,i,j,…,n } ;其中两城市间的距离为d_{ij}∈Z + ,其中的 i,j∈C(1≤i,j≤n);求解一个城市的序列 I(1),I(2),…,I(n) 使得使得从一个城市出发,遍历所有城市后又回到原城市的总路程最小时的。这里的 I(1),I(2),…, I(n)是城市序号 1,2,…,n 的一个全排列。根据上面的分析,可以得到的数学模型为:
min\sum_{i≠j}d_{ij}x_{