LINGO在数学建模中的应用

合集下载

lingo--11

lingo--11
S2
S4 S3
160 690
290
30 S7
160
320
20
70
20
30
70
12110
720
520
88
500 62
420
A14
1100
202
S1
462 S5 10
70
A13
42
10
210
220
20
12
A12
195 31
306
480
300 A11
A10
A9
S1~S7 钢管厂
优化建模与LINDO/LINGO软件
第12章 数学建模竞赛中的部分优化问题
简要提纲
1. CUMCM-1995A: 一个飞行管理问题 2. CUMCM-2000B: 钢管订购与运输 3. CUMCM-2003B:露天矿生产的车辆安排 4. CUMCM-2000D: 空洞探测
1995年全国大学生数学建模竞赛A题
fij(t) 大于等于0肯定成立
fij(t) 大于等于0等价于 fij (Tij ) 0
若0 ti*j Tij
fij(t)
大于等于0等价于
fij
(t* ij
)
0
bi2j 4cij 0,
最后,优化模型为
LINGO求解
一个简化的数学模型 任何一架飞机在区域中停留最长时间
Tmax 2D / v 160 2 / 800 0.283
初始位置
(
xi0
,
yi0
),
0 i
i
0 i
i
时刻t飞机的位置
xit xi0 vt cosi ,
y

lingo1

lingo1
3、运输方案要在满足物质需求和装载条件下安排从各供应点 到各需求点的运量和路线,使其运输费用最低。 4、生产计划要按产品工艺流程和顾客需求,制定原料、零件、 部件等订购、投产的日程和数量,尽量降低成本使利润最高。
解决方案:
1、依赖过去的经验判断面临的问题。 2、做大量的实验反复比较。 3.数学建模。

优化模型的三要素:
1、决策变量
2、目标函数 3、约束条件
优化模型
概念:在工程技术、经济管理、科学研究和日常生活 等诸多领域中,人们经常遇到的一类决策问题:在一 系列客观或主观限制条件下,寻求使所关注的某个或 多个指标达到最大(或最小)的决策。
1、结构设计要在满足强度要求的条件下选择材料的尺寸,使 其总重量最轻。
2、资源分配在有限资源约束下制定各用户的分配数量,使资 源产生的总效益最大。

数学建模lingo作业-习题讲解

数学建模lingo作业-习题讲解

基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。

根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。

生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。

每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。

厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。

其次要求满意销售额达到或者尽量接近275000元。

最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。

同时注意到增加生产时间要比包装时间困难得多。

试为该节能灯具厂制定生产计划。

解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。

第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。

在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。

(1) 关于生产数量的目标约束。

用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。

用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。

因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。

数学建模方法归类(很全很有用)

数学建模方法归类(很全很有用)

在数学建模中常用的方法:类比法、二分法、量纲分析法、差分法、变分法、图论法、层次分析法、数据拟合法、回归分析法、数学规划(线性规划,非线性规划,整数规划,动态规划,目标规划)、机理分析、排队方法、对策方法、决策方法、模糊评判方法、时间序列方法、灰色理论方法、现代优化算法(禁忌搜索算法,模拟退火算法,遗传算法,神经网络)。

用这些方法可以解下列一些模型:优化模型、微分方程模型、统计模型、概率模型、图论模型、决策模型。

拟合与插值方法(给出一批数据点,确定满足特定要求的曲线或者曲面,从而反映对象整体的变化趋势):matlab可以实现一元函数,包括多项式和非线性函数的拟合以及多元函数的拟合,即回归分析,从而确定函数;同时也可以用matlab实现分段线性、多项式、样条以及多维插值。

在优化方法中,决策变量、目标函数(尽量简单、光滑)、约束条件、求解方法是四个关键因素。

其中包括无约束规则(用fminserch、fminbnd实现)线性规则(用linprog实现)非线性规则、(用fmincon实现)多目标规划(有目标加权、效用函数)动态规划(倒向和正向)整数规划。

回归分析:对具有相关关系的现象,根据其关系形态,选择一个合适的数学模型,用来近似地表示变量间的平均变化关系的一种统计方法(一元线性回归、多元线性回归、非线性回归),回归分析在一组数据的基础上研究这样几个问题:建立因变量与自变量之间的回归模型(经验公式);对回归模型的可信度进行检验;判断每个自变量对因变量的影响是否显著;判断回归模型是否适合这组数据;利用回归模型对进行预报或控制。

相对应的有线性回归、多元二项式回归、非线性回归。

逐步回归分析:从一个自变量开始,视自变量作用的显著程度,从大到地依次逐个引入回归方程:当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉;引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步;对于每一步都要进行值检验,以确保每次引入新的显著性变量前回归方程中只包含对作用显著的变量;这个过程反复进行,直至既无不显著的变量从回归方程中剔除,又无显著变量可引入回归方程时为止。

用lingo求解线性规划问题

用lingo求解线性规划问题

用lingo求解线性规划问题中国石油大学胜利学院程兵兵摘要食物营养搭配问题是现代社会中常见的问题,其最终的目的是节省总费用.本文通过对营养问题的具体剖析.构建了一般的线性规划模型。

并通过实例应用Lingo数学软件求解该问题.并给出了价值系数灵敏度分析,得出蔬菜价格的变动对模型的影响.关键词线性规划,lingo,灵敏度分析。

一、问题重述与分析营养师要为某些特殊病人拟订一周的菜单,可供选择的蔬菜及其费用和所含营养成分的数量以及这类病人每周所需各种营养成分的最低数量如下表1所示。

有以下规定:一周内所用卷心菜不多于2份,其他蔬菜不多于4份。

问题一:若病人每周需要14份蔬菜,问选用每种蔬菜各多少份,可使生活费用最小.问题二:当市场蔬菜价格发生怎样波动时,所建模型的适用性。

表 1 所需营养和费用营养搭配是一个线性规划问题,在给定蔬菜的情况下,要求菜单所需的营养成分必须达到要求,并在此条件下求出什么样的搭配所花费的费用最少.第一个要求是满足各类营养的充足,根据表中数据列出不等式。

第二要求为问题一中,蔬菜的份数必须为14,第三要求为在一周内,卷心菜不多于2份,其他不多于4份,根据以上条件列出各类蔬菜份数的限定条件,并可表示出费用的表达式.对于第二问,就是价值系数的变化对总费用的影响,模型的适用范围。

三、模型假设第一,假设各蔬菜营养成分保持稳定,满足题干要求。

第二,假设各蔬菜价格在一定时间内保持相对稳定。

第三,假设各类蔬菜供应全部到位,满足所需要求量. 第四,假设所求出最优解时不要求一定为整数。

四、符号约定(1)Z 代表目标函数,此题即为费用。

(2)i c 为价值系数,此题即为每份蔬菜的价格。

下标i 代表蔬菜的种类。

(3)i x 为决策变量,表示各种蔬菜的数量。

(4)i b 为最低限定条件,表示蔬菜最低营养需要。

五、模型建立根据以上各种假设和符号约定,建立模型如下。

所求的值就是min,也就是最优化结果.s 。

lingo例子

lingo例子

承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。

如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写): A我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):中南大学参赛队员(打印并签名) :1. 周亚石2. 李倩3. 邹文杰指导教师或指导教师组负责人(打印并签名):日期: 2014 年 8 月 25 日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):一个产品的质量控制与成本核算问题摘要本文研究了产品的质量控制与成本核算问题。

当产品质量越高,售价也会越高,但是成本也相应会升高。

因此为达到利润最大化,应该控制合适的质量。

首先,本文就所给产品相关参数,采用单一产品的利润代替平均利润。

首先利用X,Y 为独立的均匀分布求出Z的分布函数,然后对Z的概率密度函数在各偏差段概率密度积分求出正品次品和废品的概率表达式。

然后建立目标函数,根据目标函数和约束条件求出最大利润。

采用数形结合方法将产品的质量共分五种情况讨论,结合实际情况中不可能消除次品情况,使用lingo软件,求出平均利润最优解w=1604.414。

然后,将单位产品的平均利润设为0,本文根据第一问所解,也分五种情况用LINGO 求解零件的加工费用与的比例常数C,结合实际情况确定最优解C=3.811399。

LINGO教程

注意:用“[]”表示该部分内容可选。下同,不再赘述。 Setname是你选择的来标记集的名字,最好具有较强的可读 性。集名字必须严格符合标准命名规则:以拉丁字母或下划 线(_)为首字符,其后由拉丁字母(A—Z)、下划线、阿 拉伯数字(0,1,…,9)组成的总长度不超过32个字符的 字符串,且不区分大小写。
2012学年暑期数学建模培训
7.例题 x3
s.t .
2 x1 x 2 x 3 5
4 x1 3 x 2 x 3 3 x1 x2 x3 2
x1 , x2 , x3 0
2012学年暑期数学建模培训
例2
max z 5 x1 10 x 2 3 x 3 6 x 4
2012学年暑期数学建模培训
@log(x) 返回x的自然对数 @lgm(x) 返回x的gamma函数的自然对数 @sign(x) 如果x<0返回-1;否则,返回1 @floor(x) 返回x的整数部分。 当x>=0时,返回不超过x的最大整数; 当x<0时,返回不低于x的最大整数。 @smax(x1,x2,…,xn) 返回x1,x2,…,xn 中的最大值 @smin(x1,x2,…,xn) 返回x1,x2,…,xn 中的最小值
2012学年暑期数学建模培训
例4
学生
性别
年龄 构成的语言程序
!集部分
sets: students/John,Jill,Rose,Mike/:sex,age; !学生集:性别属性sex,1表示男性,0表示女性;年龄属性 age. linkmf(students,students)|sex(&1) #eq# 1 #and# sex(&2) #eq# 0: friend; !男学生和女学生的联系集:友好程度属性friend,[0,1]之间 的数。 linkmf2(linkmf) | friend(&1,&2) #ge# 0.5 : x; !男学生和女学生的友好程度大于0.5的集; endsets

数学建模竞赛实践报告(2篇)

第1篇一、引言数学建模竞赛是一种综合运用数学知识、计算机技术和实际问题的解决能力的竞赛。

通过参加数学建模竞赛,可以提高学生的创新意识、团队协作能力和实际应用能力。

本文以某次数学建模竞赛为例,总结实践过程中的经验与收获。

二、竞赛背景本次数学建模竞赛以我国某城市交通拥堵问题为背景,要求参赛团队运用数学建模方法对问题进行分析、求解,并提出相应的解决方案。

比赛时间为72小时,参赛队伍需在规定时间内完成模型建立、求解、论文撰写等工作。

三、实践过程1. 确定问题在接到竞赛题目后,团队成员首先对问题进行深入分析,明确问题的核心和关键点。

针对本次竞赛,我们重点关注了以下问题:(1)交通拥堵原因分析;(2)交通拥堵对城市的影响;(3)交通拥堵治理策略。

2. 模型建立在明确问题后,团队成员开始着手建立数学模型。

本次竞赛采用混合整数线性规划模型,主要分为以下几个部分:(1)建立交通网络模型,包括道路、交叉口、交通流等元素;(2)建立交通需求预测模型,包括人口、车辆、出行需求等数据;(3)建立交通拥堵评价模型,采用交通拥堵指数(如交通拥堵系数)进行评价;(4)建立交通拥堵治理策略模型,包括交通信号控制、公共交通优先、交通需求管理等策略。

3. 模型求解在模型建立完成后,团队成员利用Lingo软件进行模型求解。

针对本次竞赛,我们采用了以下求解策略:(1)对模型进行简化,提高求解效率;(2)采用参数化方法,对模型进行分阶段求解;(3)根据实际情况,对模型参数进行调整。

4. 论文撰写在模型求解完成后,团队成员开始撰写论文。

论文主要包括以下几个部分:(1)引言:介绍问题背景、研究目的和意义;(2)模型建立:详细阐述模型的建立过程,包括模型结构、参数设置等;(3)模型求解:介绍求解过程、结果分析及优化策略;(4)结论:总结研究成果,提出建议和展望。

四、实践收获1. 提高数学建模能力:通过本次竞赛,团队成员在模型建立、求解和论文撰写等方面得到了很大提升,为今后从事数学建模工作打下了坚实基础。

lingo学习笔记文档数学建模

选项设置• Preprocess:预处理(生成割平面);• Preferred Branch:优先的分枝方式:“Default”(缺省方式)、“Up”(向上取整优先)、“Down”(向下取整优先);• IP Optimality Tol:IP最优值允许的误差上限(一个百分数,如5%即0.05);• IP Objective Hurdle:IP目标函数的篱笆值,即只寻找比这个值更优最优解(如当知道当前模型的某个整数可行解时,就可以设置这个值);• IP Var Fixing Tol:固定一个整数变量取值所依据的一个上限(如果一个整数变量的判别数(REDUCED COST)的值很大,超过该上限,则以后求解中把该整数变量固定下来)。

Nonzero Limit:非零系数的个数上限;Iteration Limit:最大迭代步数;Initial Contraint Tol:约束的初始误差上限;Final Contraint Tol:约束的最后误差上限;Entering Var Tol:进基变量的REDUCEDCOST的误差限;Pivot Size Tol:旋转元的误差限Report/StatisticsROWS= 5 VARS= 4 INTEGER VARS= 2( 0 = 0/1) QCP= 4NONZEROS= 19 CONSTRAINT NONZ= 12( 6 = +-1) DENSITY=0.760 SMALLEST AND LARGEST ELEMENTS IN ABSOLUTE VALUE= 0.300000 277.000 OBJ=MIN, NO. <,=,>: 2 0 2, GUBS <= 1 VUBS >=SINGLE COLS= 0 REDUNDANT COLS= 0第一行:模型有5行(约束4行),4个变量,两个整数变量(没有0-1变量),从第4行开始是二次规划的实际约束。

大学生数学建模:作业-线性规划的实验

实验课题:(一)线性规划问题1.用lingo求解下列线性规划问题:2. 某班男同学30人、女同学20人,植树。

工作效率(个/人、天)如下表。

如何安排,植树最多?3.某牧场饲养一批动物,平均每头动物至少需要 700g 蛋白质、30g 矿物质和100g 维生素。

现有A、B、C、D、E五种饲料可供选用,每千克饲料的营养成分(单位:g)与价格(单位:元/kg)如下表所示:试求能满足动物生长营养需求又最经济的选用饲料方案。

4.在以色列,为分享农业技术服务和协调农业生产,常常由几个农庄组成一个公共农业社区。

在本课题中的这个公共农业社区由三个农庄组成,我们称之为南方农庄联盟。

南方农庄联盟的全部种植计划都由技术协调办公室制订。

当前,该办公室正在制订来年的农业生产计划。

南方农庄联盟的农业收成受到两种资源的制约。

一是可灌溉土地的面积,二是灌溉用水量。

这些数据由下表给出。

注:英亩-英尺是水容积单位,1英亩-英尺就是面积为1英亩,深度为1英尺的体积;1英亩-英尺≈1233.48立方米。

南方农庄联盟种植的作物是甜菜、棉花和高粱,这三种作物的纯利润及耗水量不同。

农业管理部门根据本地区资源的具体情况,对本联盟农田种植规划制定的最高限额数据由下表给出。

三家农庄达成协议:各家农庄的播种面积与其可灌溉耕地面积之比相等;各家农庄种植何种作物并无限制。

所以,技术协调办公室面对的任务是:根据现有的条件,制定适当的种植计划帮助南方农庄联盟获得最大的总利润,现请你替技术协调办公室完成这一决策。

对于技术协调办公室的上述安排,你觉得有何缺陷,请提出建议并制定新的种植计划。

5.有一艘货轮,分前、中、后三个舱位,它们的容积与最大允许载重量如下表所示:前舱中舱后舱最大允许载重量(t)2000 3000 1000容积(m3)4000 5400 1000现有三种货物待运,已知有关数据如下表所示:商品数量(件)每件体积(m3/件)每件重量(t/件)运价(元/件)A 600 10 8 1000B 1000 5 6 700C 800 7 5 600又为了航运安全,要求前、中、后舱在实际载重量上大体保持各舱最大允许载重量的比例关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、LINGO简介LINGO[1]是美国LINDO系统公司开发的求解数学规划系列软件中你的一个,它的主要功能是求解大型线性、非线性和整数规划问题,LINGO的不同版本对模型的变量总数、非线性变量数目、整型变量数目和约束条件的数量做出不同的限制.LINGO的主要功能特色为:(1)既能求解线性规划问题,也有较强的求解非线性规划问题的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强.(4)内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;(6)能方便地与EXCEL、数据库等其他软件交换数据.LINGO像其他软件一样,对他的语法有规定,LINGO的语法规定如下:(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;(2) 每个语句必须以字母开头,由字母、数字和下划线所组成,昌都不超过32个字符,不区分大小写;(3)每个语句必须以分号“;”结束,每行可以有多个语句,语句可以跨行;(4)如果对变量的取值范围没有特殊说明,则默认所有决策变量都非负;(5)LINGO模型以语句“MODEL”开头,以语句“END”结束,对于比较简单的模型,这这两个语句可以省略.LINGO提供了五十几个内部函数,使用这些函数可以大大减少编程工作量,这些函数都是以字符@开头,下面简单介绍其中的集合操作函数和变量定界函数及用法.集合是LINGO建模语言中最重要的概念,使用集合操作函数能够实现强大的功能,LINGO 提供的常用集合操作函数有@FOR(s:e)、@SUM(s:e)、@MAX(s:e)、@MIN(s:e)等.@FOR(s:e)常用在约束条件中,表示对集合s 中的每个成员都生成一个约束条件表达式,表达式的具体形式由参数e 描述;@SUM(s:e) 表示对集合s 中的每个成员,分别得到表达式e 的值,然后返回所有这些值的和;@MAX(s:e) 表示对集合s 中的每个成员,分别得到表达式e 的值,然后返回所有这些值中的最大值;@MIN(s:e) 表示对集合s 中的每个成员,分别得到表达式e 的值,然后返回所有这些值中的最小值.LINGO 默认变量的取值可以从零到正无穷大,变量定界函数可以改变默认状态,如对整数规划,限定变量取整数,对0-1规划,限定变量取0 1或.LINGO 提供的变量定界函数有:@BIN(X)、@BND(L,X,U)、@GIN(X)、@FREE(X).@BIN(X)限定X 为0或1,在0-1规划中特别有用;@GIN(X)限定X 为整数,在整数规划中特别有用;@BND(L,X,U)限定L <X <U,可用作约束条件;@FREE(X)取消对X 的限定,即X 可以取任意实数.二、LINGO 在线性规划中的应用具有下列三个特征的问题称为线性规划问题(Linear program )[2]简称LP 问题,其数学模型称为线性规划(LP)模型.线性规划问题数学模型的一般形式为:求一组变量(1,2,,)j x j n = 的值,使其满足1122max(min),n n z c x c x c x =+++2111122111211222221122***.0,1,2,,,,..n j n n n n nn nn n n x j n a x a x a x b a x a x a x b s t a x a x a x b ⎧⎪⎪⎪⎨⎪⎪≥=⎪⎩+++++++++式中“*”代表“≥”、“ ≥”或“=”.上述模型可简写为1max(min),njj j z cx ==∑1*0,1,2,,,1,2,,..nij j j ji a x x j n b i m s t =⎧⎪⎨⎪≥=⎩=∑其中,变量j x 称为决策变量,函数1njj j z cx ==∑称为目标函数,条件1*nj j i j c x b =∑称为约束条件,0j x ≥ 称为非负约束.在经济问题中,又称j c 为价值系数,i b 为资源限量. 线性规划在科学决策与经营管理中实效明显[3],但是对于规模较大的线性模型,其求解过程非常繁琐,不易得出结果.而 LINGO 中的内部集合函数有@FOR(s:e)、@SUM(s:e)、@MAX(s:e)、@MIN(s:e)等,可以用这些集合函数使程序编程简单可行,下面举例说明.例1 某工厂有两条生产线,分别用来生产M 和P 两种型号的产品,利润分别为200元每个和300元每个,生产线的最大生产能力分别为每日100和120,生产线没生产一个M 产品需要1个劳动日(1个工人工作8小时称为1个劳动日)进行调试、检测等工作,而每个P 产品需要2个劳动日,该工厂每天共计能提供160个劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?解 设两种产品的生产量分别为1x 和2x ,则该问题的数学模型为:目标函数 12max 200300z x x =+约束条件212100,120,160,0,1,2.ix x x x x i ≤⎧⎪≤⎪⎨+≤⎪⎪≥=⎩ 编写LINGO 程序如下:MODEL:SETS:SHC/1,2 /:A,B,C,X; YF/1,2,3 /:J;ENDSETSDATA:A=1,2 ; B=100,120; C=200,300;ENDDATAMAX=@SUM(SHC:C*X);@FOR(SHC(I):X(I)<B(I)); @SUM(SHC(I):A(I)*X(I))<=160;END程序运行结果如下Global optimal solution found.Objective value: 29000.00 Total solver iterations: 0 Variable Value Reduced CostA( 1) 1.000000 0.000000A( 2) 2.000000 0.000000B( 1) 100.0000 0.000000B( 2) 120.0000 0.000000C( 1) 200.0000 0.000000C( 2) 300.0000 0.000000X( 1) 100.0000 0.000000X( 2) 30.00000 0.000000J( 1) 0.000000 0.000000J( 2) 0.000000 0.000000J( 3) 0.000000 0.000000Row Slack or Surplus Dual Price 1 29000.00 1.000000 2 0.000000 50.00000 3 90.00000 0.000000 4 0.000000 150.0000最优解为12100,30,x x ==最优值为29000.00z =.即每天生产100个M 产品30个P 产品,可获得29000元利润.三、LINGO 在整数规划和0-1规划中的应用1 求解整数规划整数规划[4]分为整数规划和混合整数规划,要求全部变量都为非负整数的数学规划称为纯整数规划,只要求部分变量为非负整数的数学规划称为混合整数规划.下面只讨论约束条件和目标函数均为线性的整数规划问题,即整数线性规划问题(以下简称整数规划,记为ILP ),其数学模型的一般形式是()1m ax m in njj j z cx ==∑,()()11,2,,..01,2,,nij j i j j j a x b i n s t x j n x =⎧≤=⎪⎪⎪≥=⎨⎪⎪⎪⎩∑ 全为整数或部分为整数。

()1 且称线性规划问题()1m ax m in ,njj j z cx ==∑()()11,2,,,..01,2,,.nij j i j j a x b i m s t x j n =⎧≤=⎪⎨⎪≥=⎩∑ ()2为整数规划问题的松弛问题.显然,整数规划()1的可行域是其松弛问题()2的可行域的一个子集.如果线性规划()2的最优解为()0x ,相应的规划规划()1的最优解为*x ,则必然有()0*cx cx ≤.LINGO 的内部函数@GIN(X)是限定X 为整数,因此,LINGO 对整数规划的求解是可行的.下面举例说明:例 2 某疗养院营养师要为某类病人拟订本周蔬菜类菜单,当前可供选择的蔬菜品种、价格和营养成分含量,以及病人所需养分的最低数量见表1,病人1周需14份蔬菜,为了口味的原因,规定每周内的卷心菜不多于2份,胡萝卜不多于3份,其他蔬菜不多于4份且至少1份.在满足要求的前提下,制定费用最少的一周菜单方案. 表1 可供蔬菜养分含量和价格解 用i x 表示7种蔬菜的份数,i a 表示蔬菜单价,i b 表示每周最低营养需求,ij c 表示第i 种蔬菜的第j 种养分含量,建立如下整数规划模型71m in i ii z a x ==∑71422..3,1,1,3,5,6,7.1,1,3,5,6,7.ij i j i ii c x b x s t x x i x i =⎧>⎪⎪≤⎪⎪≤⎨⎪≥=⎪⎪≤=⎪⎩∑ LINGO 程序如下: MODEL : SETS :SHC/1 2 3 4 5 6 7/:AI,X; YF/1 2 3 4 5 6/:BJ; JIAGE(SHC,YF):C; ENDSETS DATA :AI=2 1 1.8 1.2 2.0 1.2 1.5; BJ=7 140 14800 400 7 4; C=0.45 20 415 22 0.3 0.2 0.45 28 4065 5 0.35 0.25 0.65 40 850 43 0.6 0.3 0.4 25 75 27 0.2 0.12 0.5 26 76 48 0.4 0.15 0.5 75 235 8 0.6 0.21 0.6 45 240 20 0.2 0.25; ENDDATAMIN =@SUM (SHC:AI*X); @FOR (SHC(I):@GIN (X(I))); @FOR (SHC(I):X(I)>=1);@SUM (SHC(I):X(I))=21; X(2)<=3; X(3)<=2;@FOR (SHC(I)|I #NE# 2 #AND# I #NE# 4:X(I)<=4); @FOR (YF(J):@SUM (SHC(I):X(I)*C(I,J))>=BJ(J)); ENDGlobal optimal solution found.Objective value: 28.00000 Extended solver steps: 0 Total solver iterations: 6Variable Value Reduced CostX( 1) 1.000000 2.000000 X( 2) 3.000000 1.000000 X( 3) 2.000000 1.800000 X( 4) 8.000000 1.200000 X( 5) 1.000000 2.000000 X( 6) 4.000000 1.200000 X( 7) 2.000000 1.500000当12345671,3,2,8,1,4,2x x x x x x x =======时,目标函数最小,min 28z =.2求解0-1规划在整数规划中,当对变量的限定为变量的值只能取整数值时,我们把整数规划称为0-1规划[5],0-1规划化为以下标准形式:1m ax njj j z cx ==∑,()()()101,2,,,..1,2,,,011,2,,.j n ij j j j j c j n s t a x b i m x j n =⎧≤=⎪⎪≤=⎨⎪⎪==⎩∑ 或 任意0-1规划模型如何化为标准形式:(1)如果目标函数是求最小值,则对目标函数两边乘以-1,变为求最大值; (2)如果目标函数中某变量j x 的系数0j c >,则令1j j x y =-替换j x 为0-1变量, 于是变量j y 在目标函数中的系数j c 变成小于0;(3)如果约束条件是“≥”形式,则可两边乘以-1,变为“≤”形式;(4)如果约束条件中含有等式,则可将每个等式化为两个“≤”形式的不等式. LINGO 内部函数@BIN(X)的作用是限定X 为0或1,因此,LINGO 对整数规划的求解是可行的.下面举例说明:例3 分配六个人去完成6项任务,每人完成一项,每项任务只能由一人去完成,六个人分别完成各项任务的效益如下表所示,试做出任务分配使效益最大. 各人完成各项任务的效益解 用(1,2,,6,1,2,6)ij x i j == 表示第i 个人是否完成第j 项任务,当1ij x =表示第i 个人完成第j 项任务,0ijx =第i 个人不完成第j 项任务,用ij c 表示第i 个人完成第j 项任务的效率 模型建立如下:6611m in ijij i j z cx ===∑∑61611..1ij i ij j x s t x ==⎧=⎪⎪⎨⎪=⎪⎩∑∑ 编写程序如下: MODEL : SETS :RENWU/1,2,3,4,5,6/; MEN/1,2,3,4,5,6/; WCHRW(MEN,RENWU):C,x; ENDSETS DATA :C=20,15,16,5,4,7 17,15,33,12,8,6 9,12,18,16,30,13 12,8,11,27,19,14 0,7,10,21,10,32 0,0,0,6,11,13; ENDDATAMAX =@SUM (WCHRW(I,J):C*X); @FOR (WCHRW(I,J):@BIN (X(I,J)));@FOR (MEN(I):@SUM (RENWU(J):X(I,J))=1); @FOR (RENWU(J):@SUM (MEN(I):X(I,J))=1); ENDGlobal optimal solution found.Objective value: 142.0000 Objective bound: 142.0000 Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 0当111x =,231,x =351,x =441,x =561,x =621,x =时,m ax z =142.即第一个人完成第一项任务,第二个人完成第二项任务,第三个人完成第三项任务,第四个人完成第四项任务,第五个人完成第五项任务,第六个人完成第六项任务时,效率最高.四 LINGO 在多目标规划中的应用多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解.常用的解法有[6]:(1)主要目标法.确定一个主要目标,把次要目标作为约束条件并设定适当 界限值.(2) 线性加权平均法.对每个目标按其重要程度赋予适当权重0i ω≥,且1iω=∑,然后把()i i f x ω∑作为新的目标函数(其中()1,2,,i f x i p =,是原来的p 个目标).(3)指数加权平均法.设()i f x 是原来的p 个目标,令[()]ipa i iZ f x =∏,其中i a 为指数加权,把Z 作为新的目标函数.(4)理想点法.先分别求出p 个单目标规划的最优解*t f ,令()h x =然后把它作为新的目标函数.(5)分层序列法[7].将所有p个目标按其重要程度排序,先找出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提下,依次求下一个目标的最优解,一直求到最后一个目标为止.这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处,例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样;线性加权求和法,指数加权乘积法和理想点法通常只能用在两个目标的单位(量纲)相同的情况,如投资时希望收益要大、风险要小,这是双目标规划,若收益和风险的物理单位(元或百分比)相同,可以考虑用线性加权求和法、指数加权乘积法或理想点法把它们组合起来,化双目标规划为点目标规划.如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,将它们相加或比较是不合适的,如火箭弹射程的单位是米或千米,且数量级比较大,而射击精度通常用样本方差来表示,其量纲是平方米,且数量级小,将两者比较、相加或者求理想点是没有有意义的.下面介绍一个双目标规划的例子.例 4某工厂有工人300名,生产A,B,C,D四种产品,要求每人每周工作时间在20-48小时内,C的产量每周至少150件,而每周至多20吨煤,其他数据见下表:问应如何安排每周生产,才能使利润最高,而能耗最少?解用x表示四种产品的产量,i a表示每件i产品的利润,i b表示每100件i产i品的能耗,c表示生产每件i产品的时间,i d表示i种产品的最大产量.建立双目标i规划模型如下:41m ax i i i z a x ==∑41m in iii y b x==∑414141314400,12000,..2000,,1,2,3,4,150,,1,2,3,4.i i i i i i i ii i i i c x c x s t b x x N i x x d i ===⎧<=⎪⎪⎪>=⎪⎪⎪⎨<=⎪⎪∈=⎪⎪>=⎪<==⎪⎩∑∑∑ LINGO 程序如下: MODEL : SETS :YF/B1 B2 B3 B4 /:B,A,C,D,X; ENDSETS DATA :A=10 20 12 14; B=1.5 2 1.8 1.1; C=13 13.5 14 11.5; D=270 240 460 130; ENDDATAMAX =@SUM (YF(I):A*X); @FOR (YF(I):@GIN (X(I))); @SUM (YF(I):B(I)*X(I))<=2000;X(3)>=150;@FOR (YF(I):X(I)<=D(I)); @SUM (YF(I):C(I)*X(I))<=14400; @SUM (YF(I):C(I)*X(I))>=12000; END具体求解结果为:Objective value: 14620.00 Extended solver steps: 0 Total solver iterations: 3Variable Value Reduced CostX( B1) 248.0000 -10.00000 X( B2) 240.0000 -20.00000 X( B3) 460.0000 -12.00000 X( B4) 130.0000 -14.00000即A 、B 、C 、D 四种产品各生产248件、240件、460件、130件时,能使利润最高,最高利润为14620元.题目还要求能耗最少,因此用分层序列法,把利润最高的计算结果作为约束条件,即增加约束条件:4114620i i i a x ==∑,把41m in i ii y b x ==∑作为目标函数,建立单目标规划模型求解. LINGO 程序如下: MODEL : SETS :YF/B1 B2 B3 B4 /:B,A,C,D,X; ENDSETS DATA :A=10 20 12 14; B=1.5 2 1.8 1.1;C=13 13.5 14 11.5;D=270 240 460 130;ENDDATAMIN=@SUM(YF(I):B(I)*X(I)/100);@SUM(YF(I):A*X)<=14620;@FOR(YF(I):@GIN(X(I)));@SUM(YF(I):B(I)*X(I))<=2000;X(3)>=150;@FOR(YF(I):X(I)<=D(I));@SUM(YF(I):C(I)*X(I))<=14400;@SUM(YF(I):C(I)*X(I))>=12000;END具体求解结果为:Objective value: 14.58900Extended solver steps: 0Total solver iterations: 5Variable Value Reduced CostX( B1) 270.0000 0.1500000E-01 X( B2) 42.00000 0.2000000E-01X( B3) 460.0000 0.1800000E-01X( B4) 129.0000 0.1100000E-01即每周生产A、B、C、D四种产品各270件、42件、460件、129件,能使利润最高,能耗最少.五用LINGO求非线性曲线拟合的最小二乘解设观测数据为(,)i i x y ,),,2,1(n i =,希望用一条相对光滑的曲线)(x f y =来近似表示变量y 与x 的关系,不要求它通过每个数据点(节点),但要求曲线与数据点之间的距离尽可能小,称)(x f 为拟合函数或经验公式[8].设拟合函数的表达式中含有若干待定常数(1,2,,)i a j m = ,称为回归系数,用向量符号记为12(,,,)Tm A a a a = ,则曲线方程记为),(x A f y =,其具体形式可由散点图或通过建立数学模型来确定.设拟合函数形式已知为),(x A f y =,其中12(,,,)T m A a a a = 是待定常数(回归系数),求待定常数A 的方法通常用最小二乘法,其算法原理是求出使均方误差21()[(,)]NI Q A i i f A x y ==-∑取最小值的A,其结果称为最小二乘解,于是问题转化为多元函数的最小值:min A21()[(,)]nI Q A i if A x y ==-∑ .上式可以看成是目标函数为非线性函数,没有约束条件的规划问题,适合用LINGO 求解,举例如下:例5 2004年全国大学生数学建模竞赛C 题中给出体重约70kg 的某人在短时间内喝下2瓶啤酒后,隔一定时间测量他的学业者酒精含量[)/(102⨯ml mg ],得到数据见下表,请建立饮酒后血液中酒精含量的数学模型.血液中酒精含量数据解 把人体内酒精的吸收、代谢、排除过程分成两个室,胃为第一室,血液为第二室,酒精先进入胃,然后被吸收进入血液,由循环到达体液内,在通过代谢、分解剂排泄、出汗、呼气等方式排泄.假设胃里的酒精被吸收进入血液的速度与胃里的酒精)(t x 成正比,比例常数为1k ,血液中的酒精被排出的速度与血液内的酒量)(t y 成正比, 比例系数为2k . 短短时间内喝入胃里的酒精总量为0G . 则可以建立如下微分方程模型:'1'120,,(0),(0)0.x k x y k x k y x G y ⎧=-⎪=-⎨⎪==⎩这是线性常系数微分方程组,求解得到210112()(),k tk tG k y t k k e e--=--如果统一用123,,a a a 表示待定常数,则上式可以写成321()().a ta ty t a ee--=-由已知数据求出使()32121na ta tii a eey --=⎡⎤--⎣⎦∑最小的待定系数123,,a a a ,程序如下: MODEL : SETS :SJD/1..23/:T,Y; ENDSETS DATA :T=0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16;Y=30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4;ENDDATAMIN =@SUM (SJD(I):(A1*(@EXP (-A2*T)-@EXP (-A3*T))-Y)^2); END运行结果如下:Local optimal solution found.Objective value: 225.3417 Extended solver steps: 5 Total solver iterations: 138 Variable Value Reduced CostA1 114.4325 0.000000A2 0.1855020 0.5787570E-08A3 2.007938 0.000000程序中定义SJD 是含有23个成员的集合,T 和Y 是SJD 的两个属性,分别表示时间t 和血液中酒精浓度y ,它们都是包含23个成员的以为数组(向量).点击运行按钮,很快得到计算结果:1a =114.4325,2a =0.1855020,3a =2.007938,目标函数值(即最优解)为225.3417.总结LINGO 软件作为一种解决许多规划问题的软件包[7],可以用LINGO 软件模型解决许多规划问题,方法简单易行,操作灵活,比较适用于规划理论的求解.通过用LINGO 对上面各个模型的求解,可以看出,由于LINGO 的内部函数限定变量取0 1或.LINGO 提供的变量定界函数有:@FOR(s:e)、@SUM(s:e)、@MAX(s:e)、@MIN(s:e)@BIN(X)、@BND(L,X,U)、@GIN(X)、@FREE(X).@BIN(X)等,使得在编写程序时,可以避免使用for,if 等循环语句,相对于用C 语言求解,LINGO 求解规划问题是十分方便的.参考文献:[1]袁新生,邵大宏,郁时炼.LINGO和Excel在数学建模中的应用[M].北京:科学出版社,2007.[2]贾贞等.运筹学原理与实验教程[M].武汉:华中师范大学出版社,2008.[3]田维.用Matlab与Lindo求解线性规划[J].德宏师范高等专科学校学报,2006,8(1):106-111.[4]刁在筠,郑汉鼎,刘家壮,刘桂真.运筹学[M].北京:高等教育出版社,2001.[5]徐玖平,胡知能.运筹学:数据·模型·决策[M].北京:科学出版社,2009.[6]邓成梁等.运筹学的原理和方法[M].武汉:华中理工大学出版社,1998,3.[7]许数柏.数学生态学模型与研究方法[J].安康师专报,2002,12(2):4-8.[8]李磊.露天矿生产的车辆安排的模型和评述[J].工程数学学报,2003,12(7):91-100.致谢本课题在选题及研究过程中得到数学科学学院吴庆丰老师的悉心指导,并为我提供相关资料,在此表示衷心的感谢!尤其是吴老师严谨的治学态度深深影响了我,使我获益良多.同时数学科学学院机房的硬件设施和学校图书馆电子资源,为本课题的研究工作提供了良好的条件.另外,本课题的部分工作还得益于同窗挚友的共同研讨,在此,对他们一并表示感谢!。

相关文档
最新文档