欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    指派问题的算法分析与实现.docx

    • 资源ID:15484471       资源大小:98.80KB        全文页数:17页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    指派问题的算法分析与实现.docx

    1、指派问题的算法分析与实现 运 筹 学课 程 设 计题 目:指派问题的算法分析与实现院 系: 理学院 专 业: 数学与应用数学 学 号: 1101020127 姓 名: 梁 州 日期: 2014 年 1 月 10 日摘 要在企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而只关心项目能否在最短的时间内完成,即历时最少的指派问题。这类问题研究的是n个人执行n项任务,执行每项任务的人数以及总的指派人项数均有限

    2、制,要求最优指派。在运筹学中求解整数规划的指派问题通常是通过匈牙利算法来求解,但指派问题也可以归结为一个0-1整数规划问题,本文先对指派问题进行陈述,引出对实际问题的求解。在指派问题的背景、描述中充分理解该问题,先运用匈牙利算法实现指派问题,然后再建立一个0-1整数规划模型,并运用matlab编译程序对问题进行编译,运用软件解决模型问题,最终实现指派问题在实际问题中的运用。通过运用匈牙利算法和0-1整数规划同时对指派问题求解,我们发现用0-1整数规划的方法来求解可以更简单,也更方便程序的阅读和理解。与此同时,我们还对0-1整数规划问题由整数数据深入研究到小数数据。最后通过实例来说明运用matl

    3、ab编译程序来解决整数规划问题的简便和有效性。问题陈述指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n件事,各人做不同的事,如何安排人员使得总费用最少?若考虑每个职工对工作效率(如熟练程度等),怎样安排会使总销量达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值。假设有n件工作分派给n个人来做,每项工作只能由一人来做,每个人只能做一项工作。若给出各人对各项工作所具有的工作效率。问应该如何安排人选,及发挥个人特长又能使总的效率最大。为此用0-1整数规划来实现指派问题即如何安排人选。指派问题的背景在现实生活中,有各种性质的指派问题(Assignment

    4、Problem)。例如,在生产管理中,总希望把人员进行最佳分配,以发挥最大的工作效率;某部门有n项任务要完成,而该部门正好有n个人可以分别去完成其中任何一项,但由于任务性质和个人的专长不同,因此各人完成各项不同任务的效益(所费时间或所花费用)也有差别,如果分配每个人完成一项任务且仅为一项任务,则把每项任务分配给哪个人去完成,使完成所有n项任务的总效益为最高(总时间、总费用为最小或创造的价值最大)?这是典型的分配问题或指派问题。又如有n项加工任务,怎样指定n台机器分别去完成,以使总的加工时间最少或总收入最大;有n条航线,怎样指定n艘船分别航行,使总收入最大,等等,都属于指派问题。指派问题的一般形

    5、式指派问题的标准形式(以人和事为例)如下。有n个人和n项任务,已知第i个人做第j件事的费用为,要求确定人和事之间的一一对应的指派方案,使完成这n项任务的费用最少。一般把目标函数的系数写为矩阵形式,称矩阵为系数矩阵(Coefficient Matrix),也称为效益矩阵或价值矩阵。矩阵的元素(i,j=1,2,n)表示分配第i个人去完成第j项任务时的效益。一般地,以表示给定的资源分配用于给定活动时的有关效益(时间,费用,价值等),且在模型中,约束条件式(2)表示每个人只能做一件事,约束条件式(3)表示每件事只能由一个人去做。 对于问题的每个可行解,可用解矩阵来表示:时,我们将构造一个新的矩阵,使,

    6、其中是一个足够大的常数。一般取中最大的元素作为,求解 当然,作为可行解,矩阵的每列元素中都有且只有一个1,以满足约束条件式(3)。每行元素中也有且只有一个1,以满足约束条件(2)。指派问题n!个可行解。求解,所得的解就是原问题的解。事实上,由可的此结论。匈牙利算法的实现步骤第一步:找出矩阵每行的最小元素,分别从每行中减去这个最小元素;第二步:再找去矩阵每列的最小元素,分别从各列减去这个最小元素;第三步:经过这两步变换后,矩阵的每行每列至少都有了一个零元素,接着根据以下准则进行试指派,找出覆盖上面矩阵中所有零元素至少需要多少条直线;(1)从第一行开始,若该行只有一个零元素打上()号。对打()号零

    7、元素所在列划一条直线。若该行没有零元素或有两个以上零元素(已划去的不计在内),则转下一行,一直到最后一行为止;(2)从第一列开始,若该列只有一个零元素就对这个零元素打上()号(同样不考虑已划去的零元素),对打()号零元素所在行划一条直线。若该列没有零元素或 还有两个以上零元素,则转下一列,并进行到最后一列;(3)重复(1)、(2)两个步骤,可能出现三种情况:1 矩阵每行都有一个打()号零元素,很显然,按照上述步骤得到的打()的零元素都位于不同行不同列,因此就找到了问题的答案;2 有多于两行或两列存在两个以上零元素,即出现了零元素的闭回路,这个时候可顺着闭回路的走向,对每个间隔的零元素打上()号

    8、,然后对所有打()号零元素或所有列或所在行划一条直线。3 矩阵中所有零元素或打上()号,或被划去,但打()号零元素个数小于m。第四步:为了设法使每行都有一个打()的零元素,就要继续对矩阵进行变换;(1)从矩阵未被直线覆盖的元素找出最小元素k;(2)对矩阵的每行,当该行有直线覆盖时,令=0,无直线覆盖的,令=k;(3)对矩阵的每列,当该列有直线覆盖时,令=-k,无直线覆盖的,令=0;(4)得列一个变换后的矩阵,其中每个元素=-。第五步:回到第三步,反复进行,一直到矩阵中每一行都有一个打()的零元素为止,即找到最优分配方案为止。4.1.3 匈牙利算法实现指派问题为了便于对模型进行求解与分析,假设有

    9、4件事4个人去做,各变量对应的数据假设如表1。 每个人完成各项任务需要的时间人任务ABCD甲25293142乙39382620丙34272840丁24423623用匈牙利算法求解过程如下: -1 -1 -1 -4 -4 -1 -1所以最优解为x11,x23,x32,x44,即甲负责任务A,乙负责任务C,丙负责任务B,丁负责任务D,可以使总花费时间最少。代入求出目标函数值Z=25+26+27+23=101。4.2 0-1整数规划0-1规划(0-1 Programming)一种特殊形式的整数规划 。这种规划的决策变量仅取值0或1,故称为0-1变量或二进制变量 ,因为一个非负整数都可以用二进制记 数

    10、法用若干个0-1变量表示 。0-1变量可以数量化地描述诸如开与关、取与弃、有与无等现象所反映的离散变量间的逻辑关系、顺序关系以及互斥的约束条件 ,因此0-1规划非常适合描述和解决如线路设计 、工厂选址 、生产计划安排、旅行购物、背包问题、人员安排、代码选取、可靠性等人们所关心的多种问题。实际上,凡是有界变量的整数规划都可以转化为0-1规划来处理。当然也包括运筹学中的指派问题。4.2.1 模型假设为了便于对模型进行求解与分析,假设有4件事4个人去做,各变量对应的数据假设如表1。表1 每个人完成各项任务需要的时间人任务ABCD甲25293142乙39382620丙34272840丁24423623

    11、表2 变量假设i第i个人j第j项任务第i个人分配第j项任务=1第i个人被分配去做第j项任务=0第i个人不被分配到第j项任务根据前面的假设,因此,每个人只完成一项任务的约束条件为:每项任务必有一个人负责的约束条件为: 由此,建立的数学模型为: s.t. 或1,i,j=1,2,3,4用matlab求解根据上面建立的模型,代入相应的数据,利用matlab软件编程求解,具体程序如下:function y,fval=minzp(C) %y为最佳匹配矩阵,fval为目标函数值,C为目标函数系数矩阵C=C;f=C(:);m,n=size(C);Aeq=zeros(2*n,n*n); %生成2*n行n*n列的

    12、等式约束0系数矩阵for i=1:nAeq(1:n,1+(i-1)*n:i*n)=eye(n,n); %eye表示生成n阶单位阵endfor i=1:nAeq(n+i,1+(i-1)*n:i*n)=ones(1,n); %生成1行n列元素为1的向量endbeq=ones(2*n,1); %生成2*n行1列元素为1的等式约束右端项lb=zeros(n*n,1); %生成n*n行1列元素为0的不等式约束左端项ub=ones(n*n,1); %生成n*n行1列元素为1的不等式约束右端项x=linprog(f,Aeq,beq,lb,ub); %求目标函数达到极小值的x值y=reshape(x,n,n)

    13、; %将上式求出的x值组成的向量变成n阶矩阵y=y;y=round(y); %对y中的元素取整,生成匹配矩阵sol=zeros(n,n);for i=1:nfor j=1:nif y(i,j)=1sol(i,j)=C(j,i);endendendfval=sum(sol(:); %求出极小值的目标函数值其中, C=25 29 31 4239 38 26 2034 27 28 4024 42 36 23; y,fval=minzp(C)输出结果为:Optimization terminated.y = 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1fval =1010-1整数规划

    14、将约束条件由整数数据变为小数数据且目标函数由最小值化为最大值问题的求解。假设有4件工作分派给4个人来做,每项工作只能由一人来做,每个人只能做一项工作。下表为各人对各项工作所具有的工作效率。问应该如何安排人选,及发挥个人特长又能使总的效率最大。表3 每个人完成各项任务需要的时间 工人人ABCD甲0.60.20.30.1乙0.70.40.30.2丙0.81.00.70.3丁0.70.70.50.45.1 模型建立设 表示第i 个人被安排做第j项工作,则当第i个人被安排去做第j项工作时=1;当第i个人不被安排到第j项工作时=0。因此,每个人只完成一项工作的约束条件为每项工作必有一个人负责的约束条件为

    15、 数学模型为s.t. 或1,i,j=1,2,3,4用matlab求解问题根据上面建立的模型,利用matlab进行求解,具体程序如下:function y,fval=maxzp(M,C) %M为C中元素的最大值m,n=size(C);C=M+zeros(n)-C;%将求极小值的目标函数系数矩阵转换成求极大值的系数矩阵M=1.0;C=C;f=C(:);Aeq=zeros(2*n,n*n);for i=1:nAeq(1:n,1+(i-1)*n:i*n)=eye(n,n);endfor i=1:nAeq(n+i,1+(i-1)*n:i*n)=ones(1,n);endbeq=ones(2*n,1);l

    16、b=zeros(n*n,1);ub=ones(n*n,1);x=linprog(f,Aeq,beq,lb,ub);y=reshape(x,n,n);y=y;y=round(y);sol=zeros(n,n);for i=1:nfor j=1:nif y(i,j)=1sol(i,j)=C(j,i);endendendfval=sum(sol(:);fval=M*n-fval; %求出极大值的目标函数值C=0.6 0.2 0.3 0.1 0.7 0.4 0.3 0.2 0.8 1.0 0.7 0.3 0.7 0.7 0.5 0.4; y,fval=maxzp(M,C)输出结果为:Optimization terminated.y = 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1fval =2.4000


    注意事项

    本文(指派问题的算法分析与实现.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开