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-2025 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"
    73#include "scip/cons_exactsol.h"
    74#include "scip/cons_linking.h"
    75#include "scip/cons_logicor.h"
    76#include "scip/cons_nonlinear.h"
    77#include "scip/cons_or.h"
    78#include "scip/cons_orbisack.h"
    79#include "scip/cons_orbitope.h"
    81#include "scip/cons_setppc.h"
    82#include "scip/cons_sos1.h"
    83#include "scip/cons_sos2.h"
    85#include "scip/cons_symresack.h"
    86#include "scip/cons_varbound.h"
    87#include "scip/cons_xor.h"
    89#include "scip/disp_default.h"
    90#include "scip/dialog_default.h"
    91#include "scip/event_estim.h"
    94#include "scip/expr_abs.h"
    95#include "scip/expr_entropy.h"
    96#include "scip/expr_exp.h"
    97#include "scip/expr_log.h"
    98#include "scip/expr_pow.h"
    99#include "scip/expr_product.h"
    100#include "scip/expr_sum.h"
    101#include "scip/expr_trig.h"
    102#include "scip/expr_value.h"
    103#include "scip/expr_var.h"
    106#include "scip/heur_bound.h"
    107#include "scip/heur_clique.h"
    108#include "scip/heur_coefdiving.h"
    111#include "scip/heur_crossover.h"
    112#include "scip/heur_dins.h"
    114#include "scip/heur_dks.h"
    115#include "scip/heur_dps.h"
    116#include "scip/heur_dualval.h"
    118#include "scip/heur_feaspump.h"
    120#include "scip/heur_fracdiving.h"
    121#include "scip/heur_gins.h"
    123#include "scip/heur_indicator.h"
    125#include "scip/heur_intdiving.h"
    129#include "scip/heur_locks.h"
    130#include "scip/heur_lpface.h"
    131#include "scip/heur_alns.h"
    132#include "scip/heur_multistart.h"
    133#include "scip/heur_mutation.h"
    134#include "scip/heur_mpec.h"
    135#include "scip/heur_nlpdiving.h"
    137#include "scip/heur_octane.h"
    138#include "scip/heur_ofins.h"
    139#include "scip/heur_oneopt.h"
    140#include "scip/heur_padm.h"
    142#include "scip/heur_proximity.h"
    144#include "scip/heur_rens.h"
    145#include "scip/heur_reoptsols.h"
    146#include "scip/heur_repair.h"
    147#include "scip/heur_rins.h"
    149#include "scip/heur_rounding.h"
    150#include "scip/heur_scheduler.h"
    152#include "scip/heur_shifting.h"
    154#include "scip/heur_subnlp.h"
    155#include "scip/heur_trivial.h"
    158#include "scip/heur_trysol.h"
    159#include "scip/heur_twoopt.h"
    160#include "scip/heur_undercover.h"
    161#include "scip/heur_vbounds.h"
    163#include "scip/heur_zeroobj.h"
    164#include "scip/heur_zirounding.h"
    166#include "scip/nlhdlr_bilinear.h"
    167#include "scip/nlhdlr_convex.h"
    168#include "scip/nlhdlr_default.h"
    171#include "scip/nlhdlr_quotient.h"
    173#include "scip/nlhdlr_soc.h"
    174#include "scip/nodesel_bfs.h"
    176#include "scip/nodesel_dfs.h"
    179#include "scip/nodesel_uct.h"
    183#include "scip/presol_domcol.h"
    184#include "scip/presol_dualagg.h"
    185#include "scip/presol_dualcomp.h"
    188#include "scip/presol_implics.h"
    189#include "scip/presol_implint.h"
    191#include "scip/presol_milp.h"
    192#include "scip/presol_redvub.h"
    193#include "scip/presol_qpkktref.h"
    194#include "scip/presol_trivial.h"
    196#include "scip/presol_sparsify.h"
    198#include "scip/presol_stuffing.h"
    199#include "scip/prop_dualfix.h"
    200#include "scip/prop_genvbounds.h"
    201#include "scip/prop_nlobbt.h"
    202#include "scip/prop_obbt.h"
    203#include "scip/prop_probing.h"
    204#include "scip/prop_pseudoobj.h"
    205#include "scip/prop_redcost.h"
    207#include "scip/prop_symmetry.h"
    208#include "scip/prop_vbounds.h"
    209#include "scip/reader_bnd.h"
    210#include "scip/reader_ccg.h"
    211#include "scip/reader_cip.h"
    212#include "scip/reader_cnf.h"
    213#include "scip/reader_cor.h"
    214#include "scip/reader_dec.h"
    215#include "scip/reader_diff.h"
    216#include "scip/reader_fix.h"
    217#include "scip/reader_fzn.h"
    218#include "scip/reader_gms.h"
    219#include "scip/reader_lp.h"
    220#include "scip/reader_mps.h"
    221#include "scip/reader_mst.h"
    222#include "scip/reader_nl.h"
    223#include "scip/reader_opb.h"
    224#include "scip/reader_osil.h"
    225#include "scip/reader_pip.h"
    226#include "scip/reader_ppm.h"
    227#include "scip/reader_pbm.h"
    228#include "scip/reader_rlp.h"
    229#include "scip/reader_smps.h"
    230#include "scip/reader_sol.h"
    231#include "scip/reader_sto.h"
    232#include "scip/reader_tim.h"
    233#include "scip/reader_wbo.h"
    234#include "scip/reader_zpl.h"
    235#include "scip/sepa_eccuts.h"
    236#include "scip/sepa_cgmip.h"
    237#include "scip/sepa_clique.h"
    238#include "scip/sepa_closecuts.h"
    240#include "scip/sepa_convexproj.h"
    242#include "scip/sepa_flower.h"
    243#include "scip/sepa_gauge.h"
    244#include "scip/sepa_gomory.h"
    246#include "scip/sepa_interminor.h"
    247#include "scip/sepa_intobj.h"
    248#include "scip/sepa_lagromory.h"
    249#include "scip/sepa_mcf.h"
    250#include "scip/sepa_minor.h"
    251#include "scip/sepa_mixing.h"
    252#include "scip/sepa_oddcycle.h"
    254#include "scip/sepa_rlt.h"
    255#include "scip/sepa_zerohalf.h"
    256#include "scip/scipshell.h"
    257#include "scip/symmetry.h"
    258#include "scip/table_default.h"
    259#include "scip/concsolver_scip.h"
    260#include "scip/benders_default.h"
    261#include "scip/relax_benders.h"
    262#include "scip/cutsel_hybrid.h"
    263#include "scip/cutsel_dynamic.h"
    264#include "scip/cutsel_ensemble.h"
    265
    266#include "scip/expr_varidx.h"
    267#include "scip/nlpi_ipopt.h"
    268#include "scip/nlpi_filtersqp.h"
    269#include "scip/nlpi_worhp.h"
    270#include "scip/nlpi_conopt.h"
    271#include "scip/nlpi_all.h"
    272
    273#ifdef __cplusplus
    274extern "C" {
    275#endif
    276
    277/** includes default plugins into SCIP with respect to priorities */
    278SCIP_EXPORT
    280 SCIP* scip /**< SCIP data structure */
    281 );
    282
    283#ifdef __cplusplus
    284}
    285#endif
    286
    287#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 for linear constraints in their most general form, .
    constraint handler for ensuring that primal solution is exact
    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
    interface for constraint handlers of type partitioning, packing, and full
    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...
    dks primal heuristic
    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.
    greedy deletion and addition filter heuristic to compute IISs
    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.
    CONOPT NLP interface.
    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 detects implicit integer variables.
    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 and writer.
    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.
    benders relaxator
    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
    flower-inequality 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