跳到内容

coin-or/Couenne公司

文件夹和文件

姓名姓名
上次提交消息
上次提交日期

最新提交

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

存储库文件导航

库恩

Couenne(非线性估计的凸上下展开)是一种分支定界算法,用于解决混合整数非线性规划(MINLP)问题,形式如下:

最小值(f)0(x个,)
           (f)(x个,) ≤ 0     =1,2...,
           x个在R中n个,在Z轴上第页

所有这些(f)(x个,)通常是非线性函数。

Couenne的目标是找到非凸MINLP的全局最优解。它在分支定界框架内实现线性化、定界约简和分支方法。其主要组件包括:

  • 表达式库;
  • 线性化切割的分离;
  • 分支规则;
  • 捆绑紧固方法。

它分布在COIN或日蚀公共许可证(EPL)。EPL是由开放源代码倡议(OSI)批准的许可证,因此Couenne是OSI认证的开放源代码软件。

下载、安装和使用

硬币上有硬币项目页面。可以使用下载颠覆--另请参阅一些说明书关于使用svn。运行命令:

svn公司https://projects.coin-or.org/svn/Couenne/stable/0.5库恩

获取稳定版本的源代码。在构建和安装Couenne之前,需要一些第三方软件包。这些不能从COIN-OR下载,必须独立获取。这些软件包包括:ASL、Blas、Lapack和HSL或MUMPS。用户被推荐给安装Couenne/ThirdParty的每个子目录中的文件,以获取有关如何获取它们的说明。

一般来说,Couenne的稳定版本会发生一些微小的更改,例如错误修复。为了更新这些更改,您可以运行以下命令svn更新库恩目录。所有版本也可在以下位置存档:https://www.coin-or.org/download/source/Couenne网站/。版本不会更改。

要安装Couenne,我们参考一般安装说明书用于COIN-OR项目。我们还建议Ipopt编译提示用于在非Linux系统(如Mac和Windows)上编译的页面。不耐烦的人可能想发出以下命令:

cd库恩cd ThirdParty#读取每个子目录中的INSTALL.*文件并获取第三方软件光盘。。mkdir生成cd内部版本../configure-C(配置-C)制作进行安装

上述命令将Couenne置于库恩/建筑/箱子/目录,库位于Couenne/build/lib/,并将文件包括在Couenne/构建/包含/。可以使用指定替代目录这个--前缀配置选项。例如,在更换“../configure-C(配置-C)“上面有

../configure-C--前缀=/usr/local

Couenne可执行文件将安装在/usr/local/bin/,中的库/usr/local/lib/和中的包含文件/usr/local/include/.Couenne运行如下:

couenne实例.nl

哪里实例nl是AMPL存根(.nl文件)文件。可以使用命令“写入gfilename;”(注意文件名前的“g”)。

您还可以指定一组选项来调整Couenne的性能。这些可在couenne.opt公司选项文件。Couenne/src/目录中提供了一个示例选项文件。

文档

用户手册可用,并对Couenne中的大多数可用选项进行解释。Doxygen文档也可用,可以通过运行

制造多西多克

从同一个建造/运行configure、make和make的目录安装。html和LaTeX格式的文档都可以在文档/子目录。启动浏览器并查看用于Couenne文档的Doc/html/index.html。

资源和链接

Couenne由维护彼得罗·贝洛蒂.

网页:https://www.github.com/coin-or/Couenne网站

依赖项:硬币实用工具,中国银行,Cgl公司,Clp公司,伊波特、和奥西(来自COIN-OR);ASL(振幅解算器库),拉帕克,布拉斯,高铁,MUMPS、,SCIP公司、和SoPlex公司.

外部资源:COIN或,日蚀公共许可证.

报告一个错误,为Couenne做贡献

作为一个开源代码,欢迎对Couenne的贡献。要向Couenne提交捐款,请按照COIN-OR指南.

要报告错误,请使用发行系统.

为了确保及时解决您的问题,请在错误报告中尽可能详尽,例如报告您下载的Couenne版本和使用的操作系统,并再次附上发生崩溃的模型/数据文件。

贡献者

致谢

该项目于2006年启动协作由IBM和卡内基梅隆大学合作,旨在为MINLP开发算法。

在这次合作中,我们的同事应该得到赞扬:安德烈亚斯、弗朗索瓦、皮埃尔、斯特凡和蒂莫,他们开发了库恩的一部分,以及拉里·比格勒,热拉尔·科努约尔斯,伊格纳西奥·格罗斯曼、和乔恩·李.每个人都为库恩的发展做出了重要贡献。

项目链接


BonCouenne的选项

线性化选项

对流切割<num>

指定生成线性化切割的频率(以节点为单位)。默认值:1。如果为0,则线性化切割永远不会分离。

凸化点<num>

指定要凸化的点数。默认值:1。

violeted_cuts_only(仅限violeted_cuts_only)<是|否>

如果设置为“是”(默认),则只会添加违反凸化切割。

art_lower<num>

设置人工下限(用于最小化问题),当下限已知或用于测试时非常有用。默认值为-1050.

opt_window(操作窗口)

用于将变量边界限制在已知最优值附近的乘法器(将从具有方法Couenne问题::readOptimum())。如果已知第i个变量的最佳值x、i、,在开始Couenne之前,其边界将与区间[x相交-K(1+|x|),x个+K(1+|x|)],其中K是选项的值。默认值为无穷大。

使用二次型<是|否>

使用二次表达式和相关的exprQuad类。仍在测试中,因此默认值为“否”。

绑定拧紧选项

可行性_bt<是|否>

使用基于可行性的紧固方法(强烈建议)。默认值为“yes”。

最优_bt

最优(昂贵)约束收紧。仅建议用于变量较少的问题和/或位于B&B树的初始节点。默认值为“否”。如果设置为“是”,我们建议将其与值lognumobbtperlevel耦合为0(参见下文)。

log_num_obbt_per_level日志数量

指定基于最佳约束的拧紧频率(以节点为单位)。默认值为0。

  • 如果为-1,则在每个节点上应用(昂贵!)。
  • 如果为0,则仅在根节点应用。
  • 如果k>0,应用概率为2(k级),level是B&B树的当前深度。
aggressive_fbbt<是|否“

基于严格可行性的约束拧紧(与NLP点一起使用)。默认值为“yes”。这在计算上也很昂贵。

log_num_abt_per_level级别<num>

指定强制绑定拧紧的频率(以节点为单位)(类似于log_num_obbt_per_level)。

  • 如果-1,则在每个节点应用(昂贵!);
  • 如果为0,则仅应用于根节点;
  • 如果k>0,应用概率为2(k级),level是B&B树的当前深度。

分支选项

branch_fbbt<是|否>

分叉前进行捆绑拧紧。默认值:是

branch_conv_cuts<是|否>

在分支之前应用凸起切割(尚未激活)。默认值:否。

branch_pt_select<string>

选择分支点选择策略。可能的值为

  • “lp-clamped”:限制在绑定间隔(由lp_clamp定义的k)的[k,1-k]中的lp点;
  • “lp-central”:lp点,如果在界限区间的[k,1-k]内,否则为中点(k由branch_lp_clamp定义);
  • “平衡”:最小化从曲线到凸起的最大距离;
  • “最小面积”:最小化两个凸化的总面积;
  • “中点”:当前点和中点的凸组合;
  • “无分支”:不分支,返回null不可行;仅用于测试目的。

默认值为中点。

branch_lp_clamp<编号>

定义选择LP点作为分支点的阈值;介于0和0.5之间,默认值为0.2。假设变量x,,i,有界[l,u]选择用于分支。如果lp-central或lp-clamp策略则将分支点投影到间隔[L,U]带有L(左)=升+a(u)-我)和U=升+(1-a)(u)-我).

分支midpoint_alpha

定义中点和当前LP点的凸组合:分支点将为αx+(1-α)(l+单位)/2. 默认值为0.25。

选项分支_选择分支_线夹以上是也可用于以下一组运算符,并应用于这些操作符中的每一个都是独立的:“prod”、“div”、“exp”、“log”、”trig“、”pow“、”negpow“、”sqr“、”cube“。

例如,以下设置:

分支_选择平衡分支选择棒lp-clamp支管_lp-clamp_prod 0.15分支pt_select_log lp-central分支lp-clamp_log 0.1

为除乘积和对数,产品和参数为0.15的lp-clamplp-central,参数0.1用于对数。

上边界选项

本地优化启发式

搜索NLP的本地解决方案。默认值:是。

log_num_local_optimization_per_level<num>

指定要执行的本地优化数的对数树的给定深度的每个级别的平均值。

如果等于-1,则在树的每个级别的节点上解出尽可能多的nlp。

节点是随机选择的。如果对于给定的级别对于每个节点,都将求解比这个数量nlp大的节点。例如,如果参数为8,则求解所有节点的nlp,直到级别8,然后,对于第9级的一半节点,第10级的1/4。

art_cutoff<数字>

当已知可行的解决方案或出于测试目的时,设置人工截止线非常有用。默认值为1050.

有限元分析_公差

这是候选可行解决方案的可行性容差。默认值为10-7.