Supported Solvers

CMPL is able to execute directly CBC, GLPK, Gurobi, SCIP and CPLEX to solve LP or MIP problems. Because CMPL transforms a CMPL model into an MPS, a Free-MPS or an OSiL file, the generated model instance can be solved by using most of the free or commercial solvers.

Open Source solvers

  • CBC
    The CMPL package contains CBC. Because CBC is the default solver CBC doesn't need not to be specified.

    It is possible to use most of the CBC solver options within the CMPL header.
    %opt cbc solverOption [solverOptionValue]

  • GLPK
    The CMPL package contains GLPK and it can be used by the following command:
    cmpl <problem>.cmpl -solver glpk
    or by the CMPL header flag:
    %arg -solver glpk.

    Most of the GLPK solver options can be used by defining solver options within the CMPL header.
    %opt glpk solverOption [solverOptionValue]

  • SCIP
    SCIP can be used for mixed integer programming (MIP) problems. If SCIP is chosen as solver and the problem is an LP then CLP is executed as solver.

    If SCIP is installed on the same computer as CMPL then SCIP can be connected to CMPL by changing the entry ScipFileName in the file <cmplhome>/bin/cmpl.opt.

    If this entry is correct then you can execute SCIP directly by using the command
    cmpl <problem>.cmpl -solver scip
    or by the CMPL header flag:
    %arg -solver scip.

    All SCIP parameters described in the SCIP Doxygen Documentation can be used in the CMPL header.
    %opt scip solverOption [solverOptionValue]

Commercial solvers
  • Gurobi
    If Gurobi is installed on the same computer as CMPL then Gurobi can be executed directly only by using the command cmpl <problem>.cmpl -solver gurobi
    or by the CMPL header flag:
    %arg -solver gurobi.

    All Gurobi parameters (excluding NodefileDir, LogFile and ResultFile) described in the Gurobi manual can be used in the CMPL header.
    %opt gurobi solverOption [solverOptionValue]

  • CPLEX
    CPLEX can be connected to CMPL by changing the entry CplexFileName in the file <cmplhome>/bin/cmpl.opt.

    If this entry is correct then you can execute CPLEX directly by using the command
    cmpl <problem>.cmpl -solver cplex
    or by the CMPL header flag:
    %arg -solver cplex.

    All CPLEX parameters described in the CPLEX manual (Parameters of CPLEX -> Parameters Reference Manual) can be used in the CMPL header.
    %opt cplex solverOption [solverOptionValue]