数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

49
数数数数数数2008 7 数数数 ,) 数数数数数 LINGO 数数数数 数数数 数数数数数数数数数 Tel: 010-62787812 Email: [email protected] http://faculty.math.tsinghua.edu.c n/~jxie/lindo

description

数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件. 谢金星 清华大学数学科学系 Tel: 010-62787812 Email: [email protected] http://faculty.math.tsinghua.edu.cn/~jxie/lindo. 简要提纲. 1. 优化模型简介 2. LINGO 软件简介 3. 建模与求解实例. 1. 优化模型简介. 优化模型和优化软件的重要意义. ( 最 ) 优化 : 在一定条件下 , 寻求使目标最大 ( 小 ) 的 决策. - PowerPoint PPT Presentation

Transcript of 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

Page 1: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

数学建模讲座( 2008 年 7 月,湖南)

优化建模与 LINGO优化软件

谢金星清华大学数学科学系

Tel: 010-62787812Email: [email protected]

http://faculty.math.tsinghua.edu.cn/~jxie/lindo

Page 2: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

简要提纲

1. 优化模型简介

2. LINGO 软件简介

3. 建模与求解实例

Page 3: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

1. 优化模型简介

Page 4: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

优化模型和优化软件的重要意义

解决优化 / 决策问题的手段• 经验积累,主观判

断• 作试验,比优

劣• 建立数学模型 ( 优化模型 ) ,求最优策略 ( 决策 )

( 最 ) 优化 : 在一定条件下 , 寻求使目标最大 ( 小 ) 的决策

CUMCM 赛题: ~50% 与优化有关,规模大,需软件求解

• OR/MS/DS 的基础 :OR( 运筹学 ,Operations/-al Research)

MS( 管理科学 ,Management Science)

DS( 决策科学 ,Decision Science)• 工程技术 /经济管理 /科学研究 /社会生活中经常遇到

Page 5: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

优化问题三要素:决策变量;目标函数;约束条件

约束条件决策变量

优化问题的一般形式

n

j

i

Dx

ljxg

mixhts

xf

,...,1,0)(

,...,1,0)(..

)(min

• 可行解(满足约束)与可行域(可行解的集合)• 最优解(取到最小/大值的可行解)

目标函数

Page 6: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

无约束优化 :最优解的分类和条件

)(xfMinx

给定一个函数 f(x), 寻找 x* 使得 f(x*) 最小,即nT

nxxxx ),,,( 21 其中

局部最优解 全局最优解

必要条件 0),,()(1

* Txx nffxf

x*f(x) xl xgo

充分条件 0)(,0)( *2* xfxf

Hessian阵

nnji xx

ff

2

2

最优解在可行域边界上取得时不能用无约束优化方法求解

Page 7: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

约束优化的简单分类

• 线性规划 (LP) 目标和约束均为线性函数• 非线性规划 (NLP) 目标或约束中存在非线性函数

二次规划 (QP) 目标为二次函数、约束为线性

• 整数规划 (IP) 决策变量 ( 全部或部分 ) 为整数

整数线性规划 (ILP) ,整数非线性规划 (INL

P) 纯整数规划 (PIP), 混合整数规划 (MIP) 一般整数规划, 0-1 (整数)规划

n

j

i

Dx

ljxg

mixhts

xf

,...,1,0)(

,...,1,0)(..

)(min

连续优化

离散优化

数学规划

Page 8: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

无约束优化

优化 (Optimization), 规划 (Programming)

线性规划

非线性规划

网络优化

组合优化

整数规划

不确定规划

多目标规划

目标规划

动态规划

连续优化 离散优化 从其他角度分类

Page 9: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

Optimization Tree

http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/

Page 10: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

优化建模如何创新? • 方法 1 :大胆创新,别出心裁 ---- 采用有特色的目标函数、约束条件等 ---- 你用非线性规划,我用线性规划 ---- 你用整数 / 离散规划,我用连续规划 / 网络优化 ---- ……

• 方法 2 :细致入微,滴水不漏 ---- 对目标函数、约束条件处理特别细致 ---- 有算法设计和分析,不仅仅是简单套用软件 ---- 敏感性分析详细 / 全面 ---- ……

Page 11: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

建模时需要注意的几个基本问题 1 、尽量使用实数优化,减少整数约束和整数变量

2 、尽量使用光滑优化,减少非光滑约束的个数

如:尽量少使用绝对值、符号函数、多个变量求最大 / 最小值、四舍五入、取整函数等

3 、尽量使用线性模型,减少非线性约束和非线性变量的个数 (如 x/y <5 改为 x<5y )

4 、合理设定变量上下界,尽可能给出变量初始值

5 、模型中使用的参数数量级要适当 ( 如小于 103)

Page 12: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

常用优化软件

1. LINGO 软件

2. MATLAB 优化工具箱

3. EXCEL 软件的优化功能

4. SAS( 统计分析 ) 软件的优化功能

5. 其他

Page 13: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

MATLAB 优化工具箱能求解的优化模型优化工具箱 3.0 (MATLAB 7.0 R14)

连续优化 离散优化

无约束优化

非线性极小fminunc

非光滑 (不可微 )优化fminsearch

非线性方 程(组 )

fzerofsolve

全局优化

暂缺

非线性最小二乘

lsqnonlinlsqcurvefit

线性规划linprog

纯 0-1 规划 bintprog

一般 IP( 暂缺 )

非线性规划fminconfminimaxfgoalattainfseminf

上下界约束fminbndfminconlsqnonlinlsqcurvefit

约束线性最小二乘

lsqnonneglsqlin

约束优化

二次规划quadprog

Page 14: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

2. LINGO 软件简介

Page 15: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LINDO 公司软件产品简要介绍美国芝加哥 (Chicago) 大学的 Linus Schrage 教授于 1980 年前后开发 , 后来成立 LINDO 系统公司( LINDO Systems Inc. ), 网址: http://www.lindo.com

LINGO: Linear INteractive General Optimizer (V11.0)

LINDO API: LINDO Application Programming Interface (V4.0)

What’s Best!: (SpreadSheet e.g. EXCEL) (V8.0)演示 ( 试用 ) 版、学生版、高级版、超级版、工业版、

扩展版… (求解问题规模和选件不同)

Page 16: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LINDO 和 LINGO 软件能求解的优化模型

LINGO LINDO( 将被淘汰 )

优化模型

线性规划(LP)

非线性规划(NLP)

二次规划(QP)

连续优化 整数规划 (IP)

Page 17: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LINGO 软件简介LINGO 模型的优点

• 集成了线性 ( 非线性 ) / 连续 ( 整数 ) 优化功能•运行速度较快•具有多点搜索 / 全局优化功能• 提供了灵活的编程语言 ( 矩阵生成器 ) ,可方便地输入模型• 提供与其他数据文件的接口 ( 如 TEXT, EXCEL, ODBC 数据库接口 )• 提供与其他编程语言的接口• LINDO API 可用于自主开发

Page 18: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LP QP NLP IP 全局优化( 选 ) ILP IQP INLP

LINGO 软件的求解过程 LINGO预处理程序

线性优化求解程序 非线性优化求解程序

分枝定界管理程序

1. 确定常数

2. 识别类型

1. 单纯形算法

2. 内点算法( 选 )

1 、顺序线性规划法 (SLP) 2 、广义既约梯度法 (GRG) ( 选 ) 3 、多点搜索 (Multistart) ( 选 )

Page 19: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

• 目标与约束段• 集合段( SETS ENDSETS )• 数据段( DATA ENDDATA )• 初始段( INIT ENDINIT )• 计算段( CALC ENDCALC ) ---- 9.0+• 子模型( SUBMODEL ENDSUBMODEL ) ---- 10.0+

LINGO 模型的构成: 6 个段

Page 20: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LP QP NLP IP 全局优化( 选 ) ILP IQP INLP

LINGO 软件的求解过程 LINGO预处理程序

线性优化求解程序 非线性优化求解程序

分枝定界管理程序

1. 确定常数

2. 识别类型

1. 单纯形算法

2. 内点算法( 选 )

1 、顺序线性规划法 (SLP) 2 、广义既约梯度法 (GRG) ( 选 ) 3 、多点搜索 (Multistart) ( 选 )

Page 21: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LINGO 模型 — 例:选址问题某公司有 6 个建筑工地,位置坐标为 (ai, bi) ( 单位:公里 ), 水泥日用量 di ( 单位:吨)i 1 2 3 4 5 6a 1.25 8.75 0.5 5.75 3 7.25b 1.25 0.75 4.75 5 6.5 7.75d 3 5 4 7 6 11

1)现有 2料场,位于 A (5, 1), B (2, 7),记(xj,yj),j=1,2, 日储量 ej各有 20吨。

假设:料场和工地之间有直线道路

目标:制定每天的供应计划,即从 A, B 两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。

Page 22: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

用例中数据计算,最优解为

i 123456

1ic(料场A)350701

2ic(料场B)0040610

总吨公里数为总吨公里数为 136.2136.2

2,1,

6,...,1,..

])()[(min

6

1

2

1

2

1

6

1

2/122

jec

idcts

byaxc

jij

i

iij

j

j i

ijijij

线性规划模型

决策变量: ci j

(料场 j到工地 i

的运量) ~12维

Page 23: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

选址问题: NLP

2 )改建两个新料场,需要确定新料场位置 (xj,yj)

和运量 cij ,在其它条件不变下使总吨公里数最小。

2,1,

6,...,1,..

])()[(min

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

非线性规划模型

演示 Location.lg4

Page 24: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

LINGO 模型的构成: 4 个段集合段( SETS ENDSETS )

数据段( DATA ENDDATA )

初始段( INIT ENDINIT )

目标与

约束段

局部最优: 89.8835(吨公里 )

LP :移到数据段

Page 25: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

边界

Page 26: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

集合的类型

集合

派生集合 基本集合

稀疏集合 稠密集合

元素列表法 元素过滤法 直接列举法 隐式列举法

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

Page 27: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

集合元素的隐式列举类型 隐式列举格式 示例 示例集合的元素数字型 1..n 1..5 1, 2, 3, 4, 5

字符 -数字型

stringM..stringN Car101..car208 Car101, car102, … , car208

星期型 dayM..dayN MON..FRI MON, TUE, WED, THU, FRI

月份型 monthM..monthN OCT..JAN OCT, NOV, DEC, JAN

年份 -月份型

monthYearM..monthYearN

OCT2001..JAN2002

OCT2001, NOV2001, DEC2001, JAN2002

Page 28: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

运算符的优先级

优先级 运算符最高 #NOT# —(负号)

^

* /+ —(减法)#EQ# #NE# #GT# #GE# #LT# #LE#

#AND# #OR#

最低 <(=) = >(=)

三类运算符: 算术运算符 逻辑运算符 关系运算符

Page 29: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

集合循环函数四个集合循环函数: 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: PAIRSJI

JIMATCHJIBENEFIT),(

),(*),(

1),(),(

IKorIJPAIRSKJ

KJMATCH

Page 30: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

状态窗口

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

Page 31: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

7 个选项卡 (可设置 80-90 个控制参数 )

Page 32: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

程序与数据分离

文本文件

使用外部数据文件• Cut (or Copy) – Paste 方法• @FILE 输入数据、 @TEXT 输出数据(文本文

件)• @OLE 函数与电子表格软件(如 EXCEL )连接• @ODBC 函数与数据库连接• LINGO命令脚本文件• LG4 ( LONGO 模型文件)

• LNG ( LONGO 模型文件)

• LTF ( LONGO脚本文件)• LDT ( LONGO 数据文

件)• LRP ( LONGO报告文件)

常用文件后缀

Page 33: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

3. 建模与求解实例(结合软件使用)

Page 34: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

建模实例与求解最短路问题

飞机定位

生产计划

DVD租赁

Page 35: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

例 最短路问题求各点到 T 的最短路

5

6

7

7

4 9

6

8

6

5

8

3

3

6C1

B1

C2B2

A1

A2

A3

TS

6

shortestPath.lg4

0

,min),(

T

jijAji

i

L

TiLcL

Page 36: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

0

y

x

VOR2x=629, y=375 309.00 (1.30)

864.3(2.0) 飞机x=?, y=?

VOR1x=764, y=1393

161.20 (0.80)

VOR3x=1571, y=259

45.10 (0.60)

DMEx=155, y=987

飞机与监控台(图中坐标和测量距离的单位是“公里”)

实例 : 飞机精确定位问题

Page 37: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

飞机精确定位模型

)飞机位置坐标(要求计算:

,距离误差为记测量距离为

,角度误差为记测量角度为

标分别为已知数据:设备位置坐

yx

d

i

iyx

ii

ii

,

.

;3,...,1,

1,...4;),,(

44

i ixi yi 原始的 (或 d4)VOR1 746 1393 161.20( 2.81347弧度) 0.80( 0.0140弧度)VOR2 629 375 45.10 ( 0.78714弧度) 0.60( 0.0105弧度)VOR3 1571 259 309.00( 5.39307弧度) 1.30( 0.0227弧度)DME 155 987 d4=864.3( km) 2.0( km)

Page 38: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

飞机的精确定位模型

42

42

4 )()(

),(atan2

dyyxx

yyxx iii

第 1 类模型 : 不考虑误差因素

超定方程组,非线性最小二乘!      量纲不符!

? 2

4

24

24

3

1

2)()(),(atan2

d

yyxxyyxxMin

i i

ii

x,y

242

42

4

3

1

2 )()(),(atan2 dyyxxyyxxMini

iiix,y

22

24

24 )()(

)tan()/()(

dyyxx

yyxx iii

2

4

42

42

43

1

2)()(),(atan2

d

dyyxxyyxxMin

i i

iii

x,y

Page 39: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

飞机精确定位模型

442

42

444 )()(

),(atan2

dyyxxd

yyxx iiiiii

第 2 类模型 : 考虑误差因素 (作为硬约束 )

Min x; Min y; Max x; Max y.

以距离为约束,优化角度误差之和(或平方和);或以角度为约束,优化距离误差 .

非线性规划 ?

?仅部分考虑误差 !

角度与距离的“地位”不应不同!

有人也可能会采用其他目标,如: 误差非均匀分布!

Page 40: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

飞机精确定位模型

2

4

24

244

23

1

)()(),(atan2

),(

yyxxdyyxx

yxEMin

i i

iii

误差一般服从什么分布?正态分布!

不同的量纲如何处理?

无约束非线性最小二乘模型归一化处理!

shili0702.m

飞机坐标 (978.31 , 723.98), 误差平方和 0.6685 (<< 4)

角度需要进行预处理,如利用Matlab 的 atan2 函数 , 值域 (-pi,

pi)

第 3 类模型 : 考虑误差因素 (作为软约束 ); 且归一化

Page 41: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

飞机精确定位模型小技巧 : LINGO 中没有 atan2 函数 , 怎么办?可以直接利用 @tan 函数! exam0507c.lg4

同前面的模型 /结果 2

4

24

244

23

1

)()(),(

yyxxdα

yxEMini i

ii

)/()(tan iii yyxx

• 飞机坐标 (980.21 , 727.30 ), 误差平方和 2.6• 与前面的结果有所不同 , 为什么 ? 哪个模型合理些 ?

2

4

24

244

23

1

)()(

tan

tan),(

yyxxd

yxEMini i

iyyxx

i

i

最后 : 思考以下模型 : exam0507d.lg4

Page 42: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

例:生产批量计划背景: MRP ( MRP-II )系统中的生产计划

Page 43: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

生产批量计划:数学模型已知: N, T, s, h, d, r, a, C

Min

s.t.演示exam0502.lg4

Page 44: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

例: DVD 分配问题

背景: DVD 在线租赁,每人每次最多 3张

已知:网站手上 100种 DVD 的现有张数和当前需要处理的 1000位会员的在线订单(具体数据见 ht

tp://mcm.edu.cn/mcm05/problems2005c.asp )

问题:如何对这些 DVD进行分配,才能使会员获得最大的满意度?

Page 45: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

EXCEL 表格格式示例

数字越小表示会员的偏爱程度越高,数字 0表示对应的 DVD 当前不在会员的在线订单中

DVD编号 D001 D002 D003 D004 …

DVD现有数量 10 40 15 20 …

会员在线订单

C0001 6 0 0 0 …

C0002 0 0 0 0 …

C0003 0 0 0 3 …

C0004 0 0 0 0 …

… … … … … …

Page 46: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

模型

满意度 sij 定义:

很多,如 sij =1-aij/11

(aij =0时 sij =0)

ij iji j

s xmax

. .s tij ijx a

ij ji

x c3ij i

j

x y 0,1ijx

0,1iy

或 <=

0-1 变量个数: 1000*100+1

000=101000

演示Dvd_1000_100.lg4

Page 47: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

CUMCM 其他优化赛题(参见 http://mcm.edu.cn )

飞行管理问题

空洞探测问题

钻井布局问题

抢渡长江问题

等等

Page 48: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

主要参考文献谢金星 , 薛毅 : 优化建模与 LINDO/LINGO 软件 , 清华大学出版社 , 2005 年 7 月出版 . http://faculty.math.tsinghua.edu.cn/~jxie/lindo

姜启源 ,邢文训 , 谢金星 , 杨顶辉 : 大学数学实验 , 清华大学出版社 , 2005 年 2 月出版 .

http://mathexp.math.tsinghua.edu.cn

历届竞赛优秀论文集:• 《全国大学生数学建模竞赛优秀论文汇编 (1992-2000)》:物质出版社, 2001.• 《数学的实践与认识》 (2000 年及以前 )• 《工程数学学报》 ( 2001 年及以后)

Page 49: 数学建模讲座( 2008 年 7 月,湖南) 优化建模与 LINGO 优化软件

That’s all. Any Questions?

Thank you for your attendance!

最后,祝大家  在数学建模活动中      取得更大的成绩!

清华大学数学科学系 谢金星 , 2008.