用lingo求解数学规划模型实例

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a=60,55,51,43,41,52; b=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;
@text()=@table(x); enddata
产地 总产量和:302 销地 总销量和:280 产大于销的模型。
产地 Ai : 总产量 ai 销地 Bi : 总销量 bi 产地Ai到销地Bj : 单位运价 cij 运输量 xij
i=1,2,…,6;
j=1,2,…,8
决策变量:产地Ai到销地Bj的 运输量 xij
从产地Ai到销地Bj的运费 cij xij
MON 开始上班的人数为 8.0000000 TUE 开始上班的人数为 2.0000000 WED 开始上班的人数为 0.0000000 THU 开始上班的人数为 6.0000000 FRI 开始上班的人数为 3.0000000 SAT 开始上班的人数为 3.0000000 SUN 开始上班的人数为 0.0000000
8
从Ai到各销地的运费 cij xij
j1 68
总运费
cij xij
i1 j1
68
目标函数: min
cij xij
i1 j1
产地 Ai : 总产量 ai 销地 Bi : 总销量 bi 产地Ai到销地Bj : 单位运价 cij 运输量 xij
i=1,2,…,6;
j=1,2,…,8
产地总产量和:302
@file函数 该函数用从外部文件中输入数据,可以放在模型中任
何地方。
语法格式为@file(filename) 这里filename是文件名,可以采用相对路径和绝对路径 两种表示方式。
执行一次 @file输入 1个记录,记录之间的分隔符为 ~。 @table函数 该函数以表格形式输出数据,只能在数据段(DATA) 中使用。
Objective value:
664.0000
V1 V2 V3 V4 V5 V6 V7 V8 W1 0 19 0 0 41 0 0 0 W2 1 0 0 32 0 0 0 0 W3 0 11 0 0 0 0 40 0 W4 0 0 0 0 0 5 0 38 W5 34 7 0 0 0 0 0 0 W6 0 0 22 0 0 27 3 0
二、线性规划模型
特点:目标函数与约束条件均为一次的。
线性规划的一般模型
n
min z ci xi
i 1
n
s.t.
aij xi
i 1
wk.baidu.com
(, )bi
( j 1,2,, m)
li xi hi
(i 1,2,, n)
例1(运输规划模型) 某产品有6个产地Ai 和8个销售地 Bj (i=1,2,…,6, j=1,2,…,8) ,产地到销地的单位运价见下表, 问如何安排运输可使运输总费用最小。
@text函数仅能出现在模型数据部分的一条语句的 左边。
如在例6.7 (职员时序安排模型) 一项工作一周7天 都需要有人(比如护士工作),每天(周一至周日) 所需的最少职员数为20、16、13、16、19、14和12, 并要求每个职员一周连续工作5天, 试求每周所需最少职员数,并给出安排。 注意这里我们考虑稳定后的情况。
决策变量:xi第i周天开始上班的人数;
7
目标函数: min xi
i 1 5
s.t. xmod( ji1,7)1 d j j 1,2,,7
i 1
7
5
min xi , s.t.
xmod( ji1,7)1 d j, j 1,2,,7
i 1
i 1
sets: day/mon..sun/:x,d; endsets [obj]min=@sum(day:x); @for(day(j):@sum(day(i)|i#le#5:x(@wrap(j+i+2,7)))>=d); @for(day:@gin(x)); data: d=20,16,13,16,19,14,12; @text(F:\数学软件\lingoli\li607.txt)=day '开始上班的人数为' x; Enddata
例2 (指派问题)九种不同型号的装备配给9个部队, 由于各部队的特点与条件不同,不同的装备在不同部队 中产生效能不同,问如何分配可保证每个部队各分得一 种装备,且使总效能最大(装备在不同部队的效能见下表)。
装备
j1
xij 0
i=1,2,…,6; j=1,2,…,8
sets: chdi/w1..w6/:a; xdi/v1..v8/:b; link(chdi,xdi):c,x; endsets [obj]min=@sum(link:c*x); @for(xdi(j):@sum(chdi(i):x(i,j))=b(j)); @for(chdi(i):@sum(xdi(j):x(i,j))<=a(i)); data:
销地总销量和:280
为产大于销的模型。
68
目标函数: min
cij xij
i1 j1
6
运往Bj的总运量: xij bj
i 1
8
从Aj运出的总量: xij ai
j1
对变量xij的限制: xij 0
68
min
cij xij
i1 j1
6
s.t: xij bj
i 1
8
xij ai
用lingo求解数学规划模型实例
一、lingo中的输入输出函数 @text函数
该函数被用在数据部分,用来将所需的数据输出至 文本文件中。
其语法为: @text(filename) 这里filename是文件名,可以采用相对路径和绝对
路径两种表示方式。如果忽略filename,那么数据就 被输出到标准输出设备(大多数情形都是屏幕)。
单位运价表:
B1 B2 B3 B4 B5 B6 B7 B8 产 量
A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销 量 35 37 22 32 41 32 43 38
相关文档
最新文档