Scippy

SCIP

Solving Constraint Integer Programs

scipdefplugins.h
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-2024 Zuse Institute Berlin (ZIB) */
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/* http://www.apache.org/licenses/LICENSE-2.0 */
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 scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file scipdefplugins.h
26 * @ingroup PUBLICCOREAPI
27 * @brief default SCIP plugins
28 * @author Tobias Achterberg
29 */
30
31/*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_SCIPDEFPLUGINS_H__
34#define __SCIP_SCIPDEFPLUGINS_H__
35
36#include "scip/scip.h"
37
38/* include header files here, such that the user only has to include
39 * scipdefplugins.h
40 */
42#include "scip/branch_cloud.h"
45#include "scip/branch_gomory.h"
49#include "scip/branch_mostinf.h"
52#include "scip/branch_pscost.h"
53#include "scip/branch_random.h"
58#include "scip/cons_and.h"
59#include "scip/cons_benders.h"
60#include "scip/cons_benderslp.h"
64#include "scip/cons_countsols.h"
67#include "scip/cons_fixedvar.h"
68#include "scip/cons_indicator.h"
69#include "scip/cons_integral.h"
70#include "scip/cons_knapsack.h"
71#include "scip/cons_linear.h"
72#include "scip/cons_linking.h"
73#include "scip/cons_logicor.h"
74#include "scip/cons_nonlinear.h"
75#include "scip/cons_or.h"
76#include "scip/cons_orbisack.h"
77#include "scip/cons_orbitope.h"
79#include "scip/cons_setppc.h"
80#include "scip/cons_sos1.h"
81#include "scip/cons_sos2.h"
83#include "scip/cons_symresack.h"
84#include "scip/cons_varbound.h"
85#include "scip/cons_xor.h"
87#include "scip/disp_default.h"
88#include "scip/dialog_default.h"
89#include "scip/event_estim.h"
92#include "scip/expr_abs.h"
93#include "scip/expr_entropy.h"
94#include "scip/expr_exp.h"
95#include "scip/expr_log.h"
96#include "scip/expr_pow.h"
97#include "scip/expr_product.h"
98#include "scip/expr_sum.h"
99#include "scip/expr_trig.h"
100#include "scip/expr_value.h"
101#include "scip/expr_var.h"
104#include "scip/heur_bound.h"
105#include "scip/heur_clique.h"
106#include "scip/heur_coefdiving.h"
109#include "scip/heur_crossover.h"
110#include "scip/heur_dins.h"
112#include "scip/heur_dps.h"
113#include "scip/heur_dualval.h"
115#include "scip/heur_feaspump.h"
117#include "scip/heur_fracdiving.h"
118#include "scip/heur_gins.h"
120#include "scip/heur_indicator.h"
122#include "scip/heur_intdiving.h"
126#include "scip/heur_locks.h"
127#include "scip/heur_lpface.h"
128#include "scip/heur_alns.h"
129#include "scip/heur_multistart.h"
130#include "scip/heur_mutation.h"
131#include "scip/heur_mpec.h"
132#include "scip/heur_nlpdiving.h"
134#include "scip/heur_octane.h"
135#include "scip/heur_ofins.h"
136#include "scip/heur_oneopt.h"
137#include "scip/heur_padm.h"
139#include "scip/heur_proximity.h"
141#include "scip/heur_rens.h"
142#include "scip/heur_reoptsols.h"
143#include "scip/heur_repair.h"
144#include "scip/heur_rins.h"
146#include "scip/heur_rounding.h"
147#include "scip/heur_scheduler.h"
149#include "scip/heur_shifting.h"
151#include "scip/heur_subnlp.h"
152#include "scip/heur_trivial.h"
155#include "scip/heur_trysol.h"
156#include "scip/heur_twoopt.h"
157#include "scip/heur_undercover.h"
158#include "scip/heur_vbounds.h"
160#include "scip/heur_zeroobj.h"
161#include "scip/heur_zirounding.h"
162#include "scip/nlhdlr_bilinear.h"
163#include "scip/nlhdlr_convex.h"
164#include "scip/nlhdlr_default.h"
167#include "scip/nlhdlr_quotient.h"
169#include "scip/nlhdlr_soc.h"
170#include "scip/nodesel_bfs.h"
172#include "scip/nodesel_dfs.h"
175#include "scip/nodesel_uct.h"
179#include "scip/presol_domcol.h"
180#include "scip/presol_dualagg.h"
181#include "scip/presol_dualcomp.h"
184#include "scip/presol_implics.h"
186#include "scip/presol_milp.h"
187#include "scip/presol_redvub.h"
188#include "scip/presol_qpkktref.h"
189#include "scip/presol_trivial.h"
191#include "scip/presol_sparsify.h"
193#include "scip/presol_stuffing.h"
194#include "scip/prop_dualfix.h"
195#include "scip/prop_genvbounds.h"
196#include "scip/prop_nlobbt.h"
197#include "scip/prop_obbt.h"
198#include "scip/prop_probing.h"
199#include "scip/prop_pseudoobj.h"
200#include "scip/prop_redcost.h"
202#include "scip/prop_symmetry.h"
203#include "scip/prop_vbounds.h"
204#include "scip/reader_bnd.h"
205#include "scip/reader_ccg.h"
206#include "scip/reader_cip.h"
207#include "scip/reader_cnf.h"
208#include "scip/reader_cor.h"
209#include "scip/reader_dec.h"
210#include "scip/reader_diff.h"
211#include "scip/reader_fix.h"
212#include "scip/reader_fzn.h"
213#include "scip/reader_gms.h"
214#include "scip/reader_lp.h"
215#include "scip/reader_mps.h"
216#include "scip/reader_mst.h"
217#include "scip/reader_nl.h"
218#include "scip/reader_opb.h"
219#include "scip/reader_osil.h"
220#include "scip/reader_pip.h"
221#include "scip/reader_ppm.h"
222#include "scip/reader_pbm.h"
223#include "scip/reader_rlp.h"
224#include "scip/reader_smps.h"
225#include "scip/reader_sol.h"
226#include "scip/reader_sto.h"
227#include "scip/reader_tim.h"
228#include "scip/reader_wbo.h"
229#include "scip/reader_zpl.h"
230#include "scip/sepa_eccuts.h"
231#include "scip/sepa_cgmip.h"
232#include "scip/sepa_clique.h"
233#include "scip/sepa_closecuts.h"
235#include "scip/sepa_convexproj.h"
237#include "scip/sepa_gauge.h"
238#include "scip/sepa_gomory.h"
240#include "scip/sepa_interminor.h"
241#include "scip/sepa_intobj.h"
242#include "scip/sepa_lagromory.h"
243#include "scip/sepa_mcf.h"
244#include "scip/sepa_minor.h"
245#include "scip/sepa_mixing.h"
246#include "scip/sepa_oddcycle.h"
248#include "scip/sepa_rlt.h"
249#include "scip/sepa_zerohalf.h"
250#include "scip/scipshell.h"
251#include "scip/symmetry.h"
252#include "scip/table_default.h"
253#include "scip/concsolver_scip.h"
254#include "scip/benders_default.h"
255#include "scip/cutsel_hybrid.h"
256#include "scip/cutsel_dynamic.h"
257#include "scip/cutsel_ensemble.h"
258
259#include "scip/expr_varidx.h"
260#include "scip/nlpi_ipopt.h"
261#include "scip/nlpi_filtersqp.h"
262#include "scip/nlpi_worhp.h"
263#include "scip/nlpi_all.h"
264
265#ifdef __cplusplus
266extern "C" {
267#endif
268
269/** includes default SCIP plugins into SCIP */
270SCIP_EXPORT
272 SCIP* scip /**< SCIP data structure */
273 );
274
275#ifdef __cplusplus
276}
277#endif
278
279#endif
default Benders' decomposition plugin
all variables full strong LP branching rule
cloud branching rule
probability based branching rule based on an article by J. Pryor and J.W. Chinneck
full strong LP branching rule
Gomory cut branching rule.
inference history branching rule
least infeasible LP branching rule
lookahead LP branching rule
most infeasible LP branching rule
fullstrong branching on fractional and multi-aggregated variables
nodereopt branching rule
pseudo costs branching rule
random variable branching rule
reliable pseudo costs branching rule
vanilla full strong LP branching rule
largestrepr tree compression
weakcompr tree compression
implementation of concurrent solver interface for SCIP
Constraint handler for AND constraints, .
constraint handler for Benders' decomposition
constraint handler for benderslp decomposition
constraint handler for bound disjunction constraints
constraint handler for cardinality constraints
constraint handler for handling independent components
constraint handler for conjunction constraints
Constraint handler for counting feasible solutions.
constraint handler for cumulative constraints
constraint handler for disjunction constraints
constraint handler that checks bounds on fixed variables
constraint handler for indicator constraints
constraint handler for the integrality constraint
Constraint handler for knapsack constraints of the form , x binary and .
Constraint handler for linear constraints in their most general form, .
constraint handler for linking binary variables to a linking (continuous or integer) variable
Constraint handler for logicor constraints (equivalent to set covering, but algorithms are suited fo...
constraint handler for nonlinear constraints specified by algebraic expressions
Constraint handler for "or" constraints, .
constraint handler for orbisack constraints
constraint handler for (partitioning/packing/full) orbitope constraints w.r.t. the full symmetric gro...
constraint handler for pseudoboolean constraints
Constraint handler for the set partitioning / packing / covering constraints .
constraint handler for SOS type 1 constraints
constraint handler for SOS type 2 constraints
constraint handler for indicator constraints over arbitrary constraint types
constraint handler for symresack constraints
Constraint handler for variable bound constraints .
Constraint handler for XOR constraints, .
dynamic cut selector
ensemble cut selector
hybrid cut selector
default user interface dialog
default display columns
event handler for tree size estimation and restarts
eventhdlr for soft time limit
eventhdlr for solving phase dependent parameter adjustment
absolute expression handler
handler for -x*log(x) expressions
exponential expression handler
logarithm expression handler
power and signed power expression handlers
product expression handler
sum expression handler
handler for sin expressions
constant value expression handler
variable expression handler
handler for variable index expressions
LP diving heuristic that chooses fixings w.r.t. the active constraints the variable appear in.
diving heuristic that selects adaptively between the existing, public dive sets
Adaptive large neighborhood search heuristic that orchestrates popular LNS heuristics.
heuristic which fixes all integer variables to a bound (lower/upper) and solves the remaining LP
LNS heuristic using a clique partition to restrict the search neighborhood.
LP diving heuristic that chooses fixings w.r.t. the matrix coefficients.
primal heuristic trying to complete given partial solutions
LP diving heuristic that chooses fixings w.r.t. conflict locks.
LNS heuristic that tries to combine several feasible solutions.
DINS primal heuristic.
Diving heuristic that chooses fixings w.r.t. changes in the solution density after Pryor and Chinneck...
dynamic partition search
primal heuristic that uses dualvalues for successive switching variable values
LP diving heuristic that tries to construct a Farkas-proof.
Objective Feasibility Pump 2.0.
fix-and-infer primal heuristic
LP diving heuristic that chooses fixings w.r.t. the fractionalities.
LNS heuristic that tries to delimit the search region to a neighborhood in the constraint graph.
LP diving heuristic that chooses fixings in direction of incumbent solutions.
handle partial solutions for linear problems with indicators and otherwise continuous variables
LP diving heuristic that fixes indicator variables controlling semicontinuous variables.
LP diving heuristic that fixes variables with integral LP value.
LP rounding heuristic that tries to recover from intermediate infeasibilities, shifts integer variabl...
LP diving heuristic that fixes variables with a large difference to their root solution.
Local branching heuristic according to Fischetti and Lodi.
locks primal heuristic
LNS heuristic that tries to compute integral solution on optimal LP face.
mpec primal heuristic
multistart heuristic for convex and nonconvex MINLPs
LNS heuristic that tries to randomly mutate the incumbent solution.
NLP diving heuristic that chooses fixings w.r.t. the fractionalities.
LP diving heuristic that changes variable's objective value instead of bounds, using pseudo cost valu...
octane primal heuristic based on Balas, Ceria, Dawande, Margot, and Pataki
OFINS - Objective Function Induced Neighborhood Search - a primal heuristic for reoptimization.
Improvement heuristic that alters single variable values.
PADM primal heuristic.
improvement heuristic which uses an auxiliary objective instead of the original objective function wh...
LP diving heuristic that chooses fixings w.r.t. the pseudo cost values.
randomized LP rounding heuristic which also generates conflicts via an auxiliary probing tree
LNS heuristic that finds the optimal rounding to a given point.
reoptsols primal heuristic
repair primal heuristic
LNS heuristic that combines the incumbent with the LP optimum.
LP diving heuristic that changes variables' objective values using root LP solution as guide.
LP rounding heuristic that tries to recover from intermediate infeasibilities.
Adaptive heuristic to schedule LNS and diving heuristics.
preroot heuristic that alternatingly fixes variables and propagates domains
LP rounding heuristic that tries to recover from intermediate infeasibilities and shifts continuous v...
Simple and fast LP rounding heuristic.
NLP local search primal heuristic using sub-SCIPs.
trivial primal heuristic
trivialnegation primal heuristic
Large neighborhood search heuristic for Benders' decomposition based on trust region methods.
primal heuristic that tries a given solution
Primal heuristic to improve incumbent solution by flipping pairs of variables.
Undercover primal heuristic for MINLPs.
LNS heuristic uses the variable lower and upper bounds to determine the search neighborhood.
LP diving heuristic that rounds variables with long column vectors.
heuristic that tries to solve the problem without objective. In Gurobi, this heuristic is known as "H...
ZI Round primal heuristic.
bilinear nonlinear handler
nonlinear handlers for convex and concave expressions, respectively
default nonlinear handler that calls expression handler methods
perspective nonlinear handler
nonlinear handler to handle quadratic expressions
quotient nonlinear handler
signomial nonlinear handler
soc nonlinear handler
NLP interface that uses all available NLP interfaces.
filterSQP NLP interface
Ipopt NLP interface.
Worhp NLP interface.
node selector for best first search
node selector for breadth-first search
node selector for depth first search
node selector for best estimate search
node selector for hybrid best estimate / best bound search
node selector for depth first search with periodical selection of the best node
uct node selector which balances exploration and exploitation by considering node visits
presolver that converts integer variables with domain [a,b] to integer variables with domain [0,...
presolver that converts integer variables with domain [a,a+1] to binaries
dominated column presolver
aggregate variables by dual arguments
dual compensation presolver
dual inference presolver
cancel nonzeros of the constraint matrix based on the columns
gateextraction presolver
implication graph presolver which checks for aggregations
presolver that converts integer variables with domain [a,a+1] to binaries
MILP presolver that calls the presolve library on the constraint matrix.
qpkktref presolver
remove redundant variable upper bound constraints
cancel non-zeros of the constraint matrix
fix singleton continuous variables
trivial presolver: round fractional bounds on integer variables, fix variables with equal bounds
do bound tightening by using two rows
fixing roundable variables to best bound
generalized variable bounds propagator
nonlinear OBBT propagator
optimization-based bound tightening propagator
probing propagator
Pseudo objective propagator.
propagator using the LP reduced cost and the cutoff bound
reduced cost strengthening using root node reduced costs and the cutoff bound
propagator for symmetry handling
variable upper and lower bound propagator
file reader for variable bounds
Column connectivity graph file reader (actually, only a writer)
CIP file reader.
CNF file reader.
COR file reader (MPS format of the core problem for stochastic programs)
file reader for decompositions in the constraint based dec-file format.
diff file reader
file reader for variable fixings
FlatZinc file reader.
GAMS file reader and writer.
LP file reader.
(extended) MPS file reader
file reader for partial primal solutions
AMPL .nl file reader.
pseudo-Boolean file reader (opb format)
OS instance language (OSiL) format file reader.
file writer for portable bitmap file format (PBM), open with common graphic viewer programs (e....
file reader for polynomial mixed-integer programs in PIP format
file writer for portable pixmap file format (PPM), open with common graphic viewer programs (e....
RLP file reader (LP format with generic variables and row names)
SMPS file reader - SMPS files lists the cor, tim and sto files for a single instance to be read.
file reader for primal solutions
STO file reader - the stochastic information of an instance in SMPS format.
TIM file reader - the stage information for a stochastic programming instance in SMPS format.
WBO file reader (LP format with generic variables and row names)
ZIMPL model file reader.
SCIP callable library.
SCIP_RETCODE SCIPincludeDefaultPlugins(SCIP *scip)
SCIP command line interface.
flow cover and complemented mixed integer rounding cuts separator (Marchand's version)
Chvatal-Gomory cuts computed via a sub-MIP.
clique separator
closecuts meta separator
convexproj separator
disjunctive cut separator
edge concave cut separator
gauge separator
Gomory MIR Cuts.
implied bounds separator
integer objective value separator
lagromory separator
multi-commodity-flow network cut separator
principal minor separator
mixing cuts separator
oddcycle separator
rapidlearning separator
reformulation-linearization technique separator
{0,1/2}-cuts separator
methods for handling symmetries
default statistics tables
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63