[ options ] filename


This manual page documents briefly the cbc command.

cbc -- Cbc (Coin-or branch and cut) is an open-source mixed integer programming solver written in C++.


When no options are given cbc enters the interactive command line mode. Otherwise the program enters a batch mode, for which a summary of options is included below. Note that the order of options in the command line of the cbc executable matter The command line of the cbc executable is parsed as if it were in the interactive mode. The take-away is that if your using the command line, and things aren't working as you think they should, try ordering the commands in the sequence you'd use if you were interactive mode.

For a complete description, see /usr/share/doc/coinor-libcbc-doc.


Read input from stdin instead of filename


The option "-csv <filename>" causes cbc to print one line of key output statics in commma separated format in a file named <filename>. This option isn't currently included in the list of commands given by the "?" command in interactive mode.

-threads <num_threads>

Run cbc in parallel using <num_threads> many CPUs


In interactive mode one command per line is expected (no leading -).


lists all available commands


gives list of possibilities, if only one + explanation


adds explanation, if only one fuller help


without value (where expected) gives current value

<command> <value>

sets value


Double parameters:

dualB(ound) dualT(olerance) primalT(olerance) primalW(eight)

Branch and Cut double parameters:

  allow(ableGap)  cuto(ff)  inc(rement)  inf(easibilityWeight)  integerT(olerance)
  preT(olerance)  ratio(Gap)  sec(onds)

Integer parameters:

  cpp(Generate)  force(Solution)  idiot(Crash)  maxF(actor)  maxIt(erations)
  output(Format)  slog(Level)  sprint(Crash)

Branch and Cut integer parameters:

  cutD(epth)  log(Level)  maxN(odes)  maxS(olutions)  passC(uts)
  passF(easibilityPump)  passT(reeCuts)  pumpT(une)  strong(Branching)  trust(PseudoCosts)

Keyword parameters:

  chol(esky)  crash  cross(over)  direction  dualP(ivot)
  error(sAllowed)  keepN(ames)  mess(ages)  perturb(ation)  presolve
  primalP(ivot)  printi(ngOptions)  scal(ing)

Branch and Cut keyword parameters:

  clique(Cuts)  combine(Solutions)  cost(Strategy)  cuts(OnOff)  Dins
  DivingS(ome)  DivingC(oefficient)  DivingF(ractional)  DivingG(uided)  DivingL(ineSearch)
  DivingP(seudoCost)  DivingV(ectorLength)  feas(ibilityPump)  flow(CoverCuts)  gomory(Cuts)
  greedy(Heuristic)  heur(isticsOnOff)  knapsack(Cuts)  lift(AndProjectCuts)  local(TreeSearch)
  mixed(IntegerRoundingCuts)  node(Strategy)  preprocess  probing(Cuts)  reduce(AndSplitCuts)
  residual(CapacityCuts)  Rens  Rins  round(ingHeuristic)  sos(Options)

Actions or string parameters:

  allS(lack)  barr(ier)  basisI(n)  basisO(ut)  directory
  dirSample  dirNetlib  dirMiplib  dualS(implex)  either(Simplex)
  end  exit  export  help  import
  initialS(olve)  max(imize)  min(imize)  netlib  netlibD(ual)
  netlibP(rimal)  netlibT(une)  primalS(implex)  printM(ask)  quit
  restore(Model)  saveM(odel)  saveS(olution)  solu(tion)  stat(istics)
  stop  unitTest  userClp

Branch and Cut actions:

  branch(AndCut)  doH(euristic)  miplib  prio(rityIn)  solv(e)
  strengthen  userCbc



This program is fully documented in the accompanying html documentation which can be found in /usr/share/doc/coinor-libcbc-doc if the coinor-libcbc-doc package is installed.


cbc was written by John J. Forrest <[email protected]>

This manual page was written by Soeren Sonnenburg <[email protected]>, for the Debian project (but may be used by others).