运筹学优化软件汇总doc.docx
《运筹学优化软件汇总doc.docx》由会员分享,可在线阅读,更多相关《运筹学优化软件汇总doc.docx(12页珍藏版)》请在冰豆网上搜索。
运筹学优化软件汇总doc
运筹学优化软件
Xpress-MP功能介绍
Xpress-MP是一个数学建模和优化工具包,它用于求解线性,整数,二次,非线性,以及随机规划问题。
Xpress-MP的用户包括:
•需要在其产品中嵌入优化功能的OEM/ISV。
•向顾客提供优化解决方案的咨询人员。
•大型机构中需直接解决其自身的优化问题的商业分析师和其他最终用户。
Xpress-MP工具包可以用于所有常见的计算机平台,并具有不同性能的版本,以及解决各种不同规模的问题。
本产品支持多种用户/软件接口,包括可以使用C,C++,VB,Java,和.net语言进行调用的API库,以及独立的命令行界面。
请点击此处以查看详细信息。
在这里我们将介绍Xpress-MP工具包中的各种产品,这些产品使Xpress-MP能够应用于如此广泛的领域中。
求解引擎
Xpress-Optimizer中包含的优化算法使你能够求解线性规划问题(LP),混合整数规划问题(MIP),二次规划问题(QP),以及混合整数二次规划问题(MIQP)。
Xpress-SLP是一个非线性规划问题(NLP)以及混合整数非线性规划问题(MINLP)的求解器。
它使用了连续线性逼近方法,这一方法从过程工业的技术中发展而来,能够解决具有数千个变量的大型问题。
Xpress-SP是一个随机规划工具,用于求解具有不确定性的优化问题。
Xpress-SP可以用于建模和求解在供应链管理,能源,财务,运输,等等过程中出现的问题,它将不确定性嵌入到优化问题中,以避免未来的变数。
Xpress-Kalis是一个有约束规划软件,它构建于Artelys的Kalis求解器之上。
Xpress-Kalis专用于离散组合问题,这些问题频繁出现于诸如规划和计划制定之类的问题中。
建模和开发工具
Xpress-Mosel使你能够定义你的问题,然后使用一个或多个Xpress求解引擎进行求解,并对结果进行分析,这一切都通过一种专为此目的设计的全功能的编译型编程语言来实现。
Xpress-Mosel环境包括Mosel语言及其调试器;用于在此语言中直接访问其他软件组件和外部数据源的模块和I/O驱动;用于将模型嵌入到应用程序中的库;以及一个开放的接口,以便用户对Mosel语言进行扩展。
Xpress-BCL是一个面向对象的库,用于在应用程序中直接构建,求解,以及分析问题。
Xpress-IVE是一个完整的Windows下的Xpress-Mosel可视化开发环境。
它包括一个Mosel程序编辑器,编译器,以及执行环境。
Xpress-ApplicationDeveloper(XAD)通过使用一组图形用户界面开发API对Xpress-Mosel进行扩展,使Mosel成为一个能够完成从问题的数学表达到创建用户界面中这一完整的优化应用程序开发过程的建模和编程语言。
其他工具
用于Xpress-Mosel:
ODBCI/O驱动以及mmodbc模块使用户能够使用数据库以及电子表格作为外部数据源。
Xpress-Optimizer
Xpress-Optimizer中包含了复杂,鲁棒的算法,以对工业应用中最急需解决的问题进行迅速精确的求解。
这一已被证实的优化技术已在世界上大量的商业应用中使用,以对具有数百万个变量以及约束条件的问题提供快速可靠的解答。
Xpress-Optimizer因其解决数值求解困难或求解不稳定的问题的能力而声名远扬,这也是它在过程工业中能够在市场中遥遥领先的原因所在。
先进的算法
Xpress-Optimizer算法使你能够求解:
•LP——线性规划问题
•MIP——混合整数规划问题
•QP——二次规划问题
•MIQP——混合整数二次规划问题
如果你的问题是非线性的,则可以使用Xpress-SLP求解器,它使用了连续线性逼近技术,可以解决具有数千个变量的非线性和混合整数非线性问题。
灵活的运用
工具包中提供了命令行工具形式的Xpress-Optimizer,并有一组简单但强大的交互用户界面;也提供了可调用的库形式的Xpress-Optimizer,并具有C,C++,Java,Fortran,VB6,和.net编程接口。
它与工业标准的LP和MPS文件格式完全兼容,并且对日志记录,二进制存储文件,以及ASCII/二进制解决方案文件提供了广泛的支持。
作为Xpress-MP工具包中的一个集成组件,Xpress-Optimizer引擎也可以与Xpress-Mosel的高级模型开发环境或Xpress-BCL建模库的广泛的规划功能结合使用。
跨平台
Xpress-Optimizer可以应用于多种计算机体系结构和操作系统之上,并针对每个平台的特性进行了优化。
单纯形优化器
Xpress-Optimizer为原始和对偶单纯形算法提供了快速,可靠的实现,以对LP问题进行求解。
•集成了预求解算法,以降低问题规模和缩短求解时间。
•自动设置以达到最佳性能,同时也提供了一组丰富的用户设置参数,以对优化过程进行高级控制。
•快速从已有的高级基础上重新开始。
可以对问题进行修改,从而将求解所需时间降低到原先的很小一部分。
•不可行性检测和诊断,以发现问题的不可行性。
•有效的退化分辨率技术。
Barrier优化器
Xpress-OptimizerBarrier算法是对单纯形算法的一个替代,它使用内点法对线性规划和二次规划问题进行求解。
•集成了预求解算法,以降低问题规模和缩短求解时间。
•先进的Cholesky分解算法。
•快速地基本和对偶交叉到基本解。
•密集列处理。
•无交叉的解。
•在特定的平台上对于多处理器计算机提供了并行的Barrier算法。
MIP优化器
Xpress-Optimizer使用复杂的分支界定法来求解MIP和MIQP问题,这种方法因其快速找到高质量解的能力而闻名于世。
•MIP预求解算法,对问题进行预处理,以减小问题规模和缩短求解时间。
•先进的割平面法,以自动提高边界的质量,并减小全局搜索的范围。
○流覆盖
○广义上界(GUB)覆盖
○提升与投射
○Clique割
○流路径
○混合整数舍入
○Gomory分数割
•二进制,整数,以及半连续变量,和特殊顺序的集合
•广度优先,最优优先,深度优先搜索。
可自定义的节点以及变量选择策略。
用户回调函数使可以对节点和变量选择进行完全控制。
•多重LP算法,以初始LP松弛及节点求解。
•用户定义的分支优先级以及分支方向命令。
•直观推断。
•在特定的平台上对于多处理器计算机提供了并行的MIP算法。
Xpress-Mosel
Xpress-Mosel使你能够定义你的问题,然后使用适当的求解引擎进行求解,并对结果进行分析,这一切都将使用一种专为此目的设计的全功能的编译型编程语言来实现。
Mosel程序是编译型的程序,这使它能够快速运行,并对最终用户隐藏其中的知识产权。
这些程序可以交互地运行,或嵌入到应用程序中。
Mosel语言
Mosel语言易于学习和使用,这就使用户不需太多花费就可以从无到有开发优化模型,理解并审查别人开发的模型,并在远期对模型进行修改和维护。
可视化的开发环境Xpress-IVE使这一过程变得更为简单。
对任意范围,任意索引集,以及稀疏对象的完全支持意味着即使规模最大最复杂的问题也可以进行清晰简练的表达,而且不需要依赖于任何特定的数据实例。
你可以使用Mosel调试器来协助用Mosel语言进行模型开发。
这一调试器支持所有典型的调试功能,以对模型的执行进行跟踪和分析。
求解器模块和数据处理
Mosel是完全开放的,用户可对其进行扩展。
Mosel发行版本包括扩展库(也称为模块),借助于其中的一个扩展库,你只需要在Mosel程序中插入优化语句,就可以直接控制Xpress-Optimizer。
其他求解器模块提供了对Xpress-SLP的访问,以定义和求解非线性问题,也提供了对随机规划工具Xpress-SP,以及有约束规划软件Xpress-CP等的访问。
另外有一个模块提供了ODBC数据驱动,它提供了直接访问所有常见的数据库以及电子表格的接口。
除了使用ODBC接口之外,数据也可以直接从文本文件,内存,或I/O流中读出或向其中写入。
模型嵌入库
为对模型进行部署,通常需要将模型嵌入到公司的信息系统中。
借助Mosel库,你可以从编程语言环境(例如,C或Java)中执行和访问Mosel语言开发的模型。
这一灵活的接口为诸如在模型和大的应用程序之间交换数据和解的值这样的应用提供了方法。
除了Mosel自己的功能之外,某些模块也提供了从编程语言环境中对其内部函数的直接访问。
本地化的接口
通过Mosel的本地化接口,用户可以定义自己的模块或I/O驱动,它们将与Mosel发行版本中的软件组件同等看待。
这样用户就可以向Mosel语言加入新的功能(例如,实现针对特定问题的数据处理,或连接到外部的求解器或求解算法),并可以根据自己的需要使Mosel语言不断进化。
Xpress-BCL
Xpress-BCL是一个面相对象的库,它用于在应用程序中创建数学规划问题。
它使用按部就班的方法,有加入一个变量,加入一个约束等等这样的函数,作为开发者,你可以在你的程序中调用这些函数,以逐步构建出整个问题。
在定义了完整的问题之后,就可以使用Xpress-Optimizer对其进行求解。
还有一些BCL函数使你能够在你的应用程序中直接访问和分析求得的解。
BCL库具有C,C++,Java,和VB的接口。
Xpress-IVE
Xpress-IVE是一个完整的可视化开发环境,用于在Windows环境下进行Xpress-Mosel的开发。
它整合了Mosel程序编辑器,编译器,以及执行环境。
用户可以在一个实体树中浏览其模型程序中的对象,这样就可以查看所有优化对象的已有的解的值。
可以将Mosel源文件和数据文件组织成为工程。
在运行时可以可视化地观察和分析优化器的性能。
对于在一个独立的可视化环境中为应用程序开发Mosel程序,针对特定的问题分析和调节优化器,以及开发和运行一次性的优化问题应用程序,Xpress-IVE是一个理想的工具。
Xpress-IVE是使用Xpress-SP进行随机规划,以及使用Xpress-Kalis进行有约束规划的推荐开发环境。
Xpress-IVE屏幕截图
模型文件编辑
优化
集成了Xpress-Kalis和Xpress-SP
矩阵视图
模型创建向导
部署
用户图
Mosel模块支持
Mosel模块创建
Xpress-SLP
Xpress-SLP是一个非线性问题的求解器。
它使用了连续线性逼近方法,这一方法是从过程工业的技术中发展而来的,能够解决具有数千个变量的大型问题。
问题的定义可以使用Xpress-Mosel和Xpress-IVE来进行,或使用基于文件的格式,或直接从扩展API中进行。
也可以对混合整数非线性问题进行求解。
Xpress-IVE提供了一些可视化的辅助手段,它也能够使用电子表格或其他外部程序创建自定义的显示(例子中显示了一个从地球到月球的火箭的轨迹的演变,分别进行了10次,20次,和30次迭代,以及收敛后的解)。
Xpress-SLP具有接口,这样使用其他语言在系统之外编写的函数或在电子表格中的函数都可以在模型中当作普通的数学函数来使用。
在工具包中Xpress-SLP以一个C语言库的形式提供,具有附加的VB接口,也以一个Xpress-Mosel模块或独立的命令行工具的形式提供。
Xpress-SP
Xpress-SP是一个随机规划工具,用于求解具有不确定性的优化问题。
Xpress-SP可以用于建模和解决在供应链管理,能源,财务,运输等等过程中出现的问题,它将不确定性嵌入到优化问题中,以避免了未来的变数。
通过将不确定性结合到优化过程中,Xpress-SP使能够对资源进行高效的管理,实现消除保守的计划中的管理费用,减少对未实现的目标的惩罚,并得到更高的服务质量和更多的利润。
长久以来,随机规划问题因建模不确定性的复杂性,尤对于多阶段问题,而一直是一个难于解决的问题。
通过在Xpress-Mosel中无缝地集成随机问题建模措施,Xpress-SP简化了建模随机问题的过程。
若需了解详细信息,请点击此处。
Xpress-IVE现在包含一个可视化的环境,以对随机模型进行开发和调试。
请查看这里以了解详细信息。
Xpress-Kalis
Xpress-Kalis通过一个Mosel模块,Kalis,提供了对ArtelysKalis有约束求解器的访问。
Xpress-Kalis软件由ArtelysSA开发,并归其所有。
通过Xpress-Kalis,可以在Mosel环境中使用Kalis的有约束规划功能,从而使用户能够通过Mosel语言定义并求解有约束规划(CP)问题。
Mosel环境的所有数据处理功能,包括与内存之间的数据传输(使用MoselIO驱动),和ODBC访问数据库(通过mmodbc模块),都无需其他支持就可以在Kalis中直接使用。
特点
除了标准的线性约束之外,Xpress-Kalis对有限域变量定义了一组所谓的“全局约束关系”,包括“全不同(all-different)”,“元素(element)”,“出现(occurrence)”(cardinality),“相等(equivalence)”,和“蕴涵(implication)”。
也可以将若干个约束综合到一个逻辑表达式中,例如描述排他逻辑。
约束处理:
约束可以自动生成,或由用户显式声明,这样就可以编写具有不同交互程度的模型。
Kalis的独特能力在于其对枚举策略的灵活定义:
用户可以在若干个不同的分支方案(定义了搜索树的形状)中选择,并通过自己的直观推断来定义内建变量的组合和值选取策略。
Xpress-IVE显示
可视化的开发环境Xpress-IVE支持通过若干个针对不同软件的显示方式对CP模型进行开发和分析,包括CP搜索树和CP统计面板这样的图形表示。
在不同的显示中,IVE的所有标准特性(例如,可浏览的实体显示,语法高亮,调试器等)都同样可用。
使用用户图建模
搜索树显示
CP统计数据
联合求解器
Mosel语言可以用作一个平台,以联合不同的求解器,尤其是将Xpress-Kalis与Xpress-Optimizer结合起来,以进行联合CP-LP/MIP问题求解。
Xpress-ApplicationDeveloper
XpressApplicationDeveloper(XAD)对Xpress-Mosel进行扩展,使Mosel成为一个能够完成从问题的数学表达到创建用户界面中这一完整的优化应用程序开发过程的建模和编程语言。
什么是XAD?
XAD是一个使用Mosel进行图形用户界面开发的API。
它由DashOptimization开发,是对Mosel建模和编程语言的一个扩展。
它怎样工作?
XAD使用一组简洁但富有表现力的Mosel程序来构建用户界面,例如XADcreatebutton,等等。
用户界面事件,例如鼠标移动,按钮按下等,都可以很容易地通过事件回调函数引入到Mosel语言中。
使用Mosel语言可以极为容易地将建模,优化,和用户界面函数结合起来。
使用XAD的优点
在开发优化应用程序时不再需要切换编程语言/环境。
•直观的开发用户界面的API。
•强大的功能。
•与Mosel的密切结合。
•快速的应用程序开发。
应用
Xpress-ApplicationDeveloper可以用于原型开发,也可以用于在例如供应链优化,财务,交通路径,资源分配,战略规划等领域创建可部署的应用软件。
XAD应用程序界面截图