LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究

合集下载

数学建模中的优秀软件——LINGO

数学建模中的优秀软件——LINGO

第9卷第3期2007年6月黄山学院学报JOurnal0fHuangshanUniVefsityVo】.9.NO.3Jun.2007数学建模中的优秀软件——LINGO周甄川(黄山学院数学系,安徽黄山245041)摘要:介绍了数学建模的相关概念、数学建模竞赛概况,探讨了LINGo系统的功能与特点,以及它在数学建模中的应用。

关键词:数学模型;数学建模;LlNGo系统中图分类号:TP319:0141.4文献标识码:A文章编号:1672—447x(2007)03—0112—03在对自然科学与社会科学许多课题的研究中,科学工作者常将事物的变化规律用特定的数学表达式的形式加以描述。

将寻求这种确定事物变化规律的过程称为“数学建模”。

而在数学建模以及全国大学生数学建模竞赛中,最常碰到的是一类决策问题,即在一系列限制条件下,寻求使某个或多个指标达到最大或最小,这种决策问题通常称为最优化问题【1】。

最优化理论是近几十年发展和形成的一门新兴的应用性学科。

它主要解决最优生产计划、最优分配、最优设计、最优决策、最佳管理等最优化问题。

主要研究方法是定量化、系统化和模型化方法,特别是运用各种数学模型和技术来解决问题。

它主要由决策变量、目标函数、约束条件三个要素组成。

当遇到的实际问题时即使建立了模型,找到了解的方法,对于较大的计算量也是望而却步,LINGo系列优化软件包就给我们提供了理想的选择。

1什么是数学建模数学建模(MatheImticalModelin曲‘11顾名思义就是建立数学模型以解决实际问题的过程。

它利用数学和计算机对实际问题进行分析研究,抽象出反映事物内在活动规律的数学关系表达式,通过对这些数学关系表达式的求解和反复验证,最终解决实际问题。

数学是所有自然科学的基础,随着计算机软硬件技术的迅速发展,数学建模和与之相伴的计算已逐渐成为工程设计的关键工具,并在人类社会实践活动中的众多领域内发挥着越来越重要的作用。

那么,什么是数学模型?如何建立数学模型?如何用数学模型解决实际问题呢?模型就是对事物的一种抽象。

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线规划数学建模

最新工作人员的优时间分配问题的研究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所示。

【注意:对于每个语种,只有当该语种的译文完全完成之后才能进行该语种译文的审校工作。

数学建模B题:人员安排问题

数学建模B题:人员安排问题

数学建模B 题:人员安排问题问题综述:该问题主要是为了求解在客户的要求下公司每天收益的最大化,属于优化问题;我们在对这个问题建模时,主要是基于客户的两个要求来建立的: (1)客户对员工的人数要求; (这个要求是本来题目有的) (2)客户对工期的要求; (这个要求是我们进一步假设的)对于第一个要求我们建立了基本模型,而对于第二个要求,我们在第一个要求的基础上,进一步改进了基本模型,从而建立了某个项目先完工的模型。

具体的解题思路如下图所示:一.模型基本假设:1.假设客户对项目的工期没有限制,项目的工期由公司决定,且四个项目同时开工,同时完工,中间也不停工。

2. 假设所有人员总能在岗位上工作,不考虑由于生病或是其他意外事件而造成人员的缺席。

3.假设四个项目同时需要的最多人数不超过现有公司工作人员的人数,即使超过,也只分配公司现有的工作人员。

4.假设C 、D 两个项目的管理费由公司支付;5.假设所有工作人员都安排完毕,即每个人都有工作。

6.假设同等级别的工作人员的技术水平是相同的,即他们可以接受任意等同的任务。

二.符号说明:i :用i =1,2,3,4分别表示高级工程师,工程师,助理工程师和技术员。

j :用j =1,2,3,4分别表示项目A,B,C 和D 。

ij X :公司分配第i 级别工作人员到第j 个项目上的人数。

例如23X 表示公司分配工程师到项目C 上的人数。

ij a :第i 级别工作人员分配到第j 个项目上的收费。

ij b : 第i 级别工作人员分配到第j 个项目上时公司的开支(包括工资和管理费)。

ij A : 表示到项目j 工作的第i 级别工作人员为公司贡献的纯利润收入。

j : 表示第j 个项目的总工时(即项目j 的总工作量)。

j T : 表示第j 个项目客户所要求的工期(即项目j 所需要的完工时间)。

j M : 表示客户要求第j 个项目一天所必须完成的工作量。

j m : 表示公司分配给第j 个项目的所有工作人员一天能够完成的工作量。

数学建模排班问题讲解学习

数学建模排班问题讲解学习

数学建模排班问题值班人员安排问题摘要某部队后勤值班室准备聘请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的值班时间的上限。

四.问题设计本题是在通过安排不同人员的值班时间来是部队支付的报酬最少,在给定的约束条件和每人每天的工作时间和报酬来设计。

由于知道员工每天的工作时间和报酬,这样就可确定目标函数,再通过给定的约束条件来解答,从而得出最优的值班时间表。

线性规划模型在最优决策中的应用研究

线性规划模型在最优决策中的应用研究

线性规划模型在最优决策中的应用研究【摘要】线性规划在生产管理和经营活动中起到重大作用。

在给出线性规划模型的基础上,通过实例,介绍建立线性规划模型的一般方法,并应用软件Mathematica进行求解,进而为决策者提供最优的决策。

【关键词】线性规划;模型;Mathematica;最优决策1.引言在生产管理和经营活动中,会经常遇到两类问题:一类是(资源有限)如何合理的使用现有的劳动力、设备、资金等资源,以得到最大的效益;另一类是(目标一定)为了达到一定的目标,应如何组织生产,或合理安排工艺流程,或调整产品的成分等,以使所消耗的资源(人力、设备台时、资金、原材料等)为最少。

这既是最优决策问题。

如何解决上述问题,线性规划(Linear Programming)给了我们一些方法,线性规划是运筹学的一个分支,它研究的是在线性约束条件下求解线性函数(目标函数)的最优解问题。

线性规划应用越来越广泛,《财富》杂志(Fortune)的一项调查,美国名列前五百名的大公司中,百分八十五均曾应用线性规划的方法来协助公司的营运,由此可见线性规划应用面的宽广与普及。

2.线性规划数学模型及求解方法[1]2.1 线性规划数学模型其中为目标函数,s.t.的右端项为约束条件,表示决策变量的非负约束。

2.2 模型的求解方法能够求解线性规划模型的软件有很多,比如Mathematica,Matlab,Lindo,Maple等,以下问题应用Mathematica求解[2]。

Mathematica是由Wolfram(美国)公司研制开发的,应用比较广泛的,功能比较强大的一款软件,软件中有求解线性规划的函数,在平台中的使用方法如下:ConstrainedMin(或ConstrainedMax)[目标函数,{约束条件},{变量集合}]就可以了。

其中ConstrainedMin求目标函数为min的线性规划问题,ConstrainedMax求目标函数为max的线性规划问题。

工作人员的最优时间分配问题的研究LINGO线性规划数学建模

工作人员的最优时间分配问题的研究LINGO线性规划数学建模

工作人员的最优时间分配问题的研究【摘要】对于一个事业单位,人力资源部门的合理分配对于一个事业单位的收益是至关重要的。

众所周知,由于每个人的工作效率不尽不同,不同的分配方式所带来的收益也不同。

本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。

本问题中首先确定第i人做或者不做第j工作将问题定量化,根据不同的需要建立不同的目标函数。

对于一个工程而言越早完成越好,对人力资源部门来说所花费的人力越少越好。

本文利用运筹管理学的思想建立的0-1规划模型,最后使用Lingo对目标函数求最优解得出最终结果。

关键词:最少时间运筹管理学最优解时间分配 0-1模型 Lingo 线性规划一、问题重述最优人力资源安排问题在企事业单位,人力资源部门经常要根据当前情况把人员分配给即将开始的工程。

一般地,对工程而言,越早完成越好;而对人力资源部门而言,在该工程上所花费的人力越少越好。

现有一个工程,需要把一份中文资料翻译成英语、法语、日语、德语和俄语。

已知A、B、C、D、E、F和G七个人翻译该资料所需要花费的时间如表1所示,且这七个人均表示可参加该工程。

【注意:为了译文的连贯性,不允许两人或两人以上做同一种译文的翻译工作。

一个人在同一时间只能做一种译文的翻译工作。

】试通过建立数学模型(而非枚举法)回答下述问题。

问题1. 应该如何进行人力资源的安排使得该工程尽早完成?问题2. 在问题1中若规定每人最多承担一种译文的翻译工作,试求相应的最优人力资源安排方案。

问题3. 接上级通知,为了保证翻译的质量,需要对翻译之后的译文进行审校且规定同一个语种的审校人和翻译者不能为同一人。

显然,在这种新的要求下,该工程完成当且仅当所有的译文均审校完。

已知这七人均表示可以参加审校工作,他们审校这五种译文的用时如表2所示。

【注意:对于每个语种,只有当该语种的译文完全完成之后才能进行该语种译文的审校工作。

为了译文的连贯性,不允许两人或两人以上做同一种译文的审校工作。

数学建模排班问题

数学建模排班问题

运用运筹学和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个约束条件作为最终解的检验条件,这样易于将两类变量进行分离,又不是合理性,不违背科学性。

LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究

LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究

工作人员的最优时间分配问题的研究【摘要】对于一个事业单位,人力资源部门的合理分配对于一个事业单位的收益是至关重要的。

众所周知,由于每个人的工作效率不尽不同,不同的分配方式所带来的收益也不同。

本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。

本问题中首先确定第i人做或者不做第j工作将问题定量化,根据不同的需要建立不同的目标函数。

对于一个项目而言越早完成越好,对人力资源部门来说所花费的人力越少越好。

本文利用运筹管理学的思想建立的0-1规划模型,最后使用Lingo对目标函数求最优解得出最终结果。

关键词:最少时间运筹管理学最优解时间分配 0-1模型 Lingo 线性规划一、问题重述最优人力资源安排问题在企事业单位,人力资源部门经常要根据当前情况把人员分配给即将开始的项目。

一般地,对项目而言,越早完成越好;而对人力资源部门而言,在该项目上所花费的人力越少越好。

现有一个项目,需要把一份中文资料翻译成英语、法语、日语、德语和俄语。

已知A、B、C、D、E、F和G七个人翻译该资料所需要花费的时间如表1所示,且这七个人均表示可参加该项目。

【注意:为了译文的连贯性,不允许两人或两人以上做同一种译文的翻译工作。

一个人在同一时间只能做一种译文的翻译工作。

】表1. 七人五语种翻译用时表(单位:天)试通过建立数学模型(而非枚举法)回答下述问题。

问题1. 应该如何进行人力资源的安排使得该项目尽早完成?问题2. 在问题1中若规定每人最多承担一种译文的翻译工作,试求相应的最优人力资源安排方案。

问题3. 接上级通知,为了保证翻译的质量,需要对翻译之后的译文进行审校且规定同一个语种的审校人和翻译者不能为同一人。

显然,在这种新的要求下,该项目完成当且仅当所有的译文均审校完。

已知这七人均表示可以参加审校工作,他们审校这五种译文的用时如表2所示。

【注意:对于每个语种,只有当该语种的译文完全完成之后才能进行该语种译文的审校工作。

数模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。

Lingo软件编程求解规划问题数学建模

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

数学建模排班问题

数学建模排班问题
x12+x22+x32+x42+x52+x62<=3;
x13+x23+x33+x43+x53+x63<=3;
x14+x24+x34+x44+x54+x64<=3;
x15+x25+x35+x45+x55+x65<=3;
x16+x26+x36+x46+x56+x66<=3;
x17+x27+x37+x47+x57+x67<=3;
a65<=3; a65>=2;
a67<=12; a67>=2;
@gin (a11); @gin (a12);
@gin (a13);
@gin (a14);
@gin (a15);
@gin (a16);
a17);
@gin (a21); @gin (a22);
@gin (a23);
@gin (a24);
@gin (a25);
a42<=5;a42>=2;
a43<=6; a42>=2;
a45<=4; a45>=2;
a47<=12;a47>=2;
a51<=3; a51>=2;
a53<=4; a53>=2;
a54<=8; a54>=2;
a56<=12; a56>=2;
a62<=6; a62>=2;
a64<=6; a64>=2;

数学建模“教你如何进行人员分配”的问题

数学建模“教你如何进行人员分配”的问题

如何进行人员分配“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软件进行编程求解,得出公司人员分配的最佳方案。

数学建模论文最优时间问题

数学建模论文最优时间问题

数学建模论文-最优时间问题最优时间问题【摘要】“时间就是金钱”这一比喻最早出自英国19世纪一位多产小说家布尔沃·利顿。

其实,时间比金钱更珍贵,钱——赔了,可以再赚;赚了,有可能还会亏,但时间就好比一只青春小鸟,一旦飞走,就永远不回来了。

在一切资源浪费中,它是最不可原谅的浪费。

“浪费他人时间就等于谋财害命”已成了了大众的口头禅。

在最短时间内完成任务是符合众人之想法的。

在实际生活中可能会遇到这样的问题:若干项任务分给若干人来完成,因为每个人的专长不同,他们完成每项任务的时间也就不一样,应该如何分派这些任务才能使他们在最短时间内完成任务呢?不同的策略得到的结果不一样,各个策略之间可以有相互制约关系,如何在满足一定条件下作出抉择,使得效率最高。

本文先对这4位同学在第一轮面试和第二轮面试进行比较分析,得出第二轮面试的实际时间,再对这4位同学在第二轮面试和第三轮面试进行比较分析,得出第三轮面试的实际时间,发现第二轮面试与第三轮面试的比较就是第一轮面试与第二轮面试的递归,得出了他们比较的过程,再建立面试所需时间的模型,求解模型得出当这4位同学的面试顺序为“丁->甲->乙->丙”时,他们面试的时间最短为84分钟。

关键字:最优时间一、问题重述汉文化源远流长,既古老又年轻,5000多年从未中断,这与中国人对时间认知的智慧和对时间把握的珍爱有直接关系。

“时间就是金钱”这一比喻最早出自英国19世纪一位多产小说家布尔沃·利顿。

其实,时间比金钱更珍贵,钱——赔了,可以再赚;赚了,有可能还会亏,但时间就好比一只青春小鸟,一旦飞走,就永远不回来了。

在一切资源浪费中,它是最不可原谅的浪费。

“浪费他人时间就等于谋财害命”已成了了大众的口头禅。

在最短时间内完成任务是符合众人之想法的。

在实际生活中可能会遇到这样的问题:若干项任务分给若干人来完成,因为每个人的专长不同,他们完成每项任务的时间也就不一样,应该如何分派这些任务才能使他们在最短时间内完成任务呢?不同的策略得到的结果不一样,各个策略之间可以有相互制约关系,如何在满足一定条件下作出抉择,使得效率最高?下面将过一个实例说明怎样用数学规划模型来解决这种问题:有4名同学到一家公司参加三个阶段的面试:公司要求每个同学都必须首先找公司秘书初试,然后到部门主管处复试,最后到经理处参加面试,并且不允许插队(即在任何一个阶段4名同学的顺序是一样的)。

基于线性规划的护士排班优化问题

基于线性规划的护士排班优化问题

基于线性规划的护士排班优化问题1:学号:专业:1:学号:专业:日期:2011年7月15日基于线性规划的护士排班优化问题摘要本文研究的是关于医院护士排班最优问题,本文的主要思想是根据约束条件建立相关的线性规划模型,利用Lingo 求解,分别计算出每天,每星期的最少护士数,并给出具体的排班方案。

问题一:计算每天该科所需的最少护士数。

针对这一问,从各班次护士需求量考虑,依据每个护士每天至多工作8个小时,即上两个班次且两个班次不连上这一假定条件,假设每个时间段开始登记上班的人数为x i ,建立规划模型,进而运用Lingo 软件进行求解,从而求出每天该科所需最少护士数为145人。

问题二,以一个星期为周期,计算该科最少需签约多少护士。

针对第二问,依据题目给出的约束条件:时间段02:00-06:00(大夜班)每个星期最多只排一次,且第二天必须休息。

经过本文规划约束可以得出每个星期该科至少需签约210名护士。

问题三,以一个星期为周期,试给出具体的排班方案。

依据问题二得出的结果,综合考虑题目中各约束条件,将一个星期(七天)六个班次设为42个班次,引进0,1变量,即⎩⎨⎧=班次号护士不上第第班次号护士上第第i j i j x ij 01,建立线性规划模型,给出具体的排班方案,见附录1,由于有的排班人数大于该次排班的最少要求人数所以该方案不唯一。

问题四,计算最少需要多少护师职称以上的护士。

运用问题三的方法,增加约束条件,即每班次上 班的护士中护师以上(包括护师)职称的所占比例不低于40%。

同样引进0,1变量,即⎩⎨⎧=班次无护师级别以上第班次有护师级别以上第i i x i 01,以需要最少的护师职称以上的护士为目标函数,同样建立线性规划模型。

得出需要最少的护师(包括护师)职称以上的护士为:84人。

关键词:护士排班 线性规划 0-1变量 Lingo目录1、问题重述 (4)2、问题分析 (5)3、模型假设 (5)4、符号说明 (5)5、模型建立与求解 (6)5.1问题一求解 (6)5.2问题二求解 (6)5.3问题三求解 (7)5.4问题四求解 (9)6、模型评价与改进 (10)参考文献 (10)附录 (11)附录一: (11)附录二: (12)1、问题重述1.1基本条件某医院某科室的一个工作日分为6个4小时时间长的时间段,每个时间段所需要的护士人员数各不相同。

数学建模:运用Lindolingo软件求解线性规划

数学建模:运用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.....增加的原材料第五、问题分析根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。

数学建模实验报告关于LINGO的解题方法及其思路分析

数学建模实验报告关于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元。

工作最优安排问题

工作最优安排问题

一.摘要对于“最优工作安排问题”数学模型的建立,其内容是通过分析给定人员和人员所需完成的任务以及完成任务所花费的时间的关系,抽象出怎样把任务指派给人员使得任务的总效率达到最高的指派问题。

于是就本题目讨论,对项目而言,越早完成越好;对人力资源而言,在该项目上所花费的人力越少越好。

因此,可以根据所优化的模型用变量代替分析变量关系,利用数学工具,进而求解。

得出最优结果。

对于问题一而言,为了工作的连贯性,不允许两人或两人以上做同一种工作。

一个人在同一时间只能做一种工作。

在这种条件下,要想尽快完成工作任务,则需要通过建立数学模型来解决。

利用Matlab软件中指派问题的匈牙利算法和Lingo软件来解决。

可以得出结论是17天。

对于问题二而言,其和问题一十分类似,但是问题二规定每人最多只能承担一种工作,而问题一则可以一个人做两个以上的工作,因此需要通过建立数学模型利用Matlab软件中指派问题的匈牙利算法来解决。

并且要考虑到一个人只能做一种工作,所以得出的结论是20天。

对于问题三而言,对于每个工作,只有当该工作完全完成之后才能进行检查工作。

为了检查的连贯性,不允许两人或两人以上检查同一种工作。

一个人在同一时间只能检查一种工作。

言下之意,一个人完成的工作和检查的工作可以是同样的,利用Matlab程序可以计算出答案是13天。

对于问题四而言,规定每人最多完成一种工作和另外一件工作的检查任务。

此时,如果继续用Matlab程序和匈牙利算法则会存在弊端,因为算下来之后的矩阵的每一行每一列只有一个1,其余均为0,因此可以利用程序代码将问题四解决,答案是48天。

关键词:Lingo Matlab 检查工作连贯性匈牙利算法程序代码二.问题的提出对于工作最优安排问题,最主要的就是在最少的时间里完成任务。

就本体而言,一共有四个问题,一是要在最短的时间里,在允许两人或两人以上做同一种工作。

一个人在同一时间只能做一种工作的条件下,如何用最少的时间完成任务呢?而是要在最短的时间里,在问题一的基础上加上每个人只能做一种工作的条件,如何求出最短的时间完成任务?三是要在问题一的基础上增加一项检查工作,对于每个工作,只有当该工作完全完成之后才能进行检查工作。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 中,编写程序求解。

推荐最快完成方案如下(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 中,编写程序求解。

源程序及输出结果详见附件花费总时间为39天,方案如下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 ValueY( 1) 2.000000Y( 2) 4.000000Y( 3) 6.000000Y( 4) 1.000000Y( 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.000000 X( 6, 5) 0.000000X( 6, 7) 0.000000X( 7, 1) 0.000000X( 7, 2) 0.000000X( 7, 3) 0.000000X( 7, 4) 0.000000X( 7, 5) 0.000000X( 7, 6) 0.000000X( 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/;sj/j1..j5/;sij(si,sj):cost,volume;endsetsmin = @sum(sij:cost*volume);@for(sij:@bin(x));@for(sj(j):@sum(si(i):volume(i,j))=1);@for(si(i):@sum(sj(j):volume(i,j))<=1);data:cost=2 5 15 1 810 4 14 15 79 14 16 13 87 8 11 9 48 4 15 8 612 4 6 8 135 16 8 5 10;enddataendLingo求解输出结果2:Global optimal solution found.Objective value: 20.00000Extended solver steps: 0Total solver iterations: 9Variable Value Reduced Cost X 0.000000 0.000000COST( I1, J1) 2.000000 0.000000 COST( I1, J2) 5.000000 0.000000 COST( I1, J3) 15.00000 0.000000 COST( I1, J4) 1.000000 0.000000 COST( I1, J5) 8.000000 0.000000 COST( I2, J1) 10.00000 0.000000 COST( I2, J2) 4.000000 0.000000 COST( I2, J3) 14.00000 0.000000 COST( I2, J4) 15.00000 0.000000 COST( I2, J5) 7.000000 0.000000 COST( I3, J1) 9.000000 0.000000 COST( I3, J2) 14.00000 0.000000 COST( I3, J3) 16.00000 0.000000 COST( I3, J4) 13.00000 0.000000 COST( I3, J5) 8.000000 0.000000 COST( I4, J1) 7.000000 0.000000 COST( I4, J2) 8.000000 0.000000 COST( I4, J3) 11.00000 0.000000 COST( I4, J4) 9.000000 0.000000 COST( I4, J5) 4.000000 0.000000 COST( I5, J1) 8.000000 0.000000 COST( I5, J2) 4.000000 0.000000 COST( I5, J3) 15.00000 0.000000 COST( I5, J4) 8.000000 0.000000 COST( I5, J5) 6.000000 0.000000 COST( I6, J1) 12.00000 0.000000 COST( I6, J2) 4.000000 0.000000 COST( I6, J3) 6.000000 0.000000 COST( I6, J4) 8.000000 0.000000 COST( I6, J5) 13.00000 0.000000 COST( I7, J1) 5.000000 0.000000 COST( I7, J2) 16.00000 0.000000 COST( I7, J3) 8.000000 0.000000COST( I7, J5) 10.00000 0.000000 VOLUME( I1, J1) 0.000000 0.000000 VOLUME( I1, J2) 0.000000 4.000000 VOLUME( I1, J3) 0.000000 10.00000 VOLUME( I1, J4) 1.000000 0.000000 VOLUME( I1, J5) 0.000000 7.000000 VOLUME( I2, J1) 0.000000 5.000000 VOLUME( I2, J2) 1.000000 0.000000 VOLUME( I2, J3) 0.000000 6.000000 VOLUME( I2, J4) 0.000000 11.00000 VOLUME( I2, J5) 0.000000 3.000000 VOLUME( I3, J1) 0.000000 4.000000 VOLUME( I3, J2) 0.000000 10.00000 VOLUME( I3, J3) 0.000000 8.000000 VOLUME( I3, J4) 0.000000 9.000000 VOLUME( I3, J5) 0.000000 4.000000 VOLUME( I4, J1) 0.000000 2.000000 VOLUME( I4, J2) 0.000000 4.000000 VOLUME( I4, J3) 0.000000 3.000000 VOLUME( I4, J4) 0.000000 5.000000 VOLUME( I4, J5) 1.000000 0.000000 VOLUME( I5, J1) 0.000000 3.000000 VOLUME( I5, J2) 0.000000 0.000000 VOLUME( I5, J3) 0.000000 7.000000 VOLUME( I5, J4) 0.000000 4.000000 VOLUME( I5, J5) 0.000000 2.000000 VOLUME( I6, J1) 0.000000 9.000000 VOLUME( I6, J2) 0.000000 2.000000 VOLUME( I6, J3) 1.000000 0.000000 VOLUME( I6, J4) 0.000000 6.000000 VOLUME( I6, J5) 0.000000 11.00000 VOLUME( I7, J1) 1.000000 0.000000 VOLUME( I7, J2) 0.000000 12.00000 VOLUME( I7, J3) 0.000000 0.000000 VOLUME( I7, J4) 0.000000 1.000000 VOLUME( I7, J5) 0.000000 6.000000Row Slack or Surplus Dual Price1 20.00000 -1.0000002 0.000000 -5.0000003 0.000000 -4.0000004 0.000000 -8.0000005 0.000000 -4.0000007 0.000000 3.0000008 0.000000 0.0000009 1.000000 0.00000010 0.000000 0.00000011 1.000000 0.00000012 0.000000 2.00000013 0.000000 0.000000 (3)源程序翻译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.000000 Y( 4) 1.000000 Y( 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.000000X( 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.000000 X( 6, 5) 0.000000 X( 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.000000Row Slack or Surplus1 0.0000002 0.0000003 0.0000004 0.0000005 0.0000006 0.0000007 0.000000审查部分sets:myset/1..7/:y;link(myset,myset):x;endsetsdata:x=1 10 8 6 6 11 413 4 6 7 3 4 1210 8 10 11 15 6 61 10 9 8 8 7 38 5 6 4 5 10 20 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: 0Variable ValueY( 1) 1.000000Y( 2) 3.000000Y( 3) 6.000000Y( 4) 1.000000Y( 5) 2.000000Y( 6) 0.000000Y( 7) 0.000000X( 1, 1) 1.000000X( 1, 2) 10.00000X( 1, 3) 8.000000X( 1, 5) 6.000000 X( 1, 6) 11.00000 X( 1, 7) 4.000000 X( 2, 1) 13.00000 X( 2, 2) 4.000000 X( 2, 3) 6.000000 X( 2, 4) 7.000000 X( 2, 5) 3.000000 X( 2, 6) 4.000000 X( 2, 7) 12.00000 X( 3, 1) 10.00000 X( 3, 2) 8.000000 X( 3, 3) 10.00000 X( 3, 4) 11.00000 X( 3, 5) 15.00000 X( 3, 6) 6.000000 X( 3, 7) 6.000000 X( 4, 1) 1.000000 X( 4, 2) 10.00000 X( 4, 3) 9.000000 X( 4, 4) 8.000000 X( 4, 5) 8.000000 X( 4, 6) 7.000000 X( 4, 7) 3.000000 X( 5, 1) 8.000000 X( 5, 2) 5.000000 X( 5, 3) 6.000000 X( 5, 4) 4.000000 X( 5, 5) 5.000000 X( 5, 6) 10.00000 X( 5, 7) 2.000000 X( 6, 1) 0.000000 X( 6, 2) 0.000000 X( 6, 3) 0.000000 X( 6, 4) 0.000000 X( 6, 5) 0.000000 X( 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.000000X( 7, 7) 0.000000Row Slack or Surplus1 0.0000002 0.0000003 0.0000004 0.0000005 0.0000006 0.0000007 0.000000(4)源程序Sets:sm/m6..m10/;si/i1..i7/;sj/j1..j5/;sij(si,sj):cost,volume;sim(si,sm):man,task;endsetsmin = @sum((sij:cost*volume)+(sim:man*task));@for(sij:@bin(x));m-j>5;m-j<5;@for(sj(j):@sum(si(i):volume(i,j))=1);@for(si(i):@sum(sj(j):volume(i,j))<=1);@for(sm(m):@sum(si(i):volume(i,m))=1);@for(si(i):@sum(sm(m):volume(i,m))<=1);data:man=1 13 10 1 810 4 8 10 58 6 10 9 66 7 11 8 46 3 15 8 511 4 6 7 104 12 6 3 2;enddatadata:cost=2 5 15 1 810 4 14 15 79 14 16 13 87 8 11 9 48 4 15 8 612 4 6 8 135 16 8 5 10;enddataendGlobal optimal solution found.Objective value: 39.00000Extended solver steps: 0Total solver iterations: 21Variable Value Reduced Cost X 0.000000 0.000000M 5.000000 0.000000J 0.000000 0.000000COST( I1, J1) 2.000000 0.000000 COST( I1, J2) 5.000000 0.000000 COST( I1, J3) 15.00000 0.000000 COST( I1, J4) 1.000000 0.000000 COST( I1, J5) 8.000000 0.000000 COST( I2, J1) 10.00000 0.000000 COST( I2, J2) 4.000000 0.000000 COST( I2, J3) 14.00000 0.000000 COST( I2, J4) 15.00000 0.000000 COST( I2, J5) 7.000000 0.000000 COST( I3, J1) 9.000000 0.000000 COST( I3, J2) 14.00000 0.000000 COST( I3, J3) 16.00000 0.000000 COST( I3, J4) 13.00000 0.000000 COST( I3, J5) 8.000000 0.000000 COST( I4, J1) 7.000000 0.000000 COST( I4, J2) 8.000000 0.000000 COST( I4, J3) 11.00000 0.000000 COST( I4, J4) 9.000000 0.000000 COST( I4, J5) 4.000000 0.000000 COST( I5, J1) 8.000000 0.000000 COST( I5, J2) 4.000000 0.000000COST( I5, J4) 8.000000 0.000000 COST( I5, J5) 6.000000 0.000000 COST( I6, J1) 12.00000 0.000000 COST( I6, J2) 4.000000 0.000000 COST( I6, J3) 6.000000 0.000000 COST( I6, J4) 8.000000 0.000000 COST( I6, J5) 13.00000 0.000000 COST( I7, J1) 5.000000 0.000000 COST( I7, J2) 16.00000 0.000000 COST( I7, J3) 8.000000 0.000000 COST( I7, J4) 5.000000 0.000000 COST( I7, J5) 10.00000 0.000000 VOLUME( I1, J1) 0.000000 0.000000 VOLUME( I1, J2) 0.000000 4.000000 VOLUME( I1, J3) 0.000000 10.00000 VOLUME( I1, J4) 1.000000 0.000000 VOLUME( I1, J5) 0.000000 7.000000 VOLUME( I2, J1) 0.000000 5.000000 VOLUME( I2, J2) 1.000000 0.000000 VOLUME( I2, J3) 0.000000 6.000000 VOLUME( I2, J4) 0.000000 11.00000 VOLUME( I2, J5) 0.000000 3.000000 VOLUME( I3, J1) 0.000000 4.000000 VOLUME( I3, J2) 0.000000 10.00000 VOLUME( I3, J3) 0.000000 8.000000 VOLUME( I3, J4) 0.000000 9.000000 VOLUME( I3, J5) 0.000000 4.000000 VOLUME( I4, J1) 0.000000 2.000000 VOLUME( I4, J2) 0.000000 4.000000 VOLUME( I4, J3) 0.000000 3.000000 VOLUME( I4, J4) 0.000000 5.000000 VOLUME( I4, J5) 1.000000 0.000000 VOLUME( I5, J1) 0.000000 3.000000 VOLUME( I5, J2) 0.000000 0.000000 VOLUME( I5, J3) 0.000000 7.000000 VOLUME( I5, J4) 0.000000 4.000000 VOLUME( I5, J5) 0.000000 2.000000 VOLUME( I6, J1) 0.000000 9.000000 VOLUME( I6, J2) 0.000000 2.000000 VOLUME( I6, J3) 1.000000 0.000000 VOLUME( I6, J4) 0.000000 6.000000 VOLUME( I6, J5) 0.000000 11.00000 VOLUME( I7, J1) 1.000000 0.000000VOLUME( I7, J3) 0.000000 0.000000 VOLUME( I7, J4) 0.000000 1.000000 VOLUME( I7, J5) 0.000000 6.000000 MAN( I1, M6) 1.000000 0.000000 MAN( I1, M7) 13.00000 0.000000 MAN( I1, M8) 10.00000 0.000000 MAN( I1, M9) 1.000000 0.000000 MAN( I1, M10) 8.000000 0.000000 MAN( I2, M6) 10.00000 0.000000 MAN( I2, M7) 4.000000 0.000000 MAN( I2, M8) 8.000000 0.000000 MAN( I2, M9) 10.00000 0.000000 MAN( I2, M10) 5.000000 0.000000 MAN( I3, M6) 8.000000 0.000000 MAN( I3, M7) 6.000000 0.000000 MAN( I3, M8) 10.00000 0.000000 MAN( I3, M9) 9.000000 0.000000 MAN( I3, M10) 6.000000 0.000000 MAN( I4, M6) 6.000000 0.000000 MAN( I4, M7) 7.000000 0.000000 MAN( I4, M8) 11.00000 0.000000 MAN( I4, M9) 8.000000 0.000000 MAN( I4, M10) 4.000000 0.000000 MAN( I5, M6) 6.000000 0.000000 MAN( I5, M7) 3.000000 0.000000 MAN( I5, M8) 15.00000 0.000000 MAN( I5, M9) 8.000000 0.000000 MAN( I5, M10) 5.000000 0.000000 MAN( I6, M6) 11.00000 0.000000 MAN( I6, M7) 4.000000 0.000000 MAN( I6, M8) 5.000000 0.000000 MAN( I6, M9) 7.000000 0.000000 MAN( I6, M10) 10.00000 0.000000 MAN( I7, M6) 4.000000 0.000000 MAN( I7, M7) 12.00000 0.000000 MAN( I7, M8) 6.000000 0.000000 MAN( I7, M9) 3.000000 0.000000 MAN( I7, M10) 2.000000 0.000000 TASK( I1, M6) 1.000000 0.000000 TASK( I1, M7) 0.000000 14.00000 TASK( I1, M8) 0.000000 6.000000 TASK( I1, M9) 0.000000 0.000000 TASK( I1, M10) 0.000000 8.000000TASK( I2, M7) 0.000000 1.000000 TASK( I2, M8) 1.000000 0.000000 TASK( I2, M9) 0.000000 5.000000 TASK( I2, M10) 0.000000 1.000000 TASK( I3, M6) 0.000000 3.000000 TASK( I3, M7) 0.000000 3.000000 TASK( I3, M8) 0.000000 2.000000 TASK( I3, M9) 1.000000 4.000000 TASK( I3, M10) 0.000000 2.000000 TASK( I4, M6) 0.000000 1.000000 TASK( I4, M7) 0.000000 4.000000 TASK( I4, M8) 0.000000 3.000000 TASK( I4, M9) 0.000000 3.000000 TASK( I4, M10) 0.000000 0.000000 TASK( I5, M6) 0.000000 1.000000 TASK( I5, M7) 1.000000 0.000000 TASK( I5, M8) 0.000000 7.000000 TASK( I5, M9) 0.000000 3.000000 TASK( I5, M10) 0.000000 1.000000 TASK( I6, M6) 0.000000 9.000000 TASK( I6, M7) 0.000000 4.000000 TASK( I6, M8) 0.000000 0.000000 TASK( I6, M9) 0.000000 5.000000 TASK( I6, M10) 0.000000 9.000000 TASK( I7, M6) 0.000000 1.000000 TASK( I7, M7) 0.000000 11.00000 TASK( I7, M8) 0.000000 0.000000 TASK( I7, M9) 1.000000 0.000000 TASK( I7, M10) 0.000000 0.000000Row Slack or Surplus Dual Price1 39.00000 -1.0000002 0.000000 0.0000003 0.000000 0.0000004 0.000000 -5.0000005 0.000000 -4.0000006 0.000000 -8.0000007 0.000000 -4.0000008 0.000000 -4.0000009 0.000000 3.00000010 0.000000 0.00000011 1.000000 0.00000012 0.000000 0.00000013 1.000000 0.00000014 0.000000 2.00000015 0.000000 0.00000016 0.000000 -5.00000017 0.000000 -3.00000018 0.000000 -8.00000019 0.000000 -5.00000020 0.000000 -4.00000021 0.000000 4.00000022 1.000000 0.00000023 1.000000 0.00000024 0.000000 0.00000025 0.000000 0.00000026 0.000000 3.00000027 0.000000 2.000000。

相关文档
最新文档