42
数数数数数数 数数数数数数 ——数数数数 ——数数数数 数数数数数数数数 数数数数数数数数

数学建模培训 —— 优化问题

Embed Size (px)

DESCRIPTION

数学建模培训 —— 优化问题. 上海第二工业大学 范 静. 优化问题是人们在工程技术、经济管理和科学研究等领域中最常遇到的一类问题。. 商品经营者制定价格使得销售利润最高. 生产计划要在满足工艺流程需求的条件下 , 降低成本使总利润最高. 运输方案的安排问题中要使运输成本最小且收益最大. 结构设计要在满足强度要求等条件下 , 使所用材料的总重量最轻. 一 简单的优化模型 二 数学规划模型 三 求解优化问题的数学软件 四 离散优化模型简介. 一 简单的优化模型. 本节考虑较简单的优化模型,将其归结为函数极值问题,可以直接用微分法求解。 存贮模型(不允许缺货). - PowerPoint PPT Presentation

Citation preview

Page 1: 数学建模培训 —— 优化问题

数学建模培训数学建模培训——优化问题——优化问题

数学建模培训数学建模培训——优化问题——优化问题

上海第二工业大学 范 静上海第二工业大学 范 静

Page 2: 数学建模培训 —— 优化问题

• 商品经营者制定价格使得销售利润最高

•运输方案的安排问题中要使运输成本最小且收益最大

•生产计划要在满足工艺流程需求的条件下 ,降低成本使总利润最高

•结构设计要在满足强度要求等条件下 ,使所用材料的总重量最轻

优化问题是人们在工程技术、经济管理和科学研究等领域中最常遇到的一类问题。

Page 3: 数学建模培训 —— 优化问题

一 简单的优化模型

二 数学规划模型

三 求解优化问题的数学软件

四 离散优化模型简介

Page 4: 数学建模培训 —— 优化问题

一 简单的优化模型

•本节考虑较简单的优化模型,将其归结为函数极值问题,可以直接用微分法求解。

•存贮模型(不允许缺货)

Page 5: 数学建模培训 —— 优化问题

存贮模型(不允许缺货)• 工厂定期订购原料,存入仓库供生产之用;

• 车间一次加工出一批零件,供装配线每天生产之用;

• 商店成批购进各种商品,放在货柜里以备零售;

Page 6: 数学建模培训 —— 优化问题

思考• 存贮量多少合适?

• 存贮量过大,存贮费用太高;

• 存贮量太小,会导致一次性订购费用增加,或不能及时满足需求。

Page 7: 数学建模培训 —— 优化问题

• 配件厂为装配线生产若干种产品,轮换产品时因更换设备要付生产准备费(与生产数量无关),同一产品的产量大于需求时要付贮存费。该厂生产能力非常大,即所需数量可在很短时间内产出。

• 已知某产品日需求量 100 件,生产准备费 5000 元,贮存费每日每件 1元。试安排该产品的生产计划,即多少天生产一次(生产周期),每次产量多少,使总费用最小。

要求

建立生产周期、产量、需求量、准备费、贮存费之间的关系。

Page 8: 数学建模培训 —— 优化问题

问题分析日需求量100件,生产准备费5000元,贮存费每日每件1元。

• 每天生产一次,每次 100 件:准备费 5000 元,无贮存费。每天费用 5000 元。

• 10 天生产一次,每次 1000 件:准备费5000元,贮存费900+ 800+… +100=4500,总计9500元。每天费用950元。

• 50 天生产一次,每次 5000 件:准备费5000元,贮存费4900+ 4800+… +100=122500元,总计127500元。每天费用2550元。

10 天生产一次平均每天费用最小吗?

Page 9: 数学建模培训 —— 优化问题

问题分析

• 周期长,产量大贮存费少,准备费多准备费少,贮存费多

• 这是一个优化问题,关键是建立目标函数。

• 不能用一个周期的总费用作为目标函数。

• 目标函数——每天总费用的平均值

• 周期短,产量小

Page 10: 数学建模培训 —— 优化问题

模型假设• 产品每天的需求量为常数 r ;•每次生产准备费为 c1,每天每件产品贮存费为 c2 ;

• T 天生产一次(周期),每次生产 Q 件,当贮存量为零时, Q 件产品立即到来(生产时间不计);

•时间和产量都作为连续量处理

Page 11: 数学建模培训 —— 优化问题

建模目的

•设 r, c1, c2已知,求 T, Q 使每天总费用的平均值最小。

Page 12: 数学建模培训 —— 优化问题

模型建立• 总费用与变量的关系

• 总费用=生产准备费+存贮费

• 存贮费=存贮单价 × 存贮量• 存贮量=?

+缺货损失费

Page 13: 数学建模培训 —— 优化问题

存贮量的计算•设 t 时刻的存贮量为 q(t),t=0 时生产 Q件 , 存贮量 q(0)=Q, q(t) 以需求速率 r 线性递减,直至 q(T)=0 :

• q(t) = Q – r t

0 T

Q

t

q

r• Q = rT

•一个周期内存贮量

0( )

2

T QTq t dt ( A的面

积)

A=QT/2

Page 14: 数学建模培训 —— 优化问题

费用•一个周期的总费用

•每天的费用(目标函数)

21 2 1 22 2

Q rC c c T c c T

1 2( )2

c c rCC T T

T T

Page 15: 数学建模培训 —— 优化问题

模型求解• 求 T使得 最小1 2( )

2

c c rC T T

T

1 22

( )0

2

c c rdC T

dT T •用微分法:

1

2

2,

cT

c r

2

12

c

rcrTQ

rccC 212

•解得:

•每天的最小费用:

•经济订货批量公式( EOQ 公式)。

Page 16: 数学建模培训 —— 优化问题

结果解释

•准备费 c1 增加,生产周期和产量变大;

1

2

2,

cT

c r 1

2

2,

c rQ rT

c rccC 212

•存贮费 c2 增加,生产周期和产量变小;•当日需求费 r 增加,生产周期变小而产量变大。

•这些定性结果符合常识,而定量关系(平方根,系数 2等)凭常识是无法得出的,只能由数学建模得到。

Page 17: 数学建模培训 —— 优化问题

在本例中• c1=5000, c2=1, r=100,

•这里得到的费用 C 与前面计算得 950 元有微小差别,你能解释吗?

• 由 得 : T=10, C=1000.

11 2

2

2, 2

cT C c c r

c r

Page 18: 数学建模培训 —— 优化问题

数学规划• 线性规划• 非线性规划• 整数规划• 0 - 1 规划• 混合整数规划

二 数学规划模型

•奶制品的生产与销售

Page 19: 数学建模培训 —— 优化问题

数学规划的一般模型• min f (x)

s.t. hi(x)=0, i=1, …, m

gp(x)>=0, p=1, …, t• f(x), hi(x)( i=1, …, m), gp(x)( p=1, …, t) 均是定义在 En上的实函数。

• x=(x1, …, xn)T: 决策变量• f (x): 目标函数• hi(x), gp(x): 约束函数

Page 20: 数学建模培训 —— 优化问题

• min f (x)

s.t. hi(x)=0, i=1, …, m

gp(x)>=0, p=1, …, t

• 若 f(x), hi(x)( i=1, …, m), gp(x)( p=1, …, t)均为线性函数,则问题 (MP) 就被称为线性规划问题。

• 线性规划问题:求多变量线性函数在线性约束条件下的最优值。

(MP)

Page 21: 数学建模培训 —— 优化问题

• min f (x)

s.t. hi(x)=0, i=1, …, m

gp(x)>=0, p=1, …, t

• 若 f(x), hi(x)( i=1, …, m), gp(x)( p=1, …, t)中至少有一个是非线性函数,问题 (MP)就被称为非线性规划问题。

(MP)

Page 22: 数学建模培训 —— 优化问题

• 若要求变量 x 取整数值时,则称之为整数规划;

• 若变量只取0或1时,则称之为0-1规划;

• 若只要求部分变量取整数值,则称之为混合整数规划。

Page 23: 数学建模培训 —— 优化问题

奶制品的生产和销售

•每天有 50 桶牛奶供应

试制订生产计划,使每天获利最大

1 桶牛奶

3 公斤 A1

甲: 12小时 获利 24 元 / 公

斤4 公斤 A2

乙: 8小时 获利 16 元 / 公斤

•每天正式工人总的劳动时间为 480 小时•设备甲每天至多能加工 100 公斤 A1

•设备乙的加工能力没有限制

Page 24: 数学建模培训 —— 优化问题

x1,x2 >=0

• 决策变量:

1桶牛奶

3 公斤 A1

甲: 12小时 获利 24 元 / 公

斤4 公斤 A2

乙: 8小时 获利 16 元 / 公斤

获利 24×3x1 获利 16×4 x2

x1桶牛奶生产 A1, x2桶牛奶生产 A2

• 目标函数: Max z=72x1+64 x2 线性规划模型(LP)

• 约束条件: x1+ x2 <=50

12x1+ 8x2 <=4803x1 <=100

Page 25: 数学建模培训 —— 优化问题

线性规划问题求解• 满足约束条件的解称为可行解• 所有可行解构成的集合称为可行域• 满足目标式的可行解称为最优解

线性规划问题的可行域是一个凸多边形; 线性规划问题如果存在最优解,则最优解必在可行域的顶点处达到。

• 可行域的几何特征:

• 可行域的顶点称为基本可行解。

Page 26: 数学建模培训 —— 优化问题

模型求解

• 单纯形算法

• 利用计算机软件 LINDO, LINGO, MATLAB

•椭球算法、 Karmarkar 算法

Page 27: 数学建模培训 —— 优化问题

三 软件简介• LINDO, LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包。

• MATLAB 是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境

•其它计算机程序语言

Page 28: 数学建模培训 —— 优化问题

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

LINGO LINDO

优化模型

线性规划(LP)

非线性规划(NLP)

二次规划(QP)

连续优化 整数规划 (IP)

Page 29: 数学建模培训 —— 优化问题
Page 30: 数学建模培训 —— 优化问题

然后点击工具条上的按钮 即可。

Max z=72x1+64 x2

x1,x2 >=0

x1+ x2 <=50

12x1+ 8x2 <=4803x1 <=100

max=72*x1+64*x2;

x1+x2<50;

12*x1+8*x2<480;

3*x1<100;

LINGO

max 72x1+64x2

st

x1+x2<50

12x1+8x2<480

3x1<100

end

LINDO

Page 31: 数学建模培训 —— 优化问题

MATLAB 求解线性规划问题 对于线性规划问题

可用函数 x = linprog( c, A, b, Aeq , beq , xLB, xUB, x0, nEq) ,其中 x0 为算法的初始点,可任取一个点。

bAXts ..

beqXAeq

min Tf c x

xLB x xUB

注意:若没有不等式: 存在,则令 A=[ ] , b=[ ].bAX

若没有等式约束 : , 则令 Aeq=[ ], beq=[ ].beqXAeq

Page 32: 数学建模培训 —— 优化问题

Max z=72x1+64 x2

x1,x2 >=0

x1+ x2 <=50

12x1+ 8x2 <=4803x1 <=100

改写为:

min z=(-72 -64)X

编写 M 文件 liti.m 如下 :f = [-72 -64];A = [1 1; 12 8; 3 0];b = [50; 480; 100];Aeq=[];beq=[];vlb = zeros(2,1);vub=[];[x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)

1

2

1 1 500

12 8 480 ,0

3 0 100

xX X

x

>> litiOptimization terminated.x = 20.0000 30.0000fval = -3.3600e+003

Page 33: 数学建模培训 —— 优化问题

肆 离散优化模型常用技巧

• 计算复杂性分析• 算法设计 精确算法 近似算法• 算法计算量估计、算法优劣比较

Page 34: 数学建模培训 —— 优化问题

比较算法的好坏,从不同的角度出发,有各种不同的标准。在这里,我们仅就算法的计算速度作一个十分粗略的比较。

例 1 (整理问题)给定 n个实数 a1, a2,…, an ,要求将它整理成由小到大排列(或由大到小排列)的顺序: b1, b2,…, bn , b1≤ b2≤…≤ bn 。

(算法 1) 取出 a1, a2,…, an 中的最小者,令其为 b1 。从 a1, a2,…, an 中去除 b1 ,在余下的 n—1个数中选出最小者,令其为 b2 ,…,直至得到 b1, b2,…, bn 。容易看出,为了排出 b1, b2,…, bn ,算法工作了 次比较。

( 1)

2

n n

(算法 2)步 0 b1←a1 步 1 设已有 b1,…,bk (1≤k<n) ,将按两分法比较的方式把 ak+1 排入其中:若 b1≤…≤bi≤ak+1≤bi+1≤…≤bk ,令( b1, b2,…,bk , bk+1 )←( b1,…, bi, ak+1, bi+1, …, bk )。若 k+1<n ,令 k ← k+1 ,返回步 1。

Page 35: 数学建模培训 —— 优化问题

我们来分析一下算法2的计算量:

排出 b1 不必作比较,排出 b2 只需作一次比较,…,一般,在排 ak+1 时,设2r - 1≤k< 2r ,则只需作 r次比较即可将 ak+1 安排在它应排的位置上。例如在排 a8 时, k=7 ,先和 b4 比,若 a8>b4 ,可再和 b6比(若 a8<b4 则和 b2

比),易见,只要比 3次即可排入 a8 ,由于 r≤log2k+1 ,算法的总经较次数不超过

1 112

2 2 21 1 1

( 1) log log (2 ) log (2 )n nn

k k k

n k k k

12 2log lognn n n

令 , ,设计算机每秒可作 C次比较,则算法 1与算法 2整理 a1, a2,…, an 所用的时间分别为

若 n=100万, C=100万次 / 秒,则 t1≈5.8天,而 t2≈20秒。可见在较大规模的整理问题时,算法 2明显优于算法 1。

1

( 1)( )

2

n nf n

2 2( ) logf n n n

11

( )f nt

C 2

2

( )f nt

C

Page 36: 数学建模培训 —— 优化问题
Page 37: 数学建模培训 —— 优化问题

1. 使零件尽早完工?

2. 使零件尽量在交货日期内完工?

3. 使零件的完工时间和尽可能小?

Page 38: 数学建模培训 —— 优化问题

1

设 n 个工件需要在同类型设备 A 或 B 上加工,问应如何安排个工件的加工顺序,使得所有工件的完工时间尽可能早?(所有工件的完工时间之和尽量小?)

Page 39: 数学建模培训 —— 优化问题

方法一——采取近似算法:

方法二——采取精确算法: 动态规划

优点:节省时间

缺点:不是最优解

优点:是最优解

缺点:时间消耗很多

Page 40: 数学建模培训 —— 优化问题
Page 41: 数学建模培训 —— 优化问题
Page 42: 数学建模培训 —— 优化问题

谢 谢谢 谢谢 谢谢 谢2013.042013.04