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