stitchlab-optimization 0.0.2__tar.gz → 0.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {stitchlab_optimization-0.0.2/src/stitchlab_optimization.egg-info → stitchlab_optimization-0.0.3}/PKG-INFO +1 -1
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/pyproject.toml +1 -1
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/__init__.py +1 -1
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/builder/model.py +6 -3
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3/src/stitchlab_optimization.egg-info}/PKG-INFO +1 -1
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/LICENSE +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/README.md +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/setup.cfg +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/builder/__init__.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/builder/workflow.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/logger/__init__.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/logger/file_logger.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/logger/manager.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/logger/sqlite_logger.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/solver/__init__.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/solver/config.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/solver/engine.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/solver/status.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/tools/query/snowflake.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/tools/query/sqlite.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization/tools/utils.py +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization.egg-info/SOURCES.txt +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization.egg-info/dependency_links.txt +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization.egg-info/requires.txt +0 -0
- {stitchlab_optimization-0.0.2 → stitchlab_optimization-0.0.3}/src/stitchlab_optimization.egg-info/top_level.txt +0 -0
|
@@ -126,6 +126,7 @@ class ModelBuilder(Generic[ParamsBaseModel, SolutionBaseModel], ABC):
|
|
|
126
126
|
|
|
127
127
|
elif self.solver_engine == SolverEngine.ORTOOLS_CPSAT:
|
|
128
128
|
self.solve_ortools_cpsat()
|
|
129
|
+
|
|
129
130
|
else:
|
|
130
131
|
raise ValueError(f"Solver engine {self.solver_engine} not supported")
|
|
131
132
|
|
|
@@ -396,11 +397,13 @@ class OptimizationModel(Generic[ParamsBaseModel, SolutionBaseModel], ABC, metacl
|
|
|
396
397
|
|
|
397
398
|
# Objective value (only available if model solved)
|
|
398
399
|
try:
|
|
399
|
-
objective_value = builder.
|
|
400
|
+
objective_value = builder.model_output.ObjectiveValue()
|
|
401
|
+
best_bound = builder.model_output.BestObjectiveBound()
|
|
402
|
+
optimality_gap = abs(objective_value - best_bound) / max(1.0, abs(objective_value))
|
|
403
|
+
|
|
400
404
|
except Exception:
|
|
401
405
|
objective_value = None
|
|
402
|
-
|
|
403
|
-
optimality_gap = None
|
|
406
|
+
optimality_gap = None
|
|
404
407
|
|
|
405
408
|
elif solver_engine == SolverEngine.PYSCIPOPT:
|
|
406
409
|
problem_size_vars = builder.model.getNVars()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|