/exactcolors

Automatically exported from code.google.com/p/exactcolors

Primary LanguageC

In order to compile exactcolors you need an LP-solver. Either one of
- Gurobi [34].*.*
- CPLEX  12.[23] , or
- Qsopt
will work.

1. Preparing the Makefile for the LP-Solver

 For Gurobi, the GUPATH variable in the Makefile has to point to
 to the os-dependent subdir in your Gurobi-installation. E.g.
 you set
 export GUROBI_HOME=<path-to-gurobi-installation>/gurobi461/linux64/ ,
uncomment the line
  GUPATH=$(GUROBI_HOME)
 in the Makefile and  comment out the lines were CPLEXPATH and QSPATH.

 For CPLEX, the CPLEXPATH variable needs to point to the cplex installation.
 E.g. you can set
 export CPLEX_HOME=<path-to-cplex-installation>/cplex/cplex123/cplex/
 and uncomment the line
 CPLEXPATH=$(CPLEX_HOME)
 in the Makefile and comment out the lines were GUPATH and QSPATH are defined.
 Depending on your installation you might also need to adapt the
 LPLIB path in the Makefile.

 For QSOPT, QSPATH variable in the Makefile need to point to the qsopt installation.
 E.g. you can set  QSOPT_PATH=<path-to-qsopt-headers-and-lib>/
 and uncomment the line
  QSPATH=$(QSOPT_HOME)
 in the Makefile and comment out the lines were GUPATH and QSPATH are defined.

2. Compiling

 For compiling you simply call

   make

 For parallel compiling via 'make -j' you may have to call 'make -j' twice, because
 some c-files are generated during compilation and may not be ready on time.

 This will build the programs:
  -  'color', the main B&P program for graph coloring
  -  'stable',  can be used to cal Gurobi or Cplex as an MWSS-sovler.
  -  'mwis_sewell/sewell' (Algorithm 1 in "Held, Cook, and Sewell:yes
        Safe Lower Bounds for Graph Coloring. IPCO2011"),
        an adaption of Sewells combinatorial stable set algorithm.
  - 'complement' to construct the complement of a graph
  - 'partition' to find dense subgraphs with a given number of vertices.
Special commands for the parallel B&P framework:
  -  'color_worker' a worker for solving a B&P-node.
      When color is called with the '-p' option, it will solve only the root LP
      and then act as a boss for the parallel B&P code. To this end it
      will maintain a job queue. Workers (color_worker) will ask for jobs and
      submit results.
      The program color_worker can be started on any machine that as network access
      to the machine were the boss  'color' runs by
           'color_worker <hostname of boss-machine>'
     ATTENTION: The boss listens to the port 24870 as specified in bbsafe.h!
                Make sure that this port is available on the machine you use for the boss
                and that you start at most one boss on a host!
  -  'color_jobkiller', can be used to notify the master program that the branch-and-bound
     node with the given Id should be resubmitted to the job-queue, because the
     worker died.

3. Help
   For all programs if you just call the program without parameters you will get a help.