LINGO在多目标打算和最大最小化模型中的应用Word格式.docx

上传人:b****6 文档编号:19121326 上传时间:2023-01-04 格式:DOCX 页数:19 大小:100.45KB
下载 相关 举报
LINGO在多目标打算和最大最小化模型中的应用Word格式.docx_第1页
第1页 / 共19页
LINGO在多目标打算和最大最小化模型中的应用Word格式.docx_第2页
第2页 / 共19页
LINGO在多目标打算和最大最小化模型中的应用Word格式.docx_第3页
第3页 / 共19页
LINGO在多目标打算和最大最小化模型中的应用Word格式.docx_第4页
第4页 / 共19页
LINGO在多目标打算和最大最小化模型中的应用Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

LINGO在多目标打算和最大最小化模型中的应用Word格式.docx

《LINGO在多目标打算和最大最小化模型中的应用Word格式.docx》由会员分享,可在线阅读,更多相关《LINGO在多目标打算和最大最小化模型中的应用Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

LINGO在多目标打算和最大最小化模型中的应用Word格式.docx

其他原有的约束条件不变,改写后仍然是一个打算,只是增加了

个约束条件,目标函数的形式较为简单。

假设是能用LINGO求出它的解,那么问题已经解决,假设是求解困难,可转入下一步。

第二步,取消目标函数,保留上一步由目标函数改成的

个约束条件

和所有原先的约束条件,预设

值为某个常数,此刻原打算模型再也不是打算,它仅仅包括等式和不等式,没有目标函数,是许多约束条件的组合,能够称它为“混合组”。

求该混合组的解,其实质是求知足所有约束条件而且使目标函数等于给定值的一组决策变量的值,求出来的结果是可行解,它未必是最优解。

在存在可行解的前提下,使目标函数值小的可行解优于使目标函数值大的可行解,使目标函数值越小的可行解越接近最优解。

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

关于目标函数值离散的情形,不难找到最优解。

例:

装配线平稳模型。

一条装配线含有一系列的工作站,在最终产品的加工进程中每一个工作站执行一种或几种特定的任务。

装配线周期是指所有工作站完成份配给它们各自的任务所化费时刻中的最大值。

平稳装配线的目标是为每一个工作站分派加工任务,尽可能使每一个工作站执行相同数量的任务,其最终标准是装配线周期最短。

不适当的平稳装配线将会产生瓶颈——有较少任务的工作站将被迫等待其前面分派了较多任务的工作站。

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

那个模型的目标是最小扮装配线周期。

有2类约束:

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

②要保证知足任务间的所有优先关系。

例有11件任务(A—K)分派到4个工作站(1—4),任务的优先顺序如以下图。

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

任务

A

B

C

D

E

F

G

H

I

J

K

时间

45

11

9

50

15

12

8

解:

用变量

表示任务

分派给工作站

的情形,

表示分派,

表示不分派,

表示完成各项任务所需时刻,那么目标函数为

约束条件

(1):

每项任务只能且必需分派至一个工作站来做,能够表示为:

约束条件

(2):

各项任务间假设是有优先关系,那么排在前面的任务

对应的工作站(序号)应当小于(或等于)排在后面的任务

所对应的工作站(序号),即对所有有顺序的任务

约束条件(3):

这是一个非线性打算(目标函数非线性),但能够化为线性打算,增加一个变量,再增加四个约束条件:

,目标函数变成

LINGO程序为:

model:

!

装配线平稳模型;

sets:

任务集合,有一个完成时刻属性t;

task/ABCDEFGHIJK/:

t;

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

pred(task,task)/A,BB,CC,FC,GF,JG,J

J,KD,EE,HE,IH,JI,J/;

工作站集合;

station/1..4/;

tsx(task,station):

x;

x是派生集合txs的一个属性。

假设是x(i,k)=1,那么表示第i个任务

指派给第k个工作站完成;

endsets

data:

任务ABCDEFGHIJK的完成时刻估量如下;

T=4511950151212121289;

enddata

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

每一个作业必需指派到一个工作站,即知足约束①;

@for(task(i):

@sum(station(k):

x(i,k))=1);

关于每一个存在优先关系的作业对来讲,前者对应的工作站i必需小于后

者对应的工作站j,即知足约束②;

@for(pred(i,j):

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

计算的部份结果为

Globaloptimalsolutionfoundatiteration:

1255

Objectivevalue:

VariableValueReducedCost

CYCTIME

X(A,1)

X(A,2)

X(A,3)

X(A,4)

X(B,1)

X(B,2)

X(B,3)

X(B,4)

X(C,1)

X(C,2)

X(C,3)

X(C,4)

X(D,1)

X(D,2)

X(D,3)

X(D,4)

X(E,1)

X(E,2)

X(E,3)

X(E,4)

X(F,1)

X(F,2)

X(F,3)

X(F,4)

X(G,1)

X(G,2)

X(G,3)

X(G,4)

X(H,1)

X(H,2)

X(H,3)

X(H,4)

X(I,1)

X(I,2)

X(I,3)

X(I,4)

X(J,1)

X(J,2)

X(J,3)

X(J,4)

X(K,1)

X(K,2)

X(K,3)

X(K,4)

工件的安装与排序问题。

某设备由24个工件组成,安装时需要按工艺要求从头排序。

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

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

问题1:

按重量排序算法;

问题2:

按重量和体积排序算法;

请按下表中的工件数据(重量单位:

g,体积单位:

cm3)进行实时计算。

 

表工件的重量和体积数据

序号

1

2

3

4

5

6

7

10

重量

348

352

347

349

330

329

体积

102

105

106

104

94

98

13

14

16

17

18

19

20

333

99

97

21

22

23

24

332

对问题1和2别离求解。

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

表示24个工件,

表示各工件的重量,

表示圆盘上的6个扇区,

表示各扇区上4个工件的总重量,

是0-1型决策变量,表示工件

是不是放在扇区

上,

表示放,

表示不放。

每一个工件必需且只能放到一个位置上,每一个位置放一个且仅放一个工件,每一个扇区放4个工件,重量之和为

目标函数是:

相邻扇区上的

之差的(绝对值)最大值达到最小,成立0-1打算模型如下:

模型中的

是虚拟的,

使得1-6-1扇区组成圆盘,引入

的目的只是使目标函数的表达式精练。

该0-1打算模型的目标函数是相邻扇区上的

之差(绝对值)的最大值达到最小,属于最大最小化模型。

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

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

由于24个工件的重量数据多数为整数,部份有小数,小数的最小计数单位为,因此相邻扇区重量之差的大体计数单位是,即

的可能取值是离散的。

令C取0,,1,,2,……中的具体值(C值越小越好)。

用LINGO编程求解,不难求适当C=时有可行解,因C=0时无可行解,故C=时的可行解确实是最优解。

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

sets:

gj/1..24/:

w;

shq/1..6/:

d;

bl(gj,shq):

endsets

data:

w=348352347349347330329329329

347348348333330332;

enddata

@for(bl:

c=;

常数C能够设定不同的值试一试;

@for(gj(i):

@sum(shq(j):

x(i,j))=1);

@for(shq(j):

@sum(gj(i):

x(i,j))=4);

d(j)=@sum(gj(i):

w(i)*x(i,j)));

@for(shq(j)|j#lt#6:

d(j+1)-d(j)<

=c);

d(j+1)-d(j)>

=-c);

d

(1)-d(6)<

=c;

d

(1)-d(6)>

=-c;

运行结果如下:

Feasiblesolutionfoundatiteration:

15994

VariableValue

C

W

(1)

W

(2)

W(3)

W(4)

W(5)

W(6)

W(7)

W(8)

W(9)

W(10)

W(11)

W(12)

W(13)

W(14)

W(15)

W(16)

W(17)

W(18)

W(19)

W(20)

W(21)

W(22)

W(23)

W(24)

D

(1)

D

(2)

D(3)

D(4)

D(5)

D(6)

X(1,1)

X(1,2)

X(1,3)

X(1,4)

X(1,5)

X(1,6)

X(2,1)

X(2,2)

X(2,3)

X(2,4)

X(2,5)

X(2,6)

X(3,1)

X(3,2)

X(3,3)

X(3,4)

X(3,5)

X(3,6)

X(4,1)

X(4,2)

X(4,3)

X(4,4)

X(4,5)

X(4,6)

X(5,1)

X(5,2)

X(5,3)

X(5,4)

X(5,5)

X(5,6)

X(6,1)

X(6,2)

X(6,3)

X(6,4)

X(6,5)

X(6,6)

X(7,1)

X(7,2)

X(7,3)

X(7,4)

X(7,5)

X(7,6)

X(8,1)

X(8,2)

X(8,3)

X(8,4)

X(8,5)

X(8,6)

X(9,1)

X(9,2)

X(9,3)

X(9,4)

X(9,5)

X(9,6)

X(10,1)

X(10,2)

X(10,3)

X(10,4)

X(10,5)

X(10,6)

X(11,1)

X(11,2)

X(11,3)

X(11,4)

X(11,5)

X(11,6)

X(12,1)

X(12,2)

X(12,3)

X(12,4)

X(12,5)

X(12,6)

X(13,1)

X(13,2)

X(13,3)

X(13,4)

X(13,5)

X(13,6)

X(14,1)

X(14,2)

X(14,3)

X(14,4)

X(14,5)

X(14,6)

X(15,1)

X(15,2)

X(15,3)

X(15,4)

X(15,5)

X(15,6)

X(16,1)

X(16,2)

X(16,3)

X(16,4)

X(16,5)

X(16,6)

X(17,1)

X(17,2)

X(17,3)

X(17,4)

X(17,5)

X(17,6)

X(18,1)

X(18,2)

X(18,3)

X(18,4)

X(18,5)

X(18,6)

X(19,1)

X(19,2)

X(19,3)

X(19,4)

X(19,5)

X(19,6)

X(20,1)

X(20,2)

X(20,3)

X(20,4)

X(20,5)

X(20,6)

X(21,1)

X(21,2)

X(21,3)

X(21,4)

X(21,5)

X(21,6)

X(22,1)

X(22,2)

X(22,3)

X(22,4)

X(22,5)

X(22,6)

X(23,1)

X(23,2)

X(23,3)

X(23,4)

X(23,5)

X(23,6)

X(24,1)

X(24,2)

X(24,3)

X(24,4)

X(24,5)

X(24,6)

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

扇区一二三四五六

工件9,13,1,64,52,103,1114,15

17,247,128,2318,2016,1921,22

总重量135713571357

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

符号规定与问题1略有不同,

是圆盘上的位置序号,

是扇区编号,每一个扇区有4个位置,

表示各工件体积,

表示第

个位置上所放工件的体积,

是不是放在位置

,目标函数有两个:

①相邻扇区上的

之差的最大值达到最小;

②相邻位置上工件的体积之差的最小值达到最大。

成立双目标打算模型如下:

目标函数:

约束条件:

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

然后考虑第二个目标:

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

H是希望达到的目标函数的值,此刻双目标打算就变成了没有目标函数,仅含有等式和不等式的混合组,如此处置的最大优势是计算速度快。

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

注意:

解答不唯一,且不能确信这必然是最优解时,能够在LINGO求解的基础上做一些手工调整,取得更好的方案。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1