cons.c
Go to the documentation of this file.
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 45 #define AGERESETAVG_INIT 1000.0 /**< initial value of the exponentially decaying weighted sum for ages */ 47 #define AGERESETAVG_DECAY 0.0005 /**< weight of a new addend in the exponentially decyaing sum */ 48 #define AGERESETAVG_AGELIMIT 2.0 /**< in dynamic setting, a constraint is deleted if its age exceeds the 50 #define AGERESETAVG_OBSOLETEAGE 1.8 /**< in dynamic setting, a constraint is marked obsolete if its age exceeds the 304 assert(conshdlr->propconss[c]->markpropagate || (conshdlr->propconss[c]->obsolete == (c >= conshdlr->nusefulpropconss))); 314 ) 323 ) 330 /** updates the exponentially decaying weighted age average for age resets after a constraint age was reset */ 355 || (set->cons_agelimit == 0 && cons->age > AGERESETAVG_AGELIMIT * conshdlrGetAgeresetavg(cons->conshdlr)))); 370 || (set->cons_obsoleteage == 0 && cons->age > AGERESETAVG_OBSOLETEAGE * conshdlrGetAgeresetavg(cons->conshdlr)))); 373 /** marks constraint to be obsolete; it will be moved to the last part of the constraint arrays, such that 446 * thus, we have to reset the enforcement counters in order to enforce all constraints again, especially 448 * this case should occur almost never, because a constraint that was not enforced in the last enforcement 449 * is a newly added one, and it is very unlikely that this constraint will become obsolete before the next 451 * this reset is not performed for separation and propagation, because they are not vital for correctness 471 /* in case the constraint is marked to be propagated, we do not move it in the propconss array since the first 501 * it will be moved to the first part of the constraint arrays, such that it is checked, enforced, separated, 528 assert(conshdlr->nusefulcheckconss <= cons->checkconsspos && cons->checkconsspos < conshdlr->ncheckconss); 546 assert(conshdlr->nusefulsepaconss <= cons->sepaconsspos && cons->sepaconsspos < conshdlr->nsepaconss); 561 assert(conshdlr->nusefulenfoconss <= cons->enfoconsspos && cons->enfoconsspos < conshdlr->nenfoconss); 574 /* in case the constraint is marked to be propagated, we do not move it in the propconss array since the first 580 assert(conshdlr->nusefulpropconss <= cons->propconsspos && cons->propconsspos < conshdlr->npropconss); 602 * @note the propagation array is divided into three parts in contrast to the other constraint arrays; 603 * the first part contains constraints which were marked to be propagated (independently of its age) 604 * the second part contains the useful (non-obsolete) constraints which are not marked to be propagated 607 * @note if a constraint gets marked for propagation we put it into the first part regardless of its age 623 /* it may happen that the constraint is deleted while updates are delayed: in this case we just return */ 632 /* propagation of the constraint is globally or locally disabled, so we do not have to move the constraint in the 642 /* if the constraint is obsolete, we need to move it first to the non-obsolete part of the array */ 645 assert(conshdlr->nusefulpropconss <= cons->propconsspos && cons->propconsspos < conshdlr->npropconss); 658 assert(conshdlr->nmarkedpropconss <= cons->propconsspos && cons->propconsspos < conshdlr->nusefulpropconss); 676 * @note the propagation array is divided into three parts in contrast to the other constraint arrays; 677 * the first part contains constraints which were marked to be propagated (independently of its age) 678 * the second part contains the useful (non-obsolete) constraints which are not marked to be propagated 681 * @note if a constraint gets unmarked for propagation, it is put into the right part depending on its age 697 /* it may happen that the constraint is deleted while updates are delayed: in this case we just return */ 706 /* propagation of the constraint is globally or locally disabled, so we do not have to move the constraint in the 717 /* first, move the constraint out of the first part to the second part of the constraint array */ 996 /* we have to make sure that even this obsolete constraint is enforced in the next enforcement call; 997 * if the same LP or pseudo solution is enforced again, only the newly added useful constraints are 999 * enforced again; this is not needed for separation and propagation, because they are not vital for correctness 1046 /* if the constraint that moved to the free position was a newly added constraint and not enforced in the last 1048 * this check is not performed for separation and propagation, because they are not vital for correctness 1096 conshdlr->checkconss[conshdlr->ncheckconss] = conshdlr->checkconss[conshdlr->nusefulcheckconss]; 1192 /* if the constraint is marked to be propagated, we have to move it to the first part of the array */ 1195 /* temporarily unmark the constraint to be propagated, such that we can use the method below */ 1226 /* unmark constraint to be propagated; this will move the constraint to the obsolete or non-obsolete part of the 1282 SCIPdebugMessage("enable separation of constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1310 SCIPdebugMessage("disable separation of constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1342 SCIPdebugMessage("enable propagation of constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1370 SCIPdebugMessage("disable propagation of constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1411 SCIPdebugMessage("enable constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1473 SCIPdebugMessage("disable constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1520 int depth, /**< depth in the tree where the activation takes place, or -1 for global problem */ 1566 /* add constraint to the initconss array if the constraint is initial and added to the focus node */ 1613 SCIPdebugMessage("deactivate constraint <%s> in constraint handler <%s>\n", cons->name, conshdlr->name); 1666 * recent obsolete check constraints will be moved to the last positions in the sepa-, enfo-, check-, and prop-arrays; 1667 * recent useful constraints will be moved to the first positions in the sepa-, enfo-, check-, and prop-arrays; 1668 * constraints which were recently marked to be propagated are moved to the first positions in the prop-array; 1689 SCIPdebugMessage("processing %d constraints that have to be updated in constraint handler <%s>\n", 1705 SCIPdebugMessage(" -> constraint <%s>: insert=%u, activate=%u, deactivate=%u, enable=%u, disable=%u, sepaenable=%u, sepadisable=%u, propenable=%u, propdisable=%u, obsolete=%u, free=%u (consdata=%p)\n", 1728 SCIP_CALL( conshdlrActivateCons(conshdlr, set, stat, cons, cons->activedepth, cons->updateactfocus) ); 1804 /* nothing to do here: the constraint is freed, when it is released from the updateconss array */ 1864 /** marks constraint handler to delay all constraint updates until the next conshdlrProcessUpdates() call */ 1868 ) 1892 SCIPdebugMessage("constraint updates of constraint handler <%s> will be processed immediately (count:%d)\n", 1921 SCIPdebugMessage("constraint <%s> of age %g has to be updated in constraint handler <%s> (consdata=%p)\n", 1970 SCIPdebugMessage("including constraint handler %s in subscip %p\n", SCIPconshdlrGetName(conshdlr), (void*)set->scip); 1987 int checkpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */ 1988 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */ 1989 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */ 1990 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation, 1992 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */ 1993 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */ 1994 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */ 1995 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */ 1996 SCIP_PROPTIMING proptiming, /**< positions in the node solving loop where propagation method of constraint handlers should be executed */ 1997 SCIP_PRESOLTIMING presoltiming, /**< timing mask of the constraint handler's presolving method */ 1998 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 2002 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */ 2003 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */ 2004 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */ 2005 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */ 2007 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */ 2008 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */ 2010 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */ 2028 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), /**< constraint handler diving solution enforcement method */ 2043 /* the interface change from delay flags to timings cannot be recognized at compile time: Exit with an appropriate 2048 SCIPmessagePrintError("ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate " 2216 (void) SCIPsnprintf(paramdesc, SCIP_MAXSTRLEN, "timing when constraint propagation should be called (%u:BEFORELP, %u:DURINGLPLOOP, %u:AFTERLPLOOP, %u:ALWAYS)", SCIP_PROPTIMING_BEFORELP, SCIP_PROPTIMING_DURINGLPLOOP, SCIP_PROPTIMING_AFTERLPLOOP, SCIP_PROPTIMING_ALWAYS); 2218 (int*)(&(*conshdlr)->proptiming), TRUE, proptiming, (int) SCIP_PROPTIMING_BEFORELP, (int) SCIP_PROPTIMING_ALWAYS, NULL, NULL) ); /*lint !e713*/ 2222 "frequency for using all instead of only the useful constraints in separation, propagation and enforcement (-1: never, 0: only in first evaluation)", 2241 (void) SCIPsnprintf(paramdesc, SCIP_MAXSTRLEN, "timing mask of the constraint handler's presolving method (%u:FAST, %u:MEDIUM, %u:EXHAUSTIVE)", 2244 (int*)&(*conshdlr)->presoltiming, TRUE, presoltiming, (int) SCIP_PRESOLTIMING_FAST, (int) SCIP_PRESOLTIMING_ALWAYS, NULL, NULL) ); /*lint !e740 !e713*/ 2379 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2380 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2381 * external method; to avoid this, these changes will be buffered and processed after the method call 2428 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2429 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2430 * external method; to avoid this, these changes will be buffered and processed after the method call 2492 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2493 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2494 * external method; to avoid this, these changes will be buffered and processed after the method call 2511 /* after a restart the LP is empty but the initial constraints are not included in the initialconss array anymore; 2512 * we have to put them back into this array in order to obtain the correct initial root relaxation 2521 /**@todo should only active constraints be added to the initconss array? at least cons->active is asserted in 2539 assert(conshdlr->conss[c]->deleted || conshdlr->conss[c]->initial == (conshdlr->conss[c]->initconsspos >= 0)); 2569 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2570 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2571 * external method; to avoid this, these changes will be buffered and processed after the method call 2613 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2614 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2615 * external method; to avoid this, these changes will be buffered and processed after the method call 2650 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2651 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2652 * external method; to avoid this, these changes will be buffered and processed after the method call 2660 SCIP_CALL( conshdlr->consexitsol(set->scip, conshdlr, conshdlr->conss, conshdlr->nconss, restart) ); 2672 /** calls LP initialization method of constraint handler to separate all initial active constraints */ 2679 SCIP_Bool initkeptconss /**< Also initialize constraints which are valid at a more global node, 2695 SCIPdebugMessage("initializing LP with %d initial constraints of handler <%s> (ninitconss=%d, kept=%d, initkept=%u)\n", 2696 initkeptconss ? conshdlr->ninitconss : conshdlr->ninitconss - conshdlr->ninitconsskept, conshdlr->name, 2699 /* no constraints to initialize (or only kept constraints which do not need to be initialized this time) -> return */ 2700 if( conshdlr->ninitconss == 0 || (!initkeptconss && conshdlr->ninitconss == conshdlr->ninitconsskept) ) 2703 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2704 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2705 * external method; to avoid this, these changes will be buffered and processed after the method call 2716 /* add all kept initial constraints which are currently active to the second part of the initconss array */ 2717 /* @todo keep track of where a constraint was already initialized (e.g., in the conssetchg)? */ 2730 SCIP_CALL( conshdlr->consinitlp(set->scip, conshdlr, &conshdlr->initconss[conshdlr->ninitconsskept], 2794 || (0 <= conshdlr->lastnusefulsepaconss && conshdlr->lastnusefulsepaconss <= conshdlr->nusefulsepaconss)); 2815 /* all constraints that were not yet separated on the new LP solution must be useful constraints, which means, 2844 SCIPdebugMessage("separating constraints %d to %d of %d constraints of handler <%s> (%s LP solution)\n", 2865 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2866 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2867 * external method; to avoid this, these changes will be buffered and processed after the method call 2913 SCIPerrorMessage("LP separation method of constraint handler <%s> returned invalid result <%d>\n", 2921 SCIPdebugMessage("LP separation method of constraint handler <%s> was delayed\n", conshdlr->name); 2996 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 2997 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 2998 * external method; to avoid this, these changes will be buffered and processed after the method call 3007 SCIP_CALL( conshdlr->conssepasol(set->scip, conshdlr, conss, nconss, nusefulconss, sol, result) ); 3040 SCIPerrorMessage("SOL separation method of constraint handler <%s> returned invalid result <%d>\n", 3048 SCIPdebugMessage("SOL separation method of constraint handler <%s> was delayed\n", conshdlr->name); 3059 /** calls enforcing method of constraint handler for LP solution for all constraints added after last 3082 || (0 <= conshdlr->lastnusefulenfoconss && conshdlr->lastnusefulenfoconss <= conshdlr->nusefulenfoconss)); 3104 assert(conshdlr->lastenfolpresult == SCIP_FEASIBLE || conshdlr->lastenfolpresult == SCIP_INFEASIBLE 3107 /* if we already enforced the same pseudo solution at this node, we will only enforce new constraints in the 3108 * following; however, the result of the last call for the old constraint is still valid and we have to ensure 3115 assert(conshdlr->lastenfolpresult == SCIP_INFEASIBLE || conshdlr->lastenfolpresult == SCIP_SEPARATED); 3120 /* all constraints that were not yet enforced on the new LP solution must be useful constraints, which means, 3150 SCIPdebugMessage("enforcing constraints %d to %d of %d constraints of handler <%s> (%s LP solution)\n", 3151 firstcons, firstcons + nconss - 1, conshdlr->nenfoconss, conshdlr->name, lpchanged ? "new" : "old"); 3172 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 3173 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 3174 * external method; to avoid this, these changes will be buffered and processed after the method call 3182 SCIP_CALL( conshdlr->consenfolp(set->scip, conshdlr, conss, nconss, nusefulconss, solinfeasible, result) ); 3222 SCIPerrorMessage("enforcing method of constraint handler <%s> for LP solutions returned invalid result <%d>\n", 3227 /* if the same LP solution was already enforced at this node, we only enforced new constraints this time; 3228 * if the enfolp call returns feasible now, the solution is only feasible w.r.t. the new constraints, if the 3229 * last call detected infeasibility for the old constraints, we have to change the result to infeasible 3245 SCIP_Bool* success, /**< pointer to store whether constraint handler successfully found a variable */ 3246 SCIP_Bool* infeasible /**< pointer to store whether the current node was detected to be infeasible */ 3258 SCIP_CALL( conshdlr->consgetdivebdchgs(set->scip, conshdlr, diveset, sol, success, infeasible) ); 3264 /** calls enforcing method of constraint handler for pseudo solution for all constraints added after last 3275 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */ 3288 || (0 <= conshdlr->lastnusefulenfoconss && conshdlr->lastnusefulenfoconss <= conshdlr->nusefulenfoconss)); 3322 /* if we already enforced the same pseudo solution at this node, we will only enforce new constraints in the 3323 * following; however, the result of the last call for the old constraint is still valid and we have to ensure 3334 /* all constraints that were not yet enforced on the new LP solution must be useful constraints, which means, 3362 SCIPdebugMessage("enforcing constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, objinfeasible=%u)\n", 3363 firstcons, firstcons + nconss - 1, conshdlr->nenfoconss, conshdlr->name, pschanged ? "new" : "old", objinfeasible); 3381 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 3382 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 3383 * external method; to avoid this, these changes will be buffered and processed after the method call 3391 SCIP_CALL( conshdlr->consenfops(set->scip, conshdlr, conss, nconss, nusefulconss, solinfeasible, objinfeasible, result) ); 3405 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions was skipped, even though the solution was not objective-infeasible\n", 3411 /* A constraint handler might return SCIP_DIDNOTRUN and not check any constraints in case objinfeasible was 3445 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n", 3450 /* if the same pseudo solution was already enforced at this node, we only enforced new constraints this time; 3451 * if the enfops call returns feasible now, the solution is only feasible w.r.t. the new constraints, if the 3452 * last call detected infeasibility for the old constraints, we have to change the result to infeasible 3470 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 3487 SCIPdebugMessage("checking %d constraints of handler <%s>\n", conshdlr->ncheckconss, conshdlr->name); 3489 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 3490 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 3491 * external method; to avoid this, these changes will be buffered and processed after the method call 3499 SCIP_CALL( conshdlr->conscheck(set->scip, conshdlr, conshdlr->checkconss, conshdlr->ncheckconss, 3515 SCIPerrorMessage("feasibility check of constraint handler <%s> returned invalid result <%d>\n", conshdlr->name, *result); 3544 || (0 <= conshdlr->lastnusefulpropconss && conshdlr->lastnusefulpropconss <= conshdlr->nusefulpropconss)); 3570 /* all constraints that were not yet propagated on the new domains must be useful constraints, which means, 3598 SCIPdebugMessage("propagating constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, %d useful)\n", 3600 !fullpropagation && conshdlr->lastpropdomchgcount == stat->domchgcount ? "old" : "new", nusefulconss); 3617 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 3618 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 3619 * external method; to avoid this, these changes will be buffered and processed after the method call 3631 SCIP_CALL( conshdlr->consprop(set->scip, conshdlr, conss, nconss, nusefulconss, nmarkedpropconss, proptiming, result) ); 3671 SCIPerrorMessage("propagation method of constraint handler <%s> returned invalid result <%d>\n", 3679 SCIPdebugMessage("propagation method of constraint handler <%s> was delayed\n", conshdlr->name); 3707 int* nchgsides, /**< pointer to total number of changed left/right hand sides of all presolvers */ 3735 SCIPdebugMessage("presolving %d constraints of handler <%s>\n", conshdlr->nactiveconss, conshdlr->name); 3775 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated, 3776 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 3777 * external method; to avoid this, these changes will be buffered and processed after the method call 3785 SCIP_CALL( conshdlr->conspresol(set->scip, conshdlr, conshdlr->conss, conshdlr->nactiveconss, nrounds, timing, 3817 SCIPerrorMessage("presolving method of constraint handler <%s> returned invalid result <%d>\n", 3827 SCIPdebugMessage("after presolving %d constraints left of handler <%s>\n", conshdlr->nactiveconss, conshdlr->name); 3848 /* during constraint processing, constraints of this handler may be deleted, activated, deactivated, 3849 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the 3850 * external method; to avoid this, these changes will be buffered and processed after the method call 3864 /** locks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */ 3879 /** unlocks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */ 3897 ) 3907 ) 3917 ) 3939 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */ 3940 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */ 3942 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */ 3956 /** sets both the propagation callback and the propagation frequency of the constraint handler */ 3960 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */ 3961 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */ 3962 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */ 3978 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */ 4026 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */ 4037 SCIP_DECL_CONSEXITSOL ((*consexitsol)) /**< solving process deinitialization method of constraint handler */ 4048 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */ 4059 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */ 4071 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */ 4072 SCIP_PRESOLTIMING presoltiming /**< timing mask of the constraint handler's presolving method */ 4080 /* the interface change from delay flags to timings cannot be recognized at compile time: Exit with an appropriate 4085 SCIPmessagePrintError("ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate " 4107 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem */ 4110 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */ 4118 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints */ 4121 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */ 4242 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)) /**< constraint handler diving solution enforcement method */ 4250 /** gets array with constraints of constraint handler; the first SCIPconshdlrGetNActiveConss() entries are the active 4251 * constraints, the last SCIPconshdlrGetNConss() - SCIPconshdlrGetNActiveConss() constraints are deactivated 4253 * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local 4258 ) 4268 ) 4278 ) 4288 ) 4298 ) 4308 ) 4317 * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local 4322 ) 4332 ) 4341 SCIP_CONSHDLR* conshdlr, /**< the constraint handler for which all clocks should be enabled or disabled */ 4361 ) 4371 ) 4381 ) 4391 ) 4401 ) 4411 ) 4418 /** gets time in seconds used for propagation in this constraint handler during strong branching */ 4421 ) 4431 ) 4441 ) 4451 ) 4461 ) 4471 ) 4481 ) 4491 ) 4501 ) 4511 ) 4521 ) 4531 ) 4541 ) 4551 ) 4561 ) 4571 ) 4581 ) 4588 /** gets maximum number of active constraints of constraint handler existing at the same time */ 4591 ) 4601 ) 4611 ) 4621 ) 4631 ) 4641 ) 4648 /** gets number of holes added to domains of variables in presolving method of constraint handler */ 4651 ) 4661 ) 4671 ) 4681 ) 4691 ) 4701 ) 4708 /** gets number of times the presolving method of the constraint handler was called and tried to find reductions */ 4711 ) 4721 ) 4731 ) 4741 ) 4751 ) 4761 ) 4768 /** gets frequency of constraint handler for eager evaluations in separation, propagation and enforcement */ 4771 ) 4781 ) 4791 ) 4801 ) 4811 ) 4821 ) 4831 ) 4841 ) 4851 ) 4861 ) 4871 ) 4893 ) 4984 BMSfreeBlockMemoryArrayNull(blkmem, &(*conssetchg)->addedconss, (*conssetchg)->addedconsssize); 4985 BMSfreeBlockMemoryArrayNull(blkmem, &(*conssetchg)->disabledconss, (*conssetchg)->disabledconsssize); 5008 SCIP_ALLOC( BMSreallocBlockMemoryArray(blkmem, &conssetchg->addedconss, conssetchg->addedconsssize, newsize) ); 5032 SCIP_ALLOC( BMSreallocBlockMemoryArray(blkmem, &conssetchg->disabledconss, conssetchg->disabledconsssize, newsize) ); 5040 /** adds constraint addition to constraint set changes, and captures constraint; activates constraint if the 5064 SCIP_CALL( conssetchgEnsureAddedconssSize(*conssetchg, blkmem, set, (*conssetchg)->naddedconss+1) ); 5080 /* remember, that this constraint set change data was responsible for the constraint's addition */ 5106 SCIP_CALL( conssetchgEnsureDisabledconssSize(*conssetchg, blkmem, set, (*conssetchg)->ndisabledconss+1) ); 5116 /** deactivates, deletes, and releases constraint from the addedconss array of the constraint set change data */ 5134 SCIPdebugMessage("delete added constraint <%s> at position %d from constraint set change data\n", cons->name, arraypos); 5146 /* we want to keep the order of the constraint additions: move all subsequent constraints one slot to the front */ 5162 /** deletes and releases deactivated constraint from the disabledconss array of the constraint set change data */ 5175 SCIPdebugMessage("delete disabled constraint <%s> at position %d from constraint set change data\n", 5181 /* we want to keep the order of the constraint disablings: move all subsequent constraints one slot to the front */ 5208 SCIPdebugMessage("applying constraint set changes at %p: %d constraint additions, %d constraint disablings\n", 5219 /* if constraint is already active, or if constraint is globally deleted, it can be removed from addedconss array */ 5237 /* remember, that this constraint set change data was responsible for the constraint's addition */ 5256 SCIPdebugMessage("constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n", 5259 /* release and remove constraint from the disabledconss array, the empty slot is now used by the next constraint 5293 SCIPdebugMessage("undoing constraint set changes at %p: %d constraint additions, %d constraint disablings\n", 5303 /* If the constraint is inactive, we can permanently remove it from the disabledconss array. It was deactivated 5304 * in the subtree of the current node but not reactivated on the switching way back to the current node, which 5305 * means, the deactivation was more global (i.e. valid on a higher level node) than the current node and the 5307 * If the constraint is already enabled, we need not to do anything. This may happen on a path A -> B, 5308 * if the constraint is disabled at node B, and while processing the subtree of B, it is also disabled at 5309 * the more global node A. Then on the switching path back to A, the constraint is enabled at node B (which is 5310 * actually wrong, since it now should be disabled in the whole subtree of A, but we cannot know this), and 5311 * again enabled at node A (where enabling is ignored). If afterwards, a subnode of B is processed, the 5316 SCIPdebugMessage("constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n", 5339 /* If the constraint is already deactivated, we need not to do anything. This may happen on a path A -> B, 5340 * if the constraint is added at node B, and while processing the subtree of B, it is also added at 5341 * the more global node A. Then on the switching path back to A, the node is deactivated at node B (which is 5342 * actually wrong, since it now should be active in the whole subtree of A, but we cannot know this), and 5343 * again deactivated at node A (where deactivation is ignored). If afterwards, a subnode of B is processed, the 5344 * switching activates the constraint in node A, and the activation is then removed from node B. 5365 /** applies constraint set change to the global problem and deletes the constraint set change data */ 5383 SCIPdebugMessage("moving constraint set changes at %p to global problem: %d constraint additions, %d constraint disablings\n", 5386 /* apply constraint additions to the global problem (loop backwards, because then conssetchgDelAddedCons() is 5398 /* because we first have to delete the constraint, we have to capture it in order to not loose it */ 5415 /* apply constraint disablings to the global problem (loop backwards, because then conssetchgDelDisabledCons() is 5454 /** creates and captures a constraint, and inserts it into the conss array of its constraint handler 5456 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution 5458 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a 5486 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? 5488 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even 5505 SCIPerrorMessage("cannot create constraint <%s> of type [%s] - constraint handler does not need constraints\n", 5596 /** copies source constraint of source SCIP into the target constraint for the target SCIP, using the variable map for 5597 * mapping the variables of the source SCIP to the variables of the target SCIP; if the copying process was successful 5600 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution 5602 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a 5608 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */ 5612 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to corresponding 5614 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding 5624 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */ 5625 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even 5640 /* if constraint handler does not support copying, success will return false. Constraints handlers have to actively set this to true. */ 5645 SCIP_CALL( sourceconshdlr->conscopy(set->scip, cons, name, sourcescip, sourceconshdlr, sourcecons, varmap, consmap, 5646 initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, global, success) ); 5653 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is 5656 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, an LP or pseudo solution 5658 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a 5684 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? 5686 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even 5707 SCIPmessagePrintWarning(messagehdlr, "Syntax error: Could not find constraint handler name.\n"); 5732 SCIPmessagePrintWarning(messagehdlr, "Syntax error: Could not find colon ':' after constraint name.\n"); 5748 SCIPmessagePrintWarning(messagehdlr, "constraint handler <%s> doesn't exist in SCIP data structure\n", conshdlrname); 5755 SCIPmessagePrintWarning(messagehdlr, "constraint handler <%s> does not support parsing constraints\n", conshdlrname); 5760 initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, success) ); 5809 if( (*cons)->conshdlr->consdelete != NULL && (*cons)->consdata != NULL && (*cons)->deleteconsdata ) 5811 SCIP_CALL( (*cons)->conshdlr->consdelete(set->scip, (*cons)->conshdlr, *cons, &(*cons)->consdata) ); 5845 ) 5850 SCIPdebugMessage("capture constraint <%s> with nuses=%d, cons pointer %p\n", cons->name, cons->nuses, (void*)cons); 5869 SCIPdebugMessage("release constraint <%s> with nuses=%d, cons pointer %p\n", (*cons)->name, (*cons)->nuses, (void*)(*cons)); 5918 SCIPmessageFPrintInfo(messagehdlr, file, "constraint handler <%s> doesn't support printing constraint", conshdlr->name); 5925 * If the number of variables is greater than the available slots in the variable array, nothing happens except that 5926 * the success point is set to FALSE. With the method SCIPconsGetNVars() it is possible to get the number of variables 5931 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is 5938 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */ 5965 * @note The success pointer indicates if the contraint handler was able to return the number of variables 5967 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is 5974 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */ 5999 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the 6055 /** gets and captures transformed constraint of a given original constraint; if the constraint is not yet transformed, 6084 SCIP_CALL( origcons->conshdlr->constrans(set->scip, origcons->conshdlr, origcons, transcons) ); 6089 SCIP_CALL( SCIPconsCreate(transcons, blkmem, set, origcons->name, origcons->conshdlr, origcons->consdata, origcons->initial, 6091 origcons->local, origcons->modifiable, origcons->dynamic, origcons->removable, origcons->stickingatnode, 6364 /** gets associated transformed constraint of an original constraint, or NULL if no associated transformed constraint 6369 ) 6381 int depth, /**< depth in the tree where the constraint activation takes place, or -1 for global problem */ 6401 SCIPdebugMessage("delayed activation of constraint <%s> in constraint handler <%s> (depth %d)\n", 6453 /** enables constraint's separation, enforcing, and propagation capabilities or marks them to be enabled in next update */ 6466 if( !cons->active || cons->updatedeactivate || cons->updateenable || (cons->enabled && !cons->updatedisable) ) 6486 /** disables constraint's separation, enforcing, and propagation capabilities or marks them to be disabled in next update */ 6550 /** disables constraint's separation capabilities or marks them to be disabled in next update */ 6578 /** enables constraint's propagation capabilities or marks them to be enabled in next update */ 6608 /** disables constraint's propagation capabilities or marks them to be disabled in next update */ 6704 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete 6762 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete 6783 * if it was obsolete, makes constraint useful again or marks constraint to be made useful again in next update 6796 SCIPdebugMessage("resetting age %g of constraint <%s> of handler <%s>\n", cons->age, cons->name, cons->conshdlr->name); 6820 /** adds an active constraint to the propagation queue(if not already marked for propagation) of corresponding 6827 ) 6846 /** returns first constraint from propagation queue(if not empty) of given constraint handler */ 6849 ) 6857 /** removes constraint from propagation queue(if not empty) of given constraint handler and unmarks constraint to be 6882 /** resolves the given conflicting bound, that was deduced by the given constraint, by putting all "reason" bounds 6883 * leading to the deduction into the conflict queue with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), 6884 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar(); 6894 SCIP_BDCHGIDX* bdchgidx, /**< bound change index, representing the point of time where change took place */ 6920 SCIP_CALL( conshdlr->consresprop(set->scip, conshdlr, cons, infervar, inferinfo, inferboundtype, bdchgidx, 6932 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n", 6939 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> is not implemented\n", 6947 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables */ 6982 /* lock the variables, if the constraint switched from unlocked to locked or from locked to unlocked */ 6985 SCIP_CALL( cons->conshdlr->conslock(set->scip, cons->conshdlr, cons, updlockpos, updlockneg) ); 6997 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */ 7015 SCIP_CALL( conshdlr->conscheck(set->scip, conshdlr, &cons, 1, sol, checkintegrality, checklprows, printreason, result) ); 7020 SCIPerrorMessage("feasibility check of constraint handler <%s> on constraint <%s> returned invalid result <%d>\n", 7032 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */ 7033 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */ 7050 SCIP_CALL( conshdlr->consenfops(set->scip, conshdlr, &cons, 1, 1, solinfeasible, objinfeasible, result) ); 7062 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n", 7076 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */ 7104 SCIPerrorMessage("enforcing method of constraint handler <%s> for LP returned invalid result <%d>\n", 7171 SCIPerrorMessage("separation method of constraint handler <%s> returned invalid result <%d>\n", conshdlr->name, 7214 SCIPerrorMessage("separation method of constraint handler for arbitrary primal solution <%s> returned invalid result <%d>\n", 7254 SCIPerrorMessage("propagation method of constraint handler <%s> returned invalid result <%d>\n", 7268 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */ 7270 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */ 7290 SCIP_CALL( conshdlr->consresprop(set->scip, conshdlr, cons, infervar, inferinfo, boundtype, bdchgidx, relaxedbd, result) ); 7296 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n", 7311 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */ 7312 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */ 7313 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */ 7314 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */ 7315 int nnewholes, /**< number of domain holes added since the last call to the presolving method */ 7316 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */ 7317 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */ 7318 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */ 7319 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */ 7320 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */ 7322 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */ 7323 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */ 7324 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */ 7328 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */ 7329 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */ 7330 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */ 7358 nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewholes, nnewdelconss, nnewaddconss, 7370 SCIPerrorMessage("presolving method of constraint handler <%s> returned invalid result <%d>\n", 7496 BMScopyMemoryArray(conshdlr->storedpropconss, conshdlr->propconss, conshdlr->nmarkedpropconss); 7557 assert(conshdlr->nmarkedpropconss + ndisabled >= conshdlr->storednmarkedpropconss || (conshdlrAreUpdatesDelayed(conshdlr) && conshdlr->nupdateconss + ndisabled >= conshdlr->storednmarkedpropconss)); 7620 ) 7630 ) 7640 ) 7650 ) 7660 ) 7667 /** for an active constraint, returns the depth in the tree at which the constraint was activated */ 7670 ) 7681 ) 7688 /** returns the depth in the tree at which the constraint is valid; returns INT_MAX, if the constraint is local 7693 ) 7707 ) 7717 ) 7728 ) 7739 ) 7749 ) 7759 ) 7769 ) 7779 ) 7789 ) 7799 ) 7809 ) 7819 ) 7829 ) 7839 ) 7849 ) 7859 ) 7866 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */ 7869 ) 7876 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */ 7879 ) 7889 ) 7899 ) 7909 ) 7919 ) 7929 ) 7936 /** returns TRUE iff roundings for variables in constraint or in constraint's negation are locked */ 7939 ) 7949 ) 7959 ) 7969 ) 7988 /** gets number of locks against upgrading the constraint, 0 means this constraint can be upgraded */ 7991 )
SCIP_Longint SCIPconshdlrGetNChildren(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4581 SCIP_CONS * SCIPconshdlrFrontProp(SCIP_CONSHDLR *conshdlr) Definition: cons.c:6849 SCIP_RETCODE SCIPconsSetChecked(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool check) Definition: cons.c:6214 int SCIPconshdlrGetNAddHoles(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4651 SCIP_RETCODE SCIPconsUnmarkPropagate(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6671 SCIP_RETCODE SCIPconshdlrEnforcePseudoSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_BRANCHCAND *branchcand, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_Bool forced, SCIP_RESULT *result) Definition: cons.c:3269 Definition: type_result.h:33 Definition: type_result.h:37 #define BMSfreeBlockMemoryArrayNull(mem, ptr, num) Definition: memory.h:422 Definition: struct_var.h:97 static void conshdlrDelEnfocons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1020 SCIP_RETCODE SCIPconshdlrEnforceLPSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_SEPASTORE *sepastore, SCIP_Bool solinfeasible, SCIP_RESULT *result) Definition: cons.c:3064 Definition: type_result.h:34 static SCIP_RETCODE conshdlrEnsureInitconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:90 static SCIP_RETCODE ensurePropagationStorage(SCIP_SET *set, SCIP_CONSHDLR *conshdlr, int num) Definition: cons.c:7451 SCIP_RETCODE SCIPconsIncAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:6767 SCIP_RETCODE SCIPconssetchgFree(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:4971 SCIP_RETCODE SCIPconsActivate(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode) Definition: cons.c:6379 SCIP_Bool SCIPconshdlrWasPropagationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4841 static SCIP_RETCODE conshdlrEnsureCheckconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:162 internal methods for branch and bound tree SCIP_RETCODE SCIPconshdlrExit(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2406 SCIP_RETCODE SCIPconsDelete(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:6004 Definition: struct_scip.h:53 static SCIP_RETCODE conssetchgDelAddedCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos) Definition: cons.c:5120 static SCIP_RETCODE conshdlrDisableConsSeparation(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1300 SCIP_Longint SCIPconshdlrGetNSepaCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4451 void SCIPconshdlrSetPrint(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRINT((*consprint))) Definition: cons.c:4198 void SCIPconsSetDynamic(SCIP_CONS *cons, SCIP_Bool dynamic) Definition: cons.c:6321 void SCIPconsSetStickingAtNode(SCIP_CONS *cons, SCIP_Bool stickingatnode) Definition: cons.c:6343 static void conshdlrDelCons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:784 SCIP_RETCODE SCIPconsSepasol(SCIP_CONS *cons, SCIP_SET *set, SCIP_SOL *sol, SCIP_RESULT *result) Definition: cons.c:7183 static SCIP_Bool consExceedsAgelimit(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:347 internal methods for clocks and timing issues int SCIPbranchcandGetNPseudoCands(SCIP_BRANCHCAND *branchcand) Definition: branch.c:802 Definition: type_result.h:49 void SCIPconshdlrSetDeactive(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDEACTIVE((*consdeactive))) Definition: cons.c:4154 static SCIP_RETCODE conshdlrEnsureEnfoconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:138 void SCIPconshdlrSetInitpre(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITPRE((*consinitpre))) Definition: cons.c:4048 SCIP_Bool SCIPconshdlrIsPropagationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4811 SCIP_RETCODE SCIPconsParse(SCIP_CONS **cons, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, const char *str, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool *success) Definition: cons.c:5663 SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4258 static SCIP_RETCODE conshdlrDeactivateCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: cons.c:1592 Definition: type_result.h:38 void SCIPconshdlrSetInitsol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITSOL((*consinitsol))) Definition: cons.c:4026 int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4721 SCIP_Longint SCIPconshdlrGetNConssFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4561 static SCIP_RETCODE conshdlrAddSepacons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:875 Definition: struct_var.h:196 static SCIP_RETCODE conshdlrActivateCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons, int depth, SCIP_Bool focusnode) Definition: cons.c:1517 SCIP_Bool SCIPconshdlrIsSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4801 int SCIPconshdlrGetNChgCoefs(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4691 int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4322 SCIP_Real SCIPconshdlrGetSepaTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4381 SCIP_RETCODE SCIPconsGetVars(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR **vars, int varssize, SCIP_Bool *success) Definition: cons.c:5936 datastructures for constraints and constraint handlers static void conshdlrDelCheckcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1116 SCIP_CONS ** SCIPconshdlrGetEnfoConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4268 SCIP_RETCODE SCIPconsSetSeparated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool separate) Definition: cons.c:6144 Definition: struct_sepastore.h:37 SCIP_Bool SCIPconshdlrDoesPresolve(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4791 static SCIP_RETCODE conssetchgRelease(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:4941 SCIP_RETCODE SCIPconshdlrInitsol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2598 SCIP_Bool SCIPconsIsMarkedPropagate(SCIP_CONS *cons) Definition: cons.c:7809 Definition: struct_message.h:35 void SCIPconshdlrSetFree(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSFREE((*consfree))) Definition: cons.c:3993 static SCIP_RETCODE conshdlrEnsurePropconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:186 internal methods for branching rules and branching candidate storage SCIP_Longint SCIPconshdlrGetNPropCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4481 int SCIPconshdlrGetNAddConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4671 SCIP_RETCODE SCIPconsEnableSeparation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6523 Definition: struct_prob.h:38 void SCIPconshdlrSetCopy(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSCOPY((*conscopy))) Definition: cons.c:3978 SCIP_RETCODE SCIPconsSetPropagated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool propagate) Definition: cons.c:6262 SCIP_Real SCIPvarGetLbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after) Definition: var.c:15737 SCIP_RETCODE SCIPconshdlrInit(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2297 static void conshdlrUnmarkConsPropagate(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:686 Definition: type_result.h:40 SCIP_RETCODE SCIPconshdlrSeparateLP(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SEPASTORE *sepastore, int depth, SCIP_Bool execdelayed, SCIP_RESULT *result) Definition: cons.c:2778 void SCIPconsSetNamePointer(SCIP_CONS *cons, const char *name) Definition: cons.c:6355 int SCIPconshdlrGetStartNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4601 void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable) Definition: clock.c:250 SCIP_Bool SCIPconshdlrNeedsCons(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4781 static void conshdlrDelSepacons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:919 static SCIP_Bool conshdlrAreUpdatesDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:314 SCIP_Real SCIPconshdlrGetRespropTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4441 SCIP_Bool SCIPconshdlrIsInitialized(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4851 SCIP_Longint SCIPconshdlrGetNEnfoPSCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4471 SCIP_Real SCIPconshdlrGetStrongBranchPropTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4421 SCIP_RETCODE SCIPconsResetAge(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6787 void SCIPconshdlrSetPropTiming(SCIP_CONSHDLR *conshdlr, SCIP_PROPTIMING proptiming) Definition: cons.c:4881 Definition: type_retcode.h:44 SCIP_Real SCIPconshdlrGetEnfoLPTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4391 Definition: struct_sol.h:50 Definition: struct_set.h:56 static SCIP_RETCODE conshdlrEnsureUpdateconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:210 static void conshdlrDelayUpdates(SCIP_CONSHDLR *conshdlr) Definition: cons.c:1868 SCIP_Longint SCIPconshdlrGetNDomredsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4571 static SCIP_RETCODE conshdlrForceUpdates(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:1884 SCIP_CONSHDLRDATA * SCIPconshdlrGetData(SCIP_CONSHDLR *conshdlr) Definition: cons.c:3917 Definition: type_result.h:41 SCIP_RETCODE SCIPconsDisableSeparation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6553 Definition: struct_misc.h:101 static SCIP_RETCODE conssetchgDelDisabledCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos) Definition: cons.c:5166 SCIP_RETCODE SCIPconshdlrCopyInclude(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_Bool *valid) Definition: cons.c:1959 int SCIPconshdlrGetNDelConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4661 SCIP_CONSHDLR * SCIPsetFindConshdlr(SCIP_SET *set, const char *name) Definition: set.c:3381 void SCIPconshdlrSetExitsol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITSOL((*consexitsol))) Definition: cons.c:4037 Definition: type_clock.h:34 SCIP_Longint SCIPconshdlrGetNCutoffs(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4511 SCIP_RETCODE SCIPconshdlrGetDiveBoundChanges(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_DIVESET *diveset, SCIP_SOL *sol, SCIP_Bool *success, SCIP_Bool *infeasible) Definition: cons.c:3242 SCIP_RETCODE SCIPconsEnablePropagation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6581 int SCIPconshdlrGetNChgSides(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4701 #define BMSduplicateBlockMemoryArray(mem, ptr, source, num) Definition: memory.h:416 SCIP_RETCODE SCIPconssetchgApply(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode) Definition: cons.c:5195 void SCIPconshdlrEnableOrDisableClocks(SCIP_CONSHDLR *conshdlr, SCIP_Bool enable) Definition: cons.c:4342 Definition: type_result.h:35 static SCIP_RETCODE conshdlrAddCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:758 internal methods for storing and manipulating the main problem Definition: struct_cons.h:36 SCIP_RETCODE SCIPconsResprop(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR *infervar, int inferinfo, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd, SCIP_RESULT *result) Definition: cons.c:7266 SCIP_RETCODE SCIPconsTransform(SCIP_CONS *origcons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS **transcons) Definition: cons.c:6060 Definition: struct_cons.h:116 static SCIP_RETCODE conshdlrEnableConsPropagation(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:1329 Definition: type_retcode.h:42 static SCIP_Real conshdlrGetAgeresetavg(SCIP_CONSHDLR *conshdlr) Definition: cons.c:323 static void conshdlrMarkConsPropagate(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:612 static SCIP_RETCODE conshdlrAddUpdateCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:1910 SCIP_RETCODE SCIPconsProp(SCIP_CONS *cons, SCIP_SET *set, SCIP_PROPTIMING proptiming, SCIP_RESULT *result) Definition: cons.c:7226 Definition: type_retcode.h:48 SCIP_Real SCIPvarGetUbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after) Definition: var.c:15859 Definition: type_lp.h:47 int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4731 SCIP_RETCODE SCIPconsDeactive(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:7406 SCIP_RETCODE SCIPconshdlrDelVars(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:3836 Definition: type_result.h:36 static SCIP_Bool consExceedsObsoleteage(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:362 void SCIPstrCopySection(const char *str, char startchar, char endchar, char *token, int size, char **endptr) Definition: misc.c:8275 SCIP_Longint SCIPconshdlrGetNCheckCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4491 SCIP_Real SCIPconshdlrGetCheckTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4431 void SCIPconshdlrSetPresolTiming(SCIP_CONSHDLR *conshdlr, SCIP_PRESOLTIMING presoltiming) Definition: cons.c:4903 int SCIPsepastoreGetNCuts(SCIP_SEPASTORE *sepastore) Definition: sepastore.c:1357 SCIP_RETCODE SCIPconshdlrInitpre(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2454 int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4741 void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...) Definition: message.c:411 void SCIPconshdlrSetEnable(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSENABLE((*consenable))) Definition: cons.c:4165 SCIP_RETCODE SCIPconsChgName(SCIP_CONS *cons, BMS_BLKMEM *blkmem, const char *name) Definition: cons.c:5770 SCIP_RETCODE SCIPconsCopy(SCIP_CONS **cons, SCIP_SET *set, const char *name, SCIP *sourcescip, SCIP_CONSHDLR *sourceconshdlr, SCIP_CONS *sourcecons, SCIP_HASHMAP *varmap, SCIP_HASHMAP *consmap, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool global, SCIP_Bool *success) Definition: cons.c:5607 SCIP_Bool SCIPconshdlrIsClonable(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4861 void SCIPconshdlrSetExit(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXIT((*consexit))) Definition: cons.c:4015 Definition: type_retcode.h:33 SCIP_Bool SCIPconshdlrWasLPSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4821 static SCIP_RETCODE conshdlrProcessUpdates(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:1674 SCIP_Bool SCIPconsIsSeparationEnabled(SCIP_CONS *cons) Definition: cons.c:7717 internal methods for global SCIP settings SCIP_RETCODE SCIPconshdlrInitLP(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Bool initkeptconss) Definition: cons.c:2675 SCIP_Bool SCIPconsIsPropagationEnabled(SCIP_CONS *cons) Definition: cons.c:7728 SCIP_Real SCIPconshdlrGetSetupTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4361 SCIP_RETCODE SCIPconsAddLocks(SCIP_CONS *cons, SCIP_SET *set, int nlockspos, int nlocksneg) Definition: cons.c:6950 SCIP_RETCODE SCIPconsDisable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6489 Definition: type_result.h:42 static SCIP_RETCODE conssetchgCreate(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem) Definition: cons.c:4920 static void conshdlrDelPropcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1211 SCIP_RETCODE SCIPsetAddIntParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) Definition: set.c:2455 void SCIPconsAddUpgradeLocks(SCIP_CONS *cons, int nlocks) Definition: cons.c:7979 void SCIPconshdlrSetActive(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSACTIVE((*consactive))) Definition: cons.c:4143 internal methods for storing separated cuts static SCIP_RETCODE conshdlrEnableCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: cons.c:1389 SCIP_RETCODE SCIPconshdlrUnlockVars(SCIP_CONSHDLR *conshdlr, SCIP_SET *set) Definition: cons.c:3882 SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype) Definition: clock.c:160 void SCIPconshdlrIncNCutsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4551 internal methods for problem variables public data structures and miscellaneous methods static void conshdlrDelInitcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:840 SCIP_RETCODE SCIPconsGetNVars(SCIP_CONS *cons, SCIP_SET *set, int *nvars, SCIP_Bool *success) Definition: cons.c:5972 static SCIP_RETCODE conshdlrMarkConsUseful(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:507 SCIP_RETCODE SCIPconshdlrPresolve(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRESOLTIMING timing, int nrounds, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result) Definition: cons.c:3693 SCIP_RETCODE SCIPconsEnfops(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_RESULT *result) Definition: cons.c:7031 SCIP_Longint SCIPconshdlrGetNEnfoLPCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4461 Definition: struct_heur.h:36 void SCIPconsSetModifiable(SCIP_CONS *cons, SCIP_Bool modifiable) Definition: cons.c:6310 SCIP_Longint SCIPconshdlrGetNRespropCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4501 SCIP_RETCODE SCIPconsRelease(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:5857 void SCIPconshdlrSetDelete(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELETE((*consdelete))) Definition: cons.c:4099 void SCIPconshdlrSetInit(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINIT((*consinit))) Definition: cons.c:4004 void SCIPconshdlrIncNAppliedCuts(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4541 Definition: type_set.h:38 void SCIPconsSetRemovable(SCIP_CONS *cons, SCIP_Bool removable) Definition: cons.c:6332 SCIP_RETCODE SCIPconshdlrSetPresol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_PRESOLTIMING presoltiming) Definition: cons.c:4070 SCIP_RETCODE SCIPconshdlrsResetPropagationStatus(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONSHDLR **conshdlrs, int nconshdlrs) Definition: cons.c:7516 SCIP_RETCODE SCIPconshdlrPropagate(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool fullpropagation, SCIP_Bool execdelayed, SCIP_Bool instrongbranching, SCIP_PROPTIMING proptiming, SCIP_RESULT *result) Definition: cons.c:3526 static SCIP_RETCODE conshdlrEnableConsSeparation(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:1269 static SCIP_RETCODE conshdlrEnsureSepaconssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:114 int SCIPconshdlrGetMaxNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4591 int SCIPconshdlrGetNUpgdConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4681 SCIP_RETCODE SCIPprobDelCons(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: prob.c:1297 void SCIPconshdlrSetGetNVars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETNVARS((*consgetnvars))) Definition: cons.c:4231 SCIP_RETCODE SCIPconshdlrCreate(SCIP_CONSHDLR **conshdlr, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int sepapriority, int enfopriority, int checkpriority, int sepafreq, int propfreq, int eagerfreq, int maxprerounds, SCIP_Bool delaysepa, SCIP_Bool delayprop, SCIP_Bool needscons, SCIP_PROPTIMING proptiming, SCIP_PRESOLTIMING presoltiming, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSFREE((*consfree)), SCIP_DECL_CONSINIT((*consinit)), SCIP_DECL_CONSEXIT((*consexit)), SCIP_DECL_CONSINITPRE((*consinitpre)), SCIP_DECL_CONSEXITPRE((*consexitpre)), SCIP_DECL_CONSINITSOL((*consinitsol)), SCIP_DECL_CONSEXITSOL((*consexitsol)), SCIP_DECL_CONSDELETE((*consdelete)), SCIP_DECL_CONSTRANS((*constrans)), SCIP_DECL_CONSINITLP((*consinitlp)), SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), SCIP_DECL_CONSENFOLP((*consenfolp)), SCIP_DECL_CONSENFOPS((*consenfops)), SCIP_DECL_CONSCHECK((*conscheck)), SCIP_DECL_CONSPROP((*consprop)), SCIP_DECL_CONSPRESOL((*conspresol)), SCIP_DECL_CONSRESPROP((*consresprop)), SCIP_DECL_CONSLOCK((*conslock)), SCIP_DECL_CONSACTIVE((*consactive)), SCIP_DECL_CONSDEACTIVE((*consdeactive)), SCIP_DECL_CONSENABLE((*consenable)), SCIP_DECL_CONSDISABLE((*consdisable)), SCIP_DECL_CONSDELVARS((*consdelvars)), SCIP_DECL_CONSPRINT((*consprint)), SCIP_DECL_CONSCOPY((*conscopy)), SCIP_DECL_CONSPARSE((*consparse)), SCIP_DECL_CONSGETVARS((*consgetvars)), SCIP_DECL_CONSGETNVARS((*consgetnvars)), SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)), SCIP_CONSHDLRDATA *conshdlrdata) Definition: cons.c:1980 void SCIPconshdlrSetParse(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPARSE((*consparse))) Definition: cons.c:4209 int SCIPconshdlrGetNPresolCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4711 SCIP_RETCODE SCIPconshdlrExitpre(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2552 static SCIP_RETCODE conshdlrAddEnfocons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:965 Definition: type_set.h:34 SCIP_Real SCIPconshdlrGetPropTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4411 SCIP_PROPTIMING SCIPconshdlrGetPropTiming(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4871 SCIP_RETCODE SCIPqueueCreate(SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac) Definition: misc.c:742 static SCIP_RETCODE conshdlrAddCheckcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:1072 SCIP_RETCODE SCIPconssetchgUndo(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:5282 SCIP_Longint SCIPconshdlrGetNCutsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4521 Definition: type_lp.h:48 SCIP_RETCODE SCIPconssetchgAddAddedCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons, int depth, SCIP_Bool focusnode, SCIP_Bool active) Definition: cons.c:5045 SCIP_Bool SCIPconshdlrWasSolSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4831 int SCIPconshdlrGetNEnfoConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4298 void SCIPconshdlrSetDisable(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDISABLE((*consdisable))) Definition: cons.c:4176 SCIP_RETCODE SCIPconshdlrCheck(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_RESULT *result) Definition: cons.c:3465 SCIP_RETCODE SCIPconssetchgMakeGlobal(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:5368 int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4771 static SCIP_RETCODE conshdlrEnsureConssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:66 Definition: type_result.h:43 SCIP_PRESOLTIMING SCIPconshdlrGetPresolTiming(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4893 static SCIP_RETCODE conshdlrDisableConsPropagation(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1360 void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...) Definition: message.c:602 int SCIPconshdlrGetNCheckConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4308 SCIP_RETCODE SCIPconsAddAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real deltaage) Definition: cons.c:6709 SCIP_RETCODE SCIPconsSetInitial(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool initial) Definition: cons.c:6110 void SCIPconshdlrSetResprop(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSRESPROP((*consresprop))) Definition: cons.c:4132 internal methods for problem statistics Definition: struct_cons.h:105 static void conshdlrUpdateAgeresetavg(SCIP_CONSHDLR *conshdlr, SCIP_Real age) Definition: cons.c:334 SCIP_RETCODE SCIPconshdlrExitsol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool restart) Definition: cons.c:2638 void SCIPconshdlrSetProp(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING timingmask) Definition: cons.c:3959 SCIP_RETCODE SCIPconsPresol(SCIP_CONS *cons, SCIP_SET *set, int nrounds, SCIP_PRESOLTIMING timing, int nnewfixedvars, int nnewaggrvars, int nnewchgvartypes, int nnewchgbds, int nnewholes, int nnewdelconss, int nnewaddconss, int nnewupgdconss, int nnewchgcoefs, int nnewchgsides, int *nfixedvars, int *naggrvars, int *nchgvartypes, int *nchgbds, int *naddholes, int *ndelconss, int *naddconss, int *nupgdconss, int *nchgcoefs, int *nchgsides, SCIP_RESULT *result) Definition: cons.c:7308 SCIP_Real SCIPconshdlrGetEnfoPSTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4401 void SCIPconshdlrSetDelvars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELVARS((*consdelvars))) Definition: cons.c:4187 SCIP_RETCODE SCIPconsPrint(SCIP_CONS *cons, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file) Definition: cons.c:5897 SCIP_Real SCIPconshdlrGetPresolTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4371 internal methods for constraints and constraint handlers static SCIP_RETCODE conssetchgEnsureDisabledconssSize(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num) Definition: cons.c:5020 int SCIPconshdlrGetNChgVarTypes(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4631 void SCIPconshdlrSetGetVars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETVARS((*consgetvars))) Definition: cons.c:4220 Definition: type_retcode.h:45 static SCIP_RETCODE conshdlrAddInitcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: cons.c:804 SCIP_RETCODE SCIPconsFree(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:5790 void SCIPconshdlrSetTrans(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSTRANS((*constrans))) Definition: cons.c:4110 SCIP_RETCODE SCIPconsMarkPropagate(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6641 SCIP_RETCODE SCIPconssetchgAddDisabledCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:5091 Definition: type_result.h:45 SCIP_RETCODE SCIPconsEnable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6456 static SCIP_RETCODE conshdlrDisableCons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: cons.c:1451 int SCIPconshdlrGetNFixedVars(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4611 SCIP_RETCODE SCIPconshdlrSeparateSol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_SEPASTORE *sepastore, SCIP_SOL *sol, int depth, SCIP_Bool execdelayed, SCIP_RESULT *result) Definition: cons.c:2935 SCIP_Longint SCIPconshdlrGetNCutsApplied(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4531 SCIP_RETCODE SCIPconshdlrPopProp(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:6864 SCIP_RETCODE SCIPprobAddCons(SCIP_PROB *prob, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: prob.c:1230 void SCIPconshdlrSetExitpre(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITPRE((*consexitpre))) Definition: cons.c:4059 SCIP_RETCODE SCIPconsEnfolp(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_RESULT *result) Definition: cons.c:7075 Definition: struct_stat.h:44 Definition: type_result.h:46 SCIP_RETCODE SCIPconsDeactivate(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6421 Definition: struct_tree.h:165 SCIP_RETCODE SCIPconsDisablePropagation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6611 common defines and data types used in all packages of SCIP SCIP_RETCODE SCIPconshdlrFree(SCIP_CONSHDLR **conshdlr, SCIP_SET *set) Definition: cons.c:2252 void SCIPconshdlrSetSepa(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), int sepafreq, int sepapriority, SCIP_Bool delaysepa) Definition: cons.c:3938 SCIP_RETCODE SCIPconshdlrsStorePropagationStatus(SCIP_SET *set, SCIP_CONSHDLR **conshdlrs, int nconshdlrs) Definition: cons.c:7475 SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4278 SCIP_RETCODE SCIPsetAddBoolParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) Definition: set.c:2433 Definition: struct_branch.h:36 SCIP_RETCODE SCIPconshdlrLockVars(SCIP_CONSHDLR *conshdlr, SCIP_SET *set) Definition: cons.c:3867 static SCIP_RETCODE conshdlrMarkConsObsolete(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:379 int SCIPconshdlrGetNEnabledConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4332 static SCIP_RETCODE conshdlrAddPropcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:1155 void SCIPconshdlrSetInitlp(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINITLP((*consinitlp))) Definition: cons.c:4121 void SCIPconshdlrSetData(SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata) Definition: cons.c:3927 #define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum) Definition: memory.h:412 SCIP_RETCODE SCIPconsCreate(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set, const char *name, SCIP_CONSHDLR *conshdlr, SCIP_CONSDATA *consdata, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode, SCIP_Bool original, SCIP_Bool deleteconsdata) Definition: cons.c:5463 SCIP_RETCODE SCIPconsCheck(SCIP_CONS *cons, SCIP_SET *set, SCIP_SOL *sol, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool printreason, SCIP_RESULT *result) Definition: cons.c:6994 SCIP_RETCODE SCIPconsSepalp(SCIP_CONS *cons, SCIP_SET *set, SCIP_RESULT *result) Definition: cons.c:7142 Definition: type_result.h:39 static SCIP_RETCODE conssetchgEnsureAddedconssSize(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num) Definition: cons.c:4996 int SCIPconshdlrGetNAggrVars(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4621 void SCIPconshdlrSetGetDiveBdChgs(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs))) Definition: cons.c:4242 SCIP_RETCODE SCIPconsSetEnforced(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool enforce) Definition: cons.c:6179 SCIP_RETCODE SCIPconsResolvePropagation(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR *infervar, int inferinfo, SCIP_BOUNDTYPE inferboundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Real relaxedbd, SCIP_RESULT *result) Definition: cons.c:6890 |