Improve logging

pull/3/head
Alinson S. Xavier 5 years ago
parent 42a891276c
commit 6b104433be

@ -32,7 +32,7 @@ class UserCutsComponent(Component):
def before_solve(self, solver, instance, model): def before_solve(self, solver, instance, model):
logger.info("Predicting violated user cuts...") logger.info("Predicting violated user cuts...")
violations = self.predict(instance) violations = self.predict(instance)
logger.info("Enforcing %d cuts..." % len(violations)) logger.info("Enforcing %d user cuts..." % len(violations))
for v in violations: for v in violations:
cut = instance.build_user_cut(model, v) cut = instance.build_user_cut(model, v)
solver.internal_solver.add_constraint(cut) solver.internal_solver.add_constraint(cut)

@ -32,7 +32,7 @@ class LazyConstraintsComponent(Component):
def before_solve(self, solver, instance, model): def before_solve(self, solver, instance, model):
logger.info("Predicting violated lazy constraints...") logger.info("Predicting violated lazy constraints...")
violations = self.predict(instance) violations = self.predict(instance)
logger.info("Enforcing %d constraints..." % len(violations)) logger.info("Enforcing %d lazy constraints..." % len(violations))
for v in violations: for v in violations:
cut = instance.build_lazy_constraint(model, v) cut = instance.build_lazy_constraint(model, v)
solver.internal_solver.add_constraint(cut) solver.internal_solver.add_constraint(cut)

@ -23,10 +23,11 @@ class ObjectiveValueComponent(Component):
def before_solve(self, solver, instance, model): def before_solve(self, solver, instance, model):
if self.ub_regressor is not None: if self.ub_regressor is not None:
logger.info("Predicting optimal value...")
lb, ub = self.predict([instance])[0] lb, ub = self.predict([instance])[0]
instance.predicted_ub = ub instance.predicted_ub = ub
instance.predicted_lb = lb instance.predicted_lb = lb
logger.info("Predicted objective: [%.2f, %.2f]" % (lb, ub)) logger.info("Predicted values: lb=%.2f, ub=%.2f" % (lb, ub))
def after_solve(self, solver, instance, model, results): def after_solve(self, solver, instance, model, results):
if self.ub_regressor is not None: if self.ub_regressor is not None:

@ -30,6 +30,7 @@ class PrimalSolutionComponent(Component):
self.classifier_prototype = classifier self.classifier_prototype = classifier
def before_solve(self, solver, instance, model): def before_solve(self, solver, instance, model):
logger.info("Predicting primal solution...")
solution = self.predict(instance) solution = self.predict(instance)
if self.mode == "heuristic": if self.mode == "heuristic":
solver.internal_solver.fix(solution) solver.internal_solver.fix(solution)

@ -156,7 +156,7 @@ class LearningSolver:
self.internal_solver.set_instance(instance, model) self.internal_solver.set_instance(instance, model)
if solve_lp_first: if solve_lp_first:
logger.debug("Solving LP relaxation...") logger.info("Solving LP relaxation...")
results = self.internal_solver.solve_lp(tee=tee) results = self.internal_solver.solve_lp(tee=tee)
instance.lp_solution = self.internal_solver.get_solution() instance.lp_solution = self.internal_solver.get_solution()
instance.lp_value = results["Optimal value"] instance.lp_value = results["Optimal value"]
@ -171,6 +171,7 @@ class LearningSolver:
if relaxation_only: if relaxation_only:
return results return results
logger.info("Solving MILP...")
results = self.internal_solver.solve(tee=tee) results = self.internal_solver.solve(tee=tee)
results["LP value"] = instance.lp_value results["LP value"] = instance.lp_value

Loading…
Cancel
Save