Rename features.constraints to constraints_old

master
Alinson S. Xavier 5 years ago
parent 8f73d87d2d
commit 0e9c8b0a49
No known key found for this signature in database
GPG Key ID: DCA0DAD4D2F58624

@ -78,7 +78,7 @@ class StaticLazyConstraintsComponent(Component):
assert solver.internal_solver is not None assert solver.internal_solver is not None
assert sample.after_load is not None assert sample.after_load is not None
assert sample.after_load.instance is not None assert sample.after_load.instance is not None
assert sample.after_load.constraints is not None assert sample.after_load.constraints_old is not None
logger.info("Predicting violated (static) lazy constraints...") logger.info("Predicting violated (static) lazy constraints...")
if sample.after_load.instance.lazy_constraint_count == 0: if sample.after_load.instance.lazy_constraint_count == 0:
@ -86,7 +86,7 @@ class StaticLazyConstraintsComponent(Component):
self.enforced_cids = set(self.sample_predict(sample)) self.enforced_cids = set(self.sample_predict(sample))
logger.info("Moving lazy constraints to the pool...") logger.info("Moving lazy constraints to the pool...")
self.pool = {} self.pool = {}
for (cid, cdict) in sample.after_load.constraints.items(): for (cid, cdict) in sample.after_load.constraints_old.items():
if cdict.lazy and cid not in self.enforced_cids: if cdict.lazy and cid not in self.enforced_cids:
self.pool[cid] = cdict self.pool[cid] = cdict
solver.internal_solver.remove_constraint(cid) solver.internal_solver.remove_constraint(cid)
@ -194,8 +194,8 @@ class StaticLazyConstraintsComponent(Component):
y: Dict[Hashable, List[List[float]]] = {} y: Dict[Hashable, List[List[float]]] = {}
cids: Dict[Hashable, List[str]] = {} cids: Dict[Hashable, List[str]] = {}
assert sample.after_load is not None assert sample.after_load is not None
assert sample.after_load.constraints is not None assert sample.after_load.constraints_old is not None
for (cid, constr) in sample.after_load.constraints.items(): for (cid, constr) in sample.after_load.constraints_old.items():
# Initialize categories # Initialize categories
if not constr.lazy: if not constr.lazy:
continue continue
@ -213,9 +213,9 @@ class StaticLazyConstraintsComponent(Component):
sf = sample.after_lp sf = sample.after_lp
assert sf.instance is not None assert sf.instance is not None
features = list(sf.instance.to_list()) features = list(sf.instance.to_list())
assert sf.constraints is not None assert sf.constraints_old is not None
assert sf.constraints[cid] is not None assert sf.constraints_old[cid] is not None
features.extend(sf.constraints[cid].to_list()) features.extend(sf.constraints_old[cid].to_list())
x[category].append(features) x[category].append(features)
cids[category].append(cid) cids[category].append(cid)

@ -116,7 +116,7 @@ class Constraint:
class Features: class Features:
instance: Optional[InstanceFeatures] = None instance: Optional[InstanceFeatures] = None
variables: Optional[VariableFeatures] = None variables: Optional[VariableFeatures] = None
constraints: Optional[Dict[str, Constraint]] = None constraints_old: Optional[Dict[str, Constraint]] = None
lp_solve: Optional["LPSolveStats"] = None lp_solve: Optional["LPSolveStats"] = None
mip_solve: Optional["MIPSolveStats"] = None mip_solve: Optional["MIPSolveStats"] = None
extra: Optional[Dict] = None extra: Optional[Dict] = None
@ -147,7 +147,7 @@ class FeaturesExtractor:
with_static=with_static, with_static=with_static,
with_sa=self.with_sa, with_sa=self.with_sa,
) )
features.constraints = solver.get_constraints( features.constraints_old = solver.get_constraints(
with_static=with_static, with_static=with_static,
) )
if with_static: if with_static:
@ -201,9 +201,9 @@ class FeaturesExtractor:
instance: "Instance", instance: "Instance",
features: Features, features: Features,
) -> None: ) -> None:
assert features.constraints is not None assert features.constraints_old is not None
has_static_lazy = instance.has_static_lazy_constraints() has_static_lazy = instance.has_static_lazy_constraints()
for (cid, constr) in features.constraints.items(): for (cid, constr) in features.constraints_old.items():
user_features = None user_features = None
category = instance.get_constraint_category(cid) category = instance.get_constraint_category(cid)
if category is not None: if category is not None:
@ -232,7 +232,7 @@ class FeaturesExtractor:
instance: "Instance", instance: "Instance",
features: Features, features: Features,
) -> None: ) -> None:
assert features.constraints is not None assert features.constraints_old is not None
user_features = instance.get_instance_features() user_features = instance.get_instance_features()
if isinstance(user_features, np.ndarray): if isinstance(user_features, np.ndarray):
user_features = user_features.tolist() user_features = user_features.tolist()
@ -246,7 +246,7 @@ class FeaturesExtractor:
f"Found {type(v).__name__} instead." f"Found {type(v).__name__} instead."
) )
lazy_count = 0 lazy_count = 0
for (cid, cdict) in features.constraints.items(): for (cid, cdict) in features.constraints_old.items():
if cdict.lazy: if cdict.lazy:
lazy_count += 1 lazy_count += 1
features.instance = InstanceFeatures( features.instance = InstanceFeatures(

@ -32,7 +32,7 @@ def sample() -> Sample:
instance=InstanceFeatures( instance=InstanceFeatures(
lazy_constraint_count=4, lazy_constraint_count=4,
), ),
constraints={ constraints_old={
"c1": Constraint(category="type-a", lazy=True), "c1": Constraint(category="type-a", lazy=True),
"c2": Constraint(category="type-a", lazy=True), "c2": Constraint(category="type-a", lazy=True),
"c3": Constraint(category="type-a", lazy=True), "c3": Constraint(category="type-a", lazy=True),
@ -42,7 +42,7 @@ def sample() -> Sample:
), ),
after_lp=Features( after_lp=Features(
instance=InstanceFeatures(), instance=InstanceFeatures(),
constraints={ constraints_old={
"c1": Constraint(), "c1": Constraint(),
"c2": Constraint(), "c2": Constraint(),
"c3": Constraint(), "c3": Constraint(),
@ -57,16 +57,16 @@ def sample() -> Sample:
), ),
) )
sample.after_lp.instance.to_list = Mock(return_value=[5.0]) # type: ignore sample.after_lp.instance.to_list = Mock(return_value=[5.0]) # type: ignore
sample.after_lp.constraints["c1"].to_list = Mock( # type: ignore sample.after_lp.constraints_old["c1"].to_list = Mock( # type: ignore
return_value=[1.0, 1.0] return_value=[1.0, 1.0]
) )
sample.after_lp.constraints["c2"].to_list = Mock( # type: ignore sample.after_lp.constraints_old["c2"].to_list = Mock( # type: ignore
return_value=[1.0, 2.0] return_value=[1.0, 2.0]
) )
sample.after_lp.constraints["c3"].to_list = Mock( # type: ignore sample.after_lp.constraints_old["c3"].to_list = Mock( # type: ignore
return_value=[1.0, 3.0] return_value=[1.0, 3.0]
) )
sample.after_lp.constraints["c4"].to_list = Mock( # type: ignore sample.after_lp.constraints_old["c4"].to_list = Mock( # type: ignore
return_value=[1.0, 4.0, 0.0] return_value=[1.0, 4.0, 0.0]
) )
return sample return sample
@ -115,7 +115,7 @@ def test_usage_with_solver(instance: Instance) -> None:
stats: LearningSolveStats = {} stats: LearningSolveStats = {}
sample = instance.samples[0] sample = instance.samples[0]
assert sample.after_load is not None assert sample.after_load is not None
assert sample.after_load.constraints is not None assert sample.after_load.constraints_old is not None
assert sample.after_mip is not None assert sample.after_mip is not None
assert sample.after_mip.extra is not None assert sample.after_mip.extra is not None
del sample.after_mip.extra["lazy_enforced"] del sample.after_mip.extra["lazy_enforced"]
@ -143,7 +143,7 @@ def test_usage_with_solver(instance: Instance) -> None:
# Should ask internal solver to verify if constraints in the pool are # Should ask internal solver to verify if constraints in the pool are
# satisfied and add the ones that are not # satisfied and add the ones that are not
c3 = sample.after_load.constraints["c3"] c3 = sample.after_load.constraints_old["c3"]
internal.is_constraint_satisfied.assert_called_once_with(c3, tol=1.0) internal.is_constraint_satisfied.assert_called_once_with(c3, tol=1.0)
internal.is_constraint_satisfied.reset_mock() internal.is_constraint_satisfied.reset_mock()
internal.add_constraint.assert_called_once_with(c3, name="c3") internal.add_constraint.assert_called_once_with(c3, name="c3")

@ -27,7 +27,7 @@ def test_knapsack() -> None:
features = FeaturesExtractor().extract(instance, solver) features = FeaturesExtractor().extract(instance, solver)
assert features.variables is not None assert features.variables is not None
assert features.constraints is not None assert features.constraints_old is not None
assert features.instance is not None assert features.instance is not None
assert_equals( assert_equals(
@ -65,7 +65,7 @@ def test_knapsack() -> None:
), ),
) )
assert_equals( assert_equals(
_round_constraints(features.constraints), _round_constraints(features.constraints_old),
{ {
"eq_capacity": Constraint( "eq_capacity": Constraint(
basis_status="N", basis_status="N",

Loading…
Cancel
Save