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
380 /** installs the given message handler, such that all messages are passed to this handler. A messages handler can be
383 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
390 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release).
395 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */
429 /** prints a dialog message that requests user interaction or is a direct response to a user interactive command */
481 /** copies plugins from sourcescip to targetscip; in case that a constraint handler which does not need constraints
482 * cannot be copied, valid will return FALSE. All plugins can declare that, if their copy process failed, the
486 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
490 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
508 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
542 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
562 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
576 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
584 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
586 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
604 * @post After calling this method targetscip reaches one of the following stages depending on if and when the solution
618 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
623 /** returns copy of the source variable; if there already is a copy of the source variable in the variable hash map,
624 * it is just returned as target variable; elsewise a new variable will be created and added to the target SCIP; this
627 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
629 * @note if a new variable was created, this variable will be added to the target-SCIP, but it is not captured
631 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
665 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
667 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
673 /** copies all active variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
674 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
679 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
682 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
709 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
711 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
716 /** copies all original variables from source-SCIP and adds these variable to the target-SCIP; the mapping between these
717 * variables are stored in the variable hashmap, target-SCIP has to be in problem creation stage, fixed and aggregated
722 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
725 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
752 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
754 SCIP_HASHMAP* consmap /**< a hashmap to store the mapping of source constraints to the corresponding
758 /** returns copy of the source constraint; if there already is a copy of the source constraint in the constraint hash
759 * map, it is just returned as target constraint; elsewise a new constraint will be created; this created constraint is
760 * added to the constraint hash map and returned as target constraint; the variable map is used to map the variables of
763 * @warning If a constraint is marked to be checked for feasibility but not to be enforced, a LP or pseudo solution may
764 * be declared feasible even if it violates this particular constraint. This constellation should only be
765 * used, if no LP or pseudo solution can violate the constraint -- e.g. if a local constraint is redundant due
768 * @note The constraint is not added to the target SCIP. You can check whether a constraint is added by calling
769 * SCIPconsIsAdded(). (If you mix SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add
772 * @note The constraint is always captured, either during the creation of the copy or after finding the copy of the
775 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
778 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
815 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
817 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
819 const char* name, /**< name of constraint, or NULL if the name of the source constraint should be used */
828 SCIP_Bool removable, /**< should the relaxation be removed from the LP due to aging or cleanup? */
829 SCIP_Bool stickingatnode, /**< should the constraint always be kept at the node where it was added, even
836 * variables between the source and the target SCIP a hash map can be given; if the variable hash
837 * map is NULL or necessary variable mapping is missing, the required variables are created in the
838 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
842 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
843 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
846 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
849 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
876 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
878 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
886 /** copies all original constraints from the source-SCIP and adds these to the target-SCIP; for mapping the
887 * variables between the source and the target SCIP a hash map can be given; if the variable hash
888 * map is NULL or necessary variable mapping is missing, the required variables are created in the
889 * target-SCIP and added to the hash map, if not NULL; all variables which are created are added to
893 * @note the constraints are added to the target-SCIP but are not (user) captured in the target SCIP. (If you mix
894 * SCIPgetConsCopy() with SCIPcopyConss() you should pay attention to what you add explicitly and what is already
897 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
900 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
927 SCIP_HASHMAP* varmap, /**< a SCIP_HASHMAP mapping variables of the source SCIP to the corresponding
929 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
940 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
961 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
969 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
972 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1007 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1015 * This function should be called for a targetscip in transformed stage. It can save time in presolving of the
1018 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1021 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1055 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1065 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1068 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1133 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1135 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1139 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1169 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1173 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1181 /** copies source SCIP original problem to target SCIP; the copying process is done in the following order:
1188 * @note all variables and constraints which are created in the target-SCIP are not (user) captured
1190 * @note In a multi thread case, you need to lock the copying procedure from outside with a mutex.
1194 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1224 SCIP_HASHMAP* consmap, /**< a hashmap to store the mapping of source constraints to the corresponding
1226 const char* suffix, /**< suffix which will be added to the names of the target SCIP, might be empty */
1227 SCIP_Bool enablepricing, /**< should pricing be enabled in copied SCIP instance? If TRUE, pricer
1244 /** creates a SCIP_Bool parameter, sets it to its default value, and adds it to the parameter set
1246 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1263 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1280 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set
1282 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1299 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set
1301 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1320 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1331 const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */
1336 /** creates a string(char*) parameter, sets it to its default value, and adds it to the parameter set
1338 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1346 char** valueptr, /**< pointer to store the current parameter value, or NULL; if not NULL then *valueptr should be NULL */
1375 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1387 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1411 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1423 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1435 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1447 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1450 * @note: Be careful with this method! Some general settings, e.g., the time or node limit, should not be fixed because
1461 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1472 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1484 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1496 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1508 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1520 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1532 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1556 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1568 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1580 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1592 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1604 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1616 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1628 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1639 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1647 SCIP_Bool onlychanged /**< should only the parameters been written, that are changed from default? */
1652 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1663 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1681 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1691 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for
1694 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1710 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1727 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1744 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1784 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1791 * @note method has all reader callbacks as arguments and is thus changed every time a new callback is added
1801 SCIP_DECL_READERCOPY ((*readercopy)), /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1808 /** creates a reader and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
1812 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1819 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeReader() instead
1833 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1844 SCIP_DECL_READERCOPY ((*readercopy)) /**< copy method of reader or NULL if you don't want to copy your plugin into sub-SCIPs */
1849 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1865 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1881 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1915 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1918 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1925 * @note method has all pricer callbacks as arguments and is thus changed every time a new callback is added
1940 SCIP_DECL_PRICERCOPY ((*pricercopy)), /**< copy method of variable pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
1944 SCIP_DECL_PRICERINITSOL((*pricerinitsol)),/**< solving process initialization method of variable pricer */
1945 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)),/**< solving process deinitialization method of variable pricer */
1946 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1947 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1951 /** creates a variable pricer and includes it in SCIP with all non-fundamental callbacks set to NULL;
1952 * if needed, these can be added afterwards via setter functions SCIPsetPricerCopy(), SCIPsetPricerFree(),
1956 * To use the variable pricer for solving a problem, it first has to be activated with a call to SCIPactivatePricer().
1959 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1966 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePricer() instead
1980 SCIP_DECL_PRICERREDCOST((*pricerredcost)),/**< reduced cost pricing method of variable pricer for feasible LPs */
1981 SCIP_DECL_PRICERFARKAS((*pricerfarkas)), /**< Farkas pricing method of variable pricer for infeasible LPs */
1987 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1998 SCIP_DECL_PRICERCOPY ((*pricercopy)) /**< copy method of pricer or NULL if you don't want to copy your plugin into sub-SCIPs */
2003 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2019 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2035 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2051 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2062 SCIP_DECL_PRICERINITSOL ((*pricerinitsol))/**< solving process initialization method of pricer */
2067 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2078 SCIP_DECL_PRICEREXITSOL((*pricerexitsol)) /**< solving process deinitialization method of pricer */
2088 /** returns the array of currently available variable pricers; active pricers are in the first slots of the array */
2100 /** returns the number of currently active variable pricers, that are used in the LP solving loop */
2115 * This method should be called during the problem creation stage for all pricers that are necessary to solve
2119 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2133 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2148 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2155 * @note method has all constraint handler callbacks as arguments and is thus changed every time a new
2167 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2168 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2169 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2170 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2172 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2173 SCIP_Bool delaysepa, /**< should separation method be delayed, if other separators found cuts? */
2174 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2175 SCIP_Bool delaypresol, /**< should presolving method be delayed, if other presolvers found reductions? */
2176 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2177 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
2178 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2182 SCIP_DECL_CONSINITPRE ((*consinitpre)), /**< presolving initialization method of constraint handler */
2183 SCIP_DECL_CONSEXITPRE ((*consexitpre)), /**< presolving deinitialization method of constraint handler */
2184 SCIP_DECL_CONSINITSOL ((*consinitsol)), /**< solving process initialization method of constraint handler */
2185 SCIP_DECL_CONSEXITSOL ((*consexitsol)), /**< solving process deinitialization method of constraint handler */
2187 SCIP_DECL_CONSTRANS ((*constrans)), /**< transform constraint data into data belonging to the transformed problem */
2188 SCIP_DECL_CONSINITLP ((*consinitlp)), /**< initialize LP with relaxations of "initial" constraints */
2190 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2211 /** creates a constraint handler and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
2212 * Optional callbacks can be set via specific setter functions, see SCIPsetConshdlrInit(), SCIPsetConshdlrExit(),
2213 * SCIPsetConshdlrCopy(), SCIPsetConshdlrFree(), SCIPsetConshdlrInitsol(), SCIPsetConshdlrExitsol(),
2214 * SCIPsetConshdlrInitpre(), SCIPsetConshdlrExitpre(), SCIPsetConshdlrPresol(), SCIPsetConshdlrDelete(),
2215 * SCIPsetConshdlrDelvars(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrActive(), SCIPsetConshdlrDeactive(),
2216 * SCIPsetConshdlrEnable(), SCIPsetConshdlrDisable(), SCIPsetConshdlrResprop(), SCIPsetConshdlrTrans(),
2219 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2226 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConshdlr() instead
2235 int chckpriority, /**< priority of the constraint handler for checking feasibility (and propagation) */
2236 int eagerfreq, /**< frequency for using all instead of only the useful constraints in separation,
2238 SCIP_Bool needscons, /**< should the constraint handler be skipped, if no constraints are available? */
2248 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2260 SCIP_DECL_CONSSEPASOL ((*conssepasol)), /**< separate cutting planes for arbitrary primal solution */
2261 int sepafreq, /**< frequency for separating cuts; zero means to separate only in the root node */
2263 SCIP_Bool delaysepa /**< should separation method be delayed, if other separators found cuts? */
2268 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2280 int propfreq, /**< frequency for propagating domains; zero means only preprocessing propagation */
2281 SCIP_Bool delayprop, /**< should propagation method be delayed, if other propagators found reductions? */
2282 SCIP_PROPTIMING timingmask /**< positions in the node solving loop where propagators should be executed */
2287 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2298 SCIP_DECL_CONSHDLRCOPY((*conshdlrcopy)), /**< copy method of constraint handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2304 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2320 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2336 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2352 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2363 SCIP_DECL_CONSINITSOL((*consinitsol)) /**< solving process initialization method of constraint handler */
2368 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2379 SCIP_DECL_CONSEXITSOL ((*consexitsol))/**< solving process deinitialization method of constraint handler */
2384 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2395 SCIP_DECL_CONSINITPRE((*consinitpre)) /**< preprocessing initialization method of constraint handler */
2400 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2411 SCIP_DECL_CONSEXITPRE((*consexitpre)) /**< preprocessing deinitialization method of constraint handler */
2416 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2428 int maxprerounds, /**< maximal number of presolving rounds the constraint handler participates in (-1: no limit) */
2429 SCIP_Bool delaypresol /**< should presolving method be delayed, if other presolvers found reductions? */
2434 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2448 /** sets method of constraint handler to transform constraint data into data belonging to the transformed problem
2450 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2461 SCIP_DECL_CONSTRANS ((*constrans)) /**< transform constraint data into data belonging to the transformed problem */
2464 /** sets method of constraint handler to initialize LP with relaxations of "initial" constraints
2466 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2477 SCIP_DECL_CONSINITLP ((*consinitlp)) /**< initialize LP with relaxations of "initial" constraints */
2482 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2514 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2530 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2546 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2562 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2578 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2594 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2610 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2626 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2661 * @note method has all conflict handler callbacks as arguments and is thus changed every time a new
2672 SCIP_DECL_CONFLICTCOPY((*conflictcopy)), /**< copy method of conflict handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2676 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol)),/**< solving process initialization method of conflict handler */
2677 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol)),/**< solving process deinitialization method of conflict handler */
2678 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2682 /** creates a conflict handler and includes it in SCIP with its most fundamental callbacks. All non-fundamental
2684 * Optional callbacks can be set via specific setter functions SCIPsetConflicthdlrCopy(), SCIPsetConflicthdlrFree(),
2688 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeConflicthdlr() instead
2697 SCIP_DECL_CONFLICTEXEC((*conflictexec)), /**< conflict processing method of conflict handler */
2738 SCIP_DECL_CONFLICTINITSOL((*conflictinitsol))/**< solving process initialization method of conflict handler */
2746 SCIP_DECL_CONFLICTEXITSOL((*conflictexitsol))/**< solving process deinitialization method of conflict handler */
2789 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2791 SCIP_DECL_PRESOLCOPY ((*presolcopy)), /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2792 SCIP_DECL_PRESOLFREE ((*presolfree)), /**< destructor of presolver to free user data (called when SCIP is exiting) */
2793 SCIP_DECL_PRESOLINIT ((*presolinit)), /**< initialization method of presolver (called after problem was transformed) */
2794 SCIP_DECL_PRESOLEXIT ((*presolexit)), /**< deinitialization method of presolver (called before transformed problem is freed) */
2795 SCIP_DECL_PRESOLINITPRE((*presolinitpre)),/**< presolving initialization method of presolver (called when presolving is about to begin) */
2796 SCIP_DECL_PRESOLEXITPRE((*presolexitpre)),/**< presolving deinitialization method of presolver (called after presolving has been finished) */
2801 /** Creates a presolver and includes it in SCIP with its fundamental callback. All non-fundamental (or optional)
2802 * callbacks as, e.g., init and exit callbacks, will be set to NULL. Optional callbacks can be set via specific setter
2803 * functions. These are SCIPsetPresolCopy(), SCIPsetPresolFree(), SCIPsetPresolInit(), SCIPsetPresolExit(),
2806 * @note if you want to set all callbacks with a single method call, consider using SCIPincludePresol() instead
2815 int maxrounds, /**< maximal number of presolving rounds the presolver participates in (-1: no limit) */
2826 SCIP_DECL_PRESOLCOPY ((*presolcopy)) /**< copy method of presolver or NULL if you don't want to copy your plugin into sub-SCIPs */
2858 SCIP_DECL_PRESOLINITPRE ((*presolinitpre))/**< solving process initialization method of presolver */
2865 SCIP_DECL_PRESOLEXITPRE ((*presolexitpre))/**< solving process deinitialization method of presolver */
2897 * @note method has all relaxation handler callbacks as arguments and is thus changed every time a new
2907 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2909 SCIP_DECL_RELAXCOPY ((*relaxcopy)), /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2913 SCIP_DECL_RELAXINITSOL((*relaxinitsol)), /**< solving process initialization method of relaxation handler */
2914 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)), /**< solving process deinitialization method of relaxation handler */
2921 * Optional callbacks can be set via specific setter functions, see SCIPsetRelaxInit(), SCIPsetRelaxExit(),
2924 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeRelax() instead
2932 int priority, /**< priority of the relaxation handler (negative: after LP, non-negative: before LP) */
2943 SCIP_DECL_RELAXCOPY ((*relaxcopy)) /**< copy method of relaxation handler or NULL if you don't want to copy your plugin into sub-SCIPs */
2975 SCIP_DECL_RELAXINITSOL((*relaxinitsol)) /**< solving process initialization method of relaxation handler */
2983 SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) /**< solving process deinitialization method of relaxation handler */
3027 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3031 SCIP_DECL_SEPACOPY ((*sepacopy)), /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3035 SCIP_DECL_SEPAINITSOL ((*sepainitsol)), /**< solving process initialization method of separator */
3036 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)), /**< solving process deinitialization method of separator */
3038 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3042 /** creates a separator and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3044 * Optional callbacks can be set via specific setter functions, see SCIPsetSepaInit(), SCIPsetSepaFree(),
3047 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeSepa() instead
3057 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound compared
3062 SCIP_DECL_SEPAEXECSOL ((*sepaexecsol)), /**< arbitrary primal solution separation method of separator */
3071 SCIP_DECL_SEPACOPY ((*sepacopy)) /**< copy method of separator or NULL if you don't want to copy your plugin into sub-SCIPs */
3103 SCIP_DECL_SEPAINITSOL ((*sepainitsol)) /**< solving process initialization method of separator */
3111 SCIP_DECL_SEPAEXITSOL ((*sepaexitsol)) /**< solving process deinitialization method of separator */
3153 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3156 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3157 int presolpriority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3158 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3159 SCIP_Bool presoldelay, /**< should presolving be delayed, if other presolvers found reductions? */
3160 SCIP_DECL_PROPCOPY ((*propcopy)), /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3165 SCIP_DECL_PROPEXITPRE ((*propexitpre)), /**< presolving deinitialization method of propagator */
3166 SCIP_DECL_PROPINITSOL ((*propinitsol)), /**< solving process initialization method of propagator */
3167 SCIP_DECL_PROPEXITSOL ((*propexitsol)), /**< solving process deinitialization method of propagator */
3174 /** creates a propagator and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3175 * Optional callbacks can be set via specific setter functions, see SCIPsetPropInit(), SCIPsetPropExit(),
3179 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeProp() instead
3187 int priority, /**< priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3190 SCIP_PROPTIMING timingmask, /**< positions in the node solving loop where propagators should be executed */
3200 SCIP_DECL_PROPCOPY ((*propcopy)) /**< copy method of propagator or NULL if you don't want to copy your plugin into sub-SCIPs */
3232 SCIP_DECL_PROPINITSOL((*propinitsol)) /**< solving process initialization method of propagator */
3240 SCIP_DECL_PROPEXITSOL ((*propexitsol)) /**< solving process deinitialization method of propagator */
3248 SCIP_DECL_PROPINITPRE((*propinitpre)) /**< preprocessing initialization method of propagator */
3256 SCIP_DECL_PROPEXITPRE((*propexitpre)) /**< preprocessing deinitialization method of propagator */
3265 int presolpriority, /**< presolving priority of the propagator (>= 0: before, < 0: after constraint handlers) */
3266 int presolmaxrounds, /**< maximal number of presolving rounds the propagator participates in (-1: no limit) */
3267 SCIP_Bool presoldelay /**< should presolving be delayed, if other presolvers found reductions? */
3317 * callback is added in future releases; consider using SCIPincludeHeurBasic() and setter functions
3330 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3333 SCIP_DECL_HEURCOPY ((*heurcopy)), /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3337 SCIP_DECL_HEURINITSOL ((*heurinitsol)), /**< solving process initialization method of primal heuristic */
3338 SCIP_DECL_HEUREXITSOL ((*heurexitsol)), /**< solving process deinitialization method of primal heuristic */
3346 * Optional callbacks can be set via specific setter functions, see SCIPsetHeurCopy(), SCIPsetHeurFree(),
3349 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeHeur() instead
3362 unsigned int timingmask, /**< positions in the node solving loop where heuristic should be executed;
3374 SCIP_DECL_HEURCOPY ((*heurcopy)) /**< copy method of primal heuristic or NULL if you don't want to copy your plugin into sub-SCIPs */
3406 SCIP_DECL_HEURINITSOL ((*heurinitsol)) /**< solving process initialization method of primal heuristic */
3414 SCIP_DECL_HEUREXITSOL ((*heurexitsol)) /**< solving process deinitialization method of primal heuristic */
3446 * @note method has all event handler callbacks as arguments and is thus changed every time a new
3447 * callback is added in future releases; consider using SCIPincludeEventhdlrBasic() and setter functions
3455 SCIP_DECL_EVENTCOPY ((*eventcopy)), /**< copy method of event handler or NULL if you don't want to copy your plugin into sub-SCIPs */
3459 SCIP_DECL_EVENTINITSOL((*eventinitsol)), /**< solving process initialization method of event handler */
3460 SCIP_DECL_EVENTEXITSOL((*eventexitsol)), /**< solving process deinitialization method of event handler */
3466 /** creates an event handler and includes it in SCIP with all its non-fundamental callbacks set
3468 * SCIPsetEventhdlrCopy(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrExit(),
3471 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeEventhdlr() instead
3520 SCIP_DECL_EVENTINITSOL((*eventinitsol)) /**< solving process initialization callback of event handler */
3528 SCIP_DECL_EVENTEXITSOL((*eventexitsol)) /**< solving process deinitialization callback of event handler */
3560 * @note method has all node selector callbacks as arguments and is thus changed every time a new
3561 * callback is added in future releases; consider using SCIPincludeNodeselBasic() and setter functions
3571 SCIP_DECL_NODESELCOPY ((*nodeselcopy)), /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3575 SCIP_DECL_NODESELINITSOL((*nodeselinitsol)),/**< solving process initialization method of node selector */
3576 SCIP_DECL_NODESELEXITSOL((*nodeselexitsol)),/**< solving process deinitialization method of node selector */
3582 /** Creates a node selector and includes it in SCIP with its most fundamental callbacks. All non-fundamental
3584 * Optional callbacks can be set via specific setter functions, see SCIPsetNodeselCopy(), SCIPsetNodeselFree(),
3585 * SCIPsetNodeselInit(), SCIPsetNodeselExit(), SCIPsetNodeselInitsol(), and SCIPsetNodeselExitsol()
3587 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeNodesel() instead
3607 SCIP_DECL_NODESELCOPY ((*nodeselcopy)) /**< copy method of node selector or NULL if you don't want to copy your plugin into sub-SCIPs */
3639 SCIP_DECL_NODESELINITSOL ((*nodeselinitsol))/**< solving process initialization method of node selector */
3647 SCIP_DECL_NODESELEXITSOL ((*nodeselexitsol))/**< solving process deinitialization method of node selector */
3693 * @note method has all branching rule callbacks as arguments and is thus changed every time a new
3694 * callback is added in future releases; consider using SCIPincludeBranchruleBasic() and setter functions
3703 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3704 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3707 SCIP_DECL_BRANCHCOPY ((*branchcopy)), /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3711 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */
3712 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */
3713 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */
3714 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external candidates */
3715 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */
3719 /** creates a branching rule and includes it in SCIP. All non-fundamental (or optional) callbacks will be set to NULL.
3720 * Optional callbacks can be set via specific setter functions, see SCIPsetBranchruleInit(), SCIPsetBranchruleExit(),
3721 * SCIPsetBranchruleCopy(), SCIPsetBranchruleFree(), SCIPsetBranchruleInitsol(), SCIPsetBranchruleExitsol(),
3724 * @note if you want to set all callbacks with a single method call, consider using SCIPincludeBranchrule() instead
3733 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */
3734 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound
3745 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */
3777 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */
3785 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */
3793 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */
3801 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */
3809 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */
3839 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */
3847 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */
3863 SCIP_DECL_DISPCOPY ((*dispcopy)), /**< copy method of display column or NULL if you don't want to copy your plugin into sub-SCIPs */
3867 SCIP_DECL_DISPINITSOL ((*dispinitsol)), /**< solving process initialization method of display column */
3868 SCIP_DECL_DISPEXITSOL ((*dispexitsol)), /**< solving process deinitialization method of display column */
3874 SCIP_Bool stripline /**< should the column be separated with a line from its right neighbor? */
3896 /** automatically selects display columns for being shown w.r.t. the display width parameter */
3989 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3996 SCIP_DECL_DIALOGCOPY ((*dialogcopy)), /**< copy method of dialog or NULL if you don't want to copy your plugin into sub-SCIPs */
4018 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4029 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4038 /** makes given dialog the root dialog of SCIP's interactive user shell; captures dialog and releases former root dialog
4040 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4060 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4072 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4081 /** adds a single line of input to the command history which can be accessed with the cursor keys
4083 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4094 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4101 * @post After calling this method \SCIP reaches one of the following stages depending on if and when the
4104 * - \ref SCIP_STAGE_TRANSFORMED if the interactive shell was closed after the problem was transformed
4130 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4131 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4132 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4134 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4155 SCIP_DECL_PROBTRANS ((*probtrans)), /**< creates user data of transformed problem by transforming original user data */
4157 SCIP_DECL_PROBINITSOL ((*probinitsol)), /**< solving process initialization method of transformed data */
4158 SCIP_DECL_PROBEXITSOL ((*probexitsol)), /**< solving process deinitialization method of transformed data */
4159 SCIP_DECL_PROBCOPY ((*probcopy)), /**< copies user data if you want to copy it to a subscip, or NULL */
4163 /** creates empty problem and initializes all solving data structures (the objective sense is set to MINIMIZE)
4164 * all callback methods will be set to NULL and can be set afterwards, if needed, via SCIPsetProbDelorig(),
4167 * If the problem type requires the use of variable pricers, these pricers should be added to the problem with calls
4168 * to SCIPactivatePricer(). These pricers are automatically deactivated, when the problem is freed.
4170 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4194 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4205 /** sets callback to create user data of transformed problem by transforming original user data
4207 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4216 SCIP_DECL_PROBTRANS ((*probtrans)) /**< creates user data of transformed problem by transforming original user data */
4221 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4235 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4244 SCIP_DECL_PROBINITSOL ((*probinitsol)) /**< solving process initialization method of transformed data */
4249 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4258 SCIP_DECL_PROBEXITSOL ((*probexitsol)) /**< solving process deinitialization method of transformed data */
4263 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4272 SCIP_DECL_PROBCOPY ((*probcopy)) /**< copies user data if you want to copy it to a subscip, or NULL */
4277 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4305 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4333 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4347 * @note If you want the write all constraints (including the once which are redundant for example), you need to set
4361 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4384 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4395 SCIP_Bool permuteconss, /**< should the list of constraints in each constraint handler be permuted? */
4427 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4475 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4523 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4537 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4549 /** adds offset of objective function to original problem and to all existing solution in original space
4551 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4643 /** sets limit on objective function, such that only solutions better than this limit are accepted
4645 * @note SCIP will only look for solutions with a strictly better objective value, thus, e.g., prune
4647 * However, SCIP will also collect solutions with objective value worse than the objective limit and
4649 * @note If SCIP can prove that there exists no solution with a strictly better objective value, the solving status
4651 * The only exception is that by chance, SCIP found a solution with the same objective value and thus
4654 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4695 * @return \ref SCIP_OKAY is returned if everything worked. otherwise a suitable error code is passed. see \ref
4728 /** returns the Euclidean norm of the objective function vector (available only for transformed problem)
4750 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4770 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4784 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4801 SCIP_Bool* deleted /**< pointer to store whether variable was successfully marked to be deleted */
4804 /** gets variables of the problem along with the numbers of different variable types; data may become invalid after
4807 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
4822 * @note Variables in the vars array are ordered: binaries first, then integers, implicit integers and continuous last.
4831 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
4851 * @warning If your are using the methods which add or change bound of variables (e.g., SCIPchgVarType(), SCIPfixVar(),
4852 * SCIPaggregateVars(), and SCIPmultiaggregateVar()), it can happen that the internal variable array (which is
4853 * accessed via this method) gets resized and/or resorted. This can invalid the data pointer which is returned
4856 * @note Variables in the array are ordered: binaries first, then integers, implicit integers and continuous last.
4970 * @note In case of the original problem the number of variables is counted. In case of the transformed problem the
5033 /** gets variables of the original problem along with the numbers of different variable types; data may become invalid
5036 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5060 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5229 /** gets variables of the original or transformed problem along with the numbers of different variable types;
5231 * data may become invalid after calls to SCIPchgVarType(), SCIPfixVar(), SCIPaggregateVars(), and
5234 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5251 SCIP_SOL* sol, /**< primal solution that selects the problem space, NULL for current solution */
5256 int* nimplvars, /**< pointer to store number of implicit integral vars or NULL if not needed */
5284 /** returns TRUE iff all potential variables exist in the problem, and FALSE, if there may be additional variables,
5307 /** adds constraint to the problem; if constraint is only valid locally, it is added to the local subproblem of the
5309 * if a local constraint is added at the root node, it is automatically upgraded into a global constraint
5311 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5330 /** globally removes constraint from all subproblems; removes constraint from the constraint set change data of the
5333 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5449 * @warning If your are using the method SCIPaddCons(), it can happen that the internal constraint array (which is
5450 * accessed via this method) gets resized. This can invalid the pointer which is returned by this method.
5503 /** computes the number of check constraint in the current node (loop over all constraint handler and cumulates the
5534 /** adds constraint to the given node (and all of its subnodes), even if it is a global constraint;
5535 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5536 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5538 * In this case, one should pass the more global node where the constraint is valid as "validnode".
5539 * Note that the same constraint cannot be added twice to the branching tree with different "validnode" parameters.
5540 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5541 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5542 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5544 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5561 /** adds constraint locally to the current node (and all of its subnodes), even if it is a global constraint;
5562 * It is sometimes desirable to add the constraint to a more local node (i.e., a node of larger depth) even if
5563 * the constraint is also valid higher in the tree, for example, if one wants to produce a constraint which is
5566 * If the constraint is valid at the same node as it is inserted (the usual case), one should pass NULL as "validnode".
5567 * If the "validnode" is the root node, it is automatically upgraded into a global constraint, but still only added to
5568 * the given node. If a local constraint is added to the root node, it is added to the global problem instead.
5570 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5579 * @note The same constraint cannot be added twice to the branching tree with different "validnode" parameters. This is
5580 * the case due internal data structures and performance issues. In such a case you should try to realize your
5581 * issue using the method SCIPdisableCons() and SCIPenableCons() and control these via the event system of SCIP.
5590 /** disables constraint's separation, enforcing, and propagation capabilities at the given node (and all subnodes);
5591 * if the method is called at the root node, the constraint is globally deleted from the problem;
5592 * the constraint deletion is being remembered at the given node, s.t. after leaving the node's subtree, the constraint
5593 * is automatically enabled again, and after entering the node's subtree, it is automatically disabled;
5594 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5597 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5613 /** disables constraint's separation, enforcing, and propagation capabilities at the current node (and all subnodes);
5614 * if the method is called during problem modification or at the root node, the constraint is globally deleted from
5616 * the constraint deletion is being remembered at the current node, s.t. after leaving the current subtree, the
5617 * constraint is automatically enabled again, and after reentering the current node's subtree, it is automatically
5619 * this may improve performance because redundant checks on this constraint are avoided, but it consumes memory;
5622 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
5640 * @return estimate of best primal solution w.r.t. original problem contained in current subtree
5650 /** gets estimate of best primal solution w.r.t. transformed problem contained in current subtree
5652 * @return estimate of best primal solution w.r.t. transformed problem contained in current subtree
5712 /** if given value is tighter (larger for minimization, smaller for maximization) than the current node's dual bound (in
5715 * @note the given new bound has to be a dual bound, i.e., it has to be valid for the original problem.
|