第四章 数学规划2009-9.ppt_第1页
第四章 数学规划2009-9.ppt_第2页
第四章 数学规划2009-9.ppt_第3页
第四章 数学规划2009-9.ppt_第4页
第四章 数学规划2009-9.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章数学规划 Lindo 优化模型数学规划LindoMatlabLingo 实际问题中的优化模型 x 决策变量 f x 目标函数 gi x 0 约束条件 数学规划 线性规划 LP 二次规划 QP 非线性规划 NLP 纯整数规划 PIP 混合整数规划 MIP 整数规划 IP 0 1整数规划一般整数规划 连续规划 LINDO公司软件产品简要介绍 美国芝加哥 Chicago 大学的LinusSchrage教授于1980年前后开发 后来成立LINDO系统公司 LINDOSystemsInc 网址 LINDO LinearINteractiveandDiscreteOptimizer V6 1 LINGO LinearINteractiveGeneralOptimizer V8 0 LINDOAPI LINDOApplicationProgrammingInterface V2 0 What sBest SpreadSheete g EXCEL V7 0 演示 试用 版 学生版 高级版 超级版 工业版 扩展版 求解问题规模和选件不同 LINDO和LINGO软件能求解的优化模型 LINGO LINDO 优化模型 线性规划 LP 非线性规划 NLP 二次规划 QP 连续优化 整数规划 IP LPQPNLPIP全局优化 选 ILPIQPINLP 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 需要掌握的几个重要方面 1 LINDO 正确阅读求解报告 尤其要掌握敏感性分析 2 LINGO 掌握集合 SETS 的应用 正确阅读求解报告 正确理解求解状态窗口 学会设置基本的求解选项 OPTIONS 掌握与外部文件的基本接口方法 企业生产计划 4 1奶制品的生产与销售 空间层次 工厂级 根据外部需求和内部设备 人力 原料等条件 以最大利润为目标制订产品生产计划 车间级 根据生产计划 工艺流程 资源约束及费用参数等 以最小成本为目标制订生产批量计划 时间层次 若短时间内外部需求和内部资源等不随时间变化 可制订单阶段生产计划 否则应制订多阶段生产计划 例1加工奶制品的生产计划 50桶牛奶 时间480小时 至多加工100公斤A1 制订生产计划 使每天获利最大 35元可买到1桶牛奶 买吗 若买 每天最多买多少 可聘用临时工人 付出的工资最多是每小时几元 A1的获利增加到30元 公斤 应否改变生产计划 每天 x1桶牛奶生产A1 x2桶牛奶生产A2 获利24 3x1 获利16 4x2 原料供应 劳动时间 加工能力 决策变量 目标函数 每天获利 约束条件 非负约束 线性规划模型 LP 时间480小时 至多加工100公斤A1 模型分析与假设 比例性 可加性 连续性 xi对目标函数的 贡献 与xi取值成正比 xi对约束条件的 贡献 与xi取值成正比 xi对目标函数的 贡献 与xj取值无关 xi对约束条件的 贡献 与xj取值无关 xi取值连续 A1 A2每公斤的获利是与各自产量无关的常数 每桶牛奶加工出A1 A2的数量和时间是与各自产量无关的常数 A1 A2每公斤的获利是与相互产量无关的常数 每桶牛奶加工出A1 A2的数量和时间是与相互产量无关的常数 加工A1 A2的牛奶桶数是实数 线性规划模型 模型求解 图解法 约束条件 目标函数 z c 常数 等值线 在B 20 30 点得到最优解 目标函数和约束条件是线性函数 可行域为直线段围成的凸多边形 目标函数的等值线为直线 最优解一定在凸多边形的某个顶点取得 模型求解 软件实现 LINDO6 1 max72x1 64x2st2 x1 x2 503 12x1 8x2 4804 3x1 100end OBJECTIVEFUNCTIONVALUE1 3360 000VARIABLEVALUEREDUCEDCOSTX120 0000000 000000X230 0000000 000000ROWSLACKORSURPLUSDUALPRICES2 0 00000048 0000003 0 0000002 0000004 40 0000000 000000NO ITERATIONS 2 DORANGE SENSITIVITY ANALYSIS No 20桶牛奶生产A1 30桶生产A2 利润3360元 结果解释 OBJECTIVEFUNCTIONVALUE1 3360 000VARIABLEVALUEREDUCEDCOSTX120 0000000 000000X230 0000000 000000ROWSLACKORSURPLUSDUALPRICES2 0 00000048 0000003 0 0000002 0000004 40 0000000 000000NO ITERATIONS 2 原料无剩余 时间无剩余 加工能力剩余40 max72x1 64x2st2 x1 x2 503 12x1 8x2 4804 3x1 100end 三种资源 资源 剩余为零的约束为紧约束 有效约束 模型求解 reducedcost值表示当该非基变量增加一个单位时 其他非基变量保持不变 目标函数减少的量 对max型问题 OBJECTIVEFUNCTIONVALUE1 3360 000VARIABLEVALUEREDUCEDCOSTX120 0000000 000000X230 0000000 000000ROWSLACKORSURPLUSDUALPRICES2 0 00000048 0000003 0 0000002 0000004 40 0000000 000000NO ITERATIONS 2 也可理解为 为了使该非基变量变成基变量 目标函数中对应系数应增加的量 结果解释 OBJECTIVEFUNCTIONVALUE1 3360 000VARIABLEVALUEREDUCEDCOSTX120 0000000 000000X230 0000000 000000ROWSLACKORSURPLUSDUALPRICES2 0 00000048 0000003 0 0000002 0000004 40 0000000 000000NO ITERATIONS 2 最优解下 资源 增加1单位时 效益 的增量 原料增加1单位 利润增长48 时间增加1单位 利润增长2 加工能力增长不影响利润 影子价格 35元可买到1桶牛奶 要买吗 35 48 应该买 聘用临时工人付出的工资最多每小时几元 2元 RANGESINWHICHTHEBASISISUNCHANGED OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX172 00000024 0000008 000000X264 0000008 00000016 000000RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE250 00000010 0000006 6666673480 00000053 33333280 0000004100 000000INFINITY40 000000 最优解不变时目标函数系数允许变化范围 DORANGE SENSITIVITY ANALYSIS Yes x1系数范围 64 96 x2系数范围 48 72 A1获利增加到30元 千克 应否改变生产计划 x1系数由24 3 72增加为30 3 90 在允许范围内 不变 约束条件不变 结果解释 RANGESINWHICHTHEBASISISUNCHANGED OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX172 00000024 0000008 000000X264 0000008 00000016 000000RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE250 00000010 0000006 6666673480 00000053 33333280 0000004100 000000INFINITY40 000000 影子价格有意义时约束右端的允许变化范围 原料最多增加10 时间最多增加53 35元可买到1桶牛奶 每天最多买多少 最多买10桶 目标函数不变 例2奶制品的生产销售计划 在例1基础上深加工 制订生产计划 使每天净利润最大 30元可增加1桶牛奶 3元可增加1小时时间 应否投资 现投资150元 可赚回多少 50桶牛奶 480小时 至多100公斤A1 B1 B2的获利经常有10 的波动 对计划有无影响 出售x1千克A1 x2千克A2 X3千克B1 x4千克B2 原料供应 劳动时间 加工能力 决策变量 目标函数 利润 约束条件 非负约束 x5千克A1加工B1 x6千克A2加工B2 附加约束 模型求解 软件实现 LINDO6 1 OBJECTIVEFUNCTIONVALUE1 3460 800VARIABLEVALUEREDUCEDCOSTX10 0000001 680000X2168 0000000 000000X319 2000010 000000X40 0000000 000000X524 0000000 000000X60 0000001 520000ROWSLACKORSURPLUSDUALPRICES2 0 0000003 1600003 0 0000003 2600004 76 0000000 0000005 0 00000044 0000006 0 00000032 000000NO ITERATIONS 2 OBJECTIVEFUNCTIONVALUE1 3460 800VARIABLEVALUEREDUCEDCOSTX10 0000001 680000X2168 0000000 000000X319 2000010 000000X40 0000000 000000X524 0000000 000000X60 0000001 520000ROWSLACKORSURPLUSDUALPRICES2 0 0000003 1600003 0 0000003 2600004 76 0000000 0000005 0 00000044 0000006 0 00000032 000000NO ITERATIONS 2 结果解释 每天销售168千克A2和19 2千克B1 利润3460 8 元 8桶牛奶加工成A1 42桶牛奶加工成A2 将得到的24千克A1全部加工成B1 除加工能力外均为紧约束 结果解释 OBJECTIVEFUNCTIONVALUE1 3460 800VARIABLEVALUEREDUCEDCOSTX10 0000001 680000X2168 0000000 000000X319 2000010 000000X40 0000000 000000X524 0000000 000000X60 0000001 520000ROWSLACKORSURPLUSDUALPRICES2 0 0000003 1600003 0 0000003 2600004 76 0000000 0000005 0 00000044 0000006 0 00000032 000000 增加1桶牛奶使利润增长3 16 12 37 92 增加1小时时间使利润增长3 26 30元可增加1桶牛奶 3元可增加1小时时间 应否投资 现投资150元 可赚回多少 投资150元增加5桶牛奶 可赚回189 6元 大于增加时间的利润增长 结果解释 B1 B2的获利有10 的波动 对计划有无影响 RANGESINWHICHTHEBASISISUNCHANGED OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX124 0000001 680000INFINITYX216 0000008 1500002 100000X344 00000019 7500023 166667X432 0000002 026667INFINITYX5 3 00000015 8000002 533334X6 3 0000001 520000INFINITY B1获利下降10 超出X3系数允许范围 B2获利上升10 超出X4系数允许范围 波动对计划有影响 生产计划应重新制订 如将x3的系数改为39 6计算 会发现结果有很大变化 使用LINDO的一些注意事项 或 或 功能相同变量与系数间可有空格 甚至回车 但无运算符变量名以字母开头 不能超过8个字符变量名不区分大小写 包括LINDO中的关键字 目标函数所在行是第一行 第二行起为约束条件行号 行名 自动产生或人为定义 行名以 结束行中注有 符号的后面部分为注释 如 It sComment 在模型的任何地方都可以用 TITLE 对模型命名 最多72个字符 如 TITLEThisModelisonlyanExample 变量不能出现在一个约束条件的右端表达式中不接受括号 和逗号 等任何符号 例 400 X1 X2 需写为400X1 400X2表达式应化简 如2X1 3X2 4X1应写成 2X1 3X2缺省假定所有变量非负 可在模型的 END 语句后用 FREEname 将变量name的非负假定取消可在 END 后用 SUB 或 SLB 设定变量上下界例如 subx110 的作用等价于 x1 10 但用 SUB 和 SLB 表示的上下界约束不计入模型的约束 也不能给出其松紧判断和敏感性分析 14 END 后对0 1变量说明 INTn或INTname15 END 后对整数变量说明 GINn或GINname 使用LINDO的一些注意事项 MATLAB优化工具箱能求解的优化模型 优化工具箱3 0 MATLAB7 0R14 连续优化 离散优化 无约束优化 非线性极小fminunc 非光滑 不可微 优化fminsearch 非线性方程 组 fzerofsolve 全局优化暂缺 非线性最小二乘lsqnonlinlsqcurvefit 线性规划linprog 纯0 1规划bintprog一般IP 暂缺 非线性规划fminconfminimaxfgoalattainfseminf 上下界约束fminbndfminconlsqnonlinlsqcurvefit 约束线性最小二乘lsqnonneglsqlin 约束优化 二次规划quadprog MATLAB优化工具箱能求解的优化模型 xi 0 1 MATLAB优化工具箱能求解的优化模型 MATLAB优化工具箱能求解的优化模型 MATLAB优化工具箱能求解的优化模型 用MATLAB优化工具箱解线性规划 命令 x linprog c A b 2 模型 minz cX 命令 x linprog c A b Aeq beq 注意 若没有不等式 存在 则令A b 命令 1 x linprog c A b Aeq beq VLB VUB 2 x linprog c A b Aeq beq VLB VUB X0 注意 1 若没有等式约束 则令Aeq beq 2 其中X0表示初始点 4 命令 x fval linprog 返回最优解 及 处的目标函数值fval 解编写M文件xxgh1 m如下 c 0 4 0 28 0 32 0 72 0 64 0 6 A 0 010 010 010 030 030 03 0 02000 0500 00 02000 050 000 03000 08 b 850 700 100 900 Aeq beq vlb 0 0 0 0 0 0 vub x fval linprog c A b Aeq beq vlb vub ToMatlab xxgh1 解 编写M文件xxgh2 m如下 c 634 A 010 b 50 Aeq 111 beq 120 vlb 30 0 20 vub x fval linprog c A b Aeq beq vlb vub ToMatlab xxgh2 1 任务分配问题 某车间有甲 乙两台机床 可用于加工三种工件 假定这两台车床的可用台时数分别为800和900 三种工件的数量分别为400 600和500 且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表 问怎样分配车床的加工任务 才能既满足加工工件的要求 又使加工费用最低 练习 解设在甲车床上加工工件1 2 3的数量分别为x1 x2 x3 在乙车床上加工工件1 2 3的数量分别为x4 x5 x6 可建立以下线性规划模型 解答 2 某厂每日8小时的产量不低于1800件 为了进行质量控制 计划聘请两种不同水平的检验员 一级检验员的标准为 速度25件 小时 正确率98 计时工资4元 小时 二级检验员的标准为 速度15小时 件 正确率95 计时工资3元 小时 检验员每错检一次 工厂要损失2元 为使总检验费用最省 该工厂应聘一级 二级检验员各几名 解设需要一级和二级检验员的人数分别为x1 x2人 则应付检验员的工资为 因检验员错检而造成的损失为 故目标函数为 约束条件为 线性规划模型 解答 返回 例3问题一的解答 问题 编写M文件xxgh3 m如下 f 1391011128 A 0 41 110000000 51 21 3 b 800 900 Aeq 100100010010001001 beq 400600500 vlb zeros 6 1 vub x fval linprog f A b Aeq beq vlb vub ToMatlab xxgh3 结果 x 0 0000600 00000 0000400 00000 0000500 0000fval 1 3800e 004即在甲机床上加工600个工件2 在乙机床上加工400个工件1 500个工件3 可在满足条件的情况下使总加工费最小为13800 例2问题二的解答 问题 改写为 编写M文件xxgh4 m如下 c 40 36 A 5 3 b 45 Aeq beq vlb zeros 2 1 vub 9 15 调用linprog函数 x fval linprog c A b Aeq beq vlb vub ToMatlab xxgh4 结果为 x 9 00000 0000fval 360即只需聘用9个一级检验员 注 本问题应还有一个约束条件 x1 x2取整数 故它是一个整数线性规划问题 这里把它当成一个线性规划来解 求得其最优解刚好是整数 x1 9 x2 0 故它就是该整数规划的最优解 若用线性规划解法求得的最优解不是整数 将其取整后不一定是相应整数规划的最优解 这样的整数规划应用专门的方法求解 返回 投资的收益和风险 二 基本假设和符号规定 三 模型的建立与分析 1 总体风险用所投资的Si中最大的一个风险来衡

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论