Scippy

SCIP

Solving Constraint Integer Programs

File List
Here is a list of all files with brief descriptions:
 branch_allfullstrong.hAll variables full strong LP branching rule
 branch_cloud.hCloud branching rule
 branch_distribution.hProbability based branching rule based on an article by J. Pryor and J.W. Chinneck
 branch_fullstrong.hFull strong LP branching rule
 branch_inference.hInference history branching rule
 branch_leastinf.hLeast infeasible LP branching rule
 branch_mostinf.hMost infeasible LP branching rule
 branch_multaggr.hFullstrong branching on fractional and multi-aggregated variables
 branch_nodereopt.hNodereopt branching rule
 branch_pscost.hPseudo costs branching rule
 branch_random.hRandom variable branching rule
 branch_relpscost.hReliable pseudo costs branching rule
 compr_largestrepr.hLargestrepr tree compression
 compr_weakcompr.hWeakcompr tree compression
 cons_abspower.hConstraint handler for absolute power constraints $\textrm{lhs} \leq \textrm{sign}(x+a) |x+a|^n + c z \leq \textrm{rhs}$
 cons_and.hConstraint handler for "and" constraints, $r = x_1 \wedge x_2 \wedge \dots \wedge x_n$
 cons_bivariate.hConstraint handler for bivariate nonlinear constraints $\textrm{lhs} \leq f(x,y) + c z \leq \textrm{rhs}$
 cons_bounddisjunction.hConstraint handler for bound disjunction constraints $(x_1 \{\leq,\geq\} b_1) \vee \ldots \vee (x_n \{\leq,\geq\} b_n)$
 cons_conjunction.hConstraint handler for conjunction constraints
 cons_countsols.hConstraint handler for counting feasible solutions
 cons_cumulative.hConstraint handler for cumulative constraints
 cons_disjunction.hConstraint handler for disjunction constraints
 cons_indicator.hConstraint handler for indicator constraints
 cons_integral.hConstraint handler for the integrality constraint
 cons_knapsack.hConstraint handler for knapsack constraints of the form $a^T x \le b$, x binary and $a \ge 0$
 cons_linear.hConstraint handler for linear constraints in their most general form, $lhs <= a^T x <= rhs$
 cons_linking.hConstraint handler for linking binary variables to an integer variable
 cons_logicor.hConstraint handler for logicor constraints $1^T x \ge 1$ (equivalent to set covering, but algorithms are suited for depth first search)
 cons_nonlinear.hConstraint handler for nonlinear constraints $\textrm{lhs} \leq \sum_{i=1}^n a_ix_i + \sum_{j=1}^m c_jf_j(x) \leq \textrm{rhs}$
 cons_or.hConstraint handler for "or" constraints, $r = x_1 \vee x_2 \vee \dots \vee x_n$
 cons_orbitope.hConstraint handler for (partitioning/packing) orbitope constraints w.r.t. the full symmetric group
 cons_pseudoboolean.hConstraint handler for pseudoboolean constraints
 cons_quadratic.hConstraint handler for quadratic constraints $\textrm{lhs} \leq \sum_{i,j=1}^n a_{i,j} x_ix_j + \sum_{i=1}^n b_i x_i \leq \textrm{rhs}$
 cons_setppc.hConstraint handler for the set partitioning / packing / covering constraints $1^T x\ \{=, \le, \ge\}\ 1$
 cons_soc.hConstraint handler for second order cone constraints $\sqrt{\gamma + \sum_{i=1}^{n} (\alpha_i\, (x_i + \beta_i))^2} \leq \alpha_{n+1}\, (x_{n+1}+\beta_{n+1})$
 cons_sos1.hConstraint handler for SOS type 1 constraints
 cons_sos2.hConstraint handler for SOS type 2 constraints
 cons_superindicator.hConstraint handler for indicator constraints over arbitrary constraint types
 cons_varbound.hConstraint handler for variable bound constraints $lhs \leq x + c y \leq rhs$
 cons_xor.hConstraint handler for "xor" constraints, $rhs = x_1 \oplus x_2 \oplus \dots \oplus x_n$
 def.hCommon defines and data types used in all packages of SCIP
 dialog_default.hDefault user interface dialog
 disp_default.hDefault display columns
 event_softtimelimit.hEventhdlr for soft time limit
 exprinterpret.hMethods to interpret (evaluate) an expression tree "fast"
 exprinterpret_cppad.cppMethods to interpret (evaluate) an expression tree "fast" using CppAD
 exprinterpret_none.cFunction definitions for nonexisting expression interpreter to resolve linking references
 heur_actconsdiving.hLP diving heuristic that chooses fixings w.r.t. the active constraints the variable appear in
 heur_bound.hHeuristic which fixes all integer variables to a bound (lower/upper) and solves the remaining LP
 heur_clique.hLNS heuristic using a clique partition to restrict the search neighborhood
 heur_coefdiving.hLP diving heuristic that chooses fixings w.r.t. the matrix coefficients
 heur_crossover.hLNS heuristic that tries to combine several feasible solutions
 heur_dins.hDINS primal heuristic
 heur_distributiondiving.hDiving heuristic that chooses fixings w.r.t. changes in the solution density after Pryor and Chinneck
 heur_dualval.hPrimal heuristic that uses dualvalues for successive switching variable values
 heur_feaspump.hObjective Feasibility Pump 2.0
 heur_fixandinfer.hFix-and-infer primal heuristic
 heur_fracdiving.hLP diving heuristic that chooses fixings w.r.t. the fractionalities
 heur_guideddiving.hLP diving heuristic that chooses fixings in direction of incumbent solutions
 heur_indicator.hHandle partial solutions for linear problems with indicators and otherwise continuous variables
 heur_intdiving.hLP diving heuristic that fixes variables with integral LP value
 heur_intshifting.hLP rounding heuristic that tries to recover from intermediate infeasibilities, shifts integer variables, and solves a final LP to calculate feasible values for continuous variables
 heur_linesearchdiving.hLP diving heuristic that fixes variables with a large difference to their root solution
 heur_localbranching.hLocal branching heuristic according to Fischetti and Lodi
 heur_mutation.hLNS heuristic that tries to randomly mutate the incumbent solution
 heur_nlpdiving.hNLP diving heuristic that chooses fixings w.r.t. the fractionalities
 heur_objpscostdiving.hLP diving heuristic that changes variable's objective value instead of bounds, using pseudo cost values as guide
 heur_octane.hOctane primal heuristic based on Balas, Ceria, Dawande, Margot, and Pataki
 heur_ofins.hOFINS - Objective Function Induced Neighborhood Search - a primal heuristic for reoptimization
 heur_oneopt.hImprovement heuristic that alters single variable values
 heur_proximity.hImprovement heuristic which uses an auxiliary objective instead of the original objective function which is itself added as a constraint to a sub-SCIP instance. The heuristic was presented by Matteo Fischetti and Michele Monaci
 heur_pscostdiving.hLP diving heuristic that chooses fixings w.r.t. the pseudo cost values
 heur_randrounding.hRandomized LP rounding heuristic which also generates conflicts via an auxiliary probing tree
 heur_rens.hLNS heuristic that finds the optimal rounding to a given point
 heur_reoptsols.hReoptsols primal heuristic
 heur_rins.hLNS heuristic that combines the incumbent with the LP optimum
 heur_rootsoldiving.hLP diving heuristic that changes variables' objective values using root LP solution as guide
 heur_rounding.hLP rounding heuristic that tries to recover from intermediate infeasibilities
 heur_shiftandpropagate.hPreroot heuristic that alternatingly fixes variables and propagates domains
 heur_shifting.hLP rounding heuristic that tries to recover from intermediate infeasibilities and shifts continuous variables
 heur_simplerounding.hSimple and fast LP rounding heuristic
 heur_subnlp.hNLP local search primal heuristic using sub-SCIPs
 heur_trivial.hTrivial primal heuristic
 heur_trivialnegation.hTrivialnegation primal heuristic
 heur_trysol.hPrimal heuristic that tries a given solution
 heur_twoopt.hPrimal heuristic to improve incumbent solution by flipping pairs of variables
 heur_undercover.hUndercover primal heuristic for MINLPs
 heur_vbounds.hLNS heuristic uses the variable lower and upper bounds to determine the search neighborhood
 heur_veclendiving.hLP diving heuristic that rounds variables with long column vectors
 heur_zeroobj.hHeuristic that tries to solve the problem without objective. In Gurobi, this heuristic is known as "Hail Mary"
 heur_zirounding.hZI Round primal heuristic
 intervalarithext.cppC++ extensions to interval arithmetics for provable bounds
 intervalarithext.hC++ extensions to interval arithmetics for provable bounds
 lpi.hInterface methods for specific LP solvers
 lpi_clp.cppLP interface for Clp
 lpi_cpx.cLP interface for CPLEX >= 8.0
 lpi_grb.cLP interface for Gurobi
 lpi_msk.cLP interface for MOSEK
 lpi_none.cDummy interface for the case no LP solver is needed
 lpi_qso.cLP interface for QSopt version >= 070303
 lpi_spx.cppLP interface for SoPlex version 1.4 and higher
 lpi_spx2.cppLP interface for SoPlex version 2.0 and higher
 lpi_xprs.cLP interface for Xpress-MP
 message_default.hDefault message handler
 nlpi_ipopt.hIpopt NLP interface
 nodesel_bfs.hNode selector for best first search
 nodesel_breadthfirst.hNode selector for breadth-first search
 nodesel_dfs.hNode selector for depth first search
 nodesel_estimate.hNode selector for best estimate search
 nodesel_hybridestim.hNode selector for hybrid best estimate / best bound search
 nodesel_restartdfs.hNode selector for depth first search with periodical selection of the best node
 nodesel_uct.hUct node selector which balances exploration and exploitation by considering node visits
 objbranchrule.hC++ wrapper for branching rules
 objcloneable.hDefinition of base class for all clonable classes
 objconshdlr.hC++ wrapper for constraint handlers
 objdialog.hC++ wrapper for dialogs
 objdisp.hC++ wrapper for display columns
 objeventhdlr.hC++ wrapper for event handlers
 objheur.hC++ wrapper for primal heuristics
 objmessagehdlr.hC++ wrapper for message handlers
 objnodesel.hC++ wrapper for node selectors
 objpresol.hC++ wrapper for presolvers
 objpricer.hC++ wrapper for variable pricers
 objprobcloneable.hDefinition of base class for all clonable classes which define problem data
 objprobdata.hC++ wrapper for user problem data
 objprop.hC++ wrapper for propagators
 objreader.hC++ wrapper for file readers and writers
 objrelax.hC++ wrapper for relaxation handlers
 objscip.hC++ wrapper classes for SCIP
 objscipdefplugins.hC++ wrapper for default SCIP plugins
 objsepa.hC++ wrapper for cut separators
 objvardata.hC++ wrapper for user variable data
 presol_boundshift.hPresolver that converts integer variables with domain [a,b] to integer variables with domain [0,b-a]
 presol_components.hComponents presolver
 presol_convertinttobin.hPresolver that converts integer variables with domain [a,a+1] to binaries
 presol_domcol.hDominated column presolver
 presol_dualagg.hAggregate variables by dual arguments
 presol_dualinfer.hDual inference presolver
 presol_gateextraction.hGateextraction presolver
 presol_implfree.hExploit implied free variables for multi-aggregation
 presol_implics.hImplication graph presolver which checks for aggregations
 presol_inttobinary.hPresolver that converts integer variables with domain [a,a+1] to binaries
 presol_redvub.hRemove redundant variable upper bound constraints
 presol_stuffing.hFix singleton continuous variables
 presol_trivial.hTrivial presolver: round fractional bounds on integer variables, fix variables with equal bounds
 presol_tworowbnd.hDo bound tightening by using two rows
 prop_dualfix.hFixing roundable variables to best bound
 prop_genvbounds.hGeneralized variable bounds propagator
 prop_obbt.hOptimization-based bound tightening propagator
 prop_probing.hProbing propagator
 prop_pseudoobj.hPseudo objective propagator
 prop_redcost.hPropagator using the LP reduced cost and the cutoff bound
 prop_rootredcost.hReduced cost strengthening using root node reduced costs and the cutoff bound
 prop_vbounds.hVariable upper and lower bound propagator
 pub_branch.hPublic methods for branching rules
 pub_compr.hPublic methods for tree compressions
 pub_conflict.hPublic methods for conflict analysis handlers
 pub_cons.hPublic methods for managing constraints
 pub_cutpool.hPublic methods for storing cuts in a cut pool
 pub_dialog.hPublic methods for user interface dialog
 pub_disp.hPublic methods for displaying runtime statistics
 pub_dive.hLibrary methods for diving heuristics
 pub_event.hPublic methods for managing events
 pub_expr.hPublic methods for expressions, expression trees, expression graphs, and related stuff
 pub_fileio.hWrapper functions to map file i/o to standard or zlib file i/o
 pub_heur.hPublic methods for primal heuristics
 pub_history.hPublic methods for branching and inference history structure
 pub_implics.hPublic methods for implications, variable bounds, and cliques
 pub_lp.hPublic methods for LP management
 pub_matrix.hPublic methods for matrix
 pub_message.hPublic methods for message output
 pub_misc.hPublic data structures and miscellaneous methods
 pub_nlp.hPublic methods for NLP management
 pub_nodesel.hPublic methods for node selectors
 pub_paramset.hPublic methods for handling parameter settings
 pub_presol.hPublic methods for presolvers
 pub_pricer.hPublic methods for variable pricers
 pub_prop.hPublic methods for propagators
 pub_reader.hPublic methods for input file readers
 pub_relax.hPublic methods for relaxation handlers
 pub_reopt.hPublic methods for reoptimization
 pub_sepa.hPublic methods for separators
 pub_sol.hPublic methods for primal CIP solutions
 pub_tree.hPublic methods for branch and bound tree
 pub_var.hPublic methods for problem variables
 reader_bnd.hFile reader for variable bounds
 reader_ccg.hColumn connectivity graph file reader (actually, only a writer)
 reader_cip.hCIP file reader
 reader_cnf.hCNF file reader
 reader_diff.hDiff file reader
 reader_fix.hFile reader for variable fixings
 reader_fzn.hFlatZinc file reader
 reader_gms.hGAMS file reader and writer
 reader_lp.hLP file reader
 reader_mps.h(extended) MPS file reader
 reader_opb.hPseudo-Boolean file reader (opb format)
 reader_osil.hOS instance language (OSiL) format file reader
 reader_pbm.hFile writer for portable bitmap file format (PBM), open with common graphic viewer programs (e.g. xview)
 reader_pip.hFile reader for polynomial mixed-integer programs in PIP format
 reader_ppm.hFile writer for portable pixmap file format (PPM), open with common graphic viewer programs (e.g. xview)
 reader_rlp.hRLP file reader (LP format with generic variables and row names)
 reader_sol.hFile reader for primal solutions
 reader_wbo.hWBO file reader (LP format with generic variables and row names)
 reader_zpl.hZIMPL model file reader
 scip.hSCIP callable library
 scipdefplugins.hDefault SCIP plugins
 scipgithash.hGit hash methods
 scipshell.hSCIP command line interface
 sepa_cgmip.hChvatal-Gomory cuts computed via a sub-MIP
 sepa_clique.hClique separator
 sepa_closecuts.hClosecuts meta separator
 sepa_cmir.hComplemented mixed integer rounding cuts separator (Marchand's version)
 sepa_disjunctive.hDisjunctive cut separator
 sepa_eccuts.hEdge concave cut separator
 sepa_flowcover.hFlowcover separator
 sepa_gomory.hGomory MIR Cuts
 sepa_impliedbounds.hImplied bounds separator
 sepa_intobj.hInteger objective value separator
 sepa_mcf.hMulti-commodity-flow network cut separator
 sepa_oddcycle.hOddcycle separator
 sepa_rapidlearning.hRapidlearning separator
 sepa_strongcg.hStrong CG Cuts (Letchford & Lodi)
 sepa_zerohalf.h{0,1/2}-cuts separator
 tclique_coloring.hColoring part of algorithm for maximum cliques
 tclique_def.hTclique defines
 type_branch.hType definitions for branching rules
 type_clock.hType definitions for clocks and timing issues
 type_compr.hType definitions for tree compression
 type_conflict.hType definitions for conflict analysis
 type_cons.hType definitions for constraints and constraint handlers
 type_cutpool.hType definitions for storing cuts in a cut pool
 type_dialog.hType definitions for user interface dialog
 type_disp.hType definitions for displaying runtime statistics
 type_event.hType definitions for managing events
 type_expr.hType definitions for expressions and expression trees
 type_exprinterpret.hType definitions for expression interpreter
 type_heur.hType definitions for primal heuristics
 type_history.hType definitions for branching and inference history
 type_implics.hType definitions for implications, variable bounds, and cliques
 type_interrupt.hType definitions for catching the user CTRL-C interrupt
 type_lp.hType definitions for LP management
 type_lpi.hType definitions for specific LP solvers interface
 type_matrix.hType definitions for MIP matrix
 type_mem.hType definitions for block memory pools and memory buffers
 type_message.hType definitions for message output methods
 type_misc.hType definitions for miscellaneous datastructures
 type_nlp.hType definitions for NLP management
 type_nlpi.hType definitions for specific NLP solver interfaces
 type_nodesel.hType definitions for node selectors
 type_objcloneable.hFunction type definitions for clonable classes
 type_objprobcloneable.hFunction type definitions for clonable classes which define problem data
 type_paramset.hType definitions for handling parameter settings
 type_presol.hType definitions for presolvers
 type_pricer.hType definitions for variable pricers
 type_pricestore.hType definitions for storing priced variables
 type_primal.hType definitions for collecting primal CIP solutions and primal informations
 type_prob.hType definitions for storing and manipulating the main problem
 type_prop.hType definitions for propagators
 type_reader.hType definitions for input file readers
 type_relax.hType definitions for relaxators
 type_reopt.hType definitions for collecting reoptimization information
 type_result.hResult codes for SCIP callback methods
 type_retcode.hType definitions for return codes for SCIP methods
 type_scip.hType definitions for SCIP's main datastructure
 type_sepa.hType definitions for separators
 type_sepastore.hType definitions for storing separated cuts
 type_set.hType definitions for global SCIP settings
 type_sol.hType definitions for storing primal CIP solutions
 type_stat.hType definitions for problem statistics
 type_timing.hTiming definitions for SCIP
 type_tree.hType definitions for branch and bound tree
 type_var.hType definitions for problem variables
 type_visual.hType definitions for output for visualization tools (VBC, BAK)
 xternal.cMain document page