1、现代优化计算方法第一章概论现代优化算法包括:禁忌搜索(tabu search)模拟退火(simulated annealing)遗传算法(genetic algorithms)蚁群优化(ant colony optimization algorithm)人工神经网络(artificial neural networks)拉格朗日松弛等算法这些算法涉及生物进化、人工智能、数学和物理科学、神经系统和统计力学等概念都是以定的直观基础而构造的算法,也称之为元启发式算法(meta-heuristics)启发式算法的兴起与计算复杂性理论的形成有密切的联系现代优化算法自80年代初兴起,至今发展迅速这些算法同
2、人工智能、计算机科学和运筹学相融合11组合最优化问题1.组合最优化(combinatorial optimization)是通过对数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等,是运筹学中的一个经典且重要的分支,所研究的问题涉及信息技术、经济管理、工业工程、交通运输、通信网络等诸多领域2.该问题可用数学模型描述为:min f(x)s.t. g(x)0 ,xD其中,f(x)为目标函数,g(x)为约束函数,x为决策变量,D为决策变量的定义域3.一个组合最优化问题可用三参数(D,F,f)表示,F=x|xD, g(x)0表示可行解集, 为有限点集,D通常也为有限点集,f表示目标函数4.满足
3、f(x*)minf(x) | xF的可行解x*称为该问题的最优解5.组合最优化的特点是可行解集合为有限点集6.例例1.1.1 0-1背包问题(knapsack problem)设有一个容积为b的背包,n个尺寸分别为ai(il,2,n),价值分别为ci(i1,2,n)的物品,如何以最大的价值装包?(1.1)(1.2)(1.3)包内所装物品的价值最大包的能力限制xi1:装第i个物品D=0,1n,F为D中满足(1.2)的可行解f为目标函数=niiixc1maxbxatsniii=1nixi,1,1,0“=例1.1.2 旅行商问题(TSP,traveling salesman problem)一个商人
4、欲到n个城市推销商品,每两个城市i和j之间的距离为dij,如何选择一条道路使得商人每个城市走一遍后回到起点且所走路径最短TSP还可以细分为:对称(dij=dji)和非对称距离两大类问题jinjixnsnssxnjxnixtsxdijsjiijniijnjijjiijij=,1,1,0,2,1,2|2,1|,2,1,1,2,1,1min,11“对一般的TSP(1.4)从城市i出来1次(1.8)(1.5)(1.6)(1.7)走入城市j只1次城市子集xij=1:经过城市ij的路径共n(n-1)个决策变量D=0,1n(n-1)一条回路是由k(1k n)个城市和k条弧组成,因此,(17)约束旅行者在任何
5、一个城市真子集中不形成回路,其中|S|表示集合S中元素个数例1.1.3 整数线性规划(integer linear programming)c为n维列向量,A为mn矩阵、b为m维列向量,x 为n维决策变量,Zn表示n维整数向量的集合系数A、b和c的元素都是整数nTZxxbAxtsxc=,0max例1.1.2和1.1.3的数学模型都具有(IP)的形式一些组合优化问题可以写成整数线性规划问题IP与LP形式非常相似,不同之处是前者的决策变量部分或全部取整数例1.1.4 装箱问题(bin packing)设有n个一维尺寸不超过的物品集合a1, a2, an,如何以个数最少的一维尺寸为的箱子装进这n个物
6、品?(一维装箱问题)n个加工量为 di| i l,2,n的产品在一台机器上加工,机器在第t个时段的工作能力为ct ,求完成所有产品加工的最少时段数例1.1.5约束机器排序问题(capacitated machine scheduling)TtnixTtcxdnixtsTittniitiTtit,1;,1,1,0,2,1,2,1,1min11“=(1.12)(1.11)(1.10)(1.9)加工所用的时段数最少产品i一定在某个时段加工每个时段的加工量不超过能力的限制xit1表示第t时段加工产品i 、T:时段数决策变量组合优化问题的表示形式组合优化问题通常可以用整数规划模型的形式表示,如例1.1.
7、1和1.1.2有些组合优化问题用IP模型表示则比较复杂且不易被理解,不如对问题采用直接叙述更易理解,如例1.1.2,1.1.4和1.1.5根据对解的精度要求和分析的需要,有大量的组合优化问题是通过文字语言叙述的计算复杂性的概念是为评估算法的计算耗时和解的偏离程度等指标而提出的这套理论产生于70年代是评估算法的基础1计算复杂性的概念计算耗时的实例每一个组合最优化问题都可以通过枚举的方法求得最优解枚举是以时间为代价的,有的枚举时间还可以接受,有的则不可能接受例1.1.2的非对称距离TSP问题耗时可以用另一个方法来表示它的可行解:用n个城市的个排列表示商人按这个排列序推销并返回起点若固定一个城市为起
8、终点,则需要(n1)!个枚举设计算机1秒可以完成24个城市所有路径枚举为单位城市数计算时间241s2524 s2610m274.3h284.9d29136d3010a31325a枚举时城市数与计算时间的关系1。问题(problem)与实例(instance)z问题是一个抽象的模型或概念(TSP),它通过一些具体的数据表现出来问题是需要回答的一般性提问,通常含有若干个满足定条件的参数问题通过下面的描述给定:描述所有参数的特性描述答案所满足的条件z问题中的参数赋予了具体值的例子称为问题的实例(给定了参数的例1.2)z个问题通过它的所有实例表现.2.算法z个算法常常是针对一个问题来设计的,如上面的T
9、SP枚举算法可以求解任何一个TSP的最优解z而若用计算机求解,则必须对问题中的参数赋予具体值,如TSP中的城市数和城市间的距离z衡量个算法的好坏通常是用算法中的加、减、乘、除、比较、读和写盘等基本运算的总次数同实例的计算机计算时的二进制输入数据的大小关系来度量z对于一个正整数x,二进制表示是以xaS2S+aS-1 2S-1+a1 2+a0(aS0)的系数(aS, aS-1, a0 )来表示,位数是S十1z由1log1)1(loglog222221222+=1所以,正整数x占用位数为:log2(x+1)其中 x表示不小于x的最小整数且log 2 x log 2(x+1)log 2x+13.输入规
10、模3.输入规模z定义 log 2 1 1:整数0的输入长度为1z对任意整数x的输入规模l(x)= log 2(x+1) + 2包括一个符号位和一个数据分隔位3.输入规模z一个数x在计算机中存储时占据的位数称为这个数的规模或编码长度(size),l( x)z一实例I的规模:所有参数的规模之和(包括不同数据之间的特殊分隔符), l(I)z限有理数或仅考虑整数z当城市数为n,且第一个城市为始终点时,计算条路径(1,i 2,in)长度的基本运算为两两城市间距离的n个求和因为有(n1)!条路径,枚举所有路径进行(n-1)! 次比较,可以得到最优路径这个枚举算法的基本计算总次数为(n1)!n + (n1)
11、!(n-1)!(n+1)例1.2.1 TSP实例的规模z计算机计算时只需输入城市数n和城市的距离Ddij|1 i,j n, ij,得到实例I的规模: =+=ninijjijdnxl11222)1|(|log2)1(log)(=+ji0,dij22ijdnP|log3)1(3)(|log2)1(2 PnnxlPnnTSP实例的计算机二进制输入长度和算法的基本计算总次数都是城市数n的函数TSP实例的二进制输入长度是n的多项式函数枚举算法的基本计算总次数是n的阶乘函数,比指数函数增加的速度还快4.计算量的估计z问题的个实例I的规模为l(I),算法A在求解I时的基本计算总次数为CA(I)。当存在一个函数g(x)和一个常数,使得对该问题的所有实例I均满足:CA(I) g(l(I) )(1.2.6)则用CA(I) O ( g ( l(I) ) )表示z它的含义是:求解实例I的算法的基本计算总次数CA(I)是实例规模l(I)的个函数,这个函数被另一个函数g(x)控制。g(x)的函数特性决定了算法的性能