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-2019 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file scip.h
17  * @ingroup PUBLICCOREAPI
18  * @brief SCIP callable library
19  * @author Tobias Achterberg
20  * @author Timo Berthold
21  * @author Thorsten Koch
22  * @author Alexander Martin
23  * @author Marc Pfetsch
24  * @author Kati Wolter
25  */
26 
27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
28 
29 #ifndef __SCIP_SCIP_H__
30 #define __SCIP_SCIP_H__
31 
32 
33 #include <stdio.h>
34 
35 #include "scip/def.h"
36 #include "blockmemshell/memory.h"
37 #include "scip/type_retcode.h"
38 #include "scip/type_result.h"
39 #include "scip/type_clock.h"
40 #include "scip/type_misc.h"
41 #include "scip/type_timing.h"
42 #include "scip/type_paramset.h"
43 #include "scip/type_event.h"
44 #include "scip/type_lp.h"
45 #include "scip/type_nlp.h"
46 #include "scip/type_var.h"
47 #include "scip/type_prob.h"
48 #include "scip/type_tree.h"
49 #include "scip/type_scip.h"
50 
51 #include "scip/type_bandit.h"
52 #include "scip/type_branch.h"
53 #include "scip/type_conflict.h"
54 #include "scip/type_cons.h"
55 #include "scip/type_dialog.h"
56 #include "scip/type_disp.h"
57 #include "scip/type_heur.h"
58 #include "scip/type_compr.h"
59 #include "scip/type_history.h"
60 #include "scip/type_nodesel.h"
61 #include "scip/type_presol.h"
62 #include "scip/type_pricer.h"
63 #include "scip/type_reader.h"
64 #include "scip/type_relax.h"
65 #include "scip/type_reopt.h"
66 #include "scip/type_sepa.h"
67 #include "scip/type_table.h"
68 #include "scip/type_prop.h"
69 #include "nlpi/type_nlpi.h"
70 #include "scip/type_concsolver.h"
71 #include "scip/type_syncstore.h"
72 #include "scip/type_benders.h"
73 #include "scip/type_benderscut.h"
74 
75 /* include public interfaces, s.t. the user only needs to include scip.h */
76 #include "scip/pub_bandit.h"
77 #include "scip/pub_benders.h"
78 #include "scip/pub_benderscut.h"
79 #include "scip/pub_branch.h"
80 #include "scip/pub_conflict.h"
81 #include "scip/pub_cons.h"
82 #include "scip/pub_cutpool.h"
83 #include "scip/pub_dialog.h"
84 #include "scip/pub_disp.h"
85 #include "scip/pub_event.h"
86 #include "scip/pub_fileio.h"
87 #include "scip/pub_heur.h"
88 #include "scip/pub_compr.h"
89 #include "scip/pub_history.h"
90 #include "scip/pub_implics.h"
91 #include "scip/pub_lp.h"
92 #include "scip/pub_nlp.h"
93 #include "scip/pub_matrix.h"
94 #include "scip/pub_message.h"
95 #include "scip/pub_misc.h"
96 #include "scip/pub_nodesel.h"
97 #include "scip/pub_paramset.h"
98 #include "scip/pub_presol.h"
99 #include "scip/pub_pricer.h"
100 #include "scip/pub_reader.h"
101 #include "scip/pub_relax.h"
102 #include "scip/pub_reopt.h"
103 #include "scip/pub_sepa.h"
104 #include "scip/pub_prop.h"
105 #include "scip/pub_sol.h"
106 #include "scip/pub_table.h"
107 #include "scip/pub_tree.h"
108 #include "scip/pub_var.h"
109 #include "lpi/lpi.h"
110 #include "nlpi/pub_expr.h"
111 
112 /* include global presolving, cuts, and heuristics methods */
113 #include "scip/presolve.h"
114 #include "scip/cuts.h"
115 #include "scip/heuristics.h"
116 
117 /* In debug mode, we include the SCIP's structure in scip.c, such that no one can access
118  * this structure except the interface methods in scip.c.
119  * In optimized mode, the structure is included in scip.h, because some of the methods
120  * are implemented as defines for performance reasons (e.g. the numerical comparisons).
121  * Additionally, the internal "set.h" is included, such that the defines in set.h are
122  * available in optimized mode.
123  */
124 #ifdef NDEBUG
125 #include "scip/struct_scip.h"
126 #include "scip/struct_stat.h"
127 #include "scip/set.h"
128 #include "scip/tree.h"
129 #include "scip/misc.h"
130 #include "scip/var.h"
131 #include "scip/cons.h"
132 #include "scip/solve.h"
133 #include "scip/debug.h"
134 #endif
135 
136 #include "scip/scip_bandit.h"
137 #include "scip/scip_benders.h"
138 #include "scip/scip_branch.h"
139 #include "scip/scip_compr.h"
140 #include "scip/scip_concurrent.h"
141 #include "scip/scip_conflict.h"
142 #include "scip/scip_cons.h"
143 #include "scip/scip_copy.h"
144 #include "scip/scip_cut.h"
146 #include "scip/scip_debug.h"
147 #include "scip/scip_dialog.h"
148 #include "scip/scip_disp.h"
149 #include "scip/scip_event.h"
150 #include "scip/scip_expr.h"
151 #include "scip/scip_general.h"
152 #include "scip/scip_heur.h"
153 #include "scip/scip_lp.h"
154 #include "scip/scip_mem.h"
155 #include "scip/scip_message.h"
156 #include "scip/scip_nlp.h"
157 #include "scip/scip_nodesel.h"
158 #include "scip/scip_nonlinear.h"
159 #include "scip/scip_numerics.h"
160 #include "scip/scip_param.h"
161 #include "scip/scip_presol.h"
162 #include "scip/scip_pricer.h"
163 #include "scip/scip_prob.h"
164 #include "scip/scip_probing.h"
165 #include "scip/scip_prop.h"
166 #include "scip/scip_randnumgen.h"
167 #include "scip/scip_reader.h"
168 #include "scip/scip_relax.h"
169 #include "scip/scip_reopt.h"
170 #include "scip/scip_sepa.h"
171 #include "scip/scip_sol.h"
172 #include "scip/scip_solve.h"
173 #include "scip/scip_solvingstats.h"
174 #include "scip/scip_table.h"
175 #include "scip/scip_timing.h"
176 #include "scip/scip_tree.h"
177 #include "scip/scip_validation.h"
178 #include "scip/scip_var.h"
179 
180 
181 #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
internal 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
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 methods for expressions, expression trees, expression graphs, and related stuff ...
type definitions for LP management
public methods for querying solving statistics
public methods for the branch-and-bound tree
public methods for reoptimization
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
type definitions for primal heuristics
public methods for event handler plugins and event handlers
public methods for nonlinear functions
type definitions for SCIP&#39;s main datastructure
public methods for expression handlers
internal miscellaneous methods
type definitions for bandit selection algorithms
public methods for problem copies
public methods for primal CIP solutions
internal methods for global SCIP settings
SCIP main data structure.
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
internal methods for problem variables
public data structures and miscellaneous methods
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
methods for debugging
public methods for LP management
public methods for cuts and aggregation rows
public methods for bandit algorithms
type definitions for branch and bound tree
datastructures for problem statistics
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 relaxations
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
internal methods for main solving loop and node processing
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
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
internal methods for constraints and constraint handlers
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
type definitions for node selectors
public methods for reader plugins
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 specific NLP solver interfaces
type definitions for concurrent solvers
type definitions for displaying runtime statistics
memory allocation routines