Rename LazyConstraintsComponent to DynamicLazyConstraintsComponent

pull/3/head
Alinson S. Xavier 5 years ago
parent 425ea2b7cc
commit 5390a5b656

@ -9,7 +9,7 @@ from .extractors import (SolutionExtractor,
from .components.component import Component from .components.component import Component
from .components.objective import ObjectiveValueComponent from .components.objective import ObjectiveValueComponent
from .components.lazy import LazyConstraintsComponent from .components.lazy_dynamic import DynamicLazyConstraintsComponent
from .components.lazy_static import StaticLazyConstraintsComponent from .components.lazy_static import StaticLazyConstraintsComponent
from .components.cuts import UserCutsComponent from .components.cuts import UserCutsComponent
from .components.primal import PrimalSolutionComponent from .components.primal import PrimalSolutionComponent

@ -14,7 +14,7 @@ from ..extractors import *
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class LazyConstraintsComponent(Component): class DynamicLazyConstraintsComponent(Component):
""" """
A component that predicts which lazy constraints to enforce. A component that predicts which lazy constraints to enforce.
""" """

@ -5,7 +5,7 @@
from unittest.mock import Mock from unittest.mock import Mock
import numpy as np import numpy as np
from miplearn import LazyConstraintsComponent, LearningSolver, InternalSolver from miplearn import DynamicLazyConstraintsComponent, LearningSolver, InternalSolver
from miplearn.classifiers import Classifier from miplearn.classifiers import Classifier
from miplearn.tests import get_test_pyomo_instances from miplearn.tests import get_test_pyomo_instances
from numpy.linalg import norm from numpy.linalg import norm
@ -18,7 +18,7 @@ def test_lazy_fit():
instances[0].found_violated_lazy_constraints = ["a", "b"] instances[0].found_violated_lazy_constraints = ["a", "b"]
instances[1].found_violated_lazy_constraints = ["b", "c"] instances[1].found_violated_lazy_constraints = ["b", "c"]
classifier = Mock(spec=Classifier) classifier = Mock(spec=Classifier)
component = LazyConstraintsComponent(classifier=classifier) component = DynamicLazyConstraintsComponent(classifier=classifier)
component.fit(instances) component.fit(instances)
@ -55,7 +55,7 @@ def test_lazy_before():
instances[0].build_lazy_constraint = Mock(return_value="c1") instances[0].build_lazy_constraint = Mock(return_value="c1")
solver = LearningSolver() solver = LearningSolver()
solver.internal_solver = Mock(spec=InternalSolver) solver.internal_solver = Mock(spec=InternalSolver)
component = LazyConstraintsComponent(threshold=0.10) component = DynamicLazyConstraintsComponent(threshold=0.10)
component.classifiers = {"a": Mock(spec=Classifier), component.classifiers = {"a": Mock(spec=Classifier),
"b": Mock(spec=Classifier)} "b": Mock(spec=Classifier)}
component.classifiers["a"].predict_proba = Mock(return_value=[[0.95, 0.05]]) component.classifiers["a"].predict_proba = Mock(return_value=[[0.95, 0.05]])
@ -81,7 +81,7 @@ def test_lazy_before():
def test_lazy_evaluate(): def test_lazy_evaluate():
instances, models = get_test_pyomo_instances() instances, models = get_test_pyomo_instances()
component = LazyConstraintsComponent() component = DynamicLazyConstraintsComponent()
component.classifiers = {"a": Mock(spec=Classifier), component.classifiers = {"a": Mock(spec=Classifier),
"b": Mock(spec=Classifier), "b": Mock(spec=Classifier),
"c": Mock(spec=Classifier)} "c": Mock(spec=Classifier)}

@ -9,7 +9,7 @@ from p_tqdm import p_map
from .. import (ObjectiveValueComponent, from .. import (ObjectiveValueComponent,
PrimalSolutionComponent, PrimalSolutionComponent,
LazyConstraintsComponent, DynamicLazyConstraintsComponent,
UserCutsComponent) UserCutsComponent)
from .pyomo.cplex import CplexPyomoSolver from .pyomo.cplex import CplexPyomoSolver
from .pyomo.gurobi import GurobiPyomoSolver from .pyomo.gurobi import GurobiPyomoSolver
@ -66,7 +66,7 @@ class LearningSolver:
else: else:
self.add(ObjectiveValueComponent()) self.add(ObjectiveValueComponent())
self.add(PrimalSolutionComponent()) self.add(PrimalSolutionComponent())
self.add(LazyConstraintsComponent()) self.add(DynamicLazyConstraintsComponent())
self.add(UserCutsComponent()) self.add(UserCutsComponent())
assert self.mode in ["exact", "heuristic"] assert self.mode in ["exact", "heuristic"]

@ -6,7 +6,7 @@ import logging
import pickle import pickle
import tempfile import tempfile
from miplearn import LazyConstraintsComponent from miplearn import DynamicLazyConstraintsComponent
from miplearn import LearningSolver from miplearn import LearningSolver
from . import _get_instance, _get_internal_solvers from . import _get_instance, _get_internal_solvers
@ -61,7 +61,7 @@ def test_parallel_solve():
def test_add_components(): def test_add_components():
solver = LearningSolver(components=[]) solver = LearningSolver(components=[])
solver.add(LazyConstraintsComponent()) solver.add(DynamicLazyConstraintsComponent())
solver.add(LazyConstraintsComponent()) solver.add(DynamicLazyConstraintsComponent())
assert len(solver.components) == 1 assert len(solver.components) == 1
assert "LazyConstraintsComponent" in solver.components assert "LazyConstraintsComponent" in solver.components

Loading…
Cancel
Save