Skip to content

aykutbulut/CGL-CONIC

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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