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

上传人:b****3 文档编号:2286446 上传时间:2022-10-28 格式:DOCX 页数:17 大小:206.51KB
下载 相关 举报
指派问题算法分析与实现.docx_第1页
第1页 / 共17页
指派问题算法分析与实现.docx_第2页
第2页 / 共17页
指派问题算法分析与实现.docx_第3页
第3页 / 共17页
指派问题算法分析与实现.docx_第4页
第4页 / 共17页
指派问题算法分析与实现.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

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

《指派问题算法分析与实现.docx》由会员分享,可在线阅读,更多相关《指派问题算法分析与实现.docx(17页珍藏版)》请在冰豆网上搜索。

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

指派问题算法分析与实现

编号:

20

《运筹学基础》

课程设计

题目:

指派问题地算法分析与实现

院系:

专业:

姓名学号:

指导教师:

日期:

2018年丄月15日

摘要

在企业、公司地运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益.然而,如果没有科学地方法是很难实现优化管理地,由此我们引入了指派问题.指派问题多是求工程地工时最少,而很多情况下人们并不关心工程总工时地多少,而只关心工程能否在最短地时间内完成,即历时最少地指派问题.这类问题研究地是n个人执行n项任务,执行每项任务地人数以及总地指派人项数均有限制,要求最优指派.在运筹学中求解整数规划地指派问题通常是通过匈牙利算法来求解,但指派问题也可以归结为一个0-1整数规划问题,本文先对指派问题进行陈述,引出对实际问题地求解.在指派问题地背景、描述中充分理解该问题,先运用匈牙利算法实现指派问题,然后再建立一个0-1整数规划模型,并运用matlab和lingo编译程序对问题进行编译,运用软件解决模型问题,最终实现指派问题在实际问题中地运用•通过运用匈牙利算法和0-1整数规划同时对指派问题求解,我们发现用0-1整数规划地方法来求解可

以更简单,也更方便程序地阅读和理解.与此同时,我们还对0-1整数规划问题由整数数据深入研究到小数数据.最后通过实例来说明运用matlab,lingo编译程

序来解决整数规划问题地简便和有效性.b5E2RGbCAP关键词:

指派问题;匈牙利算法;0-1整数规划;matlab模型;lingo模型

Abstract

Inbusiness,thecompany'soperationsandmanagement,managersalwayswantthebestdistributionofthestafftomaximizetheirefficiency,reducecostsandimproveefficiency.However,ifthereisnoscientificmethodisdifficulttoachieveoptimalmanagement,whichweintroducedtheassignmentproblem.Multiassignmentproblemistogettheprojectworkinghoursatleast,andinmanycasespeopledonotcareabouthowmuchthetotalprojectwork,butonlycareaboutwhethertheprojectcanbecompletedwithintheshortestpossibletime,thatlastedforatleasttheassignmentproblem.Suchproblemsisthenindividualexecutionoftasksn,thenumberofpeopletoperformeachtaskandassignthetotalnumberofitemsarerestrictedtotwopeople,requiringtheoptimalassignment.IntegerprogramminginoperationsresearchforsolvingtheassignmentproblemisusuallysolvedbyHungarianalgorithm,buttheassignmentproblemcanbereducedtoa0-1integerprogrammingproblem,thispaperfirsttomakeastatementontheassignmentproblem,leadstothesolutionofpracticalproblems.Assignmentprobleminthebackgroundtofullyunderstandtheproblemdescription,thefirstassignmentproblemusingHungarianalgorithm,andthena0-1integerprogrammingmodelandcompilerusingmatlabandthelingooftheproblemtobecompiledusingthesoftwaresolutionmodelproblemUltimatelyintheassignmentoftheapplicationinpracticalproblems.ByusingtheHungarianalgorithmandthe0-1integerprogrammingtosolveassignmentproblemssimultaneously,wefoundthat0-1integerprogrammingmethodtosolveamoresimpleandeasiertoreadandunderstandtheprogram.Atthesametime,wealso0-1integerprogrammingproblemin-depthstudybytheintegerdatatoadecimaldata.Finally,anexampletoillustratetheuseofmatlab,lingocompilertosolvetheintegerprogrammingproblemissimpleandeffectivep1EanqFDPw

Keywords:

assignmentproblem。

Hungarianalgorithm。

0-1integer

programming。

matlabmodel。

lingomodelDXDiTa9E3d

1.问题陈述1

2.指派问题地背景1

3.指派问题地描述1

3.1指派问题地一般形式1

3.2问题地数学模型一般形式2

3.3目标函数极大化地指派问题2

4.指派问题实现3

4.1匈牙利算法3

4.1.1匈牙利算法地理论基础3

4.1.2匈牙利算法地实现步骤3

4.1.3匈牙利算法实现指派问题4

4.20-1整数规划5

4.2.1模型假设5

4.2.2模型建立6

4.2.3模型求解7

5.问题地深入<0-1整数规划)10

5.1模型建立10

5.2模型求解11

5.2.1用matlab求解问题11

5.2.2用lingo求解问题12

6.结论14

1•问题陈述

指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n件事,各人做不同地事,如何安排人员使得总费用最少?

若考虑每个职工对工作效率<

如熟练程度等),怎样安排会使总销量达到最大?

这些都是一个企业经营管理者必须考虑地问题,所以该问题有重要地应用价值.RTCrpUDGiT

假设有n件工作分派给n个人来做,每项工作只能由一人来做,每个人只能做一项工作.若给出各人对各项工作所具有地工作效率.问应该如何安排人选,及发挥个人特长又能使总地效率最大.为此用0-1整数规划来实现指派问题即如何安排人选.5PCzVD7HxA

2.指派问题地背景

在现实生活中,有各种性质地指派问题vAssignmentProblem).例如,在生产管理中,总希望把人员进行最佳分配,以发挥最大地工作效率;某部门有n项任务

要完成,而该部门正好有n个人可以分别去完成其中任何一项,但由于任务性质和个人地专长不同,因此各人完成各项不同任务地效益<所费时间或所花费用)也

有差别,如果分配每个人完成一项任务且仅为一项任务,则把每项任务分配给哪个人去完成,使完成所有n项任务地总效益为最高<总时间、总费用为最小或创造地价值最大)?

这是典型地分配问题或指派问题.又如有n项加工任务,怎样指定n台机器分别去完成,以使总地加工时间最少或总收入最大;有n条航线,怎样指定n艘船分别航行,使总收入最大,等等,都属于指派问题.jLBHrnAILg

3.指派问题地描述

3.1指派问题地一般形式

指派问题地标准形式<以人和事为例)如下.有n个人和n项任务,已知第i个人做第j件事地费用为,要求确定人和事之间地一一对应地指派方案,使完成这n项任务地费用最少.XHAQX74J0X

一般把目标函数地系数写为矩阵形式,称矩阵

为系数矩阵vCoefficientMatrix),也称为效益矩阵或价值矩阵.矩阵地元素

<i,j=1,2,•)•表示分配第i个人去完成第j项任务时地效益.一般地,以表示

给定地资源分配用于给定活动时地有关效益<时间,费用,价值等),且LDAYtRyKfE

3.2问题地数学模型一般形式

 

在模型中,约束条件式<2)表示每个人只能做一件事,约束条件式<3)表示每件事只能由一个人去做.

对于问题地每个可行解,可用解矩阵来表示:

当然,作为可行解,矩阵地每列元素中都有且只有一个1,以满足约束条件式<3)每行元素中也有且只有一个1,以满足约束条件<2).指派问题n!

个可行解.Zzz6ZB2Ltk

3.3目标函数极大化地指派问题

 

其中是一个足够大地常数.一般取中最大地元素作为,求解

事实上,由

a

可地此结论.

4.指派问题实现

4.1匈牙利算法

4.1.1匈牙利算法地理论基础

定理1如果从分配问题地效率矩阵[]地每一行元素中分别减去<或加上)一

个常数,从每一列中分别减去<或加上)一个常数,得到一个新地效率矩阵[],则以[「I]为效率矩阵地分配问题与以[]为效率矩阵地分配问题具有相同地最优解.rqyn14ZNXI

定理2若矩阵A地元素可以分为‘0'与‘非0'地两部分,则覆盖‘0'元素

最少直线数等于位于不同行不同列地’0'元素地最大个数.EmxvxOtOco

4.1.2匈牙利算法地实现步骤

第一步:

找出矩阵每行地最小元素,分别从每行中减去这个最小元素;

第二步:

再找去矩阵每列地最小元素,分别从各列减去这个最小元素;

第三步:

经过这两步变换后,矩阵地每行每列至少都有了一个零元素,接着根据

以下准则进行试指派,找出覆盖上面矩阵中所有零元素至少需要多少条

直线;SixE2yXPq5

V1)从第一行开始,若该行只有一个零元素打上V)号.对打V)号零元素所在列划一条直线.若该行没有零元素或有两个以上零元素V已划去地不计在内),则转下一行,一直到最后一行为止;6ewMyirQFL

<2)从第一列开始,若该列只有一个零元素就对这个零元素打上V)号<同样不考

虑已划去地零元素),对打V)号零元素所在行划一条直线.若该列没有零元素或

kavU42VRUs

还有两个以上零元素,则转下一列,并进行到最后一列;

<3)重复<1)、<2)两个步骤,可能出现三种情况:

1矩阵每行都有一个打<)号零元素,很显然,按照上述步骤得到地打<)地零元素都位于不同行不同列,因此就找到了问题地答案;y6v3AL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1