工作人员的最优时间分配问题的研究LINGO线性规划数学建模
Lingo软件在求解数学优化问题的使用技巧

Lingo 软件在求解数学优化问题1.某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下:设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配备多少名司机和乘务人员?从第一班开始排,试建立线性模型。
分析与求解:注意在每一时间段里上班的司机和乘务人员中,既包括在该时间段内开始时报到的人员,还包括在上一时间段工作的人员。
因为每一时间段只有四个小时,而每个司乘人员却要连续工作八个小时。
因此每班的人员应理解为该班次相应时间段开始时报到的人员。
设i x 为第i 班应报到的人员(6,,2,1 =i ),则应配备人员总数为:∑==61i i x Z按所需人数最少的要求,可得到线性模型如下:∑==61min i i x Z161223344556112660706050..203060,,,0x x x x x x x x s t x x x x x x x x +≥⎧⎪+≥⎪⎪+≥⎪+≥⎪⎨+≥⎪⎪+≥⎪≥⎪⎪≥⎩ LINGO 程序如下:MODEL:min=x1+x2+x3+x4+x5+x6;x1+x6>=60;x1+x2>=70;x2+x3>=60;x3+x4>=50;x4+x5>=20;x5+x6>=30;x1>=60;END得到的解为:x1=60,x2=10,x3=50,x4=0,x5=30,x6=0;配备的司机和乘务人员最少为150人。
2 某地区有三个农场共用一条灌渠,每个农场的可灌溉地及分配到的最大用水量如下表:各农场均可种植甜菜、棉花和高粱三种作物,各种作物的用水量、净收益及国家规定三个农场达成协议,他们的播种面积与其可灌溉面积相等,而各种农场种何种作物并无限制。
问如何制定各农场种植计划才能在上述限制条件下,使本地区的三个农场的总净收益最大。
设农场1种植的甜菜、棉花和高粱分别为111,,z y x 亩,农场2种植的甜菜、棉花和高粱分别为222,,z y x 亩,农场3种植的甜菜、棉花和高粱分别为333,,z y x 亩。
最新工作人员的优时间分配问题的研究LINGO线规划数学建模

工作人员的优时间分配问题的研究L I N G O 线规划数学建模工作人员的最优时间分配问题的研究【摘要】对于一个事业单位,人力资源部门的合理分配对于一个事业单位的收益是至关重要的。
众所周知,由于每个人的工作效率不尽不同,不同的分配方式所带来的收益也不同。
本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。
本问题中首先确定第i人做或者不做第j工作将问题定量化,根据不同的需要建立不同的目标函数。
对于一个项目而言越早完成越好,对人力资源部门来说所花费的人力越少越好。
本文利用运筹管理学的思想建立的0-1规划模型,最后使用Lingo对目标函数求最优解得出最终结果。
关键词:最少时间运筹管理学最优解时间分配 0-1模型 Lingo 线性规划一、问题重述最优人力资源安排问题在企事业单位,人力资源部门经常要根据当前情况把人员分配给即将开始的项目。
一般地,对项目而言,越早完成越好;而对人力资源部门而言,在该项目上所花费的人力越少越好。
现有一个项目,需要把一份中文资料翻译成英语、法语、日语、德语和俄语。
已知A、B、C、D、E、F和G七个人翻译该资料所需要花费的时间如表1所示,且这七个人均表示可参加该项目。
【注意:为了译文的连贯性,不允许两人或两人以上做同一种译文的翻译工作。
一个人在同一时间只能做一种译文的翻译工作。
】表1. 七人五语种翻译用时表(单位:天)试通过建立数学模型(而非枚举法)回答下述问题。
问题1. 应该如何进行人力资源的安排使得该项目尽早完成?问题2. 在问题1中若规定每人最多承担一种译文的翻译工作,试求相应的最优人力资源安排方案。
问题3. 接上级通知,为了保证翻译的质量,需要对翻译之后的译文进行审校且规定同一个语种的审校人和翻译者不能为同一人。
显然,在这种新的要求下,该项目完成当且仅当所有的译文均审校完。
已知这七人均表示可以参加审校工作,他们审校这五种译文的用时如表2所示。
【注意:对于每个语种,只有当该语种的译文完全完成之后才能进行该语种译文的审校工作。
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2

附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。
根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2目标函数:设每天获利为z元。
x1桶牛奶可生产3x1公斤A1,获利24*3x,x2桶牛奶可生产4*x2公1斤A2,获利16*4x2,故z=72x1+64x2约束条件:原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即x1+x2≤50劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即12x1+8x2≤480设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即3x1≤100≥0非负约束:x1、x2均不能为负值,即x1≥0,x2综上所述可得max z=72x1+64x2s.t.x1+x2≤5012x1+8x2≤4803x1≤100x1≥0,x2≥0显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
LINGO求解线性规划用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。
数学建模排班问题讲解学习

数学建模排班问题值班人员安排问题摘要某部队后勤值班室准备聘请4名兼职值班员和2名兼职带班员值班两种职位,相应的报酬也不同。
为使部队的支出最少,现需合理的设计出一张人员的值班时间表,在安排兼职值班员的过程中,需要考虑多方面的的问题与因素.因此,一个合理有效的兼职值班时间表的安排是非常有实际意义的.本次设计在综合了解一定的数学模型、以及LINGO软件中一些知识的基础上,以线性规划理论为基础,对实际例子进行一定的分析后,建立合理的整数规划模型.然后,利用LINGO软件求得结果.给出一个最优化的值班计划,使后勤值班室总支付的报酬为最少.关键词:值班时间表,LINGO软件,模型,报酬一.问题重述某部队后勤值班室准备聘请4名兼职值班员(代号为1,2,3,4)和2名兼职带班员(代号5,6)值班,已知每人从周一到周日每天最多可以安排的值班时间及每人每小时值班的报酬如下表.每人每天可值班的时间和报酬该值班室每天需要值班的时间为早上8:00至晚上22:00,值班时间内须有一名值班员值班.要求兼职值班员每周值班不少于10h,兼职带班员每周值班不少于8h.每名值班员每周值班不超过4次,每次值班不少于2h,每天安排值班的值班员不超过3人,且其中必须有一名兼职带班员值班.试为该值班室安排一张值班人员表,使总支付的报酬为最少.二.模型的假设(1)兼职员在可安排的时间内无特殊情况发生均可按时值班;(2)值班室需要值班的时间稳定不变;(3)值班员的兼职工资稳定不变.三.符号的说明ijx表示第i个值班员在星期j是否值班,如果值班,则ijx=1,否则ijx=0。
ija表示第i个值班员在星期j的值班时间。
ik表示第i个值班员值班一个小时所能够获取的报酬,ijA表示第i个值班员在星期j的值班时间的上限。
四.问题设计本题是在通过安排不同人员的值班时间来是部队支付的报酬最少,在给定的约束条件和每人每天的工作时间和报酬来设计。
由于知道员工每天的工作时间和报酬,这样就可确定目标函数,再通过给定的约束条件来解答,从而得出最优的值班时间表。
关于人员时间安排问题的数学建模

关于人员时间安排问题的数学建模本题涉及公司对人员进行时间安排的问题,安排的策略既不能浪费人力资源,同时又使他们在自己的工作时间内发挥应有的效益。
目的是使最省人力、最省开支的目的,达到公司事半功倍的效果。
我们采用的是对题目进行各时间段落实,采用列出方程组,解出最优解的方案。
建立的关于人员时间安排问题的模型S=(X+Y)×800+(Z+W)×900,最后对各未知数之间的关系的分析、解剖,分析得出的结果:S=38000,X=10,Y=15,Z=20,W=0。
此模型涉及到线形方程的最优解,反映了此人员时间安排及工程预算、工程测量等工作安排的实际问题,对其他各领域方面的深入研究也有一定的指导意义。
一.(1)问题的提出某公司的营业时间是上午8点到21点,服务人员中途需要1小时的吃饭和休息时间。
每人的工作时间为8小时,上午8点到17点的工作人员月工资为800元,中午12点到21点工作的人员的工资为900元。
为保证营业时间内部有人值班,公司安排四个班次,其班次休息私见安排都有所安排。
问如何安排服务人员既满足需求又使公司所付工资总数最少。
(2)模型假设1)假设各班次人员可以任意安排;2)不考虑服务人员的个人时间问题;(3)符号说明X为班次是1班的工作人员的总人数;Y为班次是2班的工作人员的总人数;Z为班次是3班的工作人员的总人数;W为班次是4班的工作人员的总人数。
(4)模型分析1)对时间区间8:00—10:00工作人员的安排,班1和班2都在值班时间内,所以班1和班2人员都可胜任,X+Y≥20。
2)对时间区间10:00—12:00工作人员的安排,班1和班2都在值班时间内,所以班1和班2人员都可胜任,X+Y≥25。
3)对时间区间12:00—14:00工作人员的安排,班1和班2、班3、班4都有部分工作时间在此区间内,班1:13:00—14:00区间上能值班,班2:12:00—13:00区间上可以值班,此区间属于班3和班4工作时间内,所以班1、班2、班3、班4都能担任此区间的值班工作。
数学建模排班问题

运用运筹学和lingo对值班问题的初步探究作者:张冬梅颜丽金鑫摘要本文主要从运筹学中的对偶问题求解方法、0-1模型以及lingo线性规划问题求解方法,对值班问题进行合理规划,此次建立的模型最大的特点就是不孤道而行,这样在解题过程中实现了互补不足作用,在具体的解题过程中,我们所采用两种解题方法,运筹学与lingo的解题方法,以便最终达到较为完善的方案。
最终求出符合题目要求的解答,经过结果分析与验证,所得结果完全正确。
问题重述某大学有四名大学生与两名研究生,对其进行值班安排,使得每天学生工作总时间14个小时,大学生每周值班时间不少于10小时,研究生每周不少于8小时,每个人每周值班不超过4次,每次不超过2小时,每天至多有三个人值班,并且每天至少有一名研究生。
制定一个合理的值班表,使得支付的薪酬最少。
其他相关数据参考下表:问题分析及符号说明在研究此问题中,若直接采用变量进行求解,但是会涉及到42(6行7列)个变量,运算量较大,不过我们可以观察表格可以得到,有16个变量是一直为零的,我们可以将这些变量进行剔除,余下16个变量,实际解答中虽计算量依旧很大,不过相比之下,简单些许。
此问题的最终目的是制定合理的值班表,使得所支付报酬最小,首先列出目标函数,其次根据已知条件列出线性相关不等式组,其中对于是否会安排学生值班,我们用0-1模型表示。
在模型的求解过程中运用到运筹学中的对偶问题、线性规划、单纯形法来制定可实施性方案,并用matlab及lingo软件进行编程求解。
模型假设1.假设每位同学均能准时到达实验室,并且换班时间忽略不计;2.假设每位同学的可工作时间不具有时刻性,也就是说每天可值班时间可以分配到任意时刻;3.假设每位同学工作时长均为整数。
模型建立目标函数:约束条件:媒介函数(b ij):当=0时,0;当≠0时,1;模型求解法一:运用运筹学中线性规划对偶问题求解方法首先,观察上述约束条件,重要约束条件为前5个,后3个约束条件作为最终解的检验条件,这样易于将两类变量进行分离,又不是合理性,不违背科学性。
数学建模排班问题

值班人员安排问题摘要某部队后勤值班室准备聘请4名兼职值班员和2名兼职带班员值班两种职位,相应的报酬也不同。
为使部队的支出最少,现需合理的设计出一张人员的值班时间表,在安排兼职值班员的过程中,需要考虑多方面的的问题与因素.因此,一个合理有效的兼职值班时间表的安排是非常有实际意义的.本次设计在综合了解一定的数学模型、以及LINGO软件中一些知识的基础上,以线性规划理论为基础,对实际例子进行一定的分析后,建立合理的整数规划模型.然后,利用LINGO软件求得结果.给出一个最优化的值班计划,使后勤值班室总支付的报酬为最少. 关键词:值班时间表,LINGO软件,模型,报酬一.问题重述某部队后勤值班室准备聘请4名兼职值班员(代号为1,2,3,4)和2名兼职带班员(代号5,6)值班,已知每人从周一到周日每天最多可以安排的值班时间及每人每小时值班的报酬如下表.每人每天可值班的时间和报酬该值班室每天需要值班的时间为早上8:00至晚上22:00,值班时间内须有一名值班员值班.要求兼职值班员每周值班不少于10h,兼职带班员每周值班不少于8h.每名值班员每周值班不超过4次,每次值班不少于2h,每天安排值班的值班员不超过3人,且其中必须有一名兼职带班员值班.试为该值班室安排一张值班人员表,使总支付的报酬为最少.二.模型的假设(1)兼职员在可安排的时间内无特殊情况发生均可按时值班;(2)值班室需要值班的时间稳定不变;(3)值班员的兼职工资稳定不变.三.符号的说明ijx表示第i个值班员在星期j是否值班,如果值班,则ijx=1,否则ijx=0。
ija表示第i个值班员在星期j的值班时间。
ik表示第i个值班员值班一个小时所能够获取的报酬,ijA表示第i个值班员在星期j的值班时间的上限。
四.问题设计本题是在通过安排不同人员的值班时间来是部队支付的报酬最少,在给定的约束条件和每人每天的工作时间和报酬来设计。
由于知道员工每天的工作时间和报酬,这样就可确定目标函数,再通过给定的约束条件来解答,从而得出最优的值班时间表。
用LINGO求解线性规划问题

实验1 用LINGO求解线性规划问题LINGO使用简介LINGO软件是美国的LINDO系统公司(Lindo System Inc)开发的一套用于求解最优化问题的软件包.LINGO除了能用于求解线性规划和二次规划外,还可以用于非线性规划求解以及一些线性和非线性方程(组)的求解.LINGO软件的最大特色在于它允许优化模型中的决策变量为整数,而且执行速度快.LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果,这里简单介绍LINGO的使用方法.LINGO可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络优化和排队论模型中的最优化问题等.一个LINGO程序一般会包含集合段、数据输入段、优化目标和约束段、初始段和数据预处理段等部分,每一部分有其独特的作用和语法规则,读者可以通过查阅相关的参考书或者LINGO的HELP文件详细了解,这里就不展开介绍了.LINGO的主要功能特色为:既能求解线性规划问题,也有较强的求解非线性规划问题的能力;输入模型简练直观;运算速度快、计算能力强;内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述大规模的优化模型;将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;并且能方便地与Excel、数据库等其他软件交换数据.LINGO的语法规定:(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;(2)每个语句必须以分号“;”结束,每行可以有许多语句,语句可以跨行;(3)变量名称必须以字母(A~Z)开头,由字母、数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写;(4)可以给语句加上标号,例如[OBJ] MAX=200*X1+300*X2;(5)以惊叹号“!”开头,以分号“;”结束的语句是注释语句;(6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;(7)LINGO模型以语句“MODEL:”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略.实验目的1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用LINGO求解;2.掌握灵敏度分析以及资源的影子价格的相关分析方法.实验数据与内容问题1.1某工厂在计划期内要安排生产A、B两种产品,已知生产单位产品所需设备台时及对甲、乙两种原材料的消耗,有关数据如表1.1.问:应如何安排生产计划,使工厂获利最大?.问题1.2 某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g ,矿物质3g ,维生素8mg ,该公司能买到5种不同的饲料,每种饲料1kg 所含各种营养成分和成本如表1.2所示,如果每个小动物每周食用饲料不超过52kg ,求既能满足动物生长需要,又使总成本最低的饲料配方.实验指导问题1.1设计划生产两种产品分别为,则建立线性规划问题数学模型B A ,21,x x ⎪⎪⎩⎪⎪⎨⎧≥≤≤≤++=0,12416482.32max 21212121x x x x x x t s x x S 在LINGO 的MODEL 窗口内输入如下模型:model :max =2*x1+3*x2;x1+2*x2<=8;4*x1<=16;4*x2<=12;end选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message ”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO 的Help ).改正错误以后再求解,如果语法通过,LINGO 用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status ”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close 关闭窗口,屏幕上出现标题为“Solution Report ”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果.求解结果:Global optimal solution found at iteration: 5Objective value: 14.00000Variable Value Reduced CostX1 4.000000 0.000000X2 2.000000 0.000000Row Slack or Surplus Dual Price1 14.00000 1.0000002 0.000000 1.5000003 0.000000 0.12500004 4.000000 0.000000该报告说明:运行5步找到全局最优解,目标函数值为14,变量值分别为.“Reduced Cost ”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变量的Reduced Cost 值等于零).“Row ”是输入模型中的行号,目标函数是第一行;“Slack or Surplus ”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“124,2==x x ≤”的不等式,右边减左边的差值为Slack (松弛),对于“”的不等式,左边减右边的差值为Surplus (剩余),当约束条件两边相等时,松弛或剩余的值等于零.“Dual Price ”的意思是对偶价格(或称为影子价格),上述报告中Row2的松弛值为0,表明生产甲产品4单位、乙产品2单位,所需设备8台时已经饱和,对偶价格1.5的含义是:如果设备增加1台时,能使目标函数值增加1.5.报告中Row4的松弛值为4,表明生产甲产品4单位、乙产品2单位,所需原材料乙8公斤还剩余4公斤,因此增加原材料乙不会使目标函数值增加,所以对偶价格为0.≥问题1.2设需要饲料分别为 kg ,则建立线性规划数学模型:54321,,,,A A A A A 54321,,,,x x x x x 123451234512345123451234512345min 0.20.70.40.30.50.320.6 1.8600.10.050.020.20.0530.050.10.020.20.088.52,,,,0S x x x x x x x x x x x x x x x x x x x x s t x x x x x x x x x x =++++++++≥⎧⎪++++⎪⎪≥++++⎨⎪++++≤⎪≥⎪⎩≥ 在LINGO 的MODEL 窗口内输入如下模型:Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5;0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60;0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3;0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8;x1+x2+x3+x4+x5<52;求解输出结果如下:Global optimal solution found at iteration: 4Objective value: 22.40000Variable Value Reduced CostX1 0.000000 0.7000000X2 12.00000 0.000000X3 0.000000 0.6166667X4 30.00000 0.000000X5 10.00000 0.000000Row Slack or Surplus Dual Price1 22.40000 -1.0000002 0.000000 -0.58333333 4.100000 0.0000004 0.000000 -4.1666675 0.000000 0.8833333因此,每周每个动物的配料为饲料、、分别为12、30和10kg ,合计为52,可使得饲养成本达到最小,最小成本为22.4元;不选用饲料和的原因是因为这两种饲料的价格太高了,没有竞争力.“Reduced Cost ”分别等于0.7和0.617,说明当这两种饲料的价格分别降低0.7元和0.62元以上时,不仅选用这两种饲料而且使得饲养成本降低.从“Slack or Surplus”可以看出,蛋白质和维生素刚达到最低标准,矿物质超过最低标准4.12A 4A 5A kg kg kg 1A 3A g ;从“Dual Price”可以得到降低标准蛋白质1单位可使饲养成本降低0.583元,降低标准维生素1单位可使饲养成本降低4.167元,但降低矿物质的标准不会降低饲养成本,如果动物的进食量减少,就必须选取精一些的饲料但要增加成本,大约进食量降低1可使得饲养成本增加0.88元.kg 对于目标函数系数和约束条件右端常数项的灵敏度分析,可以通过LINGO 软件求解的灵敏度分析给出.如果要看灵敏度分析结果,必须激活灵敏度计算功能才会在求解时给出灵敏度分析结果,默认情况下这项功能是关闭的.想要激活它,必须运行LINGO|Options …命令,选择Gengral Solver ,在Dual Computation 列表框中,选择Prices and Ranges 选项并确定.对于例1.1问题进行灵敏度分析,结果如下:以下是灵敏度分析的结果Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 2.000000 INFINITY 0.5000000X2 3.000000 1.000000 3.000000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 8.000000 2.000000 4.0000003 16.00000 16.00000 8.0000004 12.00000 INFINITY 4.000000对于例1.2问题进行灵敏度分析,结果如下:Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 0.2000000 INFINITY 0.7000000X2 0.7000000 INFINITY 0.1358974X3 0.4000000 INFINITY 0.6166667X4 0.3000000 1.400000 1.000000X5 0.5000000 0.1247059 INFINITYRighthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 60.00000 4.800000 4.8000003 3.000000 4.100000 INFINITY4 8.000000 0.3428571 0.48000005 52.00000 1.846154 1.411765思考题某投资公司拟制定今后5年的投资计划,初步考虑下面四个投资项目:项目A:从第1年到第4年每年年初可以投资,于次年年末收回成本,并可获利润15%;项目B:第3年年初可以投资,到第5年年末可以收回成本,并获得利润25%,但为了保证足够的资金流动,规定该项目的投资金额上限为不超过总金额的40%;项目C:第2年年初可以投资,到第5年年末可以收回成本,并获得利润40%,但公司规定该项目的最大投资金额不超过总金额的30%;项目D:5年内每年年初可以购买公债,于当年年末可以归还本金,并获利息6%.该公司现有投资金额100万元,请帮助该公司制定这些项目每年的投资计划,使公司到第5年年末核算这5年投资的收益率达到最大.建立线性规划问题的数学模型,并用LINGO求解.。
数模lingo应用-分配问题

例7.7 分配问题(指派问题,Assignment Problem )这是个给n 个人分配n 项工作以获得某个最高总效果的问题。
第i 个人完成第j 项工作 需要平均时间c ij 。
要求给每个人分配一项工作,并要求分配完这些工作,以使完成全部任 务的总时间为最小。
该问题可表示如下:minij ni ij x c ∑=1s.t. ∑==⋯=n i ij x 1n;,1,2,j ,1∑==⋯=n j ij x 1n;,1,2,i ,1 i ij x n;,1,2,j ,1,0⋯==显然,此问题可看作是运输问题的特殊情况。
可将此问题看作具有n 个源和n 个汇的问 题,每个源有1 单位的可获量,而每个汇有1 单位的需要量。
从表面看,这问题要求用整数规划以保证xij 能取0 或1。
然而,幸运的是,此问题是运输问题的特例,因此即使不限制xij取0 或1 ,最优解也将取0 或1。
如果把婚姻看作分配问题,丹茨证明,整数性质证明一夫一妻会带来最美满幸福的生活!显然,分配问题可以作为线性规划问题来求解,尽管模型可 能很大。
例如,给100 人分配100 项工作将使所得的模型具有10000 个变量。
这时,如采用专门算法效果会更好。
时间复杂度为O(n3) 的匈牙利算法便是好选择,这是由Kuhu (1955) 提出的。
现举一例: 若某单位指派工人做某工作的完成时间表如下:问应如何指派任务,使完成任何的总时间最少?model:!7 个工人,7 个工作的分配问题;sets:workers/w1..w7/;jobs/j1..j7/;links(workers,jobs): cost,volume;endsets!目标函数;min=@sum(links: cost*volume);!每个工人只能有一份工作;@for(workers(I):@sum(jobs(J): volume(I,J))=1;);!每份工作只能有一个工人;@for(jobs(J):@sum(workers(I): volume(I,J))=1;);data:cost= 6 2 6 7 4 2 54 95 3 8 5 85 2 1 9 7 4 37 6 7 3 9 2 72 3 9 5 7 2 65 5 2 2 8 11 49 2 3 12 4 5 10;enddataend计算的部分结果为:Global optimal solution found at iteration: 14Objective value: 18.00000Variable Value Reduced Cost COST( W1, J1) 6.000000 0.000000 COST( W1, J2) 2.000000 0.000000 COST( W1, J3) 6.000000 0.000000 COST( W1, J4) 7.000000 0.000000 COST( W1, J5) 4.000000 0.000000 COST( W1, J6) 2.000000 0.000000 COST( W1, J7) 5.000000 0.000000 COST( W2, J1) 4.000000 0.000000 COST( W2, J2) 9.000000 0.000000 COST( W2, J3) 5.000000 0.000000 COST( W2, J4) 3.000000 0.000000COST( W2, J6) 5.000000 0.000000 COST( W2, J7) 8.000000 0.000000 COST( W3, J1) 5.000000 0.000000 COST( W3, J2) 2.000000 0.000000 COST( W3, J3) 1.000000 0.000000 COST( W3, J4) 9.000000 0.000000 COST( W3, J5) 7.000000 0.000000 COST( W3, J6) 4.000000 0.000000 COST( W3, J7) 3.000000 0.000000 COST( W4, J1) 7.000000 0.000000 COST( W4, J2) 6.000000 0.000000 COST( W4, J3) 7.000000 0.000000 COST( W4, J4) 3.000000 0.000000 COST( W4, J5) 9.000000 0.000000 COST( W4, J6) 2.000000 0.000000 COST( W4, J7) 7.000000 0.000000 COST( W5, J1) 2.000000 0.000000 COST( W5, J2) 3.000000 0.000000 COST( W5, J3) 9.000000 0.000000 COST( W5, J4) 5.000000 0.000000 COST( W5, J5) 7.000000 0.000000 COST( W5, J6) 2.000000 0.000000 COST( W5, J7) 6.000000 0.000000 COST( W6, J1) 5.000000 0.000000 COST( W6, J2) 5.000000 0.000000 COST( W6, J3) 2.000000 0.000000 COST( W6, J4) 2.000000 0.000000 COST( W6, J5) 8.000000 0.000000 COST( W6, J6) 11.00000 0.000000 COST( W6, J7) 4.000000 0.000000 COST( W7, J1) 9.000000 0.000000 COST( W7, J2) 2.000000 0.000000 COST( W7, J3) 3.000000 0.000000 COST( W7, J4) 12.00000 0.000000 COST( W7, J5) 4.000000 0.000000 COST( W7, J6) 5.000000 0.000000 COST( W7, J7) 10.00000 0.000000 VOLUME( W1, J1) 0.000000 4.000000 VOLUME( W1, J2) 0.000000 0.000000 VOLUME( W1, J3) 0.000000 3.000000 VOLUME( W1, J4) 0.000000 4.000000 VOLUME( W1, J5) 1.000000 0.000000 VOLUME( W1, J6) 0.000000 0.000000VOLUME( W2, J1) 0.000000 2.000000 VOLUME( W2, J2) 0.000000 7.000000 VOLUME( W2, J3) 0.000000 2.000000 VOLUME( W2, J4) 1.000000 0.000000 VOLUME( W2, J5) 0.000000 4.000000 VOLUME( W2, J6) 0.000000 3.000000 VOLUME( W2, J7) 0.000000 3.000000 VOLUME( W3, J1) 0.000000 5.000000 VOLUME( W3, J2) 0.000000 2.000000 VOLUME( W3, J3) 0.000000 0.000000 VOLUME( W3, J4) 0.000000 8.000000 VOLUME( W3, J5) 0.000000 5.000000 VOLUME( W3, J6) 0.000000 4.000000 VOLUME( W3, J7) 1.000000 0.000000 VOLUME( W4, J1) 0.000000 5.000000 VOLUME( W4, J2) 0.000000 4.000000 VOLUME( W4, J3) 0.000000 4.000000 VOLUME( W4, J4) 0.000000 0.000000 VOLUME( W4, J5) 0.000000 5.000000 VOLUME( W4, J6) 1.000000 0.000000 VOLUME( W4, J7) 0.000000 2.000000 VOLUME( W5, J1) 1.000000 0.000000 VOLUME( W5, J2) 0.000000 1.000000 VOLUME( W5, J3) 0.000000 6.000000 VOLUME( W5, J4) 0.000000 2.000000 VOLUME( W5, J5) 0.000000 3.000000 VOLUME( W5, J6) 0.000000 0.000000 VOLUME( W5, J7) 0.000000 1.000000 VOLUME( W6, J1) 0.000000 4.000000 VOLUME( W6, J2) 0.000000 4.000000 VOLUME( W6, J3) 1.000000 0.000000 VOLUME( W6, J4) 0.000000 0.000000 VOLUME( W6, J5) 0.000000 5.000000 VOLUME( W6, J6) 0.000000 10.00000 VOLUME( W6, J7) 0.000000 0.000000 VOLUME( W7, J1) 0.000000 7.000000 VOLUME( W7, J2) 1.000000 0.000000 VOLUME( W7, J3) 0.000000 0.000000 VOLUME( W7, J4) 0.000000 9.000000 VOLUME( W7, J5) 0.000000 0.000000 VOLUME( W7, J6) 0.000000 3.000000 VOLUME( W7, J7) 0.000000 5.000000Row Slack or Surplus Dual Price1 18.00000 -1.0000002 0.000000 -5.0000003 0.000000 -5.0000004 0.000000 -3.0000005 0.000000 -5.0000006 0.000000 -5.0000007 0.000000 -4.0000008 0.000000 -5.0000009 0.000000 3.00000010 0.000000 3.00000011 0.000000 2.00000012 0.000000 2.00000013 0.000000 1.00000014 0.000000 3.00000015 0.000000 0.000000 00000。
【精品】线性规划案例

1。
人力资源分配问题例1.某昼夜服务的公交线路每天各时间段内所需司机和乘务人员人数如表1所示。
设司机和乘务人员分别在各时间段开始时上班,并连续工作8小时,问该公交线路应怎样安排司机和乘务人员,既能满足工作需要,又使配备司机和乘务人员的人数最少?解:设x i表示第i班次时开始上班的司机和乘务人员数,这样我们建立如下的数学模型。
目标函数:Min x1+x2+x3+x4+x5+x6约束条件:s.t.x1+x6≥60x1+x2≥70x2+x3≥60x3+x4≥50x4+x5≥20x5+x6≥30x1,x2,x3,x4,x5,x6≥0运用lingo求解:Objectivevalue:150。
0000ariableValueReducedCostX160。
000000。
000000X210.000000.000000X350。
000000。
000000X40.0000000.000000X530.000000.000000X60.0000000.000000例2.一家中型的百货商场,它对售货员的需求经过统计分析如下表所示。
为了保证售货人员充分休息,售货人员每周工作5天,休息两天,并要求休息的两天是连续的。
问应该如何安排售货人员的作息,既满足工作需要,又使配备的售货人员的人数最少?解:设x i(i=1,2,…,7)表示星期一至日开始休息的人数,这样我们建立如下的数学模型。
目标函数:Min x1+x2+x3+x4+x5+x6+x7约束条件:s.t.x1+x2+x3+x4+x5≥28x2+x3+x4+x5+x6≥15x3+x4+x5+x6+x7≥24x4+x5+x6+x7+x1≥25x5+x6+x7+x1+x2≥19x6+x7+x1+x2+x3≥31x7+x1+x2+x3+x4≥28x1,x2,x3,x4,x5,x6,x7≥0lingo求解Objectivevalue:36。
00000VariableValueReducedCostX112.000000。
Lingo软件编程求解规划问题数学建模

例2——军队供给问题
用Lingo软件求解
结果
Lingo软件
Lingo 是一个可以简洁地阐述、解决和分析复杂问题的简便工具。
其特点是程序执行速度很快,易于输入、修改、求解和分析一个数 学规划问题。
LINGO模型的构成:4个段
• 集合段(SETS ENDSETS) • 目标与约束段 • 数据段(DATA ENDDATA) • 初始段(INIT ENDINIT)
用Lingo软件求解
求 z 72 x1 64 x2的最大值?
x1 x2 50
12
x1 8x2 480 3x1 100
x1 0
x2 0
Lingo结果中其它项的意思! 更多信息
例 1 求 f = 2ex sin x 在 0<x<8 中的最小值与最大值
max=@sin(x)*2*@exp(-x); x<8; x>0;
获利24元/公斤 获利16元/公斤
每天: 50桶牛奶 时间480小时 至多加工100公斤A1
例1——加工奶制品的生产计划
1桶牛 奶或
12小时 8小时
3公斤A1 4公斤A2
每天:50桶牛奶 时间480小时
获利24元/公斤 获利16元/公斤 至多加工100公斤A1
决策变量 目标函数
约束条件
x1桶牛奶生产A1 获利 24×3x1 每天获利 原料供应 劳动时间 加工能力 非负约束
x2桶牛奶生产A2 获利 16×4 x2
Max z 72 x1 64 x2
x1 x2 50
12 x1 8x2 480 3x1 100
x1, x2 0
线性规 划模型 (LP)
例1——加工奶制品的生产计划
x1 x2 50
数学建模“教你如何进行人员分配”的问题

如何进行人员分配“A公司”是一家从事建筑工程的公司,现有41个专业技术人员,其结构和相应的工资水平分布如表1所示:表1 人员结构及工资情况目前,公司承接4个工程项目,其中2项是现场施工,分别在A地和B地,主要工作在现场完成;另外2项是工程设计,分别在C地和D地,主要工作在办公室完成。
由于4个项目来源于不同客户,并且工作的难易程度不同,因此,各项目的合同对有关技术人员的收费标准不同,具体情况如表2:表2 不同项目和各种人员的收费标准为了保证工程质量,各项目中必须保证专业人员结构符合客户的要求,具体情况如表3所示:表3 各项目对专业技术人员结构的要求说明:(1)项目D,由于技术要求较高,人员配备必须是助理工程师以上,技术员不能参加;(2)高级工程师相对稀少,而且是保证质量的关键,因此,各项目客户对高级工程师的配备要求不能少于一定数目的限制。
各项目对其他专业人员也有不同的限制或要求;(3)各项目客户对总人数都有限制;(4)由于C,D两项目是在办公室完成,所以每人每天有50元的管理费开支;由于收费是按人工计算的,而且4个项目总共同时最多需要的人数是10+16+11+18=55,多于公司现有人数41,应如何合理地分配现有的人员力量,使公司每天的直接受益最大?2011年高教社杯全国大学生数学建模竞赛选拔赛题目如何进行人员分配摘要人力资源管理是一个公司进行人力资源分配的重要工作,合理地安排人力资源,能够为企业带来最大的经济效益。
公司不只要对现有的人员进行任务分配,还要使公司的人力资源结构保持一个科学的比例。
本模型旨在为A建筑公司提供一个良好的人员分配方案,达到公司获利最大的目的,以及怎样在以后的人员招聘中使人力资源结构保持一个良好的比例。
在公司现有的情况下,通过分析各种影响因素,排除掉一些不必要的干扰因素,运用整数线性规划和分支定界法的知识建立数学模型,并使用LINGO软件进行编程求解,得出公司人员分配的最佳方案。
用lingo求解数学规划模型实例

1, 第i个部队分配第j种装备 设 xij 0, 第i个部队不分配第j种装备
目标函数: max aij xij
i 1 j1
9
9
xij 1 i 1 9 s .t . : x 1 ij j1 xij=0或1
( i, j=1,2,…,9)
9
9
EQ1 EQ2 EQ3 EQ4 EQ5 EQ6 EQ7 EQ8 EQ9 AR1 0 0 0 0 0 0 0 0 1 AR2 0 0 0 1 0 0 0 0 0 AR3 0 0 0 0 0 1 0 0 0 AR4 0 0 0 0 1 0 0 0 0 AR5 1 0 0 0 0 0 0 0 0 AR6 0 0 0 0 0 0 1 0 0 AR7 0 0 0 0 0 0 0 1 0 AR8 0 0 1 0 0 0 0 0 0 AR9 0 1 0 0 0 0 0 0 0 装备 部队 1 2 3 4 5 6 7 8 9 A 0.24 0.31 0.31 0.49 0.63 0.45 0.45 0.32 0.33 B 0.42 0.04 0.24 0.06 0.15 0.02 0.07 0.24 0.56 C 0.15 0.60 0.08 0.28 0.31 0.37 0.26 0.58 0.41 D 0.46 0.69 0.14 0.13 0.60 0.14 0.15 0.64 0.13 E 0.34 0.11 0.54 0.65 0.06 0.69 0.18 0.43 0.65 F 0.69 0.24 0.61 0.41 0.41 0.29 0.43 0.45 0.07 G 0.03 0.45 0.37 0.55 0.47 0.61 0.55 0.09 0.22 H 0.57 0.35 0.48 0.25 0.19 0.18 0.66 0.05 0.46 I 0.69 0.27 0.34 0.36 0.31 0.46 0.08 0.20 0.11
数学建模:运用Lindolingo软件求解线性规划

数学建模:运用L i n d o l i n g o软件求解线性规划-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN1、实验内容:对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo 对模型进行求解。
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.数学建模论文运用lindo/lingo软件求解线性规划运用lindo/lingo软件求解线性规划一、摘要本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。
首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。
然后,对问题进行分析,根据题目的要求,建立合适的数学模型。
最后,运用lindo/lingo软件求出题目的解。
【关键词】最优解 lindo/lingo软件第二、问题的重述某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资。
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。
第三、模型的基本假设1、每一箱饮料消耗的人力、物力相同。
2、每个人的能力相等。
3、生产设备对生产没有影响。
第四、符号说明1、x.....甲饮料2、y.....乙饮料3、z.....增加的原材料第五、问题分析根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。
最优工作安排问题 数学建模

B最优工作安排问题摘要:最优工作安排在当今这个劳动力不再廉价的社会至关重要。
本文主要研究最优工作安排问题,可视为运筹学中的指派问题。
对于指派问题,分别通过建立0-1整体线性规划模型,多目标线性规划模型以及二次0-1整数线性规划模型加以解决。
考虑到一个人可在不同的时间做不同的工作,因此我们引入“0-1变量”x表示是ij否指派第i个人去完成第j项工作。
对于多目标问题,为解决不同目标之间产生的矛盾,将多目标问题转化为单目标问题,例如:在第三问中,采用极大极小法。
通过翻译题目要求来建立目标函数和约束条件,并利用Lingo软件编写程序,对问题求解。
最后对所得到的最优解进行检验,以提高答案的科学性与可靠性。
关键字:0-1模型最优解多目标线性规划 Lingo一、背景分析1.1 问题重述现有五件工作甲、乙、丙、丁、戊要交给A、B、C、D、E、F和G七个人来完成。
完成这个工作所需要花费的时间如表1所示,且这七个人均表示可参加该项目。
【注意:为了工作的连贯性,不允许两人或两人以上做同一种工作。
一个人在同一时间只能做一种工作。
】问题1. 应该如何进行工人的安排使得这五件工作能尽早完成?问题2. 在问题1中若规定每人最多承担一种工作,试求相应的最优人力安排方案。
问题 3. 接上级通知,为了保证工作的质量,需要对完成工作之后进行检查且规定同一个人不能即做这件工作又检查这件工作。
显然,在这种新的要求下,这五件工作完成当且仅当所有的工作检查完。
已知这七人均表示可以参加检查工作,他们检查这五种工作的用时如表2所示。
【注意:对于每个工作,只有当该工作完全完成之后才能进行检查工作。
为了检查的连贯性,不允许两人或两人以上检查同一种工作。
一个人在同一时间只能检查一种工作。
】问:应该如何进行人力的安排使得该五项工作尽早完成?试求相应的最优人力安排方案。
1.2 问题分析整个问题均可视为运筹学中的指派问题。
对于问题一,为了使得这五项工作能尽早完成,可引入“0-1变量”,定义ijx表示是否指派第i个人去完成第j项工作,从而使时间量化。
数学建模实验报告关于LINGO的解题方法及其思路分析

数学建模实验报告1.解析:此题属于0-1模型问题。
设队员序号为i ,泳姿为j ,记c ij 为队员i 第j 种泳姿的百米成绩,若选择队员i 参加泳姿j 的比赛,记x ij =1, 否则记xij =0;则有,目标函数为∑∑===4151j i ij ij x c Z Min ,每个人最多选泳姿为1,则有5,1,141=≤∑=i xj ij,每种泳姿有且仅有1人,则有4,1,151==∑=j xi ij。
若丁的蛙泳成绩退步及戊的自由泳成绩进步,则将c43的值和c54的值改变即可。
实验过程及运行结果如下:若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,计算结果如下:通过计算结果可知,在原数据的情况下,队伍的选择应该是甲参加自由泳,乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊不参加任何比赛,且最好的时间是253.2秒。
若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,则组成接力的比赛队伍调整为乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊参加自由泳,甲不参加任何比赛。
2.解析:此题属于线性规划问题。
已知某工厂用1A 、2A 两台机床加工1B 、2B 、3B 三种不同的零件,设1A 生产1B 、2B 、3B 的个数分别为1x 、2x 、3x ,2A 生产1B 、2B 、3B 的个数分别为4x 、5x 、6x ,则目标函数为min=1*2*1x +2*3*2x +3*5*3x +1*3*4x +1*3*5x +3*6*6x ;1A 加工的工时小于80小时,2A 加工的工时小于100小时,生产1B 、2B 、3B 的总数分别为70个、50个、20个。
实验过程及运行结果如下:通过计算结果可知,当1A 生产1B 、2B 、3B 的个数分别为68个、0个、4个,2A 生产1B 、2B 、3B 的个数分别为2个、50个、16个的时候,才能得到最低的成本640元。
工作人员的最优时间分配问题的研究_LINGO线性规划数学建模论文

工作人员的最优时间分配问题的研究【摘要】对于一个事业单位,人力资源部门的合理分配对于一个事业单位的收益是至关重要的。
众所周知,由于每个人的工作效率不尽不同,不同的分配方式所带来的收益也不同。
本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。
本问题中首先确定第i人做或者不做第j工作将问题定量化,根据不同的需要建立不同的目标函数。
对于一个项目而言越早完成越好,对人力资源部门来说所花费的人力越少越好。
本文利用运筹管理学的思想建立的0-1规划模型,最后使用Lingo对目标函数求最优解得出最终结果。
关键词:最少时间运筹管理学最优解时间分配 0-1模型 Lingo 线性规划一、问题重述最优人力资源安排问题在企事业单位,人力资源部门经常要根据当前情况把人员分配给即将开始的项目。
一般地,对项目而言,越早完成越好;而对人力资源部门而言,在该项目上所花费的人力越少越好。
现有一个项目,需要把一份中文资料翻译成英语、法语、日语、德语和俄语。
已知A、B、C、D、E、F和G七个人翻译该资料所需要花费的时间如表1所示,且这七个人均表示可参加该项目。
【注意:为了译文的连贯性,不允许两人或两人以上做同一种译文的翻译工作。
一个人在同一时间只能做一种译文的翻译工作。
】试通过建立数学模型(而非枚举法)回答下述问题。
问题1. 应该如何进行人力资源的安排使得该项目尽早完成?问题2. 在问题1中若规定每人最多承担一种译文的翻译工作,试求相应的最优人力资源安排方案。
问题3. 接上级通知,为了保证翻译的质量,需要对翻译之后的译文进行审校且规定同一个语种的审校人和翻译者不能为同一人。
显然,在这种新的要求下,该项目完成当且仅当所有的译文均审校完。
已知这七人均表示可以参加审校工作,他们审校这五种译文的用时如表2所示。
【注意:对于每个语种,只有当该语种的译文完全完成之后才能进行该语种译文的审校工作。
为了译文的连贯性,不允许两人或两人以上做同一种译文的审校工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作人员的最优时间分配问题的研究【摘要】对于一个事业单位,人力资源部门的合理分配对于一个事业单位的收益是至关重要的。
众所周知,由于每个人的工作效率不尽不同,不同的分配方式所带来的收益也不同。
本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。
本问题中首先确定第i人做或者不做第j工作将问题定量化,根据不同的需要建立不同的目标函数。
对于一个工程而言越早完成越好,对人力资源部门来说所花费的人力越少越好。
本文利用运筹管理学的思想建立的0-1规划模型,最后使用Lingo对目标函数求最优解得出最终结果。
关键词:最少时间运筹管理学最优解时间分配 0-1模型 Lingo 线性规划一、问题重述最优人力资源安排问题在企事业单位,人力资源部门经常要根据当前情况把人员分配给即将开始的工程。
一般地,对工程而言,越早完成越好;而对人力资源部门而言,在该工程上所花费的人力越少越好。
现有一个工程,需要把一份中文资料翻译成英语、法语、日语、德语和俄语。
已知A、B、C、D、E、F和G七个人翻译该资料所需要花费的时间如表1所示,且这七个人均表示可参加该工程。
【注意:为了译文的连贯性,不允许两人或两人以上做同一种译文的翻译工作。
一个人在同一时间只能做一种译文的翻译工作。
】试通过建立数学模型(而非枚举法)回答下述问题。
问题1. 应该如何进行人力资源的安排使得该工程尽早完成?问题2. 在问题1中若规定每人最多承担一种译文的翻译工作,试求相应的最优人力资源安排方案。
问题3. 接上级通知,为了保证翻译的质量,需要对翻译之后的译文进行审校且规定同一个语种的审校人和翻译者不能为同一人。
显然,在这种新的要求下,该工程完成当且仅当所有的译文均审校完。
已知这七人均表示可以参加审校工作,他们审校这五种译文的用时如表2所示。
【注意:对于每个语种,只有当该语种的译文完全完成之后才能进行该语种译文的审校工作。
为了译文的连贯性,不允许两人或两人以上做同一种译文的审校工作。
一个人在同一时间只能做一种译文的审校工作。
】问:应该如何进行人力资源的安排使得该工程尽早完成?文的审校工作,试求相应的最优人力资源安排方案。
二、问题假设1.每个人都能在自己的花销时间内完成工作。
2.每个人只能做一个工作,即既不能同时做两个工作,也不能在一个工作做完后再做其他工作。
3.每件工作都必须有人做,且只能由一个人独立完成。
4.各个工作之间没有相互联系。
即一个工作的完成与否,不受另一个工作的制约。
三、符号说明z1:完成翻译工作的总时间z2:完成审查工作的总时间z: 完成所有工作的总时间ti:完成翻译工作的最短时间tj:完成审查工作的最短时间tk: 完成翻译审查工作的最短时间c:第i人做第j件工作的时间ijt1:翻译成英语所需的最短时间t2: 翻译成法语所需的最短时间t3:翻译成日语所需的最短时间t4:翻译成得语所需的最短时间t5:翻译成俄语所需的最短时间t6: 翻译并审校完成英语所需的最短时间t7: 翻译并审校完成法语所需的最短时间t8: 翻译并审校完成日语所需的最短时间t9: 翻译并审校完成德语所需的最短时间t10: 翻译并审校完成俄语所需的最短时间四、问题分析、模型的建立与求解1.问题的分析最少时间(即人力资源成本)是最大利润一个很有参考价值的数据,往往需要利用数学建模的方法对其进行定量的分析,首先确定第i 人做或者不做第j 工作将问题定量化,再以全部的工作时间为目标函数,最后对目标函数求最优解得出最终结果。
2.模型的建立与求解(1)设:10...3,2,112...3,2,1{.1.0===j i x ij j i j i ,件工作人做第第件工作人不做第第翻译成英语所需的最短时间t1=min(1i c *1i x )翻译成法语所需的最短时间t2= min(2i c *2i x )翻译成日语所需的最短时间t3= min(3i c *3i x )翻译成德语所需的最短时间t4= min(4i c *4i x )翻译成俄语所需的最短时间t5= min(5i c *5i x )有目标函数z1=max(t1, t2, t3 ,t4 ,t5)根据运筹管理学的思想,利用lingo 软件知道z1=6天其具体分配方案只需满足日语的翻译者为F ,由于要尽到人力资源分配最优化其他任务取其最短时间即可。
具体推荐分配表如下图(2)10...3,2,112...3,2,1{.1.0===j i x ij j i j i ,件工作人做第第件工作人不做第第∑∑===7151z i ij j ij x c限定条件为:5...3,2,1151=≤∑=i xj ij,(即每个人只能做一个工作(假设2),可以小于1是因为人比工作多,允许有人空闲)7...3,2,1171i ==∑=j xij,(即每个工作都要有人做,且只能由一个人做(假设3))10or x ij =将上述条件,以及数据写入Lingo 中,编写程序求解。
源程序及输出结果详见附件。
需花费的人力时间为20天(3)审校完成英语所需的最短时间t6=min(6m c *6m x )+t1审校完成法语所需的最短时间t7 = min(7m c *7m x )+t2审校完成日语所需的最短时间t8= min(8m c *8m x )+t3:审校完成德语所需的最短时间t9 = min(9m c *9m x )+t4:审校完成俄语所需的最短时间t10 = min(10m c *10m x )+t5限定条件为 m-i<>55...3,2,1151=≤∑=j xj ij,(即每个人只能做一个工作(假设2),可以小于1是因为人比工作多,允许有人空闲)7...3,2,1171i ==∑=i xij,(即每个工作都要有人做,且只能由一个人做(假设3))7...3,2,1151=≤∑=i x j ij ,(即每个人只能做一个工作(假设2),可以小于1是因为人比工作多,允许有人空闲)7...3,2,11106==∑=i xm mj,(即每个工作都要有人做,且只能由一个人做(假设3))10or x ij =完成工作的最早时间zk=max(t6,t7,t8,t9,t10)将上述条件,以及数据写入Lingo 中,编写程序求解。
推荐最快完成方案如下 最快完成的天数为12天(4)∑∑===7151min(z i ij j ij x c +∑∑==7151m ij j mj x c )限定条件5...3,2,1171=≤∑=i xj ij,m-I<>57...3,2,1171i ==∑=i xij,7...3,2,11106==∑=i xm mj,5...3,2,1151=≤∑=j xj ij,将上述条件,以及数据写入Lingo 中,编写程序求解。
源程序及输出结果详见附件3.结果分析表1.2 加粗的单元格即为选择做第j 件事的第i 个人现在我们可以看到,最优解基本上是集中于取值较低(即花费时间较少)的人上面,受假设2(每个人只能做一个工作,即既不能同时做两个工作,也不能在一个工作做完后再做其他工作)的约束,每一横行只能选一个格子(即每个人只能做一件工作),可不选。
模型再受到假设3的约束(每件工作都必须有人做,且只能由一个人独立完成)),所以,每一竖行必须且只能选一个格子。
对照约束条件与表1.2,我们发现有些事件取值并非该人最高效事件(如第1人),但为满足约束,所以程序从全局高度对结果进行了取舍。
由表1.2,我们可以推断,在没有计算机辅助,或待求解量较少且对结果要求不高的情况下,可以采取“画格子”的方式粗糙地求解类似问题。
但也可从思维过程看出在计算机辅助的情况下节省了大量的较繁运算。
五、模型的评价优点模型明了简洁,具有相当的可推广性。
缺点模型考虑的影响因素较少。
六、模型的推广与改进在该问题的求解中,考虑的方面较为简略,还有很多因素可以考虑。
例如在可以协作的情况下,各个人做完了分配工作后可以再其他工作的情况下,以及该情形下他们不同的休息时间,各道工作有关联时的情况等因素。
但在单一工作及简单考虑情况下,该模型具有较大的生存空间,只需改动少许数值即可推广应用。
七、参考文献[1] 王泽文乐励华等,数学实验与数学建模,江西,东华理工大学出版社,2011年七月[2]姜启源,谢金星,叶俊. 数学模型[M].北京:高等教育出版社,2003.8[3]百度文库,LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究,/view/1d3010f8aef8941ea76e053d.html,2013年04月30日八、附件源程序一model:sets:myset/1..7/:y。
link(myset,myset):x。
endsetsdata:x=2 10 9 7 8 12 515 4 14 8 4 4 1613 14 16 11 15 6 81 15 13 9 8 8 58 7 8 4 6 13 100 0 0 0 0 0 00 0 0 0 0 0 0。
enddata@for(myset(i):y(i)=@min(link(i,j):x(i,j)))。
End结果一Feasible solution found.Total solver iterations: 6Variable Value Y( 1) 2.000000 Y( 2) 4.000000 Y( 3) 6.000000Y( 5) 4.000000 Y( 6) 0.000000 Y( 7) 0.000000 X( 1, 1) 2.000000 X( 1, 2) 10.00000 X( 1, 3) 9.000000 X( 1, 4) 7.000000 X( 1, 5) 8.000000 X( 1, 6) 12.00000 X( 1, 7) 5.000000 X( 2, 1) 15.00000 X( 2, 2) 4.000000 X( 2, 3) 14.00000 X( 2, 4) 8.000000 X( 2, 5) 4.000000 X( 2, 6) 4.000000 X( 2, 7) 16.00000 X( 3, 1) 13.00000 X( 3, 2) 14.00000 X( 3, 3) 16.00000 X( 3, 4) 11.00000 X( 3, 5) 15.00000 X( 3, 6) 6.000000 X( 3, 7) 8.000000 X( 4, 1) 1.000000 X( 4, 2) 15.00000 X( 4, 3) 13.00000 X( 4, 4) 9.000000 X( 4, 5) 8.000000 X( 4, 6) 8.000000 X( 4, 7) 5.000000 X( 5, 1) 8.000000X( 5, 2) 7.000000 X( 5, 3) 8.000000 X( 5, 4) 4.000000 X( 5, 5) 6.000000 X( 5, 6) 13.00000 X( 5, 7) 10.00000 X( 6, 1) 0.000000 X( 6, 2) 0.000000 X( 6, 3) 0.000000 X( 6, 4) 0.000000X( 6, 6) 0.000000 X( 6, 7) 0.000000 X( 7, 1) 0.000000 X( 7, 2) 0.000000 X( 7, 3) 0.000000 X( 7, 4) 0.000000 X( 7, 5) 0.000000 X( 7, 6) 0.000000 X( 7, 7) 0.000000Row Slack or Surplus1 0.0000002 0.0000003 0.0000004 0.0000005 0.0000006 0.0000007 0.000000Lingo源程序2:model:sets:si/i1..i7/。