求解的结果更优化,所以在时间和求解优化解要权衡,而且改变交叉概率和变异概率也同样影响着收敛速度和优化解的得到。
另外从图可以看出,算法迭代并没有稳定,那是因为迭代的次数不够,造成解的搜索没有稳定和优化,迭代次数一般可以上万次42粒子群算法求解
当参数为50个粒子迭代10次,局部优化使用2Opt算法,如图4。
图5:50个粒子10次迭代的粒子群TSP问题求解结果
当参数为50个粒子迭代30次,局部优化使用2Opt算法,如图5。
图6:50个粒子30次迭代的粒子群TSP问题求解结果
当参数为30个粒子迭代30次,局部优化使用2Opt算法,如图6。
图7:30个粒子30次迭代的粒子群TSP问题求解结果
根据实验结果50粒子10迭代时最短路径为42176,50个粒子30次迭代是最短路径为
f41619,30个粒子30次迭代时最短路径为40809,30个粒子30次迭代时解最优,可以看出最优解的得出并不是只受迭代次数或是粒子数影响,在其它条件不变的情况下,两种都对解的求解有影响,如果考虑其它因素的话,求解更加复杂。43遗传算法同粒子群算法对比
取两个实验的最优解结果,即50粒子群30次迭代的粒子群算法同种群大小为1200的遗传算法的对比,如图8,图9
图8:30个粒子30次迭代的粒子群TSP问题求解结果
图9:种群大小为100迭代2000次的TSP问题求解结果
采用两种算法对同一TSP问题进行求解,从实验明显可见粒子群算法比遗传算法得到的解更加优化,而且所花费的时间也比遗传算法少得多。
造成这种实验结果的原因可能是算法本身的适应问题,可能是粒子群算法更适合解此类问题;另一方面,可能是遗传算法的参数设置不能达到最优解,因为遗传算法的种群大小,最大迭代次数,交叉概率和变异概率的设定对算法的收敛和最优解的得到有很大影响,可能是我们设定的这些参数不够准确,如在遗传算法中我们只设置了2000次的最大迭代次数,明显不能满足要求,要得到更好的优化解,就必须设置好算法的参数,目前有许多研究都在改进算法,以达到满意的效果。
5总结
f本文采用MATLAB实现遗传算法求解TSP问题,并根据实验结果进行了分析,遗传算法是一种智能优化算法,它的实现有些关键点,一是串的编码方式,本质就是问题编码,串长度及编码形式对算法收敛影响极大;二是适应函数的确定,这是选择的基础;三是自身参数的设定,其中重要的是群体大小,最大迭代次数,交叉概率和变异概率,通过实验我们可以看到最大迭代次数对问题求解的精度有影响,交叉概率和变异概率的设定对问题的收敛速度和求解精度r