Scippy

    SCIP

    Solving Constraint Integer Programs

    scip.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 scip.h
    26 * @ingroup PUBLICCOREAPI
    27 * @brief SCIP callable library
    28 * @author Tobias Achterberg
    29 * @author Timo Berthold
    30 * @author Thorsten Koch
    31 * @author Alexander Martin
    32 * @author Marc Pfetsch
    33 * @author Kati Wolter
    34 */
    35
    36/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
    37
    38#ifndef __SCIP_SCIP_H__
    39#define __SCIP_SCIP_H__
    40
    41
    42#include <stdio.h>
    43
    44#include "scip/def.h"
    46#include "scip/type_retcode.h"
    47#include "scip/type_result.h"
    48#include "scip/type_clock.h"
    49#include "scip/type_misc.h"
    50#include "scip/type_timing.h"
    51#include "scip/type_paramset.h"
    52#include "scip/type_event.h"
    53#include "scip/type_lp.h"
    54#include "scip/type_nlp.h"
    55#include "scip/type_var.h"
    56#include "scip/type_prob.h"
    57#include "scip/type_tree.h"
    58#include "scip/type_scip.h"
    59
    60#include "scip/type_bandit.h"
    61#include "scip/type_branch.h"
    62#include "scip/type_conflict.h"
    63#include "scip/type_cons.h"
    64#include "scip/type_datatree.h"
    65#include "scip/type_dialog.h"
    66#include "scip/type_disp.h"
    67#include "scip/type_expr.h"
    68#include "scip/type_heur.h"
    69#include "scip/type_compr.h"
    70#include "scip/type_history.h"
    71#include "scip/type_iisfinder.h"
    72#include "scip/type_nodesel.h"
    73#include "scip/type_presol.h"
    74#include "scip/type_pricer.h"
    75#include "scip/type_reader.h"
    76#include "scip/type_relax.h"
    77#include "scip/type_reopt.h"
    78#include "scip/type_sepa.h"
    79#include "scip/type_cutsel.h"
    80#include "scip/type_table.h"
    81#include "scip/type_prop.h"
    82#include "scip/type_nlpi.h"
    84#include "scip/type_syncstore.h"
    85#include "scip/type_benders.h"
    87
    88#include "scip/intervalarith.h"
    89
    90/* include public interfaces, s.t. the user only needs to include scip.h */
    91#include "scip/pub_bandit.h"
    92#include "scip/pub_benders.h"
    93#include "scip/pub_benderscut.h"
    94#include "scip/pub_branch.h"
    95#include "scip/pub_conflict.h"
    96#include "scip/pub_cons.h"
    97#include "scip/pub_cutpool.h"
    98#include "scip/pub_dcmp.h"
    99#include "scip/pub_dialog.h"
    100#include "scip/pub_disp.h"
    101#include "scip/pub_event.h"
    102#include "scip/pub_expr.h"
    103#include "scip/pub_fileio.h"
    104#include "scip/pub_heur.h"
    105#include "scip/pub_compr.h"
    106#include "scip/pub_history.h"
    107#include "scip/pub_iisfinder.h"
    108#include "scip/pub_implics.h"
    109#include "scip/pub_lp.h"
    110#include "scip/pub_lpexact.h"
    111#include "scip/pub_nlp.h"
    112#include "scip/pub_matrix.h"
    113#include "scip/pub_message.h"
    114#include "scip/pub_misc.h"
    115#include "scip/pub_nodesel.h"
    116#include "scip/pub_paramset.h"
    117#include "scip/pub_presol.h"
    118#include "scip/pub_pricer.h"
    119#include "scip/pub_reader.h"
    120#include "scip/pub_relax.h"
    121#include "scip/pub_reopt.h"
    122#include "scip/pub_sepa.h"
    123#include "scip/pub_cutsel.h"
    124#include "scip/pub_prop.h"
    125#include "scip/pub_sol.h"
    126#include "scip/pub_table.h"
    127#include "scip/pub_tree.h"
    128#include "scip/pub_var.h"
    129#include "scip/pub_datatree.h"
    130#include "lpi/lpi.h"
    131
    132/* include global presolving, cuts, and heuristics methods */
    133#include "scip/presolve.h"
    134#include "scip/cuts.h"
    135#include "scip/heuristics.h"
    136
    137#include "scip/scip_bandit.h"
    138#include "scip/scip_benders.h"
    139#include "scip/scip_branch.h"
    140#include "scip/scip_datatree.h"
    142#include "scip/scip_compr.h"
    143#include "scip/scip_concurrent.h"
    144#include "scip/scip_conflict.h"
    145#include "scip/scip_cons.h"
    146#include "scip/scip_copy.h"
    147#include "scip/scip_cut.h"
    149#include "scip/scip_debug.h"
    150#include "scip/scip_dcmp.h"
    151#include "scip/scip_dialog.h"
    152#include "scip/scip_disp.h"
    153#include "scip/scip_event.h"
    154#include "scip/scip_exact.h"
    155#include "scip/scip_expr.h"
    156#include "scip/scip_general.h"
    157#include "scip/scip_heur.h"
    158#include "scip/scip_iisfinder.h"
    159#include "scip/scip_lp.h"
    160#include "scip/scip_mem.h"
    161#include "scip/scip_message.h"
    162#include "scip/scip_nlp.h"
    163#include "scip/scip_nlpi.h"
    164#include "scip/scip_nodesel.h"
    165#include "scip/scip_numerics.h"
    166#include "scip/scip_param.h"
    167#include "scip/scip_presol.h"
    168#include "scip/scip_pricer.h"
    169#include "scip/scip_prob.h"
    170#include "scip/scip_probing.h"
    171#include "scip/scip_prop.h"
    172#include "scip/scip_randnumgen.h"
    173#include "scip/scip_reader.h"
    174#include "scip/scip_relax.h"
    175#include "scip/scip_reopt.h"
    176#include "scip/scip_sepa.h"
    177#include "scip/scip_cutsel.h"
    178#include "scip/scip_sol.h"
    179#include "scip/scip_solve.h"
    181#include "scip/scip_table.h"
    182#include "scip/scip_timing.h"
    183#include "scip/scip_tree.h"
    184#include "scip/scip_validation.h"
    185#include "scip/scip_var.h"
    186
    187
    188#endif
    methods for the aggregation rows
    common defines and data types used in all packages of SCIP
    methods commonly used by primal heuristics
    interval arithmetics for provable bounds
    interface methods for specific LP solvers
    memory allocation routines
    methods commonly used for presolving
    public methods for bandit algorithms
    public methods for Benders' decomposition
    public methods for Benders' decomposition cuts
    public methods for branching rules
    public methods for tree compressions
    public methods for conflict analysis handlers
    public methods for managing constraints
    public methods for storing cuts in a cut pool
    public methods for cut selectors
    public methods for managing data trees
    public methods for decompositions
    public methods for user interface dialog
    public methods for displaying runtime statistics
    public methods for managing events
    public functions to work with algebraic expressions
    wrapper functions to map file i/o to standard or zlib file i/o
    public methods for primal heuristics
    public methods for branching and inference history structure
    public methods for irreducible infeasible subsystems (IIS) finders
    public methods for implications, variable bounds, and cliques
    public methods for LP management
    public methods for LP management
    public methods for matrix
    public methods for message output
    public data structures and miscellaneous methods
    public methods for NLP management
    public methods for node selectors
    public methods for handling parameter settings
    public methods for presolvers
    public methods for variable pricers
    public methods for propagators
    public methods for input file readers
    public methods for relaxation handlers
    public methods for reoptimization
    public methods for separators
    public methods for primal CIP solutions
    public methods for displaying statistic tables
    public methods for branch and bound tree
    public methods for problem variables
    public methods for bandit algorithms
    public methods for Benders decomposition
    public methods for branching rule plugins and branching
    public methods for certified solving
    public methods for compression plugins
    public methods for concurrent solving mode
    public methods for conflict handler plugins and conflict analysis
    public methods for constraint handler plugins and constraints
    public methods for problem copies
    public methods for cuts and aggregation rows
    public methods for cut selector plugins
    public methods for data structures
    public methods for data tree structure
    public methods for decompositions
    public methods for debugging
    public methods for dialog handler plugins
    public methods for display handler plugins
    public methods for event handler plugins and event handlers
    public methods for exact solving
    public functions to work with algebraic expressions
    general public methods
    public methods for primal heuristic plugins and divesets
    public methods for IIS finder plugins
    public methods for the LP relaxation, rows and columns
    public methods for memory management
    public methods for message handling
    public methods for nonlinear relaxation
    public methods for NLPI solver interfaces
    public methods for node selector plugins
    public methods for numerical tolerances
    public methods for SCIP parameter handling
    public methods for presolving plugins
    public methods for variable pricer plugins
    public methods for global and local (sub)problems
    public methods for the probing mode
    public methods for propagator plugins
    public methods for random numbers
    public methods for reader plugins
    public methods for relaxator plugins
    public methods for reoptimization
    public methods for separator plugins
    public methods for solutions
    public solving methods
    public methods for querying solving statistics
    public methods for statistics table plugins
    public methods for timing
    public methods for the branch-and-bound tree
    public methods for validation
    public methods for SCIP variables
    type definitions for bandit selection algorithms
    type definitions for Benders' decomposition methods
    type definitions for Benders' decomposition cut
    type definitions for branching rules
    type definitions for clocks and timing issues
    type definitions for tree compression
    type definitions for concurrent solvers
    type definitions for conflict analysis
    type definitions for constraints and constraint handlers
    type definitions for cut selectors
    type definitions for data tree
    type definitions for user interface dialog
    type definitions for displaying runtime statistics
    type definitions for managing events
    type and macro definitions related to algebraic expressions
    type definitions for primal heuristics
    type definitions for branching and inference history
    type definitions for IIS
    type definitions for LP management
    type definitions for miscellaneous datastructures
    type definitions for NLP management
    type definitions for NLP solver interfaces
    type definitions for node selectors
    type definitions for handling parameter settings
    type definitions for presolvers
    type definitions for variable pricers
    type definitions for storing and manipulating the main problem
    type definitions for propagators
    type definitions for input file readers
    type definitions for relaxators
    type definitions for collecting reoptimization information
    result codes for SCIP callback methods
    type definitions for return codes for SCIP methods
    type definitions for SCIP's main datastructure
    type definitions for separators
    the type definitions for the synchronization store
    type definitions for displaying statistics tables
    timing definitions for SCIP
    type definitions for branch and bound tree
    type definitions for problem variables