没有合适的资源?快使用搜索试试~ 我知道了~
BONMIN Users’ Manual.pdf
需积分: 14 9 下载量 9 浏览量
2020-04-07
10:00:07
上传
评论
收藏 298KB PDF 举报
温馨提示
试读
36页
Bonmin(基本开源非线性混合整数编程)是一种开放源代码,用于解决一般的MINLP(混合整数非线性编程)问题。 它基于Cbc和Ipopt。 它是一个COIN-OR项目,并根据EPL(Eclipse Public License)获得许可。 EPL是OSI(开放源代码倡议)批准的许可证,因此Bonmin是OSI认证的开放源软件。
资源推荐
资源详情
资源评论
BONMIN Users’ Manual
Pierre Bonami and Jon Lee
Version 1.5
Updated July 2011
1 Introduction
BONMIN (Basic Open-source Nonlinear Mixed INteger programming) is an open-
source code for solving general MINLP (Mixed Integer NonLinear Program-
ming) problems. It is distributed on COIN-OR(www.coin-or.org) under the
CPL (Common Public License). The CPL is a license approved by the OSI
1
,
(Open Source Initiative), thus BONMIN is OSI Certified Open Source Software.
There are several algorithmic choices that can be selected with BONMIN. B-BB
is a NLP-based branch-and-bound algorithm, B-OA is an outer-approximation
decomposition algorithm, B-iFP is an iterated feasibility pump algorithm, B-QG
is an implementation of Quesada and Grossmann’s branch-and-cut algorithm,
B-Hyb is a hybrid outer-approximation based branch-and-cut algorithm and
B-Ecp is a variant of B-QG based on adding additional ECP cuts.
Some of the algorithmic choices require the ability to solve MILP (Mixed
Integer Linear Programming) problems and NLP (NonLinear Programming)
problems. The default solvers for these are, respectively, the COIN-OR codes
Cbc and Ipopt. In turn, Cbc uses further COIN-OR modules: Clp (for LP
(Linear Programming) problems), Cgl (for generating MILP cutting planes), as
well as various other utilities. It is also pos sible to step outside the open-source
realm and use Cplex as the MILP solver and FilterSQP as the NLP solver.
Additional documentation can be found on the Bonmin homepage at
http://www.coin-or.org/Bonmin
and wiki at
https://projects.coin-or.org/Bonmin
Types of problems solved
BONMIN solves MINLPs of the form
1
http://www.opensource.org
1
min f(x)
s.t.
g
L
≤ g(x) ≤ g
U
,
x
L
≤ x ≤ x
U
,
x ∈ R
n
, x
i
∈ Z ∀i ∈ I,
where the functions f : {x ∈ R
n
: x
L
≤ x ≤ x
U
} → R and g : {x ∈ R
n
:
x
L
≤ x ≤ x
U
} → R
m
are assumed to be twice continuously differentiable,
and I ⊆ {1, . . . , n}. We emphasize that BONMIN treats problems that are cast in
minimization form.
The different methods that BONMIN implements are exact algorithms when
the functions f and g are convex but are only heuristics when this is not the
case (i.e., BONMIN is not a global optimizer).
Algorithms
BONMIN implements s ix different algorithms for solving MINLPs:
• B-BB: a simple branch-and-bound algorithm based on solving a continu-
ous nonlinear program at each node of the search tree and branching on
variables [7] ; we also allow the possibility of SOS (Type 1) branching
• B-OA: an outer-approximation based decomposition algorithm [6, 8]
• B-QG: an outer-approximation based branch-and-cut algorithm [11]
• B-Hyb: a hybrid outer-approximation/nonlinear programming based branch-
and-cut algorithm [2]
• B-Ecp: another outer-approximation based branch-and-cut inspired by the
settings described in [1]
• B-iFP: an iterated feasibility pump algorithm [3] .
In this manual, we will not go into a further description of these algorithms.
Mathematical details of these algorithms and some details of their implementa-
tions can be found in [2] and [5] .
Whether or not you are interested in the details of the algorithms, you cer-
tainly want to know which one of these six algorithms you should choose to s olve
your particular problem. For convex MINLPs, experiments we have made on a
reasonably large test set of problems point in favor of using B-Hyb (it solved the
most of the problems in our test set in 3 hours of computing time). Nevertheless,
there are cases where B-OA is much faster than B-Hyb and others where B-BB is
interesting. B-QG and B-ECP correspond mainly to a specific parameter setting
2
of B-Hyb but they can be faster in some case. B-iFP is more tailored at finding
quickly good solutions to very hard convex MINLP. For nonconvex MINLPs, we
strongly recomme nd using B-BB (the outer-approximation algorithms have not
been tailored to treat nonconve x problems at this point). Although even B-BB
is only a heuristic for such problems, we have added several options to try and
improve the quality of the solutions it provides (see Section 5.3). Because it is
appliable to more classes problem B-BB is the default algorithm in BONMIN.
Required third party code
In order to run BONMIN, you have to download other external libraries (and pay
attention to their licenses!):
• Lapack (Linear Algebra PACKage)
• Blas (Basic Linear Algebra Subroutines)
• a sparse linear solver that is supported by Ipopt, e.g., MA27 from the HSL
(Harwell Subroutine Library), MUMPS, or Pardiso.
Note that Lapack and the Blas are free for com me rcial use from the Netlib
Repository
2
, but they are not OSI Certified Open Source Software. The linear
solver MA27 is freely available for noncommercial use.
The above software is sufficient to run BONMIN as a stand-alone C++ code,
but it does not provide a modeling language. For functionality from a modeling
language, BONMIN can be invoked from Ampl
3
(no extra installation is required
provided that you have a licensed copy of Ampl installed), though you need the
ASL (Ampl Solver Library) which is obtainable from the Netlib.
BONMIN can use FilterSQP [?] as an alternative to Ipopt for solving NLPs.
Also, in the outer approximation methods B-OA and B-iFP, some MILP
problems are solved. B y default BONMIN uses Cbc to solve them, but it can also
be set up to use the commercial solver
Cplex
4
.
Tested platforms
BONMIN has been installed on the following systems:
• Linux using g++ version 3.* and 4.* until 4.3 and Intel 9.* and 10.*
• Windows using version Cygwin 1.5.18
• Mac OS X using gcc 3.* and 4.* until 4.3 and Intel 9.* and 10.*
• SunOS 5 using gcc 4.3
2
http://www.netlib.org
3
http://www.ampl.com
4
http://www.ilog.com/products/cplex/product/mip.cfm
3
2 Obtaining BONMIN
The BONMIN package consists of the source code for the BONMIN project but also
source code from other
COIN-OR projects:
• BuildTools
• Cbc
• Cgl
• Clp
• CoinUtils
• Ipopt
• Osi
When downloading the BONMIN package you will download the source code
for all these and libraries of problems to test the co des .
Before downloading BONMIN you need to know which branch of B onmin you
want to download. In particular you need to know if you want to download the
latest version from:
• the Stable branch, or from
• the Released branch.
These different version are made according to the guidelines of COIN-OR. The
interpretation of these guidelines for the Bonmin project is explained on the
wiki pages of Bonmin.
The main distinction between the Stable and Release branch is that a stable
version that we propose to download may evolve over time to include bug fixes
while a released version will never change. The release d versions present an
advantage in particular if you want to make experiments which you want to b e
able to reproduce the stable version presents the advantage that it is less work
for you to update in the event where we fix a bug.
The easiest way to obtain the released version is by downloading a com-
pressed archive from Bonmin archive directory. The latest release is Bonmin-
1.5.2.
The only way to obain one of the stable versions is through subversion.
In Unix
5
-like environments, to download the latest stable version of Bon-
min (1.5) in a sub-directory, say Bonmin-1.5 issue the following command
svn co https://projects.coin-or.org/svn/Bonmin/stable/1.5 Bonmin-1.5
5
UNIX is a registered tra dem ark of The Open Group.
4
This copies all the necessary COIN-OR files to compile BONMIN to Bonmin-1.5.
To download BONMIN using svn on Windows, follow the instructions provided at
COIN-OR.
2.1 Obtaining required third party code
BONMIN needs a few external packages which are not included in the BONMIN
package.
• Lapack (Linear Algebra PACKage)
• Blas (Basic Linear Algebra Subroutines)
• A sparse linear solver.
• Optionally ASL (the Ampl Solver Library), to be able to use BONMIN from
Ampl.
Since these third-party software modules are release d under license s that
are incompatible with the CPL, they cannot be included for distribution with
BONMIN from COIN-OR, but you will find scripts to help you download them
in the subdirectory ThirdParty of the BONMIN distribution. In most Linux
distributions and CYGWIN, Lapack and Blas are available as prebuilt binary
packages in the distribution (and are probably already installed on your ma-
chine).
Linear solvers are used by Ipopt. The most up-to-date information regarding
the supported linear solvers and how to install them is found in
Section 2.2 of
the Ipopt manual.
Several options are available for linear solvers: MA27 from the Harwell Sub-
routine Library (and optionally, but strongly recommended, MC19 to e nable
automatic scaling in Ipopt), MA57 or Mumps. In our experiment MA27 and
MA57 usually perform significantly better but they are freely available only for
non-commercial, academic use. Note that linear solvers can also take advantage
of Metis.
3 Installing BONMIN
The build process for BONMIN should be fairly automatic as it uses GNU auto-
tools
. It has been successfully compiled and run on the following platforms:
• Linux using g++ version 4.5
• Windows using version Cygwin 1.5.18
• Mac OS X using gcc 4.5
5
剩余35页未读,继续阅读
资源评论
Grisha
- 粉丝: 3
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功