Add mip_ prefix to dynamic constraints

master
Alinson S. Xavier 4 years ago
parent ca925119b3
commit 067f0f847c
No known key found for this signature in database
GPG Key ID: DCA0DAD4D2F58624

@ -36,7 +36,7 @@ class DynamicLazyConstraintsComponent(Component):
self.dynamic: DynamicConstraintsComponent = DynamicConstraintsComponent(
classifier=classifier,
threshold=threshold,
attr="lazy_enforced",
attr="mip_constr_lazy_enforced",
)
self.classifiers = self.dynamic.classifiers
self.thresholds = self.dynamic.thresholds
@ -78,7 +78,7 @@ class DynamicLazyConstraintsComponent(Component):
stats: LearningSolveStats,
sample: Sample,
) -> None:
sample.put_set("lazy_enforced", set(self.lazy_enforced))
sample.put_set("mip_constr_lazy_enforced", set(self.lazy_enforced))
@overrides
def iteration_cb(

@ -32,7 +32,7 @@ class UserCutsComponent(Component):
self.dynamic = DynamicConstraintsComponent(
classifier=classifier,
threshold=threshold,
attr="user_cuts_enforced",
attr="mip_user_cuts_enforced",
)
self.enforced: Set[str] = set()
self.n_added_in_callback = 0
@ -87,7 +87,7 @@ class UserCutsComponent(Component):
stats: LearningSolveStats,
sample: Sample,
) -> None:
sample.put_set("user_cuts_enforced", set(self.enforced))
sample.put_set("mip_user_cuts_enforced", set(self.enforced))
stats["UserCuts: Added in callback"] = self.n_added_in_callback
if self.n_added_in_callback > 0:
logger.info(f"{self.n_added_in_callback} user cuts added in callback")

@ -61,7 +61,7 @@ class StaticLazyConstraintsComponent(Component):
stats: LearningSolveStats,
sample: Sample,
) -> None:
sample.put_set("lazy_enforced", self.enforced_cids)
sample.put_set("mip_constr_lazy_enforced", self.enforced_cids)
stats["LazyStatic: Restored"] = self.n_restored
stats["LazyStatic: Iterations"] = self.n_iterations
@ -209,7 +209,7 @@ class StaticLazyConstraintsComponent(Component):
constr_names = sample.get_vector("static_constr_names")
constr_categories = sample.get_vector("static_constr_categories")
constr_lazy = sample.get_vector("static_constr_lazy")
lazy_enforced = sample.get_set("lazy_enforced")
lazy_enforced = sample.get_set("mip_constr_lazy_enforced")
if constr_features is None:
constr_features = sample.get_vector_list("static_constr_features")

@ -24,13 +24,13 @@ def training_instances() -> List[Instance]:
samples_0 = [
MemorySample(
{
"lazy_enforced": {"c1", "c2"},
"mip_constr_lazy_enforced": {"c1", "c2"},
"static_instance_features": [5.0],
},
),
MemorySample(
{
"lazy_enforced": {"c2", "c3"},
"mip_constr_lazy_enforced": {"c2", "c3"},
"static_instance_features": [5.0],
},
),
@ -55,7 +55,7 @@ def training_instances() -> List[Instance]:
samples_1 = [
MemorySample(
{
"lazy_enforced": {"c3", "c4"},
"mip_constr_lazy_enforced": {"c3", "c4"},
"static_instance_features": [8.0],
},
)

@ -81,7 +81,7 @@ def test_usage(
) -> None:
stats_before = solver.solve(stab_instance)
sample = stab_instance.get_samples()[0]
user_cuts_enforced = sample.get_set("user_cuts_enforced")
user_cuts_enforced = sample.get_set("mip_user_cuts_enforced")
assert user_cuts_enforced is not None
assert len(user_cuts_enforced) > 0
assert stats_before["UserCuts: Added ahead-of-time"] == 0

@ -34,7 +34,7 @@ def sample() -> Sample:
"static_constr_lazy": [True, True, True, True, False],
"static_constr_names": ["c1", "c2", "c3", "c4", "c5"],
"static_instance_features": [5.0],
"lazy_enforced": {"c1", "c2", "c4"},
"mip_constr_lazy_enforced": {"c1", "c2", "c4"},
"lp_constr_features": [
[1.0, 1.0],
[1.0, 2.0],
@ -93,7 +93,7 @@ def test_usage_with_solver(instance: Instance) -> None:
stats: LearningSolveStats = {}
sample = instance.get_samples()[0]
assert sample.get_set("lazy_enforced") is not None
assert sample.get_set("mip_constr_lazy_enforced") is not None
# LearningSolver calls before_solve_mip
component.before_solve_mip(
@ -142,7 +142,7 @@ def test_usage_with_solver(instance: Instance) -> None:
)
# Should update training sample
assert sample.get_set("lazy_enforced") == {"c1", "c2", "c3", "c4"}
assert sample.get_set("mip_constr_lazy_enforced") == {"c1", "c2", "c3", "c4"}
#
# Should update stats
assert stats["LazyStatic: Removed"] == 1

@ -65,7 +65,7 @@ def test_subtour() -> None:
samples = instance.get_samples()
assert len(samples) == 1
sample = samples[0]
lazy_enforced = sample.get_set("lazy_enforced")
lazy_enforced = sample.get_set("mip_constr_lazy_enforced")
assert lazy_enforced is not None
assert len(lazy_enforced) > 0
assert sample.get_vector("mip_var_values") == [

Loading…
Cancel
Save