学习常用模型及算法2.蚁群算法(Ant Colony Optimization)

1.蚁群算法

蚁群算法是一种智能优化算法,通过蚁群优化求解复杂问题,ACO在离散优化问题方面有比较好的优越性。
蚁群算法是一种用来寻找优化路径的概率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。

2.算法背景

单只蚂蚁的行为及其简单,行为数量在10种以内,但成千上万只蚂蚁组成的蚁群却能拥有巨大的智慧,这离不开它们信息传递的方式——信息素。
蚂蚁在行走过程中会释放一种称为“信息素”的物质,用来标识自己的行走路径。在寻找食物的过程中,根据信息素的浓度选择行走的方向,并最终到达食物所在的地方。
信息素会随着时间的推移而逐渐挥发。
在一开始的时候,由于地面上没有信息素,因此蚂蚁们的行走路径是随机的。蚂蚁们在行走的过程中会不断释放信息素,标识自己的行走路径。随着时间的推移,有若干只蚂蚁找到了食物,此时便存在若干条从洞穴到食物的路径。由于蚂蚁的行为轨迹是随机分布的,因此在单位时间内,短路径上的蚂蚁数量比长路径上的蚂蚁数量要多,从而蚂蚁留下的信息素浓度也就越高。这为后面的蚂蚁们提供了强有力的方向指引,越来越多的蚂蚁聚集到最短的路径上去。
(1)高度结构化的组织——虽然蚂蚁的个体行为极其简单,但由个体组成的蚁群却构成高度结构化的社会组织,蚂蚁社会的成员有分工,有相互的通信和信息传递。
(2)自然优化——蚁群在觅食过程中,在没有任何提示下总能找到从蚁巢到食物源之间的最短路径;当经过的路线上出现障碍物时,还能迅速找到新的最优路径。
(3)信息正反馈——蚂蚁在寻找食物时,在其经过的路径上释放信息素(外激素)。蚂蚁基本没有视觉,但能在小范围内察觉同类散发的信息素的轨迹,由此来决定何去何从,并倾向于朝着信息素强度高的方向移动。
(4)自催化行为——某条路径上走过的蚂蚁越多,留下的信息素也越多(随时间蒸发一部分),后来蚂蚁选择该路径的概率也越高。

3.算法基本思想

(1)根据具体问题设置多只蚂蚁,分头并行搜索。
(2)每只蚂蚁完成一次周游后,在行进的路上释放信息素,信息素量与解的质量成正比。
(3)蚂蚁路径的选择根据信息素强度大小(初始信息素量设为相等),同时考虑两点之间的距离,采用随机的局部搜索策略。这使得距离较短的边,其上的信息素量较大,后来的蚂蚁选择该边的概率也较大。
(4)每只蚂蚁只能走合法路线(经过每个城市1次且仅1次),为此设置禁忌表来控制。
(5)所有蚂蚁都搜索完一次就是迭代一次,每迭代一次就对所有的边做一次信息素更新,原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。
(6)更新信息素包括原有信息素的蒸发和经过的路径上信息素的增加。
(7)达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的最优解。

4.表示方式

4.1 参数表示

4.2 计算公式

4.3 结论

当出现停滞现象的时候,说明已经得到最优解,算法结束。
我们发现在第二次迭代的时候,五只蚂蚁走的是同一条路,所以算法收敛结束。

最优路径A->E->D->C->B->A, 最优路径的距离为9.

5.蚁群算法特点

蚁群算法是一种基于多主体的智能算法,不是单个蚂蚁行动,而是多个蚂蚁同时搜索,具有分布式的协同优化机制。
本质上属于随机搜索算法(概率算法),具有概率搜索的特征。
是一种全局搜索算法,能够有效地避免局部最优。
(1)较强的鲁棒性——稍加修改即可应用于其他问题;
(2)分布式计算——本质上具有并行性;
(3)易于与其他启发式算法结合。

6.例

遍游三十四省问题。

    (1)计算各城市距离矩阵
    %a是纬度,b是经度
    a=[45.7333 43.75 43.88333 41.8 40.8 39.91667 39.0003 38.45 38.0003 37.86667 36.66667 36.63333 36.00066 34.76667 34.28333 32 31.86667 31.2333 30.58333 30.66667 30.26667 29.9833 29.65 28.6666 28.21667 26.58333 26.0001 25.0006 25.0005 23.001333 22.8 21.38333 21.55 20.000333];%各个城市纬度
    b=[126.6 87.6 125.3166 123.4166 111.6833 116.41 117.2 106.26667 114.48 112.55 117.0 101.8 103.66 113.65 108.95 118.7666 117.28333 121.4833 114.28333 104 120.1666 106.9 91.0001 115.9166 112.98 106.71667 119.3 102.7 121.5 113.23333 108.3166 115.2 115.0016 110.3333];%各个城市经度
    for i=1:34
        for j=1:34
            c(i,j)=6371.3*acos(cos(a(1,i)*pi./180)*cos(a(1,j)*pi./180)*cos(b(1,i)*pi./180-b(1,j)*pi./180)+sin(a(1,i)*pi./180)*sin(a(1,j)*pi./180))%利用经纬度计算地球上两点距离
        end
    end
    for i=1:2
        for j=1:34
            coord(i,j)=a(j);
            coord(2,j)=b(j);
        end
    end
c =
      1.0e+03 *
     列 1 至 3
      0.0000 + 0.0000i   3.0577 + 0.0000i   0.2293 + 0.0000i
      3.0577 + 0.0000i   0.0000 + 0.0000i   2.9996 + 0.0000i
      0.2293 + 0.0000i   2.9996 + 0.0000i   0.0000 + 0.0000i
      0.5065 + 0.0000i   2.9087 + 0.0000i   0.2787 + 0.0000i
      1.3239 + 0.0000i   2.0012 + 0.0000i   1.1702 + 0.0000i
      1.0517 + 0.0000i   2.4121 + 0.0000i   0.8583 + 0.0000i
      1.0742 + 0.0000i   2.5116 + 0.0000i   0.8668 + 0.0000i
      1.8560 + 0.0000i   1.6670 + 0.0000i   1.7005 + 0.0000i
      1.3191 + 0.0000i   2.3372 + 0.0000i   1.1194 + 0.0000i
      1.4531 + 0.0000i   2.1898 + 0.0000i   1.2627 + 0.0000i
      1.2871 + 0.0000i   2.6022 + 0.0000i   1.0674 + 0.0000i
      2.2962 + 0.0000i   1.4395 + 0.0000i   2.1430 + 0.0000i
      2.2005 + 0.0000i   1.6146 + 0.0000i   2.0357 + 0.0000i
      1.6375 + 0.0000i   2.4419 + 0.0000i   1.4238 + 0.0000i
      1.9622 + 0.0000i   2.1147 + 0.0000i   1.7652 + 0.0000i
      1.6689 + 0.0000i   3.0077 + 0.0000i   1.4397 + 0.0000i
      1.7377 + 0.0000i   2.9018 + 0.0000i   1.5091 + 0.0000i
      1.6719 + 0.0000i   3.2677 + 0.0000i   1.4463 + 0.0000i
      1.9942 + 0.0000i   2.7622 + 0.0000i   1.7688 + 0.0000i
      2.5736 + 0.0000i   2.0484 + 0.0000i   2.3789 + 0.0000i
      1.8084 + 0.0000i   3.2285 + 0.0000i   1.5807 + 0.0000i
      2.4484 + 0.0000i   2.2898 + 0.0000i   2.2416 + 0.0000i
      3.5652 + 0.0000i   1.5966 + 0.0000i   3.4086 + 0.0000i
      2.1161 + 0.0000i   3.0206 + 0.0000i   1.8873 + 0.0000i
      2.2858 + 0.0000i   2.8437 + 0.0000i   2.0600 + 0.0000i
      2.7627 + 0.0000i   2.5687 + 0.0000i   2.5480 + 0.0000i
      2.2884 + 0.0000i   3.4673 + 0.0000i   2.0614 + 0.0000i
      3.1399 + 0.0000i   2.4945 + 0.0000i   2.9323 + 0.0000i
      2.3502 + 0.0000i   3.7048 + 0.0000i   2.1281 + 0.0000i
      2.8009 + 0.0000i   3.2889 + 0.0000i   2.5720 + 0.0000i
      3.0377 + 0.0000i   3.0048 + 0.0000i   2.8142 + 0.0000i
      2.8995 + 0.0000i   3.5563 + 0.0000i   2.6704 + 0.0000i
      2.8885 + 0.0000i   3.5290 + 0.0000i   2.6592 + 0.0000i
      3.2255 + 0.0000i   3.3796 + 0.0000i   2.9976 + 0.0000i
     列 4 至 6
      0.5065 + 0.0000i   1.3239 + 0.0000i   1.0517 + 0.0000i
      2.9087 + 0.0000i   2.0012 + 0.0000i   2.4121 + 0.0000i
      0.2787 + 0.0000i   1.1702 + 0.0000i   0.8583 + 0.0000i
      0.0000 + 0.0000i   0.9857 + 0.0000i   0.6252 + 0.0000i
      0.9857 + 0.0000i   0.0000 + 0.0000i   0.4123 + 0.0000i
      0.6252 + 0.0000i   0.4123 + 0.0000i   0.0000 + 0.0000i
      0.6114 + 0.0000i   0.5113 + 0.0000i   0.1224 + 0.0000i
      1.5022 + 0.0000i   0.5323 + 0.0000i   0.8889 + 0.0000i
      0.8710 + 0.0000i   0.3932 + 0.0000i   0.2707 + 0.0000i
      1.0248 + 0.0000i   0.3346 + 0.0000i   0.4044 + 0.0000i
      0.7941 + 0.0000i   0.6509 + 0.0000i   0.3650 + 0.0000i
      1.9429 + 0.0000i   0.9738 + 0.0000i   1.3249 + 0.0000i
      1.8222 + 0.0000i   0.8790 + 0.0000i   1.1983 + 0.0000i
      1.1555 + 0.0000i   0.6928 + 0.0000i   0.6224 + 0.0000i
      1.5146 + 0.0000i   0.7636 + 0.0000i   0.9105 + 0.0000i
      1.1651 + 0.0000i   1.1650 + 0.0000i   0.9054 + 0.0000i
      1.2313 + 0.0000i   1.1122 + 0.0000i   0.8986 + 0.0000i
      1.1876 + 0.0000i   1.3796 + 0.0000i   1.0686 + 0.0000i
      1.4905 + 0.0000i   1.1599 + 0.0000i   1.0556 + 0.0000i
      2.1285 + 0.0000i   1.3219 + 0.0000i   1.5226 + 0.0000i
      1.3151 + 0.0000i   1.3988 + 0.0000i   1.1259 + 0.0000i
      1.9786 + 0.0000i   1.2780 + 0.0000i   1.4022 + 0.0000i
      3.1981 + 0.0000i   2.2420 + 0.0000i   2.5738 + 0.0000i
      1.6099 + 0.0000i   1.4031 + 0.0000i   1.2518 + 0.0000i
      1.7815 + 0.0000i   1.4043 + 0.0000i   1.3385 + 0.0000i
      2.2769 + 0.0000i   1.6455 + 0.0000i   1.7326 + 0.0000i
      1.7970 + 0.0000i   1.7894 + 0.0000i   1.5706 + 0.0000i
      2.6674 + 0.0000i   1.9441 + 0.0000i   2.0935 + 0.0000i
      1.8764 + 0.0000i   1.9784 + 0.0000i   1.7252 + 0.0000i
      2.2946 + 0.0000i   1.9845 + 0.0000i   1.9046 + 0.0000i
      2.5366 + 0.0000i   2.0263 + 0.0000i   2.0503 + 0.0000i
      2.3971 + 0.0000i   2.1844 + 0.0000i   2.0641 + 0.0000i
      2.3854 + 0.0000i   2.1633 + 0.0000i   2.0467 + 0.0000i
      2.7191 + 0.0000i   2.3165 + 0.0000i   2.2892 + 0.0000i
     列 7 至 9
      1.0742 + 0.0000i   1.8560 + 0.0000i   1.3191 + 0.0000i
      2.5116 + 0.0000i   1.6670 + 0.0000i   2.3372 + 0.0000i
      0.8668 + 0.0000i   1.7005 + 0.0000i   1.1194 + 0.0000i
      0.6114 + 0.0000i   1.5022 + 0.0000i   0.8710 + 0.0000i
      0.5113 + 0.0000i   0.5323 + 0.0000i   0.3932 + 0.0000i
      0.1224 + 0.0000i   0.8889 + 0.0000i   0.2707 + 0.0000i
      0.0000 + 0.0000i   0.9499 + 0.0000i   0.2615 + 0.0000i
      0.9499 + 0.0000i   0.0000 + 0.0000i   0.7190 + 0.0000i
      0.2615 + 0.0000i   0.7190 + 0.0000i   0.0000 + 0.0000i
      0.4241 + 0.0000i   0.5531 + 0.0000i   0.1699 + 0.0000i
      0.2601 + 0.0000i   0.9661 + 0.0000i   0.2676 + 0.0000i
      1.3764 + 0.0000i   0.4425 + 0.0000i   1.1307 + 0.0000i
      1.2388 + 0.0000i   0.3570 + 0.0000i   0.9857 + 0.0000i
      0.5667 + 0.0000i   0.7756 + 0.0000i   0.3672 + 0.0000i
      0.9032 + 0.0000i   0.5219 + 0.0000i   0.6459 + 0.0000i
      0.7912 + 0.0000i   1.3411 + 0.0000i   0.7728 + 0.0000i
      0.7933 + 0.0000i   1.2391 + 0.0000i   0.7283 + 0.0000i
      0.9472 + 0.0000i   1.6008 + 0.0000i   0.9878 + 0.0000i
      0.9730 + 0.0000i   1.1412 + 0.0000i   0.8250 + 0.0000i
      1.5172 + 0.0000i   0.8900 + 0.0000i   1.2599 + 0.0000i
      1.0082 + 0.0000i   1.5643 + 0.0000i   1.0062 + 0.0000i
      1.3753 + 0.0000i   0.9433 + 0.0000i   1.1318 + 0.0000i
      2.6090 + 0.0000i   1.7097 + 0.0000i   2.3509 + 0.0000i
      1.1552 + 0.0000i   1.4064 + 0.0000i   1.0464 + 0.0000i
      1.2608 + 0.0000i   1.2967 + 0.0000i   1.0968 + 0.0000i
      1.6905 + 0.0000i   1.3202 + 0.0000i   1.4630 + 0.0000i
      1.4589 + 0.0000i   1.8453 + 0.0000i   1.4091 + 0.0000i
      2.0664 + 0.0000i   1.5328 + 0.0000i   1.8233 + 0.0000i
      1.6082 + 0.0000i   2.0710 + 0.0000i   1.5901 + 0.0000i
      1.8183 + 0.0000i   1.8409 + 0.0000i   1.6721 + 0.0000i
      1.9883 + 0.0000i   1.7512 + 0.0000i   1.7895 + 0.0000i
      1.9683 + 0.0000i   2.0813 + 0.0000i   1.8491 + 0.0000i
      1.9517 + 0.0000i   2.0564 + 0.0000i   1.8300 + 0.0000i
      2.2130 + 0.0000i   2.0886 + 0.0000i   2.0412 + 0.0000i
     列 10 至 12
      1.4531 + 0.0000i   1.2871 + 0.0000i   2.2962 + 0.0000i
      2.1898 + 0.0000i   2.6022 + 0.0000i   1.4395 + 0.0000i
      1.2627 + 0.0000i   1.0674 + 0.0000i   2.1430 + 0.0000i
      1.0248 + 0.0000i   0.7941 + 0.0000i   1.9429 + 0.0000i
      0.3346 + 0.0000i   0.6509 + 0.0000i   0.9738 + 0.0000i
      0.4044 + 0.0000i   0.3650 + 0.0000i   1.3249 + 0.0000i
      0.4241 + 0.0000i   0.2601 + 0.0000i   1.3764 + 0.0000i
      0.5531 + 0.0000i   0.9661 + 0.0000i   0.4425 + 0.0000i
      0.1699 + 0.0000i   0.2676 + 0.0000i   1.1307 + 0.0000i
      0.0000 + 0.0000i   0.4157 + 0.0000i   0.9608 + 0.0000i
      0.4157 + 0.0000i   0.0000 + 0.0000i   1.3547 + 0.0000i
      0.9608 + 0.0000i   1.3547 + 0.0000i   0.0000 + 0.0000i
      0.8166 + 0.0000i   1.1963 + 0.0000i   0.1809 + 0.0000i
      0.3585 + 0.0000i   0.3689 + 0.0000i   1.0893 + 0.0000i
      0.5132 + 0.0000i   0.7754 + 0.0000i   0.6981 + 0.0000i
      0.8637 + 0.0000i   0.5437 + 0.0000i   1.6386 + 0.0000i
      0.7945 + 0.0000i   0.5344 + 0.0000i   1.5165 + 0.0000i
      1.1006 + 0.0000i   0.7319 + 0.0000i   1.9085 + 0.0000i
      0.8254 + 0.0000i   0.7216 + 0.0000i   1.3359 + 0.0000i
      1.1208 + 0.0000i   1.3739 + 0.0000i   0.6940 + 0.0000i
      1.0975 + 0.0000i   0.7698 + 0.0000i   1.8414 + 0.0000i
      1.0194 + 0.0000i   1.1958 + 0.0000i   0.8780 + 0.0000i
      2.1848 + 0.0000i   2.5338 + 0.0000i   1.2690 + 0.0000i
      1.0696 + 0.0000i   0.8954 + 0.0000i   1.5884 + 0.0000i
      1.0738 + 0.0000i   1.0123 + 0.0000i   1.4042 + 0.0000i
      1.3687 + 0.0000i   1.4830 + 0.0000i   1.2102 + 0.0000i
      1.4642 + 0.0000i   1.2060 + 0.0000i   2.0345 + 0.0000i
      1.7064 + 0.0000i   1.8792 + 0.0000i   1.2964 + 0.0000i
      1.6617 + 0.0000i   1.3661 + 0.0000i   2.2756 + 0.0000i
      1.6543 + 0.0000i   1.5620 + 0.0000i   1.8714 + 0.0000i
      1.7234 + 0.0000i   1.7532 + 0.0000i   1.6609 + 0.0000i
      1.8505 + 0.0000i   1.7084 + 0.0000i   2.1337 + 0.0000i
      1.8296 + 0.0000i   1.6920 + 0.0000i   2.1068 + 0.0000i
      1.9982 + 0.0000i   1.9634 + 0.0000i   2.0271 + 0.0000i
     列 13 至 15
      2.2005 + 0.0000i   1.6375 + 0.0000i   1.9622 + 0.0000i
      1.6146 + 0.0000i   2.4419 + 0.0000i   2.1147 + 0.0000i
      2.0357 + 0.0000i   1.4238 + 0.0000i   1.7652 + 0.0000i
      1.8222 + 0.0000i   1.1555 + 0.0000i   1.5146 + 0.0000i
      0.8790 + 0.0000i   0.6928 + 0.0000i   0.7636 + 0.0000i
      1.1983 + 0.0000i   0.6224 + 0.0000i   0.9105 + 0.0000i
      1.2388 + 0.0000i   0.5667 + 0.0000i   0.9032 + 0.0000i
      0.3570 + 0.0000i   0.7756 + 0.0000i   0.5219 + 0.0000i
      0.9857 + 0.0000i   0.3672 + 0.0000i   0.6459 + 0.0000i
      0.8166 + 0.0000i   0.3585 + 0.0000i   0.5132 + 0.0000i
      1.1963 + 0.0000i   0.3689 + 0.0000i   0.7754 + 0.0000i
      0.1809 + 0.0000i   1.0893 + 0.0000i   0.6981 + 0.0000i
      0.0000 + 0.0000i   0.9156 + 0.0000i   0.5175 + 0.0000i
      0.9156 + 0.0000i   0.0000 + 0.0000i   0.4339 + 0.0000i
      0.5175 + 0.0000i   0.4339 + 0.0000i   0.0000 + 0.0000i
      1.4601 + 0.0000i   0.5659 + 0.0000i   0.9482 + 0.0000i
      1.3369 + 0.0000i   0.4668 + 0.0000i   0.8214 + 0.0000i
      1.7305 + 0.0000i   0.8291 + 0.0000i   1.2192 + 0.0000i
      1.1556 + 0.0000i   0.4689 + 0.0000i   0.6478 + 0.0000i
      0.5940 + 0.0000i   1.0108 + 0.0000i   0.6142 + 0.0000i
      1.6612 + 0.0000i   0.7895 + 0.0000i   1.1444 + 0.0000i
      0.7341 + 0.0000i   0.8271 + 0.0000i   0.5156 + 0.0000i
      1.3760 + 0.0000i   2.2004 + 0.0000i   1.7672 + 0.0000i
      1.4092 + 0.0000i   0.7113 + 0.0000i   0.9087 + 0.0000i
      1.2316 + 0.0000i   0.7311 + 0.0000i   0.7756 + 0.0000i
      1.0866 + 0.0000i   1.1252 + 0.0000i   0.8825 + 0.0000i
      1.8557 + 0.0000i   1.1148 + 0.0000i   1.3546 + 0.0000i
      1.2266 + 0.0000i   1.5125 + 0.0000i   1.1953 + 0.0000i
      2.0961 + 0.0000i   1.3226 + 0.0000i   1.5903 + 0.0000i
      1.7147 + 0.0000i   1.3089 + 0.0000i   1.3220 + 0.0000i
      1.5351 + 0.0000i   1.4279 + 0.0000i   1.2784 + 0.0000i
      1.9736 + 0.0000i   1.4959 + 0.0000i   1.5596 + 0.0000i
      1.9470 + 0.0000i   1.4756 + 0.0000i   1.5348 + 0.0000i
      1.8947 + 0.0000i   1.6740 + 0.0000i   1.5941 + 0.0000i
     列 16 至 18
      1.6689 + 0.0000i   1.7377 + 0.0000i   1.6719 + 0.0000i
      3.0077 + 0.0000i   2.9018 + 0.0000i   3.2677 + 0.0000i
      1.4397 + 0.0000i   1.5091 + 0.0000i   1.4463 + 0.0000i
      1.1651 + 0.0000i   1.2313 + 0.0000i   1.1876 + 0.0000i
      1.1650 + 0.0000i   1.1122 + 0.0000i   1.3796 + 0.0000i
      0.9054 + 0.0000i   0.8986 + 0.0000i   1.0686 + 0.0000i
      0.7912 + 0.0000i   0.7933 + 0.0000i   0.9472 + 0.0000i
      1.3411 + 0.0000i   1.2391 + 0.0000i   1.6008 + 0.0000i
      0.7728 + 0.0000i   0.7283 + 0.0000i   0.9878 + 0.0000i
      0.8637 + 0.0000i   0.7945 + 0.0000i   1.1006 + 0.0000i
      0.5437 + 0.0000i   0.5344 + 0.0000i   0.7319 + 0.0000i
      1.6386 + 0.0000i   1.5165 + 0.0000i   1.9085 + 0.0000i
      1.4601 + 0.0000i   1.3369 + 0.0000i   1.7305 + 0.0000i
      0.5659 + 0.0000i   0.4668 + 0.0000i   0.8291 + 0.0000i
      0.9482 + 0.0000i   0.8214 + 0.0000i   1.2192 + 0.0000i
      0.0000 + 0.0000i   0.1408 + 0.0000i   0.2710 + 0.0000i
      0.1408 + 0.0000i   0.0000 + 0.0000i   0.4042 + 0.0000i
      0.2710 + 0.0000i   0.4042 + 0.0000i   0.0000 + 0.0000i
      0.4542 + 0.0000i   0.3190 + 0.0000i   0.6906 + 0.0000i
      1.4093 + 0.0000i   1.2688 + 0.0000i   1.6668 + 0.0000i
      0.2343 + 0.0000i   0.3272 + 0.0000i   0.1655 + 0.0000i
      1.1526 + 0.0000i   1.0119 + 0.0000i   1.4016 + 0.0000i
      2.6570 + 0.0000i   2.5175 + 0.0000i   2.9185 + 0.0000i
      0.4606 + 0.0000i   0.3793 + 0.0000i   0.6074 + 0.0000i
      0.6975 + 0.0000i   0.5798 + 0.0000i   0.8867 + 0.0000i
      1.3135 + 0.0000i   1.1809 + 0.0000i   1.5260 + 0.0000i
      0.6692 + 0.0000i   0.6812 + 0.0000i   0.6197 + 0.0000i
      1.7497 + 0.0000i   1.6154 + 0.0000i   1.9650 + 0.0000i
      0.8228 + 0.0000i   0.8675 + 0.0000i   0.6931 + 0.0000i
      1.1393 + 0.0000i   1.0635 + 0.0000i   1.2257 + 0.0000i
      1.4513 + 0.0000i   1.3408 + 0.0000i   1.6043 + 0.0000i
      1.2323 + 0.0000i   1.1839 + 0.0000i   1.2611 + 0.0000i
      1.2204 + 0.0000i   1.1693 + 0.0000i   1.2548 + 0.0000i
      1.5768 + 0.0000i   1.4904 + 0.0000i   1.6741 + 0.0000i
     列 19 至 21
      1.9942 + 0.0000i   2.5736 + 0.0000i   1.8084 + 0.0000i
      2.7622 + 0.0000i   2.0484 + 0.0000i   3.2285 + 0.0000i
      1.7688 + 0.0000i   2.3789 + 0.0000i   1.5807 + 0.0000i
      1.4905 + 0.0000i   2.1285 + 0.0000i   1.3151 + 0.0000i
      1.1599 + 0.0000i   1.3219 + 0.0000i   1.3988 + 0.0000i
      1.0556 + 0.0000i   1.5226 + 0.0000i   1.1259 + 0.0000i
      0.9730 + 0.0000i   1.5172 + 0.0000i   1.0082 + 0.0000i
      1.1412 + 0.0000i   0.8900 + 0.0000i   1.5643 + 0.0000i
      0.8250 + 0.0000i   1.2599 + 0.0000i   1.0062 + 0.0000i
      0.8254 + 0.0000i   1.1208 + 0.0000i   1.0975 + 0.0000i
      0.7216 + 0.0000i   1.3739 + 0.0000i   0.7698 + 0.0000i
      1.3359 + 0.0000i   0.6940 + 0.0000i   1.8414 + 0.0000i
      1.1556 + 0.0000i   0.5940 + 0.0000i   1.6612 + 0.0000i
      0.4689 + 0.0000i   1.0108 + 0.0000i   0.7895 + 0.0000i
      0.6478 + 0.0000i   0.6142 + 0.0000i   1.1444 + 0.0000i
      0.4542 + 0.0000i   1.4093 + 0.0000i   0.2343 + 0.0000i
      0.3190 + 0.0000i   1.2688 + 0.0000i   0.3272 + 0.0000i
      0.6906 + 0.0000i   1.6668 + 0.0000i   0.1655 + 0.0000i
      0.0000 + 0.0000i   0.9837 + 0.0000i   0.5652 + 0.0000i
      0.9837 + 0.0000i   0.0000 + 0.0000i   1.5488 + 0.0000i
      0.5652 + 0.0000i   1.5488 + 0.0000i   0.0000 + 0.0000i
      0.7120 + 0.0000i   0.2885 + 0.0000i   1.2757 + 0.0000i
      2.2380 + 0.0000i   1.2543 + 0.0000i   2.8031 + 0.0000i
      0.2652 + 0.0000i   1.1721 + 0.0000i   0.4482 + 0.0000i
      0.2919 + 0.0000i   0.9110 + 0.0000i   0.7335 + 0.0000i
      0.8621 + 0.0000i   0.5258 + 0.0000i   1.3766 + 0.0000i
      0.7076 + 0.0000i   1.5832 + 0.0000i   0.4820 + 0.0000i
      1.2965 + 0.0000i   0.6429 + 0.0000i   1.8152 + 0.0000i
      0.9426 + 0.0000i   1.8300 + 0.0000i   0.6001 + 0.0000i
      0.8495 + 0.0000i   1.2503 + 0.0000i   1.0613 + 0.0000i
      1.0486 + 0.0000i   0.9739 + 0.0000i   1.4404 + 0.0000i
      1.0271 + 0.0000i   1.5208 + 0.0000i   1.1055 + 0.0000i
      1.0071 + 0.0000i   1.4931 + 0.0000i   1.0980 + 0.0000i
      1.2417 + 0.0000i   1.3454 + 0.0000i   1.5095 + 0.0000i
     列 22 至 24
      2.4484 + 0.0000i   3.5652 + 0.0000i   2.1161 + 0.0000i
      2.2898 + 0.0000i   1.5966 + 0.0000i   3.0206 + 0.0000i
      2.2416 + 0.0000i   3.4086 + 0.0000i   1.8873 + 0.0000i
      1.9786 + 0.0000i   3.1981 + 0.0000i   1.6099 + 0.0000i
      1.2780 + 0.0000i   2.2420 + 0.0000i   1.4031 + 0.0000i
      1.4022 + 0.0000i   2.5738 + 0.0000i   1.2518 + 0.0000i
      1.3753 + 0.0000i   2.6090 + 0.0000i   1.1552 + 0.0000i
      0.9433 + 0.0000i   1.7097 + 0.0000i   1.4064 + 0.0000i
      1.1318 + 0.0000i   2.3509 + 0.0000i   1.0464 + 0.0000i
      1.0194 + 0.0000i   2.1848 + 0.0000i   1.0696 + 0.0000i
      1.1958 + 0.0000i   2.5338 + 0.0000i   0.8954 + 0.0000i
      0.8780 + 0.0000i   1.2690 + 0.0000i   1.5884 + 0.0000i
      0.7341 + 0.0000i   1.3760 + 0.0000i   1.4092 + 0.0000i
      0.8271 + 0.0000i   2.2004 + 0.0000i   0.7113 + 0.0000i
      0.5156 + 0.0000i   1.7672 + 0.0000i   0.9087 + 0.0000i
      1.1526 + 0.0000i   2.6570 + 0.0000i   0.4606 + 0.0000i
      1.0119 + 0.0000i   2.5175 + 0.0000i   0.3793 + 0.0000i
      1.4016 + 0.0000i   2.9185 + 0.0000i   0.6074 + 0.0000i
      0.7120 + 0.0000i   2.2380 + 0.0000i   0.2652 + 0.0000i
      0.2885 + 0.0000i   1.2543 + 0.0000i   1.1721 + 0.0000i
      1.2757 + 0.0000i   2.8031 + 0.0000i   0.4482 + 0.0000i
      0.0000 + 0.0000i   1.5332 + 0.0000i   0.8861 + 0.0000i
      1.5332 + 0.0000i   0.0000 + 0.0000i   2.4174 + 0.0000i
      0.8861 + 0.0000i   2.4174 + 0.0000i   0.0000 + 0.0000i
      0.6225 + 0.0000i   2.1418 + 0.0000i   0.2915 + 0.0000i
      0.3785 + 0.0000i   1.5773 + 0.0000i   0.9353 + 0.0000i
      1.2947 + 0.0000i   2.8055 + 0.0000i   0.4468 + 0.0000i
      0.6917 + 0.0000i   1.2653 + 0.0000i   1.3724 + 0.0000i
      1.5416 + 0.0000i   3.0481 + 0.0000i   0.6877 + 0.0000i
      0.9996 + 0.0000i   2.3313 + 0.0000i   0.6848 + 0.0000i
      0.8111 + 0.0000i   1.8851 + 0.0000i   1.0021 + 0.0000i
      1.2665 + 0.0000i   2.5902 + 0.0000i   0.8131 + 0.0000i
      1.2391 + 0.0000i   2.5637 + 0.0000i   0.7967 + 0.0000i
      1.1626 + 0.0000i   2.2220 + 0.0000i   1.1170 + 0.0000i
     列 25 至 27
      2.2858 + 0.0000i   2.7627 + 0.0000i   2.2884 + 0.0000i
      2.8437 + 0.0000i   2.5687 + 0.0000i   3.4673 + 0.0000i
      2.0600 + 0.0000i   2.5480 + 0.0000i   2.0614 + 0.0000i
      1.7815 + 0.0000i   2.2769 + 0.0000i   1.7970 + 0.0000i
      1.4043 + 0.0000i   1.6455 + 0.0000i   1.7894 + 0.0000i
      1.3385 + 0.0000i   1.7326 + 0.0000i   1.5706 + 0.0000i
      1.2608 + 0.0000i   1.6905 + 0.0000i   1.4589 + 0.0000i
      1.2967 + 0.0000i   1.3202 + 0.0000i   1.8453 + 0.0000i
      1.0968 + 0.0000i   1.4630 + 0.0000i   1.4091 + 0.0000i
      1.0738 + 0.0000i   1.3687 + 0.0000i   1.4642 + 0.0000i
      1.0123 + 0.0000i   1.4830 + 0.0000i   1.2060 + 0.0000i
      1.4042 + 0.0000i   1.2102 + 0.0000i   2.0345 + 0.0000i
      1.2316 + 0.0000i   1.0866 + 0.0000i   1.8557 + 0.0000i
      0.7311 + 0.0000i   1.1252 + 0.0000i   1.1148 + 0.0000i
      0.7756 + 0.0000i   0.8825 + 0.0000i   1.3546 + 0.0000i
      0.6975 + 0.0000i   1.3135 + 0.0000i   0.6692 + 0.0000i
      0.5798 + 0.0000i   1.1809 + 0.0000i   0.6812 + 0.0000i
      0.8867 + 0.0000i   1.5260 + 0.0000i   0.6197 + 0.0000i
      0.2919 + 0.0000i   0.8621 + 0.0000i   0.7076 + 0.0000i
      0.9110 + 0.0000i   0.5258 + 0.0000i   1.5832 + 0.0000i
      0.7335 + 0.0000i   1.3766 + 0.0000i   0.4820 + 0.0000i
      0.6225 + 0.0000i   0.3785 + 0.0000i   1.2947 + 0.0000i
      2.1418 + 0.0000i   1.5773 + 0.0000i   2.8055 + 0.0000i
      0.2915 + 0.0000i   0.9353 + 0.0000i   0.4468 + 0.0000i
      0.0000 + 0.0000i   0.6444 + 0.0000i   0.6723 + 0.0000i
      0.6444 + 0.0000i   0.0000 + 0.0000i   1.2557 + 0.0000i
      0.6723 + 0.0000i   1.2557 + 0.0000i   0.0000 + 0.0000i
      1.0823 + 0.0000i   0.4390 + 0.0000i   1.6687 + 0.0000i
      0.9192 + 0.0000i   1.4897 + 0.0000i   0.2472 + 0.0000i
      0.5805 + 0.0000i   0.7689 + 0.0000i   0.6985 + 0.0000i
      0.7626 + 0.0000i   0.4507 + 0.0000i   1.1673 + 0.0000i
      0.7922 + 0.0000i   1.0374 + 0.0000i   0.6616 + 0.0000i
      0.7688 + 0.0000i   1.0099 + 0.0000i   0.6603 + 0.0000i
      0.9522 + 0.0000i   0.8198 + 0.0000i   1.1341 + 0.0000i
     列 28 至 30
      3.1399 + 0.0000i   2.3502 + 0.0000i   2.8009 + 0.0000i
      2.4945 + 0.0000i   3.7048 + 0.0000i   3.2889 + 0.0000i
      2.9323 + 0.0000i   2.1281 + 0.0000i   2.5720 + 0.0000i
      2.6674 + 0.0000i   1.8764 + 0.0000i   2.2946 + 0.0000i
      1.9441 + 0.0000i   1.9784 + 0.0000i   1.9845 + 0.0000i
      2.0935 + 0.0000i   1.7252 + 0.0000i   1.9046 + 0.0000i
      2.0664 + 0.0000i   1.6082 + 0.0000i   1.8183 + 0.0000i
      1.5328 + 0.0000i   2.0710 + 0.0000i   1.8409 + 0.0000i
      1.8233 + 0.0000i   1.5901 + 0.0000i   1.6721 + 0.0000i
      1.7064 + 0.0000i   1.6617 + 0.0000i   1.6543 + 0.0000i
      1.8792 + 0.0000i   1.3661 + 0.0000i   1.5620 + 0.0000i
      1.2964 + 0.0000i   2.2756 + 0.0000i   1.8714 + 0.0000i
      1.2266 + 0.0000i   2.0961 + 0.0000i   1.7147 + 0.0000i
      1.5125 + 0.0000i   1.3226 + 0.0000i   1.3089 + 0.0000i
      1.1953 + 0.0000i   1.5903 + 0.0000i   1.3220 + 0.0000i
      1.7497 + 0.0000i   0.8228 + 0.0000i   1.1393 + 0.0000i
      1.6154 + 0.0000i   0.8675 + 0.0000i   1.0635 + 0.0000i
      1.9650 + 0.0000i   0.6931 + 0.0000i   1.2257 + 0.0000i
      1.2965 + 0.0000i   0.9426 + 0.0000i   0.8495 + 0.0000i
      0.6429 + 0.0000i   1.8300 + 0.0000i   1.2503 + 0.0000i
      1.8152 + 0.0000i   0.6001 + 0.0000i   1.0613 + 0.0000i
      0.6917 + 0.0000i   1.5416 + 0.0000i   0.9996 + 0.0000i
      1.2653 + 0.0000i   3.0481 + 0.0000i   2.3313 + 0.0000i
      1.3724 + 0.0000i   0.6877 + 0.0000i   0.6848 + 0.0000i
      1.0823 + 0.0000i   0.9192 + 0.0000i   0.5805 + 0.0000i
      0.4390 + 0.0000i   1.4897 + 0.0000i   0.7689 + 0.0000i
      1.6687 + 0.0000i   0.2472 + 0.0000i   0.6985 + 0.0000i
      0.0000 + 0.0000i   1.8932 + 0.0000i   1.0926 + 0.0000i
      1.8932 + 0.0000i   0.0000 + 0.0000i   0.8685 + 0.0000i
      1.0926 + 0.0000i   0.8685 + 0.0000i   0.0000 + 0.0000i
      0.6212 + 0.0000i   1.3618 + 0.0000i   0.5041 + 0.0000i
      1.3388 + 0.0000i   0.7591 + 0.0000i   0.2709 + 0.0000i
      1.3132 + 0.0000i   0.7665 + 0.0000i   0.2432 + 0.0000i
      0.9610 + 0.0000i   1.2741 + 0.0000i   0.4487 + 0.0000i
     列 31 至 33
      3.0377 + 0.0000i   2.8995 + 0.0000i   2.8885 + 0.0000i
      3.0048 + 0.0000i   3.5563 + 0.0000i   3.5290 + 0.0000i
      2.8142 + 0.0000i   2.6704 + 0.0000i   2.6592 + 0.0000i
      2.5366 + 0.0000i   2.3971 + 0.0000i   2.3854 + 0.0000i
      2.0263 + 0.0000i   2.1844 + 0.0000i   2.1633 + 0.0000i
      2.0503 + 0.0000i   2.0641 + 0.0000i   2.0467 + 0.0000i
      1.9883 + 0.0000i   1.9683 + 0.0000i   1.9517 + 0.0000i
      1.7512 + 0.0000i   2.0813 + 0.0000i   2.0564 + 0.0000i
      1.7895 + 0.0000i   1.8491 + 0.0000i   1.8300 + 0.0000i
      1.7234 + 0.0000i   1.8505 + 0.0000i   1.8296 + 0.0000i
      1.7532 + 0.0000i   1.7084 + 0.0000i   1.6920 + 0.0000i
      1.6609 + 0.0000i   2.1337 + 0.0000i   2.1068 + 0.0000i
      1.5351 + 0.0000i   1.9736 + 0.0000i   1.9470 + 0.0000i
      1.4279 + 0.0000i   1.4959 + 0.0000i   1.4756 + 0.0000i
      1.2784 + 0.0000i   1.5596 + 0.0000i   1.5348 + 0.0000i
      1.4513 + 0.0000i   1.2323 + 0.0000i   1.2204 + 0.0000i
      1.3408 + 0.0000i   1.1839 + 0.0000i   1.1693 + 0.0000i
      1.6043 + 0.0000i   1.2611 + 0.0000i   1.2548 + 0.0000i
      1.0486 + 0.0000i   1.0271 + 0.0000i   1.0071 + 0.0000i
      0.9739 + 0.0000i   1.5208 + 0.0000i   1.4931 + 0.0000i
      1.4404 + 0.0000i   1.1055 + 0.0000i   1.0980 + 0.0000i
      0.8111 + 0.0000i   1.2665 + 0.0000i   1.2391 + 0.0000i
      1.8851 + 0.0000i   2.5902 + 0.0000i   2.5637 + 0.0000i
      1.0021 + 0.0000i   0.8131 + 0.0000i   0.7967 + 0.0000i
      0.7626 + 0.0000i   0.7922 + 0.0000i   0.7688 + 0.0000i
      0.4507 + 0.0000i   1.0374 + 0.0000i   1.0099 + 0.0000i
      1.1673 + 0.0000i   0.6616 + 0.0000i   0.6603 + 0.0000i
      0.6212 + 0.0000i   1.3388 + 0.0000i   1.3132 + 0.0000i
      1.3618 + 0.0000i   0.7591 + 0.0000i   0.7665 + 0.0000i
      0.5041 + 0.0000i   0.2709 + 0.0000i   0.2432 + 0.0000i
      0.0000 + 0.0000i   0.7264 + 0.0000i   0.7022 + 0.0000i
      0.7264 + 0.0000i   0.0000 + 0.0000i   0.0277 + 0.0000i
      0.7022 + 0.0000i   0.0277 + 0.0000i   0.0000 + 0.0000i
      0.3748 + 0.0000i   0.5291 + 0.0000i   0.5150 + 0.0000i
     列 34
      3.2255 + 0.0000i
      3.3796 + 0.0000i
      2.9976 + 0.0000i
      2.7191 + 0.0000i
      2.3165 + 0.0000i
      2.2892 + 0.0000i
      2.2130 + 0.0000i
      2.0886 + 0.0000i
      2.0412 + 0.0000i
      1.9982 + 0.0000i
      1.9634 + 0.0000i
      2.0271 + 0.0000i
      1.8947 + 0.0000i
      1.6740 + 0.0000i
      1.5941 + 0.0000i
      1.5768 + 0.0000i
      1.4904 + 0.0000i
      1.6741 + 0.0000i
      1.2417 + 0.0000i
      1.3454 + 0.0000i
      1.5095 + 0.0000i
      1.1626 + 0.0000i
      2.2220 + 0.0000i
      1.1170 + 0.0000i
      0.9522 + 0.0000i
      0.8198 + 0.0000i
      1.1341 + 0.0000i
      0.9610 + 0.0000i
      1.2741 + 0.0000i
      0.4487 + 0.0000i
      0.3748 + 0.0000i
      0.5291 + 0.0000i
      0.5150 + 0.0000i
      0.0000 + 0.0000i
(2)蚁群算法
    d=c;NC_max=100;m=1000;Alpha=0.95;Beta=5;Rho=0.1;Q=100;
    [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(d,NC_max,m,Alpha,Beta,Rho,Q)

Shortest_Route =
      列 1 至 11
        28    26    31    34    30    33    32    27    29    21    18
      列 12 至 22
        16    17    19    24    25    22    20    15    14    10     9
      列 23 至 33
        11     7     6     4     3     1     5     8    13    12     2
      列 34
        23
    Shortest_Length =
       1.5912e+04
(3)绘制最短路线
    myplot(Shortest_Route,coord,Shortest_Length)

参考文章

posted @ 2022-10-10 21:59  baixf白小飞  阅读(285)  评论(0编辑  收藏  举报