项目作者: xqmoo8

项目描述 :
关于MINLP问题的一些资料(Resources of MINLP problem)
高级语言:
项目地址: git://github.com/xqmoo8/MINLP.git
创建时间: 2018-06-02T17:23:04Z
项目社区:https://github.com/xqmoo8/MINLP

开源协议:

下载


MINLP Resource

1. 简介

MINLP (Mixed integer nonlinear programming) 问题被Jon Lee誉为所有确定性规划之母。
该类问题在工程和科学问题中广泛存在。举例来说,电气工程中的机组运行优化,输电拓展,通信工程中的信息攻击的最优响应,无线带宽。 有相关文章已经说明证明MINLP问题不能被任何单个算法求解,即使是有很小规模整数变量的问题。
这一类问题求解复杂,但由于有着很广泛的应用前景和研究价值,所以相关的研究也在不断推进。

目前来说,求解此类问题主要有两大类算法。一类是确定性优化算法,另一类是problem independent的进化算法。由于进化算法不是专门设计解决MINLP问题,所以这里不错详细介绍。
解决MINLP问题的确定性优化算法主要包括single-tree类和multi-tree类。single-tree类有非线性分支定界法(nonlinear branch and bound)和非线性分支裁剪法(
Nonlinear Branch and cut)。而multi-tree类主要是基于解耦思想的外部近似法(outer approximation method)和benders解耦法 (Benders decomposition method)。

关于数学优化算法和进化算法的区别和优缺点可以参考这篇文章:

数据 + 进化算法 = 数据驱动的进化优化?进化算法 PK 数学优化

2. 前沿进展(Frontier Progress)

Mixed-Integer Nonlinear Optimization

Review of Nonlinear Mixed-Integer and Disjunctive Programming Techniques

Mixed-integer nonlinear programming techniques for the synthesis of engineering systems

4. PPT介绍(Slide Resources)

Mixed Integer Nonlinear Programming algorithms IBM公司文件,自动下载链接

当然也要介绍一下这个领域泰斗级的人物,也就是outer approximation algorithm的提出者Ignacio Grossmann教授

MINLP由于有着整数和连续变量,甚至包括在整数变量确定时存在非线性特性,因此,在使用确定性规划求解时,必然涉及到运筹与优化中基础的优化问题,如NLP(Non-linear programming)问题,ILP(Integer linear programming)问题。这两方面的问题都有成熟的求解算法。如果想补一补基础可以学习Stephen P. Boydconvex optimization,有很详细的slides,电子书,以及视频教程。

5. 求解器及建模工具(Solvers & Modeling Tools)

5.1 求解器

名称 求解类型 特点 支持语言 开源 国家
CPLEX C
Gurobi LP basic,MIP basic C, C++, Java,Python, MATLAB, R等
MOSEK C, C++, Java, .NET, Python, MATLAB
Optimization Toolbox Matlab
COIN-OR C,C++,Python等

5.2 建模工具

名称 支持求解器 特点 支持语言 开源 国家
YAMLIP Matlab
Optimization Toolbox Matlab
Cvx Matlab

支持Matlab平台的有:
Matlab自带的Optimization Toolbox,CvxYAMLIPGurobi

使用C,C++,Python语言的优化工具包COIN-OR,可解决问题的类型很广泛,推荐,也是本人以后要长期研究学习的一个工具包。

当然还有大名鼎鼎的CPLEX