All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
scip.h
Go to the documentation of this file. 27 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
207 * @note The SCIP default message handler is installed. Use the method SCIPsetMessagehdlr() to install your own
208 * message handler or SCIPsetMessagehdlrLogfile() and SCIPsetMessagehdlrQuiet() to write into a log
211 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
225 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
264 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
267 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
291 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
322 /** returns whether the presolving process would be finished given no more presolving reductions are found in this
325 * Checks whether the number of presolving rounds is not exceeded and the presolving reductions found in the current
328 * @note if subsequent presolvers find more reductions, presolving might continue even if the method returns FALSE
329 * @note does not check whether infeasibility or unboundedness was already detected in presolving (which would result
371 /** installs the given message handler, such that all messages are passed to this handler. A messages handler can be
374 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
381 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release).
386 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */
420 /** prints a dialog message that requests user interaction or is a direct response to a user interactive command */
472 /** copies plugins from sourcescip to targetscip; in case that a constraint handler which does not need constraints
473 * cannot be copied, valid will return FALSE. All plugins can declare that, if their copy process failed, the
477 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
481 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
499 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
533 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
553 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
567 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
575 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
577 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
595 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
609 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
614 /** returns copy of the source variable; if there already is a copy of the source variable in the variable hash map,
615 * it is just returned as target variable; elsewise a new variable will be created and added to the target SCIP; this
618 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
620 * @note if a new variable was created, this variable will be added to the target-SCIP, but it is not captured
622 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
656 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
658 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
664 /** copies all active variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
665 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
670 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
673 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
700 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
702 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
707 /** copies all original variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
708 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
713 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
716 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
743 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
745 SCIP_HASHMAP* consmap /**< a hashmap to store the mapping of source constraints to the corresponding
749 /** returns copy of the source constraint; if there already is a copy of the source constraint in the constraint hash
750 * map, it is just returned as target constraint; elsewise a new constraint will be created; this created constraint is
751 * added to the constraint hash map and returned as target constraint; the variable map is used to map the variables of
754 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
755 * be declared feasible even if it violates this particular constraint. This constellation should only be
756 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
759 * @note The constraint is not added to the target SCIP. You can check whether a constraint is added by calling
760 * SCIPconsIsAdded(). (If you mix SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add
763 * @note The constraint is always captured, either during the creation of the copy or after finding the copy of the
766 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
769 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
806 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
808 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
810 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
819 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
820 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
827 * variables between the source and the target SCIP a hash map can be given; if the variable hash
828 * map is NULL or necessary variable mapping is missing, the required variables are created in the
829 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
833 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
834 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
837 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
840 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
867 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
869 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
877 /** copies all original constraints from the source-SCIP and adds these to the target-SCIP; for mapping the
878 * variables between the source and the target SCIP a hash map can be given; if the variable hash
879 * map is NULL or necessary variable mapping is missing, the required variables are created in the
880 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
884 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
885 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
888 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
891 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
918 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
920 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
931 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
952 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
960 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
963 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
998 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1006 * This function should be called for a targetscip in transformed stage. It can save time in presolving of the
1009 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1012 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1046 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1056 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1059 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1124 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1126 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1130 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1160 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1164 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1172 /** copies source SCIP original problem to target SCIP; the copying process is done in the following order:
1179 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1181 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1185 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1215 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1217 const char* suffix, /**< suffix which will be added to the names of the target SCIP, might be empty */
1218 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1235 /** creates a SCIP_Bool parameter, sets it to its default value, and adds it to the parameter set
1237 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1254 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1271 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set
1273 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1290 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set
1292 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1322 const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */
1327 /** creates a string(char*) parameter, sets it to its default value, and adds it to the parameter set
1329 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1337 char** valueptr, /**< pointer to store the current parameter value, or NULL; if not NULL then *valueptr should be NULL */
1366 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1378 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1390 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1402 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1414 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1426 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1438 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1441 * @note: Be careful with this method! Some general settings, e.g., the time or node limit, should not be fixed because
1452 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1463 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1475 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1487 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1499 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1511 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1523 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1547 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1559 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1571 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1583 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1595 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1607 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1619 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1630 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1638 SCIP_Bool onlychanged /**< should only the parameters been written, that are changed from default? */
1643 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1654 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1672 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1682 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for
1685 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1701 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1718 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1735 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1775 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1782 * @note method has all reader callbacks as arguments and is thus changed every time a new callback is added
1792 SCIP_DECL_READERCOPY ((*readercopy)), /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1799 /** creates a reader and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
1803 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1810 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeReader() instead
1824 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1835 SCIP_DECL_READERCOPY ((*readercopy)) /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1840 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1856 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1872 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1906 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1909 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1916 * @note method has all pricer callbacks as arguments and is thus changed every time a new callback is added
1931 SCIP_DECL_PRICERCOPY ((*pricercopy)), /**< copy method of variable pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
1935 SCIP_DECL_PRICERINITSOL((*pricerinitsol)),/**< solving process initialization method of variable pricer */
1936 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)),/**< solving process deinitialization method of variable pricer */
1937 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1938 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1942 /** creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL;
1943 * if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(),
1947 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1950 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1957 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead
1971 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1972 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1978 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1989 SCIP_DECL_PRICERCOPY ((*pricercopy)) /**< copy method of pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
1994 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2010 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2026 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2042 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2053 SCIP_DECL_PRICERINITSOL ((*pricerinitsol))/**< solving process initialization method of pricer */
2058 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2069 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)) /**< solving process deinitialization method of pricer */
2079 /** returns the array of currently available variable pricers; active pricers are in the first slots of the array */
2091 /** returns the number of currently active variable pricers, that are used in the LP solving loop */
2106 * This method should be called during the problem creation stage for all pricers that are necessary to solve
2110 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2124 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2139 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2146 * @note method has all constraint handler callbacks as arguments and is thus changed every time a new
2158 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2159 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2160 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2161 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2163 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2164 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */
2165 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2166 SCIP_Bool delaypresol, /**< should presolving method be delayed, if other presolvers found reductions? */
2167 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2168 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
2169 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2173 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */
2174 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */
2175 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */
2176 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */
2178 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */
2179 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */
2181 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2202 /** creates a constraint handler and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
2203 * Optional callbacks can be set via specific setter functions, see SCIPsetConshdlrInit(), SCIPsetConshdlrExit(),
2204 * SCIPsetConshdlrCopy(), SCIPsetConshdlrFree(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrExitsol(),
2205 * SCIPsetConshdlrInitpre(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrPresol(), SCIPsetConshdlrDelete(),
2206 * SCIPsetConshdlrDelvars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(),
2207 * SCIPsetConshdlrEnable(), SCIPsetConshdlrDisable(), SCIPsetConshdlrResprop(), SCIPsetConshdlrTrans(),
2210 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2217 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConshdlr() instead
2226 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2227 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2229 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2239 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2251 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2252 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2254 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
2259 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2271 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2272 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2273 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
2278 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2289 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2295 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2327 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2343 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2354 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
2359 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2370 SCIP_DECL_CONSEXITSOL ((*consexitsol))/**< solving process deinitialization method of constraint handler */
2375 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2386 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
2391 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2402 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
2407 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2419 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2420 SCIP_Bool delaypresol /**< should presolving method be delayed, if other presolvers found reductions? */
2425 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2439 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem
2441 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2452 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
2455 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints
2457 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2468 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
2473 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2489 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2505 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2521 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2537 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2553 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2569 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2585 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2601 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2617 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2652 * @note method has all conflict handler callbacks as arguments and is thus changed every time a new
2663 SCIP_DECL_CONFLICTCOPY((*conflictcopy)), /**< copy method of conflict handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2667 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)),/**< solving process initialization method of conflict handler */
2668 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)),/**< solving process deinitialization method of conflict handler */
2669 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2673 /** creates a conflict handler and includes it in SCIP with its most fundamental callbacks. All non-fundamental
2675 * Optional callbacks can be set via specific setter functions SCIPsetConflicthdlrCopy(), SCIPsetConflicthdlrFree(),
2679 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConflicthdlr() instead
2688 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2729 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))/**< solving process initialization method of conflict handler */
2737 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))/**< solving process deinitialization method of conflict handler */
2780 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2782 SCIP_DECL_PRESOLCOPY ((*presolcopy)), /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2783 SCIP_DECL_PRESOLFREE ((*presolfree)), /**< destructor of presolver to free user data (called when SCIP is exiting) */
2784 SCIP_DECL_PRESOLINIT ((*presolinit)), /**< initialization method of presolver (called after problem was transformed) */
2785 SCIP_DECL_PRESOLEXIT ((*presolexit)), /**< deinitialization method of presolver (called before transformed problem is freed) */
2786 SCIP_DECL_PRESOLINITPRE((*presolinitpre)),/**< presolving initialization method of presolver (called when presolving is about to begin) */
2787 SCIP_DECL_PRESOLEXITPRE((*presolexitpre)),/**< presolving deinitialization method of presolver (called after presolving has been finished) */
2792 /** Creates a presolver and includes it in SCIP with its fundamental callback. All non-fundamental (or optional)
2793 * callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter
2794 * functions. These are SCIPsetPresolCopy(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolExit(),
2797 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePresol() instead
2806 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2817 SCIP_DECL_PRESOLCOPY ((*presolcopy)) /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2849 SCIP_DECL_PRESOLINITPRE ((*presolinitpre))/**< solving process initialization method of presolver */
2856 SCIP_DECL_PRESOLEXITPRE ((*presolexitpre))/**< solving process deinitialization method of presolver */
2888 * @note method has all relaxation handler callbacks as arguments and is thus changed every time a new
2898 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2900 SCIP_DECL_RELAXCOPY ((*relaxcopy)), /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2904 SCIP_DECL_RELAXINITSOL((*relaxinitsol)), /**< solving process initialization method of relaxation handler */
2905 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), /**< solving process deinitialization method of relaxation handler */
2912 * Optional callbacks can be set via specific setter functions, see SCIPsetRelaxInit(), SCIPsetRelaxExit(),
2915 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead
2923 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2934 SCIP_DECL_RELAXCOPY ((*relaxcopy)) /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2966 SCIP_DECL_RELAXINITSOL((*relaxinitsol)) /**< solving process initialization method of relaxation handler */
2974 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) /**< solving process deinitialization method of relaxation handler */
3018 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3022 SCIP_DECL_SEPACOPY ((*sepacopy)), /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3026 SCIP_DECL_SEPAINITSOL ((*sepainitsol)), /**< solving process initialization method of separator */
3027 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)), /**< solving process deinitialization method of separator */
3029 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3033 /** creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3035 * Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(),
3038 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead
3048 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3053 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3062 SCIP_DECL_SEPACOPY ((*sepacopy)) /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3094 SCIP_DECL_SEPAINITSOL ((*sepainitsol)) /**< solving process initialization method of separator */
3102 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)) /**< solving process deinitialization method of separator */
3144 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3147 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3148 int presolpriority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3149 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3150 SCIP_Bool presoldelay, /**< should presolving be delayed, if other presolvers found reductions? */
3151 SCIP_DECL_PROPCOPY ((*propcopy)), /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3156 SCIP_DECL_PROPEXITPRE ((*propexitpre)), /**< presolving deinitialization method of propagator */
3157 SCIP_DECL_PROPINITSOL ((*propinitsol)), /**< solving process initialization method of propagator */
3158 SCIP_DECL_PROPEXITSOL ((*propexitsol)), /**< solving process deinitialization method of propagator */
3165 /** creates a propagator and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3166 * Optional callbacks can be set via specific setter functions, see SCIPsetPropInit(), SCIPsetPropExit(),
3170 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeProp() instead
3178 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3181 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3191 SCIP_DECL_PROPCOPY ((*propcopy)) /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3223 SCIP_DECL_PROPINITSOL((*propinitsol)) /**< solving process initialization method of propagator */
3231 SCIP_DECL_PROPEXITSOL ((*propexitsol)) /**< solving process deinitialization method of propagator */
3239 SCIP_DECL_PROPINITPRE((*propinitpre)) /**< preprocessing initialization method of propagator */
3247 SCIP_DECL_PROPEXITPRE((*propexitpre)) /**< preprocessing deinitialization method of propagator */
3256 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3257 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3258 SCIP_Bool presoldelay /**< should presolving be delayed, if other presolvers found reductions? */
3308 * callback is added in future releases; consider using SCIPincludeHeurBasic() and setter functions
3321 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3324 SCIP_DECL_HEURCOPY ((*heurcopy)), /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3328 SCIP_DECL_HEURINITSOL ((*heurinitsol)), /**< solving process initialization method of primal heuristic */
3329 SCIP_DECL_HEUREXITSOL ((*heurexitsol)), /**< solving process deinitialization method of primal heuristic */
3337 * Optional callbacks can be set via specific setter functions, see SCIPsetHeurCopy(), SCIPsetHeurFree(),
3340 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeHeur() instead
3353 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3365 SCIP_DECL_HEURCOPY ((*heurcopy)) /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3397 SCIP_DECL_HEURINITSOL ((*heurinitsol)) /**< solving process initialization method of primal heuristic */
3405 SCIP_DECL_HEUREXITSOL ((*heurexitsol)) /**< solving process deinitialization method of primal heuristic */
3437 * @note method has all event handler callbacks as arguments and is thus changed every time a new
3438 * callback is added in future releases; consider using SCIPincludeEventhdlrBasic() and setter functions
3446 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3450 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
3451 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
3457 /** creates an event handler and includes it in SCIP with all its non-fundamental callbacks set
3459 * SCIPsetEventhdlrCopy(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrExit(),
3462 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeEventhdlr() instead
3511 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
3519 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
3551 * @note method has all node selector callbacks as arguments and is thus changed every time a new
3552 * callback is added in future releases; consider using SCIPincludeNodeselBasic() and setter functions
3562 SCIP_DECL_NODESELCOPY ((*nodeselcopy)), /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3566 SCIP_DECL_NODESELINITSOL((*nodeselinitsol)),/**< solving process initialization method of node selector */
3567 SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)),/**< solving process deinitialization method of node selector */
3573 /** Creates a node selector and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3575 * Optional callbacks can be set via specific setter functions, see SCIPsetNodeselCopy(), SCIPsetNodeselFree(),
3576 * SCIPsetNodeselInit(), SCIPsetNodeselExit(), SCIPsetNodeselInitsol(), and SCIPsetNodeselExitsol()
3578 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeNodesel() instead
3598 SCIP_DECL_NODESELCOPY ((*nodeselcopy)) /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3630 SCIP_DECL_NODESELINITSOL ((*nodeselinitsol))/**< solving process initialization method of node selector */
3638 SCIP_DECL_NODESELEXITSOL ((*nodeselexitsol))/**< solving process deinitialization method of node selector */
3684 * @note method has all branching rule callbacks as arguments and is thus changed every time a new
3685 * callback is added in future releases; consider using SCIPincludeBranchruleBasic() and setter functions
3694 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3695 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3698 SCIP_DECL_BRANCHCOPY ((*branchcopy)), /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3702 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */
3703 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */
3704 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */
3705 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external candidates */
3706 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */
3710 /** creates a branching rule and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3711 * Optional callbacks can be set via specific setter functions, see SCIPsetBranchruleInit(), SCIPsetBranchruleExit(),
3712 * SCIPsetBranchruleCopy(), SCIPsetBranchruleFree(), SCIPsetBranchruleInitsol(), SCIPsetBranchruleExitsol(),
3715 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeBranchrule() instead
3724 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3725 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3736 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3768 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */
3776 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */
3784 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */
3792 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */
3800 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */
3830 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
3838 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
3854 SCIP_DECL_DISPCOPY ((*dispcopy)), /**< copy method of display column or NULL if you don't want to copy your plugin into sub-SCIPs */
3858 SCIP_DECL_DISPINITSOL ((*dispinitsol)), /**< solving process initialization method of display column */
3859 SCIP_DECL_DISPEXITSOL ((*dispexitsol)), /**< solving process deinitialization method of display column */
3865 SCIP_Bool stripline /**< should the column be separated with a line from its right neighbor? */
3887 /** automatically selects display columns for being shown w.r.t. the display width parameter */
3980 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3987 SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */
4009 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4020 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4029 /** makes given dialog the root dialog of SCIP's interactive user shell; captures dialog and releases former root dialog
4031 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4051 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4063 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4072 /** adds a single line of input to the command history which can be accessed with the cursor keys
4074 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4085 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4092 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the
4095 * - \ref SCIP_STAGE_TRANSFORMED if the interactive shell was closed after the problem was transformed
4121 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4122 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4123 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4125 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4146 SCIP_DECL_PROBTRANS ((*probtrans)), /**< creates user data of transformed problem by transforming original user data */
4148 SCIP_DECL_PROBINITSOL ((*probinitsol)), /**< solving process initialization method of transformed data */
4149 SCIP_DECL_PROBEXITSOL ((*probexitsol)), /**< solving process deinitialization method of transformed data */
4150 SCIP_DECL_PROBCOPY ((*probcopy)), /**< copies user data if you want to copy it to a subscip, or NULL */
4154 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4155 * all callback methods will be set to NULL and can be set afterwards, if needed, via SCIPsetProbDelorig(),
4158 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4159 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4161 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4185 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4196 /** sets callback to create user data of transformed problem by transforming original user data
4198 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4207 SCIP_DECL_PROBTRANS ((*probtrans)) /**< creates user data of transformed problem by transforming original user data */
4212 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4226 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4235 SCIP_DECL_PROBINITSOL ((*probinitsol)) /**< solving process initialization method of transformed data */
4240 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4249 SCIP_DECL_PROBEXITSOL ((*probexitsol)) /**< solving process deinitialization method of transformed data */
4254 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4263 SCIP_DECL_PROBCOPY ((*probcopy)) /**< copies user data if you want to copy it to a subscip, or NULL */
4268 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4296 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4324 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4338 * @note If you want the write all constraints (including the once which are redundant for example), you need to set
4352 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4375 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4386 SCIP_Bool permuteconss, /**< should the list of constraints in each constraint handler be permuted? */
4418 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4466 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4514 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4528 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4540 /** adds offset of objective function to original problem and to all existing solution in original space
4542 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4634 /** sets limit on objective function, such that only solutions better than this limit are accepted
4636 * @note SCIP will only look for solutions with a strictly better objective value, thus, e.g., prune
4638 * However, SCIP will also collect solutions with objective value worse than the objective limit and
4640 * @note If SCIP can prove that there exists no solution with a strictly better objective value, the solving status
4642 * The only exception is that by chance, SCIP found a solution with the same objective value and thus
4645 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4686 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4719 /** returns the Euclidean norm of the objective function vector (available only for transformed problem)
4741 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4775 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4792 SCIP_Bool* deleted /**< pointer to store whether variable was successfully marked to be deleted */
4795 /** gets variables of the problem along with the numbers of different variable types; data may become invalid after
4798 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4813 * @note Variables in the vars array are ordered: binaries first, then integers, implicit integers and continuous last.
4822 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
4842 * @warning If your are using the methods which add or change bound of variables (e.g., SCIPchgVarType(), SCIPfixVar(),
4843 * SCIPaggregateVars(), and SCIPmultiaggregateVar()), it can happen that the internal variable array (which is
4844 * accessed via this method) gets resized and/or resorted. This can invalid the data pointer which is returned
4847 * @note Variables in the array are ordered: binaries first, then integers, implicit integers and continuous last.
4961 * @note In case of the original problem the number of variables is counted. In case of the transformed problem the
5024 /** gets variables of the original problem along with the numbers of different variable types; data may become invalid
5027 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5051 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5220 /** gets variables of the original or transformed problem along with the numbers of different variable types;
5222 * data may become invalid after calls to SCIPchgVarType(), SCIPfixVar(), SCIPaggregateVars(), and
5225 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5242 SCIP_SOL* sol, /**< primal solution that selects the problem space, NULL for current solution */
5247 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5275 /** returns TRUE iff all potential variables exist in the problem, and FALSE, if there may be additional variables,
5298 /** adds constraint to the problem; if constraint is only valid locally, it is added to the local subproblem of the
5300 * if a local constraint is added at the root node, it is automatically upgraded into a global constraint
5302 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5321 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
5324 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5440 * @warning If your are using the method SCIPaddCons(), it can happen that the internal constraint array (which is
5441 * accessed via this method) gets resized. This can invalid the pointer which is returned by this method.
5494 /** computes the number of check constraint in the current node (loop over all constraint handler and cumulates the
5525 /** adds constraint to the given node (and all of its subnodes), even if it is a global constraint;
5526 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5527 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5529 * In this case, one should pass the more global node where the constraint is valid as "validnode".
5530 * Note that the same constraint cannot be added twice to the branching tree with different "validnode" parameters.
5531 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5532 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5533 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5535 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5552 /** adds constraint locally to the current node (and all of its subnodes), even if it is a global constraint;
5553 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5554 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5557 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5558 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5559 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5561 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5570 * @note The same constraint cannot be added twice to the branching tree with different "validnode" parameters. This is
5571 * the case due internal data structures and performance issues. In such a case you should try to realize your
5572 * issue using the method SCIPdisableCons() and SCIPenableCons() and control these via the event system of SCIP.
5581 /** disables constraint's separation, enforcing, and propagation capabilities at the given node (and all subnodes);
5582 * if the method is called at the root node, the constraint is globally deleted from the problem;
5583 * the constraint deletion is being remembered at the given node, s.t. after leaving the node's subtree, the constraint
5584 * is automatically enabled again, and after entering the node's subtree, it is automatically disabled;
5585 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5588 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5604 /** disables constraint's separation, enforcing, and propagation capabilities at the current node (and all subnodes);
5605 * if the method is called during problem modification or at the root node, the constraint is globally deleted from
5607 * the constraint deletion is being remembered at the current node, s.t. after leaving the current subtree, the
5608 * constraint is automatically enabled again, and after reentering the current node's subtree, it is automatically
5610 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5613 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5631 * @return estimate of best primal solution w.r.t. original problem contained in current subtree
5641 /** gets estimate of best primal solution w.r.t. transformed problem contained in current subtree
5643 * @return estimate of best primal solution w.r.t. transformed problem contained in current subtree
|