数学建模必备LINGO在多目标规划和最大最小化模型中的应用

数学建模必备LINGO在多目标规划和最大最小化模型中的应用
数学建模必备LINGO在多目标规划和最大最小化模型中的应用

数学建模必备

LINGO 在多目标规划和最大最小化模型中的应用

一、多目标规划的常用解法

多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:

1.主要目标法

确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。 2.线性加权求和法

对每个目标按其重要程度赋适当权重0≥i ω,且1=∑i

i ω,然后把)

(x f i i

i ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。

3.指数加权乘积法

设p i x f i ,,2,1),( =是原来的p 个目标,令

∏==

p

i a i i

x f Z 1

)]

([

其中i a 为指数权重,把Z 作为新的目标函数。

4.理想点法

先分别求出p 个单目标规划的最优解*i f ,令

∑-=

2

*)

)(()(i i

f x f

x h

然后把它作为新的目标函数。

5.分层序列法

将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。

这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。线性加权求和法、指数加权乘积法和理想点法通常只能用

于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。

二、最大最小化模型

在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。

最大最小化模型的目标函数可写成

)}(,),(),(max{min 21X f X f X f p X

)}(,),(),(min{max 21X f X f X f p X

式中T n x x x X ),,,(21 是决策变量。模型的约束条件可以包含线性、非线性的等式和不等式约束。这一模型的求解可视具体情况采用适当的方法。

三、用LINGO 求解多目标规划和最大最小化模型 1.解多目标规划

用LINGO 求解多目标规划的基本方法是先确定一个目标函数,求出它的最优解,然后把此最优值作为约束条件,求其他目标函数的最优解。如果将所有目标函数都改成约束条件,则此时的优化问题退化为一个含等式和不等式的方程组。LINGO 能够求解像这样没有目标函数只有约束条件的混合组的可行解。有些组合优化问题和网络优化问题,因为变量多,需要很长运算时间才能算出结果,如果设定一个期望的目标值,把目标函数改成约束条件,则几分钟就能得到一个可行解,多试几个目标值,很快就能找到最优解。对于多目标规划,同样可以把多个目标中的一部分乃至全部改成约束条件,取适当的限制值,然后用LINGO 求解,从中找出理想的最优解,这样处理的最大优势是求解速度快,节省时间。

2.解最大最小化问题

第一步,先把原来较复杂的目标函数式改写为一个简单的目标函数 C m i n

以及p 个约束条件:

C X f C X f C X f p ≤≤≤)(,,)(,)(21

其他原有的约束条件不变,改写后仍然是一个规划,只是增加了p 个约束条件,目标函数的形式较为简单。如果能用LINGO 求出它的解,则问题已经解决,如果求解困难,可转入下一步。

第二步,取消目标函数,保留上一步由目标函数改成的p 个约束条件和所有原来的约束条件,预设C 值为某个常数,此时原规划模型不再是规划,它仅仅包含等式和不等式,没有目标函数,是许多约束条件的组合,可以称它为“混合组”。求该混合组的解,其实质是求满足所有约束条件并且使目标函数等于给定值的一组决策变量的值,求出来的结果是可行解,它未必是最优解。在存在可行解的前提下,使目标函数值小的可行解优于使目标函数值大的可行解,使目标函数值越小的可行解越接近最优解。

第三步,对具体问题作出分析,对目标函数可能达到的最小值(即C 的最小值)作适当估计,然后在此估计值的基础上由大到小改变C 的值进行试算,使可行解越来越接近最优解。对于目标函数值离散的情况,不难找到最优解。

例:装配线平衡模型。一条装配线含有一系列的工作站,在最终产品的加工过程中每个工作站执行一种或几种特定的任务。装配线周期是指所有工作站完成分配给它们各自的任务所化费时间中的最大值。平衡装配线的目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同数量的任务,其最终标准是装配线周期最短。不适当的平衡装配线将会产生瓶颈——有较少任务的工作站将被迫等待其前面分配了较多任务的工作站。

问题会因为众多任务间存在优先关系而变得更复杂,任务的分配必须服从这种优先关系。

这个模型的目标是最小化装配线周期。有2类约束: ① 要保证每件任务只能也必须分配至一个工作站来加工; ② 要保证满足任务间的所有优先关系。

例 有11件任务(A —K )分配到4个工作站(1—4),任务的优先次序如下

(A)

(B)

(C)

(F)

(G)

(K)

(J)

(I)

(H)

(E)

(D)

图。每件任务所花费的时间如下表。

解:用变量ik x 表示任务),,,(K B A i i =分配给工作站)4,3,2,1(=k k 的情况,

1=ik x 表示分配,0=ik x 表示不分配,i

t 表示完成各项任务所需时间,则目标函

数为

∑=≤≤11

1

4

1max

min i ik

i

k x t

约束条件(1):每项任务只能且必须分配至一个工作站来做,可以表示为:

11,,2,1,14

1

==∑=i x

k ik

约束条件(2):各项任务间如果有优先关系,则排在前面的任务i 对应的工作站(序号)应当小于(或等于)排在后面的任务j 所对应的工作站(序号),

即对所有有顺序的任务j i <:0)(4

1

≥-∑=k ik jk kx kx ;

约束条件(3):10或=ik x 。

这是一个非线性规划(目标函数非线性),但可以化为线性规划,增加一个

变量,再增加四个约束条件:4,3,2,1,11

1

=≤∑=k Z x t i ik i ,目标函数变为Z min 。

LINGO 程序为:

model :

!装配线平衡模型; sets :

!任务集合,有一个完成时间属性t; task/ A B C D E F G H I J K/:t;

!任务之间的优先关系集合(A 必须完成才能开始B ,等等);

pred(task,task)/ A,B B,C C,F C,G F,J G,J

J,K D,E E,H E,I H,J I,J /;

! 工作站集合;

station/1..4/;

tsx(task, station):x;

! x是派生集合txs的一个属性。如果x(i,k)=1,则表示第i个任务指派给第k个工作站完成;

endsets

data:

!任务A B C D E F G H I J K的完成时间估计如下;

T = 45 11 9 50 15 12 12 12 12 8 9;

enddata

! 当任务超过15个时,模型的求解将变得很慢;

!每一个作业必须指派到一个工作站,即满足约束①;

@for(task(i): @sum(station(k):x(i,k)) = 1);

!对于每一个存在优先关系的作业对来说,前者对应的工作站i必须小于后者对应的工作站j,即满足约束②;

@for(pred(i,j): @sum(station(k):k*x(j,k)-k*x(i,k))>= 0);

!对于每一个工作站来说,其花费时间必须不大于装配线周期;

@for(station(k):

@sum(txs(i,k):t(i)*x(i,k))<=cyctime);

!目标函数是最小化转配线周期;

min= cyctime;

!指定x(i,j) 为0/1变量;

@for(txs:@bin(x));

end

计算的部分结果为

Global optimal solution found at iteration: 1255

Objective value: 50.00000

Variable Value Reduced Cost

CYCTIME 50.00000 0.000000

X( A, 1) 1.000000 0.000000

X( A, 2) 0.000000 0.000000

X( A, 3) 0.000000 45.00000

X( A, 4) 0.000000 0.000000

X( B, 1) 0.000000 0.000000

X( B, 2) 0.000000 0.000000

X( B, 3) 1.000000 11.00000

X( B, 4) 0.000000 0.000000

X( C, 1) 0.000000 0.000000

X( C, 2) 0.000000 0.000000

X( C, 3) 0.000000 9.000000

X( C, 4) 1.000000 0.000000

X( D, 1) 0.000000 0.000000

X( D, 2) 1.000000 0.000000

X( D, 3) 0.000000 50.00000

X( D, 4) 0.000000 0.000000

X( E, 1) 0.000000 0.000000

X( E, 2) 0.000000 0.000000

X( E, 3) 1.000000 15.00000

X( E, 4) 0.000000 0.000000

X( F, 1) 0.000000 0.000000

X( F, 2) 0.000000 0.000000

X( F, 3) 0.000000 12.00000

X( F, 4) 1.000000 0.000000

X( G, 1) 0.000000 0.000000

X( G, 2) 0.000000 0.000000

X( G, 3) 0.000000 12.00000

X( G, 4) 1.000000 0.000000

X( H, 1) 0.000000 0.000000

X( H, 2) 0.000000 0.000000

X( H, 3) 1.000000 12.00000

X( H, 4) 0.000000 0.000000

X( I, 1) 0.000000 0.000000

X( I, 2) 0.000000 0.000000

X( I, 3) 1.000000 12.00000

X( I, 4) 0.000000 0.000000

X( J, 1) 0.000000 0.000000

X( J, 2) 0.000000 0.000000

X( J, 3) 0.000000 8.000000

X( J, 4) 1.000000 0.000000

X( K, 1) 0.000000 0.000000

X( K, 2) 0.000000 0.000000

X( K, 3) 0.000000 9.000000

X( K, 4) 1.000000 0.000000

例:工件的安装与排序问题。某设备由24个工件组成,安装时需要按工艺要求重新排序。

I.设备的24个工件均匀分布在等分成六个扇形区域的一圆盘的边缘上,放在每个扇形区域的4个工件总重量与相邻区域的4个工件总重量之差不允许超过一定值。

II.工件的排序不仅要对重量差有一定的要求,还要满足体积的要求,即两相邻工件的体积差应尽量大,使得相邻工件体积差不小于一定值。

问题1:按重量排序算法;

问题2:按重量和体积排序算法;

请按下表中的工件数据(重量单位:g,体积单位:cm3)进行实时计算。

解:对问题1和2分别求解。

(1) 对问题1,仅考虑重量进行排序。

用24,,2,1 =i 表示24个工件,i W 表示各工件的重量,6,,2,1 =j 表示圆盘上的6个扇区,j D 表示各扇区上4个工件的总重量,ij X 是0-1型决策变量,表示工件i 是否放在扇区j 上,1=ij X 表示放,0=ij X 表示不放。

每个工件必须且只能放到一个位置上,每个位置放一个且仅放一个工件,每个扇区放4个工件,重量之和为j D 。目标函数是:相邻扇区上的j D 之差的(绝对值)最大值达到最小,建立0-1规划模型如下:

???????????========-∑∑∑===+≤≤10,6,,2,1,24,,2,1,16,,2,1,4|}

{|max min 1724

1

6

124

116

1或ij

i ij i j j ij i ij k k k X D D j X W D i X j X D D

模型中的7D 是虚拟的,17D D =使得1-6-1扇区构成圆盘,引入7D 的目的

只是使目标函数的表达式简洁。该0-1规划模型的目标函数是相邻扇区上的j D 之差(绝对值)的最大值达到最小,属于最大最小化模型。

按照前面所述把规划模型转化为混合组的步骤,去掉目标函数,增加约束条件:

6,,2,1,

||1 =≤-+j C D D j j

保留原来的约束条件,并令C 为某个常数,原规划就转化成了一个包含150个变量,36个等式约束,6个不等式约束的非线性混合组。

由于24个工件的重量数据多数为整数,部分有小数,小数的最小计数单位为0.5,所以相邻扇区重量之差的基本计数单位是0.5,即||1j j D D -+的可能取值是离散的。令C 取0,0.5,1,1.5,2,……中的具体值(C 值越小越好)。用LINGO 编程求解,不难求得当C=0.5时有可行解,因C=0时无可行解,故C=0.5时的可行解就是最优解。

用第一组工件的重量数据,编写LINGO 程序如下:

model : sets :

gj/1..24/:w; shq/1..6/:d; bl(gj,shq):x; endsets data :

w=348 352 347 349 347.5 347 330 329 329 327.5 329 331.5 348.5 347 346.5 348 347.5 348 333 330 332.5 331.5 331.5 332; enddata

@for (bl:@bin (x));

c=0.5; !常数C 可以设定不同的值试一试; @for (gj(i):@sum (shq(j):x(i,j))=1); @for (shq(j):@sum (gj(i):x(i,j))=4);

@for (shq(j):d(j)=@sum (gj(i):w(i)*x(i,j))); @for (shq(j)|j#lt#6:d(j+1)-d(j)<=c); @for (shq(j)|j#lt#6:d(j+1)-d(j)>=-c); d(1)-d(6)<=c; d(1)-d(6)>=-c; end

运行结果如下:

Feasible solution found at iteration: 15994

Variable Value

C 0.5000000

W( 1) 348.0000

W( 2) 352.0000

W( 3) 347.0000

W( 4) 349.0000

W( 5) 347.5000

W( 6) 347.0000

W( 7) 330.0000

W( 8) 329.0000

W( 9) 329.0000

W( 10) 327.5000

W( 11) 329.0000

W( 12) 331.5000

W( 13) 348.5000

W( 14) 347.0000

W( 15) 346.5000

W( 16) 348.0000

W( 17) 347.5000

W( 18) 348.0000

W( 19) 333.0000

W( 20) 330.0000

W( 21) 332.5000

W( 22) 331.5000

W( 23) 331.5000

W( 24) 332.0000

D( 1) 1357.000

D( 2) 1356.500

D( 3) 1357.000

D( 4) 1357.500

D( 5) 1357.000

D( 6) 1357.500

X( 1, 1) 0.000000

X( 1, 2) 1.000000

X( 1, 3) 0.000000

X( 1, 4) 0.000000

X( 1, 5) 0.000000

X( 1, 6) 0.000000

X( 2, 1) 0.000000

X( 2, 2) 0.000000

X( 2, 3) 0.000000

X( 2, 5) 0.000000 X( 2, 6) 0.000000 X( 3, 1) 0.000000 X( 3, 2) 0.000000 X( 3, 3) 0.000000 X( 3, 4) 0.000000 X( 3, 5) 1.000000 X( 3, 6) 0.000000 X( 4, 1) 0.000000 X( 4, 2) 0.000000 X( 4, 3) 1.000000 X( 4, 4) 0.000000 X( 4, 5) 0.000000 X( 4, 6) 0.000000 X( 5, 1) 0.000000 X( 5, 2) 0.000000 X( 5, 3) 1.000000 X( 5, 4) 0.000000 X( 5, 5) 0.000000 X( 5, 6) 0.000000 X( 6, 1) 0.000000 X( 6, 2) 1.000000 X( 6, 3) 0.000000 X( 6, 4) 0.000000 X( 6, 5) 0.000000 X( 6, 6) 0.000000 X( 7, 1) 0.000000 X( 7, 2) 1.000000 X( 7, 3) 0.000000 X( 7, 4) 0.000000 X( 7, 5) 0.000000 X( 7, 6) 0.000000 X( 8, 1) 0.000000 X( 8, 2) 0.000000 X( 8, 3) 1.000000 X( 8, 4) 0.000000 X( 8, 5) 0.000000 X( 8, 6) 0.000000 X( 9, 1) 1.000000 X( 9, 2) 0.000000 X( 9, 3) 0.000000 X( 9, 4) 0.000000 X( 9, 5) 0.000000

X( 10, 1) 0.000000 X( 10, 2) 0.000000 X( 10, 3) 0.000000 X( 10, 4) 1.000000 X( 10, 5) 0.000000 X( 10, 6) 0.000000 X( 11, 1) 0.000000 X( 11, 2) 0.000000 X( 11, 3) 0.000000 X( 11, 4) 0.000000 X( 11, 5) 1.000000 X( 11, 6) 0.000000 X( 12, 1) 0.000000 X( 12, 2) 1.000000 X( 12, 3) 0.000000 X( 12, 4) 0.000000 X( 12, 5) 0.000000 X( 12, 6) 0.000000 X( 13, 1) 1.000000 X( 13, 2) 0.000000 X( 13, 3) 0.000000 X( 13, 4) 0.000000 X( 13, 5) 0.000000 X( 13, 6) 0.000000 X( 14, 1) 0.000000 X( 14, 2) 0.000000 X( 14, 3) 0.000000 X( 14, 4) 0.000000 X( 14, 5) 0.000000 X( 14, 6) 1.000000 X( 15, 1) 0.000000 X( 15, 2) 0.000000 X( 15, 3) 0.000000 X( 15, 4) 0.000000 X( 15, 5) 0.000000 X( 15, 6) 1.000000 X( 16, 1) 0.000000 X( 16, 2) 0.000000 X( 16, 3) 0.000000 X( 16, 4) 0.000000 X( 16, 5) 1.000000 X( 16, 6) 0.000000 X( 17, 1) 1.000000

X( 17, 3) 0.000000 X( 17, 4) 0.000000 X( 17, 5) 0.000000 X( 17, 6) 0.000000 X( 18, 1) 0.000000 X( 18, 2) 0.000000 X( 18, 3) 0.000000 X( 18, 4) 1.000000 X( 18, 5) 0.000000 X( 18, 6) 0.000000 X( 19, 1) 0.000000 X( 19, 2) 0.000000 X( 19, 3) 0.000000 X( 19, 4) 0.000000 X( 19, 5) 1.000000 X( 19, 6) 0.000000 X( 20, 1) 0.000000 X( 20, 2) 0.000000 X( 20, 3) 0.000000 X( 20, 4) 1.000000 X( 20, 5) 0.000000 X( 20, 6) 0.000000 X( 21, 1) 0.000000 X( 21, 2) 0.000000 X( 21, 3) 0.000000 X( 21, 4) 0.000000 X( 21, 5) 0.000000 X( 21, 6) 1.000000 X( 22, 1) 0.000000 X( 22, 2) 0.000000 X( 22, 3) 0.000000 X( 22, 4) 0.000000 X( 22, 5) 0.000000 X( 22, 6) 1.000000 X( 23, 1) 0.000000 X( 23, 2) 0.000000 X( 23, 3) 1.000000 X( 23, 4) 0.000000 X( 23, 5) 0.000000 X( 23, 6) 0.000000 X( 24, 1) 1.000000 X( 24, 2) 0.000000 X( 24, 3) 0.000000

X( 24, 5) 0.000000 X( 24, 6) 0.000000

由此求出一种放置方案(答案不唯一),见下表:

扇区 一 二 三 四 五 六 工件 9,13, 1,6 4,5 2,10 3,11 14,15

17,24 7,12 8,23 18,20 16,19 21,22

总重量 1357 1356.5 1357 1357.5 1357 1357.5

(2)对问题2,既考虑重量,也考虑体积进行排序。

符号规定与问题1略有不同,j 是圆盘上的位置序号,k 是扇区编号,每个扇区有4个位置,i V 表示各工件体积,k D 表示各扇区上4个工件的总重量,j T 表示第j 个位置上所放工件的体积,ij X 是0-1型决策变量,表示工件i 是否放在位置j 上,1=ij X 表示放,0=ij X 表示不放。

每个工件必须且只能放到一个位置上,每个位置放一个且仅放一个工件,每个扇区放4个工件,重量之和为k D ,目标函数有两个:①相邻扇区上的k D 之差的最大值达到最小;②相邻位置上工件的体积之差的最小值达到最大。

建立双目标规划模型如下:

目标函数:???-=--=-++|}|,23,,2,1|,min{|max |}

|,5,,2,1|,max{|min 1241161T T j T T D D k D D j j k k

约束条件:????

??

?

?

?

????????=========∑∑∑∑∑=-====1024

,2,1,6,,2,1,24,2,1,124,2,1,124143424124

1

24

1或ij i ij j j k k j i ij i k j ij i ij X j X V T k X W D i X j X

把问题1的计算结果作为约束条件,即增加约束条件:

5,,2,1,1357 ==i D i 。

然后考虑第二个目标:相邻位置上工件的体积之差(绝对值)的最小值达到最大,把这个目标也改成约束条件,即再增加约束条件:

H

T T j H T T j j ≥-=≥-+||,

23,,2,1,||1241

H 是希望达到的目标函数的值,此时双目标规划就变成了没有目标函数,仅含有等式和不等式的混合组,这样处理的最大优点是计算速度快。

编写LINGO 程序,当H=4.5时,找到可行解。

注意:解答不唯一,且不能肯定这一定是最优解时,可以在LINGO 求解的基础上做一些手工调整,得到更好的方案。

数学建模常用软件

数学建模常用软件有哪些哈 MatlabMathematicalingoSAS详细介绍:数学建模软件介绍一般来说学习数学建模,常用的软件有四种,分别是:matlab、lingo、Mathematica和SAS下面简单介绍一下这四种。 1.MA TLAB的概况MA TLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多. 当前流行的MA TLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MA TLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包. 2.Mathematica的概况Wolfram Research 是高科技计算机运算( Technical computing )的先趋,由复杂理论的发明者Stephen Wolfram 成立于1987年,在1988年推出高科技计算机运算软件Mathematica,是一个足以媲美诺贝尔奖的天才产品。Mathematica 是一套整合数字以及符号运算的数学工具软件,提供了全球超过百万的研究人员,工程师,物理学家,分析师以及其它技术专业人员容易使用的顶级科学运算环境。目前已在学术界、电机、机械、化学、土木、信息工程、财务金融、医学、物理、统计、教育出版、OEM 等领域广泛使用。Mathematica 的特色·具有高阶的演算方法和丰富的数学函数库和庞大的数学知识库,让Mathematica 5 在线性代数方面的数值运算,例如特征向量、反矩阵等,皆比Matlab R13做得更快更好,提供业界最精确的数值运算结果。·Mathematica不但可以做数值计算,还提供最优秀的可设计的符号运算。·丰富的数学函数库,可以快速的解答微积分、线性代数、微分方程、复变函数、数值分析、机率统计等等问题。·Mathematica可以绘制各专业领域专业函数图形,提供丰富的图形表示方法,结果呈现可视化。·Mathematica可编排专业的科学论文期刊,让运算与排版在同一环境下完成,提供高品质可编辑的排版公式与表格,屏幕与打印的自动最佳化排版,组织由初始概念到最后报告的计划,并且对txt、html、pdf 等格式的输出提供了最好的兼容性。·可与C、C++ 、Fortran、Perl、Visual Basic、以及Java 结合,提供强大高级语言接口功能,使得程序开发更方便。·Mathematica本身就是一个方便学习的程序语言。Mathematica提供互动且丰富的帮助功能,让使用者现学现卖。强大的功能,简单的操作,非常容易学习特点,可以最有效的缩短研发时间。 3.lingo的概况LINGO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP—QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。模型建立语言和求解引擎的整合LINGO是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。LINGO提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。■简单的模型表示LINGO可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。■方便的数据输入和输出选择LINGO建立的模型可以直接从数据库或工作表获取资料。同样地,LINGO可以将求解结果直接输出到数据库或工作表。■强大的求解引擎LINGO内建的求解引擎有线性、非线性(convex and nonconvex)、二次、二次

一个使用Lingo求解多目标0-1整数规划问题答案

AK是一家空调制造商,其面临的需求增长很快。预计2001年,其全国的需求在南部将为180,000单位,在中部为120,000单位,在东部为110,000单位,在西部为100,000单位。DryIce在设计物流网络时,有四个备选的地点:New York, Atlanta, Chicago和San Diego。在这四个地点建厂,工厂的生产能力将要么为200,000单位,要么为400,000单位。工厂的年固定运营成本及从工厂所在地生产出产品并运往四个销售区域的生产和运输的单位成本如表所示。请为该设施网络的设计建立模型,并请对模型作简要说明。 设定变量如下表所示:其中M11 M12等一系列值为0.1变量,即可得到如下式子: m12+9200000*m22+232*x12+212*x22+230*x32+280*x42+5600000*m13+9300000*m 23+238*x13+230*x23+215*x33+270*x43+6100000*m14+10200000*m24+299*x14+2 80*x24+270*x34+225*x44; m11*200000+m21*400000>=x11+x21+x31+x41; m12*200000+m22*400000>=x12+x22+x32+x42; m13*200000+m23*400000>=x13+x23+x33+x43; m14*200000+m24*400000>=x14+x24+x34+x44; x11+x12+x13+x14>=110000; x21+x22+x23+x24>=180000; x31+x32+x33+x34>=120000; x41+x42+x43+x44>=100000; @bin(m11);@bin(m21);@bin(m12);@bin(m22);@bin(m13);@bin(m23);@bin(m14) ;@bin(m24); 通过运行LINGO得到如下结果:

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- + 。因此目标规划模型的一般数学表达式为: min ∑∑=+ +-- =+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ - d d x x 14x 1633=-++ -d d

优化建模与lingo软件

问题一:LP 问题在lindo 和lingo 中不同的输入形式 (1)将目标函数的表示方式从“MAX ”变成了“MAX=” (2)“ST ”在LINGO 模型中不再需要,所以被删除了 (3)每个系数与变量间增加了运算符“*”(即乘号不能省略) (4)每行(目标、约束和说明语句)后面均增加了一个分号“;”(英文状态下) (5)模型结束标志“END ”也被删除了(LINGO 中只有当模型以“MODEL :”开始时才能以“END ”结束)。 (6)英文状态下!后面的文字为说明文字,不参与模型的求解。 问题二:状态窗口的参数解释 variable adj 异变的,变量的 n 变量

问题三优化建模的实例: 1. 线性规划模型 2. 二次规划模型 3. 非线性规划模型 目标函数:()()∑∑--==+= 2161 22min j i bi yi ai xi cij f 约束条件:6,5,4,3,2,1,21 ∑===j i di cij ∑==<=6 1 2,1,i j ej cij 4. 整数规划模型(线性0-1规划模型是特殊的线性整数规划) 1) 目标函数:7654321min x x x x x x x z ++++++= 2) 约束条件: ???????????>=++++>=++++>=++++>=++++>=++++>=++++>=++++. 5076543,5065432,5054321,5074321,5076321,5076521,5076541x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x )7,,2,1(0 =>=i xi

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- +。因此目标规划模型的一般数学表达式为: min ∑∑=+ +--=+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ -d d x x 14x 1633=-++ -d d 155442=-++ -d d x 3,2,1,0,,,21=≥+ -i d d x x i i

2019年LINGO在多目标规划和最大最小化模型中的应用

LINGO 在多目标规划和最大最小化模型中的应用 在许多实际问题中,决策者所期望的目标往往不止一个,如电力网络管理部门在制定发电计划时即希望安全系数要大,也希望发电成本要小,这一类问题称为多目标最优化问题或多目标规划问题。 一、多目标规划的常用解法 多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有: 1.主要目标法 确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。 2.线性加权求和法 对每个目标按其重要程度赋适当权重0≥i ω,且1=∑i i ω,然后把) (x f i i i ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。 3.指数加权乘积法 设p i x f i ,,2,1),( =是原来的p 个目标,令 ∏==p i a i i x f Z 1)]([ 其中i a 为指数权重,把Z 作为新的目标函数。 4.理想点法 先分别求出p 个单目标规划的最优解*i f ,令 ∑-=2*))(()(i i f x f x h 然后把它作为新的目标函数。 5.分层序列法 将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。 这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不

足之处。例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。 二、最大最小化模型 在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。 最大最小化模型的目标函数可写成 )}(,),(),(max{min 21X f X f X f p X 或 )}(,),(),(min{max 21X f X f X f p X 式中T n x x x X ),,,(21 是决策变量。模型的约束条件可以包含线性、非线性的等式和不等式约束。这一模型的求解可视具体情况采用适当的方法。 三、用LINGO 求解多目标规划和最大最小化模型 1.解多目标规划 用LINGO 求解多目标规划的基本方法是先确定一个目标函数,求出它的最优解,然后把此最优值作为约束条件,求其他目标函数的最优解。如果将所有目标函数都改成约束条件,则此时的优化问题退化为一个含等式和不等式的方程组。LINGO 能够求解像这样没有目标函数只有约束条件的混合组的可行解。有些组合优化问题和网络优化问题,因为变量多,需要很长运算时间才能算出结果,如果设定一个期望的目标值,把目标函数改成约束条件,则几分钟就能得到一个可行解,多试几个目标值,很快就能找到最优解。对于多目标规划,同样可以把多个目标中的一部分乃至全部改成约束条件,取适当的限制值,然后用LINGO 求解,从中找出理想的最优解,这样处理的最大优势是求解速度快,节省时间。 2.解最大最小化问题

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

数学建模:运用Lindolingo软件求解线性规划 1、实验内容: 对下面是实际问题建立相应的数学模型,并用数学软件包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.....增加的原材料 第五、问题分析 根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。我们可以先建立数学模型,然后用lindo/lingo软件包求解模型的最大值。 第六、模型的建立及求解根据题目建立如下3个模型: 模型1: max=0.1*x+0.09*y; 0.06*x+0.05*y<=60; 0.1*x+0.2*y<=150; x+y<=800; 结果:x=800;y=0;max=80 模型2:

数模常用软件

数学建模软件介绍 一般来说学习数学建模,常用的软件有四种,分别是:matlab、lingo、Mathematica 和SAS下面简单介绍一下这四种。 1.MATLAB的概况 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处 理,可视化建模仿真和实时控制等功能。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等 语言完相同的事情简捷得多. 当前流行的MATLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具 包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强 的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改 或加入自己编写程序构造新的专用工具包. 2.Mathematica的概况 Wolfram Research 是高科技计算机运算( Technical computing )的先趋,由复杂理论的发明者Stephen Wolfram 成立于 1987年,在1988年推出高科技计算机运算软件Mathematica,是一个足以媲美诺贝尔奖的天才产品。Mathematica 是一套整合数字以 及符号运算的数学工具软件,提供了全球超过百万的研究人员,工程师,物理学家,分析师以及其它技术专业人员容易使用的顶级 科学运算环境。目前已在学术界、电机、机械、化学、土木、信息工程、财务金融、医学、物理、统计、教育出版、OEM 等领域广 泛使用。

生产规划问题及LINGO求解

生产规划问题及LINGO求解 摘要:本文根据生产规划问题的特点,建立了满足生产规划的线性规划模型,并且利用lingo软件进行求解,提出了一种可以合理解决此类问题的数学方法,效果比较令人满意。 关键词:线性规划模型 lingo软件 中图分类号:tb114 文献标识码:a 文章编号: 1007-9416(2012)01-0073-01 1、问题的提出 某工厂是生产某种电子仪器的专业厂家,该厂是以销量来确定产量的1~6月份各个月生产能力、合同销量和单台仪器平均生产费用如表1所示。 又知上年末积压库存103台该仪器没售出.如果生产出的仪器当月不交货,则需要运到分厂库房,每台仪器需增加运输成本0.1万元,每台仪器每月的平均仓储费、维护留出库存80台.加班生产仪器每台增加成本1万元。试问应该如何安排1~6月份的生产,使总的生产成本(包括运输、仓储和维护)费用最少? 2、模型分析与假设 本模型的目标是使总的生产成本最小,其中总的生产成本包括正常生产仪器的费用、加班生产仪器的费用、当月不交货的运输费用及库存的仓储费、维护费.为此,我们作如下假设: (1)设第个月正常生产台。(2)设第个月加班生产台。(3)设第个

月不交货台。(4)设第个月售出上月库存台。(5)设第个月库存台。 (6)记第个月销量。(7)设第个月单台生产的费用。(8)记第个月正常生产能力。(9)记第个月加班生产能力。 3、模型的建立与求解 根据以上假设可知,第个月正常生产的成本为,第个月加班生产的成本为,第个月对不交货仪器的运输费为,第个月库存的仓储费及维护费为。 模型的目标函数为. 下面考虑本模型的限定条件 第个月销量的约束为 第个月正常生产能力的约束为: 第个月加班生产能力的约束为: 1~6月库存的约束为 于是问题的数学模型为 运行lingo软件求解模型,程序如下: model: sets: num_i/1..6/:b,c,d,e,x,y,z,w,h; endsets data: b=104,75,115,160,103,70;c=15,14,13.5,13,13,13.5;

lingo求解多目标规划--例题

实验二:目标规划 一、实验目得 目标规划就是由线性规划发展演变而来得,线性规划考虑得就是只有一个目标函数得问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有得还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型得建立,求解过程及结果分析。 二、目标规划得一般模型 设)...2,1(n j x j =就是目标规划得决策变量,共有m 个约束就是国内刚性约束,可能就是等式约束,也可能就是不等式约束。设有l 个柔性目标约束,其目标规划约束得偏差就是),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有不同得权重,分别记为),...,2,1(,l j w w kj kj =-+。因此目标规划模型得一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);( s 、t 、 ,,...2,1,),(1 m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验内容及步骤 1、打开LINGO ,并利用系统菜单与向导在E 盘创建一个项目。目录与项目名推荐使用学生自己得学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序得可读性。 例2、1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业得经营目标不仅仅就是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品得产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 就是设备B 得3倍。 此题中只有设备A 就是刚性约束,其余都就是柔性约束。首先,最重要得指标就是企业得利润,将它得优先级列为第一级;其次就是Ⅰ、Ⅱ两种产品得产量保持1:2得比例,列为第二级;再次,设备B 、C 得工作时间要有所控制,列为第三级。在第三级中,设备B 得重要性就是设备C 得3倍,因此它们得权重不一样,设备B 得系数就是设备C 得3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211++-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ -d d x x 14x 1633=-++-d d 155442=-++-d d x 3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为:

数学建模_0-1规划及LINGO程序模板

数模练习一 某手机运营商准备在一个目前尚未覆盖的区域开展业务,计划投资5000万元来建设中继站。该区域由15个社区组成,有7个位置可以建设中继站,每个中继站只能覆盖有限个社区。图1.1.1是该区域的示意图,每个社区简化为一个多边形,每个可以建设中继站的位置已用黑点标出。由于地理位置等各种条件的不同,每个位置建设中继站的费用也不同,且覆盖范围也不同。表1.1.2中列出了每个位置建设中继站的费用以及能够覆盖的社区,表1.1.3列出了每个社区的人口数。 表1.1.2 每个位置建设中继站的费用及所能覆盖的社区 位置 1 2 3 4 5 6 7 费用(百万元) 9 6.5 20 14.5 19 13 10.5 覆盖社区 1,2,4 2,3,5 4,7,8,1 5,6,8,9 8,9,12 7,10,11 ,12,15 12,13, 14,15 表1.1.3 每个社区的人口数量 社区 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 人口(千人) 2 4 13 6 9 4 8 12 10 11 6 14 9 3 6 问题一:在不超过5000万建设费用的情况下,在何处建设中继站,能够覆盖尽可能多的人口; 问题二:考虑到中继站出现故障维修的时候可能会出现所覆盖的社区信号中断等问题,为此对通讯资费进行了调整,规定,仅有一个中继站信号覆盖的小区通讯资费按正常资费的70%收取,有两个或两个以上中继站信号覆盖的小区的通讯资费按正常收取,针对于5000万元的预算,应该如何建设中继站,才能够使得资费的收入达到最大。 问题分析: 问题一, 图1.1.1 1 2 3 4 56 78 9 1011 12 13 14 15 1 2 3 4 5 6 7

lingo解决线性规划问题的程序(经典)要点

Lingo12软件培训教案 Lingo 主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。 例1 一个简单的线性规划问题 0 , 600 2 100 350 st. 3 2max >=<=+=<<=++=y x y x x y x y x z !exam_1.lg4 源程序 max = 2*x+3*y; [st_1] x+y<350; [st_2] x<100; 2*x+y<600; !决策变量黙认为非负; <相当于<=; 大小写不区分 当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set) 下面定义下标集和对应数组的三种方法,效果相同::r1 = r2 = r3, a = b = c. sets : r1/1..3/:a; r2 : b; r3 : c; link2(r1,r2): x; link3(r1,r2,r3): y; endsets data : ALPHA = 0.7; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata

例2 运输问题 解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8. 设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。 于是形成如下规划问题: n j m i x n j d x m i s x x c ij j n i ij i m j ij m i n j ij ij ,...,2,1,,...,2,1,0 ,...,2,1, ,...,2,1, st. z min 1 111 ==>=<==<==∑∑∑∑==== 把上述程序翻译成LINGO 语言,编制程序如下: !exam_2.lg4 源程序 model : !6发点8收点运输问题; sets :

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

1、实验内容: 对下面是实际问题建立相应的数学模型,并用数学软件包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.....增加的原材料 第五、问题分析 根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。我们可以先建立数学模型,然后用lindo/lingo软件包求解模型的最大值。

lingo求解多目标规划--例题教学教材

l i n g o求解多目标规 划--例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国内刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一 个优先级k p 中,有不同的权重,分别记为),...,2,1(,l j w w kj kj =-+。因此目标规划模 型的一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑

三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。 四、实验内容及步骤 1、打开LINGO,并利用系统菜单和向导在E盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A,B,C三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面:(1)力求使利润不低于1500元; (2)考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3)设备A为贵重设备,严格禁止超时使用; (4)设备C可以适当加班,但要控制;设备B即要求充分利用,又尽可能不加班。在重要性上,设备C是设备B的3倍。 此题中只有设备A是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B、C的工作时间要有所控制,列为第

LINGO在数学建模中的应用

一、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 =L 的值,使其满足 1122max(min),n n z c x c x c x =+++L 21111221112112222211 22***. 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 ?? ?????≥=??+++++++++L L L L L

Lingo求解多目标规划[新]

例:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1: 2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用, 又尽可能不加班。在重要性上,设备C 是设备B 的3倍。 Ⅰ Ⅱ 设备的生产能 力/h A (h/件) 2 2 12 B (h/件) 4 0 16 C (h/件) 0 5 15 利润 元/件 200 300 解:此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目 标 函 数 min )33()(433322211++-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤

15003002001121=-+++-d d x x 022221=-+-+-d d x x 14x 1633=-++-d d 155442=-++ -d d x 3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为: 求第一级目标。LINGO 程序如下: model: sets: variable/1..2/:x; S_Con_Num/1..4/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data: g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; enddata min=dminus(1); 2*x(1)+2*x(2)<12; @for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); end 求得dminus(1)=0,即目标函数的最优值为0,第一级偏差为0。

数学建模与lingo软件使用

东北大学秦皇岛分校 数学建模课程设计报告 生产、库存与设备维修综合计划 的优化安排 学院数学与统计学院 专业数学与应用数学 学号7110402 姓名崔冰洁 指导教师 成绩 教师评语: 指导教师签字: 2014年7月9日

1 绪论 线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。研究线性约束条件下线性目标函数的极值问题的数学理论和方法,英文缩写LP。它是运筹学的一个重要分支,广泛应用于军事作战、经济分析、经营管理和工程技术等方面。为合理地利用有限的人力、物力、财力等资源做出的最优决策,提供科学的依据。 在经济生活中,一个公司库存、生产、销售量要受限于与公司设备的生产能力,如何确定最优的生产库存等计划,可以使用线性规划的知识进行数学模型的建立并通过数学软件进行求解。 将库存金额控制在合理水准,是每个公司都期望的,这样的话可以将运营成本降到最低,让现金流动起来。就是要合理处理好生产、库存与设备维修综合计划的优化安排。在保证企业生产、经营需求的前提下,合理处理好生产、设备维修综合计划的优化安排。使库存量经常保持在合理的水平上;掌握库存量动态,适时,适量提出订货,避免超储或缺货;减少库存空间占用,降低库存总费用;控制库存资金占用,加速资金周转 2 LINGO软件简介 LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。能方便与EXCEL,数据库等其他软件交换数据。 3 数学模型建立与求解 3.1问题: 某工厂有以下设备:4台磨床、2台立钻、3台水平钻、1台镗床和1台刨床。已知生产单位各种产品所需的有关设备台时以及他们的利润如表所示:

相关文档
最新文档