典型问题组合优化问题(CombinatorialOptimizationProblems)什么是组合优化定义:minf(x)s.t.xS,SXS,X:拥有有限个或可数无限个解的离散集合假设是一个求极小的问题,目标函数为f(x),问题的解x属于S,而S包含于X,X是解空间,S是可行解空间(可行区域)所谓组合优化,是指在离散的、有限的数学结构上,寻找一个(或一组)满足给定约束条件并使其目标函数值达到最小的解。组合优化问题的特点minf(x)s.t.xS,SXS,X:拥有有限个或可数无限个解的离散集合如果S是有限集合的话,从理论上来讲,只要遍历所有的组合,就能找到最优解。然而,随着问题规模的增大,S中解的个数会迅速增大,实际上要想遍历所有的解,几乎是不可能的。一般来说,组合优化问题通常带有大量的局部极值点,往往是不可微的、不连续的、多维的、有约束条件的、高度非线性的NP完全(难)问题组合最优化无法利用导数信息精确地求解组合优化问题的全局最优解的“有效”算法一般是不存在的。组合优化的研究怎么才能把一些社会现象、活动等捕捉归纳为组合优化问题?怎么才能够在尽可能短的时间内求解组合优化问题?各种组合优化问题拥有什么性质?为了构造快速解法,什么样的性质是有用的?求解方法分类从求解方法的大的分类上,可以分为:精确的求解方法可以得到问题的最优解,对小规模问题适用,当问题的规模较大时,一般无法在有限的时间内获得问题的最优解所以,对于组合优化问题,通常采用的是近似求解方法。近似的求解方法,可以进一步划分为:以确保解的精度为目标的方法以尽可能获得更好解为目标的方法,包括:启发式(Heuristics)亚启发式(Meta-Heuristics)近似求解方法以确保解的精度为目标的方法能保证一定的精度,且成本较低,例如:程序所获得的目标函数值和最优解的目标函数值相比,达到90%或99%以上,而且获得这样的解的成本不超过获得最优解的成本的10%或20%,这样的算法是可接受的。当然,从数学上准确地保证并不是一件简单的事情这类近似方法的研究,会产生很多有趣的数学特征,吸引了很多从事理论研究的学者,从事这方面的工作。近似求解方法以尽可能获得更好解为目标的方法这类方法侧重于实际应用,有很多方法都是从实用的角度出发来考虑问题的。启发式(Heuristics)方法即使我们求解很多的应用问题,也不会产生精度很差的解,偶尔,对于非常棘手的问题也许会产生精度很差的解,但一般的场合下,应该没有问题。亚启发式(Meta-Heuristics)方法近年来在启发式方法中,一种被称之为亚启发式的方法,得到了广泛的研究,发现了一些较好的求解方法GA就是其中之一,另外还有TS,SA,PSO等算法。近似求解方法亚启发式(Meta-Heuristics)从算法的角度来讲,是指不依赖于特定问题的启发式算法。其算法的基本框架被设计成不论对什么样的问题都具有通用性。一般情况下,亚启发式算法要比特定问题专用的启发式算法的解的精度要差。所以,针对特定的问题,要精心设计特定的算法。也有人把以邻域搜索为基础的组合优化方法统称为亚启发式贪婪算法(greedymethod)采用逐步构造最优解的方法。在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。决策一旦作出,就不可再更改。作出贪婪决策的依据称为贪婪准则(greedycriterion)。一种近似求解方法货箱装船、机器调度、最短路径、背包问题等方面都有应用贪婪算法例[最短路径]:给出一个有向网络,要求找一条从初始点s到达目的点d的最短路径。贪婪算法分步构造这条路径,每一步加入一个顶点。假设当前路径已到达点q,且顶点q并不是目的点d。加入下一个顶点所采用的贪婪准则为:选择离q最近且目前不在路径中的顶点。qdS23243这种贪婪算法并不一定能获得最短路径。人工智能的方法神经网络遗传算法……由于要进行高度复杂的计算,所以计算效果比较好,当然也需要花费更长的计算时间。小结…同样的组合优化问题,采用不同的近似求解方法,所得到的解、以及解的精度是不一样的。同样一个算法,用于不同的问题,其性能与效率也不尽相同。某些算法,只要稍微做些改变,就有可能导致解的精度或搜索效率的大幅度提高。因此,对于什么样的问题,应该采用什么样的方法,怎样使用这种方法才更有效果,在这方面人们已经进行了很多的研究。典型问题旅行商问题(TravelingSalesmanProblem)旅行商问题TSP的历史很久最早的描述是1759年欧拉研究的骑士周游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点。一般性描述:有一个推销员,要到n个城市推销商品,他要找出一个包含所有n个城市的具有最短路程的环路。同样的问题,在中国还有另一个描述方法:中国邮递员问题(ChinesePostmanProblemCPP):一个邮递员从邮局出发,到所辖街道投递邮件,最后返回邮局,如果他必须走遍每条街道至少一次,应如何选择投递路线,使所走的路程最短。在过去的几十年中,在求旅行商问题的最优解方面取得了极大的进展。48个城市的问题、120、318、532、666、2392、24978个城市的问题尽管有这些成就,但旅行商问题还远未解决。问题的许多方面还要研究,很多问题还在期待满意的回答。特点NP完全问题它的解是多维的、多局部极值的很难用数学公式描述TSP问题吸引了许多不同领域的研究者,包括数学、运筹学、物理、生物、人工智能等领域。TSP展示了组合优化的所有方面,它已经成为并将继续成为测试新算法的标准问题,如:模拟退火、禁忌搜索、神经网络以及进化算法等都用TSP来测试。应用旅行路线的确定配送路线问题(RouteofDistribution)TSP问题在物流中的描述是对应一个物流配送公司(快递员),欲将n个客户的订货(快件)沿最短路线全部送到,如何确定最短路线例如:连锁店的货物配送路线确定问题等例如:金融押运车辆的调度问题(机构网点相当于城市,这类问题属于多旅行商问题。)“一笔画”问题(Drawingbyoneline)平面上有n个点,用最短的线将全部的点连起来。称为“一笔画”问题。类似的问题:机械加工当中,要在一个零件(或者一个电路板)上加工很多孔,如何安排刀具的走刀路径,能使走刀距离最短,(孔相当于城市、孔之间的距离相当于城市间的距离)。s应用机器人焊接路径规划问题例如汽车制造的车身焊接,焊点多达4-5千个,一条合理的焊接路径可以减少机器人工位的生产时间,缩短整体工时,提高生产效率。这里焊点相当于城市、焊点间的距离相当于城市间的距离。再如一个印刷线路板需要安装大量的元器件,不同的安装点可以看做是不同的城市,问题是:如何规划机器人的路径,以缩短运动时间,提高工作效率。多品种装配顺序确定问题装配企业中,对许多品种的产品进行装配时,一个产品装配完以后要卸下夹具并换上装配另一个产品的夹具,更换两个不同的夹具所需的时间是不一样的。问题是如何安排多品种的装配顺序,能使更换夹具的时间最短。这里的品种相当于城市、更换时间相当于距离车间配送路径优化问题工厂当中要将一匹零件分配到很多个车间,如何选择一条路径使得每个车间走一遍后回到起点,且所走的路径最短,构成TSP问题。一般的求解方法精确算法TSP问题最简单的求解方法是枚举法动态规划法分支定界法回溯求解算法近似算法最近邻点法(NearestNeighbor)最近插入法(NearestInsertion)2OPT→k-OPT节约里程法(SavingAlgorithm)扫描算法(SweepAlgorithm)…一般的求解方法最近邻点法(NearestNeighbor)首先从零点开始,作为整个回路的起点,然后找到离刚刚加入到回路的上一节点最近的一个节点,并将其加入到回路中。重复上一步,直到所有的节点都加入到回路中,最后,将最后一个加入的节点和起点连接起来,构成了一个TSP问题的解。s一般的求解方法最近插入法(NearestInsertion)首先从一个节点出发,找到一个最近的节点,形成一个往返式子回路;在剩下的节点中,寻找一个离子回路中某一节点最近的节点,再在子回路中找到一个弧,使弧的两端节点到刚寻找到的最近节点的距离之和减去弧长的值最小,实际上就是把新找到的节点加入子回路以后使得增加的路程最短,就把这个节点增加到子回路中,并去掉子回路中相应的弧。重复以上过程,直到所有的节点都加入到子回路中。sGA求解TSP已成为遗传算法学界的一个主要研究目标对TSP的研究为遗传算法求解组合优化问题提供了丰富的经验和牢固的基础。主要的努力在以下三个方面:采用适当的表达方法进行编码;设计可用的遗传算子,以保持父辈特性并避免不可行性;防止过早收敛。GA求解编码TSP问通常的二进制编码,不能较好地适用于题。人们为TSP提出了几种染色体表达方法,其中:随机键表达换位表达TSP,也适用于其这两种表达方式不仅适用于它组合优化问题。虽然遗传算法已经提出了有四十多年的历史,但是人们对于遗传算法的研究和改进一直都没有中断过。不少研究者已经对遗传算法进行了许多很有价值的改进,比如对编码方式和遗传算子的改进,或者在遗传算法中引入启发式算法或模拟退火算法等所构成的混合遗传算法,如何理论这些理论和方法更加有效地解决工程技术中的实际问题(车辆路径问题,公交调度问题等),都将需要人们进一步的讨论。另外由于遗传算法本质是通过借鉴了自然界生物进化过程中创立的。随着当前生物技术与基因工程的进一步发展,把新的生物和基因技术引入到遗传算法的改进中也是当前科学研究的一个重要的方向。最后还能希望将神经网络、专家系统等前沿学科也融入到遗传算法改进中来,以求达到遗传算法应用领域的广泛性和解决实际问题的有效性。未来研究End典型优化问题的模型与算法-R03185