Scippy

SCIP

Solving Constraint Integer Programs

struct_set.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-2022 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 scipopt.org. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file struct_set.h
17  * @ingroup INTERNALAPI
18  * @brief datastructures for global SCIP settings
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_STRUCT_SET_H__
25 #define __SCIP_STRUCT_SET_H__
26 
27 
28 #include "scip/def.h"
29 #include "scip/message.h"
30 #include "scip/type_bandit.h"
31 #include "scip/type_set.h"
32 #include "scip/type_clock.h"
33 #include "scip/type_paramset.h"
34 #include "scip/type_event.h"
35 #include "scip/type_scip.h"
36 #include "scip/type_branch.h"
37 #include "scip/type_conflict.h"
38 #include "scip/type_cons.h"
39 #include "scip/type_disp.h"
40 #include "scip/type_dialog.h"
41 #include "scip/type_heur.h"
42 #include "scip/type_compr.h"
43 #include "scip/type_nodesel.h"
44 #include "scip/type_presol.h"
45 #include "scip/type_pricer.h"
46 #include "scip/type_reader.h"
47 #include "scip/type_relax.h"
48 #include "scip/type_sepa.h"
49 #include "scip/type_cutsel.h"
50 #include "scip/type_table.h"
51 #include "scip/type_prop.h"
52 #include "scip/type_nlpi.h"
53 #include "scip/type_concsolver.h"
54 #include "scip/type_benders.h"
55 #include "scip/type_expr.h"
56 #include "scip/debug.h"
57 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 /** global SCIP settings */
63 struct SCIP_Set
64 {
65  SCIP_STAGE stage; /**< SCIP operation stage */
66  SCIP* scip; /**< very ugly: pointer to scip main data structure for callback methods */
67  SCIP_PARAMSET* paramset; /**< set of parameters */
68  BMS_BUFMEM* buffer; /**< memory buffers for short living temporary objects */
69  BMS_BUFMEM* cleanbuffer; /**< memory buffers for short living temporary objects init. to all zero */
70  SCIP_READER** readers; /**< file readers */
71  SCIP_PRICER** pricers; /**< variable pricers */
72  SCIP_CONSHDLR** conshdlrs; /**< constraint handlers (sorted by check priority) */
73  SCIP_CONSHDLR** conshdlrs_sepa; /**< constraint handlers (sorted by separation priority) */
74  SCIP_CONSHDLR** conshdlrs_enfo; /**< constraint handlers (sorted by enforcement priority) */
75  SCIP_CONSHDLR** conshdlrs_include; /**< constraint handlers (sorted by inclusion order) */
76  SCIP_CONFLICTHDLR** conflicthdlrs; /**< conflict handlers */
77  SCIP_PRESOL** presols; /**< presolvers */
78  SCIP_RELAX** relaxs; /**< relaxators */
79  SCIP_SEPA** sepas; /**< separators */
80  SCIP_CUTSEL** cutsels; /**< cut selectors */
81  SCIP_PROP** props; /**< propagators */
82  SCIP_PROP** props_presol; /**< propagators (sorted by presol priority) */
83  SCIP_HEUR** heurs; /**< primal heuristics */
84  SCIP_COMPR** comprs; /**< tree compressions */
85  SCIP_EVENTHDLR** eventhdlrs; /**< event handlers */
86  SCIP_NODESEL** nodesels; /**< node selectors */
87  SCIP_NODESEL* nodesel; /**< currently used node selector, or NULL if invalid */
88  SCIP_BRANCHRULE** branchrules; /**< branching rules */
89  SCIP_DISP** disps; /**< display columns */
90  SCIP_TABLE** tables; /**< statistics tables */
91  SCIP_DIALOG** dialogs; /**< dialogs */
92  SCIP_EXPRHDLR** exprhdlrs; /**< expression handlers */
93  SCIP_EXPRHDLR* exprhdlrvar; /**< expression handler for variables (for quick access) */
94  SCIP_EXPRHDLR* exprhdlrval; /**< expression handler for constant values (for quick access) */
95  SCIP_EXPRHDLR* exprhdlrsum; /**< expression handler for sums (for quick access) */
96  SCIP_EXPRHDLR* exprhdlrproduct; /**< expression handler for products (for quick access) */
97  SCIP_EXPRHDLR* exprhdlrpow; /**< expression handler for power (for quick access) */
98  SCIP_NLPI** nlpis; /**< interfaces to NLP solvers */
99  SCIP_CONCSOLVERTYPE** concsolvertypes; /**< concurrent solver types */
100  SCIP_CONCSOLVER** concsolvers; /**< the concurrent solvers used for solving */
101  SCIP_BENDERS** benders; /**< the data structures managing the Benders' decomposition algorithm */
102  SCIP_DEBUGSOLDATA* debugsoldata; /**< data for debug solutions */
103  SCIP_BANDITVTABLE** banditvtables; /**< virtual function tables for bandit algorithms */
104  char** extcodenames; /**< names of externals codes */
105  char** extcodedescs; /**< descriptions of external codes */
106  int nreaders; /**< number of file readers */
107  int readerssize; /**< size of readers array */
108  int npricers; /**< number of variable pricers */
109  int nactivepricers; /**< number of variable pricers used in the current problem */
110  int pricerssize; /**< size of pricers array */
111  int nconshdlrs; /**< number of constraint handlers */
112  int conshdlrssize; /**< size of conshdlrs array */
113  int nconflicthdlrs; /**< number of conflict handlers */
114  int conflicthdlrssize; /**< size of conflicthdlrs array */
115  int npresols; /**< number of presolvers */
116  int presolssize; /**< size of presols array */
117  int nrelaxs; /**< number of relaxators */
118  int relaxssize; /**< size of relaxs array */
119  int nsepas; /**< number of separators */
120  int sepassize; /**< size of sepas array */
121  int ncutsels; /**< number of cut selectors */
122  int cutselssize; /**< size of cutsels array */
123  int nprops; /**< number of propagators */
124  int propssize; /**< size of props array */
125  int nheurs; /**< number of primal heuristics */
126  int heurssize; /**< size of heurs array */
127  int ncomprs; /**< number of tree compressions */
128  int comprssize; /**< size of comprs array */
129  int neventhdlrs; /**< number of event handlers */
130  int eventhdlrssize; /**< size of eventhdlrs array */
131  int nnodesels; /**< number of node selectors */
132  int nodeselssize; /**< size of nodesels array */
133  int nbranchrules; /**< number of branching rules */
134  int branchrulessize; /**< size of branchrules array */
135  int ndisps; /**< number of display columns */
136  int dispssize; /**< size of disps array */
137  int ntables; /**< number of statistics tables */
138  int tablessize; /**< size of tables array */
139  int ndialogs; /**< number of dialogs */
140  int dialogssize; /**< size of dialogs array */
141  int nexprhdlrs; /**< number of expression handlers */
142  int exprhdlrssize; /**< size of expression handlers array */
143  int nnlpis; /**< number of NLPIs */
144  int nlpissize; /**< size of NLPIs array */
145  int nconcsolvertypes; /**< number of concurrent solver types */
146  int concsolvertypessize;/**< size of concurrent solver types array */
147  int nconcsolvers; /**< number of concurrent solvers used for solving */
148  int concsolverssize; /**< size of concurrent solvers array */
149  int nbenders; /**< number of Benders' decomposition algorithms */
150  int nactivebenders; /**< number of Benders' decomposition algorithms that are used */
151  int benderssize; /**< size of Benders' decomposition algorithms array */
152  int nextcodes; /**< number of external codes */
153  int extcodessize; /**< size of external code arrays */
154  int nbanditvtables; /**< number of bandit algorithm virtual function tables */
155  int banditvtablessize; /**< size of banditvtables array */
156  SCIP_Bool pricerssorted; /**< are the pricers sorted by activity and priority? */
157  SCIP_Bool pricersnamesorted; /**< are the pricers sorted by name? */
158  SCIP_Bool conflicthdlrssorted;/**< are the conflict handlers sorted by priority? */
159  SCIP_Bool conflicthdlrsnamesorted;/**< are the conflict handlers sorted by name? */
160  SCIP_Bool presolssorted; /**< are the presolvers sorted by priority? */
161  SCIP_Bool presolsnamesorted; /**< are the presolvers sorted by name? */
162  SCIP_Bool relaxssorted; /**< are the relaxators sorted by priority? */
163  SCIP_Bool relaxsnamesorted; /**< are the relaxators sorted by name? */
164  SCIP_Bool sepassorted; /**< are the separators sorted by priority? */
165  SCIP_Bool sepasnamesorted; /**< are the separators sorted by name? */
166  SCIP_Bool cutselssorted; /**< are the cutsels sorted by priority? */
167  SCIP_Bool propssorted; /**< are the propagators sorted by priority? */
168  SCIP_Bool propspresolsorted; /**< are the propagators in prop_presol sorted? */
169  SCIP_Bool propsnamesorted; /**< are the propagators sorted by name? */
170  SCIP_Bool heurssorted; /**< are the heuristics sorted by priority? */
171  SCIP_Bool heursnamesorted; /**< are the heuristics sorted by name? */
172  SCIP_Bool comprssorted; /**< are the compressions sorted by priority? */
173  SCIP_Bool comprsnamesorted; /**< are the compressions sorted by name? */
174  SCIP_Bool branchrulessorted; /**< are the branching rules sorted by priority? */
175  SCIP_Bool branchrulesnamesorted;/**< are the branching rules sorted by name? */
176  SCIP_Bool tablessorted; /**< are the tables sorted by position? */
177  SCIP_Bool exprhdlrssorted; /**< are the expression handlers sorted by name? */
178  SCIP_Bool nlpissorted; /**< are the NLPIs sorted by priority? */
179  SCIP_Bool benderssorted; /**< are the Benders' algorithms sorted by activity and priority? */
180  SCIP_Bool bendersnamesorted; /**< are the Benders' algorithms sorted by name? */
181  SCIP_Bool limitchanged; /**< marks whether any of the limit parameters was changed */
182  SCIP_Bool subscipsoff; /**< marks whether the sub-SCIPs have been deactivated */
183 
184  /* branching settings */
185  char branch_scorefunc; /**< branching score function ('s'um, 'p'roduct, 'q'uotient) */
186  char branch_firstsbchild;/**< child node to be regarded first during strong branching (only with propagation): 'u'p child, 'd'own child, 'h'istory-based, or 'a'utomatic */
187  SCIP_Real branch_scorefac; /**< branching score factor to weigh downward and upward gain prediction
188  * in sum score function */
189  SCIP_Bool branch_preferbinary;/**< should branching on binary variables be preferred? */
190  SCIP_Real branch_clamp; /**< minimal fractional distance of branching point to a continuous variable' bounds; a value of 0.5 leads to branching always in the middle of a bounded domain */
191  SCIP_Real branch_midpull; /**< fraction by which to move branching point of a continuous variable towards the middle of the domain; a value of 1.0 leads to branching always in the middle of the domain */
192  SCIP_Real branch_midpullreldomtrig; /**< multiply midpull by relative domain width if the latter is below this value */
193  char branch_lpgainnorm; /**< strategy for normalizing LP gain when updating pseudo costs of continuous variables */
194  SCIP_Bool branch_delaypscost; /**< whether to delay pseudo costs updates for continuous variables to after separation */
195  SCIP_Bool branch_divingpscost;/**< should pseudo costs be updated also in diving and probing mode? */
196  SCIP_Bool branch_forceall; /**< should all strong branching children be regarded even if
197  * one is detected to be infeasible? (only with propagation) */
198  SCIP_Bool branch_checksbsol; /**< should LP solutions during strong branching with propagation be checked for feasibility? */
199  SCIP_Bool branch_roundsbsol; /**< should LP solutions during strong branching with propagation be rounded? (only when checksbsol=TRUE) */
200  SCIP_Bool branch_sumadjustscore; /**< score adjustment near zero by \b adding epsilon (TRUE) or using maximum (FALSE) */
201 
202  /* conflict analysis settings */
203  SCIP_Real conf_maxvarsfac; /**< maximal fraction of variables involved in a conflict constraint */
204  int conf_minmaxvars; /**< minimal absolute maximum of variables involved in a conflict constraint */
205  int conf_maxlploops; /**< maximal number of LP resolving loops during conflict analysis
206  * (-1: no limit) */
207  int conf_lpiterations; /**< maximal number of LP iterations in each LP resolving loop
208  * (-1: no limit) */
209  int conf_fuiplevels; /**< number of depth levels up to which first UIP's are used in conflict
210  * analysis (-1: use All-FirstUIP rule) */
211  int conf_interconss; /**< maximal number of intermediate conflict constraints generated in conflict
212  * graph (-1: use every intermediate constraint) */
213  int conf_maxconss; /**< maximal number of conflict constraints accepted at an infeasible node
214  * (-1: use all generated conflict constraints) */
215  int conf_maxstoresize; /**< maximal size of conflict store */
216  int conf_reconvlevels; /**< number of depth levels up to which UIP reconvergence constraints are
217  * generated (-1: generate reconvergence constraints in all depth levels) */
218  SCIP_Bool conf_enable; /**< should conflict analysis be enabled? */
219  SCIP_Bool conf_cleanbnddepend;/**< should conflicts related to an old cutoff bound be removed? */
220  SCIP_Bool conf_useprop; /**< should propagation conflict analysis be used? (uses conflict graph only) */
221  char conf_useinflp; /**< should infeasible LP conflict analysis be used?
222  * ('o'ff, 'c'onflict graph, 'd'ual ray, 'b'oth conflict graph and dual ray)
223  */
224  char conf_useboundlp; /**< should bound exceeding LP conflict analysis be used?
225  * ('o'ff, 'c'onflict graph, 'd'ual ray, 'b'oth conflict graph and dual ray)
226  */
227  SCIP_Bool conf_usesb; /**< should infeasible/bound exceeding strong branching conflict analysis be
228  * used? */
229  SCIP_Bool conf_usepseudo; /**< should pseudo solution conflict analysis be used? */
230  SCIP_Bool conf_prefinfproof; /**< prefer infeasibility proof to boundexceeding proof */
231  SCIP_Bool conf_preferbinary; /**< should binary conflicts be preferred? */
232  SCIP_Bool conf_allowlocal; /**< should conflict constraints be generated that are only valid locally? */
233  SCIP_Bool conf_settlelocal; /**< should conflict constraints be attached only to the local subtree where
234  * they can be useful? */
235  SCIP_Bool conf_repropagate; /**< should earlier nodes be repropagated in order to replace branching
236  * decisions by deductions? */
237  SCIP_Bool conf_keepreprop; /**< should constraints be kept for repropagation even if they are too long? */
238  SCIP_Bool conf_separate; /**< should the conflict constraints be separated? */
239  SCIP_Bool conf_dynamic; /**< should the conflict constraints be subject to aging? */
240  SCIP_Bool conf_removable; /**< should the conflict's relaxations be subject to LP aging and cleanup? */
241  SCIP_Real conf_depthscorefac; /**< score factor for depth level in bound relaxation heuristic */
242  SCIP_Real conf_proofscorefac; /**< score factor for contribution to infeasibility proof in bound relaxation heuristic */
243  SCIP_Real conf_uplockscorefac;/**< score factor for number of up locks in bound relaxation heuristic */
244  SCIP_Real conf_downlockscorefac;/**< score factor for number of down locks in bound relaxation heuristic */
245  SCIP_Real conf_scorefac; /**< factor to decrease importance of variables' earlier conflict scores */
246  int conf_restartnum; /**< number of successful conflict analysis calls that trigger a restart
247  * (0: disable conflict restarts) */
248  SCIP_Real conf_restartfac; /**< factor to increase restartnum with after each restart */
249  SCIP_Bool conf_ignorerelaxedbd;/**< should relaxed bounds be ignored? */
250  int conf_maxvarsdetectimpliedbounds;/**< maximal number of variables to try to detect global bound
251  * implications and shorten the whole conflict set (0:
252  * disabled )
253  */
254  SCIP_Bool conf_fullshortenconflict;/**< try to shorten the whole conflict set or terminate early
255  * (depending on the 'maxvarsdetectimpliedbounds' parameter)
256  */
257  SCIP_Real conf_conflictweight;/**< the weight the VSIDS score is weight by updating the VSIDS for a
258  * variable if it is part of a conflict
259  */
260  SCIP_Real conf_conflictgraphweight; /**< the weight the VSIDS score is weight by updating the VSIDS for a
261  * variable if it is part of a conflict graph
262  */
263  SCIP_Real conf_weightsize; /**< weight of the size of a conflict used in score calculation */
264  SCIP_Real conf_weightrepropdepth;/**< weight of the prepropagtion depth of a conflict used in score calculation */
265  SCIP_Real conf_weightvaliddepth;/**< weight of the valid depth of a conflict used in score calculation */
266  SCIP_Bool conf_sepaaltproofs; /**< separate valid inequalities from dualray proofs */
267  SCIP_Real conf_minimprove; /**< minimal improvement of primal bound to remove conflicts depending on
268  * a previous incumbent.
269  */
270  SCIP_Bool conf_uselocalrows; /**< use local rows to construct infeasibility proofs */
271 
272  /* constraint settings */
273  int cons_agelimit; /**< maximum age an unnecessary constraint can reach before it is deleted
274  * (0: dynamic, -1: disable aging) */
275  int cons_obsoleteage; /**< age of a constraint after which it is marked obsolete
276  * (0: dynamic, -1: disable obsoletion) */
277  SCIP_Bool cons_disableenfops; /**< should enforcement of pseudo solution be disabled? */
278 
279  /* display settings */
280  SCIP_VERBLEVEL disp_verblevel; /**< verbosity level of output */
281  int disp_width; /**< maximal number of characters in a node information line */
282  int disp_freq; /**< frequency for displaying node information lines */
283  int disp_headerfreq; /**< frequency for displaying header lines (every n'th node information line) */
284  SCIP_Bool disp_lpinfo; /**< should the LP solver display status messages? */
285  SCIP_Bool disp_allviols; /**< display all violations of the best solution after the solving process finished? */
286  SCIP_Bool disp_relevantstats; /**< should the relevant statistics be displayed at the end of solving? */
287 
288  /* heuristics settings */
289  SCIP_Bool heur_useuctsubscip; /**< should setting of common subscip parameters include the activation of the UCT node selector? */
290 
291  /* history settings */
292  SCIP_Bool history_valuebased; /**< should statistics be collected for variable domain value pairs? */
293  SCIP_Bool history_allowmerge; /**< should variable histories be merged from sub-SCIPs whenever possible? */
294  SCIP_Bool history_allowtransfer; /**< should variable histories be transferred to initialize SCIP copies? */
295 
296  /* limit settings */
297  SCIP_Real limit_time; /**< maximal time in seconds to run */
298  SCIP_Real limit_memory; /**< maximal memory usage in MB */
299  SCIP_Real limit_gap; /**< solving stops, if the given gap is reached */
300  SCIP_Real limit_absgap; /**< solving stops, if the absolute difference between primal and dual bound
301  * reaches this value */
302  SCIP_Longint limit_nodes; /**< maximal number of nodes to process (-1: no limit) */
303  SCIP_Longint limit_totalnodes; /**< maximal number of total nodes (incl. restarts) to process (-1: no limit) */
304  SCIP_Longint limit_stallnodes; /**< solving stops, if the given number of nodes was processed since the
305  * last improvement of the primal solution value (-1: no limit) */
306  int limit_solutions; /**< solving stops, if the given number of solutions were found (-1: no limit) */
307  int limit_bestsol; /**< solving stops, if the given number of solution improvements were found
308  * (-1: no limit) */
309  int limit_maxsol; /**< maximal number of solutions to store in the solution storage */
310  int limit_maxorigsol; /**< maximal number of solutions candidates to store in the solution storage of the original problem */
311  int limit_restarts; /**< solving stops, if the given number of restarts was triggered (-1: no limit) */
312  int limit_autorestartnodes;/**< nodes to trigger automatic restart */
313 
314  SCIP_Bool istimelimitfinite; /**< is the time limit finite */
315 
316  /* LP settings */
317  int lp_solvefreq; /**< frequency for solving LP at the nodes (-1: never; 0: only root LP) */
318  SCIP_Longint lp_iterlim; /**< iteration limit for each single LP solve; -1: no limit */
319  SCIP_Longint lp_rootiterlim; /**< iteration limit for initial root LP solve; -1: no limit */
320  int lp_solvedepth; /**< maximal depth for solving LP at the nodes (-1: no depth limit) */
321  char lp_initalgorithm; /**< LP algorithm for solving initial LP relaxations ('s'implex, 'b'arrier,
322  * barrier with 'c'rossover) */
323  char lp_resolvealgorithm;/**< LP algorithm for resolving LP relaxations if a starting basis exists
324  * ('s'implex, 'b'arrier, barrier with 'c'rossover) */
325  char lp_pricing; /**< LP pricing strategy ('a'uto, 'f'ull pricing, 's'teepest edge pricing,
326  * 'q'uickstart steepest edge pricing, 'd'evex pricing) */
327  SCIP_Bool lp_clearinitialprobinglp;/**< should lp state be cleared at the end of probing mode when LP
328  * was initially unsolved, e.g., when called right after presolving? */
329  SCIP_Bool lp_resolverestore; /**< should the LP be resolved to restore the state at start of diving (if
330  * FALSE we buffer the solution values)? */
331  SCIP_Bool lp_freesolvalbuffers; /**< should the buffers for storing LP solution values during diving be
332  * freed at end of diving? */
333  int lp_colagelimit; /**< maximum age a column can reach before it is deleted from the SCIP_LP
334  * (-1: don't delete columns due to aging) */
335  int lp_rowagelimit; /**< maximum age a row can reach before it is deleted from the LP
336  * (-1: don't delete rows due to aging) */
337  SCIP_Bool lp_cleanupcols; /**< should new non-basic columns be removed after LP solving? */
338  SCIP_Bool lp_cleanupcolsroot; /**< should new non-basic columns be removed after root LP solving? */
339  SCIP_Bool lp_cleanuprows; /**< should new basic rows be removed after LP solving? */
340  SCIP_Bool lp_cleanuprowsroot; /**< should new basic rows be removed after root LP solving? */
341  SCIP_Bool lp_checkstability; /**< should LP solver's return status be checked for stability? */
342  SCIP_Real lp_conditionlimit; /**< maximum condition number of LP basis counted as stable (-1.0: no check) */
343  SCIP_Real lp_markowitz; /**< minimal Markowitz threshold to control sparsity/stability in LU factorization */
344  SCIP_Bool lp_checkprimfeas; /**< should LP solutions be checked for primal feasibility, resolving LP when numerical troubles occur? */
345  SCIP_Bool lp_checkdualfeas; /**< should LP solutions be checked for dual feasibility, resolving LP when numerical troubles occur? */
346  SCIP_Bool lp_checkfarkas; /**< should infeasibility proofs from the LP be checked? */
347  int lp_fastmip; /**< which FASTMIP setting of LP solver should be used? 0: off, 1: medium, 2: full */
348  int lp_scaling; /**< LP scaling (0: none, 1: normal, 2: aggressive) */
349  SCIP_Bool lp_presolving; /**< should presolving of LP solver be used? */
350  SCIP_Bool lp_lexdualalgo; /**< should the lexicographic dual algorithm be used? */
351  SCIP_Bool lp_lexdualrootonly; /**< should the lexicographic dual algorithm be applied only at the root node */
352  int lp_lexdualmaxrounds;/**< maximum number of rounds in the lexicographic dual algorithm */
353  SCIP_Bool lp_lexdualbasic; /**< choose fractional basic variables in lexicographic dual algorithm */
354  SCIP_Bool lp_lexdualstalling; /**< turn on the lex dual algorithm only when stalling? */
355  int lp_disablecutoff; /**< disable the cutoff bound in the LP solver? (0: enabled, 1: disabled, 2: auto) */
356  SCIP_Real lp_rowrepswitch; /**< simplex algorithm shall use row representation of the basis
357  * if number of rows divided by number of columns exceeds this value */
358  int lp_threads; /**< number of threads used for solving the LP (0: automatic) */
359  SCIP_Real lp_resolveiterfac; /**< factor of average LP iterations that is used as LP iteration limit
360  * for LP resolve (-1: unlimited) */
361  int lp_resolveitermin; /**< minimum number of iterations that are allowed for LP resolve */
362  int lp_solutionpolishing;/**< LP solution polishing method (0: disabled, 1: only root, 2: always, 3: auto) */
363  int lp_refactorinterval;/**< LP refactorization interval (0: automatic) */
364  SCIP_Bool lp_alwaysgetduals; /**< should the dual solution always be collected for LP solutions. */
365 
366  /* NLP settings */
367  SCIP_Bool nlp_disable; /**< should the NLP be disabled even if a constraint handler enabled it? */
368  char* nlp_solver; /**< name of NLP solver to use */
369 
370  /* memory settings */
371  SCIP_Real mem_savefac; /**< fraction of maximal memory usage resulting in switch to memory saving mode */
372  SCIP_Real mem_arraygrowfac; /**< memory growing factor for dynamically allocated arrays */
373  SCIP_Real mem_treegrowfac; /**< memory growing factor for tree array */
374  SCIP_Real mem_pathgrowfac; /**< memory growing factor for path array */
375  int mem_arraygrowinit; /**< initial size of dynamically allocated arrays */
376  int mem_treegrowinit; /**< initial size of tree array */
377  int mem_pathgrowinit; /**< initial size of path array */
378 
379  /* miscellaneous settings */
380  SCIP_Bool misc_catchctrlc; /**< should the CTRL-C interrupt be caught by SCIP? */
381  SCIP_Bool misc_usevartable; /**< should a hashtable be used to map from variable names to variables? */
382  SCIP_Bool misc_useconstable; /**< should a hashtable be used to map from constraint names to constraints? */
383  SCIP_Bool misc_usesmalltables;/**< should smaller hashtables be used? yields better performance for small problems with about 100 variables */
384  SCIP_Bool misc_exactsolve; /**< should the problem be solved exactly (with proven dual bounds)? */
385  SCIP_Bool misc_resetstat; /**< should the statistics be reset if the transformed problem is freed
386  * otherwise the statistics get reset after original problem is freed (in
387  * case of bender decomposition this parameter should be set to FALSE and
388  * therefore can be used to collect statistics over all runs) */
389  SCIP_Bool misc_improvingsols; /**< should only solutions be checked which improve the primal bound */
390  SCIP_Bool misc_printreason; /**< should the reason be printed if a given start solution is infeasible? */
391  SCIP_Bool misc_estimexternmem;/**< should the usage of external memory be estimated? */
392  SCIP_Bool misc_avoidmemout; /**< try to avoid running into memory limit by restricting plugins like heuristics? */
393  SCIP_Bool misc_transorigsols; /**< should SCIP try to transfer original solutions to the transformed space (after presolving)? */
394  SCIP_Bool misc_transsolsorig; /**< should SCIP try to transfer transformed solutions to the original space (after solving)? */
395  SCIP_Bool misc_calcintegral; /**< should SCIP calculate the primal dual integral value which may require
396  * a large number of additional clock calls (and decrease the performance)? */
397  SCIP_Bool misc_finitesolstore;/**< should SCIP try to remove infinite fixings from solutions copied to the solution store? */
398  SCIP_Bool misc_outputorigsol; /**< should the best solution be transformed to the orignal space and be output in command line run? */
399  SCIP_Bool misc_allowstrongdualreds; /**< should strong dual reductions be allowed in propagation and presolving? */
400  SCIP_Bool misc_allowweakdualreds; /**< should weak dual reductions be allowed in propagation and presolving? */
401  SCIP_Real misc_referencevalue;/**< objective value for reference purposes */
402  int misc_usesymmetry; /**< bitset describing used symmetry handling technique (0: off; 1: polyhedral (orbitopes and/or symresacks);
403  * 2: orbital fixing; 3: orbitopes and orbital fixing; 4: Schreier Sims cuts; 5: Schreier Sims cuts and
404  * symresacks) */
405  char* misc_debugsol; /**< path to a debug solution */
406  SCIP_Bool misc_scaleobj; /**< should the objective function be scaled? */
407 
408  /* randomization parameters */
409  int random_randomseedshift;/**< global shift of all random seeds in the plugins, this will have no impact on the permutation and LP seeds */
410  int random_permutationseed;/**< seed value for permuting the problem after reading/transformation
411  * (0: no permutation) */
412  int random_randomseed; /**< random seed for LP solver, e.g. for perturbations in the simplex (0: LP default) */
413  SCIP_Bool random_permuteconss; /**< should order of constraints be permuted (depends on permutationseed)? */
414  SCIP_Bool random_permutevars; /**< should order of variables be permuted (depends on permutationseed)? */
415 
416  /* node selection settings */
417  char nodesel_childsel; /**< child selection rule ('d'own, 'u'p, 'p'seudo costs, 'i'nference, 'l'p value,
418  * 'r'oot LP value difference, 'h'brid inference/root LP value difference) */
419 
420  /* numerical settings */
421  SCIP_Real num_infinity; /**< values larger than this are considered infinity */
422  SCIP_Real num_epsilon; /**< absolute values smaller than this are considered zero */
423  SCIP_Real num_sumepsilon; /**< absolute values of sums smaller than this are considered zero */
424  SCIP_Real num_feastol; /**< feasibility tolerance for constraints */
425  SCIP_Real num_checkfeastolfac;/**< factor to change the feasibility tolerance when testing the best
426  * solution for feasibility (after solving process) */
427  SCIP_Real num_lpfeastolfactor;/**< factor w.r.t. primal feasibility tolerance that determines default (and maximal) primal feasibility tolerance of LP solver (user parameter, see also num_relaxfeastol) */
428  SCIP_Real num_dualfeastol; /**< feasibility tolerance for reduced costs */
429  SCIP_Real num_barrierconvtol; /**< convergence tolerance used in barrier algorithm */
430  SCIP_Real num_boundstreps; /**< minimal improve for strengthening bounds */
431  SCIP_Real num_pseudocosteps; /**< minimal variable distance value to use for pseudo cost updates */
432  SCIP_Real num_pseudocostdelta;/**< minimal objective distance value to use for pseudo cost updates */
433  SCIP_Real num_recompfac; /**< minimal decrease factor that causes the recomputation of a value
434  * (e.g., pseudo objective) instead of an update */
435  SCIP_Real num_hugeval; /**< values larger than this are considered huge and should be handled
436  * separately (e.g., in activity computation) */
437  SCIP_Real num_relaxfeastol; /**< primal feasibility tolerance for relaxations (set by core or plugins, not a parameter) */
438 
439  /* presolving settings */
440  SCIP_Real presol_abortfac; /**< abort presolve, if l.t. this frac of the problem was changed in last round */
441  int presol_maxrounds; /**< maximal number of presolving rounds (-1: unlimited) */
442  int presol_maxrestarts; /**< maximal number of restarts (-1: unlimited) */
443  SCIP_Real presol_clqtablefac; /**< limit on number of entries in clique table relative to number of problem nonzeros */
444  SCIP_Real presol_restartfac; /**< fraction of integer variables that were fixed in the root node
445  * triggering a restart with preprocessing after root node evaluation */
446  SCIP_Real presol_immrestartfac;/**< fraction of integer variables that were fixed in the root node triggering an
447  * immediate restart with preprocessing */
448  SCIP_Real presol_subrestartfac;/**< fraction of integer variables that were globally fixed during the
449  * solving process triggering a restart with preprocessing */
450  SCIP_Real presol_restartminred;/**< minimal fraction of integer variables removed after restart to allow for
451  * an additional restart */
452  SCIP_Bool presol_donotmultaggr;/**< should multi-aggregation of variables be forbidden? */
453  SCIP_Bool presol_donotaggr; /**< should aggregation of variables be forbidden? */
454 
455  /* pricing settings */
456  SCIP_Real price_abortfac; /**< pricing is aborted, if fac * maxpricevars pricing candidates were found */
457  int price_maxvars; /**< maximal number of variables priced in per pricing round */
458  int price_maxvarsroot; /**< maximal number of priced variables at the root node */
459  SCIP_Bool price_delvars; /**< should variables created at the current node be deleted when the node is solved
460  * in case they are not present in the LP anymore? */
461  SCIP_Bool price_delvarsroot; /**< should variables created at the root node be deleted when the root is solved
462  * in case they are not present in the LP anymore? */
463 
464  /* Decomposition settings */
465  SCIP_Bool decomp_benderslabels; /**< should the variables be labeled for the application of Benders'
466  * decomposition */
467  SCIP_Bool decomp_applybenders; /**< if a decomposition exists, should Benders' decomposition be applied*/
468  int decomp_maxgraphedge; /**< maximum number of edges in block graph computation (-1: no limit, 0: disable block graph computation) */
469  SCIP_Bool decomp_disablemeasures; /**< disable expensive measures */
470 
471  /* Benders' decomposition settings */
472  SCIP_Real benders_soltol; /**< the tolerance for checking optimality in Benders' decomposition */
473  SCIP_Bool benders_cutlpsol; /**< should cuts be generated from the solution to the LP relaxation? */
474  SCIP_Bool benders_copybenders;/**< should Benders' decomposition be copied for sub-SCIPs? */
475 
476  /* propagation settings */
477  int prop_maxrounds; /**< maximal number of propagation rounds per node (-1: unlimited) */
478  int prop_maxroundsroot; /**< maximal number of propagation rounds in the root node (-1: unlimited) */
479  SCIP_Bool prop_abortoncutoff; /**< should propagation be aborted immediately? setting this to FALSE could
480  * help conflict analysis to produce more conflict constraints */
481 
482  /* reoptimization settings */
483  SCIP_Real reopt_objsimsol; /**< similarity of two objective functions to reuse stored solutions. */
484  SCIP_Real reopt_objsimrootlp; /**< similarity of two sequential objective function to disable solving the
485  * root LP.
486  */
487  SCIP_Real reopt_objsimdelay; /**< minimum similarity for using reoptimization of the search tree. */
488  char reopt_varorderinterdiction; /** use the 'd'efault or a 'r'andom variable order for interdiction
489  * branching when applying the reoptimization
490  */
491  int reopt_forceheurrestart; /**< force a restart if the last n optimal solutions were found by
492  * heuristic reoptsols
493  */
494  int reopt_maxcutage; /**< maximal age of cuts to use them in reoptimization */
495  int reopt_maxdiffofnodes;/**< maximal number of bound changes between two stored nodes on one path */
496  int reopt_maxsavednodes;/**< maximal number of saved nodes */
497  int reopt_solvelp; /**< strategy for solving the LP at nodes from reoptimization */
498  int reopt_solvelpdiff; /**< maximal number of bound changes at node to skip solving the LP */
499  int reopt_savesols; /**< number of best solutions which should be saved for the following runs.
500  * (-1: save all)
501  */
502  SCIP_Bool reopt_commontimelimit;/**< time limit over all reoptimization rounds? */
503  SCIP_Bool reopt_enable; /**< enable reoptimization */
504  SCIP_Bool reopt_reducetofrontier; /**< delete stored nodes which were not reoptimized */
505  SCIP_Bool reopt_saveconsprop; /**< save constraint propagations */
506  SCIP_Bool reopt_sbinit; /**< try to fix variables before reoptimizing by probing like strong
507  * branching
508  */
509  SCIP_Bool reopt_shrinkinner; /**< replace branched inner nodes by their child nodes, if the number of
510  * bound changes is not to large
511  */
512  SCIP_Bool reopt_sepaglbinfsubtrees;/**< save global constraints to separate infeasible subtrees */
513  SCIP_Bool reopt_sepabestsol; /**< separate only the best solution, i.e., for constrained shortest path */
514  SCIP_Bool reopt_storevarhistory;/**< use variable history of the previous solve if the objective function
515  * has changed only slightly
516  */
517  SCIP_Bool reopt_usepscost; /**< reuse pseudo costs if the objective function changed only slightly */
518  SCIP_Bool reopt_usecuts; /**< reoptimize cuts found at the root node */
519  SCIP_Bool reopt_usesplitcons; /**< use constraints to reconstruct the subtree pruned be dual reduction
520  * when reactivating the node
521  */
522 
523  /* separation settings */
524  SCIP_Real sepa_maxbounddist; /**< maximal relative distance from current node's dual bound to primal bound
525  * compared to best node's dual bound for applying separation
526  * (0.0: only on current best node, 1.0: on all nodes) */
527  SCIP_Real sepa_maxlocalbounddist;/**< maximal relative distance from current node's dual bound to primal bound
528  * compared to best node's dual bound for applying local separation
529  * (0.0: only on current best node, 1.0: on all nodes) */
530  SCIP_Real sepa_maxcoefratio; /**< maximal ratio between coefficients in strongcg, cmir, and flowcover cuts */
531  SCIP_Real sepa_maxcoefratiofacrowprep; /**< maximal ratio between coefficients (as factor of 1/feastol) to ensure in rowprep cleanup */
532  SCIP_Real sepa_minefficacy; /**< minimal efficacy for a cut to enter the LP */
533  SCIP_Real sepa_minefficacyroot; /**< minimal efficacy for a cut to enter the LP in the root node */
534  SCIP_Real sepa_minortho; /**< minimal orthogonality for a cut to enter the LP */
535  SCIP_Real sepa_minorthoroot; /**< minimal orthogonality for a cut to enter the LP in the root node */
536  SCIP_Real sepa_minactivityquot; /**< minimum cut activity quotient to convert cuts into constraints
537  * during a restart (0.0: all cuts are converted) */
538  char sepa_orthofunc; /**< function used for calc. scalar prod. in orthogonality test ('e'uclidean, 'd'iscrete) */
539  char sepa_efficacynorm; /**< row norm to use for efficacy calculation ('e'uclidean, 'm'aximum, 's'um,
540  * 'd'iscrete) */
541  char sepa_cutselrestart; /**< cut selection during restart ('a'ge, activity 'q'uotient) */
542  char sepa_cutselsubscip; /**< cut selection for sub SCIPs ('a'ge, activity 'q'uotient) */
543  SCIP_Bool sepa_filtercutpoolrel; /**< should cutpool separate only cuts with high relative efficacy? */
544  int sepa_maxruns; /**< maximal number of runs for which separation is enabled (-1: unlimited) */
545  int sepa_maxrounds; /**< maximal number of separation rounds per node (-1: unlimited) */
546  int sepa_maxroundsroot; /**< maximal number of separation rounds in the root node (-1: unlimited) */
547  int sepa_maxroundsrootsubrun; /**< maximal number of separation rounds in the root node of a subsequent run (-1: unlimited) */
548  int sepa_maxaddrounds; /**< maximal additional number of separation rounds in subsequent price-and-cut
549  * loops (-1: no additional restriction) */
550  int sepa_maxstallrounds;/**< maximal number of consecutive separation rounds without objective
551  * or integrality improvement (-1: no additional restriction) */
552  int sepa_maxstallroundsroot;/**< maximal number of consecutive separation rounds without objective
553  * or integrality improvement (-1: no additional restriction) */
554  int sepa_maxcuts; /**< maximal number of cuts separated per separation round */
555  int sepa_maxcutsroot; /**< maximal number of separated cuts at the root node */
556  int sepa_cutagelimit; /**< maximum age a cut can reach before it is deleted from the global cut pool */
557  int sepa_poolfreq; /**< separation frequency for the global cut pool */
558 
559  /* parallel settings */
560  int parallel_mode; /**< the mode for the parallel implementation. 0: opportunistic or
561  * 1: deterministic */
562  int parallel_minnthreads;/**< the minimum number of threads used for parallel code */
563  int parallel_maxnthreads;/**< the maximum number of threads used for parallel code */
564 
565  /* concurrent solver settings */
566  SCIP_Bool concurrent_changeseeds; /**< change the seeds in the different solvers? */
567  SCIP_Bool concurrent_changechildsel; /**< change the child selection rule in different solvers? */
568  SCIP_Bool concurrent_commvarbnds; /**< should the concurrent solvers communicate global variable bound changes? */
569  SCIP_Bool concurrent_presolvebefore; /**< should the problem be presolved before it is copied to the concurrent solvers? */
570  int concurrent_initseed; /**< the seed for computing the concurrent solver seeds */
571  SCIP_Real concurrent_freqinit; /**< initial frequency of synchronization */
572  SCIP_Real concurrent_freqmax; /**< maximal frequency of synchronization */
573  SCIP_Real concurrent_freqfactor; /**< factor by which the frequency of synchronization changes */
574  SCIP_Real concurrent_targetprogress; /**< when adapting the synchronization frequency this value is the targeted
575  * relative difference by which the absolute gap decreases per synchronization */
576  int concurrent_maxnsols; /**< maximum number of solutions that will get stored in one synchronization */
577  int concurrent_nbestsols; /**< number of best solutions that should be considered for synchronization */
578  int concurrent_maxnsyncdelay; /**< max number of synchronizations before data is used */
579  SCIP_Real concurrent_minsyncdelay; /**< min offset before synchronization data is used */
580  char* concurrent_paramsetprefix; /**< path prefix for parameter setting files of concurrent solver scip-custom */
581 
582  /* timing settings */
583  SCIP_CLOCKTYPE time_clocktype; /**< default clock type to use */
584  SCIP_Bool time_enabled; /**< is timing enabled? */
585  SCIP_Bool time_reading; /**< belongs reading time to solving time? */
586  SCIP_Bool time_rareclockcheck;/**< should clock checks of solving time be performed less frequently (might exceed time limit slightly) */
587  SCIP_Bool time_statistictiming; /**< should timing for statistic output be enabled? */
588  SCIP_Bool time_nlpieval; /**< should time for evaluation in NLP solves be measured? */
589 
590  /* tree compression parameters (for reoptimization) */
591  SCIP_Bool compr_enable; /**< should automatic tree compression after presolving be enabled? (only for reoptimization) */
592  SCIP_Real compr_time; /**< maximum time to run tree compression heuristics */
593 
594  /* visualization settings */
595  char* visual_vbcfilename; /**< name of the VBC tool output file, or - if no VBC output should be created */
596  char* visual_bakfilename; /**< name of the BAK tool output file, or - if no BAK output should be created */
597  SCIP_Bool visual_realtime; /**< should the real solving time be used instead of time step counter in visualization? */
598  SCIP_Bool visual_dispsols; /**< should the node where solutions are found be visualized? */
599  SCIP_Bool visual_displb; /**< should lower bound information be visualized? */
600  SCIP_Bool visual_objextern; /**< should be output the external value of the objective? */
601 
602  /* Reading */
603  SCIP_Bool read_initialconss; /**< should model constraints be marked as initial? */
604  SCIP_Bool read_dynamicconss; /**< should model constraints be subject to aging? */
605  SCIP_Bool read_dynamiccols; /**< should columns be added and removed dynamically to the LP? */
606  SCIP_Bool read_dynamicrows; /**< should rows be added and removed dynamically to the LP? */
607 
608  /* Writing */
609  SCIP_Bool write_allconss; /**< should all constraints be written (including the redundant constraints)? */
610  SCIP_Bool write_printzeros; /**< should variables set to zero be printed? */
611  int write_genoffset; /**< when writing the problem with generic names, we start with index
612  * 0; using this parameter we can change the starting index to be
613  * different */
614 };
615 
616 #ifdef __cplusplus
617 }
618 #endif
619 
620 #endif
int nconcsolvertypes
Definition: struct_set.h:145
char branch_lpgainnorm
Definition: struct_set.h:193
char sepa_orthofunc
Definition: struct_set.h:538
int ndisps
Definition: struct_set.h:135
int decomp_maxgraphedge
Definition: struct_set.h:468
SCIP_Real num_sumepsilon
Definition: struct_set.h:423
SCIP_Real num_dualfeastol
Definition: struct_set.h:428
SCIP_Real sepa_minefficacyroot
Definition: struct_set.h:533
SCIP_Real num_infinity
Definition: struct_set.h:421
SCIP_Bool benders_copybenders
Definition: struct_set.h:474
SCIP_Bool heur_useuctsubscip
Definition: struct_set.h:289
int lp_solvefreq
Definition: struct_set.h:317
SCIP_Bool sepa_filtercutpoolrel
Definition: struct_set.h:543
SCIP_READER ** readers
Definition: struct_set.h:70
int mem_treegrowinit
Definition: struct_set.h:376
SCIP_CUTSEL ** cutsels
Definition: struct_set.h:80
SCIP_Bool visual_objextern
Definition: struct_set.h:600
SCIP_Bool sepassorted
Definition: struct_set.h:164
int pricerssize
Definition: struct_set.h:110
int nnodesels
Definition: struct_set.h:131
SCIP_Bool conf_keepreprop
Definition: struct_set.h:237
SCIP_Bool misc_estimexternmem
Definition: struct_set.h:391
SCIP_Bool compr_enable
Definition: struct_set.h:591
int sepa_cutagelimit
Definition: struct_set.h:556
int random_permutationseed
Definition: struct_set.h:410
SCIP_Bool lp_lexdualrootonly
Definition: struct_set.h:351
int conf_interconss
Definition: struct_set.h:211
SCIP_CONFLICTHDLR ** conflicthdlrs
Definition: struct_set.h:76
int write_genoffset
Definition: struct_set.h:611
SCIP_BANDITVTABLE ** banditvtables
Definition: struct_set.h:103
SCIP_Bool reopt_usepscost
Definition: struct_set.h:517
SCIP_CONCSOLVER ** concsolvers
Definition: struct_set.h:100
SCIP_Bool nlpissorted
Definition: struct_set.h:178
SCIP_Bool price_delvars
Definition: struct_set.h:459
SCIP_Bool conf_dynamic
Definition: struct_set.h:239
int reopt_maxdiffofnodes
Definition: struct_set.h:495
char * visual_vbcfilename
Definition: struct_set.h:595
SCIP_Bool conf_repropagate
Definition: struct_set.h:235
int reopt_maxcutage
Definition: struct_set.h:494
SCIP_Real conf_weightvaliddepth
Definition: struct_set.h:265
SCIP_EXPRHDLR * exprhdlrval
Definition: struct_set.h:94
SCIP_Bool misc_finitesolstore
Definition: struct_set.h:397
SCIP_Real num_pseudocostdelta
Definition: struct_set.h:432
SCIP_Bool concurrent_commvarbnds
Definition: struct_set.h:568
SCIP_NODESEL ** nodesels
Definition: struct_set.h:86
int presol_maxrounds
Definition: struct_set.h:441
SCIP_Bool conf_usesb
Definition: struct_set.h:227
int concurrent_initseed
Definition: struct_set.h:570
SCIP_Bool propsnamesorted
Definition: struct_set.h:169
SCIP_Bool conf_usepseudo
Definition: struct_set.h:229
SCIP_Bool conf_useprop
Definition: struct_set.h:220
SCIP_Bool concurrent_changeseeds
Definition: struct_set.h:566
char branch_scorefunc
Definition: struct_set.h:185
int nprops
Definition: struct_set.h:123
int sepa_maxroundsroot
Definition: struct_set.h:546
SCIP_Bool presol_donotaggr
Definition: struct_set.h:453
char lp_resolvealgorithm
Definition: struct_set.h:323
int nconcsolvers
Definition: struct_set.h:147
SCIP_Bool pricersnamesorted
Definition: struct_set.h:157
SCIP_EXPRHDLR * exprhdlrpow
Definition: struct_set.h:97
SCIP_Bool presolsnamesorted
Definition: struct_set.h:161
int reopt_maxsavednodes
Definition: struct_set.h:496
int sepa_maxcutsroot
Definition: struct_set.h:555
int prop_maxroundsroot
Definition: struct_set.h:478
SCIP_Bool propssorted
Definition: struct_set.h:167
SCIP_Real concurrent_minsyncdelay
Definition: struct_set.h:579
SCIP_Bool time_reading
Definition: struct_set.h:585
char * visual_bakfilename
Definition: struct_set.h:596
SCIP_Bool history_allowmerge
Definition: struct_set.h:293
SCIP_Bool exprhdlrssorted
Definition: struct_set.h:177
int conf_maxlploops
Definition: struct_set.h:205
SCIP_Real conf_restartfac
Definition: struct_set.h:248
SCIP_Bool limitchanged
Definition: struct_set.h:181
SCIP_Real benders_soltol
Definition: struct_set.h:472
SCIP_Bool decomp_disablemeasures
Definition: struct_set.h:469
SCIP_Bool time_statistictiming
Definition: struct_set.h:587
int mem_pathgrowinit
Definition: struct_set.h:377
SCIP_Bool tablessorted
Definition: struct_set.h:176
enum SCIP_ClockType SCIP_CLOCKTYPE
Definition: type_clock.h:38
SCIP_Bool price_delvarsroot
Definition: struct_set.h:461
SCIP_SEPA ** sepas
Definition: struct_set.h:79
SCIP_Bool branch_delaypscost
Definition: struct_set.h:194
type definitions for cut selectors
SCIP_Bool misc_allowweakdualreds
Definition: struct_set.h:400
SCIP_Bool misc_scaleobj
Definition: struct_set.h:406
char sepa_cutselrestart
Definition: struct_set.h:541
SCIP_Real lp_rowrepswitch
Definition: struct_set.h:356
int lp_resolveitermin
Definition: struct_set.h:361
SCIP_Real sepa_maxcoefratiofacrowprep
Definition: struct_set.h:531
int limit_maxorigsol
Definition: struct_set.h:310
SCIP_Bool conf_fullshortenconflict
Definition: struct_set.h:254
BMS_BUFMEM * buffer
Definition: struct_set.h:68
int parallel_maxnthreads
Definition: struct_set.h:563
int nodeselssize
Definition: struct_set.h:132
SCIP_STAGE stage
Definition: struct_set.h:65
SCIP_Real sepa_minortho
Definition: struct_set.h:534
SCIP_Real misc_referencevalue
Definition: struct_set.h:401
SCIP_Real sepa_minefficacy
Definition: struct_set.h:532
SCIP_Real branch_clamp
Definition: struct_set.h:190
type definitions for global SCIP settings
SCIP_Bool branch_checksbsol
Definition: struct_set.h:198
SCIP_Bool pricerssorted
Definition: struct_set.h:156
SCIP_Bool branch_divingpscost
Definition: struct_set.h:195
SCIP_Bool conf_removable
Definition: struct_set.h:240
enum SCIP_VerbLevel SCIP_VERBLEVEL
Definition: type_message.h:48
int disp_freq
Definition: struct_set.h:282
SCIP_Bool presol_donotmultaggr
Definition: struct_set.h:452
SCIP_Bool lp_presolving
Definition: struct_set.h:349
SCIP_Real concurrent_freqfactor
Definition: struct_set.h:573
SCIP_Longint lp_rootiterlim
Definition: struct_set.h:319
SCIP_Real mem_arraygrowfac
Definition: struct_set.h:372
int nheurs
Definition: struct_set.h:125
int heurssize
Definition: struct_set.h:126
SCIP_Bool lp_cleanuprowsroot
Definition: struct_set.h:340
int cutselssize
Definition: struct_set.h:122
int exprhdlrssize
Definition: struct_set.h:142
int limit_maxsol
Definition: struct_set.h:309
type definitions for presolvers
message output methods
SCIP_Bool lp_lexdualstalling
Definition: struct_set.h:354
SCIP_Bool conf_enable
Definition: struct_set.h:218
SCIP_PRESOL ** presols
Definition: struct_set.h:77
int ndialogs
Definition: struct_set.h:139
SCIP_Bool lp_cleanuprows
Definition: struct_set.h:339
SCIP_RELAX ** relaxs
Definition: struct_set.h:78
SCIP_CONSHDLR ** conshdlrs_include
Definition: struct_set.h:75
char lp_initalgorithm
Definition: struct_set.h:321
SCIP_Real mem_pathgrowfac
Definition: struct_set.h:374
int nactivebenders
Definition: struct_set.h:150
SCIP_Bool branch_forceall
Definition: struct_set.h:196
SCIP_Bool misc_improvingsols
Definition: struct_set.h:389
SCIP_Bool disp_allviols
Definition: struct_set.h:285
SCIP_Bool visual_dispsols
Definition: struct_set.h:598
int readerssize
Definition: struct_set.h:107
SCIP_Bool cons_disableenfops
Definition: struct_set.h:277
SCIP_Real lp_resolveiterfac
Definition: struct_set.h:359
int nbranchrules
Definition: struct_set.h:133
type definitions for branching rules
SCIP_Real limit_absgap
Definition: struct_set.h:300
SCIP_Bool conf_preferbinary
Definition: struct_set.h:231
SCIP_Bool sepasnamesorted
Definition: struct_set.h:165
int tablessize
Definition: struct_set.h:138
SCIP_Bool comprssorted
Definition: struct_set.h:172
SCIP_Real lp_markowitz
Definition: struct_set.h:343
SCIP_Bool heursnamesorted
Definition: struct_set.h:171
int dispssize
Definition: struct_set.h:136
int ncutsels
Definition: struct_set.h:121
SCIP_Bool reopt_enable
Definition: struct_set.h:503
SCIP * scip
Definition: struct_set.h:66
char conf_useboundlp
Definition: struct_set.h:224
int conf_maxvarsdetectimpliedbounds
Definition: struct_set.h:250
int lp_lexdualmaxrounds
Definition: struct_set.h:352
SCIP_Bool reopt_usecuts
Definition: struct_set.h:518
int neventhdlrs
Definition: struct_set.h:129
int concsolverssize
Definition: struct_set.h:148
SCIP_Bool read_dynamicconss
Definition: struct_set.h:604
SCIP_Bool reopt_storevarhistory
Definition: struct_set.h:514
SCIP_Bool disp_lpinfo
Definition: struct_set.h:284
SCIP_NLPI ** nlpis
Definition: struct_set.h:98
int sepa_maxcuts
Definition: struct_set.h:554
SCIP_Real sepa_maxbounddist
Definition: struct_set.h:524
SCIP_Bool lp_lexdualbasic
Definition: struct_set.h:353
SCIP_Real conf_downlockscorefac
Definition: struct_set.h:244
int lp_solvedepth
Definition: struct_set.h:320
struct SCIP_DebugSolData SCIP_DEBUGSOLDATA
Definition: debug.h:50
SCIP_Bool lp_freesolvalbuffers
Definition: struct_set.h:331
char ** extcodedescs
Definition: struct_set.h:105
int presolssize
Definition: struct_set.h:116
SCIP_Bool decomp_benderslabels
Definition: struct_set.h:465
SCIP_Bool misc_allowstrongdualreds
Definition: struct_set.h:399
SCIP_Real num_recompfac
Definition: struct_set.h:433
SCIP_Real num_relaxfeastol
Definition: struct_set.h:437
SCIP_Real num_checkfeastolfac
Definition: struct_set.h:425
SCIP_Real branch_midpullreldomtrig
Definition: struct_set.h:192
SCIP_Bool write_allconss
Definition: struct_set.h:609
SCIP_Bool history_valuebased
Definition: struct_set.h:292
SCIP_CONSHDLR ** conshdlrs_enfo
Definition: struct_set.h:74
type definitions for variable pricers
SCIP_Real conf_maxvarsfac
Definition: struct_set.h:203
SCIP_Real concurrent_freqmax
Definition: struct_set.h:572
SCIP_Bool subscipsoff
Definition: struct_set.h:182
int benderssize
Definition: struct_set.h:151
SCIP_Bool presolssorted
Definition: struct_set.h:160
char lp_pricing
Definition: struct_set.h:325
type definitions for primal heuristics
SCIP_Bool misc_resetstat
Definition: struct_set.h:385
int sepa_maxruns
Definition: struct_set.h:544
SCIP_Bool misc_printreason
Definition: struct_set.h:390
int concsolvertypessize
Definition: struct_set.h:146
SCIP_Bool propspresolsorted
Definition: struct_set.h:168
SCIP_Bool prop_abortoncutoff
Definition: struct_set.h:479
SCIP_Real presol_subrestartfac
Definition: struct_set.h:448
int lp_disablecutoff
Definition: struct_set.h:355
int concurrent_nbestsols
Definition: struct_set.h:577
SCIP_Bool random_permutevars
Definition: struct_set.h:414
type definitions for SCIP&#39;s main datastructure
SCIP_Bool lp_checkfarkas
Definition: struct_set.h:346
char sepa_cutselsubscip
Definition: struct_set.h:542
SCIP_Real conf_uplockscorefac
Definition: struct_set.h:243
int limit_solutions
Definition: struct_set.h:306
int nbenders
Definition: struct_set.h:149
SCIP_CONSHDLR ** conshdlrs
Definition: struct_set.h:72
int cons_agelimit
Definition: struct_set.h:273
char branch_firstsbchild
Definition: struct_set.h:186
int conf_restartnum
Definition: struct_set.h:246
SCIP_Real sepa_maxcoefratio
Definition: struct_set.h:530
SCIP_Real conf_depthscorefac
Definition: struct_set.h:241
type definitions for bandit selection algorithms
int nrelaxs
Definition: struct_set.h:117
SCIP_Bool misc_outputorigsol
Definition: struct_set.h:398
SCIP_Real lp_conditionlimit
Definition: struct_set.h:342
int concurrent_maxnsyncdelay
Definition: struct_set.h:578
SCIP_Bool read_initialconss
Definition: struct_set.h:603
SCIP_CONCSOLVERTYPE ** concsolvertypes
Definition: struct_set.h:99
int conflicthdlrssize
Definition: struct_set.h:114
SCIP_Bool time_rareclockcheck
Definition: struct_set.h:586
SCIP_Bool conf_separate
Definition: struct_set.h:238
SCIP_Bool conflicthdlrsnamesorted
Definition: struct_set.h:159
SCIP_Bool lp_cleanupcols
Definition: struct_set.h:337
SCIP_Bool misc_avoidmemout
Definition: struct_set.h:392
SCIP_Bool lp_checkprimfeas
Definition: struct_set.h:344
SCIP_Real conf_weightsize
Definition: struct_set.h:263
int sepassize
Definition: struct_set.h:120
int branchrulessize
Definition: struct_set.h:134
int nexprhdlrs
Definition: struct_set.h:141
SCIP_EXPRHDLR ** exprhdlrs
Definition: struct_set.h:92
SCIP_Bool relaxsnamesorted
Definition: struct_set.h:163
SCIP_Bool branchrulesnamesorted
Definition: struct_set.h:175
type definitions for relaxators
SCIP_Bool conf_settlelocal
Definition: struct_set.h:233
int sepa_maxroundsrootsubrun
Definition: struct_set.h:547
int nsepas
Definition: struct_set.h:119
int lp_scaling
Definition: struct_set.h:348
SCIP_Real num_hugeval
Definition: struct_set.h:435
SCIP_Real conf_conflictgraphweight
Definition: struct_set.h:260
SCIP_Real conf_scorefac
Definition: struct_set.h:245
type definitions for conflict analysis
SCIP_DEBUGSOLDATA * debugsoldata
Definition: struct_set.h:102
SCIP_Bool benderssorted
Definition: struct_set.h:179
SCIP_Bool reopt_shrinkinner
Definition: struct_set.h:509
type definitions for managing events
SCIP_Real reopt_objsimdelay
Definition: struct_set.h:487
SCIP_Longint limit_stallnodes
Definition: struct_set.h:304
int nbanditvtables
Definition: struct_set.h:154
SCIP_BRANCHRULE ** branchrules
Definition: struct_set.h:88
SCIP_Bool benders_cutlpsol
Definition: struct_set.h:473
SCIP_Real compr_time
Definition: struct_set.h:592
int comprssize
Definition: struct_set.h:128
int conf_lpiterations
Definition: struct_set.h:207
int lp_fastmip
Definition: struct_set.h:347
SCIP_Longint limit_nodes
Definition: struct_set.h:302
SCIP_Bool reopt_sepabestsol
Definition: struct_set.h:513
int random_randomseedshift
Definition: struct_set.h:409
SCIP_EXPRHDLR * exprhdlrproduct
Definition: struct_set.h:96
#define SCIP_Bool
Definition: def.h:84
int banditvtablessize
Definition: struct_set.h:155
SCIP_Bool visual_displb
Definition: struct_set.h:599
char reopt_varorderinterdiction
Definition: struct_set.h:488
SCIP_PARAMSET * paramset
Definition: struct_set.h:67
type definitions for input file readers
int misc_usesymmetry
Definition: struct_set.h:402
int dialogssize
Definition: struct_set.h:140
SCIP_Bool read_dynamiccols
Definition: struct_set.h:605
SCIP_Bool lp_checkdualfeas
Definition: struct_set.h:345
int mem_arraygrowinit
Definition: struct_set.h:375
SCIP_Bool reopt_usesplitcons
Definition: struct_set.h:519
SCIP_HEUR ** heurs
Definition: struct_set.h:83
SCIP_Bool branch_roundsbsol
Definition: struct_set.h:199
SCIP_Real num_boundstreps
Definition: struct_set.h:430
int nreaders
Definition: struct_set.h:106
int lp_colagelimit
Definition: struct_set.h:333
int relaxssize
Definition: struct_set.h:118
methods for debugging
int sepa_maxstallrounds
Definition: struct_set.h:550
int conf_minmaxvars
Definition: struct_set.h:204
int prop_maxrounds
Definition: struct_set.h:477
SCIP_BENDERS ** benders
Definition: struct_set.h:101
int parallel_minnthreads
Definition: struct_set.h:562
SCIP_Real concurrent_freqinit
Definition: struct_set.h:571
int parallel_mode
Definition: struct_set.h:560
SCIP_Bool conf_cleanbnddepend
Definition: struct_set.h:219
SCIP_EXPRHDLR * exprhdlrvar
Definition: struct_set.h:93
SCIP_Real limit_memory
Definition: struct_set.h:298
SCIP_EXPRHDLR * exprhdlrsum
Definition: struct_set.h:95
SCIP_Real num_pseudocosteps
Definition: struct_set.h:431
SCIP_NODESEL * nodesel
Definition: struct_set.h:87
int lp_solutionpolishing
Definition: struct_set.h:362
SCIP_Real num_lpfeastolfactor
Definition: struct_set.h:427
SCIP_Bool history_allowtransfer
Definition: struct_set.h:294
int presol_maxrestarts
Definition: struct_set.h:442
int ntables
Definition: struct_set.h:137
SCIP_DIALOG ** dialogs
Definition: struct_set.h:91
SCIP_Bool conf_sepaaltproofs
Definition: struct_set.h:266
SCIP_Real limit_time
Definition: struct_set.h:297
char sepa_efficacynorm
Definition: struct_set.h:539
int reopt_solvelpdiff
Definition: struct_set.h:498
char * concurrent_paramsetprefix
Definition: struct_set.h:580
int nconflicthdlrs
Definition: struct_set.h:113
SCIP_Bool lp_alwaysgetduals
Definition: struct_set.h:364
int reopt_savesols
Definition: struct_set.h:499
type definitions for Benders&#39; decomposition methods
type definitions for clocks and timing issues
SCIP_Real concurrent_targetprogress
Definition: struct_set.h:574
int sepa_poolfreq
Definition: struct_set.h:557
SCIP_Bool branch_sumadjustscore
Definition: struct_set.h:200
SCIP_Real num_epsilon
Definition: struct_set.h:422
SCIP_TABLE ** tables
Definition: struct_set.h:90
int lp_threads
Definition: struct_set.h:358
SCIP_Real mem_savefac
Definition: struct_set.h:371
SCIP_Bool reopt_sepaglbinfsubtrees
Definition: struct_set.h:512
SCIP_Bool branchrulessorted
Definition: struct_set.h:174
SCIP_COMPR ** comprs
Definition: struct_set.h:84
type definitions for propagators
SCIP_Bool lp_resolverestore
Definition: struct_set.h:329
char * misc_debugsol
Definition: struct_set.h:405
int limit_bestsol
Definition: struct_set.h:307
SCIP_Bool misc_exactsolve
Definition: struct_set.h:384
int price_maxvars
Definition: struct_set.h:457
int cons_obsoleteage
Definition: struct_set.h:275
int npricers
Definition: struct_set.h:108
int propssize
Definition: struct_set.h:124
SCIP_Bool disp_relevantstats
Definition: struct_set.h:286
SCIP_Real sepa_minorthoroot
Definition: struct_set.h:535
int lp_refactorinterval
Definition: struct_set.h:363
SCIP_Bool misc_usevartable
Definition: struct_set.h:381
char ** extcodenames
Definition: struct_set.h:104
int concurrent_maxnsols
Definition: struct_set.h:576
SCIP_Real price_abortfac
Definition: struct_set.h:456
SCIP_Bool misc_catchctrlc
Definition: struct_set.h:380
SCIP_Real conf_minimprove
Definition: struct_set.h:267
int extcodessize
Definition: struct_set.h:153
SCIP_Bool misc_useconstable
Definition: struct_set.h:382
type definitions for tree compression
SCIP_VERBLEVEL disp_verblevel
Definition: struct_set.h:280
int nactivepricers
Definition: struct_set.h:109
SCIP_Bool misc_usesmalltables
Definition: struct_set.h:383
SCIP_Bool write_printzeros
Definition: struct_set.h:610
int lp_rowagelimit
Definition: struct_set.h:335
int sepa_maxrounds
Definition: struct_set.h:545
SCIP_Bool reopt_saveconsprop
Definition: struct_set.h:505
SCIP_Real branch_midpull
Definition: struct_set.h:191
SCIP_Real reopt_objsimrootlp
Definition: struct_set.h:484
type definitions for separators
int conf_maxstoresize
Definition: struct_set.h:215
SCIP_Real num_feastol
Definition: struct_set.h:424
SCIP_Bool branch_preferbinary
Definition: struct_set.h:189
SCIP_Bool misc_transsolsorig
Definition: struct_set.h:394
type and macro definitions related to algebraic expressions
SCIP_PROP ** props
Definition: struct_set.h:81
SCIP_Bool conf_ignorerelaxedbd
Definition: struct_set.h:249
SCIP_Bool read_dynamicrows
Definition: struct_set.h:606
SCIP_CLOCKTYPE time_clocktype
Definition: struct_set.h:583
SCIP_Bool reopt_reducetofrontier
Definition: struct_set.h:504
SCIP_Real presol_restartminred
Definition: struct_set.h:450
SCIP_Bool conf_allowlocal
Definition: struct_set.h:232
SCIP_Bool conf_uselocalrows
Definition: struct_set.h:270
int disp_headerfreq
Definition: struct_set.h:283
int ncomprs
Definition: struct_set.h:127
int random_randomseed
Definition: struct_set.h:412
SCIP_Real sepa_minactivityquot
Definition: struct_set.h:536
type definitions for handling parameter settings
SCIP_Bool misc_transorigsols
Definition: struct_set.h:393
#define SCIP_Real
Definition: def.h:177
type definitions for user interface dialog
SCIP_PRICER ** pricers
Definition: struct_set.h:71
enum SCIP_Stage SCIP_STAGE
Definition: type_set.h:50
SCIP_Real sepa_maxlocalbounddist
Definition: struct_set.h:527
int conf_maxconss
Definition: struct_set.h:213
SCIP_Bool reopt_commontimelimit
Definition: struct_set.h:502
SCIP_Real conf_weightrepropdepth
Definition: struct_set.h:264
SCIP_Bool lp_cleanupcolsroot
Definition: struct_set.h:338
SCIP_CONSHDLR ** conshdlrs_sepa
Definition: struct_set.h:73
SCIP_Bool random_permuteconss
Definition: struct_set.h:413
SCIP_Real conf_proofscorefac
Definition: struct_set.h:242
int nnlpis
Definition: struct_set.h:143
int nextcodes
Definition: struct_set.h:152
SCIP_Bool conf_prefinfproof
Definition: struct_set.h:230
SCIP_Real limit_gap
Definition: struct_set.h:299
#define SCIP_Longint
Definition: def.h:162
SCIP_Bool heurssorted
Definition: struct_set.h:170
char nodesel_childsel
Definition: struct_set.h:417
int eventhdlrssize
Definition: struct_set.h:130
int limit_restarts
Definition: struct_set.h:311
char * nlp_solver
Definition: struct_set.h:368
SCIP_Longint lp_iterlim
Definition: struct_set.h:318
SCIP_Real presol_immrestartfac
Definition: struct_set.h:446
int reopt_forceheurrestart
Definition: struct_set.h:491
SCIP_Bool lp_clearinitialprobinglp
Definition: struct_set.h:327
int conshdlrssize
Definition: struct_set.h:112
SCIP_Real num_barrierconvtol
Definition: struct_set.h:429
SCIP_Bool lp_lexdualalgo
Definition: struct_set.h:350
SCIP_Bool istimelimitfinite
Definition: struct_set.h:314
SCIP_Real presol_restartfac
Definition: struct_set.h:444
SCIP_Bool decomp_applybenders
Definition: struct_set.h:467
int sepa_maxaddrounds
Definition: struct_set.h:548
int nconshdlrs
Definition: struct_set.h:111
SCIP_Bool concurrent_presolvebefore
Definition: struct_set.h:569
SCIP_Bool lp_checkstability
Definition: struct_set.h:341
SCIP_Longint limit_totalnodes
Definition: struct_set.h:303
SCIP_Bool concurrent_changechildsel
Definition: struct_set.h:567
int sepa_maxstallroundsroot
Definition: struct_set.h:552
SCIP_Bool conflicthdlrssorted
Definition: struct_set.h:158
common defines and data types used in all packages of SCIP
BMS_BUFMEM * cleanbuffer
Definition: struct_set.h:69
SCIP_Bool misc_calcintegral
Definition: struct_set.h:395
SCIP_Real conf_conflictweight
Definition: struct_set.h:257
SCIP_Real mem_treegrowfac
Definition: struct_set.h:373
SCIP_Real reopt_objsimsol
Definition: struct_set.h:483
type definitions for node selectors
SCIP_DISP ** disps
Definition: struct_set.h:89
SCIP_Bool time_enabled
Definition: struct_set.h:584
SCIP_Bool bendersnamesorted
Definition: struct_set.h:180
int npresols
Definition: struct_set.h:115
SCIP_Bool nlp_disable
Definition: struct_set.h:367
int disp_width
Definition: struct_set.h:281
SCIP_Real presol_clqtablefac
Definition: struct_set.h:443
SCIP_Bool comprsnamesorted
Definition: struct_set.h:173
SCIP_Real presol_abortfac
Definition: struct_set.h:440
int conf_reconvlevels
Definition: struct_set.h:216
int limit_autorestartnodes
Definition: struct_set.h:312
char conf_useinflp
Definition: struct_set.h:221
int nlpissize
Definition: struct_set.h:144
SCIP_Bool time_nlpieval
Definition: struct_set.h:588
type definitions for displaying statistics tables
SCIP_Bool reopt_sbinit
Definition: struct_set.h:506
SCIP_EVENTHDLR ** eventhdlrs
Definition: struct_set.h:85
SCIP_Real branch_scorefac
Definition: struct_set.h:187
type definitions for constraints and constraint handlers
SCIP_PROP ** props_presol
Definition: struct_set.h:82
SCIP_Bool relaxssorted
Definition: struct_set.h:162
SCIP_Bool cutselssorted
Definition: struct_set.h:166
type definitions for NLP solver interfaces
int price_maxvarsroot
Definition: struct_set.h:458
int reopt_solvelp
Definition: struct_set.h:497
type definitions for concurrent solvers
SCIP_Bool visual_realtime
Definition: struct_set.h:597
type definitions for displaying runtime statistics
int conf_fuiplevels
Definition: struct_set.h:209