Make Sample abstract; create MemorySample

This commit is contained in:
2021-07-14 08:31:01 -05:00
parent 851b8001bb
commit 235c3e55c2
7 changed files with 30 additions and 15 deletions

View File

@@ -11,7 +11,7 @@ from miplearn.classifiers import Classifier
from miplearn.classifiers.threshold import MinProbabilityThreshold
from miplearn.components import classifier_evaluation_dict
from miplearn.components.dynamic_lazy import DynamicLazyConstraintsComponent
from miplearn.features.sample import Sample
from miplearn.features.sample import Sample, MemorySample
from miplearn.instance.base import Instance
from miplearn.solvers.tests import assert_equals
@@ -22,13 +22,13 @@ E = 0.1
def training_instances() -> List[Instance]:
instances = [cast(Instance, Mock(spec=Instance)) for _ in range(2)]
samples_0 = [
Sample(
MemorySample(
{
"lazy_enforced": {"c1", "c2"},
"instance_features_user": [5.0],
},
),
Sample(
MemorySample(
{
"lazy_enforced": {"c2", "c3"},
"instance_features_user": [5.0],
@@ -53,7 +53,7 @@ def training_instances() -> List[Instance]:
}
)
samples_1 = [
Sample(
MemorySample(
{
"lazy_enforced": {"c3", "c4"},
"instance_features_user": [8.0],

View File

@@ -10,14 +10,14 @@ from numpy.testing import assert_array_equal
from miplearn.classifiers import Regressor
from miplearn.components.objective import ObjectiveValueComponent
from miplearn.features.sample import Sample
from miplearn.features.sample import Sample, MemorySample
from miplearn.solvers.learning import LearningSolver
from miplearn.solvers.pyomo.gurobi import GurobiPyomoSolver
@pytest.fixture
def sample() -> Sample:
sample = Sample(
sample = MemorySample(
{
"mip_lower_bound": 1.0,
"mip_upper_bound": 2.0,

View File

@@ -12,7 +12,7 @@ from miplearn.classifiers import Classifier
from miplearn.classifiers.threshold import Threshold
from miplearn.components import classifier_evaluation_dict
from miplearn.components.primal import PrimalSolutionComponent
from miplearn.features.sample import Sample
from miplearn.features.sample import Sample, MemorySample
from miplearn.problems.tsp import TravelingSalesmanGenerator
from miplearn.solvers.learning import LearningSolver
from miplearn.solvers.tests import assert_equals
@@ -20,7 +20,7 @@ from miplearn.solvers.tests import assert_equals
@pytest.fixture
def sample() -> Sample:
sample = Sample(
sample = MemorySample(
{
"var_names": ["x[0]", "x[1]", "x[2]", "x[3]"],
"var_categories": ["default", None, "default", "default"],

View File

@@ -11,7 +11,7 @@ from numpy.testing import assert_array_equal
from miplearn.classifiers import Classifier
from miplearn.classifiers.threshold import Threshold, MinProbabilityThreshold
from miplearn.components.static_lazy import StaticLazyConstraintsComponent
from miplearn.features.sample import Sample
from miplearn.features.sample import Sample, MemorySample
from miplearn.instance.base import Instance
from miplearn.solvers.internal import InternalSolver, Constraints
from miplearn.solvers.learning import LearningSolver
@@ -22,7 +22,7 @@ from miplearn.types import (
@pytest.fixture
def sample() -> Sample:
sample = Sample(
sample = MemorySample(
{
"constr_categories": [
"type-a",

View File

@@ -5,7 +5,7 @@
import numpy as np
from miplearn.features.extractor import FeaturesExtractor
from miplearn.features.sample import Sample
from miplearn.features.sample import Sample, MemorySample
from miplearn.solvers.internal import Variables, Constraints
from miplearn.solvers.gurobi import GurobiSolver
from miplearn.solvers.tests import assert_equals
@@ -19,7 +19,7 @@ def test_knapsack() -> None:
model = instance.to_model()
solver.set_instance(instance, model)
extractor = FeaturesExtractor()
sample = Sample()
sample = MemorySample()
# after-load
# -------------------------------------------------------