学习LINGO语言课件全解
lingo入门教程(共55张)
3 3
A2
8 67
A3 4
7
B2
8 9
5 C2 6
T
第18页,共55页。
分析
(fēnxī)
6 A1 5 6
B1 6 C1
S
3 3
A2
8 67
A3 4
7
B2
8 9
5 C2 6
T
假设从S到T的最优行驶路线 P 经过城市C1, 则P中从S到C1的子路也一定 是从S到C1的最优行驶路线; 假设 P 经过城市C2, 则P中从S到C2的子路也一定是从S到C2的最优行驶路线. 因此, 为得到从S到T的最优行驶路线, 只需要先求出从S到Ck(k=1,2)的最 优行驶路线, 就可以方便地得到从S到T的最优行驶路线.
第19页,共55页。
分析
(fēnxī)
6 A1 5 6
B1 6 C1
S
3 3
A2
8 67
A3 4
7
B2
8 9
5 C2 6
T
此例中可把从S到T的行驶过程分成4个阶段,即 S→Ai (i=1,2 或3), Ai → Bj(j=1或2), Bj → Ck(k=1或2), Ck → T. 记d(Y,X)为城 市Y与城市X之间的直接距离(若这两个城市之间没有道路直 接相连,则可以认为直接距离为∞),用L(X)表示城市S到城市
L B2 minL A1 5, L A2 6, L A3 4 7 L A3 4; L C1 minL B1 6, L B2 8 15 L B2 8;
略2去),最小运量136.2275(吨公里)。
1
3
5
0
0
1
2
3
4
5
6
LINGO基本语法和编程ppt课件
f对
x, j
y j
是非线性的,
所以在新建料场时是NLP模型。先解NLP模型,而把现有临时料场的位置作
为初始解告诉LINGO。
本例中集合的概念
利用集合的概念,可以定义需求点DEMAND和供应点 SUPPLY两个集合,分别有6个和2个元素(下标)。但决 策变量(运送量) 与c ij 集合DEMAND和集合SUPPLY都 有关系的。该如何定义这样的属性?
在实际问题中,输入的数据通常是原始数据,不一定 能在模型中直接使用,可以在这个段对这些原始数据进 行一定的“预处理”,得到模型中真正需要的数据。
例如
Calc: TotalWeight = @sum(Box(i): zl(i)*js(i)); EndCalc
注意计算段只能对常量进行计算,不能对需要 通过解优化程序求解出来的变量进行计算。
1 2 3 456
a 1.25 8.75 0.5 5.75 3 7.25
b 1.25 0.75 4.75 5 6.5 7.75
d3
5
4
7 6 11
建立模型
记工地的位置为(a ,b ) ,水泥日用量为d,i1, 6;料场
ii
i
位置为(
x
j
,
y
j
)
,日储量为
e j
,
j 1,2
;从料场
j 向工地i
的
运送量为c ij 。
集合的基本用法
例四这理属个些解性SA季需(LIIL度求ANCtG的必tOrO帆须i公b建u船按司t模e需时需)语求满要的言量足决概最分。定念重别每下。要是个四的季4个0是度条季理正,度解常6的0集的条帆合生,船(产7生5S能条产et)力,量及2是。5其条4下0, 条帆船,每条船的生产费用为400美元。如果加班生产, 每条船的生产费用为450美元。每个季度末,每条船的 库存费用为20美元。假定生产提前期为0,初始库存为 10条船。如何安排生产可使总费用最小?
【精品】LINGO快速入门PPT课件
• 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)); !需求约束;
为 flase • #ge# 若左边的运算符大于或等于右边的运算符,则为 true ;
否则为 flase • #lt# 若左边的运算符严格小于右边的运算符,则为 true ;否则
为 flase • #le# 若左边的运算符小于或等于右边的运算符,则为 true ;否
则为 flase • #and# 仅当两个参数都为 true 时,结果为 true ;否则为 flase
• @smax(x1,x2,...,xn)返回 x1 , x2 , … , xn 中的 最大值
• @smin(x1,x2,...,xn)返回 x1 , x2 , … , xn 中的最 小值
例 给定一个直角三角形,求包含该三角形的最小正方形。
解:如图所示。ABCDDAEabx
求最小的正方形就相当于求如下的最优化问题:
•
49538582
•
52197433
•
76739271
•
23957265
•
5 5 2 2 8 1 4 3;
• enddata
• end
模型的集部分
• 例2.2
• !集部分;
• sets:
• students:sex,age;
• endsets
• !数据部分;
lingo语言(课件PPT)
如小于103
Module 00-4
二、Lingo集合
例1 选址问题
❖某公司有6个建筑工地,位置坐标为(ai,bi) (单位:公里),水
泥日用量di (单位:吨)
i
123456
a
2 8.75 0.5 5.75 3 7.25
目标
min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));
@for(demand(i):@sum(supply(j):c(i,j))=d(i););
需求约束
@for(supply(i):@sum(demand(j):c(j,i))<=e(i););
元素列表法——枚举 元素过滤法——利用过滤条件 setname(parent_set_list) [|filtrate_condition] [:attribute_list];
Module 00-10
例1 ❖ 建立
下标集合
sets:
demand/1..6/:a,b,d;
需求
supply/1..2/:x,y,e;
❖ 基于其它集合而派生出来的二维或多维集合 ❖定义格式 ——集合名 父集合列表 元素列表 属性列表
setname(parent_set_list) [/member_list/] [: attribute_list]; ❖ 元素列表缺省
所有组合——稠密集合、或数据段列表赋值 ❖ 元素列表——稀疏集合
b
3 0.75 4.75 5
6.5 7.75
LINGO的基本用法PPT课件
返回值
返回X的绝对值 返回X的正弦值 返回X的余弦值 返回X的正切值 返回X的自然对数值 返回eX的值(e为自然常数,e=2.7182818……) 返回X的符号值 返回这一系列数中的最大值 返回这一系列数中的最小值 返回X的整数部分(向最靠近0的方向取整) 返回X的gamma函数的自然对数值 返回X除以Y的余数(X和Y都是整数) 返回指数XY的值(该函数可用X^Y代替) 返回X的平方值(该函数可用X^2代替) 返回X的正的平方根(该函数可用X^(1/2)代替)
第1页/共35页
建模时需要注意的几个基本问题: (1) 尽量使用实数优化模型,减少整数约束和整数变量的
个数; (2) 尽量使用光滑优化模型,减少非光滑约束的个数;
如:尽量少地使用绝对值函数、符号函数、多个变量求最 大(或最小)值、四舍五入函数、取整函数等. (3) 尽量使用线性优化模型,减少非线性约束和非线性变 量的个数(如x/y < 5改为x < 5y) ; (4) 合理设定变量的上下界,尽可能给出变量的初始值; (5) 模型中使用的单位的数量级要适当(如小于103);
68
min z
cij xij ;
i1 j 1
8
xij ai , i 1, 2, , 6;
j 1
6
xij d j , j 1, 2, ,8;
i 1
xij 0,,i 1, 2, , 6, j 1, 2, ,8;
第15页/共35页
1. 集合定义部分 集合是一组相关对象构成的组合 集合分为初始(基本\原始)集合和衍生(派生)集合 集合在使用之前需要预先给出定义, 初始集合的定义三要素: 集合的名称, 集合的元素, 集合的属性(可视为与该集合有关 的变量或常量). 初始集合的定义格式: 集合的名称/集合的元素/:集合的属性;
Lingo教程PPT优秀课件
演示(试用)版、学生版、高级版、超级版、工业版、扩展版…
求解问题规模和选件不同
2
LINDO和LINGO软件能求解的优化模型
连续优化
优化模型 整数规划(IP)
线性规划 二次规划 非线性规划
(LP)
(QP)
(NLP)
LINDO
LINGO
3
LINDO/LINGO软件的求解过程
1. 确定常数 2. 识别类型
5
需要掌握的几个重要方面
LINGO: 掌握集合(SETS)的应用; 正确阅读求解报告; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
6
文件类型描述
• .lg4 LINGO格式的模型文件 二进制格式文件 • .lng 文本格式的模型文件(不保存字体、颜色、
11
例1.1 如何在LINGO中求解如下的LP问题:
min 2 x 1 3 x 2 s .t.
x 1 x 2 350
x1
100
2 x 1 x 2 600
x1, x2 0
在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600;
LINGO软件简介
• LINGO模型的优点
• 提供了灵活的编程语言(矩阵生成器)
• LINGO模型的构成:5个段
• 目标与约束段 • 集合段(SETS ENDSETS) • 数据段(DATA ENDDATA) • 初始段(INIT ENDINIT) • 计算段(CALC ENDCALC) - LINGO9.0
嵌入对象) • .ldt LINGO数据文件 • .ltf LINGO命令脚本文件 • .lgr LINGO报告文件 • .ltx LINDO格式的模型文件 • .mps 数学规划系统格式的模型文件
学习LINGO语言课件全解共151页文档
• Variable Value Reduced Cost
• x1 1.272727 0.000000
• x2 1.636364 0.000000
• Row Slack or Surplus Dual Price
• 1 7.454545
1.000000
• 2 0.000000
0.9090909E-01
显然,如果在最优解处约束正好取等号 (紧约束),该值才可能不是0;对于非紧 约束对该值必为0,表示对应约束中不等式 右端项的微小扰动不影响目标函数。
2020/5/31
*
§2 Lingo的基本用法注意事项
2020/5/31
*
1)每一个模型都以 model:
开始, 又以 end
结束,也可省略此结构;
*
2)LINGO开始编译模型,如有语法错 误将返回一个错误的消息并指明错误 出现的位置;如果通过编译, LINGO 将激活 Solver运算器 寻求模型的最 优解;
2020/5/31
*
3)首先出现solver status 窗口,其 作用是监控solver的进展和显示模 型的维数等信息;
2020/5/31
*
Solver Status 窗口
2020/5/31
*
4)计算完成后出现Solution Report 窗口显示模型解的详细信息;
2020/5/31
*
Solution Report 窗口
• Global optimal solution found at iteration: 2
• Objective value: 7.454545
Outline 一. 优化模型与优化软件简介 二. LINGO软件的基本使用方法 三. LINGO程序流程控制和子模型
《Lingo软件学习》PPT课件
xij
0或1
j 1, 2, , n, i j i=1,2, ,n, j i i, j 1, 2, n
三、职员时序安排模型
一项工作一周7天都需要有人(比如护士工作),每天 (周一至周日)所需的最少职员数为20、16、13、16、19、 14和12,并要求每个职员一周连续工作5天,试求每周所 需最少职员数,并给出安排。注意这里我们考虑稳定后的 情况。
LINGO中的函数有基本元算符,数学函数,金融函数,变 量限定函数等,全部函数请参照Edit|paste funtion。
算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符:
^ 乘方 ﹡ 乘
/除
﹢加
﹣减
LINGO唯一的一元算术运算符是取反函数“﹣”
LINGO具有9种逻辑运算符: #not# 否定该操作数的逻辑值,#not#是一个一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #gt# 若左边的运算符严格大于右边的运算符,则为true;否则为flase #ge# 若左边的运算符大于或等于右边的运算符,则为true;否则为flase #lt# 若左边的运算符严格小于右边的运算符,则为true;否则为flase #le# 若左边的运算符小于或等于右边的运算符,则为true;否则为flase #and# 仅当两个参数都为true时,结果为true;否则为flase #or# 仅当两个参数都为false时,结果为false;否则为true
68
min z
cij xij
i1 j 1
8
xij ai
i 1, 2, , 6
LINGO教程(图文版)
LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门1.1 应用实例当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:0,6002100350..32min 212112121≥≤+≥≥++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;然后点击工具条上的按钮 即可。
例1.2使用LINGO软件计算6个发点8个收点的最小费用运输问题。
产销单位使用LINGO软件,编制程序如下:model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/: capacity;v endors/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 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
学习LINGO语言课件-精选文档152页
§3 LINGO的建模语言
19.10.2019 19.10.2019 14:48
以运输实例逐步分析
6个仓库向8个小贩供应同一种货物, 如何运,总运输费用最小? 注:每个仓库可以向每个小贩供货 ,一共48个可能运货路线。 仓库货存量、小贩需求量、每条路线
的单位运输费用三个表如下:
19.10.2019 19.10.2019 14:48
DUAL PRICES表示当对应约束有微 小变动时,目标函数的变化率,即约束条 件右端的常数项每增加一个单位,目标函 数相应获得的改变量。
显然,如果在最优解处约束正好取等号 (紧约束),该值才可能不是0;对于非紧 约束对该值必为0,表示对应约束中不等式 右端项的微小扰动不影响目标函数。
19.10.2019 19.10.2019 14:48
8) 变量和数字放在约束条件的左、 右端均可; 但最好变量在左,数字在右。
9) Lingo 变量默认域为非负实数, 可以改变默认域.
19.10.2019 19.10.2019 14:48
10)行名 [name] 例: [Objective]max=2*x+3*y; [Con1] 4*x+3*y<10; [Con2] 3*x+5*y<12; 线性规划(行名).lg4 默认为[1],[2],[3]
1、尽量使用实数优化,减少整数约 束和整数变量
2、尽量使用光滑优化,减少非光滑 约束的个数
如:尽量少使用绝对值、符号函数、 多个变量求最大/最小值、四舍五入、 取整函数等
19.10.2019 19.10.2019 14:48
建模时需要注意的几个基本问题
3、尽量使用线性模型,减少非线性 约束和非线性变量的个数 (如x/y <5 改为x<5y)
LINGO课件
LINGO模型 LINGO模型 — 例:选址问题
某公司有6个建筑工地,位置坐标为 单位: 某公司有 个建筑工地,位置坐标为(ai, bi) (单位:公里 个建筑工地 单位 公里), 单位: 水泥日用量d 单位 水泥日用量 i (单位:吨)
i a b d 1 1 .2 5 1 .2 5 3 2 8 .7 5 0 .7 5 5 3 0 .5 4 .7 5 4 4 5 .7 5 5 7 5 3 6 .5 6 6 7 .2 5 7 .7 5 11
集是一群相联系的对象,这些对象也称为集的成员。 集是一群相联系的对象,这些对象也称为集的成员。一个集可能 是一系列产品、卡车或雇员。 是一系列产品、卡车或雇员。每个集成员可能有一个或多个与之 有关联的特征,我们把这些特征称为属性。属性值可以预先给定, 有关联的特征,我们把这些特征称为属性。属性值可以预先给定, 也可以是未知的,有待于LINGO求解。例如,产品集中的每个产 求解。 也可以是未知的,有待于 求解 例如, 品可以有一个价格属性; 品可以有一个价格属性;雇员集中的每位雇员可以有一个薪水属 也可以有一个生日属性等等。 性,也可以有一个生日属性等等。
•对实际问题建模的时候,总会遇到一群或多群相联系 对实际问题建模的时候, 对实际问题建模的时候 的对象,比如工厂、消费者群体、交通工具和雇工等等。 的对象,比如工厂、消费者群体、交通工具和雇工等等。 LINGO允许把这些相联系的对象聚合成集(sets)。 允许把这些相联系的对象聚合成集( 允许把这些相联系的对象聚合成集 )。
LINGO优化软件 优化软件 学习课件
LINGO软件简介 软件简介
LINGO模型的优点 模型的优点
•包含了 包含了LINDO的全部功能 包含了 的全部功能 •提供了灵活的编程语言(矩阵生成器) 提供了灵活的编程语言( 提供了灵活的编程语言 矩阵生成器)
培训教案——LINGOppt课件
——solution:主要是考察结果,可以 指定某一行或者某一个项目来考察 结果,有文字形式也有图表形式。
——range:主要是用于灵敏度分析, 在这里要先更改默认设置,将price 改为price and range,然后才能运 行range。
——generate:可以产生相对应的程序。
隐式成员列表格式 1..n StringM..stringN
DayM..DayN MonthM..MonthN
示例 1..5 Card2..Card10
Mon..Fri Oct..Jan
所产生的集成员 1,2,3,4,5 Card2,Card3,Card4…Card 10 Mon,Tue,Wen,Thu,Fri
在编程中对LINGO的调用
最新版整理ppt
2
LINGO简介
• LINGO是一种专门用于求解数学规划问题 的软件包。由于LINGO执行速度快,易于 方便地输入、求解和分析数学规划问题, 因此在教学、科研和工业界得到广泛应用。
• LINGO主要用于求解线性规划、非线性规 划、二次规划和整数规划等问题,也可以 用于求解一些线性和非线性方程组及代数 方程求根等。
• 集部分是LINGO模型的一个可选部分。在LINGO 模型中使用集之前,必须在集部分事先定义。集 部分以关键字“sets:”开始,以“endsets”结束。 一个模型可以没有集部分,或有一个简单的集部 分,或有多个集部分。一个集部分可以放置于模 型的任何地方,但是一个集及其属性在模型约束 中被引用之前必须被定义。
——debug:用于调试程序,只能在程 序出错时才能用。
•windows:
——command window:生成命令窗口, 用于在非windows系统下以命令的方式编 写和运行程序。
学习LINGO语言课件
280时2109年2分8月 1071秒22日0星年期8三月12日8时19分
第三步:求解模型
1)选择菜单 LINGO|Solve
或者按工具栏的
280时2109年2分8月 1071秒22日0星年期8三月12日8时19分
2)LINGO开始编译模型,如有语法错 误将返回一个错误的消息并指明错误 出现的位置;如果通过编译, LINGO 将激活 Solver运算器 寻求模型的最 优解;
决策变量
x1≥0
x2≥0
280时2109年2分8月 1071秒22日0星年期8三月12日8时19分
目标函数
约 束 条 件
第一步:启动Lingo
屏幕显示如下: 标记LINGO的外窗口是主框架
窗口,主框架窗口的上面包含所 有的命令菜单和命令工具栏;
标记LINGO MODEL-LINGO1的子 窗口是一个新的、空白的模型窗 口。
• 3 0.000000
0.5454545
280时2109年2分8月 1071秒22日0星年期8三月12日8时19分
Reduced Cost:
在max模型中: 相应变量的 reduced cost值表
示当该变量每增加一个单位时目标 函数减少的量。 本例中此值均为0
280时2109年2分8月 1071秒22日0星年期8三月12日8时19分
280时2109年2分8月 1081秒22日0星年期8三月12日8时19分
数学模型可表示如下:
68
min (cost _ i _ j *volum e _ i _ j)
i 1 j1
6
volum e _ i _ j dem and _ j ( j 1,2,,8)
i 1
st.
lingo入门-PPT课件
Global optimal solution found at iteration:
y 1 ,y 1 ',y 2,y 2',y 3,y 3' 0
(3)min max(x1,x2,x3);
s.t.xx11
x2 x3 10, 3x2 2x3 12.
最高分越低越好!!
解 令 yma1x ,x2(,xx3),则此约束的充分条件是
yx 1 ,yx 2,yx 3 .
2、Lindo/Lingo软件内部有以下4个求解程序用于求解 不同类型的优化模型
(1)直接求解器(Direct Solver);
(2)线性优化求解程序(Linear Solver);
(3)非线性优化求解程序(Nonlinear Solver);
(4)分支定界管理程序(Branch and Bound Manager)。
6
Objective value:
244.0000
Variable X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34
Value 4.000000 0.000000 12.00000 0.000000 4.000000 0.000000 0.000000 6.000000 0.000000 14.00000 0.000000 8.000000
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Reduced Cost:
在max模型中: 相应变量的 reduced cost值表
示当该变量每增加一个单位时目标 函数减少的量。 本例中此值均为0
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
Reduced Cost:
Reduced Cost 值列出最优单纯形表中判别 数所在行的变量的系数,表示当变量有微 小变动时,目标函数的变化率。其中基变 量的reduced cost值应为0, 对于非基变量 Xj, 相应的reduced cost值表示当某个变 量Xj 增加一个单位时目标函数减少的量 ( max型问题)。本例中此值均为0。
4) LINGO的每一语句以
;
结束; 5) 注释
以 ! 开始, 以 ; 结束;
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
6) 变量名: .不区分大小写 .由字母数字下划线组成 .第一个字符必须是字母 .变量名最长为32个字符
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
•
Row
Slack or Surplus Dual Price
•
OBJECTIVE 7.454545
1.000000
•
CON1 0.000000
0.9090909E-01
•
CON2 0.000000
0.5454545
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
§3 LINGO的建模语言
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
Solution Report 窗口
• Global optimal solution found at iteration: 2
• Objective value: 7.454545
• Variable Value Reduced Cost
仓库货存量:capacity
仓库号 w1 w2 w3 w4 w5 w6
货存量 60 55 51 43 41 52
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
小贩需求量:demand
小贩代号 v1 v2 v3 v4 v5 v6 v7 v8
货物需求量 35 37 22 32 41 32 43 38
7) LINGO编辑器用 蓝色显示LINGO关键字 绿色显示注释 其他文本用黑色 匹配的括号用红色高亮度显示
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
8) 变量和数字放在约束条件的左、 右端均可; 但最好变量在左,数字在右。
9) Lingo 变量默认域为非负实数, 可以改变默认域.
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
以运输实例逐步分析
6个仓库向8个小贩供应同一种货物, 如何运,总运输费用最小? 注:每个仓库可以向每个小贩供货 ,一共48个可能运货路线。 仓库货存量、小贩需求量、每条路线
的单位运输费用三个表如下:
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
w6 5 5 2 2 8 1 4 3
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
• demand_j 表示第j个小贩
的需求量
• capacity_i 表示第i个仓库的 已
库存量
知
• cost_i_j 表示从第i个仓
数
库到第j个小贩的单位运输费用 量
• volume_i_j 表示从第i个仓库到 第j个小贩的运输量
DUAL PRICES:对偶价格或影子价格
DUAL PRICES表示当对应约束有微 小变动时,目标函数的变化率,即约束条 件右端的常数项每增加一个单位,目标函 数相应获得的改变量。
显然,如果在最优解处约束正好取等号 (紧约束),该值才可能不是0;对于非紧 约束对该值必为0,表示对应约束中不等式 右端项的微小扰动不影响目标函数。
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
10)行名 [name] 例: [Objective]max=2*x+3*y; [Con1] 4*x+3*y<10; [Con2] 3*x+5*y<12; 线性规划(行名).lg4 默认为[1],[2],[3]
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
model:
Max 2x1+3x2
max = 2*x1+3*x2; St.
4*x1+3*x2<10; 3*x1+5*x2<12; end
4x1+3x2<=10 3x1+5x2<=12 x1≥0 x2≥0
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
第三步:求解模型
1)选择菜单 LINGO|Solve
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
每单位货物运输费用表:cost
小
仓贩 库
v1
v2
v3
v4
v5
v6
v7
v8
w1 6 2 6 7 4 2 5 9
w2 4 9 5 3 8 5 8 2
w3 5 2 1 9 7 4 3 3
w4 7 6 7 3 9 2 7 1
w5 2 3 9 5 7 2 6 5
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
常用优化软件
1.LINDO/LINGO软件 2.MATLAB优化工具箱
/mathematica优化程序包 3.EXCEL软件的优化功能 4.SAS(统计分析)软件的优化功能
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
• x1 1.272727 0.000000
• x2 1.636364 0.000000
• Row Slack or Surplus Dual Price
• 1 7.454545
1.000000
• 2 0.000000
0.9090909E-01
• 3 0.000000
0.5454545
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
优化问题的一般形式
min f ( x) s.t. hi ( x) 0, i 1,...,m
g j ( x) 0, j 1,...,l x D n
(1) 约 (2) 束
条
(3) 件
•无约束优化: 只有目标函数, 没有约束条件 •有约束优化: 目标函数和约束条件都有 •普通方程组:没有(1)(3), 只有(2) •不等式方程组:没有(1)(2), 只有(3)
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
优化类型
• 连续优化 : 全部决策变量取值均 为连续数值 (实数)
• 离散优化 : 部分或全部决策变量 只取离散数值
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
连续优化
• 线性规划(LP) 目标和约束均为线性函数 • 非线性规划(NLP) 目标或约束中有非线性函数
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
SLACK OR SURPLUS: 给出约束条件的松驰变量或剩余
变量的值; 小于等于约束为松驰变量
(SLACK); + 大于等于约束为剩余变量
(SURPLUS); -
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
§1 LINGO入门
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
设有数学模型如下:
max 2x1+3x2
St. 4x1+3x2<=10
3x1+5x2<=12
决策变量
x1≥0
x2≥0
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
目标函数
LINGO
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
Outline 一. 优化模型与优化软件简介 二. LINGO软件的基本使用方法 三. LINGO程序流程控制和子模型
20六2201年00时22月3902分9年日45星秒2期月29日10时39分
一. 优化模型与优化软件简介
2)目标函数必须由 min =
或 max =
开头。
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
3)可以用<表示<=; 用>表示>=;
Lingo无严格小于,欲使a<b, 可以适当选取小的正常数e 表示成a+e<b,
20六2201年40分
20六2201年00时22月3902分9年日45星秒2期月29日10时40分
数学模型可表示如下:
68
min (cost _ i _ j *volum e _ i _ j)
i 1 j1
6
volum e _ i _ j dem and _ j ( j 1,2, ,8)
✓ 二次规划(QP) 目标为二次函数、 约束为线性
20六2201年00时22月3902分9年日45星秒2期月29日10时39分