组合最优化问题_第1页
组合最优化问题_第2页
组合最优化问题_第3页
组合最优化问题_第4页
组合最优化问题_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、参考书参考书: : 现代优化计算方法现代优化计算方法 邢文训谢金星邢文训谢金星 非数值并行算法非数值并行算法第一册第一册 模拟退火算法模拟退火算法 康立山谢云等康立山谢云等Dxxgtsxf 0)(.)(min组合最优化组合最优化是通过对数学方法的研究去寻找离散是通过对数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等,该问题可事件的最优编排、分组、次序或筛选等,该问题可用数学模型描述为:用数学模型描述为:其中,其中,f(x)为为目标函数目标函数, g(x)为为约束函数约束函数,x为为决策决策变量变量, D表示表示有限个点组成的集合有限个点组成的集合1.1组合最优化问题组合最优化问题一个

2、组合最优化问题可用一个组合最优化问题可用三参数三参数(D , F , f )表示,表示,其中其中D表示表示决策变量的定义域决策变量的定义域,F 表示表示可行解集合可行解集合F x x D, g(x) 0 ,F 中的任何一个元素称为该中的任何一个元素称为该问题的可行解,问题的可行解,f 表示目标函数满足表示目标函数满足f (x ) min f (x) x F 的可行解的可行解x 称为该问题的称为该问题的 最优解最优解组合最优化的组合最优化的特点是可行解集合为有限特点是可行解集合为有限 点集点集 )3.1(,1,1,0)2.1(.)1.1(max11nixbxatsxciniiiniii 例例1.

3、11.1o-1背包问题背包问题( (knapsack problem) )设有一个容积为设有一个容积为b的背包,的背包,n个体积分别为个体积分别为ai (i 1,2,n),价值分别为,价值分别为ci (i 1,2,n)的物品,如的物品,如何以最大的价值装包?这个问题称为何以最大的价值装包?这个问题称为o-1背包问背包问题用数学模型表示为:题用数学模型表示为:其中其中xi 1表示装第表示装第i个物品,个物品,xi 0表示不装此时,表示不装此时,D 0 , 1 n,F为为D中满足中满足(1.2)(1.2)的可行解集的可行解集例例1.2旅行商问题旅行商问题(TSP,traveling salesma

4、n problem)当当 dij=dji , , i,j 时,称为时,称为对称距离对称距离TSP,否则,否则称为称为非非对称距离对称距离TSP对一般的对一般的TSP,它的一种数学模,它的一种数学模型描述为:型描述为:一个商人欲到一个商人欲到n个城市推销商品,每两个城市个城市推销商品,每两个城市i和和j之间的距离为之间的距离为dij,如何选择一条道路使得商人,如何选择一条道路使得商人每个城市走一遍后回到起点且所走路径最短每个城市走一遍后回到起点且所走路径最短TSP可分为对称和非对称距离两大类问题可分为对称和非对称距离两大类问题 )8.1(,1,1,0)7.1()6.1(,2,11)5.1(,2,

5、11.)4.1(min1111jinjixnxnjxnixtsxdijninjijniijnjijjiijij 其中其中(1.8)中的决策变量中的决策变量 xij=1 表示商人行走的路线表示商人行走的路线包含从城市包含从城市i 到城市到城市j 路径,路径,xij=0 表示商人没有选表示商人没有选择走这条路择走这条路i j 的约束可以减少变量的个数,使的约束可以减少变量的个数,使得共有得共有n (n 1)个决策变量个决策变量. . (1.5)要求商人从城市要求商人从城市i 出来一次,出来一次,(1.6)要求商人走入城市要求商人走入城市 j只有一次只有一次. .(1.5)和和(1.6)表示每个城市

6、经过一次仅有表示每个城市经过一次仅有(1.5)和和(1.6)的约束无法避免回路的产生,的约束无法避免回路的产生,(1.7)约束商人约束商人在任何一个城市子集中不形成回路此时在任何一个城市子集中不形成回路此时D 0 , 1 nn 1 njiijjdL11min 的的一一个个排排列列是是niiiiiisFDnn, 2 , 1,| ),(2121 TSP问题解的另一种表示法为问题解的另一种表示法为循环排列循环排列数学模型为:数学模型为: (记记 in 1 i1 )1.2 计算复杂性的概念计算复杂性的概念由于有些优化算法所需的计算时间和存储空间难由于有些优化算法所需的计算时间和存储空间难以承受,因此以

7、承受,因此算法可解的问题在实践中并不一定可算法可解的问题在实践中并不一定可解解。由组合最优化问题的定义可知,每一个组合最。由组合最优化问题的定义可知,每一个组合最优化问题都可以通过枚举的方法求得最优解。枚举优化问题都可以通过枚举的方法求得最优解。枚举是以时间为代价的,有的枚举时间还可以接受,有是以时间为代价的,有的枚举时间还可以接受,有的则不可能接受。的则不可能接受。例如对例如对非对称距离非对称距离TSP问题问题,可以用另一个方法,可以用另一个方法来表示它的可行解:来表示它的可行解:用用n个城市的一个排列表示商个城市的一个排列表示商人按这个排列序推销并返回起点人按这个排列序推销并返回起点。若固

8、定一个城市。若固定一个城市为起点,则需要为起点,则需要 n个枚举。以计算机个枚举。以计算机 秒可以完秒可以完成成个个城市所有城市所有枚举为单位,则枚举时枚举为单位,则枚举时城市数与计城市数与计算时间的关系如表所示。算时间的关系如表所示。年年约约约约计计算算时时间间城城市市数数8 .105 .1369 . 43 . 4min1024130292827262524ddhss通过表可以看出,随着城市数的增多,通过表可以看出,随着城市数的增多,计算时间计算时间增加非常之快,当增加非常之快,当城市数城市数增加到增加到时,时,计算时间约计算时间约. 年,已无法接受。所以,我们必须对计算复杂年,已无法接受。

9、所以,我们必须对计算复杂性理论有所了解,这也是最优化的理论基础。只有性理论有所了解,这也是最优化的理论基础。只有了解所研究问题的复杂性,才能有针对性地设计算了解所研究问题的复杂性,才能有针对性地设计算法,进而提高优化效率。主要简单介绍一下法,进而提高优化效率。主要简单介绍一下多项式多项式时间算法和指数时间算法时间算法和指数时间算法。一个算法常常是针对一个一个算法常常是针对一个问题问题来设计的,而若来设计的,而若用计算机求解,则必须对问题中的参数赋予具体用计算机求解,则必须对问题中的参数赋予具体值问题中的参数赋予了具体值的例子称为问题值问题中的参数赋予了具体值的例子称为问题的的实例实例一个问题通

10、过它的所有实例表现一个问题通过它的所有实例表现衡量一个算法的好坏通常是用算法中的加,减,衡量一个算法的好坏通常是用算法中的加,减,乘,除和比较等基本运算的总次数同实例在计算乘,除和比较等基本运算的总次数同实例在计算机计算时的二进制输入数据的大小关系来度量机计算时的二进制输入数据的大小关系来度量我们对实例的二进制输入长度和算法的基本计我们对实例的二进制输入长度和算法的基本计算总次数是算总次数是粗略估计粗略估计的,一般是给予一个的,一般是给予一个上上限限一个求解实例一个求解实例 I 的算法的基本计算总次数的算法的基本计算总次数 C( I )同实例同实例I 的计算机二进制输入长度的计算机二进制输入长

11、度d( I ) 的关的关系常用符号系常用符号C( I ) f (d( I ) O(g(d( I )表示,它表示,它的含义是:求解实例的含义是:求解实例 I 的算法的基本计算总次数的算法的基本计算总次数 C( I ) 是实例输入长度是实例输入长度d( I ) 的一个函数,这个函的一个函数,这个函数被另一个函数数被另一个函数g(x) 控制,即存在一个函数控制,即存在一个函数g(x) 和一个正常数和一个正常数 ,使得,使得C( I ) g(d( I )其其中中g(x)的函数特性决定了基本计算总次数的函数特性决定了基本计算总次数 的性的性能能定义定义1.1假设问题和解决该问题的一个算法已假设问题和解决

12、该问题的一个算法已经给定,若给定该问题的一个实例经给定,若给定该问题的一个实例 I,存在多项式,存在多项式函数函数 g(x),使得,使得成立,我们称成立,我们称该算法对实例该算法对实例 I 是多项式时间算法;是多项式时间算法;若存在若存在 g(x) 为多项为多项 式函数且式函数且对该问题任意的一个实例对该问题任意的一个实例 I,都有,都有 成立则称成立则称该算法为解决该问题的该算法为解决该问题的多项式时间多项式时间 算法算法当不存在多项式函数当不存在多项式函数 g(x) 使使成立时,称相应成立时,称相应的算法是的算法是指数时间算法指数时间算法相比较而言,随着变量的增加,多项式函数增相比较而言,

13、随着变量的增加,多项式函数增长的速度比指数函数增长的速度要长的速度比指数函数增长的速度要慢得多慢得多,因此,因此,我们我们更喜欢多项式函数更喜欢多项式函数 。例如,随着。例如,随着n的增加,的增加,nk k 的整数的整数 的增长速度远比的增长速度远比an a 1为实为实 数数 增增长的速度慢。长的速度慢。复杂性分析的一个研究方向是复杂性分析的一个研究方向是对算法进行评价。对算法进行评价。对于解决一个问题的算法,如何评估这个对于解决一个问题的算法,如何评估这个 算法算法的性能?复杂性分析是的性能?复杂性分析是评价算法的一个指标。评价算法的一个指标。复复杂性分析是通过杂性分析是通过从最坏实例的条件

14、下,确定从最坏实例的条件下,确定是否存在多项式函数是否存在多项式函数 g(x),即可以叙,即可以叙 述为:对述为:对一个求解问题的算法,是否存在多项一个求解问题的算法,是否存在多项 式函数式函数 g(x)和常数和常数 ,使得对问题的任意一个实例,使得对问题的任意一个实例I,都有,都有成立。成立。复杂性分析的另一个研究方向是复杂性分析的另一个研究方向是对组合优化对组合优化问题归类。问题归类。定义定义1.3例例1.4 jiijijDykxyxyyxN,)(1.3邻域的概念邻域的概念对于对于组合优化问题组合优化问题( D , F , f ),D上的一上的一个映射:个映射:N: S DN(S) 2D

15、称为一个称为一个邻域映射邻域映射,其,其中中2D表示表示D的所有子集组成的集合,的所有子集组成的集合, N(S)称为称为S 的的邻域邻域, S N(S)称为称为S 的一个的一个邻居邻居例例1.2已给出已给出TSP的一种数学模型,由模型的一种数学模型,由模型Dx x0,1 n (n 1) ,可以定义它的一种邻域为:,可以定义它的一种邻域为:k为一个正整数这个邻域定义为一个正整数这个邻域定义使得使得x 最多有最多有k 个个位置的值可以发生变化位置的值可以发生变化x 的邻居有的邻居有.)1(2)1(1)1(个个knnnnnnCCC 的的 TSP问题,当问题,当 S =(1,2,3,4)时,时,N(S

16、)=(2,1,3,4),(3,2,1,4),(4,2,3,1),(1,3,2,4),(1,4,3,2),(1, 2,4,3). 的的一一个个排排列列是是niiiiiisFDnn, 2 , 1,| ),(2121 例例1.5TSP问题解的另一种表示法为问题解的另一种表示法为定义它的邻域映射为定义它的邻域映射为2-opt,即,即S中的中的两个元素两个元素进行进行2nC对换对换, N(S)中共包含中共包含S 的的个邻居如四个城市个邻居如四个城市定义定义1.4若若S*满足满足 f (S*) ( )f (S ),其中,其中, S N(S*) F,则称,则称S*为为 f 在在 F 上的上的局部最小局部最小

17、(大大)解解若若 f (S*) ( )f (S ), S F,则称,则称S*为为 f 在在 F 上的上的全局最小全局最小(大大)解解例例1.6 niiixyxyyxN12)(对对o-1背包问题,由模型背包问题,由模型Dxx0,1 n ,可以定义它的一种邻域为:,可以定义它的一种邻域为:这个邻域定义使得这个邻域定义使得x 最多有最多有2个位置的值可以发个位置的值可以发生变化生变化x 的邻居有的邻居有.21个个nnCC 启发式算法是相对于最优算法提出的一个问题启发式算法是相对于最优算法提出的一个问题的最优算法求得该问题每个实例的最优解启发式的最优算法求得该问题每个实例的最优解启发式算法可以这样定义

18、:算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花一个基于直观或经验构造的算法,在可接受的花费(指计算时间,占用空间等)下给出待解决组合费(指计算时间,占用空间等)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度不一定事先可以预计优解的偏离程度不一定事先可以预计1.4启发式算法启发式算法因为一些组合最优化问题还没有找到求最优解的因为一些组合最优化问题还没有找到求最优解的多项式时间算法,而这些组合最优化问题又有非常多项式时间算法,而这些组合最优化问题又有非常强的实际应用背景,人们才不得不尝试用一些并不强的实际应用背

19、景,人们才不得不尝试用一些并不一定可以求解到最优解的算法,在此称为一定可以求解到最优解的算法,在此称为启发式算启发式算法法,来求解组合最优化问题。,来求解组合最优化问题。例例背包问题的背包问题的贪婪算法贪婪算法step1 对物品以对物品以ci ai从大到小排列,不妨把从大到小排列,不妨把 排列排列记成记成 1,2, ,n ,k1;k k 1 ;当;当k n 1 时,停止;否则重复时,停止;否则重复step2 11kikiibaxastep2若若,则,则 xk 1 ;否则;否则 xk 0.(x1, x2, , xn)为贪婪算法所得解为贪婪算法所得解单位体积价单位体积价值比越大越先装包是贪婪算法的

20、原则值比越大越先装包是贪婪算法的原则这样的算法非常直观,非常容易操作这样的算法非常直观,非常容易操作大规模计算分析大规模计算分析就是通过大量的实例计算就是通过大量的实例计算,评价算法的计算效评价算法的计算效果果.算法的计算效果分成两个方面算法的计算效果分成两个方面:一方面是算法一方面是算法的计算复杂性的计算复杂性,它的效果通过计算机的中央处理它的效果通过计算机的中央处理器器(CPU)的计算时间表现的计算时间表现;另一个方面是计算解另一个方面是计算解 的性能的性能,它通过计算停止时输出的解表现它通过计算停止时输出的解表现.启发式算法的性能分析启发式算法的性能分析对一个算法进行评价时对一个算法进行

21、评价时,它的计算时间效果往它的计算时间效果往往通过目前的计算机设备能否承受往通过目前的计算机设备能否承受,用户能否接用户能否接受现有的计算时间来衡量受现有的计算时间来衡量.对它的计算解进行评对它的计算解进行评价时价时,一个简单的要求是用户是否满意一个简单的要求是用户是否满意.1.5局部搜索算法局部搜索算法Dxxgtsxf 0)(.)(min局部搜索算法可以简单的表示为:局部搜索算法可以简单的表示为:假设算法用以解决如下组合优化问题:假设算法用以解决如下组合优化问题:其中,其中,f (x)为目标函数,为目标函数,g(x)为约束函数,为约束函数,D定义定义域域局部搜索算法局部搜索算法Step1选一

22、个初始可行解选一个初始可行解x0;记录当前最优解;记录当前最优解Step2当当P=时时,或满足其他停止运算准则,或满足其他停止运算准则时时,xbest:=x0,令,令P=N(xbest );输出输出计算结果,停止运算;否则,从计算结果,停止运算;否则,从N(xbest )中选一集合中选一集合S ,得到,得到S 中的最优解中的最优解xnow;若;若 f (xnow)f (xbest),则则 xbest:= xnow, P:=N(xbest );否则;否则;P:= P S ;重复;重复step2Step1的初始可行解选择可以采用的初始可行解选择可以采用随机的方法随机的方法,也可用一些经验的方法或其

23、他算法所得到的也可用一些经验的方法或其他算法所得到的解解Step2中的集合中的集合S 选取可以大到是选取可以大到是N(xbest )本本身,也可以小到只有一个元素,如用随机的方身,也可以小到只有一个元素,如用随机的方 法在法在N(xbest )中选一点中选一点例例2.15个城市(个城市(A,B,C,D,E)的)的对称对称TSP数数据,对应的距离矩阵为据,对应的距离矩阵为 05159250201361520081591380102615100)(ijdD初始解为初始解为xbest(ABCDE),), f(xbest )=45.邻域映邻域映射定义为对换两个城市位置的射定义为对换两个城市位置的2-opt选定选定A城市城市为起点,用全邻域搜索,即为起点,用全邻域搜索,即S:=N(xbest ) 第二循环:第二循环:N(xbest )=(ACBDE),(ABCDE) (ADBCE),(AEBDC),(ACDBE),(ACEDB), (ACBED), f(x)=43, 45, 44, 59,59,58,43. xbest

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论