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 2002-2022 Zuse Institute Berlin */
7 /* */
8 /* Licensed under the Apache License, Version 2.0 (the "License"); */
9 /* you may not use this file except in compliance with the License. */
10 /* You may obtain a copy of the License at */
11 /* */
12 /* */
13 /* */
14 /* Unless required by applicable law or agreed to in writing, software */
15 /* distributed under the License is distributed on an "AS IS" BASIS, */
16 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17 /* See the License for the specific language governing permissions and */
18 /* limitations under the License. */
19 /* */
20 /* You should have received a copy of the Apache-2.0 license */
21 /* along with SCIP; see the file LICENSE. If not visit */
22 /* */
23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
25 /**@file scipdefplugins.h
26  * @ingroup PUBLICCOREAPI
27  * @brief default SCIP plugins
28  * @author Tobias Achterberg
29  */
31 /*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
36 #include "scip/scip.h"
38 /* include header files here, such that the user only has to include
39  * scipdefplugins.h
40  */
42 #include "scip/branch_cloud.h"
44 #include "scip/branch_fullstrong.h"
45 #include "scip/branch_inference.h"
46 #include "scip/branch_leastinf.h"
47 #include "scip/branch_lookahead.h"
48 #include "scip/branch_mostinf.h"
49 #include "scip/branch_multaggr.h"
50 #include "scip/branch_nodereopt.h"
51 #include "scip/branch_pscost.h"
52 #include "scip/branch_random.h"
53 #include "scip/branch_relpscost.h"
55 #include "scip/compr_largestrepr.h"
56 #include "scip/compr_weakcompr.h"
57 #include "scip/cons_and.h"
58 #include "scip/cons_benders.h"
59 #include "scip/cons_benderslp.h"
61 #include "scip/cons_cardinality.h"
62 #include "scip/cons_conjunction.h"
63 #include "scip/cons_countsols.h"
64 #include "scip/cons_cumulative.h"
65 #include "scip/cons_disjunction.h"
66 #include "scip/cons_indicator.h"
67 #include "scip/cons_integral.h"
68 #include "scip/cons_knapsack.h"
69 #include "scip/cons_linear.h"
70 #include "scip/cons_linking.h"
71 #include "scip/cons_logicor.h"
72 #include "scip/cons_nonlinear.h"
73 #include "scip/cons_or.h"
74 #include "scip/cons_orbisack.h"
75 #include "scip/cons_orbitope.h"
77 #include "scip/cons_setppc.h"
78 #include "scip/cons_sos1.h"
79 #include "scip/cons_sos2.h"
81 #include "scip/cons_symresack.h"
82 #include "scip/cons_varbound.h"
83 #include "scip/cons_xor.h"
84 #include "scip/cons_components.h"
85 #include "scip/disp_default.h"
86 #include "scip/dialog_default.h"
87 #include "scip/event_estim.h"
90 #include "scip/expr_abs.h"
91 #include "scip/expr_entropy.h"
92 #include "scip/expr_exp.h"
93 #include "scip/expr_log.h"
94 #include "scip/expr_pow.h"
95 #include "scip/expr_product.h"
96 #include "scip/expr_sum.h"
97 #include "scip/expr_trig.h"
98 #include "scip/expr_value.h"
99 #include "scip/expr_var.h"
100 #include "scip/heur_actconsdiving.h"
102 #include "scip/heur_bound.h"
103 #include "scip/heur_clique.h"
104 #include "scip/heur_coefdiving.h"
105 #include "scip/heur_completesol.h"
107 #include "scip/heur_crossover.h"
108 #include "scip/heur_dins.h"
110 #include "scip/heur_dps.h"
111 #include "scip/heur_dualval.h"
112 #include "scip/heur_farkasdiving.h"
113 #include "scip/heur_feaspump.h"
114 #include "scip/heur_fixandinfer.h"
115 #include "scip/heur_fracdiving.h"
116 #include "scip/heur_gins.h"
117 #include "scip/heur_guideddiving.h"
118 #include "scip/heur_indicator.h"
119 #include "scip/heur_intdiving.h"
120 #include "scip/heur_intshifting.h"
123 #include "scip/heur_locks.h"
124 #include "scip/heur_lpface.h"
125 #include "scip/heur_alns.h"
126 #include "scip/heur_multistart.h"
127 #include "scip/heur_mutation.h"
128 #include "scip/heur_mpec.h"
129 #include "scip/heur_nlpdiving.h"
131 #include "scip/heur_octane.h"
132 #include "scip/heur_ofins.h"
133 #include "scip/heur_oneopt.h"
134 #include "scip/heur_padm.h"
135 #include "scip/heur_pscostdiving.h"
136 #include "scip/heur_proximity.h"
137 #include "scip/heur_randrounding.h"
138 #include "scip/heur_rens.h"
139 #include "scip/heur_reoptsols.h"
140 #include "scip/heur_repair.h"
141 #include "scip/heur_rins.h"
142 #include "scip/heur_rootsoldiving.h"
143 #include "scip/heur_rounding.h"
145 #include "scip/heur_shifting.h"
147 #include "scip/heur_subnlp.h"
148 #include "scip/heur_trivial.h"
150 #include "scip/heur_trustregion.h"
151 #include "scip/heur_trysol.h"
152 #include "scip/heur_twoopt.h"
153 #include "scip/heur_undercover.h"
154 #include "scip/heur_vbounds.h"
155 #include "scip/heur_veclendiving.h"
156 #include "scip/heur_zeroobj.h"
157 #include "scip/heur_zirounding.h"
158 #include "scip/nlhdlr_bilinear.h"
159 #include "scip/nlhdlr_convex.h"
160 #include "scip/nlhdlr_default.h"
161 #include "scip/nlhdlr_perspective.h"
162 #include "scip/nlhdlr_quadratic.h"
163 #include "scip/nlhdlr_quotient.h"
164 #include "scip/nlhdlr_soc.h"
165 #include "scip/nodesel_bfs.h"
167 #include "scip/nodesel_dfs.h"
168 #include "scip/nodesel_estimate.h"
170 #include "scip/nodesel_uct.h"
171 #include "scip/nodesel_restartdfs.h"
172 #include "scip/presol_boundshift.h"
174 #include "scip/presol_domcol.h"
175 #include "scip/presol_dualagg.h"
176 #include "scip/presol_dualcomp.h"
177 #include "scip/presol_dualinfer.h"
179 #include "scip/presol_implics.h"
180 #include "scip/presol_inttobinary.h"
181 #include "scip/presol_milp.h"
182 #include "scip/presol_redvub.h"
183 #include "scip/presol_qpkktref.h"
184 #include "scip/presol_trivial.h"
185 #include "scip/presol_tworowbnd.h"
186 #include "scip/presol_sparsify.h"
188 #include "scip/presol_stuffing.h"
189 #include "scip/prop_dualfix.h"
190 #include "scip/prop_genvbounds.h"
191 #include "scip/prop_nlobbt.h"
192 #include "scip/prop_obbt.h"
193 #include "scip/prop_probing.h"
194 #include "scip/prop_pseudoobj.h"
195 #include "scip/prop_redcost.h"
196 #include "scip/prop_rootredcost.h"
197 #include "scip/prop_symmetry.h"
198 #include "scip/prop_vbounds.h"
199 #include "scip/reader_bnd.h"
200 #include "scip/reader_ccg.h"
201 #include "scip/reader_cip.h"
202 #include "scip/reader_cnf.h"
203 #include "scip/reader_cor.h"
204 #include "scip/reader_dec.h"
205 #include "scip/reader_diff.h"
206 #include "scip/reader_fix.h"
207 #include "scip/reader_fzn.h"
208 #include "scip/reader_gms.h"
209 #include "scip/reader_lp.h"
210 #include "scip/reader_mps.h"
211 #include "scip/reader_mst.h"
212 #include "scip/reader_nl.h"
213 #include "scip/reader_opb.h"
214 #include "scip/reader_osil.h"
215 #include "scip/reader_pip.h"
216 #include "scip/reader_ppm.h"
217 #include "scip/reader_pbm.h"
218 #include "scip/reader_rlp.h"
219 #include "scip/reader_smps.h"
220 #include "scip/reader_sol.h"
221 #include "scip/reader_sto.h"
222 #include "scip/reader_tim.h"
223 #include "scip/reader_wbo.h"
224 #include "scip/reader_zpl.h"
225 #include "scip/sepa_eccuts.h"
226 #include "scip/sepa_cgmip.h"
227 #include "scip/sepa_clique.h"
228 #include "scip/sepa_closecuts.h"
229 #include "scip/sepa_aggregation.h"
230 #include "scip/sepa_convexproj.h"
231 #include "scip/sepa_disjunctive.h"
232 #include "scip/sepa_gauge.h"
233 #include "scip/sepa_gomory.h"
234 #include "scip/sepa_impliedbounds.h"
235 #include "scip/sepa_interminor.h"
236 #include "scip/sepa_intobj.h"
237 #include "scip/sepa_mcf.h"
238 #include "scip/sepa_minor.h"
239 #include "scip/sepa_mixing.h"
240 #include "scip/sepa_oddcycle.h"
241 #include "scip/sepa_rapidlearning.h"
242 #include "scip/sepa_rlt.h"
243 #include "scip/sepa_zerohalf.h"
244 #include "scip/scipshell.h"
245 #include "scip/symmetry.h"
246 #include "scip/table_default.h"
247 #include "scip/concsolver_scip.h"
248 #include "scip/benders_default.h"
249 #include "scip/cutsel_hybrid.h"
251 #include "scip/expr_varidx.h"
252 #include "scip/nlpi_ipopt.h"
253 #include "scip/nlpi_filtersqp.h"
254 #include "scip/nlpi_worhp.h"
255 #include "scip/nlpi_all.h"
257 #ifdef __cplusplus
258 extern "C" {
259 #endif
261 /** includes default SCIP plugins into SCIP */
264  SCIP* scip /**< SCIP data structure */
265  );
267 #ifdef __cplusplus
268 }
269 #endif
271 #endif
presolver that converts integer variables with domain [a,a+1] to binaries
SCIP_RETCODE SCIPincludeDefaultPlugins(SCIP *scip)
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.
mixing cuts separator
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.
hybrid cut selector
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
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.
handler for -x*log(x) expressions
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:63
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
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
variable expression handler
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.
bilinear nonlinear handler
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.
handler for variable index expressions
constraint handler for conjunction constraints
principal minor separator
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...
soc nonlinear handler
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
power and signed power expression handlers
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.
quotient nonlinear handler
repair primal heuristic
nonlinear handlers for convex and concave expressions, respectively
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
default nonlinear handler that calls expression handler methods
multi-commodity-flow network cut separator
logarithm expression handler
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 specified by algebraic expressions
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
handler for sin expressions
Objective Feasibility Pump 2.0.
eventhdlr for soft time limit
LNS heuristic uses the variable lower and upper bounds to determine the search neighborhood.
perspective nonlinear handler
eventhdlr for solving phase dependent parameter adjustment
Gomory MIR Cuts.
reoptsols primal heuristic
Constraint handler for linear constraints in their most general form, .
locks primal heuristic
NLP interface that uses all available NLP interfaces.
integer objective value separator
ZI Round primal heuristic.
absolute expression handler
constant value expression handler
{0,1/2}-cuts separator
do bound tightening by using two rows
AMPL .nl file reader.
LP diving heuristic that fixes variables with a large difference to their root solution.
product expression handler
reformulation-linearization technique separator
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)
methods for handling symmetries
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
default user interface dialog
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
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 ...
sum expression handler
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
dynamic partition search
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
nonlinear handler to handle quadratic expressions
oddcycle separator
node selector for depth first search
improvement heuristic which uses an auxiliary objective instead of the original objective function wh...
exponential expression handler
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.