当前位置:文档之家› LINGO在多目标规划和最大最小化模型中的应用

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类约束:

① 要保证每件任务只能也必须分配至一个工作站来加工;

(A) (B) (C)

(F)

(G)

(K) (J)

(I) (H)

(E)

(D) ② 要保证满足任务间的所有优先关系。

例 有11件任务(A —K )分配到4个工作站(1—4),任务的优先次序如下图。每件任务所花费的时间如下表。

解:用变量ik x 表示任务),,,(K B A i i =分配给工作站)4,3,2,1(=k k 的情况,1=ik x 表示分配,0=ik x 表示不分配,i t 表示完成各项任务所需时间,则目标函数为

∑=≤≤11

141max min i ik i k x t 约束条件(1):每项任务只能且必须分配至一个工作站来做,可以表示为: 11,,2,1,141 ==∑=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 172416

1

24

1

16

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( 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, 4) 1.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( 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( 9, 6) 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, 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, 2) 0.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, 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, 4) 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 求解的基础上做一些手工调整,得到更好的方案。

优化模型讲解 附LINGO程序

数学建模培训讲义 ——优化模型与LINGO软件 二○一一年七 目录 1 静态优化模型 (1) 1.1 最优生产计划问题 (1) 1.2 存贮模型 (2) 2 线性规划模型 (2) 2.1 LINGO简介 (2) 2.2 配料问题 (3) 2.3 练习:运输问题 (4) 3 整数规划模型 (4) 3.1 电影院广告问题 (4) 3.2 练习:生产计划问题 (5) 4 0-1规划 (5) 4.1 背包问题 (5) 4.2 矿井选址问题 (6) 4.3 练习:混合泳接力队的选拔问题 (7) 5 LINGO应用 (8) 5.1 变量定界函数 (8) 5.2 集合 (8) 5.3 帆船生产问题 (9)

5.4 派生集合 (11) 5.5 通过电子表格(Excel)文件传递数据 (12) 5.6 旅游问题 (13)

优化模型与LINGO 软件 优化问题是计划管理工作中经常要碰到的问题,比如,出门旅行就要考虑选择什么样的路线和交通工具,才能使旅行费用最省或使所花费的时间最少。在工厂技术、经济管理和科学研究等领域中,最优化问题就更多,一个工厂要怎样安排产品的生产,才能获得最大利润?一个设计部门要考虑在满足结构强度的要求下怎样使得所用的材料的总重量最轻? 比较有效的求解优化问题的一个方法使数学规划,它包括:线性规划、非线性规划、整数规划、动态规划和多目标规划等等。 用数学建模的方法来处理一个优化问题的时候,首先要确定优化的目标是什么,寻求的决策是什么,决策受到哪些条件的限制(如果有限制的话),然后用数学工具(变量、函数等)表示它们。 1 静态优化模型 静态优化模型,归结为微积分中的函数极值问题,可以直接用微分法求解。 1.1 最优生产计划问题 一计算机公司引进A 、B 两种类型的芯片技术,总耗资400000元,准备生产这两种类型的芯片出售。生产一片A 芯片的成本为1950元,而市场售价为3390元,生产一片B 芯片的成本为2250元,而市场售价3990元。由于市场存在竞争,每售出一片A 芯片,A 芯片就会降价0.1元,并且令B 芯片降低0.04元,每售出一片B 芯片,B 芯片就会降价0.1元,并且令A 芯片降价0.03元。假设生产的芯片都能卖出,求一生产计划,以获得最大利润。 模型分析: 假设A 、B 两种芯片的数量分别是1x 和2x ,市场价格分别是1p 和2p ,用R 表示出售芯片的总收入,用C 表示生存芯片的总费用,用P 表示总利润。 根据题意,上述变量有如下关系: 11233900.10.03p x x =-- 21239900.040.1p x x =-- 1122R p x p x =+ 1240000019502250C x x =++ P R C =- 模型建立: 根据上述分析,可得优化模型

运筹学实例分析及lingo求解

运筹学实例分析及lingo 求解 一、线性规划 某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。各供货仓库到8个客户处的单位货物运输价见表 试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。 解:设 ij x 表示从第i 个仓库到第j 个客户的货物运量。ij c 表示从第i 个仓库到第 j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。 目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束 数学模型为: ∑∑===6 18 1)(min i j ij ij x c x f ????? ??????≥===≤∑∑==08,,2,1,6,2,1,,. .6 1 8 1ij j i ij i j ij x j d x i a x t s 编程如下: model : Sets : Wh/w1..w6/:ai;

Vd/v1..v8/:dj; links(wh,vd):c,x; endsets Data: ai=60,55,51,43,41,52; dj=35,37,22,32,41,32,43,38; c=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,2,2,8,1,4,3; Enddata Min=@sum(links(i,j):c(i,j)*x(i,j)); @for(wh(i):@sum(vd(j):x(i,j))<=ai(i)); @for(vd(j):@sum(wh(i):x(i,j))=dj(j)); end Global optimal solution found. Objective value: Total solver iterations: 0 Variable Value Reduced Cost AI( W1) AI( W2) AI( W3) AI( W4) AI( W5) AI( W6) DJ( V1) DJ( V2) DJ( V3) DJ( V4) DJ( V5) DJ( V6) DJ( V7) DJ( V8) C( W1, V1) C( W1, V2) C( W1, V3) C( W1, V4) C( W1, V5) C( W1, V6)

一个使用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超经典案例大全

Lingo超经典案例大全 LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”。Lingo超强的优化计算能力在很多方面(线性规划、非线性规划、线性整数规划、非线性整数规划、非线性混合规划、二次规划等)比matlab、maple等强得多,Lingo编程简洁明了,数学模型不用做大的改动(或者不用改动)便可以直接采用Lingo语言编程,十分直观。 Lingo模型由4个段构成: (1)集合段(sets endsets);(2)数据段(data enddata); (3)初始段(init endinit);(4)目标与约束段。 Lingo的五大优点: 1. 对大规模数学规划,LINGO语言所建模型较简洁,语句不多; 2. 模型易于扩展,因为@FOR、@SUM等语句并没有指定循环或求和的上下限,如果在集合定义部分增加集合成员的个数,则循环或求和自然扩展,不需要改动目标函数和约束条件; 3. 数据初始化部分与其它部分语句分开,对同一模型用不同数据来计算时,只需改动数据部分即可,其它语句不变; 4. “集合”是LINGO有特色的概念,它把实际问题中的事物与数学变量及常量联系起来,是实际问题到数学量的抽象,它比C语言中的数组用途更为广泛。 5. 使用了集合以及@FOR、@SUM等集合操作函数以后可以用简洁的语句表达出常见的规划模型中的目标函数和约束条件,即使模型有大量决策变量和大量数据,组成模型的语句并不随之增加. 一、求解线性整数规划、非线性整数规划问题: 1.线性整数规划: model: max=x1+x2; x1+9/14*x2<=51/14; -2*x1+x2<=1/3; @gin(x1);@gin(x2); end

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.解最大最小化问题

生产规划问题及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进行优化模型求解,并与EXCEL进行连接

实验报告(二) 课程名称数学实验 实验项目运用LINGO进行优化模型求解,并与EXCEL进行连接实验环境PC机、LINGO 班级/学号/姓名 指导教师 实验日期2013-11-5 成绩

一、实验名称:运用LINGO 进行优化模型求解,并与EXCEL 进行连接 二、实验目的: 1、掌握Lingo 求解线性规划模型的方法及回看求解结果报告; 2、掌握Lingo 进行灵敏度分析的方法; 3、掌握Lingo 求解整数规划和0-1规划的方法; 4、掌握Lingo 中集合的定义方法; 5、掌握Lingo 与Excel 之间的链接方法; 三、实验内容: 习题四: 1.用LINGO 求解下列线性规划问题 (1)?????? ?=≥≤++≤++≤++++=. 4,...,1,0x 103x x 2x -4x 258x 2x 3x -3x 204x -4x -6x 5x ..8x 10x 2x 6x z max i 4321432143214 321i t s 程序: model : max =6*x1+2*x2+10*x3+8*x4; 5*x1+6*x2-4*x3-4*x4<=20; 3*x1-3*x2+2*x3+8*x4<=25; 4*x1-2*x2+x3+3*x4<=10; end 结果:

(2) ??? ??≥≤++≤++++=0,,x 9010x 4x 12x 20 3x x x -s.t.13x 5x -5x z max 3 213213213 21x x 程序: model : max =-5*x1+5*x2+13*x3; -1*x1+x2+3*x3<=20; 12*x1+4*x2+10*x3<=90; end 结果: (3)?? ???>=++<=+<=+=010y 4x 011-7y x 0 23-5y -7x ..y 2x z min t s 程序: model : min =2*x+y; 7*x-5*y-23<=0; x+7*y-11<=0; 4*x+y+10>=0; @free (x); @free (y); end 结果:

用lingo编程解决运输问题大全

LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例如何在LINGO中求解如下的LP问题:

,6002100 350. .32min 21211 2121≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。 销地 产地 B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 产量 A 1 6 2 6 7 4 2 5 9 60 A 2 4 9 5 3 8 5 8 2 55 A 3 5 2 1 9 7 4 3 3 51 A 4 7 6 7 3 9 2 7 1 43 A 5 2 3 9 5 7 2 6 5 41 A 6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38

使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5

lingo建模入门--例题一

对于例题一: 某工厂在计划期内要安排生产Ⅰ、Ⅱ两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表1-1所示: ⅠⅡ 设备128台时 原材料A4016kg 原材料B0412kg 利润2元3元 我们建立模型: 利用lingo求解时,可直接将模型输入,如在lingo中输入如下内容:!A sample linear program: MAX= 2 * x1 + 3 * x2; 4 * x1<= 16 ; 4 * x2<= 12 ; x1+ 2 * x2<= 8 ; 然后单机lingo菜单中的solve进行求解即可。 Lingo是一个设计用于建立和求解各种各样优化问题的数学建模语言,我们来看一下上面的模型: 第一行以惊叹号开始,以分号结束,是对模型的注释。 第二行给出了目标函数,显示了他是最大化的(注意:没有包含z变量),乘法用星号来表示,目标函数以分号结束。 下面的三行是约束函数,标点符号同一般的计算机语言,以分号结束。Lingo默认所有的变量为非负,若没有非负约束,需要用@free注明。

Lingo大小写不敏感,变量可以用大写或小写来表示。 Lingo窗口顶部的菜单条是一个标准的windows方式。一旦模型建立,即可从菜单或工具的solve按钮进行求解。在求解之前,lingo首先检查模型是否有语法错误,如果有,则提示错误位置。否则,求解工具开始求解,求解工具将在屏幕上出现一个求解状态窗口,当求解完成,求解报告将出现在屏幕上。 求解报告中,value列给出了决策变量的最优质。Slack or Surplus列的第一个输入显示了目标函数的响应值,下两个输入显示了每个约束函数两边之间的不同(对应于每个约束函数的剩余变量或松弛变量的值)。Reduced Cost和Dual Price列给出了问题的敏感性分析的信息。 这个模型足够小,能够一项一项写出,但这是单调乏味的。在一些相似的应用中,可能会有成千上万的决策变量和约束函数,一次以一项一项的方式写出模型是不现实的,lingo提供了一个有效地、紧凑的书写方式,即lingo建模语言。 LP模型一般具有重复的性质,所有的决策变量和约束函数都是同种类型的,lingo使用集合来描述这些重复的性质。 这个例子中的相关集合: 产品集合:P01,P02 资源集合:M01,M02,M03;(机器和原材料都可以看作是一种资源) 集合的属性: 1、每种产品的产量,每单位产品的利润 2、每周资源的供应量(包括原材料的供应量和设备的台时限制) 3、每单位每种产品分别需要资源的数量(产品和资源的组合的集合 成员的属性,这个集合源于两个简单的集合,称为导出集) 一个典型的lingo建立模型有三个部分: 1. 集合部分 2. 数据部分 3. 提供数学模型的部分 我们建立此模型的集合及数据部分: !lingo11 sets: !产品集合及其属性,/../之间的部分罗列了该集合的成员,每种属性会对应于集合的每个成员有一个值,相当于一个向量;

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 程序为:

运筹学实例分析及lingo求解

. 运筹学实例分析及lingo 求解 一、线性规划 某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。各供货仓库到8个客户处的单位货物运输价见表 试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。 解:设 ij x 表示从第i 个仓库到第j 个客户的货物运量。ij c 表示从第i 个仓库到第 j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。 目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束 数学模型为: ∑∑===6 18 1)(min i j ij ij x c x f ????? ??????≥===≤∑∑==08,,2,1,6,2,1,,. .6 1 8 1ij j i ij i j ij x j d x i a x t s ΛΛ

. 编程如下: model: Sets: Wh/w1..w6/:ai; Vd/v1..v8/:dj; links(wh,vd):c,x; endsets Data: ai=60,55,51,43,41,52; dj=35,37,22,32,41,32,43,38; c=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,2,2,8,1,4,3; Enddata Min=@sum(links(i,j):c(i,j)*x(i,j)); @for(wh(i):@sum(vd(j):x(i,j))<=ai(i)); @for(vd(j):@sum(wh(i):x(i,j))=dj(j)); end Global optimal solution found.

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 :

利用Lingo解一个具体的运输问题例子

实验三:利用Lingo 解一个具体的运输问题例子 1、 实验目的和任务 1.1. 进一步掌握Lingo 编程操作; 1.2通过实验进一步掌握运筹学运输问题的建模以及求解过程,提高学生分析问题和解决问题能力。 2、 实验仪器、设备及材料 计算机、Lingo 3、 实验内容 运输问题 问题P271 设有某种物资需要从m 个产地12,,...,m A A A 运到n 个销地12,,...,n B B B ,其中每个产地的生产量为 12,,...,m a a a ,每个销地的需求量为 12,,...,n b b b 。设从产地 i A 到销地 j B 的运费单价为 (1,2,...,, 1,2,..ij c i m j n ==,问如何调运可使总运费最少? 3个产地4个销地的运输问题 建模 决策变量:决策变量就是产地i A 到销地j B 的运量ij x 目标函数: 1 1 m in m n ij ij i j z c x === ∑∑, 约束条件:第i 个产地的运出量应小于或等于该地的生产量,即 1 ,1,2,...,.n ij i j x a i m =≤=∑ 第j 个销地的运入量应等于该地的需求量,即

1 ,1,2,....m ij j i x b j n ===∑ 求解过程 编写模型程序: model : ! 3 Warehouse,4 Customer Transportation Problem; sets : Warehouse/1..3/:a; Customer/1..4/:b; Routes(warehouse,customer):c,x; endsets !here are the parameters; data : a=30,25,21; b=15,17,22,12; c=6,2,6,7, 4,9,5,3, 8,8,1,5; enddata ! The objective; [obj] min =@sum (routes:c*x); !The supply constraints; @for (warehouse(i):[sup]@sum (customer(j):x(i,j))<=a(i)); !The demand constraints; @for (customer(j):[dem] @sum (warehouse(i):x(i,j))=b(j)); end 计算结果: Global optimal solution found. Objective value: 161.0000 Total solver iterations: 6 Variable Value Reduced Cost A( 1) 30.00000 0.000000 A( 2) 25.00000 0.000000 A( 3) 21.00000 0.000000 B( 1) 15.00000 0.000000 B( 2) 17.00000 0.000000 B( 3) 22.00000 0.000000

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的工作时间要有所控制,列为第

相关主题
文本预览
相关文档 最新文档