|
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 delaypresol, /**< should presolving method be delayed, if other presolvers found reductions? */
1996 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
1997 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagation method of constraint handlers should be executed */
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 */
2204 (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);
2206 (int*)(&(*conshdlr)->timingmask), TRUE, timingmask, (int) SCIP_PROPTIMING_BEFORELP, (int) SCIP_PROPTIMING_ALWAYS, NULL, NULL) ); /*lint !e713*/
2210 "frequency for using all instead of only the useful constraints in separation, propagation and enforcement (-1: never, 0: only in first evaluation)",
2367 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2368 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2369 * external method; to avoid this, these changes will be buffered and processed after the method call
2416 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2417 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2418 * external method; to avoid this, these changes will be buffered and processed after the method call
2481 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2482 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2483 * external method; to avoid this, these changes will be buffered and processed after the method call
2500 /* after a restart the LP is empty but the initial constraints are not included in the initialconss array anymore;
2501 * we have to put them back into this array in order to obtain the correct initial root relaxation
2510 /**@todo should only active constraints be added to the initconss array? at least cons->active is asserted in
2528 assert(conshdlr->conss[c]->deleted || conshdlr->conss[c]->initial == (conshdlr->conss[c]->initconsspos >= 0));
2558 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2559 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2560 * external method; to avoid this, these changes will be buffered and processed after the method call
2602 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2603 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2604 * external method; to avoid this, these changes will be buffered and processed after the method call
2639 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2640 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2641 * external method; to avoid this, these changes will be buffered and processed after the method call
2649 SCIP_CALL( conshdlr->consexitsol(set->scip, conshdlr, conshdlr->conss, conshdlr->nconss, restart) );
2661 /** calls LP initialization method of constraint handler to separate all initial active constraints */
2668 SCIP_Bool initkeptconss /**< Also initialize constraints which are valid at a more global node,
2684 SCIPdebugMessage("initializing LP with %d initial constraints of handler <%s> (ninitconss=%d, kept=%d, initkept=%u)\n",
2685 initkeptconss ? conshdlr->ninitconss : conshdlr->ninitconss - conshdlr->ninitconsskept, conshdlr->name,
2688 /* no constraints to initialize (or only kept constraints which do not need to be initialized this time) -> return */
2689 if( conshdlr->ninitconss == 0 || (!initkeptconss && conshdlr->ninitconss == conshdlr->ninitconsskept) )
2692 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2693 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2694 * external method; to avoid this, these changes will be buffered and processed after the method call
2705 /* add all kept initial constraints which are currently active to the second part of the initconss array */
2706 /* @todo keep track of where a constraint was already initialized (e.g., in the conssetchg)? */
2719 SCIP_CALL( conshdlr->consinitlp(set->scip, conshdlr, &conshdlr->initconss[conshdlr->ninitconsskept],
2783 || (0 <= conshdlr->lastnusefulsepaconss && conshdlr->lastnusefulsepaconss <= conshdlr->nusefulsepaconss));
2804 /* all constraints that were not yet separated on the new LP solution must be useful constraints, which means,
2833 SCIPdebugMessage("separating constraints %d to %d of %d constraints of handler <%s> (%s LP solution)\n",
2854 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2855 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2856 * external method; to avoid this, these changes will be buffered and processed after the method call
2902 SCIPerrorMessage("LP separation method of constraint handler <%s> returned invalid result <%d>\n",
2910 SCIPdebugMessage("LP separation method of constraint handler <%s> was delayed\n", conshdlr->name);
2985 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
2986 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
2987 * external method; to avoid this, these changes will be buffered and processed after the method call
2996 SCIP_CALL( conshdlr->conssepasol(set->scip, conshdlr, conss, nconss, nusefulconss, sol, result) );
3029 SCIPerrorMessage("SOL separation method of constraint handler <%s> returned invalid result <%d>\n",
3037 SCIPdebugMessage("SOL separation method of constraint handler <%s> was delayed\n", conshdlr->name);
3048 /** calls enforcing method of constraint handler for LP solution for all constraints added after last
3071 || (0 <= conshdlr->lastnusefulenfoconss && conshdlr->lastnusefulenfoconss <= conshdlr->nusefulenfoconss));
3093 assert(conshdlr->lastenfolpresult == SCIP_FEASIBLE || conshdlr->lastenfolpresult == SCIP_INFEASIBLE
3096 /* if we already enforced the same pseudo solution at this node, we will only enforce new constraints in the
3097 * following; however, the result of the last call for the old constraint is still valid and we have to ensure
3104 assert(conshdlr->lastenfolpresult == SCIP_INFEASIBLE || conshdlr->lastenfolpresult == SCIP_SEPARATED);
3109 /* all constraints that were not yet enforced on the new LP solution must be useful constraints, which means,
3139 SCIPdebugMessage("enforcing constraints %d to %d of %d constraints of handler <%s> (%s LP solution)\n",
3140 firstcons, firstcons + nconss - 1, conshdlr->nenfoconss, conshdlr->name, lpchanged ? "new" : "old");
3161 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3162 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3163 * external method; to avoid this, these changes will be buffered and processed after the method call
3171 SCIP_CALL( conshdlr->consenfolp(set->scip, conshdlr, conss, nconss, nusefulconss, solinfeasible, result) );
3211 SCIPerrorMessage("enforcing method of constraint handler <%s> for LP solutions returned invalid result <%d>\n",
3216 /* if the same LP solution was already enforced at this node, we only enforced new constraints this time;
3217 * if the enfolp call returns feasible now, the solution is only feasible w.r.t. the new constraints, if the
3218 * last call detected infeasibility for the old constraints, we have to change the result to infeasible
3228 /** calls enforcing method of constraint handler for pseudo solution for all constraints added after last
3239 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
3252 || (0 <= conshdlr->lastnusefulenfoconss && conshdlr->lastnusefulenfoconss <= conshdlr->nusefulenfoconss));
3286 /* if we already enforced the same pseudo solution at this node, we will only enforce new constraints in the
3287 * following; however, the result of the last call for the old constraint is still valid and we have to ensure
3298 /* all constraints that were not yet enforced on the new LP solution must be useful constraints, which means,
3326 SCIPdebugMessage("enforcing constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, objinfeasible=%u)\n",
3327 firstcons, firstcons + nconss - 1, conshdlr->nenfoconss, conshdlr->name, pschanged ? "new" : "old", objinfeasible);
3345 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3346 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3347 * external method; to avoid this, these changes will be buffered and processed after the method call
3355 SCIP_CALL( conshdlr->consenfops(set->scip, conshdlr, conss, nconss, nusefulconss, solinfeasible, objinfeasible, result) );
3369 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions was skipped, even though the solution was not objective-infeasible\n",
3375 /* A constraint handler might return SCIP_DIDNOTRUN and not check any constraints in case objinfeasible was
3409 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n",
3414 /* if the same pseudo solution was already enforced at this node, we only enforced new constraints this time;
3415 * if the enfops call returns feasible now, the solution is only feasible w.r.t. the new constraints, if the
3416 * last call detected infeasibility for the old constraints, we have to change the result to infeasible
3451 SCIPdebugMessage("checking %d constraints of handler <%s>\n", conshdlr->ncheckconss, conshdlr->name);
3453 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3454 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3455 * external method; to avoid this, these changes will be buffered and processed after the method call
3463 SCIP_CALL( conshdlr->conscheck(set->scip, conshdlr, conshdlr->checkconss, conshdlr->ncheckconss,
3482 SCIPerrorMessage("feasibility check of constraint handler <%s> returned invalid result <%d>\n",
3512 || (0 <= conshdlr->lastnusefulpropconss && conshdlr->lastnusefulpropconss <= conshdlr->nusefulpropconss));
3538 /* all constraints that were not yet propagated on the new domains must be useful constraints, which means,
3566 SCIPdebugMessage("propagating constraints %d to %d of %d constraints of handler <%s> (%s pseudo solution, %d useful)\n",
3568 !fullpropagation && conshdlr->lastpropdomchgcount == stat->domchgcount ? "old" : "new", nusefulconss);
3585 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3586 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3587 * external method; to avoid this, these changes will be buffered and processed after the method call
3599 SCIP_CALL( conshdlr->consprop(set->scip, conshdlr, conss, nconss, nusefulconss, nmarkedpropconss, proptiming, result) );
3639 SCIPerrorMessage("propagation method of constraint handler <%s> returned invalid result <%d>\n",
3647 SCIPdebugMessage("propagation method of constraint handler <%s> was delayed\n", conshdlr->name);
3675 int* nchgsides, /**< pointer to total number of changed left/right hand sides of all presolvers */
3701 && (conshdlr->maxprerounds == -1 || nrounds < conshdlr->maxprerounds || conshdlr->presolwasdelayed) )
3703 SCIPdebugMessage("presolving %d constraints of handler <%s>\n", conshdlr->nactiveconss, conshdlr->name);
3743 /* because during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3744 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3745 * external method; to avoid this, these changes will be buffered and processed after the method call
3753 SCIP_CALL( conshdlr->conspresol(set->scip, conshdlr, conshdlr->conss, conshdlr->nactiveconss, nrounds,
3785 SCIPerrorMessage("presolving method of constraint handler <%s> returned invalid result <%d>\n",
3796 SCIPdebugMessage("presolving method of constraint handler <%s> was delayed\n", conshdlr->name);
3800 SCIPdebugMessage("after presolving %d constraints left of handler <%s>\n", conshdlr->nactiveconss, conshdlr->name);
3824 /* during constraint processing, constraints of this handler may be deleted, activated, deactivated,
3825 * enabled, disabled, marked obsolete or useful, which would change the conss array given to the
3826 * external method; to avoid this, these changes will be buffered and processed after the method call
3840 /** locks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */
3855 /** unlocks rounding of variables involved in the given constraint constraint handler that doesn't need constraints */
3873 )
3883 )
3893 )
3915 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
3916 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
3918 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
3932 /** sets both the propagation callback and the propagation frequency of the constraint handler */
3936 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
3937 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
3938 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
3954 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
4002 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
4013 SCIP_DECL_CONSEXITSOL ((*consexitsol)) /**< solving process deinitialization method of constraint handler */
4024 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
4035 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
4047 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
4048 SCIP_Bool delaypresol /**< should presolving method be delayed, if other presolvers found reductions? */
4069 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem */
4072 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
4080 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints */
4083 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
4201 /** gets array with constraints of constraint handler; the first SCIPconshdlrGetNActiveConss() entries are the active
4202 * constraints, the last SCIPconshdlrGetNConss() - SCIPconshdlrGetNActiveConss() constraints are deactivated
4204 * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local
4209 )
4219 )
4229 )
4239 )
4249 )
4259 )
4268 * @note A constraint is active if it is global and was not removed or it was added locally (in that case the local
4273 )
4283 )
4292 SCIP_CONSHDLR* conshdlr, /**< the constraint handler for which all clocks should be enabled or disabled */
4312 )
4322 )
4332 )
4342 )
4352 )
4362 )
4369 /** gets time in seconds used for propagation in this constraint handler during strong branching */
4372 )
4382 )
4392 )
4402 )
4412 )
4422 )
4432 )
4442 )
4452 )
4462 )
4472 )
4482 )
4492 )
4502 )
4512 )
4522 )
4532 )
4539 /** gets maximum number of active constraints of constraint handler existing at the same time */
4542 )
4552 )
4562 )
4572 )
4582 )
4592 )
4599 /** gets number of holes added to domains of variables in presolving method of constraint handler */
4602 )
4612 )
4622 )
4632 )
4642 )
4652 )
4659 /** gets number of times the presolving method of the constraint handler was called and tried to find reductions */
4662 )
4672 )
4682 )
4692 )
4702 )
4712 )
4719 /** gets frequency of constraint handler for eager evaluations in separation, propagation and enforcement */
4722 )
4732 )
4742 )
4752 )
4762 )
4772 )
4782 )
4792 )
4802 )
4812 )
4822 )
4832 )
4842 )
4923 BMSfreeBlockMemoryArrayNull(blkmem, &(*conssetchg)->addedconss, (*conssetchg)->addedconsssize);
4924 BMSfreeBlockMemoryArrayNull(blkmem, &(*conssetchg)->disabledconss, (*conssetchg)->disabledconsssize);
4947 SCIP_ALLOC( BMSreallocBlockMemoryArray(blkmem, &conssetchg->addedconss, conssetchg->addedconsssize, newsize) );
4971 SCIP_ALLOC( BMSreallocBlockMemoryArray(blkmem, &conssetchg->disabledconss, conssetchg->disabledconsssize, newsize) );
4979 /** adds constraint addition to constraint set changes, and captures constraint; activates constraint if the
5003 SCIP_CALL( conssetchgEnsureAddedconssSize(*conssetchg, blkmem, set, (*conssetchg)->naddedconss+1) );
5019 /* remember, that this constraint set change data was responsible for the constraint's addition */
5045 SCIP_CALL( conssetchgEnsureDisabledconssSize(*conssetchg, blkmem, set, (*conssetchg)->ndisabledconss+1) );
5055 /** deactivates, deletes, and releases constraint from the addedconss array of the constraint set change data */
5073 SCIPdebugMessage("delete added constraint <%s> at position %d from constraint set change data\n", cons->name, arraypos);
5085 /* we want to keep the order of the constraint additions: move all subsequent constraints one slot to the front */
5101 /** deletes and releases deactivated constraint from the disabledconss array of the constraint set change data */
5114 SCIPdebugMessage("delete disabled constraint <%s> at position %d from constraint set change data\n",
5120 /* we want to keep the order of the constraint disablings: move all subsequent constraints one slot to the front */
5147 SCIPdebugMessage("applying constraint set changes at %p: %d constraint additions, %d constraint disablings\n",
5158 /* if constraint is already active, or if constraint is globally deleted, it can be removed from addedconss array */
5176 /* remember, that this constraint set change data was responsible for the constraint's addition */
5195 SCIPdebugMessage("constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n",
5198 /* release and remove constraint from the disabledconss array, the empty slot is now used by the next constraint
5232 SCIPdebugMessage("undoing constraint set changes at %p: %d constraint additions, %d constraint disablings\n",
5242 /* If the constraint is inactive, we can permanently remove it from the disabledconss array. It was deactivated
5243 * in the subtree of the current node but not reactivated on the switching way back to the current node, which
5244 * means, the deactivation was more global (i.e. valid on a higher level node) than the current node and the
5246 * If the constraint is already enabled, we need not to do anything. This may happen on a path A -> B,
5247 * if the constraint is disabled at node B, and while processing the subtree of B, it is also disabled at
5248 * the more global node A. Then on the switching path back to A, the constraint is enabled at node B (which is
5249 * actually wrong, since it now should be disabled in the whole subtree of A, but we cannot know this), and
5250 * again enabled at node A (where enabling is ignored). If afterwards, a subnode of B is processed, the
5255 SCIPdebugMessage("constraint <%s> of handler <%s> was deactivated -> remove it from disabledconss array\n",
5278 /* If the constraint is already deactivated, we need not to do anything. This may happen on a path A -> B,
5279 * if the constraint is added at node B, and while processing the subtree of B, it is also added at
5280 * the more global node A. Then on the switching path back to A, the node is deactivated at node B (which is
5281 * actually wrong, since it now should be active in the whole subtree of A, but we cannot know this), and
5282 * again deactivated at node A (where deactivation is ignored). If afterwards, a subnode of B is processed, the
5283 * switching activates the constraint in node A, and the activation is then removed from node B.
5304 /** applies constraint set change to the global problem and deletes the constraint set change data */
5322 SCIPdebugMessage("moving constraint set changes at %p to global problem: %d constraint additions, %d constraint disablings\n",
5325 /* apply constraint additions to the global problem (loop backwards, because then conssetchgDelAddedCons() is
5337 /* because we first have to delete the constraint, we have to capture it in order to not loose it */
5354 /* apply constraint disablings to the global problem (loop backwards, because then conssetchgDelDisabledCons() is
5393 /** creates and captures a constraint, and inserts it into the conss array of its constraint handler
5395 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution
5397 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
5425 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup?
5427 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
5444 SCIPerrorMessage("cannot create constraint <%s> of type [%s] - constraint handler does not need constraints\n",
5535 /** copies source constraint of source SCIP into the target constraint for the target SCIP, using the variable map for
5536 * mapping the variables of the source SCIP to the variables of the target SCIP; if the copying process was successful
5539 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution
5541 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
5547 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
5551 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to corresponding
5553 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
5563 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
5564 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
5579 /* if constraint handler does not support copying, success will return false. Constraints handlers have to actively set this to true. */
5584 SCIP_CALL( sourceconshdlr->conscopy(set->scip, cons, name, sourcescip, sourceconshdlr, sourcecons, varmap, consmap,
5585 initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, global, success) );
5592 /** parses constraint information (in cip format) out of a string; if the parsing process was successful a constraint is
5595 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, an LP or pseudo solution
5597 * This constellation should only be used, if no LP or pseudo solution can violate the constraint -- e.g. if a
5623 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
5646 SCIPmessagePrintWarning(messagehdlr, "Syntax error: Could not find constraint handler name.\n");
5671 SCIPmessagePrintWarning(messagehdlr, "Syntax error: Could not find colon ':' after constraint name.\n");
5687 SCIPmessagePrintWarning(messagehdlr, "constraint handler <%s> doesn't exist in SCIP data structure\n", conshdlrname);
5694 SCIPmessagePrintWarning(messagehdlr, "constraint handler <%s> does not support parsing constraints\n", conshdlrname);
5699 initial, separate, enforce, check, propagate, local, modifiable, dynamic, removable, stickingatnode, success) );
5748 if( (*cons)->conshdlr->consdelete != NULL && (*cons)->consdata != NULL && (*cons)->deleteconsdata )
5750 SCIP_CALL( (*cons)->conshdlr->consdelete(set->scip, (*cons)->conshdlr, *cons, &(*cons)->consdata) );
5784 )
5789 SCIPdebugMessage("capture constraint <%s> with nuses=%d, cons pointer %p\n", cons->name, cons->nuses, (void*)cons);
5808 SCIPdebugMessage("release constraint <%s> with nuses=%d, cons pointer %p\n", (*cons)->name, (*cons)->nuses, (void*)(*cons));
5857 SCIPmessageFPrintInfo(messagehdlr, file, "constraint handler <%s> doesn't support printing constraint", conshdlr->name);
5864 * If the number of variables is greater than the available slots in the variable array, nothing happens except that
5865 * the success point is set to FALSE. With the method SCIPconsGetNVars() it is possible to get the number of variables
5870 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
5877 int varssize, /**< available slots in vars array which is needed to check if the array is large enough */
5904 * @note The success pointer indicates if the contraint handler was able to return the number of variables
5906 * @note It might be that a constraint handler does not support this functionality, in that case the success pointer is
5913 SCIP_Bool* success /**< pointer to store whether the constraint successfully returned the number of variables */
5938 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
5994 /** gets and captures transformed constraint of a given original constraint; if the constraint is not yet transformed,
6023 SCIP_CALL( origcons->conshdlr->constrans(set->scip, origcons->conshdlr, origcons, transcons) );
6028 SCIP_CALL( SCIPconsCreate(transcons, blkmem, set, origcons->name, origcons->conshdlr, origcons->consdata, origcons->initial,
6030 origcons->local, origcons->modifiable, origcons->dynamic, origcons->removable, origcons->stickingatnode,
6303 /** gets associated transformed constraint of an original constraint, or NULL if no associated transformed constraint
6308 )
6320 int depth, /**< depth in the tree where the constraint activation takes place, or -1 for global problem */
6340 SCIPdebugMessage("delayed activation of constraint <%s> in constraint handler <%s> (depth %d)\n",
6392 /** enables constraint's separation, enforcing, and propagation capabilities or marks them to be enabled in next update */
6405 if( !cons->active || cons->updatedeactivate || cons->updateenable || (cons->enabled && !cons->updatedisable) )
6425 /** disables constraint's separation, enforcing, and propagation capabilities or marks them to be disabled in next update */
6489 /** disables constraint's separation capabilities or marks them to be disabled in next update */
6517 /** enables constraint's propagation capabilities or marks them to be enabled in next update */
6547 /** disables constraint's propagation capabilities or marks them to be disabled in next update */
6643 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete
6701 * if it's age exceeds the constraint age limit, makes constraint obsolete or marks constraint to be made obsolete
6722 * if it was obsolete, makes constraint useful again or marks constraint to be made useful again in next update
6735 SCIPdebugMessage("resetting age %g of constraint <%s> of handler <%s>\n", cons->age, cons->name, cons->conshdlr->name);
6759 /** adds an active constraint to the propagation queue(if not already marked for propagation) of corresponding
6766 )
6785 /** returns first constraint from propagation queue(if not empty) of given constraint handler */
6788 )
6796 /** removes constraint from propagation queue(if not empty) of given constraint handler and unmarks constraint to be
6821 /** resolves the given conflicting bound, that was deduced by the given constraint, by putting all "reason" bounds
6822 * leading to the deduction into the conflict queue with calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(),
6823 * SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), or SCIPaddConflictBinvar();
6833 SCIP_BDCHGIDX* bdchgidx, /**< bound change index, representing the point of time where change took place */
6859 SCIP_CALL( conshdlr->consresprop(set->scip, conshdlr, cons, infervar, inferinfo, inferboundtype, bdchgidx,
6871 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n",
6878 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> is not implemented\n",
6886 /** adds given values to lock status of the constraint and updates the rounding locks of the involved variables */
6921 /* lock the variables, if the constraint switched from unlocked to locked or from locked to unlocked */
6924 SCIP_CALL( cons->conshdlr->conslock(set->scip, cons->conshdlr, cons, updlockpos, updlockneg) );
6954 SCIP_CALL( conshdlr->conscheck(set->scip, conshdlr, &cons, 1, sol, checkintegrality, checklprows, printreason, result) );
6959 SCIPerrorMessage("feasibility check of constraint handler <%s> on constraint <%s> returned invalid result <%d>\n",
6971 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
6972 SCIP_Bool objinfeasible, /**< is the solution infeasible anyway due to violating lower objective bound? */
6989 SCIP_CALL( conshdlr->consenfops(set->scip, conshdlr, &cons, 1, 1, solinfeasible, objinfeasible, result) );
7001 SCIPerrorMessage("enforcing method of constraint handler <%s> for pseudo solutions returned invalid result <%d>\n",
7015 SCIP_Bool solinfeasible, /**< was the solution already declared infeasible by a constraint handler? */
7043 SCIPerrorMessage("enforcing method of constraint handler <%s> for LP returned invalid result <%d>\n",
7110 SCIPerrorMessage("separation method of constraint handler <%s> returned invalid result <%d>\n", conshdlr->name,
7153 SCIPerrorMessage("separation method of constraint handler for arbitrary primal solution <%s> returned invalid result <%d>\n",
7193 SCIPerrorMessage("propagation method of constraint handler <%s> returned invalid result <%d>\n",
7207 int inferinfo, /**< the user information passed to the corresponding SCIPinferVarLbCons() or SCIPinferVarUbCons() call */
7209 SCIP_BDCHGIDX* bdchgidx, /**< the index of the bound change, representing the point of time where the change took place */
7229 SCIP_CALL( conshdlr->consresprop(set->scip, conshdlr, cons, infervar, inferinfo, boundtype, bdchgidx, relaxedbd, result) );
7235 SCIPerrorMessage("propagation conflict resolving method of constraint handler <%s> returned invalid result <%d>\n",
7249 int nnewfixedvars, /**< number of variables fixed since the last call to the presolving method */
7250 int nnewaggrvars, /**< number of variables aggregated since the last call to the presolving method */
7251 int nnewchgvartypes, /**< number of variable type changes since the last call to the presolving method */
7252 int nnewchgbds, /**< number of variable bounds tightened since the last call to the presolving method */
7253 int nnewholes, /**< number of domain holes added since the last call to the presolving method */
7254 int nnewdelconss, /**< number of deleted constraints since the last call to the presolving method */
7255 int nnewaddconss, /**< number of added constraints since the last call to the presolving method */
7256 int nnewupgdconss, /**< number of upgraded constraints since the last call to the presolving method */
7257 int nnewchgcoefs, /**< number of changed coefficients since the last call to the presolving method */
7258 int nnewchgsides, /**< number of changed left or right hand sides since the last call to the presolving method */
7260 int* naggrvars, /**< pointer to count total number of variables aggregated of all presolvers */
7261 int* nchgvartypes, /**< pointer to count total number of variable type changes of all presolvers */
7262 int* nchgbds, /**< pointer to count total number of variable bounds tightened of all presolvers */
7266 int* nupgdconss, /**< pointer to count total number of upgraded constraints of all presolvers */
7267 int* nchgcoefs, /**< pointer to count total number of changed coefficients of all presolvers */
7268 int* nchgsides, /**< pointer to count total number of changed left/right hand sides of all presolvers */
7295 SCIP_CALL( conshdlr->conspresol(set->scip, conshdlr, &cons, 1, nrounds, nnewfixedvars, nnewaggrvars, nnewchgvartypes, nnewchgbds,
7296 nnewholes, nnewdelconss, nnewaddconss, nnewupgdconss, nnewchgcoefs, nnewchgsides, nfixedvars, naggrvars, nchgvartypes,
7307 SCIPerrorMessage("presolving method of constraint handler <%s> returned invalid result <%d>\n",
7433 BMScopyMemoryArray(conshdlr->storedpropconss, conshdlr->propconss, conshdlr->nmarkedpropconss);
7494 assert(conshdlr->nmarkedpropconss + ndisabled >= conshdlr->storednmarkedpropconss || (conshdlrAreUpdatesDelayed(conshdlr) && conshdlr->nupdateconss + ndisabled >= conshdlr->storednmarkedpropconss));
7557 )
7567 )
7577 )
7587 )
7597 )
7604 /** for an active constraint, returns the depth in the tree at which the constraint was activated */
7607 )
7618 )
7625 /** returns the depth in the tree at which the constraint is valid; returns INT_MAX, if the constraint is local
7630 )
7644 )
7654 )
7665 )
7676 )
7686 )
7696 )
7706 )
7716 )
7726 )
7736 )
7746 )
7756 )
7766 )
7776 )
7786 )
7796 )
7803 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */
7806 )
7813 /** returns TRUE iff constraint's relaxation should be removed from the LP due to aging or cleanup */
7816 )
7826 )
7836 )
7846 )
7856 )
7866 )
7873 /** returns TRUE iff roundings for variables in constraint or in constraint's negation are locked */
7876 )
7886 )
7896 )
7906 )
7925 /** gets number of locks against upgrading the constraint, 0 means this constraint can be upgraded */
7928 )
SCIP_Longint SCIPconshdlrGetNChildren(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4532 SCIP_CONS * SCIPconshdlrFrontProp(SCIP_CONSHDLR *conshdlr) Definition: cons.c:6788 SCIP_RETCODE SCIPconsSetChecked(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool check) Definition: cons.c:6153 SCIP_Bool SCIPconshdlrIsPresolvingDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4772 int SCIPconshdlrGetNAddHoles(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4602 SCIP_RETCODE SCIPconsUnmarkPropagate(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6610 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:3233 Definition: type_result.h:33 Definition: type_result.h:37 #define BMSfreeBlockMemoryArrayNull(mem, ptr, num) Definition: memory.h:424 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:3053 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:7388 SCIP_RETCODE SCIPconsIncAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:6706 SCIP_RETCODE SCIPconssetchgFree(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:4910 SCIP_RETCODE SCIPconsActivate(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode) Definition: cons.c:6318 SCIP_Bool SCIPconshdlrWasPropagationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4802 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:2394 SCIP_RETCODE SCIPconsDelete(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:5943 Definition: struct_scip.h:52 static SCIP_RETCODE conssetchgDelAddedCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos) Definition: cons.c:5059 static SCIP_RETCODE conshdlrDisableConsSeparation(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1300 SCIP_Longint SCIPconshdlrGetNSepaCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4402 void SCIPconshdlrSetPrint(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRINT((*consprint))) Definition: cons.c:4160 void SCIPconsSetDynamic(SCIP_CONS *cons, SCIP_Bool dynamic) Definition: cons.c:6260 void SCIPconsSetStickingAtNode(SCIP_CONS *cons, SCIP_Bool stickingatnode) Definition: cons.c:6282 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:7122 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:4116 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:4024 SCIP_Bool SCIPconshdlrIsPropagationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4762 SCIP_Bool SCIPconshdlrWasPresolvingDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4812 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:5602 SCIP_CONS ** SCIPconshdlrGetConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4209 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:4002 int SCIPconshdlrGetSepaPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4672 SCIP_Longint SCIPconshdlrGetNConssFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4512 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:4752 SCIP_PROPTIMING SCIPconshdlrGetPropTimingmask(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4842 int SCIPconshdlrGetNChgCoefs(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4642 int SCIPconshdlrGetNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4273 SCIP_Real SCIPconshdlrGetSepaTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4332 SCIP_RETCODE SCIPconsGetVars(SCIP_CONS *cons, SCIP_SET *set, SCIP_VAR **vars, int varssize, SCIP_Bool *success) Definition: cons.c:5875 datastructures for constraints and constraint handlers static void conshdlrDelCheckcons(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:1116 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 delaypresol, SCIP_Bool needscons, SCIP_PROPTIMING timingmask, 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_CONSHDLRDATA *conshdlrdata) Definition: cons.c:1980 SCIP_CONS ** SCIPconshdlrGetEnfoConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4219 SCIP_RETCODE SCIPconsSetSeparated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool separate) Definition: cons.c:6083 Definition: struct_sepastore.h:37 SCIP_Bool SCIPconshdlrDoesPresolve(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4742 static SCIP_RETCODE conssetchgRelease(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:4880 SCIP_RETCODE SCIPconshdlrInitsol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2587 SCIP_Bool SCIPconsIsMarkedPropagate(SCIP_CONS *cons) Definition: cons.c:7746 Definition: struct_message.h:35 void SCIPconshdlrSetFree(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSFREE((*consfree))) Definition: cons.c:3969 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:4432 int SCIPconshdlrGetNAddConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4622 SCIP_RETCODE SCIPconsEnableSeparation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6462 Definition: struct_prob.h:38 void SCIPconshdlrSetCopy(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), SCIP_DECL_CONSCOPY((*conscopy))) Definition: cons.c:3954 SCIP_RETCODE SCIPconsSetPropagated(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool propagate) Definition: cons.c:6201 SCIP_Real SCIPvarGetLbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after) Definition: var.c:15141 SCIP_RETCODE SCIPconshdlrInit(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2284 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:2767 void SCIPconsSetNamePointer(SCIP_CONS *cons, const char *name) Definition: cons.c:6294 int SCIPconshdlrGetStartNActiveConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4552 void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable) Definition: clock.c:250 SCIP_Bool SCIPconshdlrNeedsCons(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4732 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:4392 SCIP_Bool SCIPconshdlrIsInitialized(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4822 SCIP_Longint SCIPconshdlrGetNEnfoPSCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4422 SCIP_Real SCIPconshdlrGetStrongBranchPropTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4372 SCIP_RETCODE SCIPconsResetAge(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6726 Definition: type_retcode.h:44 SCIP_Real SCIPconshdlrGetEnfoLPTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4342 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:4522 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:3893 Definition: type_result.h:41 SCIP_RETCODE SCIPconsDisableSeparation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6492 Definition: struct_misc.h:101 static SCIP_RETCODE conssetchgDelDisabledCons(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int arraypos) Definition: cons.c:5105 SCIP_RETCODE SCIPconshdlrCopyInclude(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_Bool *valid) Definition: cons.c:1959 int SCIPconshdlrGetNDelConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4612 SCIP_CONSHDLR * SCIPsetFindConshdlr(SCIP_SET *set, const char *name) Definition: set.c:2965 void SCIPconshdlrSetExitsol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITSOL((*consexitsol))) Definition: cons.c:4013 Definition: type_clock.h:34 SCIP_Longint SCIPconshdlrGetNCutoffs(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4462 SCIP_RETCODE SCIPconsEnablePropagation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6520 int SCIPconshdlrGetNChgSides(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4652 #define BMSduplicateBlockMemoryArray(mem, ptr, source, num) Definition: memory.h:414 SCIP_RETCODE SCIPconssetchgApply(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, int depth, SCIP_Bool focusnode) Definition: cons.c:5134 void SCIPconshdlrEnableOrDisableClocks(SCIP_CONSHDLR *conshdlr, SCIP_Bool enable) Definition: cons.c:4293 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:7205 SCIP_RETCODE SCIPconsTransform(SCIP_CONS *origcons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS **transcons) Definition: cons.c:5999 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:7165 SCIP_Real SCIPvarGetUbAtIndex(SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after) Definition: var.c:15233 Definition: type_lp.h:47 int SCIPconshdlrGetEnfoPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4682 SCIP_RETCODE SCIPconsDeactive(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:7343 SCIP_RETCODE SCIPconshdlrDelVars(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:3812 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:7680 SCIP_Longint SCIPconshdlrGetNCheckCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4442 SCIP_Real SCIPconshdlrGetCheckTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4382 int SCIPsepastoreGetNCuts(SCIP_SEPASTORE *sepastore) Definition: sepastore.c:1344 SCIP_RETCODE SCIPconshdlrInitpre(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2442 int SCIPconshdlrGetCheckPriority(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4692 void SCIPmessagePrintWarning(SCIP_MESSAGEHDLR *messagehdlr, const char *formatstr,...) Definition: message.c:411 void SCIPconshdlrSetEnable(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSENABLE((*consenable))) Definition: cons.c:4127 SCIP_RETCODE SCIPconsChgName(SCIP_CONS *cons, BMS_BLKMEM *blkmem, const char *name) Definition: cons.c:5709 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:5546 SCIP_Bool SCIPconshdlrIsClonable(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4832 void SCIPconshdlrSetExit(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXIT((*consexit))) Definition: cons.c:3991 Definition: type_retcode.h:33 SCIP_Bool SCIPconshdlrWasLPSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4782 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:7654 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:2664 SCIP_RETCODE SCIPconsPresol(SCIP_CONS *cons, SCIP_SET *set, int nrounds, 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:7247 SCIP_Bool SCIPconsIsPropagationEnabled(SCIP_CONS *cons) Definition: cons.c:7665 SCIP_Real SCIPconshdlrGetSetupTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4312 SCIP_RETCODE SCIPconsAddLocks(SCIP_CONS *cons, SCIP_SET *set, int nlockspos, int nlocksneg) Definition: cons.c:6889 SCIP_RETCODE SCIPconsDisable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6428 Definition: type_result.h:42 static SCIP_RETCODE conssetchgCreate(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem) Definition: cons.c:4859 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:2039 void SCIPconsAddUpgradeLocks(SCIP_CONS *cons, int nlocks) Definition: cons.c:7916 void SCIPconshdlrSetActive(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSACTIVE((*consactive))) Definition: cons.c:4105 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:3858 SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype) Definition: clock.c:160 void SCIPconshdlrIncNCutsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4502 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:5911 static SCIP_RETCODE conshdlrMarkConsUseful(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:507 SCIP_RETCODE SCIPconsEnfops(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_Bool objinfeasible, SCIP_RESULT *result) Definition: cons.c:6970 SCIP_Longint SCIPconshdlrGetNEnfoLPCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4412 void SCIPconsSetModifiable(SCIP_CONS *cons, SCIP_Bool modifiable) Definition: cons.c:6249 SCIP_Longint SCIPconshdlrGetNRespropCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4452 SCIP_RETCODE SCIPconsRelease(SCIP_CONS **cons, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:5796 void SCIPconshdlrSetDelete(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELETE((*consdelete))) Definition: cons.c:4061 void SCIPconshdlrSetInit(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSINIT((*consinit))) Definition: cons.c:3980 void SCIPconshdlrIncNAppliedCuts(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4492 Definition: type_set.h:38 void SCIPconsSetRemovable(SCIP_CONS *cons, SCIP_Bool removable) Definition: cons.c:6271 SCIP_RETCODE SCIPconshdlrsResetPropagationStatus(SCIP_SET *set, BMS_BLKMEM *blkmem, SCIP_CONSHDLR **conshdlrs, int nconshdlrs) Definition: cons.c:7453 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:3494 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:4542 int SCIPconshdlrGetNUpgdConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4632 SCIP_RETCODE SCIPprobDelCons(SCIP_PROB *prob, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: prob.c:1283 void SCIPconshdlrSetGetNVars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETNVARS((*consgetnvars))) Definition: cons.c:4193 void SCIPconshdlrSetParse(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPARSE((*consparse))) Definition: cons.c:4171 int SCIPconshdlrGetNPresolCalls(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4662 SCIP_RETCODE SCIPconshdlrExitpre(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:2541 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:4362 SCIP_RETCODE SCIPqueueCreate(SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac) Definition: misc.c:549 static SCIP_RETCODE conshdlrAddCheckcons(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:1072 SCIP_RETCODE SCIPconshdlrPresolve(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool execdelayed, 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:3661 SCIP_RETCODE SCIPconssetchgUndo(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:5221 SCIP_Longint SCIPconshdlrGetNCutsFound(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4472 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:4984 SCIP_Bool SCIPconshdlrWasSolSeparationDelayed(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4792 int SCIPconshdlrGetNEnfoConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4249 void SCIPconshdlrSetDisable(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDISABLE((*consdisable))) Definition: cons.c:4138 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:3429 SCIP_RETCODE SCIPconssetchgMakeGlobal(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob) Definition: cons.c:5307 int SCIPconshdlrGetEagerFreq(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4722 static SCIP_RETCODE conshdlrEnsureConssMem(SCIP_CONSHDLR *conshdlr, SCIP_SET *set, int num) Definition: cons.c:66 Definition: type_result.h:43 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:4259 SCIP_RETCODE SCIPconsAddAge(SCIP_CONS *cons, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real deltaage) Definition: cons.c:6648 SCIP_RETCODE SCIPconsSetInitial(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool initial) Definition: cons.c:6049 void SCIPconshdlrSetResprop(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSRESPROP((*consresprop))) Definition: cons.c:4094 internal methods for problem statistics Definition: struct_cons.h:105 static void conshdlrUpdateAgeresetavg(SCIP_CONSHDLR *conshdlr, SCIP_Real age) Definition: cons.c:334 void SCIPconshdlrSetPresol(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPRESOL((*conspresol)), int maxprerounds, SCIP_Bool delaypresol) Definition: cons.c:4046 SCIP_RETCODE SCIPconshdlrExitsol(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool restart) Definition: cons.c:2627 void SCIPconshdlrSetProp(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSPROP((*consprop)), int propfreq, SCIP_Bool delayprop, SCIP_PROPTIMING timingmask) Definition: cons.c:3935 SCIP_Real SCIPconshdlrGetEnfoPSTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4352 void SCIPconshdlrSetDelvars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSDELVARS((*consdelvars))) Definition: cons.c:4149 SCIP_RETCODE SCIPconsPrint(SCIP_CONS *cons, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, FILE *file) Definition: cons.c:5836 SCIP_Real SCIPconshdlrGetPresolTime(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4322 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:4959 int SCIPconshdlrGetNChgVarTypes(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4582 void SCIPconshdlrSetGetVars(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSGETVARS((*consgetvars))) Definition: cons.c:4182 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:5729 void SCIPconshdlrSetTrans(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSTRANS((*constrans))) Definition: cons.c:4072 SCIP_RETCODE SCIPconsMarkPropagate(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6580 SCIP_RETCODE SCIPconssetchgAddDisabledCons(SCIP_CONSSETCHG **conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_CONS *cons) Definition: cons.c:5030 Definition: type_result.h:45 SCIP_RETCODE SCIPconsEnable(SCIP_CONS *cons, SCIP_SET *set, SCIP_STAT *stat) Definition: cons.c:6395 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:4562 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:2924 SCIP_Longint SCIPconshdlrGetNCutsApplied(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4482 SCIP_RETCODE SCIPconshdlrPopProp(SCIP_CONSHDLR *conshdlr, BMS_BLKMEM *blkmem, SCIP_SET *set) Definition: cons.c:6803 SCIP_RETCODE SCIPprobAddCons(SCIP_PROB *prob, SCIP_SET *set, SCIP_STAT *stat, SCIP_CONS *cons) Definition: prob.c:1216 void SCIPconshdlrSetExitpre(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSEXITPRE((*consexitpre))) Definition: cons.c:4035 SCIP_RETCODE SCIPconsEnfolp(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool solinfeasible, SCIP_RESULT *result) Definition: cons.c:7014 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:6360 Definition: struct_tree.h:160 SCIP_RETCODE SCIPconsDisablePropagation(SCIP_CONS *cons, SCIP_SET *set) Definition: cons.c:6550 common defines and data types used in all packages of SCIP SCIP_RETCODE SCIPconshdlrFree(SCIP_CONSHDLR **conshdlr, SCIP_SET *set) Definition: cons.c:2239 void SCIPconshdlrSetSepa(SCIP_CONSHDLR *conshdlr, SCIP_DECL_CONSSEPALP((*conssepalp)), SCIP_DECL_CONSSEPASOL((*conssepasol)), int sepafreq, int sepapriority, SCIP_Bool delaysepa) Definition: cons.c:3914 SCIP_RETCODE SCIPconshdlrsStorePropagationStatus(SCIP_SET *set, SCIP_CONSHDLR **conshdlrs, int nconshdlrs) Definition: cons.c:7412 SCIP_CONS ** SCIPconshdlrGetCheckConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4229 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:2017 Definition: struct_branch.h:36 SCIP_RETCODE SCIPconshdlrLockVars(SCIP_CONSHDLR *conshdlr, SCIP_SET *set) Definition: cons.c:3843 static SCIP_RETCODE conshdlrMarkConsObsolete(SCIP_CONSHDLR *conshdlr, SCIP_CONS *cons) Definition: cons.c:379 int SCIPconshdlrGetNEnabledConss(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4283 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:4083 void SCIPconshdlrSetData(SCIP_CONSHDLR *conshdlr, SCIP_CONSHDLRDATA *conshdlrdata) Definition: cons.c:3903 #define BMSreallocBlockMemoryArray(mem, ptr, oldnum, newnum) Definition: memory.h:390 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:5402 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:6933 SCIP_RETCODE SCIPconsSepalp(SCIP_CONS *cons, SCIP_SET *set, SCIP_RESULT *result) Definition: cons.c:7081 Definition: type_result.h:39 static SCIP_RETCODE conssetchgEnsureAddedconssSize(SCIP_CONSSETCHG *conssetchg, BMS_BLKMEM *blkmem, SCIP_SET *set, int num) Definition: cons.c:4935 int SCIPconshdlrGetNAggrVars(SCIP_CONSHDLR *conshdlr) Definition: cons.c:4572 SCIP_RETCODE SCIPconsSetEnforced(SCIP_CONS *cons, SCIP_SET *set, SCIP_Bool enforce) Definition: cons.c:6118 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:6829 |