mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 09:28:51 -06:00
Add variables to model features
This commit is contained in:
@@ -21,10 +21,11 @@ class ModelFeaturesExtractor:
|
|||||||
constraints: Dict[str, ConstraintFeatures] = {}
|
constraints: Dict[str, ConstraintFeatures] = {}
|
||||||
for cid in self.solver.get_constraint_ids():
|
for cid in self.solver.get_constraint_ids():
|
||||||
constraints[cid] = {
|
constraints[cid] = {
|
||||||
"rhs": self.solver.get_constraint_rhs(cid),
|
"RHS": self.solver.get_constraint_rhs(cid),
|
||||||
"lhs": self.solver.get_constraint_lhs(cid),
|
"LHS": self.solver.get_constraint_lhs(cid),
|
||||||
"sense": self.solver.get_constraint_sense(cid),
|
"Sense": self.solver.get_constraint_sense(cid),
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
"constraints": constraints,
|
"Constraints": constraints,
|
||||||
|
"Variables": self.solver.get_empty_solution(),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,9 +76,9 @@ LearningSolveStats = TypedDict(
|
|||||||
ConstraintFeatures = TypedDict(
|
ConstraintFeatures = TypedDict(
|
||||||
"ConstraintFeatures",
|
"ConstraintFeatures",
|
||||||
{
|
{
|
||||||
"rhs": float,
|
"RHS": float,
|
||||||
"lhs": Dict[str, float],
|
"LHS": Dict[str, float],
|
||||||
"sense": str,
|
"Sense": str,
|
||||||
},
|
},
|
||||||
total=False,
|
total=False,
|
||||||
)
|
)
|
||||||
@@ -86,7 +86,8 @@ ConstraintFeatures = TypedDict(
|
|||||||
ModelFeatures = TypedDict(
|
ModelFeatures = TypedDict(
|
||||||
"ModelFeatures",
|
"ModelFeatures",
|
||||||
{
|
{
|
||||||
"constraints": Dict[str, ConstraintFeatures],
|
"Variables": Solution,
|
||||||
|
"Constraints": Dict[str, ConstraintFeatures],
|
||||||
},
|
},
|
||||||
total=False,
|
total=False,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -21,11 +21,19 @@ def test_knapsack() -> None:
|
|||||||
|
|
||||||
# Test constraint features
|
# Test constraint features
|
||||||
print(solver, features)
|
print(solver, features)
|
||||||
assert features["constraints"]["eq_capacity"]["lhs"] == {
|
assert features["Variables"] == {
|
||||||
|
"x": {
|
||||||
|
0: None,
|
||||||
|
1: None,
|
||||||
|
2: None,
|
||||||
|
3: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert features["Constraints"]["eq_capacity"]["LHS"] == {
|
||||||
"x[0]": 23.0,
|
"x[0]": 23.0,
|
||||||
"x[1]": 26.0,
|
"x[1]": 26.0,
|
||||||
"x[2]": 20.0,
|
"x[2]": 20.0,
|
||||||
"x[3]": 18.0,
|
"x[3]": 18.0,
|
||||||
}
|
}
|
||||||
assert features["constraints"]["eq_capacity"]["sense"] == "<"
|
assert features["Constraints"]["eq_capacity"]["Sense"] == "<"
|
||||||
assert features["constraints"]["eq_capacity"]["rhs"] == 67.0
|
assert features["Constraints"]["eq_capacity"]["RHS"] == 67.0
|
||||||
|
|||||||
Reference in New Issue
Block a user