1701020062
超市的商品配送;
1701020063
1701020064
快递等的配送计划问题;
1701020065
1701020066
汽车导航系统的路径检索;
1701020067
1701020068
手机的频率分配;
1701020069
1701020070
铁路、航空乘务员的分配;
1701020071
1701020072
制作体育比赛日程表等的调度……
1701020073
1701020074
以上都是与我们日常生活息息相关的活动,而这些都是“排列组合最适化”的问题。“巡回推销员问题”自身已经被应用到了配送计划制订和电子线路板上安装零件时挖洞的顺序决定问题上。
1701020075
1701020076
十进制算法会遗传吗?
1701020077
1701020078
在“巡回推销员”的问题中,如果城市数很多的话,想求得最适答案简直难如登天。高效又严谨的求解方法还没有确立,因此求得近似解的方法就显得尤为重要了。其中有一种有效的近似值解法被称为“遗传算法”(Genetic Algorithm)。
1701020079
1701020080
“十进制算法”是一种决定计算顺序、旨在解决问题的阶段式方法。用特定的编程语言(C、Basic、Java等)来记述算法就叫作程序。
1701020081
1701020082
遗传算法是1975年由密歇根大学的约翰·霍兰德(1929~)提出的。生物的进化依赖于遗传因子的重组,他从生物的“进化过程”中得到启示,得出了“最适化算法”,即从遗传因子中选择复数的个体(解的候补)组成集团,再利用这个集团将解的候补一个个重组,以探索最合适的答案的计算方法。
1701020083
1701020084
1701020085
1701020086
1701020087
遗传算法
1701020088
1701020089
将问题当作物种遗传因子序列的进化来谋求最适解。遗传算法中会用到“选择”(适应环境的后代个体会增加,不适应的物种则会减少)、“交叉”(按一定的概率将两个物种的遗传因子序列组合起来形成其他物种)、“突变”(遗传因子序列的特定存储单位发生了反转)等遗传学范畴内的概念来进行操作。
1701020090
1701020091
如果在网上搜索“巡回推销员问题Java”,我们会找到很多程序。
1701020092
1701020093
实际上,在网上能看到很多关于“巡回推销员”问题的解法。
1701020094
1701020095
DNA计算机的诞生
1701020096
1701020097
遗传因子本属于生物学,但是却出现在了数学和计算机的世界,真是有趣极了。而且,它还有更深的妙趣,那就是利用遗传因子而诞生的超高速计算机——DNA计算机。
1701020098
1701020099
令人震惊的是,信息学家杰拉尔德·埃德尔曼(1929~)研读了DNA双螺旋结构的发现者——美国生物学家詹姆斯·沃森(1928~)的《遗传因子的分子生物学》后,产生了将DNA应用到计算机中的灵感。1994年他制作出DNA计算机,并为大家演示了其对“巡回推销员”问题的解答。
1701020100
1701020101
运用DNA算法解答巡回推销员的问题时,首先将各个城市及连接的路径用DNA的四个碱基A(腺嘌呤)、T(胸腺嘧啶)、G(鸟嘌呤)、C(胞嘧啶)表示出来。
1701020102
1701020103
东京={CGCATT}、大阪={CTAGAT},像这样将DNA人工合成,然后放到试管中混在一起让它们发生反应。这样一来,由于DNA的特性是只有“A和T”“C和G”这两种组合,从东京和大阪的碱基序列中就可以创造出{TAAGAT}这样的新DNA。这也就成了东京和大阪之间路径的一个候补项。
1701020104
1701020105
像这样可以表示解的候补项的DNA会因为PCR(聚合酶连锁反应)被大量制造出来,再根据去哪个城市比较顺路为条件将这些解分离开来,最后将表示解的DNA抽出来。
1701020106
1701020107
因为DNA是极小的分子,可以大量制造。仅1立方厘米就可以容纳6×1016个DNA分子。如果每个DNA都能当作计算单位来运作,那么超并列运算就可能实现,这对于像“巡回推销员”这种复杂、无法可解又很耗费时间的问题来说是非常有效的方法。
1701020108
1701020109
我们可以认为DNA计算机就是由DNA组成的生命体,就是计算机本身。很不可思议吧!
1701020110
1701020111
生物的进化已经持续了137亿年,以与我们生活息息相关的“巡回推销员”问题为契机,计算机也开始跟生物一样迈上了进化之路。
[
上一页 ]
[ :1.701020062e+09 ]
[
下一页 ]