scip_var.h
Go to the documentation of this file.
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
77 /** creates and captures problem variable; if variable is of integral type, fractional bounds are automatically rounded;
78 * an integer variable with bounds zero and one is automatically converted into a binary variable;
80 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
81 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
82 * original objective function value of variables created during the solving process has to be multiplied by
85 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
97 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
111 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data, or NULL */
112 SCIP_DECL_VARDELTRANS ((*vardeltrans)), /**< frees user data of transformed variable, or NULL */
117 /** creates and captures problem variable with optional callbacks and variable data set to NULL, which can be set
119 * SCIPvarSetDeltransData(), SCIPvarSetCopy(), and SCIPvarSetData(); sets variable flags initial=TRUE
120 * and removable = FALSE, which can be adjusted by using SCIPvarSetInitial() and SCIPvarSetRemovable(), resp.;
122 * an integer variable with bounds zero and one is automatically converted into a binary variable;
124 * @warning When doing column generation and the original problem is a maximization problem, notice that SCIP will
125 * transform the problem into a minimization problem by multiplying the objective function by -1. Thus, the
126 * original objective function value of variables created during the solving process has to be multiplied by
129 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
141 * @note the variable gets captured, hence at one point you have to release it using the method SCIPreleaseVar()
156 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
181 /** print the given list of variables to output stream separated by the given delimiter character;
183 * i. e. the variables x1, x2, ..., xn with given delimiter ',' are written as: <x1>, <x2>, ..., <xn>;
187 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
221 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
255 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
286 /** parses variable information (in cip format) out of a string; if the parsing process was successful a variable is
287 * created and captured; if variable is of integral type, fractional bounds are automatically rounded; an integer
290 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
311 SCIP_DECL_VARTRANS ((*vartrans)), /**< creates transformed user data by transforming original user data */
318 /** parses the given string for a variable name and stores the variable in the corresponding pointer if such a variable
321 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
341 /** parse the given string as variable list (here ',' is the delimiter)) (<x1>, <x2>, ..., <xn>) (see
344 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
356 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
358 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
359 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
360 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
376 /** parse the given string as linear sum of variables and coefficients (c1 <x1> + c2 <x2> + ... + cn <xn>)
379 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
391 * @note The pointer success in only set to FALSE in the case that a variable with a parsed variable name does not exist.
393 * @note If the number of (parsed) variables is greater than the available slots in the variable array, nothing happens
394 * except that the required size is stored in the corresponding integer; the reason for this approach is that we
395 * cannot reallocate memory, since we do not know how the memory has been allocated (e.g., by a C++ 'new' or SCIP
416 * monomialcoefs, monomialnvars, *nmonomials) short after SCIPparseVarsPolynomial to free all the
417 * allocated memory again. Do not keep the arrays created by SCIPparseVarsPolynomial around, since
420 * Parsing is stopped at the end of string (indicated by the \\0-character) or when no more monomials
423 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
450 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
474 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
496 /** decreases usage counter of variable, if the usage pointer reaches zero the variable gets freed
498 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
525 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
539 /** gets and captures transformed variable of a given variable; if the variable is not yet transformed,
542 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
563 * if a variable of the array is not yet transformed, a new transformed variable for this variable is created;
566 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
590 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
615 * it is possible to call this method with vars == transvars, but remember that variables that are not
618 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
642 /** gets negated variable x' = lb + ub - x of variable x; negated variable is created, if not yet existing
644 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
668 /** gets negated variables x' = lb + ub - x of variables x; negated variables are created, if not yet existing;
669 * in difference to \ref SCIPcreateVar, the negated variable must not be released (unless captured explicitly)
671 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
696 /** gets a binary variable that is equal to the given binary variable, and that is either active, fixed, or
699 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
719 SCIP_Bool* negated /**< pointer to store whether the negation of an active variable was returned */
722 /** gets binary variables that are equal to the given binary variables, and which are either active, fixed, or
725 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
746 SCIP_Bool* negated /**< array to store whether the negation of an active variable was returned */
749 /** flattens aggregation graph of multi-aggregated variable in order to avoid exponential recursion later on
751 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
769 /** Transforms a given linear sum of variables, that is a_1*x_1 + ... + a_n*x_n + c into a corresponding linear sum of
772 * If the number of needed active variables is greater than the available slots in the variable array, nothing happens
773 * except that the required size is stored in the corresponding variable (requiredsize). Otherwise, the active variable
776 * The reason for this approach is that we cannot reallocate memory, since we do not know how the memory has been
779 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
794 * @note The resulting linear sum is stored into the given variable array, scalar array, and constant. That means the
797 * @note That method can be used to convert a single variables into variable space of active variables. Therefore call
819 SCIP_Bool mergemultiples /**< should multiple occurrences of a var be replaced by a single coeff? */
824 * "scalar" will be 0.0 and the value of the sum will be stored in "constant"; a multi-aggregation
826 * is treated like an aggregation; if the multi-aggregation constant is infinite, "scalar" will be 0.0
828 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
851 /** return for given variables all their active counterparts; all active variables will be pairwise different
852 * @note It does not hold that the first output variable is the active variable for the first input variable.
854 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
888 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
904 * @note The return value of this method should be used carefully if the dual feasibility check was explictely disabled.
927 /** returns lower bound of variable directly before or after the bound change given by the bound change index
938 /** returns upper bound of variable directly before or after the bound change given by the bound change index
949 /** returns lower or upper bound of variable directly before or after the bound change given by the bound change index
961 /** returns whether the binary variable was fixed at the time given by the bound change index */
986 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1003 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1016 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1021 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1028 * @note This method incrementally updates the objective value of the relaxation solution. If the whole solution
1029 * should be updated, using SCIPsetRelaxSolVals() instead or calling SCIPclearRelaxSolVals() before setting
1039 /** sets the values of the given variables in the global relaxation solution and informs SCIP about the validity
1041 * this solution can be filled by the relaxation handlers and can be used by heuristics and for separation;
1044 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1060 /** sets the values of the variables in the global relaxation solution to the values in the given primal solution
1061 * and informs SCIP about the validity and whether the solution can be enforced via linear cuts;
1062 * the relaxation solution can be filled by the relaxation handlers and might be used by heuristics and for separation
1064 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1091 /** informs SCIP that the relaxation solution is valid and whether the relaxation can be enforced through linear cuts
1093 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1108 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1160 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1167 * @note if propagation is enabled, strong branching is not done directly on the LP, but probing nodes are created
1173 SCIP_Bool enablepropagation /**< should propagation be done before solving the strong branching LP? */
1178 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1192 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1206 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1210 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1212 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1222 * Before calling this method, the strong branching mode must have been activated by calling SCIPstartStrongbranch();
1223 * after strong branching was done for all candidate variables, the strong branching mode must be ended by
1224 * SCIPendStrongbranch(). Since this method applies domain propagation before strongbranching, propagation has to be be
1227 * Before solving the strong branching LP, domain propagation can be performed. The number of propagation rounds
1230 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1237 * @warning When using this method, LP banching candidates and solution values must be copied beforehand, because
1251 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1255 SCIP_Longint* ndomredsdown, /**< pointer to store the number of domain reductions down, or NULL */
1257 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1259 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1269 /** gets strong branching information on column variable x with integral LP solution value (val); that is, the down branch
1272 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1279 * @note If the integral LP solution value is the lower or upper bound of the variable, the corresponding branch will be
1289 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1293 SCIP_Bool* downinf, /**< pointer to store whether the downwards branch is infeasible, or NULL */
1295 SCIP_Bool* downconflict, /**< pointer to store whether a conflict constraint was created for an
1305 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1320 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1324 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1336 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1351 SCIP_Bool* downvalid, /**< stores whether the returned down values are valid dual bounds, or NULL;
1355 SCIP_Bool* downinf, /**< array to store whether the downward branches are infeasible, or NULL */
1365 /** get LP solution status of last strong branching call (currently only works for strong branching with propagation) */
1372 /** gets strong branching information on COLUMN variable of the last SCIPgetVarStrongbranch() call;
1373 * returns values of SCIP_INVALID, if strong branching was not yet called on the given variable;
1374 * keep in mind, that the returned old values may have nothing to do with the current LP solution
1376 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1389 SCIP_Bool* downvalid, /**< stores whether the returned down value is a valid dual bound, or NULL;
1393 SCIP_Real* solval, /**< stores LP solution value of variable at last strong branching call, or NULL */
1399 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1434 /** gets node number of the last node in current branch and bound run, where strong branching was used on the
1437 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1458 /** if strong branching was already applied on the variable at the current node, returns the number of LPs solved after
1462 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1485 * @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
1536 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1563 /** add locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1564 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1565 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1568 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1591 /** remove locks of type @p locktype of variable with respect to the lock status of the constraint and its negation;
1592 * this method should be called whenever the lock status of a variable in a constraint changes, for example if
1593 * the coefficient of the variable changed its sign or if the left or right hand sides of the constraint were
1596 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1621 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1638 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1655 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) lower bound value;
1658 * @return adjusted lower bound for the given variable; the bound of the variable is not changed
1681 /** returns the adjusted (i.e. rounded, if the given variable is of integral type) upper bound value;
1684 * @return adjusted upper bound for the given variable; the bound of the variable is not changed
1707 /** depending on SCIP's stage, changes lower bound of variable in the problem, in preprocessing, or in current node;
1708 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1711 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1714 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1723 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1732 /** depending on SCIP's stage, changes upper bound of variable in the problem, in preprocessing, or in current node;
1733 * if possible, adjusts bound to integral value; doesn't store any inference information in the bound change, such
1736 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1739 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1748 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1757 /** changes lower bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1758 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1761 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1774 /** changes upper bound of variable in the given node; if possible, adjust bound to integral value; doesn't store any
1775 * inference information in the bound change, such that in conflict analysis, this change is treated like a branching
1778 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1791 /** changes global lower bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1794 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1797 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1806 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1815 /** changes global upper bound of variable; if possible, adjust bound to integral value; also tightens the local bound,
1818 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1821 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1830 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1839 /** changes lazy lower bound of the variable, this is only possible if the variable is not in the LP yet
1841 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
1844 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1854 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
1863 /** changes lazy upper bound of the variable, this is only possible if the variable is not in the LP yet
1865 * lazy bounds are bounds, that are enforced by constraints and the objective function; hence, these bounds do not need
1868 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1878 * @note lazy bounds are useful for branch-and-price since the corresponding variable bounds are not part of the LP
1887 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1888 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1889 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1892 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1895 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1903 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1915 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1916 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1917 * doesn't store any inference information in the bound change, such that in conflict analysis, this change
1920 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1923 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1931 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1943 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
1944 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
1945 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
1947 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
1948 * changes first the lowerbound by calling SCIPinferVarLbCons and second the upperbound by calling
1951 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
1954 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
1968 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
1969 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
1970 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
1973 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
1976 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1984 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
1998 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
1999 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2000 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason
2003 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2006 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2014 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2028 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2029 * the given inference constraint is stored, such that the conflict analysis is able to find out the reason for the
2032 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2048 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2051 /** fixes variable in preprocessing or in the current node, if the new bound is tighter (w.r.t. bound strengthening
2052 * epsilon) than the current bound; if possible, adjusts bound to integral value; the given inference constraint is
2053 * stored, such that the conflict analysis is able to find out the reason for the deduction of the bound change
2055 * @note In presolving stage when not in probing mode the variable will be fixed directly, otherwise this method
2056 * changes first the lowerbound by calling SCIPinferVarLbProp and second the upperbound by calling
2059 * @note If SCIP is in presolving stage, it can happen that the internal variable array (which get be accessed via
2062 * @note During presolving, an integer variable which bound changes to {0,1} is upgraded to a binary variable.
2076 /** changes lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2077 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2078 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2081 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2084 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2092 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2106 /** changes upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2107 * (w.r.t. bound strengthening epsilon) than the current bound; if possible, adjusts bound to integral value;
2108 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason
2111 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2114 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2122 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2136 /** depending on SCIP's stage, fixes binary variable in the problem, in preprocessing, or in current node;
2137 * the given inference propagator is stored, such that the conflict analysis is able to find out the reason for the
2140 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2157 SCIP_Bool* tightened /**< pointer to store whether the fixing tightened the local bounds, or NULL */
2160 /** changes global lower bound of variable in preprocessing or in the current node, if the new bound is tighter
2161 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2164 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2167 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2176 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2188 /** changes global upper bound of variable in preprocessing or in the current node, if the new bound is tighter
2189 * (w.r.t. bound strengthening epsilon) than the current global bound; if possible, adjusts bound to integral value;
2192 * @warning If SCIP is in presolving stage, it can happen that the internal variable array (which can be accessed via
2195 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2204 * @note During presolving, an integer variable whose bound changes to {0,1} is upgraded to a binary variable.
2216 /** for a multi-aggregated variable, returns the global lower bound computed by adding the global bounds from all aggregation variables
2218 * This global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is not updated if bounds of aggregation variables are changing
2219 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbGlobal.
2221 * @return the global lower bound computed by adding the global bounds from all aggregation variables
2229 /** for a multi-aggregated variable, returns the global upper bound computed by adding the global bounds from all aggregation variables
2231 * This global bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is not updated if bounds of aggregation variables are changing
2232 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbGlobal.
2234 * @return the global upper bound computed by adding the global bounds from all aggregation variables
2242 /** for a multi-aggregated variable, returns the local lower bound computed by adding the local bounds from all aggregation variables
2244 * This local bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is not updated if bounds of aggregation variables are changing
2245 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetLbLocal.
2247 * @return the local lower bound computed by adding the global bounds from all aggregation variables
2255 /** for a multi-aggregated variable, returns the local upper bound computed by adding the local bounds from all aggregation variables
2257 * This local bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is not updated if bounds of aggregation variables are changing
2258 * calling this function for a non-multi-aggregated variable results in a call to SCIPvarGetUbLocal.
2260 * @return the local upper bound computed by adding the global bounds from all aggregation variables
2268 /** for a multi-aggregated variable, gives the global lower bound computed by adding the global bounds from all
2269 * aggregation variables, this global bound may be tighter than the one given by SCIPvarGetLbGlobal, since the latter is
2280 /** for a multi-aggregated variable, gives the global upper bound computed by adding the global bounds from all
2281 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbGlobal, since the latter is
2292 /** for a multi-aggregated variable, gives the local lower bound computed by adding the local bounds from all
2293 * aggregation variables, this lower bound may be tighter than the one given by SCIPvarGetLbLocal, since the latter is
2304 /** for a multi-aggregated variable, gives the local upper bound computed by adding the local bounds from all
2305 * aggregation variables, this upper bound may be tighter than the one given by SCIPvarGetUbLocal, since the latter is
2318 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
2322 #define SCIPcomputeVarLbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbGlobal(scip, var) : SCIPvarGetLbGlobal(var))
2323 #define SCIPcomputeVarUbGlobal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbGlobal(scip, var) : SCIPvarGetUbGlobal(var))
2324 #define SCIPcomputeVarLbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrLbLocal(scip, var) : SCIPvarGetLbLocal(var))
2325 #define SCIPcomputeVarUbLocal(scip, var) (SCIPvarGetStatus(var) == SCIP_VARSTATUS_MULTAGGR ? SCIPgetVarMultaggrUbLocal(scip, var) : SCIPvarGetUbLocal(var))
2329 /** returns solution value and index of variable lower bound that is closest to the variable's value in the given primal
2330 * solution or current LP solution if no primal solution is given; returns an index of -1 if no variable lower bound is
2333 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2347 /** returns solution value and index of variable upper bound that is closest to the variable's value in the given primal solution;
2348 * or current LP solution if no primal solution is given; returns an index of -1 if no variable upper bound is available
2350 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2364 /** informs variable x about a globally valid variable lower bound x >= b*z + d with integer variable z;
2370 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2390 /** informs variable x about a globally valid variable upper bound x <= b*z + d with integer variable z;
2396 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2415 /** informs binary variable x about a globally valid implication: x == 0 or x == 1 ==> y <= b or y >= b;
2418 * if the variable is already fixed to the given value, the implication is performed immediately;
2421 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2434 SCIP_Bool varfixing, /**< FALSE if y should be added in implications for x == 0, TRUE for x == 1 */
2443 /** adds a clique information to SCIP, stating that at most one of the given binary variables can be set to 1;
2446 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2459 SCIP_Bool* values, /**< values of the variables in the clique; NULL to use TRUE for all vars */
2466 /** calculates a partition of the given set of binary variables into cliques; takes into account independent clique components
2473 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2475 * the first variable is always assigned to clique 0, and a variable can only be assigned to clique i if at least one of
2479 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2492 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2495 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2499 * afterwards the output array contains one value for each variable, such that two variables got the same value iff they
2501 * the first variable is always assigned to clique 0 and a variable can only be assigned to clique i if at least one of
2503 * for each clique with n_c variables at least n_c-1 variables can be set to TRUE in a feasible solution;
2505 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2518 SCIP_VAR**const vars, /**< binary variables in the clique from which at most one can be set to 1 */
2521 int*const ncliques /**< pointer to store the number of cliques actually contained in the partition */
2524 /** force SCIP to clean up all cliques; cliques do not get automatically cleaned up after presolving. Use
2609 * if regardimplics is TRUE, both the cliques and the implications of the implication graph are regarded
2611 * @return TRUE, if there is a clique that contains both variable/clique pairs; FALSE, otherwise
2639 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2655 * If @p writenodeweights is true, only nodes corresponding to variables that have a fractional value and only edges
2665 /** Removes (irrelevant) variable from all its global structures, i.e. cliques, implications and variable bounds.
2687 /** sets the branch factor of the variable; this value can be used in the branching methods to scale the score
2688 * values of the variables; higher factor leads to a higher probability that this variable is chosen for branching
2690 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2712 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2734 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2754 /** sets the branch priority of the variable; variables with higher branch priority are always preferred to variables
2757 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2779 /** changes the branch priority of the variable to the given value, if it is larger than the current priority
2781 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2798 int branchpriority /**< new branch priority of the variable, if it is larger than current priority */
2803 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2823 /** sets the branch direction of the variable (-1: prefer downwards branch, 0: automatic selection, +1: prefer upwards
2826 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2843 SCIP_BRANCHDIR branchdirection /**< preferred branch direction of the variable (downwards, upwards, auto) */
2848 * @warning This type change might change the variable array returned from SCIPgetVars() and SCIPgetVarsData();
2850 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2858 * @note If SCIP is already beyond the SCIP_STAGE_PROBLEM and a original variable is passed, the variable type of the
2859 * corresponding transformed variable is changed; the type of the original variable does not change
2861 * @note If the type changes from a continuous variable to a non-continuous variable the bounds of the variable get
2873 /** in problem creation and solving stage, both bounds of the variable are set to the given value;
2874 * in presolving stage, the variable is converted into a fixed variable, and bounds are changed respectively;
2875 * conversion into a fixed variable changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2878 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2892 SCIP_Bool* fixed /**< pointer to store whether the fixing was performed (variable was unfixed) */
2895 /** From a given equality a*x + b*y == c, aggregates one of the variables and removes it from the set of
2896 * active problem variables. This changes the vars array returned from SCIPgetVars() and SCIPgetVarsData(),
2897 * and also renders the arrays returned from the SCIPvarGetImpl...() methods for the two variables invalid.
2898 * In the first step, the equality is transformed into an equality with active problem variables
2899 * a'*x' + b'*y' == c'. If x' == y', this leads to the detection of redundancy if a' == -b' and c' == 0,
2900 * of infeasibility, if a' == -b' and c' != 0, or to a variable fixing x' == c'/(a'+b') (and possible
2902 * In the second step, the variable to be aggregated is chosen among x' and y', prefering a less strict variable
2903 * type as aggregation variable (i.e. continuous variables are preferred over implicit integers, implicit integers
2904 * over integers, and integers over binaries). If none of the variables is continuous, it is tried to find an integer
2905 * aggregation (i.e. integral coefficients a'' and b'', such that a''*x' + b''*y' == c''). This can lead to
2906 * the detection of infeasibility (e.g. if c'' is fractional), or to a rejection of the aggregation (denoted by
2907 * aggregated == FALSE), if the resulting integer coefficients are too large and thus numerically instable.
2912 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2914 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2932 /** converts variable into multi-aggregated variable; this changes the variable array returned from
2935 * @warning The integrality condition is not checked anymore on the multi-aggregated variable. You must not
2936 * multi-aggregate an integer variable without being sure, that integrality on the aggregation variables
2941 * - aggregated: the aggregation was successfully performed (the variables were not aggregated before)
2943 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2981 * @note A reduction is called dual, if it may discard feasible solutions, but leaves at least one optimal solution
2982 * intact. Often such reductions are based on analyzing the objective function, reduced costs, and/or dual LPs.
2997 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3009 * @note There exists no "unmark" method since it has to be ensured that if a plugin requires that a variable is not
3048 /** updates the pseudo costs of the given variable and the global pseudo costs after a change of "solvaldelta" in the
3049 * variable's solution value and resulting change of "objdelta" in the in the LP's objective value;
3052 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3152 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction
3154 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction
3172 /** gets the variable's (possible fractional) number of pseudo cost updates for the given direction,
3175 * @return the variable's (possible fractional) number of pseudo cost updates for the given direction,
3194 /** get pseudo cost variance of the variable, either for entire solve or only for current branch and bound run
3215 /** calculates a confidence bound for this variable under the assumption of normally distributed pseudo costs
3217 * The confidence bound \f$ \theta \geq 0\f$ denotes the interval borders \f$ [X - \theta, \ X + \theta]\f$, which contains
3218 * the true pseudo costs of the variable, i.e., the expected value of the normal distribution, with a probability
3232 /** check if variable pseudo-costs have a significant difference in location. The significance depends on
3233 * the choice of \p clevel and on the kind of tested hypothesis. The one-sided hypothesis, which
3237 * This method is applied best if variable x has a better pseudo-cost score than y. The method hypothesizes that y were actually
3238 * better than x (despite the current information), meaning that y can be expected to yield branching
3239 * decisions as least as good as x in the long run. If the method returns TRUE, the current history information is
3240 * sufficient to safely rely on the alternative hypothesis that x yields indeed a better branching score (on average)
3245 * @note set \p onesided to FALSE if you are not sure which variable is better. The hypothesis tested then reads
3262 /** tests at a given confidence level whether the variable pseudo-costs only have a small probability to
3263 * exceed a \p threshold. This is useful to determine if past observations provide enough evidence
3264 * to skip an expensive strong-branching step if there is already a candidate that has been proven to yield an improvement
3267 * @note use \p clevel to adjust the level of confidence. For SCIP_CONFIDENCELEVEL_MIN, the method returns TRUE if
3270 * @see SCIP_Confidencelevel for a list of available levels. The used probability limits refer to the one-sided levels
3273 * @return TRUE if the variable pseudo-cost probabilistic model is likely to be smaller than \p threshold
3286 /** check if the current pseudo cost relative error in a direction violates the given threshold. The Relative
3497 /** returns the average number of inferences found after branching on the variable in given direction;
3498 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3501 * @return the average number of inferences found after branching on the variable in given direction
3519 /** returns the average number of inferences found after branching on the variable in given direction in the current run;
3520 * if branching on the variable in the given direction was yet evaluated, the average number of inferences
3523 * @return the average number of inferences found after branching on the variable in given direction in the current run
3560 /** returns the variable's average inference score value only using inferences of the current run
3562 * @return the variable's average inference score value only using inferences of the current run
3579 /** initializes the upwards and downwards pseudocosts, conflict scores, conflict lengths, inference scores, cutoff scores
3582 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3598 SCIP_Real downpscost, /**< value to which pseudocosts for downwards branching should be initialized */
3599 SCIP_Real uppscost, /**< value to which pseudocosts for upwards branching should be initialized */
3600 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3601 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3602 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3603 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3604 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3605 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3606 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3607 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3610 /** initializes the upwards and downwards conflict scores, conflict lengths, inference scores, cutoff scores of a
3613 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
3630 SCIP_Real downvsids, /**< value to which VSIDS score for downwards branching should be initialized */
3631 SCIP_Real upvsids, /**< value to which VSIDS score for upwards branching should be initialized */
3632 SCIP_Real downconflen, /**< value to which conflict length score for downwards branching should be initialized */
3633 SCIP_Real upconflen, /**< value to which conflict length score for upwards branching should be initialized */
3634 SCIP_Real downinfer, /**< value to which inference counter for downwards branching should be initialized */
3635 SCIP_Real upinfer, /**< value to which inference counter for upwards branching should be initialized */
3636 SCIP_Real downcutoff, /**< value to which cutoff counter for downwards branching should be initialized */
3637 SCIP_Real upcutoff /**< value to which cutoff counter for upwards branching should be initialized */
3640 /** returns the average number of cutoffs found after branching on the variable in given direction;
3641 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3644 * @return the average number of cutoffs found after branching on the variable in given direction
3662 /** returns the average number of cutoffs found after branching on the variable in given direction in the current run;
3663 * if branching on the variable in the given direction was yet evaluated, the average number of cutoffs
3666 * @return the average number of cutoffs found after branching on the variable in given direction in the current run
3722 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3743 /** returns the variable's average inference/cutoff score value, weighting the cutoffs of the variable with the given
3746 * @return the variable's average inference/cutoff score value, only using inferences and cutoffs of the current run
3766 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
SCIP_RETCODE SCIPflattenVarAggregationGraph(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1696
SCIP_RETCODE SCIPchgVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4879
Definition: struct_var.h:99
SCIP_Real SCIPgetVarAvgInferences(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9218
SCIP_Real SCIPgetVarAvgCutoffs(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9472
SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5120
SCIP_Real SCIPgetVarUbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2130
SCIP_RETCODE SCIPgetBinvarRepresentative(SCIP *scip, SCIP_VAR *var, SCIP_VAR **repvar, SCIP_Bool *negated)
Definition: scip_var.c:1600
internal methods for branch and bound tree
type definitions for miscellaneous datastructures
SCIP_Real SCIPgetVarAvgInferenceCutoffScore(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9589
type definitions for implications, variable bounds, and cliques
SCIP_RETCODE SCIPaddVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real addobj)
Definition: scip_var.c:4499
Definition: struct_scip.h:58
SCIP_Real SCIPgetVarLbAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:1994
SCIP_Real SCIPgetVarAvgInferencesCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9246
SCIP_RETCODE SCIPmarkRelaxSolValid(SCIP *scip, SCIP_Bool includeslp)
Definition: scip_var.c:2549
SCIP_Real SCIPgetVarConflictlengthScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9133
SCIP_Real SCIPgetVarPseudocostVal(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8613
SCIP_RETCODE SCIPgetNegatedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **negvars)
Definition: scip_var.c:1563
SCIP_RETCODE SCIPgetVarStrongbranchLast(SCIP *scip, SCIP_VAR *var, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Real *solval, SCIP_Real *lpobjval)
Definition: scip_var.c:3951
SCIP_RETCODE SCIPinferVarLbProp(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5808
SCIP_RETCODE SCIPchgVarLbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4783
SCIP_Bool SCIPpscostThresholdProbabilityTest(SCIP *scip, SCIP_VAR *var, SCIP_Real frac, SCIP_Real threshold, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8858
Definition: struct_var.h:198
SCIP_RETCODE SCIPgetTransformedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1442
SCIP_RETCODE SCIPparseVarName(SCIP *scip, const char *str, SCIP_VAR **var, char **endptr)
Definition: scip_var.c:523
SCIP_RETCODE SCIPchgVarUbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazyub)
Definition: scip_var.c:5086
SCIP_Real SCIPgetVarPseudocostCountCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8749
SCIP_Real SCIPgetVarPseudocostScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:8940
SCIP_Real SCIPadjustedVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real ub)
Definition: scip_var.c:4582
SCIP_Real SCIPgetVarVSIDS(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8976
SCIP_RETCODE SCIPinferBinvarProp(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6031
SCIP_Real SCIPgetVarMultaggrUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6502
SCIP_Real SCIPgetVarPseudocostValCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta)
Definition: scip_var.c:8641
SCIP_RETCODE SCIPaddVarLocks(SCIP *scip, SCIP_VAR *var, int nlocksdown, int nlocksup)
Definition: scip_var.c:4257
SCIP_Longint SCIPgetVarStrongbranchNode(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4100
SCIP_RETCODE SCIPcreateVarBasic(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype)
Definition: scip_var.c:184
SCIP_Real SCIPgetVarAvgCutoffsCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9500
SCIP_Real SCIPgetVarVSIDSCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9008
SCIP_Real SCIPgetVarAvgCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9557
SCIP_Bool SCIPisVarPscostRelerrorReliable(SCIP *scip, SCIP_VAR *var, SCIP_Real threshold, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8877
SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5236
SCIP_Bool SCIPgetVarWasFixedAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2284
type definitions for return codes for SCIP methods
SCIP_Real SCIPgetVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8667
SCIP_RETCODE SCIPchgVarUbNode(SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4827
SCIP_RETCODE SCIPwriteVarsPolynomial(SCIP *scip, FILE *file, SCIP_VAR ***monomialvars, SCIP_Real **monomialexps, SCIP_Real *monomialcoefs, int *monomialnvars, int nmonomials, SCIP_Bool type)
Definition: scip_var.c:394
SCIP_Real SCIPgetVarMultaggrUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6472
SCIP_RETCODE SCIPchgVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4613
SCIP_RETCODE SCIPaddVarVlb(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vlbvar, SCIP_Real vlbcoef, SCIP_Real vlbconstant, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6572
SCIP_Real SCIPadjustedVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real lb)
Definition: scip_var.c:4550
SCIP_RETCODE SCIPaddVarVub(SCIP *scip, SCIP_VAR *var, SCIP_VAR *vubvar, SCIP_Real vubcoef, SCIP_Real vubconstant, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6631
SCIP_RETCODE SCIPchgVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4966
SCIP_RETCODE SCIPgetTransformedVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1483
Definition: struct_tree.h:133
SCIP_RETCODE SCIPparseVarsLinearsum(SCIP *scip, const char *str, SCIP_VAR **vars, SCIP_Real *vals, int *nvars, int varssize, int *requiredsize, char **endptr, SCIP_Bool *success)
Definition: scip_var.c:699
SCIP_RETCODE SCIPgetVarClosestVlb(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvlb, int *closestvlbidx)
Definition: scip_var.c:6520
SCIP_Real SCIPcomputeVarUbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6395
SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6416
SCIP_Bool SCIPisStrongbranchDownFirst(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2645
SCIP_RETCODE SCIPtransformVars(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **transvars)
Definition: scip_var.c:1392
SCIP_Real SCIPgetVarPseudocostScore(SCIP *scip, SCIP_VAR *var, SCIP_Real solval)
Definition: scip_var.c:8902
SCIP_RETCODE SCIPscaleVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real scale)
Definition: scip_var.c:7819
type definitions for LP management
Definition: struct_sol.h:63
SCIP_RETCODE SCIPtryStrongbranchLPSol(SCIP *scip, SCIP_Bool *foundsol, SCIP_Bool *cutoff)
Definition: scip_var.c:4020
SCIP_RETCODE SCIPaddVarLocksType(SCIP *scip, SCIP_VAR *var, SCIP_LOCKTYPE locktype, int nlocksdown, int nlocksup)
Definition: scip_var.c:4199
SCIP_RETCODE SCIPupdateVarPseudocost(SCIP *scip, SCIP_VAR *var, SCIP_Real solvaldelta, SCIP_Real objdelta, SCIP_Real weight)
Definition: scip_var.c:8579
SCIP_Real SCIPgetVarBdAtIndex(SCIP *scip, SCIP_VAR *var, SCIP_BOUNDTYPE boundtype, SCIP_BDCHGIDX *bdchgidx, SCIP_Bool after)
Definition: scip_var.c:2266
SCIP_RETCODE SCIPchgVarType(SCIP *scip, SCIP_VAR *var, SCIP_VARTYPE vartype, SCIP_Bool *infeasible)
Definition: scip_var.c:8072
SCIP_RETCODE SCIPaddClique(SCIP *scip, SCIP_VAR **vars, SCIP_Bool *values, int nvars, SCIP_Bool isequation, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6819
SCIP_RETCODE SCIPmultiaggregateVar(SCIP *scip, SCIP_VAR *var, int naggvars, SCIP_VAR **aggvars, SCIP_Real *scalars, SCIP_Real constant, SCIP_Bool *infeasible, SCIP_Bool *aggregated)
Definition: scip_var.c:8411
SCIP_RETCODE SCIPparseVarsList(SCIP *scip, const char *str, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize, char **endptr, char delimiter, SCIP_Bool *success)
Definition: scip_var.c:600
SCIP_Real SCIPgetVarPseudocostVariance(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
Definition: scip_var.c:8775
SCIP_RETCODE SCIPgetBinvarRepresentatives(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_VAR **repvars, SCIP_Bool *negated)
Definition: scip_var.c:1647
Definition: struct_cons.h:37
SCIP_RETCODE SCIPchgVarLbLazy(SCIP *scip, SCIP_VAR *var, SCIP_Real lazylb)
Definition: scip_var.c:5053
SCIP_Bool SCIPdoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8461
SCIP_RETCODE SCIPinferVarFixCons(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5347
SCIP_RETCODE SCIPinitVarBranchStats(SCIP *scip, SCIP_VAR *var, SCIP_Real downpscost, SCIP_Real uppscost, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff)
Definition: scip_var.c:9336
SCIP_RETCODE SCIPgetProbvarSum(SCIP *scip, SCIP_VAR **var, SCIP_Real *scalar, SCIP_Real *constant)
Definition: scip_var.c:1796
type definitions for SCIP's main datastructure
SCIP_RETCODE SCIPaddVarImplication(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing, SCIP_VAR *implvar, SCIP_BOUNDTYPE impltype, SCIP_Real implbound, SCIP_Bool *infeasible, int *nbdchgs)
Definition: scip_var.c:6691
SCIP_RETCODE SCIPunlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4375
SCIP_RETCODE SCIPchgVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound)
Definition: scip_var.c:4703
SCIP_Real SCIPcalculatePscostConfidenceBound(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun, SCIP_CONFIDENCELEVEL clevel)
Definition: scip_var.c:8797
SCIP_RETCODE SCIPmarkDoNotMultaggrVar(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:8514
SCIP_RETCODE SCIPtightenVarLbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6139
internal miscellaneous methods
SCIP_RETCODE SCIPgetVarStrongbranchInt(SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
Definition: scip_var.c:3627
SCIP_Real SCIPgetVarConflictlengthScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9102
SCIP_Real SCIPgetVarAvgInferenceScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9303
internal methods for global SCIP settings
SCIP main data structure.
SCIP_Bool SCIPsignificantVarPscostDifference(SCIP *scip, SCIP_VAR *varx, SCIP_Real fracx, SCIP_VAR *vary, SCIP_Real fracy, SCIP_BRANCHDIR dir, SCIP_CONFIDENCELEVEL clevel, SCIP_Bool onesided)
Definition: scip_var.c:8828
SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6437
SCIP_RETCODE SCIPinferVarUbProp(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5922
SCIP_RETCODE SCIPgetProbvarLinearSum(SCIP *scip, SCIP_VAR **vars, SCIP_Real *scalars, int *nvars, int varssize, SCIP_Real *constant, int *requiredsize, SCIP_Bool mergemultiples)
Definition: scip_var.c:1740
SCIP_Real SCIPgetVarAvgConflictlength(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9164
SCIP_RETCODE SCIPremoveVarFromGlobalStructures(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:7757
SCIP_RETCODE SCIPgetVarClosestVub(SCIP *scip, SCIP_VAR *var, SCIP_SOL *sol, SCIP_Real *closestvub, int *closestvubidx)
Definition: scip_var.c:6543
type definitions for problem variables
SCIP_Longint SCIPgetVarStrongbranchLPAge(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4134
SCIP_Real SCIPgetVarPseudocostCount(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8721
Definition: struct_prop.h:37
SCIP_Real SCIPgetVarPseudocostCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:8695
SCIP_RETCODE SCIPchgVarObj(SCIP *scip, SCIP_VAR *var, SCIP_Real newobj)
Definition: scip_var.c:4450
internal methods for problem variables
SCIP_RETCODE SCIPstartStrongbranch(SCIP *scip, SCIP_Bool enablepropagation)
Definition: scip_var.c:2676
SCIP_RETCODE SCIPinferVarFixProp(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5739
SCIP_RETCODE SCIPgetVarStrongbranchWithPropagation(SCIP *scip, SCIP_VAR *var, SCIP_Real solval, SCIP_Real lpobjval, int itlim, int maxproprounds, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Longint *ndomredsdown, SCIP_Longint *ndomredsup, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror, SCIP_Real *newlbs, SCIP_Real *newubs)
Definition: scip_var.c:3317
SCIP_RETCODE SCIPsetRelaxSolVals(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals, SCIP_Bool includeslp)
Definition: scip_var.c:2443
SCIP_RETCODE SCIPcalcCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7154
methods for debugging
SCIP_RETCODE SCIPwriteCliqueGraph(SCIP *scip, const char *fname, SCIP_Bool writenodeweights)
Definition: scip_var.c:7608
SCIP_RETCODE SCIPsetRelaxSolValsSol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool includeslp)
Definition: scip_var.c:2483
SCIP_Real SCIPcomputeVarLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6374
SCIP_Real SCIPgetVarAvgInferenceCutoffScoreCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_Real cutoffweight)
Definition: scip_var.c:9633
SCIP_RETCODE SCIPgetVarsStrongbranchesInt(SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
Definition: scip_var.c:3825
SCIP_RETCODE SCIPcreateVar(SCIP *scip, SCIP_VAR **var, const char *name, SCIP_Real lb, SCIP_Real ub, SCIP_Real obj, SCIP_VARTYPE vartype, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_DECL_VARCOPY((*varcopy)), SCIP_VARDATA *vardata)
Definition: scip_var.c:104
type definitions for branch and bound tree
SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
Definition: scip_var.c:8168
SCIP_RETCODE SCIPchgVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7878
SCIP_RETCODE SCIPlockVarCons(SCIP *scip, SCIP_VAR *var, SCIP_CONS *cons, SCIP_Bool lockdown, SCIP_Bool lockup)
Definition: scip_var.c:4290
datastructures for problem statistics
SCIP_RETCODE SCIPinferVarLbCons(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5416
type definitions for storing primal CIP solutions
SCIP_Real SCIPgetVarMultaggrLbLocal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6487
SCIP_RETCODE SCIPwriteVarsLinearsum(SCIP *scip, FILE *file, SCIP_VAR **vars, SCIP_Real *vals, int nvars, SCIP_Bool type)
Definition: scip_var.c:333
type definitions for propagators
SCIP_Real SCIPgetVarAvgConflictlengthCurrentRun(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR dir)
Definition: scip_var.c:9190
SCIP_RETCODE SCIPaddVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real addfactor)
Definition: scip_var.c:7847
SCIP_LPSOLSTAT SCIPgetLastStrongbranchLPSolStat(SCIP *scip, SCIP_BRANCHDIR branchdir)
Definition: scip_var.c:3929
SCIP_RETCODE SCIPwriteVarsList(SCIP *scip, FILE *file, SCIP_VAR **vars, int nvars, SCIP_Bool type, char delimiter)
Definition: scip_var.c:282
SCIP_RETCODE SCIPsetVarStrongbranchData(SCIP *scip, SCIP_VAR *var, SCIP_Real lpobjval, SCIP_Real primsol, SCIP_Real down, SCIP_Real up, SCIP_Bool downvalid, SCIP_Bool upvalid, SCIP_Longint iter, int itlim)
Definition: scip_var.c:3985
SCIP_RETCODE SCIPsetRelaxSolVal(SCIP *scip, SCIP_VAR *var, SCIP_Real val)
Definition: scip_var.c:2412
SCIP_Real SCIPgetVarImplRedcost(SCIP *scip, SCIP_VAR *var, SCIP_Bool varfixing)
Definition: scip_var.c:1911
void SCIPfreeParseVarsPolynomialData(SCIP *scip, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int nmonomials)
Definition: scip_var.c:1161
SCIP_RETCODE SCIPinferVarUbCons(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_CONS *infercons, int inferinfo, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5529
SCIP_RETCODE SCIPgetVarsStrongbranchesFrac(SCIP *scip, SCIP_VAR **vars, int nvars, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
Definition: scip_var.c:3714
internal methods for main solving loop and node processing
SCIP_RETCODE SCIPgetVarSols(SCIP *scip, int nvars, SCIP_VAR **vars, SCIP_Real *vals)
Definition: scip_var.c:2329
SCIP_RETCODE SCIPaddVarBranchPriority(SCIP *scip, SCIP_VAR *var, int addpriority)
Definition: scip_var.c:7952
SCIP_RETCODE SCIPcalcNegatedCliquePartition(SCIP *const scip, SCIP_VAR **const vars, int const nvars, int *const cliquepartition, int *const ncliques)
Definition: scip_var.c:7373
SCIP_RETCODE SCIPaggregateVars(SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated)
Definition: scip_var.c:8277
result codes for SCIP callback methods
type definitions for branching and inference history
SCIP_RETCODE SCIPchgVarBranchDirection(SCIP *scip, SCIP_VAR *var, SCIP_BRANCHDIR branchdirection)
Definition: scip_var.c:7983
SCIP_Bool SCIPhaveVarsCommonClique(SCIP *scip, SCIP_VAR *var1, SCIP_Bool value1, SCIP_VAR *var2, SCIP_Bool value2, SCIP_Bool regardimplics)
Definition: scip_var.c:7557
Definition: struct_implics.h:66
SCIP_RETCODE SCIPtransformVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **transvar)
Definition: scip_var.c:1352
internal methods for constraints and constraint handlers
SCIP_RETCODE SCIPparseVarsPolynomial(SCIP *scip, const char *str, SCIP_VAR ****monomialvars, SCIP_Real ***monomialexps, SCIP_Real **monomialcoefs, int **monomialnvars, int *nmonomials, char **endptr, SCIP_Bool *success)
Definition: scip_var.c:809
SCIP_Real SCIPgetVarConflictScoreCurrentRun(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9071
SCIP_Real SCIPgetVarMultaggrLbGlobal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:6457
SCIP_RETCODE SCIPtightenVarUbGlobal(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:6259
SCIP_RETCODE SCIPinitVarValueBranchStats(SCIP *scip, SCIP_VAR *var, SCIP_Real value, SCIP_Real downvsids, SCIP_Real upvsids, SCIP_Real downconflen, SCIP_Real upconflen, SCIP_Real downinfer, SCIP_Real upinfer, SCIP_Real downcutoff, SCIP_Real upcutoff)
Definition: scip_var.c:9407
SCIP_RETCODE SCIPgetVarStrongbranchFrac(SCIP *scip, SCIP_VAR *var, int itlim, SCIP_Real *down, SCIP_Real *up, SCIP_Bool *downvalid, SCIP_Bool *upvalid, SCIP_Bool *downinf, SCIP_Bool *upinf, SCIP_Bool *downconflict, SCIP_Bool *upconflict, SCIP_Bool *lperror)
Definition: scip_var.c:2909
common defines and data types used in all packages of SCIP
SCIP_RETCODE SCIPupdateVarBranchPriority(SCIP *scip, SCIP_VAR *var, int branchpriority)
Definition: scip_var.c:7919
Definition: objbenders.h:33
SCIP_RETCODE SCIPcleanupCliques(SCIP *scip, SCIP_Bool *infeasible)
Definition: scip_var.c:7430
SCIP_Real SCIPgetVarFarkasCoef(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:1956
SCIP_RETCODE SCIPwriteVarName(SCIP *scip, FILE *file, SCIP_VAR *var, SCIP_Bool type)
Definition: scip_var.c:220
int SCIPgetVarNStrongbranchs(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:4166
SCIP_RETCODE SCIPgetActiveVars(SCIP *scip, SCIP_VAR **vars, int *nvars, int varssize, int *requiredsize)
Definition: scip_var.c:1832
SCIP_Real SCIPgetVarAvgInferenceScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9272
SCIP_RETCODE SCIPinferBinvarCons(SCIP *scip, SCIP_VAR *var, SCIP_Bool fixedval, SCIP_CONS *infercons, int inferinfo, SCIP_Bool *infeasible, SCIP_Bool *tightened)
Definition: scip_var.c:5636
SCIP_RETCODE SCIPparseVar(SCIP *scip, SCIP_VAR **var, const char *str, SCIP_Bool initial, SCIP_Bool removable, SCIP_DECL_VARCOPY((*varcopy)), SCIP_DECL_VARDELORIG((*vardelorig)), SCIP_DECL_VARTRANS((*vartrans)), SCIP_DECL_VARDELTRANS((*vardeltrans)), SCIP_VARDATA *vardata, char **endptr, SCIP_Bool *success)
Definition: scip_var.c:464
SCIP_RETCODE SCIPchgVarBranchFactor(SCIP *scip, SCIP_VAR *var, SCIP_Real branchfactor)
Definition: scip_var.c:7791
SCIP_RETCODE SCIPprintVar(SCIP *scip, SCIP_VAR *var, FILE *file)
Definition: scip_var.c:9684
SCIP_RETCODE SCIPgetNegatedVar(SCIP *scip, SCIP_VAR *var, SCIP_VAR **negvar)
Definition: scip_var.c:1530
type definitions for constraints and constraint handlers
SCIP_Real SCIPgetVarConflictScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9040
SCIP_Real SCIPgetRelaxSolVal(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:2593
SCIP_RETCODE SCIPchgVarName(SCIP *scip, SCIP_VAR *var, const char *name)
Definition: scip_var.c:1302
SCIP_Real SCIPgetVarAvgCutoffScore(SCIP *scip, SCIP_VAR *var)
Definition: scip_var.c:9526