1 / 42

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数学建模培训——优化问题 上海第二工业大学 范 静

  2. 优化问题是人们在工程技术、经济管理和科学研究等领域中最常遇到的一类问题。优化问题是人们在工程技术、经济管理和科学研究等领域中最常遇到的一类问题。 • 商品经营者制定价格使得销售利润最高 • 生产计划要在满足工艺流程需求的条件下,降低成本使总利润最高 • 运输方案的安排问题中要使运输成本最小且收益最大 • 结构设计要在满足强度要求等条件下,使所用材料的总重量最轻

  3. 一 简单的优化模型 二 数学规划模型 三 求解优化问题的数学软件 四 离散优化模型简介

  4. 一 简单的优化模型 • 本节考虑较简单的优化模型,将其归结为函数极值问题,可以直接用微分法求解。 • 存贮模型(不允许缺货)

  5. 存贮模型(不允许缺货) • 工厂定期订购原料,存入仓库供生产之用; • 车间一次加工出一批零件,供装配线每天生产之用; • 商店成批购进各种商品,放在货柜里以备零售;

  6. 思考 • 存贮量多少合适? • 存贮量过大,存贮费用太高; • 存贮量太小,会导致一次性订购费用增加,或不能及时满足需求。

  7. 配件厂为装配线生产若干种产品,轮换产品时因更换设备要付生产准备费(与生产数量无关),同一产品的产量大于需求时要付贮存费。该厂生产能力非常大,即所需数量可在很短时间内产出。配件厂为装配线生产若干种产品,轮换产品时因更换设备要付生产准备费(与生产数量无关),同一产品的产量大于需求时要付贮存费。该厂生产能力非常大,即所需数量可在很短时间内产出。 • 已知某产品日需求量100件,生产准备费5000元,贮存费每日每件1元。试安排该产品的生产计划,即多少天生产一次(生产周期),每次产量多少,使总费用最小。 要求 建立生产周期、产量、需求量、准备费、贮存费之间的关系。

  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天生产一次平均每天费用最小吗?

  9. 问题分析 • 周期短,产量小 贮存费少,准备费多 • 周期长,产量大 准备费少,贮存费多 • 这是一个优化问题,关键是建立目标函数。 • 不能用一个周期的总费用作为目标函数。 • 目标函数——每天总费用的平均值

  10. 模型假设 • 产品每天的需求量为常数 r ; • 每次生产准备费为c1,每天每件产品贮存费为c2 ; • T天生产一次(周期),每次生产Q件,当贮存量为零时,Q件产品立即到来(生产时间不计); • 时间和产量都作为连续量处理

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

  12. 模型建立 • 总费用与变量的关系 • 总费用=生产准备费+存贮费 +缺货损失费 • 存贮费=存贮单价×存贮量 • 存贮量=?

  13. 存贮量的计算 • 设t 时刻的存贮量为q(t),t=0时生产Q件, 存贮量q(0)=Q, q(t) 以需求速率r 线性递减,直至q(T)=0: q • q(t) = Q – r t Q r • Q = rT A=QT/2 • 一个周期内存贮量 T 0 t (A的面积)

  14. 费用 • 一个周期的总费用 • 每天的费用(目标函数)

  15. 模型求解 • 求T使得 最小 • 用微分法: • 解得: • 每天的最小费用: • 经济订货批量公式(EOQ公式)。

  16. 结果解释 • 准备费c1增加,生产周期和产量变大; • 存贮费c2增加,生产周期和产量变小; • 当日需求费r 增加,生产周期变小而产量变大。 • 这些定性结果符合常识,而定量关系(平方根,系数2等)凭常识是无法得出的,只能由数学建模得到。

  17. 在本例中 • c1=5000, c2=1, r=100, • 由 得: T=10, C=1000. • 这里得到的费用C与前面计算得950元有微小差别,你能解释吗?

  18. 数学规划 二 数学规划模型 • 线性规划 • 非线性规划 • 整数规划 • 0-1规划 • 混合整数规划 • 奶制品的生产与销售

  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): 约束函数

  20. (MP) • 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)就被称为线性规划问题。 • 线性规划问题:求多变量线性函数在线性约束条件下的最优值。

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

  22. 若要求变量 x取整数值时,则称之为整数规划; • 若变量只取0或1时,则称之为0-1规划; • 若只要求部分变量取整数值,则称之为混合整数规划。

  23. 奶制品的生产和销售 甲:12小时 3公斤A1 获利24元/公斤 1桶牛奶 • 每天有50桶牛奶供应 获利16元/公斤 4公斤A2 乙:8小时 • 每天正式工人总的劳动时间为480小时 • 设备甲每天至多能加工100公斤A1 • 设备乙的加工能力没有限制 试制订生产计划,使每天获利最大

  24. 甲:12小时 3公斤A1 获利24元/公斤 1桶牛奶 获利16元/公斤 4公斤A2 乙:8小时 • 决策变量: x1桶牛奶生产A1, x2桶牛奶生产A2 获利24×3x1 获利16×4 x2 • 目标函数: Max z=72x1+64x2 线性规划模型(LP) x1+x2<=50 • 约束条件: 12x1+8x2<=480 3x1<=100 x1,x2>=0

  25. 线性规划问题求解 • 满足约束条件的解称为可行解 • 所有可行解构成的集合称为可行域 • 满足目标式的可行解称为最优解 • 可行域的几何特征: 线性规划问题的可行域是一个凸多边形; 线性规划问题如果存在最优解,则最优解必在可行域的顶点处达到。 • 可行域的顶点称为基本可行解。

  26. 模型求解 • 单纯形算法 • 椭球算法、Karmarkar算法 • 利用计算机软件 LINDO, LINGO, MATLAB

  27. 三 软件简介 • LINDO, LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包。 • MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境 • 其它计算机程序语言

  28. LINDO和LINGO软件能求解的优化模型 优化模型 整数规划(IP) 连续优化 LINGO LINDO 线性规划 (LP) 二次规划 (QP) 非线性规划 (NLP)

  29. Max z=72x1+64x2 max 72x1+64x2 st x1+x2<50 12x1+8x2<480 3x1<100 end x1+x2<=50 12x1+8x2<=480 LINDO 3x1<=100 x1,x2>=0 max=72*x1+64*x2; x1+x2<50; 12*x1+8*x2<480; 3*x1<100; LINGO 然后点击工具条上的按钮 即可。

  30. 注意:若没有不等式: 存在,则令A=[ ],b=[ ]. MATLAB求解线性规划问题 • 对于线性规划问题 • 可用函数x = linprog( c, A, b, Aeq,beq,xLB, xUB, x0, nEq),其中x0为算法的初始点,可任取一个点。 若没有等式约束: , 则令Aeq=[ ], beq=[ ].

  31. Max z=72x1+64x2 改写为: 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) x1+x2<=50 12x1+8x2<=480 3x1<=100 x1,x2>=0 >> liti Optimization terminated. x = 20.0000 30.0000 fval = -3.3600e+003

  32. 离散优化模型 常用技巧 • 计算复杂性分析 • 算法设计 精确算法 近似算法 • 算法计算量估计、算法优劣比较

  33. (算法1) 取出a1, a2,…, an中的最小者,令其为b1。从a1, a2,…, an中去除b1,在余下的n—1个数中选出最小者,令其为b2,…,直至得到b1, b2,…, bn。 容易看出,为了排出b1, b2,…, bn,算法工作了 次比较。 比较算法的好坏,从不同的角度出发,有各种不同的标准。在这里,我们仅就算法的计算速度作一个十分粗略的比较。 例1(整理问题)给定n个实数a1, a2,…, an,要求将它整理成由小到大排列(或由大到小排列)的顺序:b1, b2,…, bn,b1≤ b2≤…≤ bn。 (算法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。

  34. 排出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,算法的总经较次数不超过排出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,算法的总经较次数不超过 令 , ,设计算机每秒可作C次比较,则算法1与算法2整理a1, a2,…, an所用的时间分别为 若n=100万,C=100万次/秒,则t1≈5.8天,而t2≈20秒。可见在较大规模的整理问题时,算法2明显优于算法1。 我们来分析一下算法2的计算量:

  35. 使零件尽早完工? • 使零件尽量在交货日期内完工? • 使零件的完工时间和尽可能小?

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

  37. 方法一——采取近似算法: 优点:节省时间 缺点:不是最优解 方法二——采取精确算法: 动态规划 优点:是最优解 缺点:时间消耗很多

  38. 谢 谢 2013.04

More Related