数学建模,获奖论文,工作指派问题
最优化指派问题小论文
最优化小论文某企业拟生产A 和B 两种产品,其生产投资费用分别为2100元/t 和4800元/t 。
A 、B 两种产品的利润分别为3600元/t 和6500元/t 。
A 、B 产品每月的最大生产能力分别为5t 和8t ;市场对这两种产品总量的需求每月不少于9t 。
试问该企业应该如何安排生产计划,才能既能满足市场需求,又节约投资,而且使生产利润达到最大?分析:该问题是一个线性多目标规划问题。
如果计划决策变量用x 1 和x 2表示,它们分别代表A 、B 产品每月的 生产量(单位:t );f 1(x 1,x 2)表示生产A 、B 两种产品的总投资费用(单位:元); f 2(x 1,x 2)表示生产A 、B 两种产品获得的总利润(单位:元)。
那么,该多目标规划问题就是:求x 1 和x 2,使:而且满足:对于上述多目标规划问题,如果决策者提出的期望目标是: (1)每个月的总投资不超30000元; (2)每个月的总利润达到或超过45000元; (3)两个目标同等重要。
解:⎪⎪⎩⎪⎪⎨⎧≥≥+≤≤0,985212121x x x x x x 2121148002100),(min x x x x f +=2121265003600),(max x x x x f +=指派问题现实生活中中经常会遇到类似这样的问题,比如有n 项不同的任务,需要n 个人分别完成其中的一项,但由于任务的性质和各人的专长不同,因此各人去完成不同的任务的效率(或花费的时间或费用)也就不同。
于是产生了一个问题,应指派哪个人去完成哪项任务,使完成n 项任务的总效率最高(或所需时间最少),这类问题称为指派问题或分派问题。
1.指派问题的数学模型:设n 个人被分配去做n 件工作,规定每个人只做一件工作,每件工作只有一个人去做。
已知第i 个人去做第j 件工作的的效率(时间或费用)为Cij(i=1.2…n;j=1.2…n)并假设Cij ≥0。
问应如何分配才能使总效率(时间或费用)最高?设决策变量1 分配第i 个人去做第j 件工作x ij =0 相反( i, j =1.2. …n )其数学模型为:⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧=======∑∑∑∑====)..2.1,1(或0)..2.1( 1)..2.1( 1min 1111n j i x n j x n i x x c Z ij n i ij nj ij ni njij ij解题步骤:第一步:变换指派问题的系数(也称效率)矩阵(c ij)为(b ij),使在(b ij)的各行各列中都出现0元素,即(1)从(c ij )的每行元素都减去该行的最小元素(若求什么时候效率最低时,则所有行行列都先乘以-1,然后再加上所有数中绝对值最大的数,再每行元素都减去该行的最小元素); (2) 再从所得新系数矩阵的每列元素中减去该列的最小元素。
数学建模指派问题论文
目录一问题重述 (2)二模型假设 (2)三匈牙利法陈述 (2)四问题分析 (3)五问题实现 (5)1问题重述 (5)2 问题求解 (5)2.1由匈牙利法构造目标函数 (5)2.2模型建立 (6)3 模型解析 (6)4 程序实现 (7)六结果显示及min求解 (17)七模型深入 (17)1 模型建立 (18)2 进行求解 (18)3程序分析 (20)八模型检验 (20)九整体总结 (20)十参考文献 (21)一问题重述指派问题亦称平衡指派问题仅研究人数与事数相等、一人一事及一事一人的情形。
现有的不平衡指派问题将研究范围扩大到人数与事数可以不等、一人一事或一人多事及一事一人的情形。
日常活动中也不乏人数与事数可以不等、一人多事及一事多人的情形,这类事务呈现了广义指派问题的实际背景。
平衡指派问题是特殊形式的平衡运输问题,可运用匈亚利法、削高排除法和缩阵分析法等特殊方法求解。
另一方面,正是平衡指派问题的这种特殊性,使得不平衡指派问题不能按常规技术转化为平衡指派问题。
因此,各种不平衡指派问题需要确立相应的有效解法1问题的提出及其数学模型广义指派问题并非奇特和抽象的构想,相反,该问题可以从司空见惯的日常事务中引出。
现在我们就运用匈牙利法,去实现n个人,n件工作的指派问题。
二模型假设1 假设一共有n个人,n件工作,即人数与工作数相等。
2 假设每个人的都能从事某项工作,但是付出的代价不同。
3 假设求解代价最小的解。
4甲乙丙丁四个人,ABCD四项工作,要求每人只能做一项工作,每项工作只由一人完成,问如何指派总时间最短?三匈牙利法陈述第一步:找出矩阵每行的最小元素,分别从每行中减去这个最小元素;第二步:再找去矩阵每列的最小元素,分别从各列减去这个最小元素;第三步:经过这两步变换后,矩阵的每行每列至少都有了一个零元素,接着根据以下准则进行试指派,找出覆盖上面矩阵中所有零元素至少需要多少条直线;(1)从第一行开始,若该行只有一个零元素打上()号。
数学建模,获奖论文设计,工作指派问题
河南理工大学2014年数学建模竞赛论文答卷编号(竞赛组委会填写):题目编号:( F )论文题目:工作的安排参赛队员信息(必填):答卷编号(竞赛组委会填写):评阅情况(学校评阅专家填写):评阅1.评阅2.评阅3.工作的安排摘要:工作指派问题是日常生活中常见的一类问题。
本文所要研究就是在效率与成本的背景下,如何安排每个人员的工作分别达到以下三个要求:1、使得总的工作效率最大。
2、使得总的成本最低。
3、兼顾工作效率和成本,优化工作安排方案。
对于问题一,该问题属于工作指派问题,要求使工作效率最大。
为了得到最优的安排方案,我们采用0-1规划模型,引入0-1变量,即其中一人负责某一项工作记作1,否则为0,然后与之对应的效率相乘,然后把所有的工作安排情况这样处理后,再求和作为目标函数。
此外我们对该问题进行了如下约束:因为六个人刚好六份工作,所以每个人只能被安排一份工作,而且每份工作只允许一人来完成。
最后在模型求解中我们应用lingo软件编程使目标函数值最大化,根据此时对应的0-1变量的所有值,最终得到最优安排方案。
对于问题二,要求的方案使工作成本最低。
该问题与问题一相似,只是求解的是目标函数的最小值,为此我们建立了成本最小化模型,该模型同样应用了0-1规划方法,然后用与问题一中相似的方法建立目标函数,然后应用lingo软件编程使目标函数值最小,最终得到使成本最小的相应安排方案。
对于问题三,该问题兼顾效率与成本,属于多目标规划。
首先,数据标准化处理。
给出的效率成本数据属于两个不同性质的指标,两个指标之间存在着不可公度性,而且两项的数值整体大小水平不一样,会有大数起主导作用的影响,如果不对两个指标的数据进行标准化,就会得到错误的结果,为此我们首先采用极值差方法,用matlab编程对两项指标数据进行标准化。
经过极差变换后,两项指标值均在0和1之间。
对于此问题的多目标规划解决,我们采用理想点方法将多目标规划转化为单目标规划,建立了偏离理想点距离模型。
指派问题
STEP 4: 调整
GO TO STEP 1
45 0 40 65 45 55 55 0 0 5 0 45 0 55 60 55 45 45 0 45
√ √
0 20 40 √ 60 √ 95 √
运筹学
45 0 40 65 45 55 55 0 0 5 0 45 0 55 60 55 45 45 0 45
M ≥ m cij ), bij = M − cij ax(
则有
∑∑b x = ∑∑(M −c )x
i=1 j =1 ij ij n i=1 j =1 n ij n n i=1 j =1 i=1 j =1
n
n
n
n
ij n n
= M∑∑xij − ∑∑cij xij = nM − ∑∑cij xij
i=1 j =1
运筹学
32a 12a 0 0 0 0 640a 0 48a 176a 96a 0 8a 56a 26a 0
运筹学
32a 12a 0 0 0 0 640a 0 48a 176a 96a 0 8a 56a 26a 0
√ √
0 20 40 √ 60 √ 95 √
运筹学
50 0 45 65 50 55 60 0 0 0 0 40 0 50 60 50 45 40 0 40
0 20 35 55 90
运筹学
0 0 (xij ) = 0 1 0
指派问题
Assignment Problems
指派问题(分配问题)
1. 指派问题及其数学模型 2. 求解指派问题的匈牙利法 3. 非标准指派问题的求解 4. 指派问题的应用举例
5.5 指派问题
cij 为第 i 个人为完成第 j 项任务时的工时消
3. 指派问题数学模型—标准形式 如果一个指派模型满足以下三个条件:
1)目标要求为min
2)效率矩阵(cij)为m阶方阵
3)效率矩阵中所有元素cij≥0,且为常数
则称上面的数学模型为指派问题的标准形.
4. 指派模型的标准形的特点: 含有m×m个决策变量,均为0-1变量 m+m=2m个约束方程 给定一个指派问题时,必须给出效率矩阵(系数矩阵) C=(cij)mxm,且cij0,因此必有最优解 。
0 1 0 0
0 0 0 1
指派问题的解矩阵应具有如下特点: (1)解矩阵(xij)中各行各列的元素之和都是1; (2)可行解(最优解)中恰含有4个非零元,即4个1; (3)可行解(最优解)矩阵中的1恰取于不同行不同列。
人 工作 译成英文 译成日文 译成德文 译成俄文 任务
甲 2 15 13 4 1
定理1 如果从指派问题效率矩阵[cij]的每一行元素中分别 减去(或加上)一个常数ui(被称为该行的位势), 从每一列分别减去(或加上)一个常数vj(称为该列的位势) 得到一个新的效率矩阵[bij], 若其中bij=cij-ui-vj, 则[bij]的最优解的结构等价于[cij]的最优解的结构.
证明:将从[bij]中得到的解 代入分配问题模型的目标函数式,有
从只有一个0元素的行(或列)开始,
给这个0元素加圈,记, 这表示对这行所 代表的人,只有一种任务可指派。 然后划去所在的列(或行)的其他0元素,记作Ø。 这表示这列所代表的任务已指派完,不必再考虑别人
0
6
13
7 6 3 0
0 9 2 0
5 1
0
给只有一个0元素的列(或行)中的0元素加圈, 记, 然后划去所在的行(或列)的其他0元素,记作Ø。 这表示这行所代表的人已指派完, 不必再考虑他做别的任务了。 反复进行上述两步,直到所有的0元素都被圈出和 划掉为止。
数学建模——工作岗位的挑选决策
工作岗位的挑选决策摘要:本文是关于工作岗位的最优选择问题,对于某位即将毕业的学生通过分析其对目标的重要性,建立层次模型来决定其最优决策方案。
一问题重述1 问题的提出一位四年级大学生正从若干个招聘单位中挑选合适的工作岗位,他考虑的主要因素包括发展前景、经济收入、单位信誉、地理位置等,给出决策建议,为其选择一个最满意的单位。
2 问题分析:对于这个问题,我们其实通过主观臆断,可以为该毕业生选择一个我们认为合适的单位,这种方法被称为定性分析。
但这并不一定是最好的,随意性较大,并不具有严格意义上的道理,有时可能还会造成很大的失误。
这时我们可以通过层次分析方法来解决,它把定性分析与定量研究结合在一起,能较好的解决问题。
建立三个层次,目标层、准则层、方案层。
二符号说明1假设三个单位可供选择, 单位p1,单位p2,单位p3;2考虑的4个主要因素,发展前景B1、经济收入B2、单位信誉B3、地理位置B43 随机一致性指标RI,一致性比例CI,4 主特征值maxnumbta,主特征向量W三模型假设1(如a13=1/2表示该位同学对目标B1与B2的重要性之比为1:2)2 假设方案层有三个单位可供选择, 单位p1,单位p2,单位p3,并假设这位学生对方案层的3个因素相对于准则层的每一个因素进行两两比较的结果为针对B1针对B2针对B4四模形的建立建立层次结构目标层O:选择工作单位;准则层C:发展前景B1、经济收入B2、单位信誉B3、地理位置B4;方案层P:单位p1,单位p2,单位p3。
五模形的求解1 构造准则层对目标层次的比较矩阵A,进行一致性检验并求权向量。
得到判断矩阵A=[ 1 1 1/2 21 1 1/4 1/21/2 4 1 1/21/2 2 2 1]通过编写Matlab程序(见附录M文件objecyion.m)可以得到一致性检验结果CR = 0.0974<0.1,这说明判断矩阵A的一致性是可以接受的主特征向量w =(0.2735 0.1510 0.2733 0.3023)’2 构造方案层对准则层各因素的成对比较矩阵,进行一致性检验并求出各相应的权向量可得方案层3个因素针对于准则层每个准则的成对比较矩阵B1=[1 2 11/2 1 11 1 1]B2=[1 1/2 1/22 1 22 1/2 1]B3=[1 1/2 1/32 1 13 1 1]B4=[1 1/2 22 1 31/2 1/3 1]通过编写Matlab程序(见附录b1.m,b2.m,b3.m,b4.m)对于上述每个矩阵进行一致检验并求相应的权向量对B1CR =0.0509<0.1,这说明判断矩阵B1的一致性是可以接受的主特征向量:w1 =(0.4125 0.2600 0.3275)’对B2CR = 0.0546<0.1,这说明判断矩阵B2的一致性是可以接受的主特征向量:W2 =( 0.1958 0.4934 0.3109)’对B3CR =0.0200<0.1,这说明判断矩阵B3的一致性是可以接受的主特征向量:w3 =(0.1692 0.3874 0.4434)’对B4CR =0.0039<0.1,这说明判断矩阵B4的一致性是可以接受的主特征向量:w4 =(0.2969 0.5397 0.1634)’3 求各方案的综合得分用C=(C1,C2,C3)’表示方案层中3个备选方案在目标层中所占的比重,则有(C1,C2,C3)’=(w1,w2,w3,w4)*w用Matlab(见附录inter.m)求解得C=(0.2784 0.4146 0.3071)’即单位P1得分为0.2784,P2得分为0.4146, P3得分为0.3071,故这位大学生应该选择单位P2六模型分析与评价通过建立层次分析模型,利用层次分析法求解,我们实际上得到了一个决策方案的排序结果,综合评价,单位P1得分为0.2784,P2得分为0.4146, P3得分为0.3071,该位大学生应按照这种方式选择,即首先选择p2,其次p3,最后p1,如果该学生在选择p2单位时由于某种原因而没有被聘用,这时他就应该选择p3,最后才选择p1。
指派问题
xij
0或1
i 1,, m
j 1,, m i, j 1,m
分配模型的标准形
如果一个分配模型满足以下三个条件: 1)目标要求为min 2)系数矩阵(cij)为n阶方阵 3)系数矩阵中所有元素cij≥0,且为常数
则称它为分配模型的标准形.
分配模型的标准形的特点:
含有n×n个变量,n+n个约束方程,所有变量均为0-1变量.
0; (2)如果人多事少,增加一些虚拟“事”,虚拟“事”做事的费用系数也取 为0; 3)一个人可做几件事的指派问题 可将某个人化作同样几个“人”接受指派,这几个“人”做同一件事的费用 系数一样。 4)某事一定不能由某人做的指派问题
可将相应的费用系数取为足够大的数M。
指派问题 assignment problem
①从只有一个0元素的行(列)的0元素开始,给这 个0元素加圈,记作◎,这表示对这行所代表的人 ,只 有一种任务可分派。然后划去◎所在列(行)的其它0 元素 ,记作,这表示这列所代表的任务已分派完, 不必再考虑别人了。
②给只有一个0元素的列(行)的元素加圈,记作◎; 然后划去◎所在的行的其它0元素,即作。
工厂1 工厂2 工厂3 工厂4
产品1 58 75 65 82
产品2 69 50 70 55
产品3 180 150 170 200
产品4 260 230 250 280
指派问题 assignment problem
得到两个最优解
1
1
X (1)=
1
,X (2)=
1
1 1
1
1
有两个最优方案
第一种方案:第一个工厂加工产品1,第二工厂加工产品3, 第三个工厂加工产品4,第四个工厂加工产品2;
教师培训课件:数学建模中的指派
在指派问题中,整数规划模型可以确保每个任务都由一个特定的人或机器完成,且每个任务只被分配一次。
非线性规划模型是在线性规划模型的基础上,将目标函数和约束条件扩展为非线性形式。
非线性规划模型适用于解决具有非线性特征的指派问题,如多目标优化、复杂系统设计等。
总结词
遗传算法是一种基于生物进化原理的优化算法,它通过模拟种群的遗传和进化过程来寻找最优解。在求解指派问题时,遗传算法能够处理大规模问题,并且在求解过程中能够自动调整搜索方向,具有一定的鲁棒性和全局搜索能力。
详细描述
06
案例分析
总结词
优化生产流程
详细描述
在生产调度中,指派问题通常涉及如何优化人员或机器的分配,以最小化生产成本、最大化生产效率。通过数学建模,可以找到最优的指派方案,减少生产过程中的浪费和延误。
通过概率和统计的方法,分析随机现象和不确定性问题。
通过线性规划的方法,优化资源配置和决策过程。
03
指派问题概述
01
02
任务和工人的数量可以相等或不等,每个工人完成特定任务的成本是已知的,目标是找到一种任务分配方案,使得总成本最小。
指派问题是指将一组任务分配给一组工人,使得每个工人完成各自任务的总成本最小化的问题。
拓展指派问题的应用领域
加强指派问题与其他优化问题的结合
推广指派问题的理论知识和应用技巧Leabharlann 教师培训课件数学建模中的指派
contents
目录
引言数学建模基础指派问题概述指派问题的数学模型指派问题的求解方法案例分析总结与展望
01
引言
指派问题在数学建模中具有广泛应用,如生产计划、任务分配、路线规划等。
LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究---技能提升篇
工作人员的最优时间分配问题的研究【摘要】由于每个人的工作效率不同,导致不同的分配方式会有不同的时间开销。
本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。
本问题中首先确定第i人做或者不做第j工作将问题定量化,再以全部的工作时间为目标函数,最后使用Lingo对目标函数求最优解得出最终结果。
关键词:最少时间最优解时间分配0-1模型Lingo 线性规划一、问题重述设有人员12个,工作10件,且一人做一个工作,第i人做第j件工作的时间(或费用)c(取值见表1.1),问:如何分派可使工作时间(或总费用)最少。
为ij表1.1 c ij二、问题假设1.每个人都能在自己的花销时间内完成工作。
2.每个人只能做一个工作,即既不能同时做两个工作,也不能在一个工作做完后再做其他工作。
3.每件工作都必须有人做,且只能由一个人独立完成。
4.各个工作之间没有相互联系。
即一个工作的完成与否,不受另一个工作的制约。
三、符号说明z:完成所有工作的总时间x:第i人做第j件工作的时间ij四、问题分析、模型的建立与求解1.问题的分析最少时间(即人力资源成本)是最大利润一个很有参考价值的数据,往往需要利用数学建模的方法对其进行定量的分析,首先确定第i人做或者不做第j工作将问题定量化,再以全部的工作时间为目标函数,最后对目标函数求最优解得出最终结果。
2.模型的建立设:10...3,2,112...3,2,1{.1.0===j i x ij j i j i ,件工作人做第第件工作人不做第第 则工作时间为: ∑∑===121101z i ij j ij x c限定条件为:12...3,2,11101=≤∑=i xj ij ,(即每个人只能做一个工作(假设2),可以小于1是因为人比工作多,允许有人空闲)10...3,2,11121i ==∑=j xij ,(即每个工作都要有人做,且只能由一个人做(假设3))10or x ij =不能完成任务的人:,,,,,,,,,,,,,,,4,122,129,1099989610,77865575110,448474326=x x x x x x x x x x x x x x x x3.模型的求解化为标准形式如下:∑∑===121101z Min i ij j ij x cs.t. 12...3,2,11101=≤∑=i xj ij ,10...3,2,11121i ==∑=j xij ,10or x ij =,,,,,,,,,,,,,,,4,122,129,1099989610,77865575110,448474326 x x x x x x x x x x x x x x x x将上述条件,以及数据写入Lingo 中,编写程序求解。
数学建模模版之指派问题
j 1
n
xij 1, j 1,2, , n
i 1
xij 0 或 1
指派问题是特殊的0 – 1规划,但它有更简便的解法
匈牙利法。
1955年由库恩(W.W. Kuhn)提出,但他引用了匈牙利
数学家康尼格(D. Konig)关于矩阵中零元素定理:
确定或反映指派问题的唯一因素或数据是效益矩阵:
c11 c12 c1n
2. 最优解定理
如果效益矩阵 B (bij )nn中有n个独立0元素bij ((i, j) J ), 则
1, (i, j) J xij
0, (i, j) J
为指派问题的最优指派决策.
二、匈牙利法的步骤
Step 1. 将C零元素化,得到矩阵B,使B中每行每列中均有 零元素 ① C中的各行减该行最小元素; ② C中的各列减该列最小元素;
选第3行标 0
选第5行标 0
选第1行标 0
选第2行标 0
选第4行标 0 ,标 0 有
5个元素. 最优解
0 1 0 0 0 0 0 1 0 0 x (xij ) 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1
三. 求最大化指派问题 (max cx) 1. 可以将之最小化 min - cx . 2. 为方便起见,可令
z* 5 4 9 11 29
Step 3. 如有0 的元素个数小于n,则当前方案不是最优的, 需调整,先选最少直线覆盖所有0元素。
①对没有 0 的行打√号; ②对已打√号的行中有 0 元素的列打√号; ③对打√号的列中含有 0元素的行打√号; ④重复②和③,直至得不出新的打√号的行列为止;
⑤ 对于没有√的行画横线,所有打√号的列画竖线, 产生覆盖所有零元素的最少直线,直线数目应等于
指派问题
0 30 0 32
6 17 17 0 0 0 0 0 0 0 45 45
第四步等价于第2、 行减去 行减去5,同时第1列加上 列加上5得到的结果 第四步等价于第 、3行减去 ,同时第 列加上 得到的结果
指派问题 assignment problem
指派问题
Page 10
指派问题
Page 5
解指派问题的匈牙利算法 匈牙利法的条件是:问题求最小值、 匈牙利法的条件是:问题求最小值、人数与工作数相等及效率 非负 定理1】如果从分配问题效率矩阵[c 的每一行元素中分别减 【定理 】如果从分配问题效率矩阵 ij]的每一行元素中分别减 或加上)一个常数u 被称为该行的位势), ),从每一列分 去(或加上)一个常数 i(被称为该行的位势),从每一列分 别减去(或加上)一个常数v 称为该列的位势), ),得到一个 别减去(或加上)一个常数 j(称为该列的位势),得到一个 新的效率矩阵[b ,其中b 的最优解等价于[c 新的效率矩阵 ij],其中 ij=cij-ui-vj,则[bij]的最优解等价于 ij] 则 的最优解等价于 的最优解,这里c 均非负. 的最优解,这里 ij、bij均非负. 【证】
1 【解】设 xij = 0
分配第i人做j工作时 不分配第i人做j工作时
指派问题 assignment problem
指派问题
Page 3
数学模型为: 数学模型为:
max Z = 85 x11 + 92 x12 + 73 x13 + 90 x14 + 95 x 21 + 87 x 22 + + 78 x 23 + 95 x 24 + 82 x31 + 83 x32 + 79 x33 + 90 x34 + + 86 x 41 + 90 x 42 + 80 x 43 + 88 x 44
指派问题详解
第一章绪论1、指派问题的背景及意义指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的一件事,如何安排人员使得总费用最少?若考虑每个职工对工作的效率(如熟练程度等),怎样安排会使总效率达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值.虽然指派问题可以用0-1规划问题来解,设X(I,J)是0-1变量, 用X(I,J)=1表示第I个人做第J件事, X(I,J)=0表示第I个人不做第J件事. 设非负矩阵C(I,J)表示第I个人做第J件事的费用,则问题可以写成LINGO程序SETS:PERSON/1..N/;WORK/1..N/;WEIGHT(PERSON, WORK): C, X ;ENDSETSDATA:W=…ENDDATAMIN=@ SUM(WEIGHT: C*X);@FOR(PERSON(I): @SUM(WORK(J):X(I,J))=1);@FOR(WORK(J): @SUM(PERSONM(I):X(I,J))=1);@FOR(WEIGHT: @BIN(X));其中2*N个约束条件是线性相关的, 可以去掉任意一个而得到线性无关条件.但是由于有N^2个0-1变量, 当N很大时,用完全枚举法解题几乎是不可能的. 而已有的0-1规划都是用隐枚举法做的,计算量较大. 对于指派问题这种特殊的0-1规划,有一个有效的方法——匈牙利算法,是1955年W. W. Kuhn利用匈牙利数学家D.König的二部图G的最大匹配的大小等于G的最小顶点覆盖的大小的定理提出的一种算法,这种算法是多项式算法,计算量为O(N3).匈牙利算法的基本原理是基于以下两个定理.定理1设C=(C ij)n×n是指派问题的效益矩阵,若将C中的任一行(或任一列)减去该行(或该列)中的最小元素,得到新的效率矩阵C’,则C’对应的新的指派问题与原指派问题有相同的最优解.证明:设X’是最优解, 即@SUM(WEIGHT: C*X’)<= @SUM(WEIGHT: C*X), 则当C中任一行或任一列减去该行或该列的最小数m时,得到的阵C’还是非负矩阵, 且@SUM(WEIGHT: C’*X’)<=@SUM(WEIGHT: C*X)-m=@SUM(WEIGHT: C’*X)定理2效率矩阵C中独立的0元素的最多个数等于覆盖所有0元素的最少直线数. 当独立零元素的个数等于矩阵的阶数时就得到最优解.3、理论基础定义:图G的一个匹配M是图G中不相交的边的集合. 属于匹配M中的边的所有端点称为被该匹配M饱和, 其他的顶点称为M-未饱和的. 如果一个匹配M 饱和了图G的所有顶点,则称该匹配M是一个完全匹配. 可见顶点数是奇数的图没有完全匹配. 一个匹配M称为是极大匹配, 如果它不能再扩张成更大的一个匹配. 一个匹配称为是最大匹配, 如果不存在比它更大的匹配.定义:对于一个匹配M, 图G的一个M-交替路是图G中的边交替地在M中及不在M中的边组成. 从M-未饱和点出发到M-为饱和点结束的M-交替路称为一条M-增广路. 把M-增广路中不是M中的边改成新的匹配M’中的边, 把M-增广路中M中的边不作为M’中的边, 在M-增广路以外的M中的边仍作为M’中的边, 则M’的大小比M大1. 故名M-增广路. 因此最大匹配M不存在M-增广路.定义:若图G和图H有相同的顶点集V, 我们称G和H的对称差,记为G∆H,是一个以V为顶点集的图, 但其边集是G和H的边集的对称差: E(G∆H)=E(G) ∆E(H)=E(G)⋂E(H)-(E(G)⋃E(H))=(E(G)-E(H)) ⋂ (E(H)-E(G))定理: (Berge, 1957) 图G的一个匹配M是最大匹配,当且仅当G中没有M-增广路.证明: 我们只要证明, G中没有M-增广路时, M是最大匹配. 用反证法, 若有一个比M大的匹配M’. 令G的一个子图F, E(F)=M∆M’, 因M和M’都是匹配, F的顶点的最大度数至多是2, 从而F由不相交的路和环组成, 它们的边交替地来自M和M’, 于是F中的环的长度是偶数. 由于M’比M大, F中存在一个连通分支,其中M’中的边数大于M中的边数. 这个分支只能是起始和终止的边都在M’中. 而这就是一条G中的M-增广路. 与假设矛盾. 证毕.定理(Hall, 1935)设G是一个二部图, X和Y是其二分集, 则存在匹配M 饱和X当且仅当对于X中的任意子集S, Y 中与S中的点相邻的点组成的集合N(S)中元素的个数大于等于集合S中元素的个数.证明:必要性是显然的. 对于充分性, 假设 |N(S)|≥|S|, ∀S⊂X, 考虑G的一个最大匹配M, 我们用反证法,若M没有饱和X, 我们来找一个集合S不满足假设即可. 设u∈X是一个M-未饱和顶点, 令S⊂X和T⊂Y分别是从u出发的M-交替路上相应的点.我们来证明M中的一些边是T到S-u上的一个匹配. 因为不存在M-增广路,T中的每个点是M-饱和的. 这意味着T中的点通过M中的边到达S中的一个顶点. 另外, S-u中的每个顶点是从T中的一个顶点通过M中的一条边到达的. 因此M 中的这些边建立了T与S-u的一个双射, 即|T|=|S-u|. 这就证明了M中的这些边是T到S-u上的一个匹配,从而意味着T⊂N(S), 实际上, 我们可证明T=N(S). 这是因为连接S和Y-T中的点y的边是不属于M的, 因为不然的话, 就有一条到达y的M-增广路, 与y∉T矛盾. 故|N(S)|=|T|=|S-u|=|S|-1<|S|, 与假设矛盾.当X与Y的集合的大小相同时的Hall定理称为婚姻问题,是由Frobenius(1917)证明的.推论: k-正则的二部图(X的每一点和Y的每一点相关联的二部图)(k>0)存在完全匹配.证明: 设二分集是X,Y. 分别计算端点在X和端点在Y的边的个数, 得k|X|=k|Y|, 即|X|=|Y|.因此只要证明Hall的条件成立即可. 使X饱和的匹配就是完全匹配. 考虑∀S⊂X, 设连接S与N(S)有m条边, 由G的正则性, m=k|S|. 因这m条边是与N(S)相关联的, m≤k|N(S)|, 即k|S|≤ k|N(S)|, 即|N(S)|≥|S|. 这就是Hall的条件.用求M-增广路的方法来得到最大匹配是很费时的. 我们来给出一个对偶最优化问题.定义:图G的一个顶点覆盖是集合S⊂V(G), 使得G的每条边至少有一个端点在S中. 我们称S中的一个顶点覆盖一些边, 若这个顶点是这些边的公共端点.因为匹配的任意两条边不能被同一个顶点覆盖, 所以顶点覆盖的大小不小于匹配的大小: |S|≥|M|. 所以当|S|=|M| 时就同时得到了最大的匹配和最小的顶点覆盖.定理(König [1931],Egerváry[1931])二部图G的最大匹配的大小等于G的最小顶点覆盖的大小.证明: 设M是G的任一个匹配, 对应的二分集是X,Y. 设U是一个最小的顶点覆盖, 则|U|≥|M|, 我们只要由顶点覆盖U来构造一个大小等于|U|的匹配即完成证明. 令R=U⋃X, T=U⋃Y, 令H, H’分别是由顶点集R⋂(Y-T)及T⋂(X-R)诱导的G的子图. 我们应用Hall的定理来证明H有一个R到Y-T中的完全匹配,H’有一个从T到X-R中的完全匹配. 再因这两个子图是不相交的, 这两个匹配合起来就是G中的一个大小为|U|的匹配.因为R⋂T是G的一个覆盖, Y-T与X-R之间没有边相联接. 假设S⊂R, 考虑在H中S的邻接顶点集N(S), N(S) ⊂Y-T. 如果|N(S)|<|S|, 因为N(S)覆盖了不被T覆盖的与S相关联所有边, 我们可以把N(S) 代替S作为U中的顶点覆盖而得到一个更小的顶点覆盖. U的最小性意味着H中Hall条件成立. 对H'作类似的讨论得到余下的匹配. 证毕.最大匹配的增广路算法输入: 一个二分集为X,Y的二部图G,一个G中的匹配M, X中的M-未饱和顶点的集合U.思路: 从U出发探求M-交替路,令S⊂X,T⊂Y为这些路到达过的顶点集. 标记S中不能再扩张的顶点. 对于每个x∈(S⋂T)-U, 记录在M-增广路上位于x前的点.初始化: S=U,T=∅.叠代: 若S中没有未标记过的顶点, 结束并报告T⋂(X-S)是最小顶点覆盖而M是最大匹配.不然, 选取S中未标记的点x, 考虑每个y∈N(x)且xy∉M, 若y是M-未饱和的, 则得到一个更大的匹配,它是把xy加入原来的匹配M得到的,将x从S中去除. 不然, y是由M中的一条边wy相连接的, w∈X, 把y加入T(也有可能y本来就在T中), 把w加入S. w未标记, 记录w前的点是y. 对所有关联到x的边进行这样的探索后, 标记x. 再次叠代.定理: 增广路算法可以得到一个相同大小的匹配和顶点覆盖.证明: 考虑这个算法终止的情况, 即标记了S中所有的点. 我们要证明R=T⋂(X-S)是大小为|M|的一个顶点覆盖.从U出发的M-交替路只能通过M中的边进入X中的顶点, 所以S-U中的每个顶点通过M与T中的顶点匹配, 并且没有M中的边连接S和Y-T. 一旦一条M-交替路到达x∈S, 可以继续沿着任何未饱和的边进入T, 由于算法是对于x的所有邻域顶点进行探索才终止的,所以从S 到Y-T 没有未饱和边. 从而S 到Y-T 没有边, 证明了R 是一个顶点覆盖.因为算法是找不到M-增广路时终止, T 的每一个顶点是饱和的. 这意味着每个顶点y ∈T 是通过M 匹配与S 中的一个顶点. 由于U ⊂S, X-S 的每个顶点是饱和的, 故M 中与X-S 相关联的边不和T 中的点相连接. 即它们与是饱和T 的边不同的, 这样我们可见M 至少有|T|+|X-S|条边. 因不存在一个比顶点覆盖更大的匹配, 所以有|M|=|T|+|X-S|=|R|.设二部图G 的二分集X 和Y 都是n 个元素的点集, 在其边j i y x 上带有非负的权ij w , 对于G 的一个匹配M, M 上各边的权和记作w(M).定义: 一个n ×n 矩阵A 的一个横截(transversal)是A 中的n 个位置, 使得在每行每列中有且只有一个位置(有的文献中把横截化为独立零元素的位置来表示).定义: 指派问题就是给定一个图G=n n K ,(完全二部图, 即每个X 中的顶点和Y 中的每个顶点有边相连接的二部图)的边的权矩阵A, 求A 的一个横截, 使得这个横截上位置的权和最大. 这是最大带权匹配问题的矩阵形式.定义: 对于图G=n n K ,,设其二分集是X ,Y ,给定G 的边j i y x 的n ×n 权矩阵W={ij w }.考虑G 的子图v u G ,, 设其二分集是U ⊂X ,V ⊂Y, 边集是E(v u G ,), 对于子图v u G ,的带权覆盖u,v 是一组非负实数{i u },{j v },使得ij j i w v u ≥+,)(,v u j i G E y x ∈∀, v u G ,的带权覆盖的费用是∑∑+j i v u 记为C(u,v), 最小带权覆盖问题就是求一个具有最小费用C(u,v)的带权覆盖u,v.引理: 若M ⊂E(v u G ,)是一个带权二部子图v u G ,的最大匹配, 且u, v 是v u G ,的带权覆盖, 则C(u,v)≥w(M). 而且, C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀. 这时M 是v u G ,最大带权匹配, u,v 是v u G ,的最小带权覆盖, 定义这时的v u G ,为G 的相等子图(equality subgraph ).证明: 因为匹配M 中的边是不相交的, 由带权覆盖的定义就得C(u,v)≥w(M). 而且C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀成立. 因一般地有C(u,v)≥w(M).所以当C(u,v)=w(M)时. 意味着没有一个匹配的权比C(u,v)大, 也没有一个覆盖的费用比w(M)小.Kuhn 得到一个指派问题的算法,命名为匈牙利算法, 为的是将荣耀归于匈牙利数学家König 和Egerv áry.指派问题的匈牙利算法(Kuhn[1955], Munkres[1957]):输入G=n n K ,的边的权矩阵A, 及G 的二分集X,Y.初始化: 任取一个可行的带权覆盖,例如)(max ij ji w u =,0=j v ,建立G 的相等子图v u G ,, 其二分集是X, Y ’⊂Y, 求v u G ,的一个最大匹配M. 这个匹配的权和w(M)=C(u,v), M 的带权覆盖是具有最小费用的.叠代: 如M 是G 的一个完全匹配, 停止叠代, 输出最大带权匹配M. 不然, 令U 是X 中的M-未饱和顶点. 令S ⊂X, T ⊂Y 是从U 中顶点出发的M-交替路到达的顶点的集合.令},:min{T Y y S x w v u j i ij j i -∈∈-+=ε.对于所有的S x i ∈, 将i u 减少ε, 对于所有的T y j ∈,将j v 增加ε,形成新的带权覆盖u ’,v ’及对应的新的相等子图v u G '',.如果这个新的相等子图含有M-增广路, 求它的最大匹配M ’, 不然不改变M 再进行叠代.定理: 匈牙利算法能找到一个最大权匹配和一个最小费用覆盖.证明: 算法由一个覆盖开始,算法的每个叠代产生一个覆盖,仅在相等子图有一个完全的匹配为止。
数学建模pythonmatlab编程(指派问题)
数学建模pythonmatlab编程(指派问题)指派授课问题现有A、B、C、D四门课程,需由甲、⼄、丙、丁四⼈讲授,并且规定:每⼈只讲且必须讲1门课;每门课必须且只需1⼈讲。
四⼈分别讲每门课的费⽤⽰于表中:A B C D课费⽤⼈甲21097⼄154148丙13141611丁415139带包python代码:from scipy.optimize import linear_sum_assignmentimport numpy as np#cost =np.array([[4,1,3],[2,0,5],[3,2,2]])cost =np.array([[2,10,9,7],[15,4,14,8],[13,14,16,11],[4,15,13,9]])row_ind,col_ind=linear_sum_assignment(cost)print(row_ind)#开销矩阵对应的⾏索引print(col_ind)#对应⾏索引的最优指派的列索引print(cost[row_ind,col_ind])#提取每个⾏索引的最优指派列索引所在的元素,形成数组print(cost[row_ind,col_ind].sum())#数组求和#输出指派矩阵p = np.zeros((4,4))p[row_ind,col_ind]=1print(p)暴⼒python代码:# -*- coding: utf-8 -*-import numpy as npimport copyc=[2,10,9,7,15,4,14,8,13,14,16,11,4,15,13 ,9]c = np.array(c)c = c.reshape((4,4))all_p=[]class obj:def _init_(self):self.p=[]self.cost=0for i in range(4):for j in range(4):if j==i:continuefor u in range(4):if u==i or u==j :continuefor v in range(4):if v==i or v==j or v==u:continuep = np.zeros((4,4))p[0,i]=p[1,j]=p[2,u]=p[3,v]=1ans = obj()ans.p = copy.deepcopy(p)ans.cost = sum(sum(c*ans.p))all_p.append(ans)all_p.sort(key=lambda ans: ans.cost, reverse=False) print(all_p[0].p)print(all_p[0].cost)我写的matlab:clearC=[2 10 9 715 4 14 813 14 16 114 15 13 9];A = perms(1:4);%perm显⽰1,2,3,4四个数的全排列L = length(A)best=999best_mat=[]for i=1:La = zeros(4,4);b = A(i,:);%遍历全排列中的每⼀种c = 1:4;a(sub2ind(size(a), b, c))=1;%a矩阵指定的位置赋值为1s = sum(sum(a.*C));%求出费⽤和if best>s %挑出最⼤的best_mat=a;best=s;endendbest_matbest⽼师的matlab代码1:clearn=4;A=perms(1:n);G=size(A); %24 4 size(A,1) 24 size(A,2) 24n0=G(1); %24B=[2,10,9,7;15,4,14,8;13,14,16,11;4,15,13,9];for n1=1:n0%C为第n1中排列情况下,费⽤的4个取值C(1)=B(1,A(n1,1));C(2)=B(2,A(n1,2));C(3)=B(3,A(n1,3));C(4)=B(4,A(n1,4));%D{n1}表⽰第n1种情况下的4个取值D{n1}=[C(1),C(2),C(3),C(4)];s(n1)=sum(D{n1});end%找到最⼩的,返回a为⾏左边,b为纵坐标,a=1,b=9[a,b]=find(s==min(s));K=A(b,:)根据⽼师的代码改进我的代码:clearC=[2 10 9 715 4 14 813 14 16 114 15 13 9];A = perms(1:4);%perm显⽰1,2,3,4四个数的全排列L = length(A)for i=1:La = zeros(4,4);b = A(i,:);%遍历全排列中的每⼀种c = 1:4;a(sub2ind(size(a), b, c))=1;%a矩阵指定的位置赋值为1D{i}=a;S(i)=sum(sum(a.*C));%求出费⽤和end[a,b]=find(S==min(S))D{b}S(b)⽼师的matlab代码2:随机⽣成,不是很好,看运⽓clearA=[2 15 13 4];B=[10 4 14 15];C=[9 14 16 13];D=[7 8 11 9];Y=zeros(1,1000);s=64;x=zeros(1,4);for i= 1:1000X=randperm(4);Y(i)=A(X(1))+B(X(2))+C(X(3))+D(X(4));if Y(i)<ss=Y(i);x=X;endends,x⽹上常见的matlab代码:%适⽤于任意n阶系数矩阵clear all;C=[2 10 9 7,15 4 14 8,13 14 16 11,4 15 13 9,];%效率矩阵Cn=size(C,1);%计算C的⾏列数nC=C(:);%计算⽬标函数系数,将矩阵C按列排成⼀个列向量即可。
数学建模论文(分配问题)
公平席位的分配系别:机电工程系模具班学号:1号摘要:分配问题是日常生活中经常遇到的问题,它涉及到如何将有限的人力或其他资源以“完整的部分”分配到下属部门或各项不同任务中。
分配问题涉及的内容十分广泛,例如:大到召开全国人民代表大会,小到某学校召开学生代表大会,均涉及到将代表名额分配到各个下属部门的问题。
代表名额的分配(亦称为席位分配问题)是数学在人类政治生活中的一个重要应用,应归属于政治模型。
而当代表的人数在总和没有发生变化的情况下,所占比例却发生了变化时,一个如何分配才能使分配公平的问题就摆在了我们的面前。
因此,我们要通过建立数学模型来确定一种能够使分配公平的方法来分配关键字:理想化原则; 整数规划; 席位公平分配问题的提出:某学院有3个系共200名学生,其中甲系100人,乙系60人,丙系40人,现要选出20名学生代表组成学生会。
如果按学生人数的比例分配席位,那么甲乙丙系分别占10、6、4个席位,这当然没有什么问题(即公平)。
但是若按学生人数的比例分配的席位数不是整数,就会带来一些麻烦。
比如甲系103人,乙系63人,丙系34人,怎么分?问题重述学院的最初人数见下表,此系设20个席位代表。
甲乙丙总人数1006040200学生人数比例:100/200 60/200 40/200按比例分配方法:分配人数=学生人数比例初按比例分配席位:甲乙丙共10 6 4 20若出现学生转系情况:甲乙丙总人数103 63 34 200学生人数比例:103/200 63/200 34/200按例分配方法:比例分配出现最小数时,先按整数分配席位,余下的按小数的大小分配席位按比例分配席位:甲乙丙10.815 6.615 3.57按比例分配席位,丙系却缺少一席的情况,按比例分配席位的方法有缺陷,试建立更合理的分配方法.模型假设分配席位的情况单位人数席位数A单位X n mB单位Y n。
m。
若公平分配,则会出现的情况应当是m=m1,即X/n=Y/m1当m>m。
数学建模,获奖论文,工作指派问题
河南理工大学2014年数学建模竞赛论文答卷编号(竞赛组委会填写):题目编号:( F )论文题目:工作的安排参赛队员信息(必填):答卷编号(竞赛组委会填写):评阅情况(学校评阅专家填写):评阅1.评阅2.评阅3.工作的安排摘要:工作指派问题是日常生活中常见的一类问题。
本文所要研究就是在效率与成本的背景下,如何安排每个人员的工作分别达到以下三个要求:1、使得总的工作效率最大。
2、使得总的成本最低。
3、兼顾工作效率和成本,优化工作安排方案。
对于问题一,该问题属于工作指派问题,要求使工作效率最大。
为了得到最优的安排方案,我们采用0-1规划模型,引入0-1变量,即其中一人负责某一项工作记作1,否则为0,然后与之对应的效率相乘,然后把所有的工作安排情况这样处理后,再求和作为目标函数。
此外我们对该问题进行了如下约束:因为六个人刚好六份工作,所以每个人只能被安排一份工作,而且每份工作只允许一人来完成。
最后在模型求解中我们应用lingo软件编程使目标函数值最大化,根据此时对应的0-1变量的所有值,最终得到最优安排方案。
对于问题二,要求的方案使工作成本最低。
该问题与问题一相似,只是求解的是目标函数的最小值,为此我们建立了成本最小化模型,该模型同样应用了0-1规划方法,然后用与问题一中相似的方法建立目标函数,然后应用lingo软件编程使目标函数值最小,最终得到使成本最小的相应安排方案。
对于问题三,该问题兼顾效率与成本,属于多目标规划。
首先,数据标准化处理。
给出的效率成本数据属于两个不同性质的指标,两个指标之间存在着不可公度性,而且两项的数值整体大小水平不一样,会有大数起主导作用的影响,如果不对两个指标的数据进行标准化,就会得到错误的结果,为此我们首先采用极值差方法,用matlab编程对两项指标数据进行标准化。
经过极差变换后,两项指标值均在0和1之间。
对于此问题的多目标规划解决,我们采用理想点方法将多目标规划转化为单目标规划,建立了偏离理想点距离模型。
自-学年论文-指派问题分析与实现
学年论文题目:指派问题的算法分析与实现学生:学号:2011120101院(系):理学院专业:数学与应用数学指导教师:于鹏2013 年 12月 05日陕西科技大学学年论文任务书理学院数学与应用数学专业数学111 班级学生:题目:指派问题的算法分析与实现课题的意义及培养目标:指派问题多是求项目的工时最少,而很多情况下人们并不关心在指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。
然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。
在指派问题的背景、描述中充分理解该问题,运用匈牙利算法实现指派问题,实现指派问题在实际问题中的运用。
课题的主要任务(需附有技术指标分析):要求学生通过查阅相关的书籍、资料文献,首先了解匈牙利法,掌握一些基本的性质,掌握指派问题的最新科研成果以及问题。
本课题旨在研究指派问题的应用举例,利用指派问题的定义及其性质来求解中文说明书翻译的最优化模型。
学生:日期:指导教师:日期:教研室主任:日期:指派问题的算法分析与实现数学111班:指导教师:于鹏(陕西科技大学理学院陕西西安 710021)摘要:在指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。
然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。
这类问题研究的是n个人执行n项任务,执行每项任务的人数以及总的指派人项数均有限制,要求最优指派。
在指派问题的背景、描述中充分理解该问题,运用匈牙利算法实现指派问题,实现指派问题在实际问题中的运用。
关键词:指派问题,匈牙利解法Algorithm analysis and realization of the assignment problemABSTRACT: Seeking project assignment problem is the least amount of time, and in many cases, people don't care how much project in general, the enterprise, the company's operation and management, the manager always hopes to best dispatch personnel to exert its maximum working efficiency, to reduce costs and improve efficiency. However, if there is no scientific method is difficult to achieve optimal management, thus we introduced the assignment problem. This kind of problem is the study of the n individuals perform n task, perform each task and the number of total assigned item number are limited, the optimal assignment. In the description of the background of the assignment problem, fully understand the problem, using the Hungary algorithm assignment problem, assignment problem in the application of practical problems.KEYWORDS: Assignment problem,Hungarian method,指派问题(Assignment problem):在满足特定指派要求条件下,使指派方案总体效果最佳。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理工大学2014年数学建模竞赛论文答卷编号(竞赛组委会填写):题目编号:( F )论文题目:工作的安排参赛队员信息(必填):答卷编号(竞赛组委会填写):评阅情况(学校评阅专家填写):评阅1.评阅2.评阅3.工作的安排摘要:工作指派问题是日常生活中常见的一类问题。
本文所要研究就是在效率与成本的背景下,如何安排每个人员的工作分别达到以下三个要求:1、使得总的工作效率最大。
2、使得总的成本最低。
3、兼顾工作效率和成本,优化工作安排方案。
对于问题一,该问题属于工作指派问题,要求使工作效率最大。
为了得到最优的安排方案,我们采用0-1规划模型,引入0-1变量,即其中一人负责某一项工作记作1,否则为0,然后与之对应的效率相乘,然后把所有的工作安排情况这样处理后,再求和作为目标函数。
此外我们对该问题进行了如下约束:因为六个人刚好六份工作,所以每个人只能被安排一份工作,而且每份工作只允许一人来完成。
最后在模型求解中我们应用lingo软件编程使目标函数值最大化,根据此时对应的0-1变量的所有值,最终得到最优安排方案。
对于问题二,要求的方案使工作成本最低。
该问题与问题一相似,只是求解的是目标函数的最小值,为此我们建立了成本最小化模型,该模型同样应用了0-1规划方法,然后用与问题一中相似的方法建立目标函数,然后应用lingo软件编程使目标函数值最小,最终得到使成本最小的相应安排方案。
对于问题三,该问题兼顾效率与成本,属于多目标规划。
首先,数据标准化处理。
给出的效率成本数据属于两个不同性质的指标,两个指标之间存在着不可公度性,而且两项的数值整体大小水平不一样,会有大数起主导作用的影响,如果不对两个指标的数据进行标准化,就会得到错误的结果,为此我们首先采用极值差方法,用matlab编程对两项指标数据进行标准化。
经过极差变换后,两项指标值均在0和1之间。
对于此问题的多目标规划解决,我们采用理想点方法将多目标规划转化为单目标规划,建立了偏离理想点距离模型。
所谓的理想点就是只考虑效率时得到的最大效率值为横坐标,与以只考虑成本时得到的最小成本值为纵坐标组成的点。
然后我们再求出任意工作安排方案对应的效率值与成本值组成的点。
最后求出这两点之间的距离表达式,得到我们要求的目标函数。
最后,在与问题一问题二相同的约束条件下,我们采用lingo编程使目标函数逐渐向理想点逼近(但永远达不到理想点),即:使目标函数达到最小值时,此时对应的工作指派方案在问题三情况下是最佳方案。
关键词:0-1规划;数据标准化;多目标规划;偏离理想点距离模型;lingo一、问题重述已知有6个人,可以做6项工作,每个人做每项工作的效率和所用的成本如表中所示。
表1:每个人做每项工作的效率表2:每个人做每项工作的成本建立数学模型回答下面的问题:1、如何安排每个人的工作,使得总的工作效率最大。
2、如何安排每个人的工作,使得总的成本最低。
3、如何兼顾工作效率和成本,优化工作安排方案。
二、问题分析对于问题一,要安排每个人的工作,使得总的工作效率最大。
因为题目中的效率已经经过量化,所以要想反应效率的高低我们也可以通过数值大小来反应工作安排后的效率高低。
然而每个人的工作安排有很多种情况,为了简化问题,采用0-1规划模型,引入0-1变量,我们把其中一个人负责某项工作记作1,否则记作0,然后我们便可以把每个人工作安排的所有情况的效率与相应的0-1变量乘积的求和,便得到效率目标函数,而且考虑到lingo软件的强大优化求解能力,于是便可以借助lingo编程来求解实现目标函数的最大化,即工作效率综合的最大化,根据此时对应的0-1变量的所有值得到的工作安排方案就是最佳的。
对于问题二,要求安排每个人的工作,使得总的成本最低,该问题与问题一相似,同样可以应用0-1规划模型,求出目标函数表达式然后应用lingo软件编程来求解目标函数的最小值,便可得到最优工作分派方案。
问题三,要兼顾效率与成本这两个指标,即让效率尽量最大的同时让成本也最小,来得到最优的分派方案。
由于两个指标的性质不同,同时整体大小水平不一,所以第一步需要进行数据标准化,标准化方法有很多种,这里我们采用极值差方法对两项指标进行处理,经过极差变换后,两项指标值均在0和1之间。
数据标准化处理处理后,要兼顾效率与成本,则效率和成本就都会偏离问题一、问题二中的最优值,如果所给的工作安排方案能使两者距各自最优值的偏移量最小化则就意味着效率和成本都得到了兼顾,而且相对最优。
为此,我们便引入了理想点法,让任意安排方案得到的效率值与成本值组成的点距离理想点的距离最小化,而得到最小值对应的工作分配方案,此过程的求解我们同样可以借助lingo软件编程来解决,最终能够实现问题三的要求。
三、问题假设1.所有人对每个工作的效率与成本是定值,即不受外界影响;2.所有人都服从相应的安排;3.效率和成本重要程度相同;4.只考虑成本与效率两个指标。
四、符号说明五、模型的建立与求解5.1问题一的模型建立与求解5.1.1模型的建立首先我们根据题目建立效率矩阵),(j i efficient⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=664523242312133321212241452346200153),(j i efficient),(j i efficient 表示第i 人做第j 个工作的效率。
然后我们建立反应第i 人是否负责第j 个工作的0-1变量:),(j i k项工作个人被安排第第项工作个人不被安排第第 10),(j i j i j i k ⎩⎨⎧===由题目可知,六个人负责六项工作,所以每个人只能负责一项工作,而且每个工作只能由一个人来完成。
于是便有下面的约束条件:1,2,3..6;i 1),(61==∑=j j i k且1,2,3..6;j 1),( 61==∑=i j i k则目标函数为总的效率表达式总η如下:∑∑===6161总),(*),(i jj i k j i efficient η 综上便可得到最终效率模型如下:max ∑∑===6161总),(*),(i jj i k j i efficient η ⎪⎪⎪⎩⎪⎪⎪⎨⎧=======∑∑==1,2...6j , 1,2...6i 1,或0),(1,2...6j ,1),(1,2...6i ,1),(.6161j i k j i k j i k t s i j5.1.2 模型求解这是一个0-1优化问题,lingo 软件具有强大的优化问题解决能力,所以我们通过lingo 软件编程求解出最佳分配方案,根据程序运行结果我们最终得到的最优分配方案如下:(lingo 程序见附录,运算结果见附录):表1 最大效率工作分配方案而且此时的最大效率值为26。
5.2问题二的模型建立与求解 5.2.1成本最小化模型的建立由题目中给定的成本数据我们建立成本矩阵),(cos j i t 具体如下:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=13118105847472549755252441029113571240184),(cos j i t同样有反应第i 人是否做第j 个工作的0-1变量:),(j i k项工作个人被安排第第项工作个人不被安排第第 10),(j i j i j i k ⎩⎨⎧===而且六个人负责六项工作,所以每个人只能负责一项工作,而且每个工作只能由一个人来完成。
于是便有下面的约束条件:1,2,3..6;i 1),(61==∑=j j i k且1,2,3..6;j 1),( 61==∑=i j i k则最终得到只考虑成本总成本的目标函数总cos t 如下:∑∑===6161总),(*),(cos cos i jj i k j i t t于是得到完整的成本最小化模型如下:min ∑∑===6161总),(*),(cos cos i jj i k j i t t ⎪⎪⎪⎩⎪⎪⎪⎨⎧=======∑∑==1,2...6j ,1,2...6i 1或0),(6...2 ,1j 1),(1,2...6i ,1),(..6161j i k j i k j i k t s i j 5.2.2、模型的求解与问题一类似的解法,应用lingo 软件编程求解使目标函数值最小(即:使成本最小)根据程序运行结果(程序及运行结果见附录,),我们得到的最佳分配方案如下:表2 最低成本分配工作方式5.3问题三的模型建立与求解 5.3.1多目标规划模型的建立第一步:进行数据标准化。
由于该问题要求兼顾效率与成本,而这两项指标却不是同性质的,而且成本数据都偏大一些,为了防止成本数据影响最终结果,需要对两项数据进行标准化,标准化方法有很多种,这里我们采用极值差方法对两项指标进行处理。
具体如下:首先对),(j i efficient用极值差方法进行标准化后得),(j i t reefficien :⎪⎪⎭⎫⎝⎛==--=≤≤≤≤≤≤≤≤≤≤≤≤6..3,2,16..3,2,1 )),((min )),((max )),((min ),(),(616161616161j i j i efficient j i efficient j i efficient j i efficient j i t reefficien j i j i j i 通过matlab 编程我们可以得到),(j i t reefficien 矩阵,此时),(j i t reefficien 矩阵的值均在0和1之间,最优值为1,最劣值为0。
然后对),(cos j i t 指标数据矩阵用极值差法标准化后得到),(cos j i t re :⎪⎪⎭⎫⎝⎛==--=≤≤≤≤≤≤≤≤≤≤≤≤6..3,2,16..3,2,1 )),((cos min )),((cos max )),((cos min ),(cos ),(cos 616161616161j i j i t j i t j i t j i t j i t re j i j i j i同样可以用matlab 编程得到),(cos j i t re 矩阵且值均在0和1之间),(j i efficient 和),(cos j i t matlab 标准化程序及结果见附录。
第二步:多目标规划模型的建立由第一问及第二问的基础我们可以得出两个规划目标函数如下: 首先,有总效率的目标函数:∑∑===6161),(*),(i jj i k j i t reefficien x )1( 其中x 表示任意一种工作分配方案得到的效率值。
同时有总成本的目标函数:∑∑===6161),(*),(cos i jj i k j i t re y )2( 其中y 表示任意一种工作分配方案得到的成本值。