Xpress MP 软件 功能介绍 林森科技 崔承刚

40
Xpress MP 软软 软软软软 软软软软 软软软 2007.6

description

Xpress MP 软件 功能介绍 林森科技 崔承刚. 2007.6. 培训内容. Xpress-MP 软件介绍 Xpress-Mosel 入门 Xpress-BCL 库入门 Xpress-Optimizer 优化器入门 Xpress-Kalis 入门. 概述. 应用范围 求解器 建模和开发工具 编程接口 适用平台. Xpress-MP 应用范围. 设计优化解决方案 嵌入式开发( ERP , MES ,供应链) 大型机构解决自身优化问题. 求解器 (1). Xpress-Optimizer - PowerPoint PPT Presentation

Transcript of Xpress MP 软件 功能介绍 林森科技 崔承刚

Page 1: Xpress MP 软件 功能介绍 林森科技 崔承刚

XpressMP 软件功能介绍 林森科技崔承刚2007.6

Page 2: Xpress MP 软件 功能介绍 林森科技 崔承刚

培训内容• Xpress-MP 软件介绍• Xpress-Mosel 入门• Xpress-BCL 库入门• Xpress-Optimizer 优化器入门• Xpress-Kalis 入门

Page 3: Xpress MP 软件 功能介绍 林森科技 崔承刚

概述• 应用范围• 求解器• 建模和开发工具• 编程接口 • 适用平台

Page 4: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-MP 应用范围• 设计优化解决方案 • 嵌入式开发( ERP , MES ,供应链)• 大型机构解决自身优化问题

Page 5: Xpress MP 软件 功能介绍 林森科技 崔承刚

求解器 (1)• Xpress-Optimizer

能够求解线性规划问题( LP ),混合整数规划问题( MIP ),二次规划问题( QP ),以及混合整数二次规划问题( MIQP )。

• Xpress-SLP非线性规划问题( NLP )以及混合整数非线性规划问题( MINLP )的求解器。它使用了连续线性逼近方法,这一方法从过程工业的技术中发展而来,能够解决具有数千个变量的大型问题。

Page 6: Xpress MP 软件 功能介绍 林森科技 崔承刚

求解器 (2)• Xpress-SP

随机规划工具,用于求解具有不确定性的优化问题。 Xpress-SP 可以用于建模和求解在供应链管理,能源,财务,运输,等等过程中出现的问题,它将不确定性嵌入到优化问题中,以避免未来的变数。

• Xpress-Kalis 有约束编程( constraint programming )软件,它

构建于 Artelys 的 Kalis 求解器之上。 Xpress-Kalis 专用于离散组合问题,这些问题频繁出现于诸如规划和计划制定之类的问题中。

Page 7: Xpress MP 软件 功能介绍 林森科技 崔承刚

建模和开发工具( 1 )• Xpress-Mosel

– 能够对问题进行建模,使用一个或多个 Xpress 求解器进行求解,并对结果进行分析,是一种建模专用的全功能的编译型编程环境– Xpress-Mosel 环境包括 Mosel 语言及其调试器;用于直接访问其他软件组件和外部数据源的模块和

I/O 驱动;将模型嵌入到应用程序中的链接库;以及一个开放的接口• Xpress-BCL

– 面向对象的链接库,用于在应用程序中直接构建,求解,以及分析问题。

Page 8: Xpress MP 软件 功能介绍 林森科技 崔承刚

建模和开发工具( 2 )• Xpress-IVE

– 完整的 Windows 下的 Xpress-Mosel 可视化开发环境。它包括一个 Mosel 程序编辑器,编译器,以及执行环境。 • Xpress-Application Developer (XAD)

– 通过使用一组图形用户界面开发 API 对 Xpress-Mosel 进行扩展,使 Mosel 成为一个能够完成从问题的数学表达到创建用户界面中这一完整的优化应用程序开发过程的建模和编程语言。

• ODBC I/O 驱动以及 mmodbc 模块 – 使用数据库以及电子表格作为外部数据源。

Page 9: Xpress MP 软件 功能介绍 林森科技 崔承刚

编程接口• 本地化功能

– 用户可以定义自己的模块或 I/O 驱动 ,对 Mosel 进行扩展,例如自己设计求解器等。• 数据处理

– 提供开放式数据库连接( ODBC ),能够直接访问所有常见的数据库以及电子表格的接口 ,另外数据也可以直接从文本文件,内存,或 I/O 流中读出或向其中写入 • Mosel 语言开发模型访问

– 可以从编程语言环境(例如, C 或 Java )中执行和访问Mosel 语言开发的模型。

• Xpress-BCL 库调用– 具有 C , C++ , Java ,和 VB 的接口

Page 10: Xpress MP 软件 功能介绍 林森科技 崔承刚

适用平台• Windows

• Linux

• Unix

Page 11: Xpress MP 软件 功能介绍 林森科技 崔承刚

进一步的信息 :

www.dashoptimization.com

Page 12: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-Optimizer 简介Xpress-Optimizer 中包含了复杂,鲁棒的算法,以对工业应用中最急需解决的问题进行迅速精确的求解。这一已被证实的优化技术已在世界上大量的商业应用中使用,以对具有数百万个变量以及约束条件的问题提供快速可靠的解答。

Page 13: Xpress MP 软件 功能介绍 林森科技 崔承刚

求解问题• LP—— 线性规划问题• MIP—— 混合整数规划问题• QP—— 二次规划问题• MIQP—— 混合整数二次规划问题

Page 14: Xpress MP 软件 功能介绍 林森科技 崔承刚

使用方式• 命令行• 交互式图形用户界面• 链接库调用• 编程接口 C , C++ , Java , Fortran ,

VB6 ,和 .net • 工业标准的 LP 和 MPS 文件格式完全兼容

Page 15: Xpress MP 软件 功能介绍 林森科技 崔承刚

单纯形求解器• 采用原 - 对偶单纯形算法• 集成了数据预处理方法,以降低问题规模和缩短求解时间。• 自动设置以达到最佳性能,同时也提供了一组丰富的用户设置参数,以对优化过程进行高级控制。• 快速从已有的基解上重新开始。可以对问题进行修改,从而将求解所需时间降低到原先的很小一部分。• 不可行性检测和诊断,以发现问题的不可行性。• 有效的退化分辨率技术。

Page 16: Xpress MP 软件 功能介绍 林森科技 崔承刚

Barrier (障碍函数法)求解器• 采用内点算法求解线性和二次规划问题• 集成了数据预处理方法,以降低问题规模和缩短求解时间。• 先进的 Cholesky 分解算法。• 快速地原始和对偶的交替求解得到到基解。•紧密列处理。• 在特定的平台上对于多处理器计算机提供了并行的 Barrier 算法。

Page 17: Xpress MP 软件 功能介绍 林森科技 崔承刚

混合整数规划求解器• MIP 预求解算法,对问题进行预处理,以减小问题规模和缩短求解时间。• 先进的割平面法,以自动提高边界的质量,并减小全局搜索的范围。• 二进制,整数,以及半连续变量,和特殊顺序的集合• 广度优先,最优优先,深度优先搜索。可自定义的节点以及变量选择策略。用户回调函数使可以对节点和变量选择进行完全控制。• 多重 LP 算法,以初始 LP松弛及节点求解。• 用户定义的分支优先级以及分支方向命令。• 直观推断。• 在特定的平台上对于多处理器计算机提供了并行的 MIP算法

Page 18: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-MoselXpress-Mosel 使你能够定义你的问题,然后使用适当的求解引擎进行求解,并对结果进行分析,这一切都将使用一种专为此目的设计的全功能的编译型编程语言来实现。 Mosel程序是编译型的程序,这使它能够快速运行,并对最终用户隐藏其中的知识产权。这些程序可以交互地运行,或嵌入到应用程序中。

Page 19: Xpress MP 软件 功能介绍 林森科技 崔承刚

Mosel 语言• Mosel 语言易于学习和使用 • 对任意范围,任意索引集,以及稀疏对象的完全支持 • Mosel 调试器来协助用 Mosel 语言进行模型开发。这一调试器支持所有典型的调试功能,以对模型的执行进行跟踪和分析。

Page 20: Xpress MP 软件 功能介绍 林森科技 崔承刚

求解器模块和数据处理• Mosel 是完全开放的,用户可对其进

行扩展。 • 提供了 ODBC 数据驱动 • 从文本文件,内存,或 I/O 流中读出

或向其中写入

Page 21: Xpress MP 软件 功能介绍 林森科技 崔承刚

本地化的接口• 用户可以定义自己的模块或 I/O 驱动,它们将与Mosel 发行版本中的软件组件同等看待。• 向 Mosel 语言加入新的功能(例如,实现针对特定问题的数据处理,或连接到外部的求解器或求解算法),并可以根据自己的需要使 Mosel 语言不断进化。

Page 22: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-BCL• 面向对象的库• 用于在应用程序中创建数学规划问题。• 它使用按部就班的方法,有加入一个变量,加入一个约束等等这样的函数,作为开发者,你可以在你的程序中调用这些函数,以逐步构建出整个问题。 • BCL 库具有 C , C++ , Java ,和 VB 的接口

Page 23: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-IVE• 完整的可视化开发环境 • 用于在 Windows 环境下进行 Xpress-Mosel的开发 • 整合了 Mosel 程序编辑器,编译器,以及执行环境 • 用户可以在一个实体树中浏览其模型程序中的对象,这样就可以查看所有优化对象的已有的解的值。 • 在运行时可以可视化地观察和分析优化器的性能。

Page 24: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-SLP•非线性问题的求解器 • 采用序列线性化方法• 能够解决具有数千个变量的大型问题 • 可以使用 Xpress-Mosel 和 Xpress-IVE来进行,或使用基于文件的格式,或直接从扩展 API 中进行。也可以对混合整数非线性问题进行求解。

Page 25: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-Kalis• 约束规划求解器• 通过 Mosel 语言定义并求解有约束规划

( CP )问题 • Mosel 环境的所有数据处理功能

Page 26: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-Kalis 特点• 定义全局约束

– 例如“全不同( all-different )”,“元素( element )”,“同时出现( occurrence )”( cardinality ),“相等( equivalence )”,和“蕴涵( implication )”

• 特殊的约束处理– 约束可以自动生成或者用户显式声明

• 枚举策略的灵活定义 – 用户可以在若干个不同的分支方案(定义了搜索树的形状)中选择,并通过自己的直观推断来定义内建变量的组合和值选取策略。

Page 27: Xpress MP 软件 功能介绍 林森科技 崔承刚

示例:单机器调度

Page 28: Xpress MP 软件 功能介绍 林森科技 崔承刚

分离表达• 分离表达式

• 约束表达形式

Page 29: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-SP• Xpress-SP 是一个随机规划工具,用于求解具有不确定性的优化问题。 Xpress-SP 可以用于建模和解决在供应链管理,能源,财务,运输等等过程中出现的问题,它将不确定性嵌入到优化问题中,以避免了未来的变数。通过将不确定性结合到优化过程中, Xpress-SP 使能够对资源进行高效的管理,实现消除保守的计划中的管理费用,减少对未实现的目标的惩罚,并得到更高的服务质量和更多的利润。

Page 30: Xpress MP 软件 功能介绍 林森科技 崔承刚

示例:农场计划•我们对一个农场问题进行建模,农场主在冬季时需要在有限的土地决定种植哪些产品:小麦,玉米,甜菜。这些收益都要等到夏季才能实现而且决定于今年季节的好坏。 农场主需要进行播种,因此必须决定每种产品的种植量,同时还存在甜菜价格还存在定额限制。

Page 31: Xpress MP 软件 功能介绍 林森科技 崔承刚

模型• 集合阶段(冬季,夏季)产品(小麦,玉米,甜菜)• 约束条件播种的最小量限制甜菜的定额限制•目标函数:最大化收益

Page 32: Xpress MP 软件 功能介绍 林森科技 崔承刚

• 变量xi: 产品 i需要的土地面积 wwheat, wcorn:出售的小麦和玉米的量 ywheat, ycorn: 购买的小麦和玉米的量 wfavor, wunfavor: 甜菜的定额价格和非定额价格

Page 33: Xpress MP 软件 功能介绍 林森科技 崔承刚

供应链管理•我们考虑一个供应链问题。某公司生产裤子和衬衫并且需要通过船运送的不同的目的地:纽约和洛杉矶。公司需要提前做出决策,因为目的地的产品需求产生时,公司需要提前三个周期做出决策。

Page 34: Xpress MP 软件 功能介绍 林森科技 崔承刚

产品和目的地图

Page 35: Xpress MP 软件 功能介绍 林森科技 崔承刚

模型描述• 决策 在需求产生前:需要生产多少产品 在需求产生后:每个目的地需要提供多少产品• 约束条件 可用的人力资源 需求平衡约束• 目标函数:最大化收益(销售收入 -销售成本 -供应成本 - 采购成本)

Page 36: Xpress MP 软件 功能介绍 林森科技 崔承刚

需求分布

Page 37: Xpress MP 软件 功能介绍 林森科技 崔承刚

结果:收益分布

Page 38: Xpress MP 软件 功能介绍 林森科技 崔承刚

Xpress-Application Developer

• XAD 是一个使用 Mosel 进行图形用户界面开发的 API 。它由 Dash Optimization 开发,是对Mosel 建模和编程语言的一个扩展。

• XAD 使用一组简洁但富有表现力的 Mosel 程序来构建用户界面,例如 XADcreatebutton ,等等。用户界面事件,例如鼠标移动,按钮按下等,都可以很容易地通过事件回调函数引入到 Mosel 语言中。使用 Mosel 语言可以极为容易地将建模,优化,和用户界面函数结合起来。

Page 39: Xpress MP 软件 功能介绍 林森科技 崔承刚

使用 XAD 的优点• 直观的开发用户界面的 API 。•强大的功能 • 与 Mosel 的密切结合 • 快速的应用程序开发

Page 40: Xpress MP 软件 功能介绍 林森科技 崔承刚

谢谢!