Rename before/after_solve to before/after_solve_mip

This commit is contained in:
2021-03-30 09:00:02 -05:00
parent bcaf26b18c
commit 6ae052c8d0
15 changed files with 42 additions and 42 deletions

View File

@@ -21,14 +21,14 @@ class Component(ABC):
strategy.
"""
def before_solve(
def before_solve_mip(
self,
solver: "LearningSolver",
instance: Instance,
model: Any,
) -> None:
"""
Method called by LearningSolver before the problem is solved.
Method called by LearningSolver before the MIP is solved.
Parameters
----------
@@ -42,7 +42,7 @@ class Component(ABC):
return
@abstractmethod
def after_solve(
def after_solve_mip(
self,
solver: "LearningSolver",
instance: Instance,
@@ -51,7 +51,7 @@ class Component(ABC):
training_data: TrainingSample,
) -> None:
"""
Method called by LearningSolver after the problem is solved to optimality.
Method called by LearningSolver after the MIP is solved.
Parameters
----------

View File

@@ -21,11 +21,11 @@ class CompositeComponent(Component):
def __init__(self, children):
self.children = children
def before_solve(self, solver, instance, model):
def before_solve_mip(self, solver, instance, model):
for child in self.children:
child.before_solve(solver, instance, model)
child.before_solve_mip(solver, instance, model)
def after_solve(
def after_solve_mip(
self,
solver,
instance,
@@ -34,7 +34,7 @@ class CompositeComponent(Component):
training_data,
):
for child in self.children:
child.after_solve(solver, instance, model, stats, training_data)
child.after_solve_mip(solver, instance, model, stats, training_data)
def fit(self, training_instances):
for child in self.children:

View File

@@ -33,7 +33,7 @@ class UserCutsComponent(Component):
self.classifier_prototype: Classifier = classifier
self.classifiers: Dict[Any, Classifier] = {}
def before_solve(self, solver, instance, model):
def before_solve_mip(self, solver, instance, model):
instance.found_violated_user_cuts = []
logger.info("Predicting violated user cuts...")
violations = self.predict(instance)
@@ -42,7 +42,7 @@ class UserCutsComponent(Component):
cut = instance.build_user_cut(model, v)
solver.internal_solver.add_constraint(cut)
def after_solve(
def after_solve_mip(
self,
solver,
instance,

View File

@@ -33,7 +33,7 @@ class DynamicLazyConstraintsComponent(Component):
self.classifier_prototype: Classifier = classifier
self.classifiers: Dict[Any, Classifier] = {}
def before_solve(self, solver, instance, model):
def before_solve_mip(self, solver, instance, model):
instance.found_violated_lazy_constraints = []
logger.info("Predicting violated lazy constraints...")
violations = self.predict(instance)
@@ -54,7 +54,7 @@ class DynamicLazyConstraintsComponent(Component):
solver.internal_solver.add_constraint(cut)
return True
def after_solve(
def after_solve_mip(
self,
solver,
instance,

View File

@@ -40,7 +40,7 @@ class StaticLazyConstraintsComponent(Component):
self.use_two_phase_gap = use_two_phase_gap
self.violation_tolerance = violation_tolerance
def before_solve(self, solver, instance, model):
def before_solve_mip(self, solver, instance, model):
self.pool = []
if not solver.use_lazy_cb and self.use_two_phase_gap:
logger.info("Increasing gap tolerance to %f", self.large_gap)
@@ -52,7 +52,7 @@ class StaticLazyConstraintsComponent(Component):
if instance.has_static_lazy_constraints():
self._extract_and_predict_static(solver, instance)
def after_solve(
def after_solve_mip(
self,
solver,
instance,

View File

@@ -44,7 +44,7 @@ class ObjectiveValueComponent(Component):
self._predicted_ub: Optional[float] = None
self._predicted_lb: Optional[float] = None
def before_solve(
def before_solve_mip(
self,
solver: "LearningSolver",
instance: Instance,
@@ -63,7 +63,7 @@ class ObjectiveValueComponent(Component):
)
)
def after_solve(
def after_solve_mip(
self,
solver: "LearningSolver",
instance: Instance,

View File

@@ -52,7 +52,7 @@ class PrimalSolutionComponent(Component):
self._n_zero = 0
self._n_one = 0
def before_solve(self, solver, instance, model):
def before_solve_mip(self, solver, instance, model):
if len(self.thresholds) > 0:
logger.info("Predicting primal solution...")
solution = self.predict(instance)
@@ -77,7 +77,7 @@ class PrimalSolutionComponent(Component):
else:
solver.internal_solver.set_warm_start(solution)
def after_solve(
def after_solve_mip(
self,
solver: "LearningSolver",
instance: Instance,

View File

@@ -46,7 +46,7 @@ class ConvertTightIneqsIntoEqsStep(Component):
self.converted = []
self.original_sense = {}
def before_solve(self, solver, instance, _):
def before_solve_mip(self, solver, instance, _):
logger.info("Predicting tight LP constraints...")
x, constraints = DropRedundantInequalitiesStep._x_test(
instance,
@@ -73,7 +73,7 @@ class ConvertTightIneqsIntoEqsStep(Component):
logger.info(f"Converted {self.n_converted} inequalities")
def after_solve(
def after_solve_mip(
self,
solver,
instance,

View File

@@ -50,7 +50,7 @@ class DropRedundantInequalitiesStep(Component):
self.total_kept = 0
self.total_iterations = 0
def before_solve(self, solver, instance, _):
def before_solve_mip(self, solver, instance, _):
self.current_iteration = 0
logger.info("Predicting redundant LP constraints...")
@@ -79,7 +79,7 @@ class DropRedundantInequalitiesStep(Component):
self.total_kept += 1
logger.info(f"Extracted {self.total_dropped} predicted constraints")
def after_solve(
def after_solve_mip(
self,
solver,
instance,

View File

@@ -14,11 +14,11 @@ class RelaxIntegralityStep(Component):
Component that relaxes all integrality constraints before the problem is solved.
"""
def before_solve(self, solver, instance, _):
def before_solve_mip(self, solver, instance, _):
logger.info("Relaxing integrality...")
solver.internal_solver.relax()
def after_solve(
def after_solve_mip(
self,
solver,
instance,