====== COLA (Conic Optimization using Linear Approximations) and DietCOLA (Discrete COLA) ======
===== COLA =====
Cola solves Second Order Conic Optimization (SOCO) problems using outer linear approximations. It can be used as a standalone solver or as a library. Developed by Aykut Bulut and his advisor Ted Ralphs. Conceptual design is inspired by Aykut's commitee, Pietro Belotti, Julio C. Goez, Tamas Terlaky, Ted Ralphs and Luis Zuluaga. COLA is available in polyps (command cola). Source code of COLA is available on [[https://github.com/aykutbulut/COLA|github]].
==== Design ====
Cola inherits OsiClpSolverInterface class of Coin-OR Osi project. It uses Clp to solve linear optimization problems.
==== How to use cola ====
It is pretty straightforward. Just run 'cola input.mps'. Cola do not accept any options for now. It solves a conic mps file given as an argument.
===== DietCOLA =====
DietCOLA (Discrete COLA) uses branch and bound to solve second order cone optimization problems. DietCOLA is available in polyps (command dietcola). Source code of DietCOLA is available on [[https://github.com/aykutbulut/DietCOLA|github]].
==== Installation ====
DietCOLA depends on COLA and ALPS. Once COLA and ALPS are installed and their .pc file is in your PKG_CONFIG_PATH, you can install DietCOLA by running "configure" and "make install". DietCOLA uses pkg-config to locate its dependencies. COLA and DietCOLA are both installed in polyps (command cola and dietcola).
==== Using DietCOLA ====
DietCOLA accepts inputs in extended mps format. See [[http://docs.mosek.com/7.0/capi/The_MPS_file_format.html|conic mps format]] for how to include cones in your mps files. Once DietCOLA is installed you can call the solver by "dietcola input.mps". For now DietCOLA does not accept any options.
You can also use DietCOLA as a library. For this you should create an instance of DcModel class. See DcMain.cpp for how to do this.
===== Examples =====
To run cola in polyps on CBLIB problems you can use,
cola /home/software/share/cblib2014/instances/mosek_mps/estein4_A.mps
to run DietCOLA you can use the following command;
dietcola /home/software/share/cblib2014/instances/mosek_mps/estein4_A.mps
COLA and DietCOLA can also solve LP and MILP problems. When a given mps file does not have cones, COLA just reduces to CLP and DietCOLA does a branch and bound search solving LP problems at each node. You can check this with;
cola /home/software/share/miplib3/10teams.mps
dietcola /home/software/share/miplib3/enigma.mps
COLA solves the LP relaxation of the problem (problem 10teams includes discrete variables).