Skip to content

aykutbulut/CGL-CONIC

Repository files navigation

CGL-Conic Build Status

CGL-Conic is library for generation of conic cuts for Mixed Integer Second Order Conic Optimization (MISOCO) problems. CGL-Conic can be considered as a generalization of COIN-OR's Cut Generation Library (CGL).

CGL-Conic depends on CGL and other COIN-OR projects. CGL-Conic implements the following cut procedures,

  • Disjunctive Cuts given by Belotti et. al., see related paper
  • Conic mixed-integer rounding cuts by Atamturk and Narayanan, see related paper
  • Outer approximation cuts, related paper to be published soon.
  • Interior Point Method (IPM) approximation cuts, related paper to be published soon.

Cut procedures that are considered for implementation.

  • Two-term disjunctions on the second-order cone by Karzan and Yildiz, see [related paper][Karzan Yildiz 2015]
  • Cuts for 0-1 mixed convex programming by Stubbs and Mehrotra, see related paper.
  • Cuts for mixed 0-1 conic programming by Cezik and Iyengar, see related paper

CGL-Conic is used by DisCO to solve MISOCO problems.

Installing CGL-Conic

Basic installation

CGL-Conic is tested/works in Linux environment only for now. You can use COIN-OR BuildTools fetch and build utility for building and installing CGL-Conic. After cloning CGL-Conic, typing following commands should work.

git clone --branch=stable/0.8 https://github.com/coin-or-tools/BuildTools
bash BuildTools/get.dependencies.sh fetch
bash BuildTools/get.dependencies.sh build

First command clones BuildTools, second fetches CGL-Conic dependencies and third builds/installs GGL-Conic.

Advanced Users

CGL-Conic can find dependencies using pkg-config. If your .pc files are at your PKG_CONFIG_PATH CGL-Conic configure script will find them. Running make install should work once the configure script is successful.

Specifying an IPM Solver

Some cut implementations in CGL-Conic depends on solving SOCO problems using IPM method. You can specify the solver to use for this purpose. CGL-Conic uses Ipopt by default. You can use Cplex1 or Mosek2 through their OsiConic interface.

To specify the solver, you need to give --with-ipm-solver flag to configure script. For example, following command configures OSI-Conic with Mosek.

./configure --with-ipm-solver=mosek

Similarly you can use cplex or ipopt instead of mosek. If no IPM solver is specified CGL-Conic will use Ipopt.

About

Extends COIN-OR Cut Generation Library (CGL) with strategies for conic problems.

Resources

License

EPL-1.0, EPL-1.0 licenses found

Licenses found

EPL-1.0
LICENSE
EPL-1.0
COPYING

Stars

Watchers

Forks

Packages

No packages published