最优化论文.docx
- 文档编号:27227498
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:12
- 大小:101.28KB
最优化论文.docx
《最优化论文.docx》由会员分享,可在线阅读,更多相关《最优化论文.docx(12页珍藏版)》请在冰豆网上搜索。
最优化论文
理学院
最优化理论与应用
课程设计
学号:
XXXXXXX
专业:
应用数学
学生姓名:
XXXXXX
任课教师:
XXXXXX教授
2015年10月
第一部分
在最优化理论与应用这门课中,我对求指派问题及指派问题的一个很好的解法匈牙利算法的应用比较感应趣。
下面做出来讨论。
国内外的研究情况:
“匈牙利算法”最早是由匈牙利数学家尼格(D.Koning)用来求矩阵中0元素个数的一种方法
,由此他证明了“矩阵中独立0元素的最多个数等于能覆盖所有0元素的最小直线数”。
1955年由库恩(W.W.Kuhn)在求解著名的指派问题时引用了这一结论
,并对具体算法做了改进,任然称为“匈牙利算法”。
解指派问题的匈牙利算法是从这样一个明显事实出发的:
如果效率矩阵的所有元素
,而其中存在一组位于不同行不同列的零元素,而只要令对应于这些零元素位置的
,其余的
,则z=
就是问题的最优解。
第二部分
结合我的基础知识对匈牙利算法的分析与展望
一.基础知识运用
企业员工指派问题的模型建立与求解
1.标准指派问题(当m=n时,即为每个人都被指派一项任务)
假定某企业有甲乙丙丁戊五个员工,需要在一定的生产技术组织条件下,A,B,C,D,E五项任务,每个员工完成每项工作所需要耗费的工作时间如下:
求出:
员工与任务之间应如何分配,才能保证完成工作任务的时间最短?
最短时间为多少?
模型建立
设用C>0表示指派第i个人去完成第j项任务所用费时间,定义决策变量
则指派问题的数学模型为:
模型求解由题意及匈牙利算法矩阵得
由此可知当员工甲负责任务A,员工乙负责任务D,员工丙负责任务B,员工D负责任务C,员工E负责任务E时,才能保证完成工作任务的时间最短,最短时间为39个小时。
2.非标准指派问题
当m 假定某企业安5个员工,完成4项任务,每个员工完成每项任务的时间如下 求如何分配任务才能保证工作时间最短? 模型建立 设用C>0表示指派第i个人去完成第j项任务所用费时间,定义决策变量 则指派问题的数学模型为: 因为该模型不能直接运用匈牙利算法求解,故我们进行如下分析: 五个员工负责四项任务则必有一个员工没有任务。 此时可增添一个虚任务E,则个员工完成E的时间均为0,上表变形为 此时模型变为如下 设用C>0表示指派第i个人去完成第j项任务所用费时间,定义决策变量 则指派问题可转化为0-1线性规划问题 模型求解如下 即当甲分派C任务,乙分派A任务,丙分派B任务,戊分派D任务时,工作时间最短,最短时间为24小时。 二.匈牙利算法的缺点 1.“匈牙利算法”在各种已发表的教材,专注和研究成果中,通常求解中小型分派问题,效能矩阵的阶数不超过20,故很难发现匈牙利算法”的缺点,匈牙利算法在处理一些特殊数据时并不有效,算法不收敛,无法找出最优解。 2.在匈牙利算法的求解步骤中,效率矩阵即可以先进行行减约也可以先进行列减约,但是,有时候先进行行减约比先进行列减约复杂,增加了许多步,有时却相反。 三.匈牙利算法的改进 现对效率矩阵进行改进,这样就能知道先行减约还是先进行列减约,改进如下: 第一步,简化效率矩阵。 (1)统计效率矩阵每行的最小元素的个数总和R(sum)和每列的最小元素的个数总和C(sum)。 (2)若R(sum)和C(sum)均大于n,且当R(sum)>C(sum)时,则先对效率矩阵的没咧减去该列的最小元素,在对所得效率矩阵的每行减去该行的最小元素。 反之当R(sum) (3)若R(sum)和C(sum)均不满足均大于n,且当R(sum) 反之,当R(sum)>C(sum)时,则先对效率矩阵的每行减去该行的最小元素,在对所得效率矩阵的每列减去该列的最小元素; 第二步,检查矩阵C,若矩阵C的各行各列均有“0”,则跳过吃步,否则进行列(或行)约减。 得到新的矩阵C; 第三步,画盖“0”线,即画最少的线讲矩阵C中的0全覆盖住,得新的矩阵C; 第四步,数据转换。 若“盖0”线的数目等于矩阵的维数则直接跳到第六步,若“盖0”线的数目小于矩阵的维数则进行数据转换,步奏如下: (1)找到未被“盖0”线覆盖的数中的最小值 (2)将未被“盖0”线覆盖住的数减去 (3)将“盖0”线交叉的数加上 第五部,重复第三步和第四步,直到“盖0”的数目等于矩阵的维数; 第六步,求最优解对n维矩阵,找到不同行,不同列的n个“0”,每个“0”的位置代表一对配置关系,具体步骤如下: (1)先找只含有一个“0”的行(或列),将该行(或列)中的“0”打“ ” (2)将带“ ”的“0”所在列(或行)中的“0”打“×” (3)重复 (1)步和 (2)步结束,若所有行列均含有多个“0”,则从“0”的数目最少的行或列中任选一个“0”打“ ”; 第七步,打“ ”即为员工所对应的指派任务。 第三部分 匈牙利算法的C语言实现如下: #include #include //#defineM5 //#defineN5 #defineMAXSIZE10 intM,N; intarrangement[999][999]; intbestcost=999; intx[999]; intbestx[999]; voidbacktrackarrage(inti,intcost); voidoutputresult(); voidswap(inti,intj); main() { inti,j; printf("请输入行(人数): M="); scanf("%d",&M); printf("请输入列(人数): N="); scanf("%d",&N); printf("**************输入方式************\n"); printf("*手动输入(I)文件读入(F)*\n"); printf("**********************************\n"); getchar(); if(getchar()=='I'){ printf("你选择的是手动输入\n"); printf(请输入一个%d*%d矩(数字之间用空格间隔,换行按回车 )\n",M,N); for(i=0;i for(j=0;j scanf("%d",&arrangement[i][j]); }else{ printf("你选择的是文件读入\n"); FILE*fp; fp=freopen("input.txt","r",stdin); for(i=0;i for(j=0;j scanf("%d",&arrangement[i][j]); } for(i=0;i x[i]=i; backtrackarrage(0,0);/*回溯求解*/ outputresult();/*输出结果*/ //getch(); } /*递归回溯函数,确定最优调度方案,i是递归层数,cost是当前求得的解*/ voidbacktrackarrage(inti,intcost) { intj; if(i==N) { if(cost { bestcost=cost; for(j=0;j bestx[j]=x[j]; } } else{ for(j=i;j { cost+=arrangement[i][x[j]]; if(cost { swap(i,j); backtrackarrage(i+1,cost); swap(i,j); } cost-=arrangement[i][x[j]]; } } } /*交换函数为了得到一个排序树的排序,即一个全排列*/ voidswap(inti,intj) { inttemp; temp=x[i]; x[i]=x[j]; x[j]=temp; } voidoutputresult() { inti; printf("计算结果是: \n"); printf("event\tpeople"); for(i=0;i printf("\n%d\t%d",i+1,bestx[i]+1); printf("\n\n\tbestcost: %d\n",bestcost); } 第四部分 课程评价: 冯国峰老师课堂内容充实,线索清晰,重点突出,授课方式灵活多样,课堂气氛活跃,教学效果明显。 更是由于老师上课热情饱满使我在课堂上受益很多。 感谢老师让我对最优化理论与应用这门课有了新的认识。 参考文献 [1]中国就业培训技术指导中心组织编写,企业人力资源管理师(三级)[M].中 国劳动社会保障出版社,2007. [2]程红萍.简化匈牙利算法求解的思考[J].渭南师范学院学报,2007,22(5): 32-34. [3]张联朋.对指派问题匈牙利算法的两点改进[J].西安航空技术高等专科学校学报,2007,25 (1): 64-66. [4]袁迁,刘舒燕.关于匈牙利算法的优化[J].武汉理工大学学报,2007, 29(3): 146-149. [5]张联朋.寻找独立元素的一种新方法[J].重庆职业技术学院学报,2007, 16 (1): 160-161. [6]彭静.分配问题中匈牙利算法分析[J/OL].read.asp? ID=34322021&SUID=EGBNBFDHDNCBCOPIBOLGEMCBCDOIPNFP、 2010-01-31/2011-01-05
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 论文