分享好友 最新资讯首页 最新资讯分类 切换频道
运筹系列30:COIN_OR优化套装
2024-12-28 12:09

COIN-OR是 Operations Research Computational Infrastructure的缩写,这是一个致力于"为公开文献上数学理论之数学软件而建立"的专案。COIN-OR由作业研究与管理科学协会INFORMS主持,并由教育性,非营利的COIN-OR基金会营运。地址为:https://github.com/coin-or/COIN-OR-OptimizationSuite,下载地址为https://www.coin-or.org/download/binary/CoinAll/
COIN-OR包含了Parallel search、Branch and cut (and price)、Decomposition-based algorithms等等框架,无论是学习研究还是工业应用,都有很大的空间。这里有一个入门教程:https://coin-or.github.io/user_introduction。这里粘贴复制一下官网上目前已经有的专案,各专案之间还有各种依赖关系,真是令人眼花缭乱

运筹系列30:COIN_OR优化套装

 
 

CLP:COIN LP Solver,是一套以 C++ 写的开放源码LP求解软件,主要使用单纯形法。
DyLP:Dynamic simplex method LP Solver,如其名。
SYMPHONY:用branch&cut和branch&price求解 MILP的程式库;CBC:COIN Branch and Cut,是一套以C++写的开放源码MILP求解软件;CGL:cut生成器。
BLIS:并行IP求解器测试框架。

IPOPT:IP是interior point的缩写。IPOPT是以c和Fortran写的内点法求解软件,用于连续变量的优化问题求解。
DFO、RBFOpt:derivative free optimization,无梯度优化求解器。
CSDP:半正定求解器。
OBOE:基于oracle的优化引擎。
FilterSD: 线性约束的非线性优化问题求解器。
OptiML:机器学习的内点法、有效集法求解器。
qpOASES: 有效集法求解QP问题。

Bonmin:基本的求解器,用于凸问题。
Couenne:用于非凸问题求解。
LaGO:使用拉格朗日法求解非凸问题的方法
DisCO: 离散锥优化。
MibS: 混合整数双层优化。
SHOT: 基于polyhedral outer approximation and primal heuristics的近似求解器。

FLOPC++/Rehearse: 基于C++的建模语言。
jORLib:基于java开发的建模语言
PuLP/Coopr/Pyomo/Yaposib/CyLP:基于python的建模语言,可以生成MPS或者LP文件,然后调用求解器求解。Coopr和Pyomo类似,但是功能更多一些,包含了非线性的建模语言;Yaposib是Yet Another Python OSI Binding,只能说python太受欢迎了;CyLP是CBC和Clp的python接口。
SolverStudio:类似excel的建模软件。
CMPL: 一个代数建模语言。

jMarkov:基于java的Markov chain建模语言。
DipPy:基于python的decomposition框架,没有Py的Dip则是使用c++编写的decomposition框架。
SMI:基于C++的随机规划建模与求解软件。
CoinBazaar:包含了很多案例。
OS(Optimization Services)远程求解服务。
GAMSlinks/AiMMSLinks/MSFlinks(微软求解器:连接建模语言与COIN-OR求解器。
CoinMP:将CLP和CBC又封装了一层,提供了类似cplex的Api。
Paver:用于比较结果的python接口

ABACUS:基于LP的branch-and-cut框架。
Bcp: 通用的branch, cut, and price框架。
CHiPPS: 并行树搜索框架。
DIP: 如1.4部分介绍,是一个decomposition算法的框架。
ADOL-C、CppAD:基于C和C++的自动微分的框架。话说现在能自动微分的框架太多了。
PFunc: 基于C和C++的轻量并行求解框架。
Djinni: 基于C++的启发式算法框架,有python接口。
METSlib: 基于C++的元启发算法框架。
QAPSolver:二次分配问题求解器。

GiMPy、GrUMPy:基于python的图建模软件。包含了常见的图算法,可以绘制出branch&bound树。
Cgc:Coin的图类
LEMON:网络优化库

CoinUtils:提供文件解析、内存管理、基本数据结构等。
Osi:开源求解器接口,提供求解参数调整、松弛变量管理、cut和column管理等。
CGL

IPOPT在可行域内探索,并保留一阶和二阶(Hessians)矩阵,使用primal-dual interior point method,搜索使用Filter methods。如果没有给定初始Hessians阵,IPOPT会使用quasi-Newton方法来近似求解,更新使用BFGS法。此专案曾获得2009年INFORMS Computing Society Prize。令人惊讶的是,这个专案竟然是卡耐基梅隆大学化学工程专业的PHD学生写的。
原本IPOPT只能求解连续变量问题。在IPOPT的基础上,Arvind Raghunathan开发出了MPEC(Mathematical programming with equilibrium constraints,也叫IPOPT-C (C代表’complementarity’),可以用来求解混合整数规划问题。非常有前途,可以研究一下。

Symphony是Single or multi process optimization over networks的简称,用c编写,地址为:https://github.com/coin-or/SYMPHONY。
Symphony主要解决整数规划问题,使用branch&cut&price方法,与branch&bound很类似,只是额外加上了cutting-plane method和pricing algorithm。Symphony会自动管理树搜索、cut池管理、通信管理等等,使用者可以自定义branching规则、cutting planes等等。
Symphony支持并行计算,通信协议为PVM格式,输入数据格式为MPS或是GNU MathProg格式。Symphony没有线性规划求解模块,除了使用套装的CLP,也可以使用cplex、xpress等来求解背后的线性规划问题。Symphony的cut生成使用的是套装里的CGL专案。
Symphony针对traveling salesman problem, vehicle routing problem, set partitioning problem, mixed postman problem等有专门的结构。

PuLP是python语言包,它是SolverStudio的默认框架。PuLP只是一套接口语言,后面还是要使用GLPK、CLP/CBC、Cplex、Gurobi等来进行求解。
PuLP可以保存或者读取MPS、LP文件格式。

最新文章
汽车租赁微信小程序开发公司定制开发 源码交付
在物联网技术飞速发展的今天,共享经济模式如同一股新生力量,悄然融入我们的日常生活。从共享单车到共享雨伞、充电宝,再到共享
超逼真美女写真生成攻略:用搜狐简单AI工具轻松打造你的AI女友!
在这个信息化迅速发展的时代,科技的进步让人们的生活方式发生了翻天覆地的变化。大家都知道,拍拍自己、刷刷短视频已经成为生活
三部欧美大尺度R级爱情电影:18禁,每部都能让你回味很久
好片实在多,一次推三部,每次都能看到爽,未来几天主要推荐重口味类型片。今天给大家推荐三部欧美大尺度R级爱情电影:18禁,每
最新搞笑回复说说评论集锦,欢乐无限,笑翻全场!
摘要:最新搞笑回复评论,让你捧腹大笑!这些评论集结了网络上的精彩内容,让你在忙碌的生活中放松心情。从幽默的调侃到搞笑的段
百度付费推广,内容解析与删除指南
在当今数字化的商业环境中,百度付费推广已成为众多企业提升品牌知名度、增加网站流量和促进销售的重要手段,对于一些初次接触百
百度游戏乐玩,新手攻略篇——轻松上手,畅游无阻
在繁忙的生活中.'9,游戏成为了许多
配音骗局《苏欣文化》app是任务骗局软件,不正规无法提现,真实惨痛经历为大家敲响警钟!
〖→被骗请点击进入帮助平台提现追款〗〖→被骗请点击进入帮助平台提现追款〗希望阅读此文的读者能够及时采取措施以减少损失;请
一、明确目标:确定数字人的应用场景和目标受众
随着科技的飞速发展人工智能()已经渗透到咱们生活的方方面面。在数字营销领域数字人作为一种新兴的营销手正逐渐受到企业和的关
谷歌站长工具图表异常,为何发生(Why This Happened)?
在SEO优化的征途中,谷歌站长工具无疑是每一位站长的得力助手。它为我们提供了丰富的数据和分析,帮助我们更好地理解和优化网站
微信关闭209个账号,严厉打击AI仿冒名人营销行为|懂点AI
掌握AIGC脉动,把握科技脉搏。动点科技每天收集汇总全球AIGC进展与热点,每天5分钟带您了解AIGC,希望与您共同玩转 AIGC,解码行