已阅读5页,还剩75页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
优化技术与软件 ILOGOPL开发环境 1 ILOGODMS光盘已放至FTP 地址ftp 账户和密码都是download端口21 2 课程介绍 课程目标学习使用ILOGOPL开发环境解决实际问题掌握OPL的特征和功能了解在解决复杂商业优化问题时OPL开发环境的规则OPL与其他工具的关系 3 课程介绍 听众需要建模解决商业优化问题的专家预备知识对微软Windows操作系统的了解数学规划的知识将有助于对本课程知识的掌握 但并不是必须的 基本的编程知识对于ILOGOPL的开发是非常有用的 但并不是必须的 4 课程内容 介绍ILOGOPL的优化技术使用线性规划的优化产品生产计划和OPL数据结构 5 介绍ILOGOPL的优化技术 概述优化技术 OPL和一个典型的生产计划问题 6 什么是优化 优化是一种基于数学的技术 它以最大的运作效益为目标来分配各种资源 它是如何工作的 优化是一个可应用于特定问题的一个过程 这样 逻辑上第一步是对要解决问题的一个清晰的描述 随后的步骤如下 为你的问题构造一个模型将数据加入模型中利用数学优化引擎分析该模型 以找到最好的可能解当优化模型嵌入到实际应用中时 计划人员和运作管理者可以进行what if分析 并可以比较各种方案 7 什么可以进行优化 优化是一种决策工具 它实际上可以应用于各种行业中 下图所示优化技术的应用领域 8 什么可以进行优化 从长期规划到实时决策 大量的决策问题可以进行优化 例如 多少产品需要进行生产 何时生产 如何生产如何运输产品 人员 材料如何混合配置原材料如何调度安排人员 工作和设备如何对设施和设备进行选址和分配如何花费资金 等等 9 优化过程 优化过程需要处理的一些信息类型 及其产生的结果 10 优化技术 在优化技术广泛应用的领域 需要复杂的数学或先进的计算机科学方法来对复杂计划 调度和定价问题进行优化求解 在优化中用到的规划技术主要有 线性规划 LP 二次规划 QP 约束规划 CP 实际中 许多整数规划都含有浮点计算 因此混合整数规划 MIP 的应用要多于纯IP 11 应用 技术 计划类型 开发时间 12 OPL可以描述的规划问题类型 13 OPL和优化 OPL开发环境是ILOG全部优化解决方案组件中的一个 ILOG优化工具可以分成两类 ILOGPowerOps全面 预先建立的应用 它们利用了超过15年的经验 这些经验为在制造业和运输业中的一些特殊领域中的工作提供了优化技术 ODMS优化决策管理系统 开发定制模型的一个成熟系统 是基于ILOG的 经过工业验证的 优化引擎的应用 14 ILOG的优化产品 15 ODMS中的OPL ILOGOPL开发环境是优化决策管理系统 ODMS 中的一个组成成分 ODMS是一套工具组件 包括ILOG优化引擎 它可以用来开发定制模型和应用 可以利用OPL开发环境来设计定制模型 用来解决商业或机构中的特定问题 这个过程并不需要低级开发语言 16 ODMS中的OPL 可以利用OPL集成开发环境 IDE 来进行这一过程 它为用户提供了一个图形用户界面 从而为模型的开发提供了直观的工具 这些模型可以直接和ILOG优化决策管理器 ODM 一起集成到开发的应用中 从而使商业用户可以进行what if分析 并且比较各种方案 数据与模型是相互独立的 这样所开发的原型就具有了可重用性 17 ODMS中的各种软件是为从事商业优化的不同人员的工作而设计的 18 角色和目标 OPL是为优化专家们设计的工具利用这个工具 他们可以与其他领域的专家进行交互工作 开发各种应用的软件工程师利用ODM或ILOGConcert技术的程序库决策制定者为构建模型提供了基本信息 并且作为开发的应用的最终用户 19 什么是OPL开发环境 ILOGOPL开发环境是一个IDE 集成开发环境 利用OPL 优化编程语言 建立并运行由目标函数和约束组成的数学模型 读取相应的数据对其进行优化 OPL开发环境的组成包括 优化编程语言 OPL 用代数符号建立优化模型 类似于写在纸上的模型OPLIDE运行 测试和调试优化模型应用编程接口 APIs 可将模型嵌入到应用程序中 20 什么是OPL开发环境 优化编程语言 OPL OPLIDE 应用编程接口 APIs 是建立在ILOGConcert技术基础之上 与ILOGCPLEX优化引擎相连接 并提供了对CPLEX算法各种设置的完全读取 21 什么是OPL开发环境 OPL开发环境IDE包括 建立OPL模型的图形编辑器用表格显示数据和解用于优化调试的菜单和按钮OPL语法的在线帮助 22 OPL语言的特征 为建立数学规划模型而提供的简洁语言为了描述数据而提供的先进数据类型提供了与关系型数据库和Excel电子表格的连接对于数据处理和交互式的解决过程提供了ILOGScript 23 OPLAPIs的作用 利用以下的计算机开发语言 APIs允许将OPL模型和脚本嵌入到应用程序中 C Microsoft NETVisualBasic NET C J etc MicrosoftOffice2003viaVisualStudioToolsforOfficeJavaWebASP NET JSP 24 模型 数据和项目 OPLIDE允许构建与数据独立的模型 这就意味着当数据发生改变时 不需要改变模型 模型在一个独立的文件中 模型文件 进行维护 它与数据 数据文件 相独立 因此 对于具有不同输入数据的同一问题的多个实体 模型是可重用的 模型文件和一个或多个数据文件 也可以不包括数据文件 组成了一个项目 25 模型 数据和项目 除了模型和数据 项目还包括控制信息 用于实例化一个或多个问题 项目控制信息包含在2类结构中一个或多个设置文件 ops文件 控制冲突解决 选择和线性规划算法的运行一个或多个运行配置它们是模型 数据和设置文件的集合thataremeanttoruntogether 26 模型 数据和项目 Model是一个问题的抽象 它与数据无关OPL可以建立与数据无关的模型的数学描述一个项目包括一个模型和一个或多个数据文件 也可以不包括数据文件 这些数据文件说明了特殊的问题实例 一个问题实例是一个使用专门数据集的项目的详细实例化 并受控于设置文件和运行配置 27 有关OPL项目的更多内容 项目文件 prj 包含了相应的各种文件和与一个问题相关的参数 它组织相关的模型和数据文件 并提供一种方便的方法来维护相关文件和运行选择之间的关系 在项目中 模型文件 mod 声明了数据项目但是并不需要初始化它们数据文件 dat 包含了在模型中声明的数据的初始化 28 有关OPL项目的更多内容 设置文件 ops 当决定改变一个或多个数学规划和其他选择的缺省值时 该文件保存用户定义的值 运行配置并不是一个文件类型 而是为了运行目的设置的项目变化 一个运行配置组合了一个模型文件和一个或多个数据文件 考虑到内容和 或设置 它们与项目中原始的模型和数据是不同的 但是是针对同一个数学问题 在一个项目中 可以根据自己的需要定义多个运行配置 29 有关OPL项目的更多内容 一个最小的项目有一个模型文件对于同一模型文件的一个缺省的运行配置一个典型的项目有一个或多个模型文件任意数量的数据文件 或者没有数据文件 一个或多个设置文件一个或多个运行配置 以设定这些模型 数据和设置文件的不同组合 30 通过一个典型的生产计划案例学习OPL开发环境的功能和特征 31 在OPLIDE中为生产计划问题建模 关键词 决策变量目标函数约束 32 在OPLIDE中为生产计划问题建模 目标函数描述了优化希望的最终结果 例如 为了获得最大利润而寻找最优的生产数量 为此 需要考虑生产中的各种约束条件 例如 每个产品所需生产的零件数 和每个零件的当前库存量 IDE会自动用不同颜色加亮关键字 33 在OPLIDE中为生产计划问题建模 假设生产的是一种化工产品 下面的表格列出了模型中所需的数据以及它们在OPLIDE中是如何声明的 34 35 练习 学习使用OPL对汽油生产问题进行建模 然后 可以将模型应用到不同的生产环境中 通过这个建模过程熟悉IDE及其特征 在开始之前 双击在桌面或是在Windows开始菜单中OPLIDE的图标 运行OPLIDE OPLIDE具有多文档界面 MDI 这样可以同时编辑多个文件 36 下面的图表显示了IDE主窗口 一个项目已经加载进IDE中 和它的一些其它组成部分 37 步骤 1 打开OPLIDE案例项目 OPLXx Labs Gas work gas prj项目包含两个文件 gas mod 模型文件 和gas da 数据文件 2 和同学一起讨论这些文件3 点击工具条中的运行命令 并检查结果 38 调试 OPLIDE提供了错误捕捉机制 这些错误包括语法错误或运行错误 为了快速演示如何使用这些功能 执行下面的步骤 1 在gas mod文件中的一行语句的末尾删除一个分号 产生一个语法错误 2 运行该项目并注意输出窗口 然后在代码编辑窗口中出错行会被加亮 还可以在程序中加入断点 并查看它的状态 在线文档给出了详细的说明 3 纠正这个语法错误 然后保存这个模型文件 39 改变产品 重复使用模型 现在 假设不是生产化工产品 而是生产珠宝 相应数据如下 使用相同的模型 写一个新的数据文件 40 2020 2 4 41 42 过程 1 在OPLIDE中 从菜单条中选择File New Project 创建一个新的项目 2 使用导航按钮进入目录文本框中 用MakeNewFolder按钮在 OPLXx Labs Gas work jewelry目录中创建一个新的jewelry目录 通过点击Createproject按钮完成这些操作 这个项目将打开一个空白的模型文件 3 在Project窗口中 在jewelry mod上点击鼠标右键 并从上下文菜单中选择Removeitem 不用完全重新创建一个模型文件 可以利用现有的一个模型 43 过程 4 在项目文件上点击鼠标右键 并从上下文菜单中选择Addexistingdocument 选择 OPLXx Labs Gas work gas mod并将它添加到你的项目中 5 在Project窗口 将gas mod文件拖入Configurations1 将它添加到缺省的运行配置中 6 在项目文件上点击鼠标右键 并从上下文菜单中选择Addnewdocument Createdocument对话框将被打开 44 过程 7 在Createdocument对话框中 选择OPLdata作为文件类型 将它保存到 OPLXx Labs Gas work jewelry中 并命名为jewelry dat 点击Createdocument 数据文件在编辑区打开 注意到它已经添加到Configuration1中 8 为珠宝生产问题编写数据文件 如上面表格中所列情况 并保存你的工作 运行这个项目 是否得到一个有效的结果呢 9 将这个结果与gas prj得到的结果进行比较 45 总结 优化是一种基于数学的技术 它针对最大的运作效益来分配资源 可应用于多种工业和商业情况中 OPL开发环境是ILOG优化决策管理系统 ODMS 的一个组成成分 ODMS是一个工具组件 包括ILOG优化引擎 可以用来开发定制模型和应用 OPL开发环境的主要用户是优化建模专家 他们用来为一个商业行为或机构的具体问题设计定制解决方案 这个过程不需要低级的编程语言 46 总结 OPL开发环境提供一个集成的开发环境 IDE 它允许使用直观的图形界面进行建模 模型可以集成到由ILOG优化决策管理器 ODM 开发的应用中 允许用户执行what if分析 比较不同方案 并提供了多个APIs 数据与模型独立 因此开发的模型是可重用的 47 使用线性规划的优化工具 介绍线性规划概念学习OPL语言的运算符和语法 48 学习目标 分析一个简单的生产问题并将它转换成优化语言使用OPL 利用线性规划技术解决一个简单的生产问题学习OPL语言的运算符和语法完成第一个模型并学习如何独立地处理数据 49 一个生产流程问题 一个电话公司加工并销售两种类型的产品 固定电话 便携式电话 每种类型的电话都由公司进行组装和喷漆 公司希望每种产品至少生产100个并最大化它的季度利润 为了实现这个目标 公司需要计算每种电话最优的生产数量 50 生产条件 一个固定电话的加工时间12分钟 在装配机器上30分钟 在喷漆机器上一个便携式电话的加工时间24分钟 在装配机器上24分钟 在喷漆机器上每个季度装配机器可用的工作时间是400小时每个季度喷漆机器可用的工作时间是490小时固定电话的利润为每个12美元便携式电话的利润为每个20美元 51 电话生产问题的优化语言描述 用优化术语 我们可以这样描述这个问题 这种类型的问题可以利用线性规划 LP 技术来解决 52 什么是线性规划 线性规划解决线性表达式在受制于线性约束时的最小化 或最大化 问题 一个线性表达式是一个数积 例如 表达式a 0 a 1 x 1 a n x n 在这个表达式中 a i 表示常数x i 标识变量 53 什么是线性规划 一个线性约束由一个等式或不等式来表示 线性表达式 线性表达式线性表达式 线性表达式线性表达式 线性表达式任何一个线性约束都可以改写成一个或两个下面类型的表达式 线性表达式 0 54 线性规划的基本元素 55 变量边界 线性规划的约束条件常常会设置变量允许的边界 这样 一个约束条件通常具有以下形式 下界 变量 上界下界为变量可取的最小值上界为变量可取的最大值在运筹学中 一个边界可以在也可以不在变量的域内 如果一个边界处于变量的域内 这个变量可假设为就取该值 而不小于 下界 或大于 上界 当一个边界不在变量的域内 这个变量严格大于下界或严格小于上界 但并不会取这个边界值 56 逻辑约束条件 一个逻辑约束条件是用逻辑运算符 例如逻辑和 逻辑或 非 否 条件语句 if then 来组合线性约束条件 从而用来表达线性约束条件之间的复杂关系 ILOGCPLEX也可以处理某些出现在线性约束条件中的逻辑表达式 一类逻辑表达式是变量集合的最小化 另一类逻辑表达式是一个变量的绝对值 57 逻辑约束条件 除了描述线性约束条件的关系之外 ILOGCPLEX可以处理下面约束条件中的逻辑运算符 连接 分离 否 不同 这样 将线性约束条件和逻辑约束条件组合起来 就可以在应用中构造复杂的表达式 58 解线性规划 一个线性规划的解空间是一个欧几里得空间的子集 该欧几里得空间具有与线性规划的变量数相等的维数 这个解空间叫做可行域 可行域的边界有时称为多面体 59 解的类型 线性规划的一个可行解是满足所有约束条件的变量赋值线性规划的一个最优解是解空间中具有最优目标函数值的点因为在线性规划中强调最优性 术语 解 通常用来表示 最优解 60 在电话生产问题中解的可行域 61 最优解 在解的可行域中 线性规划搜索一个值或一组值 它们在不同约束条件限制的集合内最大化问题所定义的利润 在下图中 沿着一条直线 线性关系 可以找到给定某一结果的所有的解 这些产生一个值的结果集可以沿着一条直线找到 该直线平行于产生另一可选结果的结果集 即具有相同的斜率 这个过程不断地增大目标值 直到达到最大值 在电话生产问题中 只有一个最优解 62 一个线性规划的最优解总是在可行域的边界上 63 用OPL为电话生产问题建模 基本的OPL关键字Dvar 决策变量 QuantifierAggregator 聚集器 SetoffRangeTupleArrayOPL数据类型 见列表 OPL运算符 见列表 64 在OPL中的LP模型 一个OPL说明文件划分成3个独立部分 数据结构和变量声明arrays sets tuples float int 等目标函数由关键字maximize或minimize标识声明约束条件用关键字subjectto 或constraints 来标识关键字subjectto 和constraints 是等价的 可互换的 65 OPL数据类型和决策变量类型 OPL数据类型int 整型变量float 浮点型变量string 字符串变量OPL决策变量类型dvarint 整数决策变量dvarfloat 浮点型决策变量 66 OPL使用的4种数据结构 67 数据重复运算符 在约束条件和目标函数中的表达式和算术项 常常需要针对不同的数据重复计算多次 这些操作是相同的 不同的是它们的下标 OPL提供了两种方式来处理这种情况 Forall是通用quantifier它允许用户通过一个下标进行迭代运算为不同下标的每一个变量生成一个约束条件 68 数据重复运算符 聚集器为不同下标的每一个变量中的一个数学运算的应用产生一个总的结果 例如目标函数forall pinproducts maximizesum pinProducts profit p production p 说明了聚集运算符sum的用法 它用来对各个利润进行求和 69 OPL中可用的聚集器 Sum计算相关表达式的和Prod计算相关表达式的乘积Min计算最小值Max计算最大值一个quantifier和聚集器一起使用的例子 forall pinproducts sales p sum linlocations locSales l p 70 在线性规划中使用的运算符 71 在线性规划中使用的运算符 72 在线性规划中使用的运算符 73 约束标志 OPLIDE可以为每个约束条件分配一个标志 它有助于标识各个约束条件 可以使你在IDE问题浏览器中发现哪些约束是紧约束 或者发现在线性规划中的对偶变量值 当一个解可用时 可以利用ILOGs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低空经济产业集群创新投入研究报告
- 抖音直播合作协议书
- 精神科患者噎食应急预案演练脚本
- 传染病治疗技术实践操作培训考试2025年试卷及答案
- 2025年环境保护知识宣传考试题及答案
- 肺栓塞的应急预案演练脚本
- 2025年关于新安全生产法知识竞赛培训试题及答案
- 公司生产安全事故和自然灾害综合应急预案
- 研学旅行活动安全应急预案
- 医学影像学习题库答案
- 房屋代持协议书模板
- DL-T5191-2004风力发电场项目建设工程验收规程
- 平面设计职业发展规划
- 小小牙医活动方案流程
- 低压断路器课件
- 中职学考《哲学与人生》考试复习题库(含答案)
- 人教版一年级上册道德与法治教案全册
- 老年人服务礼仪与沟通技巧
- 《社会性动物》读书分享
- 《试验数据统计分析》课件
- 林区施工防火安全施工方案
评论
0/150
提交评论