mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 01:18:52 -06:00
Include additional features in instance.features
This commit is contained in:
@@ -9,34 +9,55 @@ from miplearn.features import (
|
||||
Constraint,
|
||||
)
|
||||
from miplearn.solvers.gurobi import GurobiSolver
|
||||
from miplearn.solvers.tests import assert_equals
|
||||
|
||||
|
||||
def test_knapsack() -> None:
|
||||
for solver_factory in [GurobiSolver]:
|
||||
solver = solver_factory()
|
||||
instance = solver.build_test_instance_knapsack()
|
||||
model = instance.to_model()
|
||||
solver.set_instance(instance, model)
|
||||
FeaturesExtractor(solver).extract(instance)
|
||||
assert instance.features.variables == {
|
||||
solver = GurobiSolver()
|
||||
instance = solver.build_test_instance_knapsack()
|
||||
model = instance.to_model()
|
||||
solver.set_instance(instance, model)
|
||||
FeaturesExtractor(solver).extract(instance)
|
||||
assert_equals(
|
||||
instance.features.variables,
|
||||
{
|
||||
"x[0]": Variable(
|
||||
category="default",
|
||||
lower_bound=0.0,
|
||||
obj_coeff=505.0,
|
||||
type="B",
|
||||
upper_bound=1.0,
|
||||
user_features=[23.0, 505.0],
|
||||
),
|
||||
"x[1]": Variable(
|
||||
category="default",
|
||||
lower_bound=0.0,
|
||||
obj_coeff=352.0,
|
||||
type="B",
|
||||
upper_bound=1.0,
|
||||
user_features=[26.0, 352.0],
|
||||
),
|
||||
"x[2]": Variable(
|
||||
category="default",
|
||||
lower_bound=0.0,
|
||||
obj_coeff=458.0,
|
||||
type="B",
|
||||
upper_bound=1.0,
|
||||
user_features=[20.0, 458.0],
|
||||
),
|
||||
"x[3]": Variable(
|
||||
category="default",
|
||||
lower_bound=0.0,
|
||||
obj_coeff=220.0,
|
||||
type="B",
|
||||
upper_bound=1.0,
|
||||
user_features=[18.0, 220.0],
|
||||
),
|
||||
}
|
||||
assert instance.features.constraints == {
|
||||
},
|
||||
)
|
||||
assert_equals(
|
||||
instance.features.constraints,
|
||||
{
|
||||
"eq_capacity": Constraint(
|
||||
lhs={
|
||||
"x[0]": 23.0,
|
||||
@@ -50,8 +71,12 @@ def test_knapsack() -> None:
|
||||
category="eq_capacity",
|
||||
user_features=[0.0],
|
||||
)
|
||||
}
|
||||
assert instance.features.instance == InstanceFeatures(
|
||||
},
|
||||
)
|
||||
assert_equals(
|
||||
instance.features.instance,
|
||||
InstanceFeatures(
|
||||
user_features=[67.0, 21.75],
|
||||
lazy_constraint_count=0,
|
||||
)
|
||||
),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user