From 5b28595b0b40f8829d731575f4a1c77f7289af82 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Thu, 1 Feb 2024 12:02:23 -0600 Subject: [PATCH] BasicCollector: Make LP and MPS optional --- miplearn/collectors/basic.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/miplearn/collectors/basic.py b/miplearn/collectors/basic.py index 86b7dfc..4c6010d 100644 --- a/miplearn/collectors/basic.py +++ b/miplearn/collectors/basic.py @@ -16,6 +16,10 @@ from ..parallel import p_umap class BasicCollector: + def __init__(self, skip_lp: bool = False, write_mps: bool = True) -> None: + self.skip_lp = skip_lp + self.write_mps = write_mps + def collect( self, filenames: List[str], @@ -52,22 +56,24 @@ class BasicCollector: model = build_model(data_filename) model.extract_after_load(h5) - # Solve LP relaxation - relaxed = model.relax() - relaxed.optimize() - relaxed.extract_after_lp(h5) + if not self.skip_lp: + # Solve LP relaxation + relaxed = model.relax() + relaxed.optimize() + relaxed.extract_after_lp(h5) # Solve MIP model.optimize() model.extract_after_mip(h5) - # Add lazy constraints to model - if model.lazy_enforce is not None: - model.lazy_enforce(model, model.lazy_) + if self.write_mps: + # Add lazy constraints to model + if model.lazy_enforce is not None: + model.lazy_enforce(model, model.lazy_) - # Save MPS file - model.write(mps_filename) - gzip(mps_filename) + # Save MPS file + model.write(mps_filename) + gzip(mps_filename) h5.put_scalar("mip_log", streams[0].getvalue())