|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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
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,
3518 SCIPerrorMessage("feasibility check of constraint handler <%s> returned invalid result <%d>\n",
3548 || (0 <= conshdlr->lastnusefulpropconss && conshdlr->lastnusefulpropconss <= conshdlr->nusefulpropconss));
3574 /* all constraints that were not yet propagated on the new domains must be useful constraints, which means,
3602 SCIPdebugMessage("propagating constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, %d useful)\n",
3604 !fullpropagation && conshdlr->lastpropdomchgcount == stat->domchgcount ? "old" : "new", nusefulconss);
3621 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3622 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3623 * external method; to avoid this, these changes will be buffered and processed after the method call
3635 SCIP_CALL( conshdlr->consprop(set->scip, conshdlr, conss, nconss, nusefulconss, nmarkedpropconss, proptiming, result) );
3675 SCIPerrorMessage("propagation method of constraint handler <%s> returned invalid result <%d>\n",
3683 SCIPdebugMessage("propagation method of constraint handler <%s> was delayed\n", conshdlr->name);
3711 int* nchgsides, /**< pointer to total number of changed left/right hand sides of all presolvers */
3739 SCIPdebugMessage("presolving %d constraints of handler <%s>\n", conshdlr->nactiveconss, conshdlr->name);
3779 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3780 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3781 * external method; to avoid this, these changes will be buffered and processed after the method call
3789 SCIP_CALL( conshdlr->conspresol(set->scip, conshdlr, conshdlr->conss, conshdlr->nactiveconss, nrounds, timing,
3821 SCIPerrorMessage("presolving method of constraint handler <%s> returned invalid result <%d>\n",
3831 SCIPdebugMessage("after presolving %d constraints left of handler <%s>\n", conshdlr->nactiveconss, conshdlr->name);
3852 /* during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3853 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3854 * external method; to avoid this, these changes will be buffered and processed after the method call
3868 /** locks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */
3883 /** unlocks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */
3901 )
3911 )
3921 )
3943 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
3944 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
3946 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
3960 /** sets both the propagation callback and the propagation frequency of the constraint handler */
3964 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
3965 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
3966 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
3982 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
4030 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
4041 SCIP_DECL_CONSEXITSOL ((*consexitsol)) /**< solving process deinitialization method of constraint handler */
4052 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
4063 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
4075 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
4076 SCIP_PRESOLTIMING presoltiming /**< timing mask of the constraint handler's presolving method */
4084 /* the interface change from delay flags to timings cannot be recognized at compile time: Exit with an appropriate
4089 SCIPmessagePrintError("ERROR: 'PRESOLDELAY'-flag no longer available since SCIP 3.2, use an appropriate "
4111 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem */
4114 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
4122 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints */
4125 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
4246 SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs)) /**< constraint handler diving solution enforcement method */
4254 /** gets array with constraints of constraint handler; the first SCIPconshdlrGetNActiveConss() entries are the active
4255 * constraints, the last SCIPconshdlrGetNConss() - SCIPconshdlrGetNActiveConss() constraints are deactivated
4257 * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local
4262 )
4272 )
4282 )
4292 )
4302 )
4312 )
4321 * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local
4326 )
4336 )
4345 SCIP_CONSHDLR* conshdlr, /**< the constraint handler for which all clocks should be enabled or disabled */
4365 )
4375 )
4385 )
4395 )
4405 )
4415 )
4422 /** gets time in seconds used for propagation in this constraint handler during strong branching */
4425 )
4435 )
4445 )
4455 )
4465 )
4475 )
4485 )
4495 )
4505 )
4515 )
4525 )
4535 )
4545 )
4555 )
4565 )
4575 )
4585 )
4592 /** gets maximum number of active constraints of constraint handler existing at the same time */
4595 )
4605 )
4615 )
4625 )
4635 )
4645 )
4652 /** gets number of holes added to domains of variables in presolving method of constraint handler */
4655 )
4665 )
4675 )
4685 )
4695 )
4705 )
4712 /** gets number of times the presolving method of the constraint handler was called and tried to find reductions */
4715 )
4725 )
4735 )
4745 )
4755 )
4765 )
4772 /** gets frequency of constraint handler for eager evaluations in separation, propagation and enforcement */
4775 )
4785 )
4795 )
4805 )
4815 )
4825 )
4835 )
4845 )
4855 )
4865 )
4875 )
4897 )
4988 BMSfreeBlockMemoryArrayNull(blkmem, &(*conssetchg)->addedconss, (*conssetchg)->addedconsssize);
4989 BMSfreeBlockMemoryArrayNull(blkmem, &(*conssetchg)->disabledconss, (*conssetchg)->disabledconsssize);
5012 SCIP_ALLOC( BMSreallocBlockMemoryArray(blkmem, &conssetchg->addedconss, conssetchg->addedconsssize, newsize) );
5036 SCIP_ALLOC( BMSreallocBlockMemoryArray(blkmem, &conssetchg->disabledconss, conssetchg->disabledconsssize, newsize) );
5044 /** adds constraint addition to constraint set changes, and captures constraint; activates constraint if the
5068 SCIP_CALL( conssetchgEnsureAddedconssSize(*conssetchg, blkmem, set, (*conssetchg)->naddedconss+1) );
5084 /* remember, that this constraint set change data was responsible for the constraint's addition */
5110 SCIP_CALL( conssetchgEnsureDisabledconssSize(*conssetchg, blkmem, set, (*conssetchg)->ndisabledconss+1) );
5120 /** deactivates, deletes, and releases constraint from the addedconss array of the constraint set change data */
5138 SCIPdebugMessage("delete added constraint <%s> at position %d from constraint set change data\n", cons->name, arraypos);
5150 /* we want to keep the order of the constraint additions: move all subsequent constraints one slot to the front */
5166 /** deletes and releases deactivated constraint from the disabledconss array of the constraint set change data */
5179 SCIPdebugMessage("delete disabled constraint <%s> at position %d from constraint set change data\n",
5185 /* we want to keep the order of the constraint disablings: move all subsequent constraints one slot to the front */
5212 SCIPdebugMessage("applying constraint set changes at %p: %d constraint additions, %d constraint disablings\n",
5223 /* if constraint is already active, or if constraint is globally deleted, it can be removed from addedconss array */
5241 /* remember, that this constraint set change data was responsible for the constraint's addition */
5260 SCIPdebugMessage("constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n",
5263 /* release and remove constraint from the disabledconss array, the empty slot is now used by the next constraint
5297 SCIPdebugMessage("undoing constraint set changes at %p: %d constraint additions, %d constraint disablings\n",
5307 /* If the constraint is inactive, we can permanently remove it from the disabledconss array. It was deactivated
5308 * in the subtree of the current node but not reactivated on the switching way back to the current node, which
5309 * means, the deactivation was more global (i.e. valid on a higher level node) than the current node and the
5311 * If the constraint is already enabled, we need not to do anything. This may happen on a path A -> B,
5312 * if the constraint is disabled at node B, and while processing the subtree of B, it is also disabled at
5313 * the more global node A. Then on the switching path back to A, the constraint is enabled at node B (which is
5314 * actually wrong, since it now should be disabled in the whole subtree of A, but we cannot know this), and
5315 * again enabled at node A (where enabling is ignored). If afterwards, a subnode of B is processed, the
5320 SCIPdebugMessage("constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n",
5343 /* If the constraint is already deactivated, we need not to do anything. This may happen on a path A -> B,
5344 * if the constraint is added at node B, and while processing the subtree of B, it is also added at
5345 * the more global node A. Then on the switching path back to A, the node is deactivated at node B (which is
5346 * actually wrong, since it now should be active in the whole subtree of A, but we cannot know this), and
5347 * again deactivated at node A (where deactivation is ignored). If afterwards, a subnode of B is processed, the
5348 * switching activates the constraint in node A, and the activation is then removed from node B.
5369 /** applies constraint set change to the global problem and deletes the constraint set change data */
5387 SCIPdebugMessage("moving constraint set changes at %p to global problem: %d constraint additions, %d constraint disablings\n",
5390 /* apply constraint additions to the global problem (loop backwards, because then conssetchgDelAddedCons() is
5402 /* because we first have to delete the constraint, we have to capture it in order to not loose it */
5419 /* apply constraint disablings to the global problem (loop backwards, because then conssetchgDelDisabledCons() is
5458 /** creates and captures a constraint, and inserts it into the conss array of its constraint handler
5460 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution
5462 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
5490 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
5492 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
5509 SCIPerrorMessage("cannot create constraint <%s> of type [%s] - constraint handler does not need constraints\n",
5600 /** copies source constraint of source SCIP into the target constraint for the target SCIP, using the variable map for
5601 * mapping the variables of the source SCIP to the variables of the target SCIP; if the copying process was successful
5604 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution
5606 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
5612 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
5616 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to corresponding
5618 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
5628 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
5629 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
5644 /* if constraint handler does not support copying, success will return false. Constraints handlers have to actively set this to true. */
5649 SCIP_CALL( sourceconshdlr->conscopy(set->scip, cons, name, sourcescip, sourceconshdlr, sourcecons, varmap, consmap,
5650 initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, global, success) );
5657 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is
5660 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, an LP or pseudo solution
5662 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
5688 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
5690 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
5711 SCIPmessagePrintWarning(messagehdlr, "Syntax error: Could not find constraint handler name.\n");
5736 SCIPmessagePrintWarning(messagehdlr, "Syntax error: Could not find colon ':' after constraint name.\n");
5752 SCIPmessagePrintWarning(messagehdlr, "constraint handler <%s> doesn't exist in SCIP data structure\n", conshdlrname);
5759 SCIPmessagePrintWarning(messagehdlr, "constraint handler <%s> does not support parsing constraints\n", conshdlrname);
5764 initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, success) );
5813 if( (*cons)->conshdlr->consdelete != NULL && (*cons)->consdata != NULL && (*cons)->deleteconsdata )
5815 SCIP_CALL( (*cons)->conshdlr->consdelete(set->scip, (*cons)->conshdlr, *cons, &(*cons)->consdata) );
5849 )
5854 SCIPdebugMessage("capture constraint <%s> with nuses=%d, cons pointer %p\n", cons->name, cons->nuses, (void*)cons);
5873 SCIPdebugMessage("release constraint <%s> with nuses=%d, cons pointer %p\n", (*cons)->name, (*cons)->nuses, (void*)(*cons));
5922 SCIPmessageFPrintInfo(messagehdlr, file, "constraint handler <%s> doesn't support printing constraint", conshdlr->name);
5929 * If the number of variables is greater than the available slots in the variable array, nothing happens except that
5930 * the success point is set to FALSE. With the method SCIPconsGetNVars() it is possible to get the number of variables
5935 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
5942 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */
5969 * @note The success pointer indicates if the contraint handler was able to return the number of variables
5971 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
5978 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */
6003 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
6059 /** gets and captures transformed constraint of a given original constraint; if the constraint is not yet transformed,
6088 SCIP_CALL( origcons->conshdlr->constrans(set->scip, origcons->conshdlr, origcons, transcons) );
6093 SCIP_CALL( SCIPconsCreate(transcons, blkmem, set, origcons->name, origcons->conshdlr, origcons->consdata, origcons->initial,
6095 origcons->local, origcons->modifiable, origcons->dynamic, origcons->removable, origcons->stickingatnode,
6368 /** gets associated transformed constraint of an original constraint, or NULL if no associated transformed constraint
6373 )
6385 int depth, /**< depth in the tree where the constraint activation takes place, or -1 for global problem */
6405 SCIPdebugMessage("delayed activation of constraint <%s> in constraint handler <%s> (depth %d)\n",
6457 /** enables constraint's separation, enforcing, and propagation capabilities or marks them to be enabled in next update */
6470 if( !cons->active || cons->updatedeactivate || cons->updateenable || (cons->enabled && !cons->updatedisable) )
6490 /** disables constraint's separation, enforcing, and propagation capabilities or marks them to be disabled in next update */
6554 /** disables constraint's separation capabilities or marks them to be disabled in next update */
6582 /** enables constraint's propagation capabilities or marks them to be enabled in next update */
6612 /** disables constraint's propagation capabilities or marks them to be disabled in next update */
6708 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete
6766 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete
6787 * if it was obsolete, makes constraint useful again or marks constraint to be made useful again in next update
6800 SCIPdebugMessage("resetting age %g of constraint <%s> of handler <%s>\n", cons->age, cons->name, cons->conshdlr->name);
6824 /** adds an active constraint to the propagation queue(if not already marked for propagation) of corresponding
6831 )
6850 /** returns first constraint from propagation queue(if not empty) of given constraint handler */
6853 )
6861 /** removes constraint from propagation queue(if not empty) of given constraint handler and unmarks constraint to be
6886 /** resolves the given conflicting bound, that was deduced by the given constraint, by putting all "reason" bounds
6887 * leading to the deduction into the conflict queue with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
6888 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
6898 SCIP_BDCHGIDX* bdchgidx, /**< bound change index, representing the point of time where change took place */
6924 SCIP_CALL( conshdlr->consresprop(set->scip, conshdlr, cons, infervar, inferinfo, inferboundtype, bdchgidx,
6936 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n",
6943 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> is not implemented\n",
6951 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables */
6986 /* lock the variables, if the constraint switched from unlocked to locked or from locked to unlocked */
6989 SCIP_CALL( cons->conshdlr->conslock(set->scip, cons->conshdlr, cons, updlockpos, updlockneg) );
7019 SCIP_CALL( conshdlr->conscheck(set->scip, conshdlr, &cons, 1, sol, checkintegrality, checklprows, printreason, result) );
7024 SCIPerrorMessage("feasibility check of constraint handler <%s> on constraint <%s> returned invalid result <%d>\n",
7036 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
7037 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
7054 SCIP_CALL( conshdlr->consenfops(set->scip, conshdlr, &cons, 1, 1, solinfeasible, objinfeasible, result) );
7066 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n",
7080 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
7108 SCIPerrorMessage("enforcing method of constraint handler <%s> for LP returned invalid result <%d>\n",
7175 SCIPerrorMessage("separation method of constraint handler <%s> returned invalid result <%d>\n", conshdlr->name,
7218 SCIPerrorMessage("separation method of constraint handler for arbitrary primal solution <%s> returned invalid result <%d>\n",
7258 SCIPerrorMessage("propagation method of constraint handler <%s> returned invalid result <%d>\n",
7272 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */
7274 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
7294 SCIP_CALL( conshdlr->consresprop(set->scip, conshdlr, cons, infervar, inferinfo, boundtype, bdchgidx, relaxedbd, result) );
7300 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n",
7315 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */
7316 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */
7317 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */
7318 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */
7319 int nnewholes, /**< number of domain holes added since the last call to the presolving method */
7320 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */
7321 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */
7322 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */
7323 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */
7324 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */
7326 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */
7327 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */
7328 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */
7332 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */
7333 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */
7334 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */
7362 nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds, nnewholes, nnewdelconss, nnewaddconss,
7374 SCIPerrorMessage("presolving method of constraint handler <%s> returned invalid result <%d>\n",
7500 BMScopyMemoryArray(conshdlr->storedpropconss, conshdlr->propconss, conshdlr->nmarkedpropconss);
7561 assert(conshdlr->nmarkedpropconss + ndisabled >= conshdlr->storednmarkedpropconss || (conshdlrAreUpdatesDelayed(conshdlr) && conshdlr->nupdateconss + ndisabled >= conshdlr->storednmarkedpropconss));
7624 )
7634 )
7644 )
7654 )
7664 )
7671 /** for an active constraint, returns the depth in the tree at which the constraint was activated */
7674 )
7685 )
7692 /** returns the depth in the tree at which the constraint is valid; returns INT_MAX, if the constraint is local
7697 )
7711 )
7721 )
7732 )
7743 )
7753 )
7763 )
7773 )
7783 )
7793 )
7803 )
7813 )
7823 )
7833 )
7843 )
7853 )
7863 )
7870 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */
7873 )
7880 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */
7883 )
7893 )
7903 )
7913 )
7923 )
7933 )
7940 /** returns TRUE iff roundings for variables in constraint or in constraint's negation are locked */
7943 )
7953 )
7963 )
7973 )
7992 /** gets number of locks against upgrading the constraint, 0 means this constraint can be upgraded */
7995 )
SCIP_Longint SCIPconshdlrGetNChildren(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4585 SCIP_CONS * SCIPconshdlrFrontProp(SCIP_CONSHDLR *conshdlr) Definition: cons.c:6853 SCIP_RETCODE SCIPconsSetChecked(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool check) Definition: cons.c:6218 int SCIPconshdlrGetNAddHoles(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4655 SCIP_RETCODE SCIPconsUnmarkPropagate(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6675 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:7455 SCIP_RETCODE SCIPconsIncAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:6771 SCIP_RETCODE SCIPconssetchgFree(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:4975 SCIP_RETCODE SCIPconsActivate(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode) Definition: cons.c:6383 SCIP_Bool SCIPconshdlrWasPropagationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4845 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:6008 Definition: struct_scip.h:53 static SCIP_RETCODE conssetchgDelAddedCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos) Definition: cons.c:5124 static SCIP_RETCODE conshdlrDisableConsSeparation(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1300 SCIP_Longint SCIPconshdlrGetNSepaCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4455 void SCIPconshdlrSetPrint(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRINT((*consprint))) Definition: cons.c:4202 void SCIPconsSetDynamic(SCIP_CONS *cons, SCIP_Bool dynamic) Definition: cons.c:6325 void SCIPconsSetStickingAtNode(SCIP_CONS *cons, SCIP_Bool stickingatnode) Definition: cons.c:6347 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:7187 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:4158 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:4052 SCIP_Bool SCIPconshdlrIsPropagationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4815 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:5667 SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4262 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:4030 int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4725 SCIP_Longint SCIPconshdlrGetNConssFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4565 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:4805 int SCIPconshdlrGetNChgCoefs(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4695 int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4326 SCIP_Real SCIPconshdlrGetSepaTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4385 SCIP_RETCODE SCIPconsGetVars(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR **vars, int varssize, SCIP_Bool *success) Definition: cons.c:5940 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:4272 SCIP_RETCODE SCIPconsSetSeparated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool separate) Definition: cons.c:6148 Definition: struct_sepastore.h:37 SCIP_Bool SCIPconshdlrDoesPresolve(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4795 static SCIP_RETCODE conssetchgRelease(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:4945 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:7813 Definition: struct_message.h:35 void SCIPconshdlrSetFree(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSFREE((*consfree))) Definition: cons.c:3997 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:4485 int SCIPconshdlrGetNAddConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4675 SCIP_RETCODE SCIPconsEnableSeparation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6527 Definition: struct_prob.h:38 void SCIPconshdlrSetCopy(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSCOPY((*conscopy))) Definition: cons.c:3982 SCIP_RETCODE SCIPconsSetPropagated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool propagate) Definition: cons.c:6266 SCIP_Real SCIPvarGetLbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after) Definition: var.c:15695 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:6359 int SCIPconshdlrGetStartNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4605 void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable) Definition: clock.c:250 SCIP_Bool SCIPconshdlrNeedsCons(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4785 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:4445 SCIP_Bool SCIPconshdlrIsInitialized(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4855 SCIP_Longint SCIPconshdlrGetNEnfoPSCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4475 SCIP_Real SCIPconshdlrGetStrongBranchPropTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4425 SCIP_RETCODE SCIPconsResetAge(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6791 void SCIPconshdlrSetPropTiming(SCIP_CONSHDLR *conshdlr, SCIP_PROPTIMING proptiming) Definition: cons.c:4885 Definition: type_retcode.h:44 SCIP_Real SCIPconshdlrGetEnfoLPTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4395 Definition: struct_sol.h:50 Definition: struct_set.h:55 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:4575 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:3921 Definition: type_result.h:41 SCIP_RETCODE SCIPconsDisableSeparation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6557 Definition: struct_misc.h:101 static SCIP_RETCODE conssetchgDelDisabledCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos) Definition: cons.c:5170 SCIP_RETCODE SCIPconshdlrCopyInclude(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_Bool *valid) Definition: cons.c:1959 int SCIPconshdlrGetNDelConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4665 SCIP_CONSHDLR * SCIPsetFindConshdlr(SCIP_SET *set, const char *name) Definition: set.c:3241 void SCIPconshdlrSetExitsol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITSOL((*consexitsol))) Definition: cons.c:4041 Definition: type_clock.h:34 SCIP_Longint SCIPconshdlrGetNCutoffs(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4515 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:6585 int SCIPconshdlrGetNChgSides(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4705 #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:5199 void SCIPconshdlrEnableOrDisableClocks(SCIP_CONSHDLR *conshdlr, SCIP_Bool enable) Definition: cons.c:4346 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:7270 SCIP_RETCODE SCIPconsTransform(SCIP_CONS *origcons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS **transcons) Definition: cons.c:6064 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:7230 Definition: type_retcode.h:48 SCIP_Real SCIPvarGetUbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after) Definition: var.c:15787 Definition: type_lp.h:47 int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4735 SCIP_RETCODE SCIPconsDeactive(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:7410 SCIP_RETCODE SCIPconshdlrDelVars(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:3840 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:8270 SCIP_Longint SCIPconshdlrGetNCheckCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4495 SCIP_Real SCIPconshdlrGetCheckTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4435 void SCIPconshdlrSetPresolTiming(SCIP_CONSHDLR *conshdlr, SCIP_PRESOLTIMING presoltiming) Definition: cons.c:4907 int SCIPsepastoreGetNCuts(SCIP_SEPASTORE *sepastore) Definition: sepastore.c:1356 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:4745 void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...) Definition: message.c:411 void SCIPconshdlrSetEnable(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSENABLE((*consenable))) Definition: cons.c:4169 SCIP_RETCODE SCIPconsChgName(SCIP_CONS *cons, BMS_BLKMEM *blkmem, const char *name) Definition: cons.c:5774 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:5611 SCIP_Bool SCIPconshdlrIsClonable(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4865 void SCIPconshdlrSetExit(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXIT((*consexit))) Definition: cons.c:4019 Definition: type_retcode.h:33 SCIP_Bool SCIPconshdlrWasLPSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4825 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:7721 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:7732 SCIP_Real SCIPconshdlrGetSetupTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4365 SCIP_RETCODE SCIPconsAddLocks(SCIP_CONS *cons, SCIP_SET *set, int nlockspos, int nlocksneg) Definition: cons.c:6954 SCIP_RETCODE SCIPconsDisable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6493 Definition: type_result.h:42 static SCIP_RETCODE conssetchgCreate(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem) Definition: cons.c:4924 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:2315 void SCIPconsAddUpgradeLocks(SCIP_CONS *cons, int nlocks) Definition: cons.c:7983 void SCIPconshdlrSetActive(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSACTIVE((*consactive))) Definition: cons.c:4147 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:3886 SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype) Definition: clock.c:160 void SCIPconshdlrIncNCutsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4555 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:5976 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:3697 SCIP_RETCODE SCIPconsEnfops(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_RESULT *result) Definition: cons.c:7035 SCIP_Longint SCIPconshdlrGetNEnfoLPCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4465 Definition: struct_heur.h:36 void SCIPconsSetModifiable(SCIP_CONS *cons, SCIP_Bool modifiable) Definition: cons.c:6314 SCIP_Longint SCIPconshdlrGetNRespropCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4505 SCIP_RETCODE SCIPconsRelease(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:5861 void SCIPconshdlrSetDelete(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELETE((*consdelete))) Definition: cons.c:4103 void SCIPconshdlrSetInit(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINIT((*consinit))) Definition: cons.c:4008 void SCIPconshdlrIncNAppliedCuts(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4545 Definition: type_set.h:38 void SCIPconsSetRemovable(SCIP_CONS *cons, SCIP_Bool removable) Definition: cons.c:6336 SCIP_RETCODE SCIPconshdlrSetPresol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_PRESOLTIMING presoltiming) Definition: cons.c:4074 SCIP_RETCODE SCIPconshdlrsResetPropagationStatus(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONSHDLR **conshdlrs, int nconshdlrs) Definition: cons.c:7520 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:3530 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:4595 int SCIPconshdlrGetNUpgdConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4685 SCIP_RETCODE SCIPprobDelCons(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: prob.c:1293 void SCIPconshdlrSetGetNVars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETNVARS((*consgetnvars))) Definition: cons.c:4235 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:4213 int SCIPconshdlrGetNPresolCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4715 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:4415 SCIP_PROPTIMING SCIPconshdlrGetPropTiming(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4875 SCIP_RETCODE SCIPqueueCreate(SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac) Definition: misc.c:737 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:5286 SCIP_Longint SCIPconshdlrGetNCutsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4525 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:5049 SCIP_Bool SCIPconshdlrWasSolSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4835 int SCIPconshdlrGetNEnfoConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4302 void SCIPconshdlrSetDisable(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDISABLE((*consdisable))) Definition: cons.c:4180 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:5372 int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4775 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:4897 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:4312 SCIP_RETCODE SCIPconsAddAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real deltaage) Definition: cons.c:6713 SCIP_RETCODE SCIPconsSetInitial(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool initial) Definition: cons.c:6114 void SCIPconshdlrSetResprop(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSRESPROP((*consresprop))) Definition: cons.c:4136 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:3963 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:7312 SCIP_Real SCIPconshdlrGetEnfoPSTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4405 void SCIPconshdlrSetDelvars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELVARS((*consdelvars))) Definition: cons.c:4191 SCIP_RETCODE SCIPconsPrint(SCIP_CONS *cons, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file) Definition: cons.c:5901 SCIP_Real SCIPconshdlrGetPresolTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4375 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:5024 int SCIPconshdlrGetNChgVarTypes(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4635 void SCIPconshdlrSetGetVars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETVARS((*consgetvars))) Definition: cons.c:4224 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:5794 void SCIPconshdlrSetTrans(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSTRANS((*constrans))) Definition: cons.c:4114 SCIP_RETCODE SCIPconsMarkPropagate(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6645 SCIP_RETCODE SCIPconssetchgAddDisabledCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:5095 Definition: type_result.h:45 SCIP_RETCODE SCIPconsEnable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6460 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:4615 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:4535 SCIP_RETCODE SCIPconshdlrPopProp(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:6868 SCIP_RETCODE SCIPprobAddCons(SCIP_PROB *prob, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: prob.c:1226 void SCIPconshdlrSetExitpre(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITPRE((*consexitpre))) Definition: cons.c:4063 SCIP_RETCODE SCIPconsEnfolp(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_RESULT *result) Definition: cons.c:7079 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:6425 Definition: struct_tree.h:165 SCIP_RETCODE SCIPconsDisablePropagation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6615 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:3942 SCIP_RETCODE SCIPconshdlrsStorePropagationStatus(SCIP_SET *set, SCIP_CONSHDLR **conshdlrs, int nconshdlrs) Definition: cons.c:7479 SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4282 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:2293 Definition: struct_branch.h:36 SCIP_RETCODE SCIPconshdlrLockVars(SCIP_CONSHDLR *conshdlr, SCIP_SET *set) Definition: cons.c:3871 static SCIP_RETCODE conshdlrMarkConsObsolete(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:379 int SCIPconshdlrGetNEnabledConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4336 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:4125 void SCIPconshdlrSetData(SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata) Definition: cons.c:3931 #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:5467 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:6998 SCIP_RETCODE SCIPconsSepalp(SCIP_CONS *cons, SCIP_SET *set, SCIP_RESULT *result) Definition: cons.c:7146 Definition: type_result.h:39 static SCIP_RETCODE conssetchgEnsureAddedconssSize(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num) Definition: cons.c:5000 int SCIPconshdlrGetNAggrVars(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4625 void SCIPconshdlrSetGetDiveBdChgs(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETDIVEBDCHGS((*consgetdivebdchgs))) Definition: cons.c:4246 SCIP_RETCODE SCIPconsSetEnforced(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool enforce) Definition: cons.c:6183 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:6894 |