diff --git a/src/pyscipopt/__init__.py b/src/pyscipopt/__init__.py index 506ecd2a2..4a5942a96 100644 --- a/src/pyscipopt/__init__.py +++ b/src/pyscipopt/__init__.py @@ -7,38 +7,38 @@ os.add_dll_directory(os.path.join(os.getenv('SCIPOPTDIR').strip('"'), 'bin')) # export user-relevant objects: -from pyscipopt.Multidict import multidict -from pyscipopt.scip import Model -from pyscipopt.scip import Variable -from pyscipopt.scip import MatrixVariable -from pyscipopt.scip import Constraint -from pyscipopt.scip import MatrixConstraint -from pyscipopt.scip import Benders -from pyscipopt.scip import Benderscut -from pyscipopt.scip import Branchrule -from pyscipopt.scip import Nodesel -from pyscipopt.scip import Conshdlr -from pyscipopt.scip import Eventhdlr -from pyscipopt.scip import Heur -from pyscipopt.scip import Presol -from pyscipopt.scip import Pricer -from pyscipopt.scip import Prop -from pyscipopt.scip import Reader -from pyscipopt.scip import Sepa -from pyscipopt.scip import LP +from pyscipopt.Multidict import multidict as multidict +from pyscipopt.scip import Model as Model +from pyscipopt.scip import Variable as Variable +from pyscipopt.scip import MatrixVariable as MatrixVariable +from pyscipopt.scip import Constraint as Constraint +from pyscipopt.scip import MatrixConstraint as MatrixConstraint +from pyscipopt.scip import Benders as Benders +from pyscipopt.scip import Benderscut as Benderscut +from pyscipopt.scip import Branchrule as Branchrule +from pyscipopt.scip import Nodesel as Nodesel +from pyscipopt.scip import Conshdlr as Conshdlr +from pyscipopt.scip import Eventhdlr as Eventhdlr +from pyscipopt.scip import Heur as Heur +from pyscipopt.scip import Presol as Presol +from pyscipopt.scip import Pricer as Pricer +from pyscipopt.scip import Prop as Prop +from pyscipopt.scip import Reader as Reader +from pyscipopt.scip import Sepa as Sepa +from pyscipopt.scip import LP as LP from pyscipopt.scip import PY_SCIP_LPPARAM as SCIP_LPPARAM -from pyscipopt.scip import readStatistics -from pyscipopt.scip import Expr -from pyscipopt.scip import MatrixExpr -from pyscipopt.scip import MatrixExprCons -from pyscipopt.scip import ExprCons -from pyscipopt.scip import quicksum -from pyscipopt.scip import quickprod -from pyscipopt.scip import exp -from pyscipopt.scip import log -from pyscipopt.scip import sqrt -from pyscipopt.scip import sin -from pyscipopt.scip import cos +from pyscipopt.scip import readStatistics as readStatistics +from pyscipopt.scip import Expr as Expr +from pyscipopt.scip import MatrixExpr as MatrixExpr +from pyscipopt.scip import MatrixExprCons as MatrixExprCons +from pyscipopt.scip import ExprCons as ExprCons +from pyscipopt.scip import quicksum as quicksum +from pyscipopt.scip import quickprod as quickprod +from pyscipopt.scip import exp as exp +from pyscipopt.scip import log as log +from pyscipopt.scip import sqrt as sqrt +from pyscipopt.scip import sin as sin +from pyscipopt.scip import cos as cos from pyscipopt.scip import PY_SCIP_RESULT as SCIP_RESULT from pyscipopt.scip import PY_SCIP_PARAMSETTING as SCIP_PARAMSETTING from pyscipopt.scip import PY_SCIP_PARAMEMPHASIS as SCIP_PARAMEMPHASIS diff --git a/src/pyscipopt/_version.py b/src/pyscipopt/_version.py index 714c807ce..6b20b2b7e 100644 --- a/src/pyscipopt/_version.py +++ b/src/pyscipopt/_version.py @@ -1 +1 @@ -__version__ = '5.5.0' +__version__: str = '5.5.0' diff --git a/src/pyscipopt/py.typed b/src/pyscipopt/py.typed new file mode 100644 index 000000000..e69de29bb diff --git a/src/pyscipopt/recipes/infeasibilities.py b/src/pyscipopt/recipes/infeasibilities.py index fde70868c..eed31bad0 100644 --- a/src/pyscipopt/recipes/infeasibilities.py +++ b/src/pyscipopt/recipes/infeasibilities.py @@ -1,7 +1,7 @@ from pyscipopt import Model, quicksum -def get_infeasible_constraints(orig_model: Model, verbose=False): +def get_infeasible_constraints(orig_model: Model, verbose: bool = False): """ Given a model, adds slack variables to all the constraints and minimizes a binary variable that indicates if they're positive. Positive slack variables correspond to infeasible constraints. diff --git a/src/pyscipopt/recipes/nonlinear.py b/src/pyscipopt/recipes/nonlinear.py index 41c53b8af..c144a91ab 100644 --- a/src/pyscipopt/recipes/nonlinear.py +++ b/src/pyscipopt/recipes/nonlinear.py @@ -1,6 +1,6 @@ from pyscipopt import Model -def set_nonlinear_objective(model: Model, expr, sense="minimize"): +def set_nonlinear_objective(model: Model, expr, sense: str = "minimize"): """ Takes a nonlinear expression and performs an epigraph reformulation. """ diff --git a/src/pyscipopt/scip.pyi b/src/pyscipopt/scip.pyi new file mode 100644 index 000000000..61ecf3073 --- /dev/null +++ b/src/pyscipopt/scip.pyi @@ -0,0 +1,1332 @@ +from dataclasses import dataclass +import numpy +from _typeshed import Incomplete +from typing import ClassVar + +CONST: Term +EventNames: dict +MAJOR: int +MINOR: int +Operator: Op +PATCH: int +PY_SCIP_CALL: Incomplete +StageNames: dict +__test__: dict +buildGenExprObj: Incomplete +cos: Incomplete +exp: Incomplete +expr_to_array: Incomplete +expr_to_nodes: Incomplete +is_memory_freed: Incomplete +log: Incomplete +print_memory_in_use: Incomplete +quickprod: Incomplete +quicksum: Incomplete +readStatistics: Incomplete +sin: Incomplete +sqrt: Incomplete +str_conversion: Incomplete +value_to_array: Incomplete + +class Benders: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def benderscreatesub(self, *args, **kwargs): ... + def bendersexit(self, *args, **kwargs): ... + def bendersexitpre(self, *args, **kwargs): ... + def bendersexitsol(self, *args, **kwargs): ... + def bendersfree(self, *args, **kwargs): ... + def bendersfreesub(self, *args, **kwargs): ... + def bendersgetvar(self, *args, **kwargs): ... + def bendersinit(self, *args, **kwargs): ... + def bendersinitpre(self, *args, **kwargs): ... + def bendersinitsol(self, *args, **kwargs): ... + def benderspostsolve(self, *args, **kwargs): ... + def benderspresubsolve(self, *args, **kwargs): ... + def benderssolvesub(self, *args, **kwargs): ... + def benderssolvesubconvex(self, *args, **kwargs): ... + +class Benderscut: + benders: Incomplete + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def benderscutexec(self, *args, **kwargs): ... + def benderscutexit(self, *args, **kwargs): ... + def benderscutexitsol(self, *args, **kwargs): ... + def benderscutfree(self, *args, **kwargs): ... + def benderscutinit(self, *args, **kwargs): ... + def benderscutinitsol(self, *args, **kwargs): ... + +class BoundChange: + def __init__(self, *args, **kwargs) -> None: ... + def getBoundchgtype(self, *args, **kwargs): ... + def getBoundtype(self, *args, **kwargs): ... + def getNewBound(self, *args, **kwargs): ... + def getVar(self, *args, **kwargs): ... + def isRedundant(self, *args, **kwargs): ... + +class Branchrule: + model: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def branchexecext(self, *args, **kwargs): ... + def branchexeclp(self, *args, **kwargs): ... + def branchexecps(self, *args, **kwargs): ... + def branchexit(self, *args, **kwargs): ... + def branchexitsol(self, *args, **kwargs): ... + def branchfree(self, *args, **kwargs): ... + def branchinit(self, *args, **kwargs): ... + def branchinitsol(self, *args, **kwargs): ... + +class Column: + data: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getAge(self, *args, **kwargs): ... + def getBasisStatus(self, *args, **kwargs): ... + def getLPPos(self, *args, **kwargs): ... + def getLb(self, *args, **kwargs): ... + def getObjCoeff(self, *args, **kwargs): ... + def getPrimsol(self, *args, **kwargs): ... + def getUb(self, *args, **kwargs): ... + def getVar(self, *args, **kwargs): ... + def isIntegral(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class Conshdlr: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def consactive(self, *args, **kwargs): ... + def conscheck(self, *args, **kwargs): ... + def conscopy(self, *args, **kwargs): ... + def consdeactive(self, *args, **kwargs): ... + def consdelete(self, *args, **kwargs): ... + def consdelvars(self, *args, **kwargs): ... + def consdisable(self, *args, **kwargs): ... + def consenable(self, *args, **kwargs): ... + def consenfolp(self, *args, **kwargs): ... + def consenfops(self, *args, **kwargs): ... + def consenforelax(self, *args, **kwargs): ... + def consexit(self, *args, **kwargs): ... + def consexitpre(self, *args, **kwargs): ... + def consexitsol(self, *args, **kwargs): ... + def consfree(self, *args, **kwargs): ... + def consgetdivebdchgs(self, *args, **kwargs): ... + def consgetnvars(self, *args, **kwargs): ... + def consgetpermsymgraph(self, *args, **kwargs): ... + def consgetsignedpermsymgraph(self, *args, **kwargs): ... + def consgetvars(self, *args, **kwargs): ... + def consinit(self, *args, **kwargs): ... + def consinitlp(self, *args, **kwargs): ... + def consinitpre(self, *args, **kwargs): ... + def consinitsol(self, *args, **kwargs): ... + def conslock(self, *args, **kwargs): ... + def consparse(self, *args, **kwargs): ... + def conspresol(self, *args, **kwargs): ... + def consprint(self, *args, **kwargs): ... + def consprop(self, *args, **kwargs): ... + def consresprop(self, *args, **kwargs): ... + def conssepalp(self, *args, **kwargs): ... + def conssepasol(self, *args, **kwargs): ... + def constrans(self, *args, **kwargs): ... + +class Constant(GenExpr): + number: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + +class Constraint: + data: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getConshdlrName(self, *args, **kwargs): ... + def isActive(self, *args, **kwargs): ... + def isChecked(self, *args, **kwargs): ... + def isDynamic(self, *args, **kwargs): ... + def isEnforced(self, *args, **kwargs): ... + def isInitial(self, *args, **kwargs): ... + def isKnapsack(self, *args, **kwargs): ... + def isLinear(self, *args, **kwargs): ... + def isLinearType(self, *args, **kwargs): ... + def isLocal(self, *args, **kwargs): ... + def isModifiable(self, *args, **kwargs): ... + def isNonlinear(self, *args, **kwargs): ... + def isOriginal(self, *args, **kwargs): ... + def isPropagated(self, *args, **kwargs): ... + def isRemovable(self, *args, **kwargs): ... + def isSeparated(self, *args, **kwargs): ... + def isStickingAtNode(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class Cutsel: + model: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def cutselexit(self, *args, **kwargs): ... + def cutselexitsol(self, *args, **kwargs): ... + def cutselfree(self, *args, **kwargs): ... + def cutselinit(self, *args, **kwargs): ... + def cutselinitsol(self, *args, **kwargs): ... + def cutselselect(self, *args, **kwargs): ... + +class DomainChanges: + def __init__(self, *args, **kwargs) -> None: ... + def getBoundchgs(self, *args, **kwargs): ... + +class Event: + data: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getName(self, *args, **kwargs): ... + def getNewBound(self, *args, **kwargs): ... + def getNode(self, *args, **kwargs): ... + def getOldBound(self, *args, **kwargs): ... + def getRow(self, *args, **kwargs): ... + def getType(self, *args, **kwargs): ... + def getVar(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class Eventhdlr: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def eventcopy(self, *args, **kwargs): ... + def eventdelete(self, *args, **kwargs): ... + def eventexec(self, *args, **kwargs): ... + def eventexit(self, *args, **kwargs): ... + def eventexitsol(self, *args, **kwargs): ... + def eventfree(self, *args, **kwargs): ... + def eventinit(self, *args, **kwargs): ... + def eventinitsol(self, *args, **kwargs): ... + +class Expr: + terms: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def degree(self, *args, **kwargs): ... + def normalize(self, *args, **kwargs): ... + def __abs__(self): ... + def __add__(self, other): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __getitem__(self, index): ... + def __gt__(self, other: object) -> bool: ... + def __iadd__(self, other): ... + def __iter__(self): ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __mul__(self, other): ... + def __ne__(self, other: object) -> bool: ... + def __neg__(self): ... + def __next__(self): ... + def __pow__(self, other): ... + def __radd__(self, other): ... + def __reduce_cython__(self, *args, **kwargs): ... + def __rmul__(self, other): ... + def __rpow__(self, other): ... + def __rsub__(self, other): ... + def __rtruediv__(self, other): ... + def __setstate_cython__(self, *args, **kwargs): ... + def __sub__(self, other): ... + def __truediv__(self, other): ... + +class ExprCons: + expr: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def normalize(self, *args, **kwargs): ... + def __bool__(self) -> bool: ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class GenExpr: + children: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def degree(self, *args, **kwargs): ... + def getOp(self, *args, **kwargs): ... + def __abs__(self): ... + def __add__(self, other): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __mul__(self, other): ... + def __ne__(self, other: object) -> bool: ... + def __neg__(self): ... + def __pow__(self, other): ... + def __radd__(self, other): ... + def __reduce_cython__(self, *args, **kwargs): ... + def __rmul__(self, other): ... + def __rpow__(self, other): ... + def __rsub__(self, other): ... + def __rtruediv__(self, other): ... + def __setstate_cython__(self, *args, **kwargs): ... + def __sub__(self, other): ... + def __truediv__(self, other): ... + +class Heur: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def heurexec(self, *args, **kwargs): ... + def heurexit(self, *args, **kwargs): ... + def heurexitsol(self, *args, **kwargs): ... + def heurfree(self, *args, **kwargs): ... + def heurinit(self, *args, **kwargs): ... + def heurinitsol(self, *args, **kwargs): ... + +class LP: + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def addCol(self, *args, **kwargs): ... + def addCols(self, *args, **kwargs): ... + def addRow(self, *args, **kwargs): ... + def addRows(self, *args, **kwargs): ... + def chgBound(self, *args, **kwargs): ... + def chgCoef(self, *args, **kwargs): ... + def chgObj(self, *args, **kwargs): ... + def chgSide(self, *args, **kwargs): ... + def clear(self, *args, **kwargs): ... + def delCols(self, *args, **kwargs): ... + def delRows(self, *args, **kwargs): ... + def getActivity(self, *args, **kwargs): ... + def getBasisInds(self, *args, **kwargs): ... + def getBounds(self, *args, **kwargs): ... + def getDual(self, *args, **kwargs): ... + def getDualRay(self, *args, **kwargs): ... + def getIntParam(self, *args, **kwargs): ... + def getNIterations(self, *args, **kwargs): ... + def getObjVal(self, *args, **kwargs): ... + def getPrimal(self, *args, **kwargs): ... + def getPrimalRay(self, *args, **kwargs): ... + def getRealParam(self, *args, **kwargs): ... + def getRedcost(self, *args, **kwargs): ... + def getSides(self, *args, **kwargs): ... + def infinity(self, *args, **kwargs): ... + def isDualFeasible(self, *args, **kwargs): ... + def isInfinity(self, *args, **kwargs): ... + def isOptimal(self, *args, **kwargs): ... + def isPrimalFeasible(self, *args, **kwargs): ... + def ncols(self, *args, **kwargs): ... + def nrows(self, *args, **kwargs): ... + def readLP(self, *args, **kwargs): ... + def setIntParam(self, *args, **kwargs): ... + def setRealParam(self, *args, **kwargs): ... + def solve(self, *args, **kwargs): ... + def writeLP(self, *args, **kwargs): ... + +class MatrixConstraint(numpy.ndarray): + def getConshdlrName(self, *args, **kwargs): ... + def isActive(self, *args, **kwargs): ... + def isChecked(self, *args, **kwargs): ... + def isDynamic(self, *args, **kwargs): ... + def isEnforced(self, *args, **kwargs): ... + def isInitial(self, *args, **kwargs): ... + def isLinear(self, *args, **kwargs): ... + def isLocal(self, *args, **kwargs): ... + def isModifiable(self, *args, **kwargs): ... + def isNonlinear(self, *args, **kwargs): ... + def isPropagated(self, *args, **kwargs): ... + def isRemovable(self, *args, **kwargs): ... + def isSeparated(self, *args, **kwargs): ... + def isStickingAtNode(self, *args, **kwargs): ... + +class MatrixExpr(numpy.ndarray): + def sum(self, *args, **kwargs): ... + def __add__(self, other): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __iadd__(self, other): ... + def __le__(self, other: object) -> bool: ... + def __mul__(self, other): ... + def __pow__(self, other): ... + def __radd__(self, other): ... + def __rmul__(self, other): ... + def __rsub__(self, other): ... + def __rtruediv__(self, other): ... + def __sub__(self, other): ... + def __truediv__(self, other): ... + +class MatrixExprCons(numpy.ndarray): + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __le__(self, other: object) -> bool: ... + +class MatrixGenExpr(MatrixExpr): ... + +class MatrixVariable(MatrixExpr): + def getAvgSol(self, *args, **kwargs): ... + def getCol(self, *args, **kwargs): ... + def getIndex(self, *args, **kwargs): ... + def getLPSol(self, *args, **kwargs): ... + def getLbGlobal(self, *args, **kwargs): ... + def getLbLocal(self, *args, **kwargs): ... + def getLbOriginal(self, *args, **kwargs): ... + def getObj(self, *args, **kwargs): ... + def getUbGlobal(self, *args, **kwargs): ... + def getUbLocal(self, *args, **kwargs): ... + def getUbOriginal(self, *args, **kwargs): ... + def isInLP(self, *args, **kwargs): ... + def varMayRound(self, *args, **kwargs): ... + def vtype(self, *args, **kwargs): ... + +class Model: + data: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def activateBenders(self, *args, **kwargs): ... + def addBendersSubproblem(self, *args, **kwargs): ... + def addCoefKnapsack(self, *args, **kwargs): ... + def addCoefLinear(self, *args, **kwargs): ... + def addCons(self, *args, **kwargs): ... + def addConsAnd(self, *args, **kwargs): ... + def addConsCardinality(self, *args, **kwargs): ... + def addConsCoeff(self, *args, **kwargs): ... + def addConsDisjunction(self, *args, **kwargs): ... + def addConsElemDisjunction(self, *args, **kwargs): ... + def addConsIndicator(self, *args, **kwargs): ... + def addConsKnapsack(self, *args, **kwargs): ... + def addConsLocal(self, *args, **kwargs): ... + def addConsNode(self, *args, **kwargs): ... + def addConsOr(self, *args, **kwargs): ... + def addConsSOS1(self, *args, **kwargs): ... + def addConsSOS2(self, *args, **kwargs): ... + def addConsXor(self, *args, **kwargs): ... + def addConss(self, *args, **kwargs): ... + def addCut(self, *args, **kwargs): ... + def addExprNonlinear(self, *args, **kwargs): ... + def addMatrixCons(self, *args, **kwargs): ... + def addMatrixConsIndicator(self, *args, **kwargs): ... + def addMatrixVar(self, *args, **kwargs): ... + def addObjoffset(self, *args, **kwargs): ... + def addPoolCut(self, *args, **kwargs): ... + def addPyCons(self, *args, **kwargs): ... + def addRowDive(self, *args, **kwargs): ... + def addSol(self, *args, **kwargs): ... + def addVar(self, *args, **kwargs): ... + def addVarLocks(self, *args, **kwargs): ... + def addVarLocksType(self, *args, **kwargs): ... + def addVarSOS1(self, *args, **kwargs): ... + def addVarSOS2(self, *args, **kwargs): ... + def addVarToRow(self, *args, **kwargs): ... + def allColsInLP(self, *args, **kwargs): ... + def appendVarSOS1(self, *args, **kwargs): ... + def appendVarSOS2(self, *args, **kwargs): ... + def applyCutsProbing(self, *args, **kwargs): ... + def attachEventHandlerCallback(self, *args, **kwargs): ... + def backtrackProbing(self, *args, **kwargs): ... + def branchVar(self, *args, **kwargs): ... + def branchVarVal(self, *args, **kwargs): ... + def cacheRowExtensions(self, *args, **kwargs): ... + def calcChildEstimate(self, *args, **kwargs): ... + def calcNodeselPriority(self, *args, **kwargs): ... + def catchEvent(self, *args, **kwargs): ... + def catchRowEvent(self, *args, **kwargs): ... + def catchVarEvent(self, *args, **kwargs): ... + def checkBendersSubproblemOptimality(self, *args, **kwargs): ... + def checkQuadraticNonlinear(self, *args, **kwargs): ... + def checkSol(self, *args, **kwargs): ... + def chgAndConsCheckFlagWhenUpgr(self, *args, **kwargs): ... + def chgAndConsRemovableFlagWhenUpgr(self, *args, **kwargs): ... + def chgCapacityKnapsack(self, *args, **kwargs): ... + def chgCoefLinear(self, *args, **kwargs): ... + def chgLhs(self, *args, **kwargs): ... + def chgReoptObjective(self, *args, **kwargs): ... + def chgRhs(self, *args, **kwargs): ... + def chgRowLhsDive(self, *args, **kwargs): ... + def chgRowRhsDive(self, *args, **kwargs): ... + def chgVarBranchPriority(self, *args, **kwargs): ... + def chgVarLb(self, *args, **kwargs): ... + def chgVarLbDive(self, *args, **kwargs): ... + def chgVarLbGlobal(self, *args, **kwargs): ... + def chgVarLbNode(self, *args, **kwargs): ... + def chgVarLbProbing(self, *args, **kwargs): ... + def chgVarObjDive(self, *args, **kwargs): ... + def chgVarObjProbing(self, *args, **kwargs): ... + def chgVarType(self, *args, **kwargs): ... + def chgVarUb(self, *args, **kwargs): ... + def chgVarUbDive(self, *args, **kwargs): ... + def chgVarUbGlobal(self, *args, **kwargs): ... + def chgVarUbNode(self, *args, **kwargs): ... + def chgVarUbProbing(self, *args, **kwargs): ... + def computeBestSolSubproblems(self, *args, **kwargs): ... + def constructLP(self, *args, **kwargs): ... + def copyLargeNeighborhoodSearch(self, *args, **kwargs): ... + def count(self, *args, **kwargs): ... + def createChild(self, *args, **kwargs): ... + def createCons(self, *args, **kwargs): ... + def createConsFromExpr(self, *args, **kwargs): ... + def createEmptyRowSepa(self, *args, **kwargs): ... + def createEmptyRowUnspec(self, *args, **kwargs): ... + def createOrigSol(self, *args, **kwargs): ... + def createPartialSol(self, *args, **kwargs): ... + def createProbBasic(self, *args, **kwargs): ... + def createSol(self, *args, **kwargs): ... + def cutoffNode(self, *args, **kwargs): ... + def deactivatePricer(self, *args, **kwargs): ... + def delCoefLinear(self, *args, **kwargs): ... + def delCons(self, *args, **kwargs): ... + def delConsLocal(self, *args, **kwargs): ... + def delVar(self, *args, **kwargs): ... + def disableDebugSol(self, *args, **kwargs): ... + def disablePropagation(self, *args, **kwargs): ... + def dropEvent(self, *args, **kwargs): ... + def dropRowEvent(self, *args, **kwargs): ... + def dropVarEvent(self, *args, **kwargs): ... + def enableDebugSol(self, *args, **kwargs): ... + def enableReoptimization(self, *args, **kwargs): ... + def endDive(self, *args, **kwargs): ... + def endProbing(self, *args, **kwargs): ... + def endStrongbranch(self, *args, **kwargs): ... + def epsilon(self, *args, **kwargs): ... + def feasCeil(self, *args, **kwargs): ... + def feasFloor(self, *args, **kwargs): ... + def feasFrac(self, *args, **kwargs): ... + def feasRound(self, *args, **kwargs): ... + def feastol(self, *args, **kwargs): ... + def fixVar(self, *args, **kwargs): ... + def fixVarProbing(self, *args, **kwargs): ... + def flushRowExtensions(self, *args, **kwargs): ... + def frac(self, *args, **kwargs): ... + def freeBendersSubproblems(self, *args, **kwargs): ... + def freeProb(self, *args, **kwargs): ... + def freeReoptSolve(self, *args, **kwargs): ... + def freeSol(self, *args, **kwargs): ... + def freeTransform(self, *args, **kwargs): ... + @staticmethod + def from_ptr(*args, **kwargs): ... + def getActivity(self, *args, **kwargs): ... + def getBendersAuxiliaryVar(self, *args, **kwargs): ... + def getBendersSubproblem(self, *args, **kwargs): ... + def getBendersVar(self, *args, **kwargs): ... + def getBestChild(self, *args, **kwargs): ... + def getBestLeaf(self, *args, **kwargs): ... + def getBestNode(self, *args, **kwargs): ... + def getBestSibling(self, *args, **kwargs): ... + def getBestSol(self, *args, **kwargs): ... + def getBestboundNode(self, *args, **kwargs): ... + def getBipartiteGraphRepresentation(self, *args, **kwargs): ... + def getBranchScoreMultiple(self, *args, **kwargs): ... + def getCapacityKnapsack(self, *args, **kwargs): ... + def getChildren(self, *args, **kwargs): ... + def getColRedCost(self, *args, **kwargs): ... + def getCondition(self, *args, **kwargs): ... + def getConsNVars(self, *args, **kwargs): ... + def getConsVals(self, *args, **kwargs): ... + def getConsVars(self, *args, **kwargs): ... + def getConss(self, *args, **kwargs): ... + def getCurrentNode(self, *args, **kwargs): ... + def getCutEfficacy(self, *args, **kwargs): ... + def getCutLPSolCutoffDistance(self, *args, **kwargs): ... + def getDepth(self, *args, **kwargs): ... + def getDualMultiplier(self, *args, **kwargs): ... + def getDualSolVal(self, *args, **kwargs): ... + def getDualbound(self, *args, **kwargs): ... + def getDualboundRoot(self, *args, **kwargs): ... + def getDualfarkasKnapsack(self, *args, **kwargs): ... + def getDualfarkasLinear(self, *args, **kwargs): ... + def getDualsolKnapsack(self, *args, **kwargs): ... + def getDualsolLinear(self, *args, **kwargs): ... + def getGap(self, *args, **kwargs): ... + def getHeurTiming(self, *args, **kwargs): ... + def getLPBInvARow(self, *args, **kwargs): ... + def getLPBInvRow(self, *args, **kwargs): ... + def getLPBasisInd(self, *args, **kwargs): ... + def getLPBranchCands(self, *args, **kwargs): ... + def getLPColsData(self, *args, **kwargs): ... + def getLPObjVal(self, *args, **kwargs): ... + def getLPRowsData(self, *args, **kwargs): ... + def getLPSolstat(self, *args, **kwargs): ... + def getLeaves(self, *args, **kwargs): ... + def getLhs(self, *args, **kwargs): ... + def getLinearConsIndicator(self, *args, **kwargs): ... + def getLocalEstimate(self, *args, **kwargs): ... + def getMajorVersion(self, *args, **kwargs): ... + def getMinorVersion(self, *args, **kwargs): ... + def getNBestSolsFound(self, *args, **kwargs): ... + def getNBinVars(self, *args, **kwargs): ... + def getNChildren(self, *args, **kwargs): ... + def getNConss(self, *args, **kwargs): ... + def getNContVars(self, *args, **kwargs): ... + def getNCountedSols(self, *args, **kwargs): ... + def getNCuts(self, *args, **kwargs): ... + def getNCutsApplied(self, *args, **kwargs): ... + def getNFeasibleLeaves(self, *args, **kwargs): ... + def getNImplVars(self, *args, **kwargs): ... + def getNInfeasibleLeaves(self, *args, **kwargs): ... + def getNIntVars(self, *args, **kwargs): ... + def getNLPBranchCands(self, *args, **kwargs): ... + def getNLPCols(self, *args, **kwargs): ... + def getNLPIterations(self, *args, **kwargs): ... + def getNLPRows(self, *args, **kwargs): ... + def getNLPs(self, *args, **kwargs): ... + def getNLeaves(self, *args, **kwargs): ... + def getNLimSolsFound(self, *args, **kwargs): ... + def getNNlRows(self, *args, **kwargs): ... + def getNNodes(self, *args, **kwargs): ... + def getNReaders(self, *args, **kwargs): ... + def getNSepaRounds(self, *args, **kwargs): ... + def getNSiblings(self, *args, **kwargs): ... + def getNSols(self, *args, **kwargs): ... + def getNSolsFound(self, *args, **kwargs): ... + def getNTotalNodes(self, *args, **kwargs): ... + def getNVars(self, *args, **kwargs): ... + def getNVarsAnd(self, *args, **kwargs): ... + def getNlRowActivityBounds(self, *args, **kwargs): ... + def getNlRowSolActivity(self, *args, **kwargs): ... + def getNlRowSolFeasibility(self, *args, **kwargs): ... + def getNlRows(self, *args, **kwargs): ... + def getObjVal(self, *args, **kwargs): ... + def getObjective(self, *args, **kwargs): ... + def getObjectiveSense(self, *args, **kwargs): ... + def getObjlimit(self, *args, **kwargs): ... + def getObjoffset(self, *args, **kwargs): ... + def getOpenNodes(self, *args, **kwargs): ... + def getParam(self, *args, **kwargs): ... + def getParams(self, *args, **kwargs): ... + def getPresolvingTime(self, *args, **kwargs): ... + def getPrimalRay(self, *args, **kwargs): ... + def getPrimalRayVal(self, *args, **kwargs): ... + def getPrimalbound(self, *args, **kwargs): ... + def getPrioChild(self, *args, **kwargs): ... + def getPrioSibling(self, *args, **kwargs): ... + def getProbName(self, *args, **kwargs): ... + def getProbingDepth(self, *args, **kwargs): ... + def getPseudoBranchCands(self, *args, **kwargs): ... + def getReadingTime(self, *args, **kwargs): ... + def getResultantAnd(self, *args, **kwargs): ... + def getRhs(self, *args, **kwargs): ... + def getRowActivity(self, *args, **kwargs): ... + def getRowDualSol(self, *args, **kwargs): ... + def getRowLPActivity(self, *args, **kwargs): ... + def getRowLinear(self, *args, **kwargs): ... + def getRowNumIntCols(self, *args, **kwargs): ... + def getRowObjParallelism(self, *args, **kwargs): ... + def getRowParallelism(self, *args, **kwargs): ... + def getSiblings(self, *args, **kwargs): ... + def getSlack(self, *args, **kwargs): ... + def getSlackVarIndicator(self, *args, **kwargs): ... + def getSolObjVal(self, *args, **kwargs): ... + def getSolTime(self, *args, **kwargs): ... + def getSolVal(self, *args, **kwargs): ... + def getSols(self, *args, **kwargs): ... + def getSolvingTime(self, *args, **kwargs): ... + def getStage(self, *args, **kwargs): ... + def getStageName(self, *args, **kwargs): ... + def getStatus(self, *args, **kwargs): ... + def getTechVersion(self, *args, **kwargs): ... + def getTermsQuadratic(self, *args, **kwargs): ... + def getTotalTime(self, *args, **kwargs): ... + def getTransformedCons(self, *args, **kwargs): ... + def getTransformedVar(self, *args, **kwargs): ... + def getTreesizeEstimation(self, *args, **kwargs): ... + def getVal(self, *args, **kwargs): ... + def getValsLinear(self, *args, **kwargs): ... + def getVarDict(self, *args, **kwargs): ... + def getVarLbDive(self, *args, **kwargs): ... + def getVarPseudocost(self, *args, **kwargs): ... + def getVarPseudocostScore(self, *args, **kwargs): ... + def getVarRedcost(self, *args, **kwargs): ... + def getVarStrongbranch(self, *args, **kwargs): ... + def getVarStrongbranchLast(self, *args, **kwargs): ... + def getVarStrongbranchNode(self, *args, **kwargs): ... + def getVarUbDive(self, *args, **kwargs): ... + def getVars(self, *args, **kwargs): ... + def getVarsAnd(self, *args, **kwargs): ... + def getWeightsKnapsack(self, *args, **kwargs): ... + def hasPrimalRay(self, *args, **kwargs): ... + def hideOutput(self, *args, **kwargs): ... + def inProbing(self, *args, **kwargs): ... + def inRepropagation(self, *args, **kwargs): ... + def includeBenders(self, *args, **kwargs): ... + def includeBendersDefaultCuts(self, *args, **kwargs): ... + def includeBenderscut(self, *args, **kwargs): ... + def includeBranchrule(self, *args, **kwargs): ... + def includeConshdlr(self, *args, **kwargs): ... + def includeCutsel(self, *args, **kwargs): ... + def includeDefaultPlugins(self, *args, **kwargs): ... + def includeEventhdlr(self, *args, **kwargs): ... + def includeHeur(self, *args, **kwargs): ... + def includeNodesel(self, *args, **kwargs): ... + def includePresol(self, *args, **kwargs): ... + def includePricer(self, *args, **kwargs): ... + def includeProp(self, *args, **kwargs): ... + def includeReader(self, *args, **kwargs): ... + def includeRelax(self, *args, **kwargs): ... + def includeSepa(self, *args, **kwargs): ... + def infinity(self, *args, **kwargs): ... + def initBendersDefault(self, *args, **kwargs): ... + def interruptSolve(self, *args, **kwargs): ... + def isAndConsSorted(self, *args, **kwargs): ... + def isCutEfficacious(self, *args, **kwargs): ... + def isEQ(self, *args, **kwargs): ... + def isFeasEQ(self, *args, **kwargs): ... + def isFeasGE(self, *args, **kwargs): ... + def isFeasGT(self, *args, **kwargs): ... + def isFeasIntegral(self, *args, **kwargs): ... + def isFeasLE(self, *args, **kwargs): ... + def isFeasLT(self, *args, **kwargs): ... + def isFeasNegative(self, *args, **kwargs): ... + def isFeasPositive(self, *args, **kwargs): ... + def isFeasZero(self, *args, **kwargs): ... + def isGE(self, *args, **kwargs): ... + def isGT(self, *args, **kwargs): ... + def isHugeValue(self, *args, **kwargs): ... + def isInfinity(self, *args, **kwargs): ... + def isLE(self, *args, **kwargs): ... + def isLPSolBasic(self, *args, **kwargs): ... + def isLT(self, *args, **kwargs): ... + def isNLPConstructed(self, *args, **kwargs): ... + def isNegative(self, *args, **kwargs): ... + def isObjChangedProbing(self, *args, **kwargs): ... + def isPositive(self, *args, **kwargs): ... + def isZero(self, *args, **kwargs): ... + def lpiGetIterations(self, *args, **kwargs): ... + def newProbingNode(self, *args, **kwargs): ... + def optimize(self, *args, **kwargs): ... + def optimizeNogil(self, *args, **kwargs): ... + def presolve(self, *args, **kwargs): ... + def printBestSol(self, *args, **kwargs): ... + def printCons(self, *args, **kwargs): ... + def printExternalCodeVersions(self, *args, **kwargs): ... + def printNlRow(self, *args, **kwargs): ... + def printProblem(self, *args, **kwargs): ... + def printRow(self, *args, **kwargs): ... + def printSol(self, *args, **kwargs): ... + def printStatistics(self, *args, **kwargs): ... + def printVersion(self, *args, **kwargs): ... + def propagateProbing(self, *args, **kwargs): ... + def readParams(self, *args, **kwargs): ... + def readProblem(self, *args, **kwargs): ... + def readSol(self, *args, **kwargs): ... + def readSolFile(self, *args, **kwargs): ... + def redirectOutput(self, *args, **kwargs): ... + def relax(self, *args, **kwargs): ... + def releaseRow(self, *args, **kwargs): ... + def repropagateNode(self, *args, **kwargs): ... + def resetParam(self, *args, **kwargs): ... + def resetParams(self, *args, **kwargs): ... + def restartSolve(self, *args, **kwargs): ... + def separateSol(self, *args, **kwargs): ... + def setBendersSubproblemIsConvex(self, *args, **kwargs): ... + def setBoolParam(self, *args, **kwargs): ... + def setCharParam(self, *args, **kwargs): ... + def setCheck(self, *args, **kwargs): ... + def setEmphasis(self, *args, **kwargs): ... + def setEnforced(self, *args, **kwargs): ... + def setHeurTiming(self, *args, **kwargs): ... + def setHeuristics(self, *args, **kwargs): ... + def setInitial(self, *args, **kwargs): ... + def setIntParam(self, *args, **kwargs): ... + def setLogfile(self, *args, **kwargs): ... + def setLongintParam(self, *args, **kwargs): ... + def setMaximize(self, *args, **kwargs): ... + def setMinimize(self, *args, **kwargs): ... + def setModifiable(self, *args, **kwargs): ... + def setObjIntegral(self, *args, **kwargs): ... + def setObjective(self, *args, **kwargs): ... + def setObjlimit(self, *args, **kwargs): ... + def setParam(self, *args, **kwargs): ... + def setParams(self, *args, **kwargs): ... + def setParamsCountsols(self, *args, **kwargs): ... + def setPresolve(self, *args, **kwargs): ... + def setProbName(self, *args, **kwargs): ... + def setRealParam(self, *args, **kwargs): ... + def setRelaxSolVal(self, *args, **kwargs): ... + def setRemovable(self, *args, **kwargs): ... + def setSeparating(self, *args, **kwargs): ... + def setSolVal(self, *args, **kwargs): ... + def setStringParam(self, *args, **kwargs): ... + def setupBendersSubproblem(self, *args, **kwargs): ... + def solveBendersSubproblem(self, *args, **kwargs): ... + def solveConcurrent(self, *args, **kwargs): ... + def solveDiveLP(self, *args, **kwargs): ... + def solveProbingLP(self, *args, **kwargs): ... + def sortAndCons(self, *args, **kwargs): ... + def startDive(self, *args, **kwargs): ... + def startProbing(self, *args, **kwargs): ... + def startStrongbranch(self, *args, **kwargs): ... + def tightenVarLb(self, *args, **kwargs): ... + def tightenVarLbGlobal(self, *args, **kwargs): ... + def tightenVarUb(self, *args, **kwargs): ... + def tightenVarUbGlobal(self, *args, **kwargs): ... + def to_ptr(self, *args, **kwargs): ... + def translateSubSol(self, *args, **kwargs): ... + def trySol(self, *args, **kwargs): ... + def updateBendersLowerbounds(self, *args, **kwargs): ... + def updateNodeLowerbound(self, *args, **kwargs): ... + def updateVarPseudocost(self, *args, **kwargs): ... + def version(self, *args, **kwargs): ... + def writeBestSol(self, *args, **kwargs): ... + def writeBestTransSol(self, *args, **kwargs): ... + def writeLP(self, *args, **kwargs): ... + def writeMIP(self, *args, **kwargs): ... + def writeName(self, *args, **kwargs): ... + def writeParams(self, *args, **kwargs): ... + def writeProblem(self, *args, **kwargs): ... + def writeSol(self, *args, **kwargs): ... + def writeStatistics(self, *args, **kwargs): ... + def writeTransSol(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class NLRow: + data: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getConstant(self, *args, **kwargs): ... + def getDualsol(self, *args, **kwargs): ... + def getLhs(self, *args, **kwargs): ... + def getLinearTerms(self, *args, **kwargs): ... + def getRhs(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class Node: + data: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getAddedConss(self, *args, **kwargs): ... + def getDepth(self, *args, **kwargs): ... + def getDomchg(self, *args, **kwargs): ... + def getEstimate(self, *args, **kwargs): ... + def getLowerbound(self, *args, **kwargs): ... + def getNAddedConss(self, *args, **kwargs): ... + def getNDomchg(self, *args, **kwargs): ... + def getNParentBranchings(self, *args, **kwargs): ... + def getNumber(self, *args, **kwargs): ... + def getParent(self, *args, **kwargs): ... + def getParentBranchings(self, *args, **kwargs): ... + def getType(self, *args, **kwargs): ... + def isActive(self, *args, **kwargs): ... + def isPropagatedAgain(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class Nodesel: + model: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def nodecomp(self, *args, **kwargs): ... + def nodeexit(self, *args, **kwargs): ... + def nodeexitsol(self, *args, **kwargs): ... + def nodefree(self, *args, **kwargs): ... + def nodeinit(self, *args, **kwargs): ... + def nodeinitsol(self, *args, **kwargs): ... + def nodeselect(self, *args, **kwargs): ... + +class Op: + add: ClassVar[str] = ... + const: ClassVar[str] = ... + cos: ClassVar[str] = ... + div: ClassVar[str] = ... + exp: ClassVar[str] = ... + fabs: ClassVar[str] = ... + log: ClassVar[str] = ... + minus: ClassVar[str] = ... + mul: ClassVar[str] = ... + plus: ClassVar[str] = ... + power: ClassVar[str] = ... + prod: ClassVar[str] = ... + sin: ClassVar[str] = ... + sqrt: ClassVar[str] = ... + varidx: ClassVar[str] = ... + +class PY_SCIP_BENDERSENFOTYPE: + CHECK: ClassVar[int] = ... + LP: ClassVar[int] = ... + PSEUDO: ClassVar[int] = ... + RELAX: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_BRANCHDIR: + AUTO: ClassVar[int] = ... + DOWNWARDS: ClassVar[int] = ... + FIXED: ClassVar[int] = ... + UPWARDS: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_EVENTTYPE: + BESTSOLFOUND: ClassVar[int] = ... + BOUNDCHANGED: ClassVar[int] = ... + BOUNDRELAXED: ClassVar[int] = ... + BOUNDTIGHTENED: ClassVar[int] = ... + DISABLED: ClassVar[int] = ... + DOMCHANGED: ClassVar[int] = ... + FIRSTLPSOLVED: ClassVar[int] = ... + GBDCHANGED: ClassVar[int] = ... + GHOLEADDED: ClassVar[int] = ... + GHOLECHANGED: ClassVar[int] = ... + GHOLEREMOVED: ClassVar[int] = ... + GLBCHANGED: ClassVar[int] = ... + GUBCHANGED: ClassVar[int] = ... + HOLECHANGED: ClassVar[int] = ... + IMPLADDED: ClassVar[int] = ... + LBCHANGED: ClassVar[int] = ... + LBRELAXED: ClassVar[int] = ... + LBTIGHTENED: ClassVar[int] = ... + LHOLEADDED: ClassVar[int] = ... + LHOLECHANGED: ClassVar[int] = ... + LHOLEREMOVED: ClassVar[int] = ... + LPEVENT: ClassVar[int] = ... + LPSOLVED: ClassVar[int] = ... + NODEBRANCHED: ClassVar[int] = ... + NODEDELETE: ClassVar[int] = ... + NODEEVENT: ClassVar[int] = ... + NODEFEASIBLE: ClassVar[int] = ... + NODEFOCUSED: ClassVar[int] = ... + NODEINFEASIBLE: ClassVar[int] = ... + NODESOLVED: ClassVar[int] = ... + OBJCHANGED: ClassVar[int] = ... + POORSOLFOUND: ClassVar[int] = ... + PRESOLVEROUND: ClassVar[int] = ... + ROWADDEDLP: ClassVar[int] = ... + ROWADDEDSEPA: ClassVar[int] = ... + ROWCHANGED: ClassVar[int] = ... + ROWCOEFCHANGED: ClassVar[int] = ... + ROWCONSTCHANGED: ClassVar[int] = ... + ROWDELETEDLP: ClassVar[int] = ... + ROWDELETEDSEPA: ClassVar[int] = ... + ROWEVENT: ClassVar[int] = ... + ROWSIDECHANGED: ClassVar[int] = ... + SOLEVENT: ClassVar[int] = ... + SOLFOUND: ClassVar[int] = ... + SYNC: ClassVar[int] = ... + UBCHANGED: ClassVar[int] = ... + UBRELAXED: ClassVar[int] = ... + UBTIGHTENED: ClassVar[int] = ... + VARADDED: ClassVar[int] = ... + VARCHANGED: ClassVar[int] = ... + VARDELETED: ClassVar[int] = ... + VAREVENT: ClassVar[int] = ... + VARFIXED: ClassVar[int] = ... + VARUNLOCKED: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_HEURTIMING: + AFTERLPLOOP: ClassVar[int] = ... + AFTERLPNODE: ClassVar[int] = ... + AFTERLPPLUNGE: ClassVar[int] = ... + AFTERPROPLOOP: ClassVar[int] = ... + AFTERPSEUDONODE: ClassVar[int] = ... + AFTERPSEUDOPLUNGE: ClassVar[int] = ... + BEFORENODE: ClassVar[int] = ... + BEFOREPRESOL: ClassVar[int] = ... + DURINGLPLOOP: ClassVar[int] = ... + DURINGPRESOLLOOP: ClassVar[int] = ... + DURINGPRICINGLOOP: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_LOCKTYPE: + CONFLICT: ClassVar[int] = ... + MODEL: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_LPPARAM: + BARRIERCONVTOL: ClassVar[int] = ... + CONDITIONLIMIT: ClassVar[int] = ... + DUALFEASTOL: ClassVar[int] = ... + FASTMIP: ClassVar[int] = ... + FEASTOL: ClassVar[int] = ... + FROMSCRATCH: ClassVar[int] = ... + LPINFO: ClassVar[int] = ... + LPITLIM: ClassVar[int] = ... + LPTILIM: ClassVar[int] = ... + MARKOWITZ: ClassVar[int] = ... + OBJLIM: ClassVar[int] = ... + POLISHING: ClassVar[int] = ... + PRESOLVING: ClassVar[int] = ... + PRICING: ClassVar[int] = ... + RANDOMSEED: ClassVar[int] = ... + REFACTOR: ClassVar[int] = ... + ROWREPSWITCH: ClassVar[int] = ... + SCALING: ClassVar[int] = ... + THREADS: ClassVar[int] = ... + TIMING: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_LPSOLSTAT: + ERROR: ClassVar[int] = ... + INFEASIBLE: ClassVar[int] = ... + ITERLIMIT: ClassVar[int] = ... + NOTSOLVED: ClassVar[int] = ... + OBJLIMIT: ClassVar[int] = ... + OPTIMAL: ClassVar[int] = ... + TIMELIMIT: ClassVar[int] = ... + UNBOUNDEDRAY: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_NODETYPE: + CHILD: ClassVar[int] = ... + DEADEND: ClassVar[int] = ... + FOCUSNODE: ClassVar[int] = ... + FORK: ClassVar[int] = ... + JUNCTION: ClassVar[int] = ... + LEAF: ClassVar[int] = ... + PROBINGNODE: ClassVar[int] = ... + PSEUDOFORK: ClassVar[int] = ... + REFOCUSNODE: ClassVar[int] = ... + SIBLING: ClassVar[int] = ... + SUBROOT: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_PARAMEMPHASIS: + BENCHMARK: ClassVar[int] = ... + COUNTER: ClassVar[int] = ... + CPSOLVER: ClassVar[int] = ... + DEFAULT: ClassVar[int] = ... + EASYCIP: ClassVar[int] = ... + FEASIBILITY: ClassVar[int] = ... + HARDLP: ClassVar[int] = ... + NUMERICS: ClassVar[int] = ... + OPTIMALITY: ClassVar[int] = ... + PHASEFEAS: ClassVar[int] = ... + PHASEIMPROVE: ClassVar[int] = ... + PHASEPROOF: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_PARAMSETTING: + AGGRESSIVE: ClassVar[int] = ... + DEFAULT: ClassVar[int] = ... + FAST: ClassVar[int] = ... + OFF: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_PRESOLTIMING: + EXHAUSTIVE: ClassVar[int] = ... + FAST: ClassVar[int] = ... + MEDIUM: ClassVar[int] = ... + NONE: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_PROPTIMING: + AFTERLPLOOP: ClassVar[int] = ... + AFTERLPNODE: ClassVar[int] = ... + BEFORELP: ClassVar[int] = ... + DURINGLPLOOP: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_RESULT: + BRANCHED: ClassVar[int] = ... + CONSADDED: ClassVar[int] = ... + CONSCHANGED: ClassVar[int] = ... + CUTOFF: ClassVar[int] = ... + DELAYED: ClassVar[int] = ... + DIDNOTFIND: ClassVar[int] = ... + DIDNOTRUN: ClassVar[int] = ... + FEASIBLE: ClassVar[int] = ... + FOUNDSOL: ClassVar[int] = ... + INFEASIBLE: ClassVar[int] = ... + NEWROUND: ClassVar[int] = ... + REDUCEDDOM: ClassVar[int] = ... + SEPARATED: ClassVar[int] = ... + SOLVELP: ClassVar[int] = ... + SUCCESS: ClassVar[int] = ... + SUSPENDED: ClassVar[int] = ... + UNBOUNDED: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_ROWORIGINTYPE: + CONS: ClassVar[int] = ... + REOPT: ClassVar[int] = ... + SEPA: ClassVar[int] = ... + UNSPEC: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_SOLORIGIN: + LPSOL: ClassVar[int] = ... + NLPSOL: ClassVar[int] = ... + ORIGINAL: ClassVar[int] = ... + PARTIAL: ClassVar[int] = ... + PSEUDOSOL: ClassVar[int] = ... + RELAXSOL: ClassVar[int] = ... + UNKNOWN: ClassVar[int] = ... + ZERO: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_STAGE: + EXITPRESOLVE: ClassVar[int] = ... + EXITSOLVE: ClassVar[int] = ... + FREE: ClassVar[int] = ... + FREETRANS: ClassVar[int] = ... + INIT: ClassVar[int] = ... + INITPRESOLVE: ClassVar[int] = ... + INITSOLVE: ClassVar[int] = ... + PRESOLVED: ClassVar[int] = ... + PRESOLVING: ClassVar[int] = ... + PROBLEM: ClassVar[int] = ... + SOLVED: ClassVar[int] = ... + SOLVING: ClassVar[int] = ... + TRANSFORMED: ClassVar[int] = ... + TRANSFORMING: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PY_SCIP_STATUS: + BESTSOLLIMIT: ClassVar[int] = ... + DUALLIMIT: ClassVar[int] = ... + GAPLIMIT: ClassVar[int] = ... + INFEASIBLE: ClassVar[int] = ... + INFORUNBD: ClassVar[int] = ... + MEMLIMIT: ClassVar[int] = ... + NODELIMIT: ClassVar[int] = ... + OPTIMAL: ClassVar[int] = ... + PRIMALLIMIT: ClassVar[int] = ... + RESTARTLIMIT: ClassVar[int] = ... + SOLLIMIT: ClassVar[int] = ... + STALLNODELIMIT: ClassVar[int] = ... + TIMELIMIT: ClassVar[int] = ... + TOTALNODELIMIT: ClassVar[int] = ... + UNBOUNDED: ClassVar[int] = ... + UNKNOWN: ClassVar[int] = ... + USERINTERRUPT: ClassVar[int] = ... + def __init__(self, *args, **kwargs) -> None: ... + +class PowExpr(GenExpr): + expo: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + +class Presol: + model: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def presolexec(self, *args, **kwargs): ... + def presolexit(self, *args, **kwargs): ... + def presolexitpre(self, *args, **kwargs): ... + def presolfree(self, *args, **kwargs): ... + def presolinit(self, *args, **kwargs): ... + def presolinitpre(self, *args, **kwargs): ... + +class Pricer: + model: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def pricerexit(self, *args, **kwargs): ... + def pricerexitsol(self, *args, **kwargs): ... + def pricerfarkas(self, *args, **kwargs): ... + def pricerfree(self, *args, **kwargs): ... + def pricerinit(self, *args, **kwargs): ... + def pricerinitsol(self, *args, **kwargs): ... + def pricerredcost(self, *args, **kwargs): ... + +class ProdExpr(GenExpr): + constant: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + +class Prop: + model: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def propexec(self, *args, **kwargs): ... + def propexit(self, *args, **kwargs): ... + def propexitpre(self, *args, **kwargs): ... + def propexitsol(self, *args, **kwargs): ... + def propfree(self, *args, **kwargs): ... + def propinit(self, *args, **kwargs): ... + def propinitpre(self, *args, **kwargs): ... + def propinitsol(self, *args, **kwargs): ... + def proppresol(self, *args, **kwargs): ... + def propresprop(self, *args, **kwargs): ... + +class Reader: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def readerfree(self, *args, **kwargs): ... + def readerread(self, *args, **kwargs): ... + def readerwrite(self, *args, **kwargs): ... + +class Relax: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def relaxexec(self, *args, **kwargs): ... + def relaxexit(self, *args, **kwargs): ... + def relaxexitsol(self, *args, **kwargs): ... + def relaxfree(self, *args, **kwargs): ... + def relaxinit(self, *args, **kwargs): ... + def relaxinitsol(self, *args, **kwargs): ... + +class Row: + data: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getAge(self, *args, **kwargs): ... + def getBasisStatus(self, *args, **kwargs): ... + def getCols(self, *args, **kwargs): ... + def getConsOriginConshdlrtype(self, *args, **kwargs): ... + def getConstant(self, *args, **kwargs): ... + def getDualfarkas(self, *args, **kwargs): ... + def getDualsol(self, *args, **kwargs): ... + def getLPPos(self, *args, **kwargs): ... + def getLhs(self, *args, **kwargs): ... + def getNLPNonz(self, *args, **kwargs): ... + def getNNonz(self, *args, **kwargs): ... + def getNorm(self, *args, **kwargs): ... + def getOrigintype(self, *args, **kwargs): ... + def getRhs(self, *args, **kwargs): ... + def getVals(self, *args, **kwargs): ... + def isInGlobalCutpool(self, *args, **kwargs): ... + def isIntegral(self, *args, **kwargs): ... + def isLocal(self, *args, **kwargs): ... + def isModifiable(self, *args, **kwargs): ... + def isRemovable(self, *args, **kwargs): ... + def __eq__(self, other: object) -> bool: ... + def __ge__(self, other: object) -> bool: ... + def __gt__(self, other: object) -> bool: ... + def __hash__(self) -> int: ... + def __le__(self, other: object) -> bool: ... + def __lt__(self, other: object) -> bool: ... + def __ne__(self, other: object) -> bool: ... + +class Sepa: + model: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def sepaexeclp(self, *args, **kwargs): ... + def sepaexecsol(self, *args, **kwargs): ... + def sepaexit(self, *args, **kwargs): ... + def sepaexitsol(self, *args, **kwargs): ... + def sepafree(self, *args, **kwargs): ... + def sepainit(self, *args, **kwargs): ... + def sepainitsol(self, *args, **kwargs): ... + +class Solution: + data: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getOrigin(self, *args, **kwargs): ... + def retransform(self, *args, **kwargs): ... + def translate(self, *args, **kwargs): ... + def __delitem__(self, other) -> None: ... + def __getitem__(self, index): ... + def __setitem__(self, index, object) -> None: ... + +@dataclass +class Statistics: + status: str + total_time: float + solving_time: float + presolving_time: float + reading_time: float + copying_time: float + problem_name: str + presolved_problem_name: str + n_runs: int = None + n_nodes: int = None + n_solutions_found: int = -1 + first_solution: float = None + primal_bound: float = None + dual_bound: float = None + gap: float = None + primal_dual_integral: float = None + @property + def n_binary_vars(self): ... + @property + def n_conss(self): ... + @property + def n_continuous_vars(self): ... + @property + def n_implicit_integer_vars(self): ... + @property + def n_integer_vars(self): ... + @property + def n_maximal_cons(self): ... + @property + def n_presolved_binary_vars(self): ... + @property + def n_presolved_conss(self): ... + @property + def n_presolved_continuous_vars(self): ... + @property + def n_presolved_implicit_integer_vars(self): ... + @property + def n_presolved_integer_vars(self): ... + @property + def n_presolved_maximal_cons(self): ... + @property + def n_presolved_vars(self): ... + @property + def n_vars(self): ... + +class SumExpr(GenExpr): + coefs: Incomplete + constant: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + +class Term: + hashval: Incomplete + ptrtuple: Incomplete + vartuple: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def __add__(self, other): ... + def __eq__(self, other: object) -> bool: ... + def __getitem__(self, index): ... + def __hash__(self) -> int: ... + def __len__(self) -> int: ... + +class UnaryExpr(GenExpr): + def __init__(self, *args, **kwargs) -> None: ... + +class VarExpr(GenExpr): + var: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + +class Variable(Expr): + data: Incomplete + name: Incomplete + def __init__(self, *args, **kwargs) -> None: ... + def getAvgSol(self, *args, **kwargs): ... + def getCol(self, *args, **kwargs): ... + def getIndex(self, *args, **kwargs): ... + def getLPSol(self, *args, **kwargs): ... + def getLbGlobal(self, *args, **kwargs): ... + def getLbLocal(self, *args, **kwargs): ... + def getLbOriginal(self, *args, **kwargs): ... + def getNBranchings(self, *args, **kwargs): ... + def getNBranchingsCurrentRun(self, *args, **kwargs): ... + def getNLocksDown(self, *args, **kwargs): ... + def getNLocksDownType(self, *args, **kwargs): ... + def getNLocksUp(self, *args, **kwargs): ... + def getNLocksUpType(self, *args, **kwargs): ... + def getObj(self, *args, **kwargs): ... + def getUbGlobal(self, *args, **kwargs): ... + def getUbLocal(self, *args, **kwargs): ... + def getUbOriginal(self, *args, **kwargs): ... + def isDeletable(self, *args, **kwargs): ... + def isInLP(self, *args, **kwargs): ... + def isOriginal(self, *args, **kwargs): ... + def isRelaxationOnly(self, *args, **kwargs): ... + def markRelaxationOnly(self, *args, **kwargs): ... + def ptr(self, *args, **kwargs): ... + def varMayRound(self, *args, **kwargs): ... + def vtype(self, *args, **kwargs): ... + +class _VarArray: + def __init__(self, *args, **kwargs) -> None: ...