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-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 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"
45 #include "blockmemshell/memory.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_dialog.h"
65 #include "scip/type_disp.h"
66 #include "scip/type_expr.h"
67 #include "scip/type_heur.h"
68 #include "scip/type_compr.h"
69 #include "scip/type_history.h"
70 #include "scip/type_nodesel.h"
71 #include "scip/type_presol.h"
72 #include "scip/type_pricer.h"
73 #include "scip/type_reader.h"
74 #include "scip/type_relax.h"
75 #include "scip/type_reopt.h"
76 #include "scip/type_sepa.h"
77 #include "scip/type_cutsel.h"
78 #include "scip/type_table.h"
79 #include "scip/type_prop.h"
80 #include "scip/type_nlpi.h"
81 #include "scip/type_concsolver.h"
82 #include "scip/type_syncstore.h"
83 #include "scip/type_benders.h"
84 #include "scip/type_benderscut.h"
85 
86 #include "scip/intervalarith.h"
87 
88 /* include public interfaces, s.t. the user only needs to include scip.h */
89 #include "scip/pub_bandit.h"
90 #include "scip/pub_benders.h"
91 #include "scip/pub_benderscut.h"
92 #include "scip/pub_branch.h"
93 #include "scip/pub_conflict.h"
94 #include "scip/pub_cons.h"
95 #include "scip/pub_cutpool.h"
96 #include "scip/pub_dcmp.h"
97 #include "scip/pub_dialog.h"
98 #include "scip/pub_disp.h"
99 #include "scip/pub_event.h"
100 #include "scip/pub_expr.h"
101 #include "scip/pub_fileio.h"
102 #include "scip/pub_heur.h"
103 #include "scip/pub_compr.h"
104 #include "scip/pub_history.h"
105 #include "scip/pub_implics.h"
106 #include "scip/pub_lp.h"
107 #include "scip/pub_nlp.h"
108 #include "scip/pub_matrix.h"
109 #include "scip/pub_message.h"
110 #include "scip/pub_misc.h"
111 #include "scip/pub_nodesel.h"
112 #include "scip/pub_paramset.h"
113 #include "scip/pub_presol.h"
114 #include "scip/pub_pricer.h"
115 #include "scip/pub_reader.h"
116 #include "scip/pub_relax.h"
117 #include "scip/pub_reopt.h"
118 #include "scip/pub_sepa.h"
119 #include "scip/pub_cutsel.h"
120 #include "scip/pub_prop.h"
121 #include "scip/pub_sol.h"
122 #include "scip/pub_table.h"
123 #include "scip/pub_tree.h"
124 #include "scip/pub_var.h"
125 #include "lpi/lpi.h"
126 
127 /* include global presolving, cuts, and heuristics methods */
128 #include "scip/presolve.h"
129 #include "scip/cuts.h"
130 #include "scip/heuristics.h"
131 
132 #include "scip/scip_bandit.h"
133 #include "scip/scip_benders.h"
134 #include "scip/scip_branch.h"
135 #include "scip/scip_compr.h"
136 #include "scip/scip_concurrent.h"
137 #include "scip/scip_conflict.h"
138 #include "scip/scip_cons.h"
139 #include "scip/scip_copy.h"
140 #include "scip/scip_cut.h"
142 #include "scip/scip_debug.h"
143 #include "scip/scip_dcmp.h"
144 #include "scip/scip_dialog.h"
145 #include "scip/scip_disp.h"
146 #include "scip/scip_event.h"
147 #include "scip/scip_expr.h"
148 #include "scip/scip_general.h"
149 #include "scip/scip_heur.h"
150 #include "scip/scip_lp.h"
151 #include "scip/scip_mem.h"
152 #include "scip/scip_message.h"
153 #include "scip/scip_nlp.h"
154 #include "scip/scip_nlpi.h"
155 #include "scip/scip_nodesel.h"
156 #include "scip/scip_numerics.h"
157 #include "scip/scip_param.h"
158 #include "scip/scip_presol.h"
159 #include "scip/scip_pricer.h"
160 #include "scip/scip_prob.h"
161 #include "scip/scip_probing.h"
162 #include "scip/scip_prop.h"
163 #include "scip/scip_randnumgen.h"
164 #include "scip/scip_reader.h"
165 #include "scip/scip_relax.h"
166 #include "scip/scip_reopt.h"
167 #include "scip/scip_sepa.h"
168 #include "scip/scip_cutsel.h"
169 #include "scip/scip_sol.h"
170 #include "scip/scip_solve.h"
171 #include "scip/scip_solvingstats.h"
172 #include "scip/scip_table.h"
173 #include "scip/scip_timing.h"
174 #include "scip/scip_tree.h"
175 #include "scip/scip_validation.h"
176 #include "scip/scip_var.h"
177 
178 
179 #endif
public methods for relaxator plugins
public methods for SCIP parameter handling
public methods for branching and inference history structure
public methods for branch and bound tree
type definitions for miscellaneous datastructures
timing definitions for SCIP
public methods for node selector plugins
type definitions for NLP management
public methods for memory management
public methods for implications, variable bounds, and cliques
public methods for compression plugins
public methods for conflict handler plugins and conflict analysis
public solving methods
public methods for timing
interface methods for specific LP solvers
public methods for presolving plugins
type definitions for cut selectors
public methods for Benders&#39; decomposition
methods for the aggregation rows
methods commonly used by primal heuristics
public methods for displaying runtime statistics
public methods for problem variables
public methods for reoptimization
public methods for validation
type definitions for return codes for SCIP methods
public methods for branching rules
type definitions for presolvers
public methods for SCIP variables
type definitions for collecting reoptimization information
public methods for separator plugins
type definitions for branching rules
public methods for numerical tolerances
public functions to work with algebraic expressions
type definitions for LP management
public methods for querying solving statistics
public methods for the branch-and-bound tree
public methods for decompositions
public methods for reoptimization
public methods for NLPI solver interfaces
public methods for handling parameter settings
public methods for managing constraints
public methods for displaying statistic tables
type definitions for variable pricers
public methods for Benders decomposition
interval arithmetics for provable bounds
type definitions for primal heuristics
public methods for event handler plugins and event handlers
type definitions for SCIP&#39;s main datastructure
public functions to work with algebraic expressions
type definitions for bandit selection algorithms
public methods for problem copies
public methods for primal CIP solutions
type definitions for problem variables
type definitions for relaxators
type definitions for conflict analysis
type definitions for managing events
public methods for primal heuristic plugins and divesets
public methods for constraint handler plugins and constraints
public methods for NLP management
public methods for node selectors
wrapper functions to map file i/o to standard or zlib file i/o
methods commonly used for presolving
public data structures and miscellaneous methods
public methods for cut selector plugins
public methods for storing cuts in a cut pool
type definitions for input file readers
public methods for concurrent solving mode
public methods for statistics table plugins
public methods for variable pricers
public methods for LP management
public methods for cuts and aggregation rows
public methods for bandit algorithms
type definitions for branch and bound tree
type definitions for Benders&#39; decomposition methods
type definitions for clocks and timing issues
public methods for matrix
type definitions for Benders&#39; decomposition cut
type definitions for storing and manipulating the main problem
public methods for the LP relaxation, rows and columns
public methods for variable pricer plugins
public methods for bandit algorithms
public methods for nonlinear relaxation
public methods for Benders&#39; decomposition cuts
type definitions for propagators
public methods for branching rule plugins and branching
public methods for presolvers
public methods for managing events
general public methods
the type definitions for the synchronization store
public methods for debugging
public methods for solutions
public methods for random numbers
type definitions for tree compression
public methods for conflict analysis handlers
public methods for the probing mode
public methods for tree compressions
type definitions for separators
type and macro definitions related to algebraic expressions
public methods for message output
type definitions for handling parameter settings
type definitions for user interface dialog
public methods for relaxation handlers
result codes for SCIP callback methods
type definitions for branching and inference history
public methods for input file readers
public methods for message handling
public methods for data structures
public methods for dialog handler plugins
public methods for propagator plugins
public methods for separators
public methods for primal heuristics
common defines and data types used in all packages of SCIP
public methods for decompositions
type definitions for node selectors
public methods for reader plugins
public methods for cut selectors
public methods for global and local (sub)problems
public methods for user interface dialog
type definitions for displaying statistics tables
public methods for display handler plugins
type definitions for constraints and constraint handlers
public methods for propagators
type definitions for NLP solver interfaces
type definitions for concurrent solvers
type definitions for displaying runtime statistics
memory allocation routines