Scroll to navigation

CBC(1) General Commands Manual CBC(1)


cbc - Cbc mixed integer programming solver


cbc [ options ] filename
cbc [ commands ]


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 comma 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.
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


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

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

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

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

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

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)

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(AndCut) doH(euristic) miplib prio(rityIn) solv(e)
strengthen userCbc


cbc problem.mps

cbc -thread 2 -import problem.mps -solve



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 <>

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

September 1st, 2020