优化软件 LinGo的使用
1,优化模型与优化软件简介最优化是工程技术、经济管理、科学研究、
社会生活中经常遇到的问题,如,
优化模型和优化软件的重要意义结构设计 资源分配 生产计划 运输方案解决优化问题的手段
经验积累,主观判断
作试验,比优劣
建立数学模型 (优化模型 ),求最优策略 (决策 )
(最 )优化,在一定条件下,寻求使目标最大 (小 )的决策
CUMCM赛题:约一半以上与优化有关,需用软件求解运筹学 (OR,Operations/Operational Research)
管理科学 (MS,Management Science)
决策科学 (DS,Decision Science)
(最 )优化理论是运筹学的基本内容无约束优化
OR/
MS/
DS
优化 (Optimization),规划 (Programming)
线性规划非线性规划网络优化组合优化整数规划不确定规划多目标规划目标规划动态规划优化问题三要素,决策变量 ; 目标函数 ; 约束条件约束条件决策变量优化问题的一般形式
n
j
i
Dx
ljxg
mixhts
xf



,.,,,1,0)(
,.,,,1,0)(..
)(m i n
可行解(满足约束)与可行域(可行解的集合)
最优解(取到最小/大值的可行解)
目标函数无约束优化,最优解的分类和条件
)( xfM inx
给定一个函数 f(x),寻找 x* 使得 f(x*)最小,即
nTnxxxx ),,,( 21?其中局部最优解 全局最优解必要条件 0),,()(
1
* Txx
nffxf?
充分条件 0)(,0)( *2* xfxf
Hessian阵
nnji
xx
ff


22
最优解在可行域边界上取得时不能用无约束优化方法求解
x*
f(x) xl
xgo
约束优化的简单分类
线性规划 (LP) 目标和约束均为线性函数
非线性规划 (NLP) 目标或约束中存在非线性函数
二次规划 (QP) 目标为二次函数、约束为线性
整数规划 (IP) 决策变量 (全部或部分 )为整数
整数 线性 规划 (ILP),整数 非线性 规划 (INLP)
纯整数规划 (PIP),混合整数规划 (MIP)
一般整数规划,0-1(整数)规划
n
j
i
Dx
ljxg
mixhts
xf



,.,,,1,0)(
,.,,,1,0)(..
)(m i n
连续优化离散优化数学规划常用优化软件
1,LINDO/LINGO软件
2,MATLAB优化工具箱
3,EXCEL软件的优化功能
4,SAS(统计分析 )软件的优化功能
5,其它
MATLAB优化工具箱 能求解的优化模型优化工具箱 3.0 (MATLAB 7.0 R14)
连续优化 离散优化无约束优化非线性极小
fminunc
非光滑 (不可微 )优化
fminsearch
非线性方程 (组 )
fzero
fsolve
全局优化暂缺非线性最小二乘
lsqnonlin
lsqcurvefit
线性规划
linprog
纯 0-1规划 bintprog
一般 IP(暂缺 )
非线性规划
fmincon
fminimax
fgoalattain
fseminf
上下界约束
fminbnd
fmincon
lsqnonlin
lsqcurvefit
约束线性最小二乘
lsqnonneg
lsqlin
约束优化二次规划
quadprog
2,LINDO公司的主要软件产品及功能简介
LINDO 公司软件产品简要介绍美国芝加哥 (Chicago)大学的 Linus Schrage教授于 1980
年前后开发,后来成立 LINDO系统公司( LINDO
Systems Inc.),网址,http://www.lindo.com
LINDO,Linear INteractive and Discrete Optimizer (V6.1)
LINGO,Linear INteractive General Optimizer (V9.0)
LINDO API,LINDO Application Programming Interface (V3.0)
What’s Best!,(SpreadSheet e.g,EXCEL) (V8.0)
演 示 (试用 )版、学生版、高级版、超级版、工业版、
扩展版 … (求解 问题规模 和 选件 不同)
LINDO和 LINGO软件能求解的优化模型
LINGOLINDO
优化模型线性规划
(LP)
非线性规划
(NLP)
二次规划
(QP)
连续优化 整数规划 (IP)
LP QP NLP IP 全局优化 (选 )
ILP IQP INLP
LINDO/LINGO软件的求解过程
LINDO/LINGO预处理程序线性优化求解程序 非线性优化求解程序分枝定界管理程序
1,确定常数
2,识别类型
1,单纯形算法
2,内点算法 (选 )
1、顺序线性规划法 (SLP)
2、广义既约梯度法 (GRG) (选 )
3、多点搜索 (Multistart) (选 )
建模时需要注意的几个基本问题
1,尽量使用实数优化,减少整数约束和整数变量
2,尽量使用光滑优化,减少非光滑约束的个数如:尽量少使用绝对值、符号函数、多个变量求最大 /最小值、四舍五入、取整函数等
3,尽量使用线性模型,减少非线性约束和非线性变量的个数 (如 x/y <5 改为 x<5y)
4,合理设定变量上下界,尽可能给出变量初始值
5,模型中使用的参数数量级要适当 (如小于 103)
3,LINGO软件的使用简介界面帮助界面模型
min或 max f(x)
S.T,G(x)≤或 ≥或= 0
L ≤x≤U 要素,
1.变量 (符号 )
2.常量 (数据)
3.关系(函数、方程)
需要掌握的几个重要方面
LINGO:
掌握集合 (SETS)的应用;
正确阅读求解报告;
正确理解求解状态窗口;
学会设置基本的求解选项 (OPTIONS) ;
掌握与外部文件的基本接口方法
LINGO软件简介
目标与约束段
集合段( SETS ENDSETS)
数据段( DATA ENDDATA)
初始段( INIT ENDINIT)
计算段 (CALC ENDCALC) - LINGO9.0
LINGO模型的构成,5个段
LINGO模型的优点
包含了 LINDO的全部功能
提供了灵活的编程语言(矩阵生成器)
实例变量声明区数据赋值区关系表示区模型变量
数学表示:
LinGo表示:
{ },,{ 1,,}ix x i I I n其 中
1.单下标变量
I/1..n/,x;
变量
数学表示:
LinGo表示:
{ },,
{ 1,,} = { 1,,}
ijx x i I j J
I n J m


其 中,
2.多下标变量
I/1..n/;
J/1..m/;
IJ(I,J),x;
变量取值限制
@BND(下限,变量或分量,上限 ); 默认下限为 0
@FREE(变量或分量 ) ;
@GIN(变量或分量 );
限制变量或分量为整数
@BIN( 变量或分量 ) ;
限制变量或分量为 0,1
通常与 @for联用
@for(I,@bin(x));
0 1,ix i I?取 或数学函数
@ABS(X)
@COS(X)
@EXP(X)
@LOG(X)
@SIN(X)
@TAN(X)
@SMAX(X1,X2,...,XN)
@SMIN(X1,X2,...,XN)
@FLOOR(X) integer function
@LGM(X) gamma function
@SIGN(X) sign function
条件和逻辑运算符
#EQ# =
#NE# ≠
#GT# >
#GE# ≥
#LT# <
#LE# ≤
#AND# 与
#OR# 或
#NOT# 非
@IF(条件表达式,
真值,否值 )
条件函数
XCOST = @IF( x #GT# 0,100,0) + 2 * x;
@IF(条件表达式,真值,否值 )
特殊符号
! 段落注释符; 段落结束符
[ ] 方程注释符
1 0 0 + 2,0
X C O ST =
2,
xx
x

其 他集合函数
数学表示:
LinGo表示:
1
2,( )
k
i
ai
2.@SUM( I( i) | i #LE# k,a( i));
1.@SUM( I,a);
I/1..n/,a;
1
1,( )
n
i
ai
集合函数特征
@函数 ( 下标集 [ (下标变量 ) [ |条件表达式 ]],变量表达式 );
@SUM( I( i) | i #LE# k,a( i));
重要的集合函数
@FOR
@SUM
@MIN
@MAX
@FOR( I(i)|i#NE#3,x(i)<=100) ;
1 0 0,,3 ;ix i I i
例题 1
数学模型:
min
s.t.
34
11
ij ij
ij
cx


3
1
,1 4ij j
i
x x l j

4
1
,1 3i j i
j
x c l i

0,1 3,1 4ijx i j
其中,
xl= 5 2 4 6
cl= 4 9 4
c = 10 6 7 12
16 10 5 9
5 4 10 10
分析:
下标变量有,
1,xl 4个分量
2,cl 3个分量
3,x,c 3× 4个分量
下标集:
si 1,?,3
sj 1,?,4
sij =( si,sj)
1.下标变量
si/1..3/:cl;
sj/1..4/:xl;
sij(si,sj):c,x;
lingo建模,
min @sum(si(i),
@sum(sj(j),c(i,j)*x(i,j))
) ;
lingo建模
2.目标函数
34
11
ij ij
ij
cx


,
ij ij
ij
cx?或
min @sum(sij:c*x);
min
简写 @sum(sij(i,j):c(i,j)*x(i,j));
2.约束条件:
3
1
,1 4ij j
i
x x l j

4
1
,1 3i j i
j
x c l i

3
1
ij j
i
x x l

14j?
@for(sj(j):等式 );
@for(si(i):@sum(sj(j)):x(i,j))=cl(i));
0,1 3,1 4ijx i j
默认
@sum(si(i):x(i))=xl(j)
完整模型:
model:
sets:
si/1..3/:cl;
sj/1..4/:xl;
sij(si,sj):c,x;
endsets
! 数据设置 ;
data:
xl= 5 2 4 6;
cl= 4 9 4;
c = 10 6 7 12
16 10 5 9
5 4 10 10;
enddata
[obj] min = @sum( sij,c*x);
@for( sj(j),
[eq1] @sum( si(i),x(i,j)) = xl(j));
@for( si(i):
[eq2] @sum( sj(j),x(i,j)) = cl(i));
end
模型求解最优非零解灵敏度分析例题 2
数学模型,2000,B
min
s.t.
7 1 5 1 5
1 1 1
0,5 [ ( 1 ) ( 1 ) ]i j i j j j j j
i j j
c x y y z z


15
1
5 0 0,1 7i i j i i
j
t x s t i

7
1
,1 1 5ij j j
i
x y z j

,,0,0 1 ; 1 7,1 1 5i j j j ix y z t i j取 或其中,
b,c,s为常量
1,1 1 4j j jy z b j
1 1 50,0yz
完整模型:
model:
sets:
GC/1..7/:s,t;
A/1..15/:y,z,b;
link(GC,A):c,x;
endsets
min=@sum(link(i,j):c(i,j)*x(i,j))+0.1*@sum(A(j):
0.5*((1+y(j))*y(j)+(1+z(j))*z(j)));
@for(GC(i):@sum(A(j):x(i,j))>=500*t(i);
@sum(A(j):x(i,j))<=s(i)*t(i));
@for(A(j):@sum(GC(i):x(i,j))=y(j)+z(j));
@for(A(j)|j#LE#14:z(j)+y(j+1)=b(j));
y(1)=0.0;z(15)=0.0;
@for(GC:@BIN(t));
data:
s= ;
b= ;
c= ;
enddata
end
求解情况求解情况例题 3
1
2
3
4
5
13
12
11
12
3
6
Fi = min{Dij + Fj},j与 i相连,i< 5
F5= 0
Dij,相邻第 i城市到第 j城市的路程
Fi:第 i城市到第 5城市的最短路
SETS:
CITIES/1..5/:F;ROADS(CITIES,CITIES)/
1,2 1,3 1,42,5
3,54,5/:D;
ENDSETS
DATA,
D=13 12 1112
36;
ENDDATA
F(5) = 0;
@FOR(CITIES(i)|i #LT# 5,F(i) =
@MIN(ROADS(i,j):D(i,j)+F(j))
);
求解情况数据文件
数据文件的格式,
数据向量或数据矩阵 ~
35 37 22 32 41 32 43 38~
6 2 6 7 4 2 5 9
2 3 9 5 7 2 6 5
5 5 2 2 8 1 4 3~
DATA:
CAPACITY =@file(nlp_em.txt);
DEMAND = @file(nlp_em.txt);
ENDDATA
数据文件读入:
常量= @FILE(数据文件文件名 );
文件名,nlp_em.txt
选址问题,NLP
改建两个新料场,需要确定新料场位置 (xj,yj)和运量 cij,在其它条件不变下使总吨公里数最小。
2,1,
6,.,,,1,..
])()[(m i n
6
1
2
1
2
1
6
1
2/122





jec
idcts
byaxc
jij
i
iij
j
j i
ijijij
决策变量:
ci j,(xj,yj)~16维非线性规划模型
LINGO模型的构成,4个段集合段( SETS ENDSETS)
数据段( DATA ENDDATA)
初始段( INIT ENDINIT)
目标与约束段局部最优,89.8835(吨公里 )
LP:移到数据段边界集合的类型集合派生集合 基本集合稀疏集合 稠密集合元素列表法 元素过滤法 直接列举法 隐式列举法
setname [/member_list/]
[,attribute_list];
setname(parent_set_list)
[/member_list/]
[,attribute_list];
SETS:
CITIES /A1,A2,A3,B1,B2/;
ROADS(CITIES,CITIES)/
A1,B1 A1,B2 A2,B1 A3,B2/:D;
ENDSETS
SETS:
STUDENTS /S1..S8/;
PAIRS( STUDENTS,STUDENTS) |
&2 #GT# &1,BENEFIT,MATCH;
ENDSETS
集合元素的 隐式列举类型 隐式列举格式 示例 示例集合的元素数字型 1..n 1..5 1,2,3,4,5
字符 -
数字型
stringM..stringN Car101..car20
8
Car101,
car102,…,
car208
星期型 dayM..dayN MON..FRI MON,TUE,WED,
THU,FRI
月份型 monthM..monthN OCT..JAN OCT,NOV,DEC,
JAN
年份 -
月份型
monthYearM..mo
nthYearN
OCT2001..JA
N2002
OCT2001,
NOV2001,
DEC2001,
JAN2002
运算符的优先级优先级 运算符最高 #NOT# — (负号)
^
* /
+ — (减法)
#EQ# #NE# #GT# #GE# #LT# #LE#
#AND# #OR#
最低 <(=) = >(=)
三类运算符:
算术运算符 逻辑运算符 关系运算符集合循环函数四个集合循环函数,FOR,SUM,MAX,MIN
@function( setname [ ( set_index_list)[ | condition]],expression_list);
[objective] MAX = @SUM( PAIRS( I,J),BENEFIT( I,J) * MATCH( I,J));
@FOR(STUDENTS( I),[constraints]
@SUM( PAIRS( J,K) | J #EQ# I #OR# K #EQ# I,MATCH( J,K)) =1);
@FOR(PAIRS( I,J),@BIN( MATCH( I,J)));
MAXB=@MAX(PAIRS( I,J),BENEFIT( I,J));
MINB=@MIN(PAIRS( I,J),BENEFIT( I,J));
Example,?
P A I R SJI
JIM A T C HJIB E N E F I T
),(
),(*),(
1),(
),(

IK
orIJ
P A I R SKJ
KJM A T C H
Solver Type:
B-and-B
Global
Multistart
Model Class:
LP,QP,ILP,
IQP,PILP,
PIQP,NLP,
INLP,PINLP
State:
Global Optimum
Local Optimum
Feasible
Infeasible
Unbounded
Interrupted
Undetermined
7个选项卡 (可设置 80-90个控制参数 )
程序与数据分离文本文件使用外部数据文件
Cut (or Copy) – Paste 方法
@FILE 输入数据,@TEXT输出数据(文本文件)
@OLE函数与电子表格软件(如 EXCEL)连接
@ODBC函数与数据库连接
LINGO命令脚本文件
LG4 ( LONGO模型文件)
LNG ( LONGO模型文件)
LTF ( LONGO脚本文件)
LDT ( LONGO数据文件)
LRP ( LONGO报告文件)
常用文件后缀
@FILE和 @TEXT:文本文件输入输出
MODEL:
SETS:
MYSET / @FILE(‘myfile.txt’) /,
@FILE(‘myfile.txt’);
ENDSETS
MIN = @SUM( MYSET( I):
SHIP( I) * COST( I));
@FOR( MYSET( I),
[CON1] SHIP( I) > NEED( I);
[CON2] SHIP( I) < SUPPLY( I));
DATA:
COST = @FILE(‘myfile.txt’);
NEED = @FILE(‘myfile.txt’);
SUPPLY = @FILE(‘myfile.txt’);
@TEXT(‘result.txt’)=SHIP,
@DUAL(SHIP),@DUAL(CON1);
ENDDATA
END
myfile.txt文件的内容、格式:
Seattle,Detroit,Chicago,Denver~
COST,NEED,SUPPLY,SHIP~
12,28,15,20~
1600,1800,1200,1000~
1700,1900,1300,1100
@OLE,与 EXCEL连接
MODEL:
SETS:
MYSET,COST,SHIP,NEED,SUPPLY;
ENDSETS
MIN = @SUM( MYSET( I),SHIP( I) * COST( I));
@FOR( MYSET( I),
[CON1] SHIP( I) > NEED( I);
[CON2] SHIP( I) < SUPPLY( I));
DATA:
MYSET =@OLE('D:\JXIE\BJ2004MCM\mydata.xls','CITIES');
COST,NEED,SUPPLY =@OLE(mydata.xls);
@OLE(mydata.xls,'SOLUTION')=SHIP;
ENDDATA
END
mydata.xls文件中必须有下列名称 (及数据 ):
CITIES,COST,
NEED,SUPPLY,
SOLUTION
在 EXCEL中还可以通过“宏”自动调用 LINGO(略 )
也可以将 EXCEL表格嵌入到 LINGO模型中 (略 )
@ODBC,与数据库连接输入基本集合元素:
setname/@ODBC([‘datasource’ [,‘tablename’ [,‘columnname’]]])/
输入派生集合元素:
setname/@ODBC([‘source’[,‘table’ [,‘column1’[,‘column2’…]]]])/
目前支持下列 DBMS,(如为其他数据库,则需自行安装驱动 )
ACCESS,DBASE,EXCEL,FOXPRO,ORACLE,
PARADOX,SQL SERVER,TEXE FILES
使用数据库之前,数据源需要在 ODBC管理器注册输入数据:
Attr_list=@ODBC([‘source’[,‘table’ [,‘column1’[,‘column2’…]]]])
输出数据:
@ODBC([‘source’[,‘table’ [,‘column1’[,‘column2’…]]]])= Attr_list
具体例子略
Excel与 Lingo数据交换
Lingo运算求解设置
4,建模与求解实例(结合软件使用)
问题 1,如何下料最节省?
例 钢管下料问题 2,客户增加需求:
原料钢管,每根 19米
4米 50根 6米 20根 8米 15根客户需求节省的标准是什么?
由于采用不同切割模式太多,会增加生产和管理成本,
规定切割模式不能超过 3种。如何下料最节省?
5米 10根按照客户需要在一根原料钢管上安排切割的一种组合。
切割模式余料 1米4米 1根 6米 1根 8米 1根余料 3米4米 1根 6米 1根 6米 1根合理切割模式 的余料应小于客户需要钢管的最小尺寸余料 3米8米 1根 8米 1根钢管下料为满足客户需要,按照哪些种合理模式,每种模式切割多少根原料钢管,最为节省?
合理切割模式
2,所用原料钢管总根数最少模式 4米钢管根数 6米钢管根数 8米钢管根数 余料 (米 )
1 4 0 0 3
2 3 1 0 1
3 2 0 1 3
4 1 2 0 3
5 1 1 1 1
6 0 3 0 1
7 0 0 2 3
钢管下料问题 1
两种标准
1,原料钢管剩余总余量最小
xi ~按第 i 种模式切割的原料钢管根数 (i=1,2,…7 )
约束 满足需求决策变量目标 1(总余量)
76543211 3333 xxxxxxxZM i n
50234 54321 xxxxx
2032 6542 xxxx
152 753 xxx
按模式 2切割 12根,按模式 5切割 15根,余料 27米模式
4米根数
6米根数
8米根数余料
1 4 0 0 3
2 3 1 0 1
3 2 0 1 3
4 1 2 0 3
5 1 1 1 1
6 0 3 0 1
7 0 0 2 3
需求
50 20 15
最优解,x2=12,x5=15,
其余为 0;
最优值,27
整数约束,xi 为整数当余料没有用处时,通常以总根数最少为目标
76543212 xxxxxxxZM i n
目标 2(总根数)
钢管下料问题 1
约束条件不变最优解,x2=15,
x5=5,x7=5,
其余为 0;
最优值,25。
50234 54321 xxxxx
2032 6542 xxxx
152 753 xxx
xi 为整数按模式 2切割 15根,
按模式 5切割 5根,
按模式 7切割 5根,
共 25根,余料 35米 虽余料增加 8米,但减少了 2根与 目标 1的结果“共切割
27根,余料 27米” 相比钢管下料问题 2
对大规模问题,用模型的约束条件界定合理模式增加一种需求,5米 10根;切割 模式不超过 3种 。
现有 4种 需求,4米 50根,5米 10根,6米 20根,8米
15根,用枚举法确定合理切割模式,过于复杂。
决策变量
xi ~按第 i 种模式切割的原料钢管根数 (i=1,2,3)
r1i,r2i,r3i,r4i ~ 第 i 种切割模式下,每根原料钢管生产 4米,5米,6米和 8米长的钢管的数量满足需求
50313212111 xrxrxr
10323222121 xrxrxr
20333232131 xrxrxr
15343242141 xrxrxr
模式合理:每根余料不超过 3米
19865416 41312111 rrrr
19865416 42322212 rrrr
19865416 43332313 rrrr
整数非线性规划模型钢管下料问题 2
目标函数( 总根数)
321 xxxM i n
约束条件整数约束,xi,r1i,r2i,
r3i,r4i (i=1,2,3)为整数增加约束,缩小可行域,便于求解
321 xxx
原料钢管总根数下界,2619 158206105504
特殊生产计划:对每根原料钢管模式 1:切割成 4根 4米钢管,需 13根;
模式 2:切割成 1根 5米和 2根 6米钢管,需 10根;
模式 3:切割成 2根 8米钢管,需 8根。
原料钢管总根数上界,31
3126 321 xxx
模式排列顺序可任定钢管下料问题 2
需求,4米 50根,5米 10
根,6米 20根,8米 15根每根原料钢管长 19米
LINGO求解整数非线性规划模型
Local optimal solution found at
iteration,12211
Objective value,28.00000
Variable Value Reduced Cost
X1 10.00000 0.000000
X2 10.00000 2.000000
X3 8.000000 1.000000
R11 3.000000 0.000000
R12 2.000000 0.000000
R13 0.000000 0.000000
R21 0.000000 0.000000
R22 1.000000 0.000000
R23 0.000000 0.000000
R31 1.000000 0.000000
R32 1.000000 0.000000
R33 0.000000 0.000000
R41 0.000000 0.000000
R42 0.000000 0.000000
R43 2.000000 0.000000
模式 1:每根原料钢管切割成 3
根 4米和 1根 6米钢管,共 10根;
模式 2:每根原料钢管切割成 2
根 4米,1根 5米和 1根 6米钢管,
共 10根;
模式 3:每根原料钢管切割成 2
根 8米钢管,共 8根。
原料钢管总根数为 28根。
演示 cut02a.lg4; cut02b.lg4
0
y
x
VOR2
x=629,
y=375 309.00 (1.30)
864.3(2.0) 飞机
x=?,y=?
VOR1
x=764,
y=1393
161.20 (0.80)
VOR3
x=1571,
y=259
45.10 (0.60)

DME
x=155,
y=987
飞机与监控台(图中坐标和测量距离的单位是“公里”)
实例,飞机精确定位问题飞机精确定位模型
)飞机位置坐标(要求计算:
,距离误差为记测量距离为
,角度误差为记测量角度为标分别为已知数据:设备位置坐
yx
d
i
iyx
ii
ii
,
,;3,.,,,1,
1,.,,4 ;),,(
44

i? i?
xi yi 原始的 (或 d4)
VOR
1
746 1393 161.20( 2.81347弧度) 0.80( 0.0140弧度)
VOR
2
629 375 45.10 ( 0.78714弧度) 0.60( 0.0105弧度)
VOR
3
1571 259 309.00( 5.39307弧度) 1.30( 0.0227弧度)
DME 155 987 d4=864.3( km) 2.0( km)
飞机精确定位模型
4
2
4
2
4 )()(
),(a t a n 2
dyyxx
yyxx iii


第 1类模型,不考虑误差因素超定方程组,
非线性最小二乘! 量纲不符!

2
4
2
4
2
4
3
1
2
)()(),(a t a n 2




d
yyxxyyxx
M i n
i i
ii
x,y?
2424243
1
2 )()(),(at an 2 dyyxxyyxxM i n
i
iiix,y
2
2
2
4
2
4 )()(
)t a n ()/()(
dyyxx
yyxx iii


或或?
飞机精确定位模型
44
2
4
2
444 )()(
),(a t a n 2




dyyxxd
yyxx iiiiii
第 2类模型,考虑误差因素 (作为硬约束 )
Min x; Min y; Max x; Max y.
以距离为约束,优化角度误差之和(或平方和);
或以角度为约束,优化距离误差,
非线性规划?

仅部分考虑误差 !
角度与距离的“地位”不应不同!
有人也可能会采用其他目标,如:
误差非均匀分布!
飞机精确定位模型
2
4
2
4
2
44
2
3
1
)()(),(at an 2
),(




yyxxdyyxx
yxEM i n
i i
iii
误差一般服从什么分布?
正态分布!
不同的量纲如何处理?
无约束非线性最小二乘模型归一化处理!
shili0702.m
飞机坐标 (978.31,723.98),误差平方和 0.6685 (<< 4)
角度需要进行预处理,如利用
Matlab的 atan2函数,值域 (-pi,pi)
第 3类模型,考虑误差因素 (作为软约束 ); 且归一化飞机精确定位模型小技巧,LINGO中没有 atan2函数,怎么办?
可以直接利用 @tan函数!
同前面的模型 /结果
2
4
2
4
2
44
23
1
)()(
),(






yyxxdα
yxEM i n
i i
ii
)/()(t a n iii yyxx
飞机坐标 (980.21,727.30 ),误差平方和 2.6
与前面的结果有所不同,为什么? 哪个模型合理些?
2
4
2
4
2
44
2
3
1
)()(
t a n
t a n
),(





yyxxd
yxEM i n
i i
iyy
xx
i
i
最后,思考以下模型,
露天矿里铲位已分成矿石和岩石,平均铁含量不低于
25%的为矿石,否则为岩石。每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。
每个铲位至多安置一台电铲,电铲平均装车时间 5分钟卡车在等待时所耗费的能量也是相当可观的,原则上在安排时 不应发生卡车 等待的情况。
露天矿生产的车辆安排 (CUMCM-2003B)
矿石卸点需要的铁含量要求都为 29.5%?1%(品位限制),搭配量在一个班次( 8小时)内满足品位限制即可。卸点在一个班次内不变。卡车载重量为 154吨,平均时速 28km,平均卸车时间为 3分钟。
问题:出动几台电铲,分别在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次?
平面示意图问题数据距离 铲位 1 铲位 2 铲位 3 铲位 4 铲位 5 铲位 6 铲位 7 铲位 8 铲位 9 铲位 10
矿石漏 5.26 5.19 4.21 4.00 2.95 2.74 2.46 1.90 0.64 1.27
倒装 Ⅰ 1.90 0.99 1.90 1.13 1.27 2.25 1.48 2.04 3.09 3.51
岩场 5.89 5.61 5.61 4.56 3.51 3.65 2.46 2.46 1.06 0.57
岩石漏 0.64 1.76 1.27 1.83 2.74 2.60 4.21 3.72 5.05 6.10
倒装 Ⅱ 4.42 3.86 3.72 3.16 2.25 2.81 0.78 1.62 1.27 0.50
铲位 1 铲位 2 铲位 3 铲位 4 铲位 5 铲位 6 铲位 7 铲位 8 铲位 9 铲位 10
矿石量 0,95 1,05 1,00 1,05 1,10 1,25 1,05 1,3
0 1,35 1,25
岩石量 1,25 1,10 1,35 1,05 1,15 1,35 1,05 1,1
5 1,35 1,25
铁含量 30% 28% 29% 32% 31% 33% 32% 31% 33% 31%
问题分析与典型的运输问题明显有以下不同:
1,这是运输矿石与岩石两种物资的问题;
2,属于产量大于销量的不平衡运输问题;
3,为了完成品位约束,矿石要搭配运输;
4,产地、销地均有单位时间的流量限制;
5,运输车辆只有一种,每次满载运输,154吨 /车次;
6,铲位数多于铲车数意味着要最优的选择不多于 7个产地作为最后结果中的产地;
7,最后求出各条路线上的派出车辆数及安排。
近似处理:
先求出产位、卸点每条线路上的运输量 (MIP模型 )
然后求出各条路线上的派出车辆数及安排模型假设
卡车在一个班次中不应发生等待或熄火后再启动的情况;
在铲位或卸点处由两条路线以上造成的冲突问题面前,我们认为只要平均时间能完成任务,就认为不冲突。我们不排时地进行讨论;
空载与重载的速度都是 28km/h,耗油相差很大;
卡车可提前退出系统,等等。
如理解为严格不等待,难以用数学规划模型来解符号
xij,从 i铲位到 j号卸点的石料运量 (车) 单位,吨;
cij,从 i号铲位到 j号卸点的距离 公里;
Tij,从 i号铲位到号 j卸点路线上运行一个周期平均时间 分;
Aij,从号铲位到号卸点最多能同时运行的卡车数 辆;
Bij,从号铲位到号卸点路线上一辆车最多可运行的次数 次;
pi,i号铲位的矿石铁含量 p=(30,28,29,32,31,33,32,31,33,31)
%
qj,j号卸点任务需求,q=(1.2,1.3,1.3,1.9,1.3)*10000

cki,i号铲位的铁矿石储量 万吨
cyi,i号铲位的岩石储量 万吨
fi,描述第 i号铲位是否使用的 0-1变量,取 1为使用; 0为关闭。
532 ++平均速度 距离到 jiT ij?


5
ij
ij
T
A



ij
ij
ij T
AB 5)1(608 - (近似 )
优化模型
cx ij
i j
ij

10
1
5
1
m in
5,,1,10,,1, jiBAx ijijij
10,,1,5/6085
1

ifx i
j ij
5,,1,20810
1

j
i ijx
10,,1,1 5 4/1 0 0 0 0 1 5 4/1 0 0 0 0
43
521

i
cyxx ckxxx iii iiii
( 1) 道路能力 (卡车数 )约束
( 2)电铲能力约束
( 3)卸点能力约束
( 4)铲位储量约束
( 5)产量任务约束
( 6)铁含量约束
( 7)电铲数量约束
( 8)整数约束
5,,1,154/10
1

jqx j
i ij
5,2,1,
0)5.28(
0)5.30(
10
1
10
1?



j
px
px
i
i
ij
i
i
ij,
710
1

i i
f
xij为非负整数
fi 为 0-1整数计算结果( LINGO软件)
铲位 1 铲位 2 铲位 3 铲位 4 铲位 5 铲位 6 铲位 7 铲位 8 铲位 9 铲位 10
矿漏 13 54 11
倒 Ⅰ 42 43
岩场 70 15
岩漏 81 43
倒 Ⅱ 13 2 70
铲位 1 铲位 2 铲位 3 铲位 4 铲位 5 铲位 6 铲位 7 铲位 8 铲位 9 铲位 10
矿石漏 0.867 1.862 0.314
倒场 Ⅰ 1.077 1.162
岩场 1.892 0.326
岩石漏 1.841 1.229
倒场 Ⅱ 0.684 0.1 1.489
cumcm2003b1.lg4
注,LINGO8.0本来是可以得到最优解的,但有些
LINGO8.0可能出现系统错误,可能是系统 BUG
计算结果(派车)
铲位 1 铲位 2 铲位 3 铲位 4 铲位 5 铲位 6 铲位 7 铲位 8 铲位 9 铲位 10
矿石漏 1 (29)
倒场 Ⅰ 1 (39) 1 (37)
岩场 1 (37)
岩石漏 1(44) 1 (35)
倒场 Ⅱ 1 (47)
结论:
铲位 1,2,3,4,8,9,10处各放置一台电铲。
一共使用了 13辆卡车;总运量为 85628.62吨公里;
岩石产量为 32186吨;矿石产量为 38192吨。
此外,6辆联合派车(方案略)
最大化产量结论:
(略)
目标函数变化此外:车辆数量( 20辆)限制(其实上面的模型也应该有)
建模实例与求解交通流的均衡问题(另附)
钢管运输问题(另附)
电力市场的堵塞管理(另附)
CUMCM其他优化赛题飞行管理问题空洞探测问题钻井布局问题抢渡长江问题等等