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