What’s Best! 除了支持传统的线性、非线性、整数等等优化计算方法以外,还支持以下国际公认最先进的智能优化算法,包含有:
弗洛伊德算法 Floyd-Warshall Algorithm
分治算法 Divide-and-conquer Algorithm
动态算法 Dynamic Programming Algorithm
搜索算法 Search Algorithm
贪婪算法 Greedy Algorithm
组合算法 Combinatorial Algorithm
原始单纯算法 Primal Simplex Algorithm
对偶单纯形算法 Dual simplex Algorithm
障碍算法 Barrier Algorithm
启发式算法 Heuristic Algorithm |
被淘汰的网络算法:
“网络算法”通常指解决网络线性程序的专门算法。
What’s Best! 在几年前有一个专门的网络算法,但是,普通的LP解决方案(Simplex和Barrier)几乎和专业的网络求解器一样快,所以我们取代了纯网络解决方案算法。 |
功能简介 (支持以下基本功能) |
线性规划
Linear |
Solver Decides: What’s Best! 自动选择最优算法,筛选最优算法 |
Primal Simplex:原始单纯形法 |
Dual Simplex: 对偶单纯形法 |
Barrier: 障碍法(即内点法) |
大体上,求解行数少于列数的稀疏模型时用原始单纯形算法较好,求解列数少于行数的稀疏模型时用对偶单纯形算法较好,而求解密集形和大规模规划时用障碍法较好。 |
连续性线性规划
Sequential LP |
又称逐次线性规划,选择该模块,What’s Best! 会在每次迭代时用SLP方法寻找搜索方向,运用线性逼近的方法加快迭代时间(默认值) |
连续二次方程规划 |
连续二次方程规划 Sequential Programing Quadratic |
连续规划
continuous Programing |
连续非线性规划 continuous Nonlinear programing |
连续圆锥规划 continuous Cone Programing |
连续随机规划 continuous Stochastic Programing |
矩阵规划
Martix Programing |
正定矩阵 positive definite matrix |
半正定矩阵 positive semi-definite matrix |
检查模型的数据平衡性
Scale Model |
选择该选项,What’s Best! 会检查模型中的数据是否平衡,并尝试改变尺度使模型平衡;否则不尝试 |
障碍解算规划
Barrier |
内生法优化的选项,主要用于线性优化中,解决大规模运算的问题。比常用的单纯形算法的运算速度要快得多。同时也可用于求解二次规划约束的优化。 |
分支定界
Branch-and-Bound |
分支定界是分治算法的另一种表现形式,分支定界功能绑定了WHAT’S BEST! 产品中所有基本算法。 |
非线性
Nonlinear |
将非线性模型解到局部最优解,比常用的顺序逼近线性规划算法的速度要快得多。 |
包含支持:非线性 Nonlinear Programing |
包含支持:凸面求解 Convex design Programing |
包含支持:凹面求解 Non-convex design Programing |
包含支持: 凸非线性规划Convex Nonlinear Programing |
包含支持: 非凸(凹)非线性规划Non-convex Nonlinear Programing |
广义简化梯度规划
Generalized Reduced-type Gradient |
广义简化梯度在稳定性和效能方面得到广大使用者的认可,推广于求解带非线性等式约束的情形, 数值实例表明,GRG法是目前求解约束非线性最优化问题的最有效的方法之一。 |
生成初始解
Crash Intial Solution |
选择该选项,What’s Best! 将用启发式方法生成一个“好”的出发点(初始解),否则不生成(默认值)。 |
二次规划模型
Quadratic Programming |
WHAT’S BEST! 的二次规划是非线性规划中的一类特殊数学规划问题,在很多方面都有应用,如投资组合、约束最小二乘问题的求解、序列二次规划在非线性优化问题中应用等。在过去的几十年里,二次规划已经成为运筹学、经济数学、管理科学、系统分析和组合优化科学的基本方法。 |
包含支持:二次规划模型 Quadratic Programming |
包含支持:凸二次规划 Quadratic Convex design Programing |
包含支持:非凸(凹面)二次规划(QNCDP) Quadratic non-convex design Programing |
识别二次规划
Quadratic Recognition |
选择该选项,What’s Best! 将判别模型是否为二次规划,若是则采用二次规划法;否则不判别(默认值) |
有选择的检查约束规划
Selective Constraint Eval |
选择该选项,What’s Best! 在每次迭代时只检查必须检查的约束(如有有些约束函数在某些栏目没有定义,这样做会出现错误);否则,检查所有约束(默认值) |
最陡边策略
Steepest Edge |
选择该选项,What’s Best! 在每次迭代时将所有可能的变量进行尝试、找到使目标值下降最多的变量进行迭代,此时选择变量所花费的时间较多,但每次迭代时目标函数值得改变量较大;否则不尝试,默认值为不使用最陡边策略。 |
整数预处理求解规划
Integer Pre-Solver |
该选项对整数线性规划模型(ILP)有效,对其他模型无效。整数预处理程序用于完成模型的再生成工作(重新生成的模型与原始模型等阶但结构发生了变化,这种方法最适合用分支定界整数规划算法求解),使得传送到分支定界算法的最终表达式能够以最快的速度求解。 |
整数规划
Integer Solver |
整数规划问题非常复杂,求解大型整数规划时,What’s Best! 通常会选择运行几分钟得到近似于得到最优解的可行解;What’s Best! 的整数优化速度远超过其他同类产品。 |
整数规划模型 (IP) Integer Programing |
整数线性规划模型 Integer Linear Programing |
整数非线性规划模型 Integer Nonlinear Programing |
单纯整数规划
Pure Integer Programing |
单纯整数规划Pure Integer Programing |
单纯整数线性规划Pure Integer Linear Programing |
单纯整数非线性规划 Pure Integer NLP |
单纯整数二次方程规划Pure Integer Quadratic Programing |
单纯整数圆锥规划Pure Integer Programing Conic |
单纯整数随机规划 Pure Integer Programing Stochastic |
混合整数规划
Mix Integer Programing |
混合整数规划Mix Integer Programing |
混合整数线性规划Mix Integer Linear Programing |
混合整数非线性规划Mix Integer Nonlinear Linear Programing |
混合整数二次方程规划 Mix Integer Quadratic Programing |
混合整数圆锥规划Mix Integer Programing Conic |
混合整数随机规划(MISP) Mix Integer Programing Stochastic |
全局最优解规划
Global
|
提供全局最优解的选项,同时也主要作用于非线性优化的求解。如不选择此项,一般的算法只能获得局部最优解。这个选项可以通过多起始点的方式,通过划分凸规划,调用分支定界管理程序,从多个局部最优解中确定全局最优解,保证全局最优化解算器。 |
多初始点求解规划
Multistart Solver |
这个选项,What’s Best! 会自动尝试多个初始点求解最优解,和 Global Solver 相比,Local Solver 可以一定程度减少模型的求解时间。而 Local Solver 中的 Multistart 特性,可以让 What’s Best! 搜索更多的局部解;当然,它会增加一些求解时间。 |
随机规划求解
Stochastic Programming |
WHAT’S BEST! 的随机规划选项,通过多级随机线性、非线性和整数随机规划,解决了不确定元素的优化模型。 |
圆锥规划
Conic Programing |
包含支持:Conic programming |
包含支持:(SOC)二阶锥(二次锥)Solves Second Order Cone programming |
解决二阶锥(SOC)编程模型问题 |
包含支持:半定锥 Semidefinite Cone programing |
半定规划
Semi-definite Programming |
包含支持:半定规划 Semi-definite Programming |
包含支持:半定松弛 Semi-Definite Relaxation |
不确定型优化规划
Uncertain design optimization programing |
不确定型二次优化规划Uncertain design optimization Quadratic programing |
不确定型线性规划 Uncertain design optimization LP |
不确定型非线性规划 Uncertain design optimization NLP |
不确定型圆锥优化规划Uncertain design optimization Conic |
不确定型随机优化规划Uncertain design optimization Stochastic |
双层规划
Bilevel Programming |
hat’s Best! 的双层规划功能是一种具有二层递阶结构的系统优化问题,上层问题和下层问题都有各自的决策变量、约束条件和目标函数。 上层决策者只是通过自己的决策去指导下层决策者,并不直接干涉下层的决策;而下层决策者只需要把上层的决策作为参数,他可以在自己的可能范围内自由决策。这种决策机制使得上层决策者在选择策略以优化自己的目标达成时,必须考虑到下层决策者可能采取的策略对自己的不利影响。 |
动态规划
Dynamic Programming |
What’s Best! 的动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。在经济管理、生产调度、工程技术和最优控制等方面得到了广泛的应用。例如最短路线、库存管理、资源分配、设备更新、排序、装载等问题,用动态规划方法比用其它方法求解更为方便。
虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。 |
多层递阶规划
Multilevel Hierarchical programming |
So-called Pre-emptive priority programs are acceptable.又称为多层择优程序 |
多目标规划
multi-objective programming |
在经济、管理、军事、科学和工程设计等领域,衡量一个方案的好坏往往难以用一个指标来判断,而需要用多个目标来比较,而这些目标有时不甚协调,甚至是矛盾的。What’s Best! 的多目标规划定性与定量相结合的多目标决策与分析方法,对于目标结构复杂且缺乏必要的数据的情况更为实用。 |
对偶计算
Dual Computations |
求解时控制对偶计算的级别,一般有几种可能的设置,例如 |
* None: 不计算任何对偶信息 |
* Prices: 计算对偶价格(默认设置) |
* Prices and Ranges: 计算对偶价格并分析敏感性 |
* Prices,Opt Only: 只计算最优行的对偶价格 |
完全不相似约束
AllDiff Constraints |
An AllDiff constraint, e.g., AllDiff(x1, x2, x3) constraints the variables to take on different values. E.g., (x1, x2, x3) = (1, 2, 1) is not a feasible solution, but (4, 3, 5) is. |
K最佳解决方案
K Best solutions |
默认情况下(k - best = 1),在一个具有二进制整数变量的模型中,solver返回一个全局最优解决方案。
当用户想要探索备选的optima(不同的解决方案集返回相同的目标值)和接近最优方案的时候,使用二进制整数变量时,k - best特性是有用的。用户可以指定他/她想要返回的解决方案的数量。
例如,如果您正在解决一个最小化成本函数并为k - best解决方案|指定5的模型,那么solver将会找到最小化成本的5个最佳答案。 |