Solving Constraint Integer Programs

Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2020 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16 /**@file scipdefplugins.h
17  * @ingroup PUBLICCOREAPI
18  * @brief default SCIP plugins
19  * @author Tobias Achterberg
20  */
22 /*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
27 #include "scip/scip.h"
29 /* include header files here, such that the user only has to include
30  * scipdefplugins.h
31  */
33 #include "scip/branch_cloud.h"
35 #include "scip/branch_fullstrong.h"
36 #include "scip/branch_inference.h"
37 #include "scip/branch_leastinf.h"
38 #include "scip/branch_lookahead.h"
39 #include "scip/branch_mostinf.h"
40 #include "scip/branch_multaggr.h"
41 #include "scip/branch_nodereopt.h"
42 #include "scip/branch_pscost.h"
43 #include "scip/branch_random.h"
44 #include "scip/branch_relpscost.h"
46 #include "scip/compr_largestrepr.h"
47 #include "scip/compr_weakcompr.h"
48 #include "scip/cons_abspower.h"
49 #include "scip/cons_and.h"
50 #include "scip/cons_benders.h"
51 #include "scip/cons_benderslp.h"
52 #include "scip/cons_bivariate.h"
54 #include "scip/cons_cardinality.h"
55 #include "scip/cons_conjunction.h"
56 #include "scip/cons_countsols.h"
57 #include "scip/cons_cumulative.h"
58 #include "scip/cons_disjunction.h"
59 #include "scip/cons_indicator.h"
60 #include "scip/cons_integral.h"
61 #include "scip/cons_knapsack.h"
62 #include "scip/cons_linear.h"
63 #include "scip/cons_linking.h"
64 #include "scip/cons_logicor.h"
65 #include "scip/cons_nonlinear.h"
66 #include "scip/cons_or.h"
67 #include "scip/cons_orbisack.h"
68 #include "scip/cons_orbitope.h"
70 #include "scip/cons_quadratic.h"
71 #include "scip/cons_setppc.h"
72 #include "scip/cons_soc.h"
73 #include "scip/cons_sos1.h"
74 #include "scip/cons_sos2.h"
76 #include "scip/cons_symresack.h"
77 #include "scip/cons_varbound.h"
78 #include "scip/cons_xor.h"
79 #include "scip/cons_components.h"
80 #include "scip/disp_default.h"
81 #include "scip/event_estim.h"
86 #include "scip/heur_bound.h"
87 #include "scip/heur_clique.h"
88 #include "scip/heur_coefdiving.h"
89 #include "scip/heur_completesol.h"
91 #include "scip/heur_crossover.h"
92 #include "scip/heur_dins.h"
94 #include "scip/heur_dualval.h"
95 #include "scip/heur_farkasdiving.h"
96 #include "scip/heur_feaspump.h"
97 #include "scip/heur_fixandinfer.h"
98 #include "scip/heur_fracdiving.h"
99 #include "scip/heur_gins.h"
100 #include "scip/heur_guideddiving.h"
101 #include "scip/heur_indicator.h"
102 #include "scip/heur_intdiving.h"
103 #include "scip/heur_intshifting.h"
106 #include "scip/heur_locks.h"
107 #include "scip/heur_lpface.h"
108 #include "scip/heur_alns.h"
109 #include "scip/heur_multistart.h"
110 #include "scip/heur_mutation.h"
111 #include "scip/heur_mpec.h"
112 #include "scip/heur_nlpdiving.h"
114 #include "scip/heur_octane.h"
115 #include "scip/heur_ofins.h"
116 #include "scip/heur_oneopt.h"
117 #include "scip/heur_padm.h"
118 #include "scip/heur_pscostdiving.h"
119 #include "scip/heur_proximity.h"
120 #include "scip/heur_randrounding.h"
121 #include "scip/heur_rens.h"
122 #include "scip/heur_reoptsols.h"
123 #include "scip/heur_repair.h"
124 #include "scip/heur_rins.h"
125 #include "scip/heur_rootsoldiving.h"
126 #include "scip/heur_rounding.h"
128 #include "scip/heur_shifting.h"
130 #include "scip/heur_subnlp.h"
131 #include "scip/heur_trivial.h"
133 #include "scip/heur_trustregion.h"
134 #include "scip/heur_trysol.h"
135 #include "scip/heur_twoopt.h"
136 #include "scip/heur_undercover.h"
137 #include "scip/heur_vbounds.h"
138 #include "scip/heur_veclendiving.h"
139 #include "scip/heur_zeroobj.h"
140 #include "scip/heur_zirounding.h"
141 #include "scip/nodesel_bfs.h"
143 #include "scip/nodesel_dfs.h"
144 #include "scip/nodesel_estimate.h"
146 #include "scip/nodesel_uct.h"
147 #include "scip/nodesel_restartdfs.h"
148 #include "scip/presol_boundshift.h"
150 #include "scip/presol_domcol.h"
151 #include "scip/presol_dualagg.h"
152 #include "scip/presol_dualcomp.h"
153 #include "scip/presol_dualinfer.h"
155 #include "scip/presol_implics.h"
156 #include "scip/presol_inttobinary.h"
158 #include "scip/presol_milp.h"
159 #endif
160 #include "scip/presol_redvub.h"
161 #include "scip/presol_qpkktref.h"
162 #include "scip/presol_trivial.h"
163 #include "scip/presol_tworowbnd.h"
164 #include "scip/presol_sparsify.h"
166 #include "scip/presol_stuffing.h"
167 #include "scip/prop_dualfix.h"
168 #include "scip/prop_genvbounds.h"
169 #include "scip/prop_nlobbt.h"
170 #include "scip/prop_obbt.h"
171 #include "scip/prop_probing.h"
172 #include "scip/prop_pseudoobj.h"
173 #include "scip/prop_redcost.h"
174 #include "scip/prop_rootredcost.h"
175 #include "scip/prop_symmetry.h"
176 #include "scip/prop_vbounds.h"
177 #include "scip/reader_bnd.h"
178 #include "scip/reader_ccg.h"
179 #include "scip/reader_cip.h"
180 #include "scip/reader_cnf.h"
181 #include "scip/reader_cor.h"
182 #include "scip/reader_dec.h"
183 #include "scip/reader_diff.h"
184 #include "scip/reader_fix.h"
185 #include "scip/reader_fzn.h"
186 #include "scip/reader_gms.h"
187 #include "scip/reader_lp.h"
188 #include "scip/reader_mps.h"
189 #include "scip/reader_mst.h"
190 #include "scip/reader_opb.h"
191 #include "scip/reader_osil.h"
192 #include "scip/reader_pip.h"
193 #include "scip/reader_ppm.h"
194 #include "scip/reader_pbm.h"
195 #include "scip/reader_rlp.h"
196 #include "scip/reader_smps.h"
197 #include "scip/reader_sol.h"
198 #include "scip/reader_sto.h"
199 #include "scip/reader_tim.h"
200 #include "scip/reader_wbo.h"
201 #include "scip/reader_zpl.h"
202 #include "scip/sepa_eccuts.h"
203 #include "scip/sepa_cgmip.h"
204 #include "scip/sepa_clique.h"
205 #include "scip/sepa_closecuts.h"
206 #include "scip/sepa_aggregation.h"
207 #include "scip/sepa_convexproj.h"
208 #include "scip/sepa_disjunctive.h"
209 #include "scip/sepa_gauge.h"
210 #include "scip/sepa_gomory.h"
211 #include "scip/sepa_impliedbounds.h"
212 #include "scip/sepa_intobj.h"
213 #include "scip/sepa_mcf.h"
214 #include "scip/sepa_oddcycle.h"
215 #include "scip/sepa_rapidlearning.h"
216 #include "scip/sepa_strongcg.h"
217 #include "scip/sepa_zerohalf.h"
218 #include "scip/scipshell.h"
219 #include "scip/table_default.h"
220 #include "scip/concsolver_scip.h"
221 #include "scip/benders_default.h"
223 #include "nlpi/nlpi_ipopt.h"
224 #include "nlpi/nlpi_filtersqp.h"
225 #include "nlpi/nlpi_worhp.h"
226 #include "nlpi/nlpi_all.h"
228 #ifdef __cplusplus
229 extern "C" {
230 #endif
232 /** includes default SCIP plugins into SCIP */
235  SCIP* scip /**< SCIP data structure */
236  );
238 #ifdef __cplusplus
239 }
240 #endif
242 #endif
presolver that converts integer variables with domain [a,a+1] to binaries
constraint handler for disjunction constraints
reliable pseudo costs branching rule
Primal heuristic to improve incumbent solution by flipping pairs of variables.
constraint handler for Benders&#39; decomposition
mpec primal heuristic
LNS heuristic using a clique partition to restrict the search neighborhood.
MILP presolver that calls the presolve library on the constraint matrix.
convexproj separator
RLP file reader (LP format with generic variables and row names)
Large neighborhood search heuristic for Benders&#39; decomposition based on trust region methods...
NLP diving heuristic that chooses fixings w.r.t. the fractionalities.
primal heuristic that tries a given solution
probability based branching rule based on an article by J. Pryor and J.W. Chinneck ...
trivialnegation primal heuristic
TIM file reader - the stage information for a stochastic programming instance in SMPS format...
Improvement heuristic that alters single variable values.
node selector for hybrid best estimate / best bound search
constraint handler for cumulative constraints
preroot heuristic that alternatingly fixes variables and propagates domains
Constraint handler for variable bound constraints .
LP rounding heuristic that tries to recover from intermediate infeasibilities and shifts continuous v...
CNF file reader.
Pseudo objective propagator.
primal heuristic trying to complete given partial solutions
dual compensation presolver
LP rounding heuristic that tries to recover from intermediate infeasibilities.
cancel nonzeros of the constraint matrix based on the columns
COR file reader (MPS format of the core problem for stochastic programs)
reduced cost strengthening using root node reduced costs and the cutoff bound
Definition: def.h:100
random variable branching rule
diff file reader
constraint handler for indicator constraints
fix singleton continuous variables
trivial primal heuristic
Undercover primal heuristic for MINLPs.
dominated column presolver
gauge separator
CIP file reader.
aggregate variables by dual arguments
node selector for depth first search with periodical selection of the best node
constraint handler for orbisack constraints
Definition: type_retcode.h:54
default statistics tables
LP diving heuristic that chooses fixings in direction of incumbent solutions.
STO file reader - the stochastic information of an instance in SMPS format.
default display columns
edge concave cut separator
LP diving heuristic that chooses fixings w.r.t. the fractionalities.
OS instance language (OSiL) format file reader.
disjunctive cut separator
constraint handler for indicator constraints over arbitrary constraint types
least infeasible LP branching rule
Constraint handler for AND constraints, .
file writer for portable pixmap file format (PPM), open with common graphic viewer programs (e...
nodereopt branching rule
constraint handler for second order cone constraints
LP diving heuristic that chooses fixings w.r.t. the pseudo cost values.
Constraint handler for counting feasible solutions.
Constraint handler for the set partitioning / packing / covering constraints .
constraint handler for handling independent components
event handler for tree size estimation and restarts
flow cover and complemented mixed integer rounding cuts separator (Marchand&#39;s version) ...
trivial presolver: round fractional bounds on integer variables, fix variables with equal bounds ...
filterSQP NLP interface
file reader for variable bounds
LP diving heuristic that chooses fixings w.r.t. the matrix coefficients.
cancel non-zeros of the constraint matrix
constraint handler for (partitioning/packing/full) orbitope constraints w.r.t. the full symmetric gro...
constraint handler for symresack constraints
Constraint handler for "or" constraints, .
variable upper and lower bound propagator
Constraint handler for knapsack constraints of the form , x binary and .
LP diving heuristic that fixes variables with integral LP value.
primal heuristic that uses dualvalues for successive switching variable values
cloud branching rule
weakcompr tree compression
implementation of concurrent solver interface for SCIP
LNS heuristic that tries to combine several feasible solutions.
constraint handler for conjunction constraints
LP diving heuristic that tries to construct a Farkas-proof.
SCIP command line interface.
propagator using the LP reduced cost and the cutoff bound
closecuts meta separator
Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo...
PADM primal heuristic based on ideas published in the paper "A Decomposition Heuristic for Mixed-Inte...
ZIMPL model file reader.
Local branching heuristic according to Fischetti and Lodi.
LP diving heuristic that chooses fixings w.r.t. the active constraints the variable appear in...
constraint handler for quadratic constraints
SCIP_EXPORT SCIP_RETCODE SCIPincludeDefaultPlugins(SCIP *scip)
LNS heuristic that tries to delimit the search region to a neighborhood in the constraint graph...
LNS heuristic that tries to randomly mutate the incumbent solution.
file reader for polynomial mixed-integer programs in PIP format
Adaptive large neighborhood search heuristic that orchestrates popular LNS heuristics.
handle partial solutions for linear problems with indicators and otherwise continuous variables ...
node selector for best estimate search
Worhp NLP interface.
propagator for symmetry handling
file writer for portable bitmap file format (PBM), open with common graphic viewer programs (e...
LNS heuristic that finds the optimal rounding to a given point.
repair primal heuristic
constraint handler for linking binary variables to a linking (continuous or integer) variable ...
Ipopt NLP interface.
full strong LP branching rule
LP diving heuristic that changes variables&#39; objective values using root LP solution as guide...
pseudo costs branching rule
fullstrong branching on fractional and multi-aggregated variables
multi-commodity-flow network cut separator
WBO file reader (LP format with generic variables and row names)
file reader for variable fixings
Column connectivity graph file reader (actually, only a writer)
fix-and-infer primal heuristic
constraint handler for nonlinear constraints
nonlinear OBBT propagator
LNS heuristic that combines the incumbent with the LP optimum.
optimization-based bound tightening propagator
implication graph presolver which checks for aggregations
Objective Feasibility Pump 2.0.
eventhdlr for soft time limit
LNS heuristic uses the variable lower and upper bounds to determine the search neighborhood.
eventhdlr for solving phase dependent parameter adjustment
Gomory MIR Cuts.
reoptsols primal heuristic
constraint handler for bivariate nonlinear constraints
Constraint handler for linear constraints in their most general form, .
locks primal heuristic
ALL NLP interface.
Constraint handler for absolute power constraints .
integer objective value separator
ZI Round primal heuristic.
{0,1/2}-cuts separator
do bound tightening by using two rows
LP diving heuristic that fixes variables with a large difference to their root solution.
GAMS file reader and writer.
most infeasible LP branching rule
implied bounds separator
all variables full strong LP branching rule
Constraint handler for XOR constraints, .
DINS primal heuristic.
Diving heuristic that chooses fixings w.r.t. changes in the solution density after Pryor and Chinneck...
remove redundant variable upper bound constraints
dual inference presolver
LP file reader.
pseudo-Boolean file reader (opb format)
node selector for best first search
heuristic that tries to solve the problem without objective. In Gurobi, this heuristic is known as "H...
constraint handler for cardinality constraints
probing propagator
FlatZinc file reader.
file reader for primal solutions
NLP local search primal heuristic using sub-SCIPs.
Chvatal-Gomory cuts computed via a sub-MIP.
constraint handler for benderslp decomposition
LP diving heuristic that rounds variables with long column vectors.
constraint handler for the integrality constraint
inference history branching rule
SMPS file reader - SMPS files lists the cor, tim and sto files for a single instance to be read...
gateextraction presolver
constraint handler for SOS type 1 constraints
default Benders&#39; decomposition plugin
LP diving heuristic that chooses fixings w.r.t. conflict locks.
rapidlearning separator
Simple and fast LP rounding heuristic.
largestrepr tree compression
presolver that converts integer variables with domain [a,a+1] to binaries
file reader for partial primal solutions
Strong CG Cuts (Letchford & Lodi)
diving heuristic that selects adaptively between the existing, public dive sets
vanilla full strong LP branching rule
octane primal heuristic based on Balas, Ceria, Dawande, Margot, and Pataki
randomized LP rounding heuristic which also generates conflicts via an auxiliary probing tree ...
constraint handler for pseudoboolean constraints
constraint handler for SOS type 2 constraints
file reader for decompositions in the constraint based dec-file format.
uct node selector which balances exploration and exploitation by considering node visits ...
clique separator
LP rounding heuristic that tries to recover from intermediate infeasibilities, shifts integer variabl...
constraint handler for bound disjunction constraints
LP diving heuristic that changes variable&#39;s objective value instead of bounds, using pseudo cost valu...
fixing roundable variables to best bound
lookahead LP branching rule
oddcycle separator
node selector for depth first search
improvement heuristic which uses an auxiliary objective instead of the original objective function wh...
node selector for breadth-first search
SCIP callable library.
LNS heuristic that tries to compute integral solution on optimal LP face.
multistart heuristic for convex and nonconvex MINLPs
(extended) MPS file reader
heuristic which fixes all integer variables to a bound (lower/upper) and solves the remaining LP ...
generalized variable bounds propagator
presolver that converts integer variables with domain [a,b] to integer variables with domain [0...
qpkktref presolver
OFINS - Objective Function Induced Neighborhood Search - a primal heuristic for reoptimization.