mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 17:38:51 -06:00
Add more variable features
This commit is contained in:
@@ -19,6 +19,7 @@ from pyomo.core.expr.numeric_expr import SumExpression, MonomialTermExpression
|
||||
from pyomo.opt import TerminationCondition
|
||||
from pyomo.opt.base.solvers import SolverFactory
|
||||
|
||||
from miplearn.features import Variable
|
||||
from miplearn.instance.base import Instance
|
||||
from miplearn.solvers import _RedirectOutput
|
||||
from miplearn.solvers.internal import (
|
||||
@@ -363,6 +364,19 @@ class BasePyomoSolver(InternalSolver):
|
||||
capacity=67.0,
|
||||
)
|
||||
|
||||
@overrides
|
||||
def get_variables(self) -> Dict[str, Variable]:
|
||||
assert self.model is not None
|
||||
variables = {}
|
||||
for var in self.model.component_objects(pyomo.core.Var):
|
||||
for idx in var:
|
||||
varname = f"{var}[{idx}]"
|
||||
variables[varname] = self._parse_pyomo_variable(var[idx])
|
||||
return variables
|
||||
|
||||
def _parse_pyomo_variable(self, var: pyomo.core.Var) -> Variable:
|
||||
return Variable()
|
||||
|
||||
@overrides
|
||||
def get_constraints(self) -> Dict[str, Constraint]:
|
||||
assert self.model is not None
|
||||
@@ -385,6 +399,7 @@ class BasePyomoSolver(InternalSolver):
|
||||
self,
|
||||
pyomo_constr: pyomo.core.Constraint,
|
||||
) -> Constraint:
|
||||
assert self.model is not None
|
||||
constr = Constraint()
|
||||
|
||||
# Extract RHS and sense
|
||||
@@ -448,6 +463,26 @@ class BasePyomoSolver(InternalSolver):
|
||||
"user_features",
|
||||
]
|
||||
|
||||
@overrides
|
||||
def get_variable_attrs(self) -> List[str]:
|
||||
return [
|
||||
# "basis_status",
|
||||
# "category",
|
||||
# "lower_bound",
|
||||
# "obj_coeff",
|
||||
# "reduced_cost",
|
||||
# "sa_lb_down",
|
||||
# "sa_lb_up",
|
||||
# "sa_obj_down",
|
||||
# "sa_obj_up",
|
||||
# "sa_ub_down",
|
||||
# "sa_ub_up",
|
||||
# "type",
|
||||
# "upper_bound",
|
||||
# "user_features",
|
||||
# "value",
|
||||
]
|
||||
|
||||
|
||||
class PyomoTestInstanceInfeasible(Instance):
|
||||
@overrides
|
||||
|
||||
Reference in New Issue
Block a user