Scippy

SCIP

Solving Constraint Integer Programs

struct_cons.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-2021 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_cons.h
17  * @ingroup INTERNALAPI
18  * @brief datastructures for constraints and constraint handlers
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_STRUCT_CONS_H__
25 #define __SCIP_STRUCT_CONS_H__
26 
27 #include "scip/def.h"
28 #include "scip/type_clock.h"
29 #include "scip/type_cons.h"
30 
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 /** constraint data structure */
37 struct SCIP_Cons
38 {
39  SCIP_Real age; /**< age of constraint: number of successive times, the constraint was irrelevant */
40  char* name; /**< name of the constraint */
41  SCIP_CONSHDLR* conshdlr; /**< constraint handler for this constraint */
42  SCIP_CONSDATA* consdata; /**< data for this specific constraint */
43  SCIP_CONS* transorigcons; /**< for original constraints: associated transformed constraint or NULL,
44  * for transformed constraints: associated original constraint or NULL */
45  SCIP_CONSSETCHG* addconssetchg; /**< constraint change that added constraint to current subproblem, or NULL if
46  * constraint is from global problem */
47  int addarraypos; /**< position of constraint in the conssetchg's/prob's addedconss/conss array */
48  int consspos; /**< position of constraint in the handler's conss array */
49  int initconsspos; /**< position of constraint in the handler's initconss array */
50  int sepaconsspos; /**< position of constraint in the handler's sepaconss array */
51  int enfoconsspos; /**< position of constraint in the handler's enfoconss array */
52  int checkconsspos; /**< position of constraint in the handler's checkconss array */
53  int propconsspos; /**< position of constraint in the handler's propconss array */
54  int nlockspos[NLOCKTYPES]; /**< array of times, the constraint locked rounding of its variables */
55  int nlocksneg[NLOCKTYPES]; /**< array of times, the constraint locked vars for the constraint's negation */
56  int activedepth; /**< depth level of constraint activation (-2: inactive, -1: problem constraint) */
57  int validdepth; /**< depth level where constraint is valid (-1: equals activedepth) */
58  int nuses; /**< number of times, this constraint is referenced */
59  unsigned int initial:1; /**< TRUE iff LP relaxation of constraint should be in initial LP, if possible */
60  unsigned int separate:1; /**< TRUE iff constraint should be separated during LP processing */
61  unsigned int enforce:1; /**< TRUE iff constraint should be enforced during node processing */
62  unsigned int check:1; /**< TRUE iff constraint should be checked for feasibility */
63  unsigned int propagate:1; /**< TRUE iff constraint should be propagated during node processing */
64  unsigned int sepaenabled:1; /**< TRUE iff constraint should be separated in the next separation call */
65  unsigned int propenabled:1; /**< TRUE iff constraint should be propagated in the next propagation call */
66  unsigned int local:1; /**< TRUE iff constraint is only valid locally */
67  unsigned int modifiable:1; /**< TRUE iff constraint is modifiable (subject to column generation) */
68  unsigned int dynamic:1; /**< TRUE iff constraint is subject to aging */
69  unsigned int removable:1; /**< TRUE iff relaxation should be removed from the LP due to aging or cleanup */
70  unsigned int stickingatnode:1; /**< TRUE iff the node should always be kept at the node where it was added */
71  unsigned int original:1; /**< TRUE iff constraint belongs to original problem */
72  unsigned int deleteconsdata:1; /**< TRUE iff constraint data has to be deleted if constraint is freed */
73  unsigned int active:1; /**< TRUE iff constraint is active in the current node; a constraint is
74  * active if it is global and was not removed during presolving or it was
75  * added locally (in that case the local flag is TRUE) and the current
76  * node belongs to the corresponding sub tree
77  */
78  unsigned int conflict:1; /**< TRUE iff constraint is a conflict */
79  unsigned int enabled:1; /**< TRUE iff constraint is enforced, separated, and propagated in current node */
80  unsigned int obsolete:1; /**< TRUE iff constraint is too seldomly used and therefore obsolete */
81  unsigned int markpropagate:1; /**< TRUE iff constraint is marked to be propagated in the next round */
82  unsigned int deleted:1; /**< TRUE iff constraint was globally deleted */
83  unsigned int update:1; /**< TRUE iff constraint has to be updated in update phase */
84  unsigned int updateinsert:1; /**< TRUE iff constraint has to be inserted in the conss array */
85  unsigned int updateactivate:1; /**< TRUE iff constraint has to be activated in update phase */
86  unsigned int updatedeactivate:1; /**< TRUE iff constraint has to be deactivated in update phase */
87  unsigned int updateenable:1; /**< TRUE iff constraint has to be enabled in update phase */
88  unsigned int updatedisable:1; /**< TRUE iff constraint has to be disabled in update phase */
89  unsigned int updatesepaenable:1; /**< TRUE iff constraint's separation has to be enabled in update phase */
90  unsigned int updatesepadisable:1;/**< TRUE iff constraint's separation has to be disabled in update phase */
91  unsigned int updatepropenable:1; /**< TRUE iff constraint's propagation has to be enabled in update phase */
92  unsigned int updatepropdisable:1;/**< TRUE iff constraint's propagation has to be disabled in update phase */
93  unsigned int updateobsolete:1; /**< TRUE iff obsolete status of constraint has to be updated in update phase */
94  unsigned int updatefree:1; /**< TRUE iff constraint has to be freed in update phase */
95  unsigned int updateactfocus:1; /**< TRUE iff delayed constraint activation happened at focus node */
96  unsigned int updatemarkpropagate:1;/**< TRUE iff constraint has to be marked to be propagated in update phase */
97  unsigned int updateunmarkpropagate:1;/**< TRUE iff constraint has to be unmarked to be propagated in update phase */
98  unsigned int nupgradelocks:28; /**< number of times, a constraint is locked against an upgrade
99  * (e.g. linear -> logicor), 0 means a constraint can be upgraded */
100 #ifndef NDEBUG
101  SCIP* scip; /**< SCIP data structure */
102 #endif
103 };
104 
105 /** tracks additions and removals of the set of active constraints */
107 {
108  SCIP_CONS** addedconss; /**< constraints added to the set of active constraints */
109  SCIP_CONS** disabledconss; /**< constraints disabled in the set of active constraints */
110  int addedconsssize; /**< size of added constraints array */
111  int naddedconss; /**< number of added constraints */
112  int disabledconsssize; /**< size of disabled constraints array */
113  int ndisabledconss; /**< number of disabled constraints */
114 };
115 
116 /** constraint handler */
118 {
119  SCIP_Longint nsepacalls; /**< number of times, the separator was called */
120  SCIP_Longint nenfolpcalls; /**< number of times, the LP enforcer was called */
121  SCIP_Longint nenfopscalls; /**< number of times, the pseudo enforcer was called */
122  SCIP_Longint nenforelaxcalls; /**< number of times, the relaxation enforcer was called */
123  SCIP_Longint npropcalls; /**< number of times, the propagator was called */
124  SCIP_Longint ncheckcalls; /**< number of times, the feasibility check was called */
125  SCIP_Longint nrespropcalls; /**< number of times, the resolve propagation was called */
126  SCIP_Longint ncutoffs; /**< number of cutoffs found so far by this constraint handler */
127  SCIP_Longint ncutsfound; /**< number of cuts found by this constraint handler */
128  SCIP_Longint ncutsapplied; /**< number of cuts found by this constraint handler applied to lp */
129  SCIP_Longint nconssfound; /**< number of additional constraints added by this constraint handler */
130  SCIP_Longint ndomredsfound; /**< number of domain reductions found so far by this constraint handler */
131  SCIP_Longint nchildren; /**< number of children the constraint handler created during branching */
132  SCIP_Longint lastpropdomchgcount;/**< last bound change number, where the domain propagation was called */
133  SCIP_Longint storedpropdomchgcount;/**< bound change number, where the domain propagation was called last before starting probing */
134  SCIP_Longint lastenfolpdomchgcount;/**< last bound change number, where the LP enforcement was called */
135  SCIP_Longint lastenfopsdomchgcount;/**< last bound change number, where the pseudo enforcement was called */
136  SCIP_Longint lastenforelaxdomchgcount;/**< last bound change number, where the relaxation enforcement was called */
137  SCIP_Longint lastenfolpnode; /**< last node at which the LP enforcement was called */
138  SCIP_Longint lastenfopsnode; /**< last node at which the pseudo enforcement was called */
139  SCIP_Longint lastenforelaxnode; /**< last node at which the relaxation enforcement was called */
140  SCIP_RESULT lastenfolpresult; /**< result of last LP enforcement call */
141  SCIP_RESULT lastenfopsresult; /**< result of last pseudo enforcement call */
142  SCIP_RESULT lastenforelaxresult;/**< result of last relaxation enforcement call */
143  SCIP_Real ageresetavg; /**< exp. decaying weighted average of constraint ages at moment of age reset */
144  char* name; /**< name of constraint handler */
145  char* desc; /**< description of constraint handler */
146  SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)); /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
147  SCIP_DECL_CONSFREE ((*consfree)); /**< destructor of constraint handler */
148  SCIP_DECL_CONSINIT ((*consinit)); /**< initialize constraint handler */
149  SCIP_DECL_CONSEXIT ((*consexit)); /**< deinitialize constraint handler */
150  SCIP_DECL_CONSINITPRE ((*consinitpre)); /**< presolving initialization method of constraint handler */
151  SCIP_DECL_CONSEXITPRE ((*consexitpre)); /**< presolving deinitialization method of constraint handler */
152  SCIP_DECL_CONSINITSOL ((*consinitsol)); /**< solving process initialization method of constraint handler */
153  SCIP_DECL_CONSEXITSOL ((*consexitsol)); /**< solving process deinitialization method of constraint handler */
154  SCIP_DECL_CONSDELETE ((*consdelete)); /**< free specific constraint data */
155  SCIP_DECL_CONSTRANS ((*constrans)); /**< transform constraint data into data belonging to the transformed problem */
156  SCIP_DECL_CONSINITLP ((*consinitlp)); /**< initialize LP with relaxations of "initial" constraints */
157  SCIP_DECL_CONSSEPALP ((*conssepalp)); /**< separate cutting planes for LP solution */
158  SCIP_DECL_CONSSEPASOL ((*conssepasol)); /**< separate cutting planes for arbitrary primal solution */
159  SCIP_DECL_CONSENFOLP ((*consenfolp)); /**< enforcing constraints for LP solutions */
160  SCIP_DECL_CONSENFORELAX ((*consenforelax)); /**< enforcing constraints for relaxation solutions */
161  SCIP_DECL_CONSENFOPS ((*consenfops)); /**< enforcing constraints for pseudo solutions */
162  SCIP_DECL_CONSCHECK ((*conscheck)); /**< check feasibility of primal solution */
163  SCIP_DECL_CONSPROP ((*consprop)); /**< propagate variable domains */
164  SCIP_DECL_CONSPRESOL ((*conspresol)); /**< presolving method */
165  SCIP_DECL_CONSRESPROP ((*consresprop)); /**< propagation conflict resolving method */
166  SCIP_DECL_CONSLOCK ((*conslock)); /**< variable rounding lock method */
167  SCIP_DECL_CONSACTIVE ((*consactive)); /**< activation notification method */
168  SCIP_DECL_CONSDEACTIVE((*consdeactive)); /**< deactivation notification method */
169  SCIP_DECL_CONSENABLE ((*consenable)); /**< enabling notification method */
170  SCIP_DECL_CONSDISABLE ((*consdisable)); /**< disabling notification method */
171  SCIP_DECL_CONSDELVARS ((*consdelvars)); /**< variable deletion method */
172  SCIP_DECL_CONSPRINT ((*consprint)); /**< constraint display method */
173  SCIP_DECL_CONSCOPY ((*conscopy)); /**< constraint copying method */
174  SCIP_DECL_CONSPARSE ((*consparse)); /**< constraint parsing method */
175  SCIP_DECL_CONSGETVARS ((*consgetvars)); /**< constraint get variables method */
176  SCIP_DECL_CONSGETNVARS((*consgetnvars)); /**< constraint get number of variable method */
177  SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)); /**< constraint handler diving solution enforcement method */
178  SCIP_CONSHDLRDATA* conshdlrdata; /**< constraint handler data */
179  SCIP_CONS** conss; /**< array with all transformed constraints, active ones preceed inactive
180  * ones; a constraint is active if it is global and was not removed
181  * during presolving or it was added locally (in that case the local flag
182  * is TRUE) and the current node belongs to the corresponding sub tree */
183  SCIP_CONS** initconss; /**< array with active constraints that must enter the LP with their initial representation */
184  SCIP_CONS** sepaconss; /**< array with active constraints that must be separated during LP processing */
185  SCIP_CONS** enfoconss; /**< array with active constraints that must be enforced during node processing */
186  SCIP_CONS** checkconss; /**< array with active constraints that must be checked for feasibility */
187  SCIP_CONS** propconss; /**< array with active constraints that must be propagated during node processing */
188  SCIP_CONS** storedpropconss; /**< array to store constraints that were marked for propagation before
189  * starting probing mode
190  */
191  SCIP_CONS** updateconss; /**< array with constraints that changed and have to be update in the handler */
192  SCIP_CLOCK* setuptime; /**< time spend for setting up this constraint handler for the next stages */
193  SCIP_CLOCK* presoltime; /**< time used for presolving of this constraint handler */
194  SCIP_CLOCK* sepatime; /**< time used for separation of this constraint handler */
195  SCIP_CLOCK* enfolptime; /**< time used for LP enforcement of this constraint handler */
196  SCIP_CLOCK* enfopstime; /**< time used for pseudo enforcement of this constraint handler */
197  SCIP_CLOCK* enforelaxtime; /**< time used for relaxation enforcement of this constraint handler */
198  SCIP_CLOCK* proptime; /**< time used for propagation of this constraint handler */
199  SCIP_CLOCK* sbproptime; /**< time used for propagation of this constraint handler during strong branching */
200  SCIP_CLOCK* checktime; /**< time used for feasibility check of this constraint handler */
201  SCIP_CLOCK* resproptime; /**< time used for resolve propagation of this constraint handler */
202  SCIP_Longint lastsepalpcount; /**< last LP number, where the separations was called */
203  SCIP_Longint lastenfolplpcount; /**< last LP number, where the LP enforcement was called */
204  SCIP_Longint lastenforelaxrelaxcount; /**< last relax number, where the relax enforcement was called */
205  int sepapriority; /**< priority of the constraint handler for separation */
206  int enfopriority; /**< priority of the constraint handler for constraint enforcing */
207  int checkpriority; /**< priority of the constraint handler for checking infeasibility */
208  int sepafreq; /**< frequency for separating cuts; zero means to separate only in the root node */
209  int propfreq; /**< frequency for propagating domains; zero means only preprocessing propagation */
210  int eagerfreq; /**< frequency for using all instead of only the useful constraints in separation,
211  * propagation and enforcement, -1 for no eager evaluations, 0 for first only */
212  int maxprerounds; /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
213  int consssize; /**< size of conss array */
214  int nconss; /**< total number of constraints */
215  int nactiveconss; /**< total number of active constraints */
216  int maxnactiveconss; /**< maximal number of active constraints existing at the same time */
217  int startnactiveconss; /**< number of active constraints existing when problem solving started */
218  int initconsssize; /**< size of initconss array */
219  int ninitconss; /**< number of active constraints that must enter the LP */
220  int ninitconsskept; /**< number of active constraints that must enter the LP, but were not initialized at
221  * their valid node, so that they have to be initialized at every node at which they
222  * are active; these constraints come first in the initconss array */
223  int sepaconsssize; /**< size of sepaconss array */
224  int nsepaconss; /**< number of active constraints that may be separated during LP processing */
225  int nusefulsepaconss; /**< number of non-obsolete active constraints that should be separated */
226  int enfoconsssize; /**< size of enfoconss array */
227  int nenfoconss; /**< number of active constraints that must be enforced during node processing */
228  int nusefulenfoconss; /**< number of non-obsolete active constraints that must be enforced */
229  int checkconsssize; /**< size of checkconss array */
230  int ncheckconss; /**< number of active constraints that must be checked for feasibility */
231  int nusefulcheckconss; /**< number of non-obsolete active constraints that must be checked */
232  int propconsssize; /**< size of propconss array */
233  int npropconss; /**< number of active constraints that may be propagated during node processing */
234  int nmarkedpropconss; /**< number of active constraints which are marked to be propagated in the next round */
235  int nusefulpropconss; /**< number of non-obsolete active constraints that should be propagated */
236  int storedpropconsssize;/**< size of array for storing away marked propagation constraints */
237  int storednmarkedpropconss;/**< number of marked propagation constraints that are stored away */
238  int updateconsssize; /**< size of updateconss array */
239  int nupdateconss; /**< number of update constraints */
240  int nenabledconss; /**< total number of enabled constraints of the handler */
241  int lastnusefulpropconss;/**< number of already propagated useful constraints on current domains */
242  int lastnusefulsepaconss;/**< number of already separated useful constraints on current solution */
243  int lastnusefulenfoconss;/**< number of already enforced useful constraints on current solution */
244  int lastnfixedvars; /**< number of variables fixed before the last call to the presolver */
245  int lastnaggrvars; /**< number of variables aggregated before the last call to the presolver */
246  int lastnchgvartypes; /**< number of variable type changes before the last call to the presolver */
247  int lastnchgbds; /**< number of variable bounds tightened before the last call to the presolver */
248  int lastnaddholes; /**< number of domain holes added before the last call to the presolver */
249  int lastndelconss; /**< number of deleted constraints before the last call to the presolver */
250  int lastnaddconss; /**< number of added constraints before the last call to the presolver */
251  int lastnupgdconss; /**< number of upgraded constraints before the last call to the presolver */
252  int lastnchgcoefs; /**< number of changed coefficients before the last call to the presolver */
253  int lastnchgsides; /**< number of changed left or right hand sides before the last call to the presolver */
254  int nfixedvars; /**< total number of variables fixed by this presolver */
255  int naggrvars; /**< total number of variables aggregated by this presolver */
256  int nchgvartypes; /**< total number of variable type changes by this presolver */
257  int nchgbds; /**< total number of variable bounds tightened by this presolver */
258  int naddholes; /**< total number of domain holes added by this presolver */
259  int ndelconss; /**< total number of deleted constraints by this presolver */
260  int naddconss; /**< total number of added constraints by this presolver */
261  int nupgdconss; /**< total number of upgraded constraints by this presolver */
262  int nchgcoefs; /**< total number of changed coefficients by this presolver */
263  int nchgsides; /**< total number of changed left or right hand sides by this presolver */
264  int npresolcalls; /**< number of times the constraint handler was called in presolving and tried to find reductions */
265  int delayupdatecount; /**< must the updates of the constraint arrays be delayed until processUpdates()? */
266  SCIP_Bool delaysepa; /**< should separation method be delayed, if other separators found cuts? */
267  SCIP_Bool delayprop; /**< should propagation method be delayed, if other propagators found reductions? */
268  SCIP_Bool needscons; /**< should the constraint handler be skipped, if no constraints are available? */
269  SCIP_Bool sepalpwasdelayed; /**< was the LP separation method delayed at the last call? */
270  SCIP_Bool sepasolwasdelayed; /**< was the SOL separation method delayed at the last call? */
271  SCIP_Bool propwasdelayed; /**< was the propagation method delayed at the last call? */
272  SCIP_Bool initialized; /**< is constraint handler initialized? */
273  SCIP_Bool duringsepa; /**< is the constraint handler currently performing separation? */
274  SCIP_Bool duringprop; /**< is the constraint handler currently performing propagation? */
275  SCIP_PROPTIMING proptiming; /**< positions in the node solving loop where propagation method of constraint handlers should be executed */
276  SCIP_PRESOLTIMING presoltiming; /**< timing mask of the constraint handler's presolving method */
277 };
278 
279 /** linear constraint classification statistics used for MIPLIB */
281 {
282  int counter[SCIP_NLINCONSTYPES]; /**< count statistics per type of linear constraint */
283  int sum; /**< sum of all counters */
284 };
285 
286 #ifdef __cplusplus
287 }
288 #endif
289 
290 #endif
enum SCIP_Result SCIP_RESULT
Definition: type_result.h:52
SCIP_CONS ** updateconss
Definition: struct_cons.h:191
SCIP_PROPTIMING proptiming
Definition: struct_cons.h:275
unsigned int conflict
Definition: struct_cons.h:78
int lastnchgvartypes
Definition: struct_cons.h:246
int nlocksneg[NLOCKTYPES]
Definition: struct_cons.h:55
SCIP_Longint nenfolpcalls
Definition: struct_cons.h:120
int initconsspos
Definition: struct_cons.h:49
SCIP_Longint nsepacalls
Definition: struct_cons.h:119
SCIP_Longint lastsepalpcount
Definition: struct_cons.h:202
unsigned int updatemarkpropagate
Definition: struct_cons.h:96
unsigned int propenabled
Definition: struct_cons.h:65
unsigned int updatepropdisable
Definition: struct_cons.h:92
int nusefulenfoconss
Definition: struct_cons.h:228
SCIP_Longint ncutoffs
Definition: struct_cons.h:126
SCIP_Bool sepasolwasdelayed
Definition: struct_cons.h:270
SCIP_CONS ** enfoconss
Definition: struct_cons.h:185
unsigned int active
Definition: struct_cons.h:73
unsigned int dynamic
Definition: struct_cons.h:68
SCIP_CONS ** conss
Definition: struct_cons.h:179
SCIP_CONS ** addedconss
Definition: struct_cons.h:108
SCIP_CLOCK * setuptime
Definition: struct_cons.h:192
SCIP_Longint lastenfopsdomchgcount
Definition: struct_cons.h:135
SCIP_DECL_CONSSEPALP(ConshdlrSubtour::scip_sepalp)
unsigned int updatesepaenable
Definition: struct_cons.h:89
int lastnusefulenfoconss
Definition: struct_cons.h:243
#define SCIP_DECL_CONSINITPRE(x)
Definition: type_cons.h:146
int storedpropconsssize
Definition: struct_cons.h:236
int validdepth
Definition: struct_cons.h:57
int nusefulsepaconss
Definition: struct_cons.h:225
#define SCIP_DECL_CONSGETDIVEBDCHGS(x)
Definition: type_cons.h:909
#define SCIP_DECL_CONSPRESOL(x)
Definition: type_cons.h:550
SCIP_Longint ndomredsfound
Definition: struct_cons.h:130
SCIP_Bool duringprop
Definition: struct_cons.h:274
SCIP_Longint lastenfopsnode
Definition: struct_cons.h:138
unsigned int update
Definition: struct_cons.h:83
int lastnusefulsepaconss
Definition: struct_cons.h:242
int propconsspos
Definition: struct_cons.h:53
SCIP_Longint nenforelaxcalls
Definition: struct_cons.h:122
SCIP_DECL_CONSENFOPS(ConshdlrSubtour::scip_enfops)
SCIP_Longint lastpropdomchgcount
Definition: struct_cons.h:132
#define NLOCKTYPES
Definition: type_var.h:81
#define SCIP_DECL_CONSRESPROP(x)
Definition: type_cons.h:601
SCIP_CLOCK * resproptime
Definition: struct_cons.h:201
unsigned int check
Definition: struct_cons.h:62
SCIP_CONSDATA * consdata
Definition: struct_cons.h:42
unsigned int removable
Definition: struct_cons.h:69
SCIP_RESULT lastenfolpresult
Definition: struct_cons.h:140
SCIP_RESULT lastenforelaxresult
Definition: struct_cons.h:142
#define SCIP_DECL_CONSGETNVARS(x)
Definition: type_cons.h:874
unsigned int enabled
Definition: struct_cons.h:79
int nlockspos[NLOCKTYPES]
Definition: struct_cons.h:54
SCIP_Bool delayprop
Definition: struct_cons.h:267
#define SCIP_DECL_CONSEXITSOL(x)
Definition: type_cons.h:206
SCIP_Longint nconssfound
Definition: struct_cons.h:129
SCIP_Longint nchildren
Definition: struct_cons.h:131
SCIP_DECL_CONSSEPASOL(ConshdlrSubtour::scip_sepasol)
SCIP_Longint lastenforelaxrelaxcount
Definition: struct_cons.h:204
unsigned int updateunmarkpropagate
Definition: struct_cons.h:97
int enfoconsspos
Definition: struct_cons.h:51
SCIP_DECL_CONSDELETE(ConshdlrSubtour::scip_delete)
SCIP_CLOCK * sepatime
Definition: struct_cons.h:194
SCIP_Bool sepalpwasdelayed
Definition: struct_cons.h:269
SCIP_Bool duringsepa
Definition: struct_cons.h:273
SCIP_CONS ** disabledconss
Definition: struct_cons.h:109
#define SCIP_DECL_CONSINITLP(x)
Definition: type_cons.h:249
int nusefulcheckconss
Definition: struct_cons.h:231
SCIP_CONS * transorigcons
Definition: struct_cons.h:43
SCIP_DECL_CONSENFOLP(ConshdlrSubtour::scip_enfolp)
int sepaconsspos
Definition: struct_cons.h:50
SCIP_Longint lastenfolpnode
Definition: struct_cons.h:137
SCIP_CONSSETCHG * addconssetchg
Definition: struct_cons.h:45
SCIP_Longint ncheckcalls
Definition: struct_cons.h:124
int activedepth
Definition: struct_cons.h:56
SCIP_DECL_CONSCHECK(ConshdlrSubtour::scip_check)
unsigned int stickingatnode
Definition: struct_cons.h:70
#define SCIP_DECL_CONSINITSOL(x)
Definition: type_cons.h:191
SCIP_CLOCK * enforelaxtime
Definition: struct_cons.h:197
unsigned int updateinsert
Definition: struct_cons.h:84
unsigned int deleted
Definition: struct_cons.h:82
int storednmarkedpropconss
Definition: struct_cons.h:237
unsigned int sepaenabled
Definition: struct_cons.h:64
unsigned int updatepropenable
Definition: struct_cons.h:91
SCIP_CLOCK * presoltime
Definition: struct_cons.h:193
unsigned int obsolete
Definition: struct_cons.h:80
#define SCIP_DECL_CONSPARSE(x)
Definition: type_cons.h:834
#define SCIP_DECL_CONSDEACTIVE(x)
Definition: type_cons.h:695
SCIP_CONS ** storedpropconss
Definition: struct_cons.h:188
SCIP_CLOCK * enfopstime
Definition: struct_cons.h:196
SCIP_CONS ** initconss
Definition: struct_cons.h:183
SCIP_DECL_CONSTRANS(ConshdlrSubtour::scip_trans)
unsigned int modifiable
Definition: struct_cons.h:67
#define SCIP_DECL_CONSDISABLE(x)
Definition: type_cons.h:725
SCIP_Longint npropcalls
Definition: struct_cons.h:123
SCIP_DECL_CONSDELVARS(ConshdlrSubtour::scip_delvars)
SCIP * scip
Definition: struct_cons.h:101
unsigned int SCIP_PRESOLTIMING
Definition: type_timing.h:52
SCIP_Bool needscons
Definition: struct_cons.h:268
#define SCIP_DECL_CONSENABLE(x)
Definition: type_cons.h:710
unsigned int updatesepadisable
Definition: struct_cons.h:90
SCIP_RESULT lastenfopsresult
Definition: struct_cons.h:141
struct SCIP_ConsData SCIP_CONSDATA
Definition: type_cons.h:56
int startnactiveconss
Definition: struct_cons.h:217
#define SCIP_DECL_CONSGETVARS(x)
Definition: type_cons.h:856
#define SCIP_DECL_CONSEXIT(x)
Definition: type_cons.h:126
int lastnusefulpropconss
Definition: struct_cons.h:241
SCIP_PRESOLTIMING presoltiming
Definition: struct_cons.h:276
SCIP_Bool delaysepa
Definition: struct_cons.h:266
SCIP_Longint ncutsfound
Definition: struct_cons.h:127
#define SCIP_Bool
Definition: def.h:84
SCIP_DECL_CONSPROP(ConshdlrSubtour::scip_prop)
char * name
Definition: struct_cons.h:40
SCIP_CONS ** propconss
Definition: struct_cons.h:187
unsigned int initial
Definition: struct_cons.h:59
SCIP_CONSHDLR * conshdlr
Definition: struct_cons.h:41
SCIP_Longint lastenforelaxdomchgcount
Definition: struct_cons.h:136
unsigned int updatefree
Definition: struct_cons.h:94
#define SCIP_DECL_CONSEXITPRE(x)
Definition: type_cons.h:170
#define SCIP_NLINCONSTYPES
Definition: type_cons.h:83
unsigned int separate
Definition: struct_cons.h:60
SCIP_CONS ** checkconss
Definition: struct_cons.h:186
int nusefulpropconss
Definition: struct_cons.h:235
unsigned int updateactivate
Definition: struct_cons.h:85
unsigned int updateenable
Definition: struct_cons.h:87
int delayupdatecount
Definition: struct_cons.h:265
int consspos
Definition: struct_cons.h:48
type definitions for clocks and timing issues
SCIP_Real age
Definition: struct_cons.h:39
SCIP_Bool propwasdelayed
Definition: struct_cons.h:271
unsigned int updateactfocus
Definition: struct_cons.h:95
unsigned int SCIP_PROPTIMING
Definition: type_timing.h:66
SCIP_Longint nenfopscalls
Definition: struct_cons.h:121
SCIP_Longint lastenfolplpcount
Definition: struct_cons.h:203
SCIP_Longint ncutsapplied
Definition: struct_cons.h:128
#define SCIP_DECL_CONSFREE(x)
Definition: type_cons.h:106
SCIP_CLOCK * enfolptime
Definition: struct_cons.h:195
unsigned int updatedisable
Definition: struct_cons.h:88
#define SCIP_DECL_CONSINIT(x)
Definition: type_cons.h:116
SCIP_DECL_CONSLOCK(ConshdlrSubtour::scip_lock)
unsigned int original
Definition: struct_cons.h:71
unsigned int updateobsolete
Definition: struct_cons.h:93
SCIP_Longint nrespropcalls
Definition: struct_cons.h:125
unsigned int local
Definition: struct_cons.h:66
#define SCIP_DECL_CONSENFORELAX(x)
Definition: type_cons.h:378
#define SCIP_Real
Definition: def.h:177
SCIP_DECL_CONSPRINT(ConshdlrSubtour::scip_print)
unsigned int deleteconsdata
Definition: struct_cons.h:72
SCIP_CLOCK * sbproptime
Definition: struct_cons.h:199
SCIP_Longint storedpropdomchgcount
Definition: struct_cons.h:133
#define SCIP_DECL_CONSACTIVE(x)
Definition: type_cons.h:680
#define SCIP_Longint
Definition: def.h:162
SCIP_Longint lastenforelaxnode
Definition: struct_cons.h:139
unsigned int markpropagate
Definition: struct_cons.h:81
SCIP_Real ageresetavg
Definition: struct_cons.h:143
SCIP_CLOCK * proptime
Definition: struct_cons.h:198
unsigned int updatedeactivate
Definition: struct_cons.h:86
#define SCIP_DECL_CONSHDLRCOPY(x)
Definition: type_cons.h:98
struct SCIP_ConshdlrData SCIP_CONSHDLRDATA
Definition: type_cons.h:55
SCIP_DECL_CONSCOPY(ConshdlrSubtour::scip_copy)
int addarraypos
Definition: struct_cons.h:47
common defines and data types used in all packages of SCIP
int checkconsspos
Definition: struct_cons.h:52
SCIP_Bool initialized
Definition: struct_cons.h:272
unsigned int enforce
Definition: struct_cons.h:61
unsigned int propagate
Definition: struct_cons.h:63
int nmarkedpropconss
Definition: struct_cons.h:234
unsigned int nupgradelocks
Definition: struct_cons.h:98
SCIP_CONS ** sepaconss
Definition: struct_cons.h:184
SCIP_CONSHDLRDATA * conshdlrdata
Definition: struct_cons.h:178
type definitions for constraints and constraint handlers
SCIP_CLOCK * checktime
Definition: struct_cons.h:200
SCIP_Longint lastenfolpdomchgcount
Definition: struct_cons.h:134