组合优化的局部寻优法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以证明附加的运算时间是合算的。
Lin论文的发表促进了局部寻优法对其他各种问
题的应用
构海 底 天 然 气 管 道 系 统 拓 扑 结
点1代表岸上的工厂,2至15的每个点各代表气 田上的一个钻井平台,每个平台有估计的日产量。 我们可以假设每个气田的位置是已知的,问题是 选择一棵树,它的边代表管道,通过这些管道收 集天然气,并输送到岸上的工厂去。
货
问题,一个3最优环游是最优的概率大约是0.05, 因此从100个随机起点出发进行的实验会以0.95
郎 的概率得出最优解。 Lin的重要贡献之一:强调使用许多不同的随机
问 初始解;在货郎问题中使用完全随机的初始环游
题 是有效的。 Lin的另一贡献是证明了,3最优解比2最优解
好得多,但是4最优解比3最优解好不很多,不足
d 5d a
பைடு நூலகம்
a
当 城 市 数 增 加 至 30 个 时 , 计 算 时 间 已 达 10.8年,已无法接受。
因此,需要研究相应的算法。若该算法 是一个多项式时间算法,则是一个好算法, 但遗憾的是,一些组合最优化问题至今还没 有找到求最优解的多项式时间算法,而这些 组合最优化问题又有很强的实际应用背景, 于是人们不得不尝试用一些并不一定可以求 出最优解的算法,即启发式算法来求解组合 最优化问题。
郎
问 1958年,发表了两篇文章用货郎问题k交换局部 寻优法,并且两篇文章都把这个想法与类似于分
题 枝定界的枚举法结合起来,以便得到最优解。 Croes用了N2,Bock用了N3 1965年,Sherman和Reiter检验了许多不同的领 域,但是是lin首先令人信服地说明了3交换邻域N3 的威力
Lin根据经验发现,对于Held和Karp的48城市
为了把这个方法用于具体问题,我们必须做出数 种选择:
首先:我们必须决定怎样得到一个初始可行解。 从几个不同的初始起点出发进行局部寻优,并选 取最好的结果,这往往是实用的。在这些情况下, 我们必须决定试验多少个起点以及如何分配它们。
其次:我们必须给所研究的问题选择一个“好” 的邻域,选择一个搜索它的方法。
2.邻域的定义:
对于组合优化问题(D,F,f),D上
的一个映射N : S D N称(为S)一个2D邻域
映射,其中2D表示D的所有子集组成的 集合,N(S)称为S的邻域,
S' N称(S为) S的一个邻居。
例:①四个城市的TSP,若定义其邻域映射为 S中的两个元素进行对换,记为2-opt,N(S) 中共包含S的Cn2个邻居,当S=(1,2,3,4) 时, N(S)={(21,3,4),(3,2,1,4),(4,2,3,1),(1,3,2,4 )(1,4②,3D,2为),区(1间,2[,41,,3)1},0共]中C4的2=整6数个点邻。居。
f(x)
采用如下邻域定义:
N(x) y Z y x 1
则,N(6)={(5,7)}
*
*
**
**
*
**
*
++++++++++
1 2 3 4 5 6 7 8 9 10
图中,x=9为f的全局最优点(最小点),x=5是局部最小点。
局
1、局部寻优算法
局部寻优法也许是以最古老的最优化方法(试
部 错法)为基础的,是解决组合最优化问题最有效
这些以及类似的一些问题通常是靠经验回答的。 设计有效的局部寻优算法在很大程度上是一门艺 术
货
货郎担问题也叫推销商问题:有n个城市,用1, 2,…,n表示,城i, j之间的距离为 dij ,有一个
郎 货郎从城1出发到其他城市一次且仅一次,最后回
问 到城市1,怎样选择行走路线使总路程最短?
题
货 货郎问题环游f的k交换邻域(k ≥ 2)定义为
确定一棵给定树费用的方法:
构海 底 天 然 气 管 道 系 统 拓 扑 结
树的每条边代表一个以7个标准直径之一为直 径的管道,他们分布在从直径10.75英寸每英里价 值70000美元到直径30英寸每英里价值310000 美元的范围内。因为我们知道每点的日产量,于 是给定一棵树,我们便知道每条边的流量。利用 成为锅柄(panhandle)方程的经验公式,对于每 种选择的直径确定沿每条边的压差。于是在下面 的三个约束条件下选择一些管道直径使费用最小:
寻 的方法之一,是“爬山法”的离散模拟。
优
算
法
一般局部寻优算法
Procedure 局部寻优 Begin
t:=F中的某个初始起点; while improve(t)≠“no”,do
t:= improve(t); return t end
从某个初始可行解t∈F开始,利用子程序 Improve在它的邻域里搜寻一个更好的解。只要 一个改进的解存在,我们就采用它,并从这新的 解出发重复邻域搜索过程;当我们得到一个局部 最优解时,就停止。
专题三 《组合优化的局部寻优法》
1.什么是组合最优化
组 (combinatorial optimization)?
合
是通过对数学方法的研究去寻找离散事件
最 优 化 问
的最优编排、分组、次序或筛选等。其数学
模型描述为: min f ( X )
s.t.
g
(X) X
0 D
题
一个组合最优化问题可用三参数(D,F,f)表示, 其中: D—决策变量定义域(是个有限点集),
②旅行售货员问题 (TSP, traveling salesman problem); ③整数线性规划 (integer linear programming );
④装箱问题(bin packing )
⑤约束机器排序问题 (capacitated machine scheduling)
1. 问题的提出:
F—可行域 (F X X D, g( X ) 0),
f—目标函数.
2.组合最优化问题的特点及举例
特点——可行解集为有限点集,因此 只要将D中有限个点逐一判别是否满足 g(X)的约束和比较目标函数值的大小即 可得到最优解。所以,最优解一定存在 且可以得到。
①0-1背包问题(knapsack problem);
每一个组合优化问题都可以通过枚举
的方法求得最优解,但枚举是以时间为
邻
代价的,比为TSP问题,以1秒钟计算机 可完成24个城市所有路径枚举为单位,
域
列出城市数与计算时间的关系如下:
概
城市
数 24 25 26 27 28 29 30 31
念
计算 时间
1s
24s
10 min
4.3 h
4.9 136. 10.8 325