Customizing the solution process of COIN-OR's linear solvers with Python']Python

被引:1
|
作者
Towhidi, Mehdi [1 ,2 ]
Orban, Dominique [1 ,2 ]
机构
[1] Ecole Polytech, Dept Math & Ind Engn, Montreal, PQ, Canada
[2] Gerad, Montreal, PQ, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Linear programming; Mixed-integer programming; !text type='Python']Python[!/text; Cython; COIN-OR; CLP; CBC; CGL; Simplex pivot;
D O I
10.1007/s12532-015-0094-2
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Implementations of the simplex method differ mostly in specific aspects such as the pivot rule. Similarly, most relaxation methods for mixed-integer programming differ mostly in the type of cuts and the exploration of the search tree. We provide a scripting mechanism to easily implement and experiment with primal and dual pivot rules for the simplex method, by building upon COIN-OR's open-source linear programming package CLP, without explicitly interacting with the underlying C++ layers of CLP. In the same manner, users can customize the solution process of mixed-integer linear programs using the CBC and CGL COIN-OR packages by coding branch-and-cut strategies and cut generators in Python. The Cython programming language ensures communication between Python and C++ libraries and activates user-defined customizations as callbacks. Our goal is to emphasize the ease of development in Python while maintaining acceptable performance. The resulting software, named CyLP, has become a part of COIN-OR and is available under open-source terms. For illustration, we provide an implementation of the positive edge rule-a recently proposed rule that is particularly efficient on degenerate problems-and demonstrate how to customize branch-and-cut node selection in the solution of a mixed-integer program.
引用
收藏
页码:377 / 391
页数:15
相关论文
empty
未找到相关数据