Rename features.variables to variables_old; update FeatureExtractor

This commit is contained in:
2021-04-15 06:54:27 -05:00
parent 08f0bedbe0
commit fec0113722
9 changed files with 150 additions and 173 deletions

View File

@@ -393,13 +393,12 @@ class GurobiSolver(InternalSolver):
else:
raise Exception(f"unknown vbasis: {basis_status}")
names, upper_bounds, lower_bounds, types, values = None, None, None, None, None
upper_bounds, lower_bounds, types, values = None, None, None, None
obj_coeffs, reduced_costs, basis_status = None, None, None
sa_obj_up, sa_ub_up, sa_lb_up = None, None, None
sa_obj_down, sa_ub_down, sa_lb_down = None, None, None
if with_static:
names = self._var_names
upper_bounds = self._var_ubs
lower_bounds = self._var_lbs
types = self._var_types
@@ -426,7 +425,7 @@ class GurobiSolver(InternalSolver):
values = tuple(model.getAttr("x", self._gp_vars))
return VariableFeatures(
names=names,
names=self._var_names,
upper_bounds=upper_bounds,
lower_bounds=lower_bounds,
types=types,

View File

@@ -210,13 +210,13 @@ class BasePyomoSolver(InternalSolver):
for idx in var:
v = var[idx]
if with_static:
# Variable name
if idx is None:
names.append(str(var))
else:
names.append(f"{var}[{idx}]")
# Variable name
if idx is None:
names.append(str(var))
else:
names.append(f"{var}[{idx}]")
if with_static:
# Variable type
if v.domain == pyomo.core.Binary:
types.append("B")
@@ -250,7 +250,6 @@ class BasePyomoSolver(InternalSolver):
if self._has_lp_solution or self._has_mip_solution:
values.append(v.value)
names_t: Optional[Tuple[str, ...]] = None
types_t: Optional[Tuple[str, ...]] = None
upper_bounds_t: Optional[Tuple[float, ...]] = None
lower_bounds_t: Optional[Tuple[float, ...]] = None
@@ -259,7 +258,6 @@ class BasePyomoSolver(InternalSolver):
values_t: Optional[Tuple[float, ...]] = None
if with_static:
names_t = tuple(names)
types_t = tuple(types)
upper_bounds_t = tuple(upper_bounds)
lower_bounds_t = tuple(lower_bounds)
@@ -272,7 +270,7 @@ class BasePyomoSolver(InternalSolver):
values_t = tuple(values)
return VariableFeatures(
names=names_t,
names=tuple(names),
types=types_t,
upper_bounds=upper_bounds_t,
lower_bounds=lower_bounds_t,

View File

@@ -138,6 +138,7 @@ def run_basic_usage_tests(solver: InternalSolver) -> None:
_filter_attrs(
solver.get_variable_attrs(),
VariableFeatures(
names=("x[0]", "x[1]", "x[2]", "x[3]", "z"),
basis_status=("U", "B", "U", "L", "U"),
reduced_costs=(193.615385, 0.0, 187.230769, -23.692308, 13.538462),
sa_lb_down=(-inf, -inf, -inf, -0.111111, -inf),
@@ -200,7 +201,10 @@ def run_basic_usage_tests(solver: InternalSolver) -> None:
_round(solver.get_variables(with_static=False)),
_filter_attrs(
solver.get_variable_attrs(),
VariableFeatures(values=(1.0, 0.0, 1.0, 1.0, 61.0)),
VariableFeatures(
names=("x[0]", "x[1]", "x[2]", "x[3]", "z"),
values=(1.0, 0.0, 1.0, 1.0, 61.0),
),
),
)