CBC(1)
π CBC(1) β the one and only Cbc solver, bestie edition
okay so this is a page from the General Commands Manual, and it's all about cbc. buckle up π
β¨ NAME β¨
cbc β the Cbc mixed integer programming solver. that's the whole name. it does exactly what it says π
πΈ SYNOPSIS πΈ
cbc [ options ] filename
cbc [ commands ]
two moods, one binary. iconic.
π¦ DESCRIPTION π¦
this manual page documents briefly the cbc command. "briefly" is doing a lot of work there but okay π
cbc β Cbc (Coin-or branch and cut) is an open-source mixed integer programming solver written in C++. it's giving academic baddie, it's giving solver royalty, no cap. π§
π OPTIONS π
so here's the vibe check: when no options are given, cbc enters the interactive command line mode. otherwise the program enters a batch mode, and a summary of options is included below.
β οΈ real talk bestie: the order of options in the command line of thecbcexecutable matters. the command line of thecbcexecutable is parsed as if it were in the interactive mode. the take-away is that if you're 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 in interactive mode. fr fr, order is everything. π
for a complete description, see /usr/share/doc/coinor-libcbc-doc.
-β read input from stdin instead offilename. tiny dash, big main character energy.-csvβ the option-csv <filename>causescbcto 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. (yes, "statics" β that's what the page says, we don't edit the queen's words π)-threads <num_threads>β runcbcin parallel using<num_threads>many CPUs. parallelism slay π₯
π INTERACTIVE MODE π
in interactive mode one command per line is expected (no leading -). so like, don't be out here typing dashes, this isn't batch mode.
?β lists all available commands. the goat of "idk what I'm doing" π«Ά<command>?β gives list of possibilities, if only one + explanation<command>??β adds explanation, if only one fuller help. two question marks = more lore π<command>β without value (where expected) gives current value<command> <value>β sets value
π AVAILABLE COMMANDS π
okay bestie this is the big list, brace yourself. all of these are exactly as written, don't come for me π
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) two(MirCuts)
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
β EXAMPLES β
look at her go:
cbc problem.mps
cbc -thread 2 -import problem.mps -solve
(and yes, that second one says -thread β not -threads β copy it exactly as shown, bestie, don't @ me π)
π SEE ALSO π
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. so like, if you want the full saga, install the package π
π AUTHOR π
cbc was written by John J. Forrest <jjforre@us.ibm.com> et.al. absolute legend behaviour, we stan.
this manual page was written by Soeren Sonnenburg <sonne@debian.org>, for the Debian project (but may be used by others).
and that's the whole page!! this was the CBC(1) manual, dated September 1st, 2020 β shoutout to that date for real, and to you for reading all the way to the bottom, mwah π«Άππ
π¦ where this page comes from
- debian bookworm: coinor-cbc 2.10.8+ds1-1 Β· EPL-1
- debian trixie: coinor-cbc 2.10.12+ds-1 Β· EPL-2.0
- ubuntu jammy: coinor-cbc 2.10.7+ds1-1 Β· EPL-1
- ubuntu noble: coinor-cbc 2.10.11+ds1-2 Β· EPL-2.0
- ubuntu questing: coinor-cbc 2.10.12+ds-1
- ubuntu resolute: coinor-cbc 2.10.12+ds-1build1 Β· EPL-2.0
- ubuntu stonking: coinor-cbc 2.10.13+ds-1 Β· EPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms