mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 01:18:52 -06:00
Only use warmstart=true if warm start is available
This commit is contained in:
@@ -78,10 +78,14 @@ class LearningSolver:
|
||||
for component in self.components.values():
|
||||
component.before_solve(self, instance, model)
|
||||
|
||||
is_warm_start_available = False
|
||||
if "warm-start" in self.components.keys():
|
||||
if self.components["warm-start"].is_warm_start_available:
|
||||
is_warm_start_available = True
|
||||
if self.is_persistent:
|
||||
solve_results = self.internal_solver.solve(tee=tee, warmstart=True)
|
||||
solve_results = self.internal_solver.solve(tee=tee, warmstart=is_warm_start_available)
|
||||
else:
|
||||
solve_results = self.internal_solver.solve(model, tee=tee, warmstart=True)
|
||||
solve_results = self.internal_solver.solve(model, tee=tee, warmstart=is_warm_start_available)
|
||||
|
||||
solve_results["Solver"][0]["Nodes"] = self.internal_solver._solver_model.getAttr("NodeCount")
|
||||
|
||||
|
||||
@@ -130,6 +130,7 @@ class WarmStartComponent(Component):
|
||||
self.y_train = {}
|
||||
self.predictors = {}
|
||||
self.predictor_prototype = predictor_prototype
|
||||
self.is_warm_start_available = False
|
||||
|
||||
def before_solve(self, solver, instance, model):
|
||||
# Build x_test
|
||||
@@ -163,8 +164,11 @@ class WarmStartComponent(Component):
|
||||
else:
|
||||
if ws[i,0] == 1:
|
||||
var[index].value = 0
|
||||
self.is_warm_start_available = True
|
||||
elif ws[i,1] == 1:
|
||||
var[index].value = 1
|
||||
self.is_warm_start_available = True
|
||||
|
||||
|
||||
def after_solve(self, solver, instance, model):
|
||||
y_test = SolutionExtractor().extract([instance], [model])
|
||||
|
||||
Reference in New Issue
Block a user