资源预览内容
第1页 / 共80页
第2页 / 共80页
第3页 / 共80页
第4页 / 共80页
第5页 / 共80页
第6页 / 共80页
第7页 / 共80页
第8页 / 共80页
第9页 / 共80页
第10页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数学建模讲座 2005年8月2日 北戴河 优化建模与LINDO LINGO优化软件 谢金星 清华大学数学科学系 Tel 010 62787812 Email jxie 简要提纲 1 优化模型与优化软件简介 2 LINDO公司的主要软件产品及功能简介 3 LINDO LINGO软件的使用简介 4 建模与求解实例 结合软件使用 1 优化模型与优化软件简介 最优化是工程技术 经济管理 科学研究 社会生活中经常遇到的问题 如 优化模型和优化软件的重要意义 结构设计资源分配生产计划运输方案 解决优化问题的手段 经验积累 主观判断 作试验 比优劣 建立数学模型 优化模型 求最优策略 决策 最 优化 在一定条件下 寻求使目标最大 小 的决策 CUMCM赛题 约一半以上与优化有关 需用软件求解 运筹学 OR Operations Operational Research 管理科学 MS Management Science 决策科学 DS Decision Science 最 优化理论是运筹学的基本内容 无 约 束 优 化 OR MS DS 优化 Optimization 规划 Programming 线 性 规 划 非 线 性 规 划 网 络 优 化 组 合 优 化 整 数 规 划 不 确 定 规 划 多 目 标 规 划 目 标 规 划 动 态 规 划 优化问题三要素 决策变量 目标函数 约束条件 约 束 条 件决策变量 优化问题的一般形式 可行解 满足约束 与可行域 可行解的集合 最优解 取到最小 大值的可行解 目标函数 无约束优化 最优解的分类和条件 给定一个函数 f x 寻找 x 使得 f x 最小 即 其中 局部最优解 全局最优解 必要条件 x f x xl xg o 充分条件 Hessian阵 最优解在可行域边界上取得时不能用无约束优化方法求解 约束优化的 简单分类 线性规划 LP 目标和约束均为线性函数 非线性规划 NLP 目标或约束中存在非线性函数 二次规划 QP 目标为二次函数 约束为线性 整数规划 IP 决策变量 全部或部分 为整数 整数线性规划 ILP 整数非线性规划 INLP 纯整数规划 PIP 混合整数规划 MIP 一般整数规划 0 1 整数 规划 连 续 优 化 离 散 优 化 数学规划 常用优化软件 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 网址 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软件能求解的优化模型 LINGO LINDO 优化模型 线性规划 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 LINDO LINGO软件的使用简介 需要掌握的几个重要方面 1 LINDO 正确阅读求解报告 尤其要掌握敏感性分析 2 LINGO 掌握集合 SETS 的应用 正确阅读求解报告 正确理解求解状态窗口 学会设置基本的求解选项 OPTIONS 掌握与外部文件的基本接口方法 例1 加工奶制品的生产计划 1桶 牛奶 3公斤A1 12小时 8小时 4公斤A2 或 获利24元 公斤 获利16元 公斤 50桶牛奶 时间480小时 至多加工100公斤A1 制订生产计划 使每天获利最大 35元可买到1桶牛奶 买吗 若买 每天最多买多少 可聘用临时工人 付出的工资最多是每小时几元 A1的获利增加到 30元 公斤 应否改变生产计划 每天 1桶 牛奶 3公斤A1 12小时 8小时 4公斤A2 或 获利24元 公斤 获利16元 公斤 x1桶牛奶生产A1 x2桶牛奶生产A2 获利 24 3x1 获利 16 4 x2 原料供应 劳动时间 加工能力 决策变量 目标函数 每天获利 约束条件 非负约束 线性 规划 模型 LP 时间480小时 至多加工100公斤A1 50桶牛奶 每天 模型求解 max 72x1 64x2 st 2 x1 x2 50 3 12x1 8x2 480 4 3x1 100 end OBJECTIVE FUNCTION VALUE 1 3360 000 VARIABLE VALUE REDUCED COST X1 20 000000 0 000000 X2 30 000000 0 000000 ROW SLACK OR SURPLUS DUAL PRICES 2 0 000000 48 000000 3 0 000000 2 000000 4 40 000000 0 000000 NO ITERATIONS 2 DO RANGE SENSITIVITY ANALYSIS No 20桶牛奶生产A1 30桶生产A2 利润3360元 模型求解 reduced cost值表 示当该非基变量 增加一个单位时 其他非基变量 保持不变 目标 函数减少的量 对 max型问题 OBJECTIVE FUNCTION VALUE 1 3360 000 VARIABLE VALUE REDUCED COST X1 20 000000 0 000000 X2 30 000000 0 000000 ROW SLACK OR SURPLUS DUAL PRICES 2 0 000000 48 000000 3 0 000000 2 000000 4 40 000000 0 000000 NO ITERATIONS 2 也可理解为 为了使该非基变 量变成基变量 目标函数中对应 系数应增加的量 OBJECTIVE FUNCTION VALUE 1 3360 000 VARIABLE VALUE REDUCED COST X1 20 000000 0 000000 X2 30 000000 0 000000 ROW SLACK OR SURPLUS DUAL PRICES 2 0 000000 48 000000 3 0 000000 2 000000 4 40 000000 0 000000 原料无剩余 时间无剩余 加工能力剩余40 max 72x1 64x2 st 2 x1 x2 50 3 12x1 8x2 480 4 3x1 100 end 三 种 资 源 资源 剩余为零的约束为紧约束 有效约束 结果解释 OBJECTIVE FUNCTION VALUE 1 3360 000 VARIABLE VALUE REDUCED COST X1 20 000000 0 000000 X2 30 000000 0 000000 ROW SLACK OR SURPLUS DUAL PRICES 2 0 000000 48 000000 3 0 000000 2 000000 4 40 000000 0 000000 结果解释 最优解下 资源 增加1 单位时 效益 的增量 原料增1单位 利润增48 时间加1单位 利润增2 能力增减不影响利润 影子价格 35元可买到1桶牛奶 要买吗 35 或 或 功能相同 变量与系数间可有空格 甚至回车 但无运算符 变量名以字母开头 不能超过8个字符 变量名不区分大小写 包括LINDO中的关键字 目标函数所在行是第一行 第二行起为约束条件 行号 行名 自动产生或人为定义 行名以 结束 行中注有 符号的后面部分为注释 如 It s Comment 在模型的任何地方都可以用 TITLE 对模型命名 最多72个字符 如 TITLE This Model is only an Example 变量不能出现在一个约束条件的右端 表达式中不接受括号 和逗号 等任何符号 例 400 X1 X2 需写为400X1 400X2 表达式应化简 如2X1 3X2 4X1应写成 2X1 3X2 缺省假定所有变量非负 可在模型的 END 语句 后用 FREE name 将变量name的非负假定取消 可在 END 后用 SUB 或 SLB 设定变量上下界 例如 sub x1 10 的作用等价于 x1 10 但用 SUB 和 SLB 表示的上下界约束不计入模 型的约束 也不能给出其松紧判断和敏感性分析 14 END 后对0 1变量说明 INT n 或 INT name 15 END 后对整数变量说明 GIN n 或 GIN name 使用LINDO的一些注意事项 二次规划 QP 问题 LINDO可求解二次规划 QP 问题 但输入方式 较复杂 因为在LINDO中不许出现非线性表达 式 需要为每一个实际约束增加一个对偶变量 LAGRANGE乘子 在实际约束前增加有关变 量的一阶最优条件 转化为互补问题 END 后面使用QCP命令指明实际约束开始的 行号 然后才能求解 建议总是用LINGO解QP 注意 对QP和IP 敏感性分析意义不大 状态窗口 LINDO Solver Status 当前状态 已达最优解 迭代次数 18次 约束不满足的 量 不 是 约束个数 0 当前的目标值 94 最好的整数解 94 整数规划的界 93 5 分枝数 1 所用时间 0 00秒 太 快了 还不到0 005秒 刷新本界面的间隔 1 秒 选项设置 Preprocess 预处理 生成割平面 Preferred Branch 优先的分枝方式 Default 缺省方式 Up 向上取整优先 Down 向下取整优先 IP Optimality Tol IP最优值允许的误 差上限 一个百分数 如5 即0 05 IP Objective Hurdle IP目标函数的篱 笆值 即只寻找比这个值更优最优解 如当知道当前模型的某个整数可行解时 就可以
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号