Alpine的文档

概述

阿尔卑斯山是基于Julia/JuMP的非凸程序全局优化求解器。Alpine采用两阶段方法来加强具有多线性项的混合整数非线性规划(MINLP)的分段凸松弛。在第一阶段,Alpine利用约束编程技术缩小变量边界。此外,它反复应用基于优化的边界收紧(OBBT)方法,直到达到边界的固定点。在第二阶段,Alpine使用自适应多元分区方案(顺序求解MILP的当前解决方案中的参数化分区)对可变域进行分区,从而实现更稀疏但更紧密的松弛。这种方法将分区的数量与可变域的大小解耦,从而显著减少计算时间,并限制分区引入的二进制变量的数量。Alpine还应用多面体切割平面方法处理高阶单项式项的凸松弛。

允许的非线性:Alpine目前可以使用约束和/或目标中的多项式处理MINLP。目前,MINLP中不支持指数锥和正半定义(PSD)锥。Alpine也很适合MINLP家族的子集,例如混合整数二次约束四元程序(MIQCQPs)、非线性程序(NLPs)等。

有关更多详细信息,请查看视频在阿尔卑斯山第二届JuMP-dev年度研讨会,于2018年6月在波尔多数学学院举行。

安装

要使用Alpine,首先下载并安装朱莉娅。请注意,Alpine的当前版本与Julia 1.0及更高版本兼容。

Alpine的最新稳定版本可以使用Julia包管理器和

进口包装包装添加(“阿尔卑斯山”)

运行Alpine需要至少一个局部非线性规划(NLP)解算器和一个凸混合整数规划(MIP)求解器。如果您的问题是NLP,我们建议伊波特,否则,如果您的问题是混合整数NLP(MINLP),我们建议杜松子。对于底层MIP解算器,古罗比强烈建议使用,因为它速度快、可缩放,并且可以用于大规模非凸程序的求解。然而,开源高GHSGLPK公司解算器也与Alpine兼容。例如,可以通过包管理器使用

进口包装包装添加(“Ipopt”)增加包装(“Gurobi”)

有关为Alpine选择子解算器的更多详细信息,请查看在这里.

单元测试

要运行包中的测试,请在安装Alpine包后运行以下命令。

进口包装包装测试(“阿尔卑斯山”)

引用阿尔卑斯山

如果你觉得阿尔卑斯山对你的工作有用,我们请你引用以下文件[pdf格式] [pdf格式]:

@第{alpine_JOGO2019条,title={一种用于非凸程序全局优化的自适应多元分区算法},author={Nagarajan、Harsha和Lu、Mowen和Wang、Site和Bent、Russell和Sundar、Kaarthik},journal={全局优化杂志},年份={2019},issn={1573-2916},doi={10.1007/s10898-018-00734-1},}@进行中{alpine_CP2016,title={通过动态多元划分对非线性程序进行拉紧{McCormick}松弛},author={Nagarajan、Harsha和Lu、Mowen和Yamangil、Emre和Bent、Russell},booktitle={约束编程原理与实践国际会议},页数={369--387},年份={2016年},组织={Springer},doi={10.1007/978-3-319-44953-124},}

如果您发现在Alpine中实现的基本分段多面体公式在您的工作中有用,我们恳请您引用以下论文(链接-1,链接-2)以下为:

@文章{alpine_ORL2021,title={多线性项的分段多面体公式},author={Sundar、Kaarthik和Nagarajan、Harsha和Linderoth、Jeff和Wang、Site和Bent、Russell},journal={运营研究快报},体积={49},数字={1},页数={144--149},年份={2021},publisher={Elsevier}}@文章{alpine_OptOnline2022,title={多线性优化的分段多面体松弛},author={Kim,Jongeun和Richard,Jean-Philippe P.和Tawarmalani,Mohit},eprinttype={在线优化},日期={2022}}

如果找到非凸QCQP实例的随机族(使用此中的生成器文件文件夹)对您的研究有用,我们恳请您引用以下论文arXiv链路:

@文章{alpine_lerning_2022,title={学习加速二次约束二次规划的全局优化},author={Kannan、Rohit和Nagarajan、Harsha和Deka、Deepjyoti},日志={arXiv-print:2301.00306},网址={https://arxiv.org/abs/2301.00306},年份={2022}}