模拟退火算法求解指派问题新探
2020-08-28
来源:乌哈旅游
第28卷第4期 吉林建筑工程学院学报 V0I_28 No.4 2011年8月 Journal of Jilin Institute of Architecture&Civil Engineering Aug.2011 模拟退火算法求解指派问题新探水 赵 越 (吉林建筑工程学院计算机科学与工程学院,长春130118) 摘要:模拟退火算法是一种随机搜索算法,能渐进地收敛干全局最优解.指派问题是组合优化问题中的一种,可用 模拟退火算法来解此问题.模拟退火算法解决指派问题时,需要考虑实现此算法的技术问题,例如解的形式、初始 温度的计算等.实验结果表明,该方法能够以一定的概率跳出局部最优。从而实现全局寻优. 关键词:模拟退火算法;指派问题;组合优化 中图分类号:TP 391 文献标志码:A 文章编号:1009—0185(201t)04—0061-03 A New Way to Solve Assignment Problem Using Simulated Annealing Algorithm ZHA0 Yue (School ofComputer Science and Engineering,Jilin Instittue ofArchitecture and Civil Engienerign,Changchun,China 130118) Abstract:Simulated annealing algorithm is a random search algorithm,and it can be gradual convergence in the global optimal solution.The assignment problem is one of combinatorial optimization problems.Simulated annealing algorithm can be used to solve assignment problem.When using the algorithm,various technical issues of the algo— rithm must be considered,such as the form of solution,the initila temperature account etc.Examples simulation shows that the method can jump out of local optimum solution wiht a certain probability to achieve global optimiza— tion. Keywords:simulated annealing algorithm;assignment problem;combinatorial optimization 0 引言 在企业运营与管理中,管理者总是希望把人员最佳分派以发挥其优势,从而降低成本,提高效益.例如, 某公司需完成///,项任务,恰好有//,名员工可承担这些任务(//,≥m);每项任务只能由一名员工来做,每名员 工也只能做一项任务;不同的员工完成各项任务的成本不同.问怎样分配任务公司的花费最小…这类问题, 被称为标准的指派问题(Assignment Problem).模拟退火算法(Simulated Annealing,简称SA)的思想最早是由 Metropolis等(1953年)提出的,1983年Kirk Patirck等成功的将其用于组合优化问题中.模拟退火算法在某 初温下,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即局部 最优解能概率性地跳出并最终趋于全局最优 J.本文将模拟退火算法应用于指派问题的求解过程中. 1指派问题模型 有 个人,m项任务(n≥m),一个人最多可以完成一项任务,而一项任务只能由一个人做.cO-表示第i个 人做第 项任务的费用,找出任务分配方案,使得总费用最小.首先引入一个0—1变量 : 收稿日期:2011一O1一l3. 作者简介:赵越(1982一),男,吉林省通化市人,讲师. }基金项目:吉林省教育厅“十一五”科学技术研究项目(吉教科合字2010第314号) 62 吉林建筑工程学院学报 A 10(第i个人不做第J.项任务) 模型为: y 『1 (第i个人做第 项任务) (1) arin∑∑c- {/ H (2) f∑ (J.=1,2,…, ) . (3) 【∑ ( =1,2,…,n) 2模拟退火算法 模拟退火算法的基本思想为:将组合优化问题比作一个热力学系统,将优化问题的费用函数 s)比拟 成系统的能量E(i),组合优化问题的解s比拟成退火过程中能量的状态i.把优化求解过程比拟成系统逐步 降温(迭代搜索)达到最低能量状态的退火过程.通过模拟退火过程获得优化问题的全局最优解,其算法先 确定一个能量函数即目标函数,求解最优化问题一般通过Metropolis抽样和退火两个过程实现.该算法在接 受较优解的同时,还在一定范围内接受差解,从而使模拟退火算法能跳出局部最优解而获得最优解 . 模拟退火算法步骤 J: STEP 1:任选一个初始解s0;5:=so;k:=0;t0:=t (初始温度); STEP 2:若在该温度达到内循环停止条件,则到STEP 3;否则,从邻域N(s)中随机选一个(新解)q,计算 = s)一 g);若 ≤0,则s:=q;否则若exp(一 /t )时,则s:=g;重复STEP 2. STEP 3:t +1=d(t );k:=k+1;若满足停止条件,终止计算;否则,回到STEP 2. 2.1指派问题解 的形式 n表示员工数目,m表示任务数.在输出结果时,用一个2×m的二维数组来表示解,即第一行表示各项 工作,由1到m;第二行表示任务分配,即从n个人中选择m个做各项工作. 显然该解满足模型中的约束条件(3),如果此解还满足条件(1),(2),则为可行解,否则为不可行解. 2.2邻域的生成 模拟退火算法中,解的搜索过程是在一个能量状态点附近搜索另外一个能量状态点.在温度t 时刻,指 定一个可行解s,然后任意交换两个状态的量,生成一个新的解g,如果满足模型的约束条件(1)和(2),则q 就是s邻域中的一个可行解.解s的邻域就是由以上方法生成的可行解. 2.3新解的接受与淘汰 在当前解的邻域中搜索到一个新解,是否接受,要看新解的目标函数值(费用)和当前最优解的目标函 数值(费用)的差 ,如果 ≤O,则说明新解的目标函数值较小,当前值被新值代替;否则 >0,看新解 的接受概率是否大于一个在0到l之间的随机数 ,若大于,则接收新解为当前最优解,否则舍弃该解. 2.4初始温度以及退温函数 初始温度t。=硒,K是充分大的数,其中 =max{ s)l s∈ }一rain{f(s)I s∈D} ,在实际计算中,可以 选取K=10,20,100…等试验值,max{ s)l s∈D}和rain{f(s)j 5∈D}是解空间随机取的两个解的目标函数 值.退温函数采用t +1=oct ,其中0< <1, 越接近1,温度下降越慢. 2.5 内外循环中止条件 内循环是在温度£ 时,采用固定长度法结束内循环.因为,指派问题的邻域是两个状态的任务交换生产 新的解,其大小为n(n一1)/2,我们可以选取迭代步数为 (n一1)/2.外循环采用零度法,模拟退火的最终温 度为零,因此可以给定一个比较小的正数 ,当温度t ≤ 时,外循环停止. 3 仿真数据以及运行结果分析 假设人数P =6,工作 =4,价值矩阵C(6,4)为: 第4期 赵越:模拟退火算法求解指派问题新探 63 26 4l 2O 41 18 43 7 21 49 49 4 40 18 27 26 26 17 2l 38 22 47 38 23 19 当rate=10,K=0.6时,算法仿真及所得最优分配方案如下. 总迭代步数:168 最终解: 工作:1 2 3 4 分配:2 5 3 6 最优解的目标值是:62 由此可见,该算法可以实现全局寻优.其寻优过程中以一定的概率接受最优解,跳出局部最优,实现全 局寻优. 4 结语 应用模拟退火算法,能够找到指派问题最优解分配方案.仿真结果表明了该算法的有效性.从最优解可 以看到,该算法可以跳出局部最优,从而实现全局最优. 参考文献 [1]殷人昆,吴阳,张晶炜.蚁群算法解决指派问题的研究和应用[J].计算机工程与科学,2008,30(4):43—44 [2]王凌.智能优化算法及其应用[M].北京:清华大学出版社,2001,35—39. [3]周晶,何建敏,盛昭瀚.一类新型的指派问题的多目标模型[J].系统工程学报,1999(2):119—121. [4]邢文训,谢金星.智能优化算法及其应用[M].北京:清华大学出版社,1999:94—126.