Remove sample.after_lp

This commit is contained in:
2021-07-01 12:25:50 -05:00
parent 4093ac62fd
commit b4a267a524
8 changed files with 95 additions and 78 deletions

View File

@@ -77,20 +77,15 @@ class ObjectiveValueComponent(Component):
_: Optional[Instance],
sample: Sample,
) -> Tuple[Dict[Hashable, List[List[float]]], Dict[Hashable, List[List[float]]]]:
# Instance features
assert sample.after_load is not None
assert sample.after_load.instance is not None
f = sample.after_load.instance.to_list()
# LP solve features
if sample.after_lp is not None:
assert sample.after_lp.lp_solve is not None
f.extend(sample.after_lp.lp_solve.to_list())
lp_instance_features = sample.get("lp_instance_features")
if lp_instance_features is None:
lp_instance_features = sample.get("instance_features_user")
assert lp_instance_features is not None
# Features
x: Dict[Hashable, List[List[float]]] = {
"Upper bound": [f],
"Lower bound": [f],
"Upper bound": [lp_instance_features],
"Lower bound": [lp_instance_features],
}
# Labels

View File

@@ -155,7 +155,15 @@ class PrimalSolutionComponent(Component):
assert sample.after_load.variables is not None
assert sample.after_load.variables.names is not None
assert sample.after_load.variables.categories is not None
instance_features = sample.get("instance_features_user")
mip_var_values = sample.get("mip_var_values")
var_features = sample.get("lp_var_features")
if var_features is None:
var_features = sample.get("var_features")
assert instance_features is not None
assert var_features is not None
for (i, var_name) in enumerate(sample.after_load.variables.names):
# Initialize categories
@@ -167,11 +175,8 @@ class PrimalSolutionComponent(Component):
y[category] = []
# Features
features = list(sample.after_load.instance.to_list())
features.extend(sample.after_load.variables.to_list(i))
if sample.after_lp is not None:
assert sample.after_lp.variables is not None
features.extend(sample.after_lp.variables.to_list(i))
features = list(instance_features)
features.extend(var_features[i])
x[category].append(features)
# Labels

View File

@@ -204,17 +204,26 @@ class StaticLazyConstraintsComponent(Component):
x: Dict[Hashable, List[List[float]]] = {}
y: Dict[Hashable, List[List[float]]] = {}
cids: Dict[Hashable, List[str]] = {}
assert sample.after_load is not None
constraints = sample.after_load.constraints
assert constraints is not None
assert constraints.names is not None
assert constraints.lazy is not None
assert constraints.categories is not None
for (cidx, cname) in enumerate(constraints.names):
instance_features = sample.get("instance_features_user")
constr_features = sample.get("lp_constr_features")
constr_names = sample.get("constr_names")
constr_categories = sample.get("constr_categories")
constr_lazy = sample.get("constr_lazy")
lazy_enforced = sample.get("lazy_enforced")
if constr_features is None:
constr_features = sample.get("constr_features_user")
assert instance_features is not None
assert constr_features is not None
assert constr_names is not None
assert constr_categories is not None
assert constr_lazy is not None
for (cidx, cname) in enumerate(constr_names):
# Initialize categories
if not constraints.lazy[cidx]:
if not constr_lazy[cidx]:
continue
category = constraints.categories[cidx]
category = constr_categories[cidx]
if category is None:
continue
if category not in x:
@@ -223,18 +232,12 @@ class StaticLazyConstraintsComponent(Component):
cids[category] = []
# Features
sf = sample.after_load
if sample.after_lp is not None:
sf = sample.after_lp
assert sf.instance is not None
assert sf.constraints is not None
features = list(sf.instance.to_list())
features.extend(sf.constraints.to_list(cidx))
features = list(instance_features)
features.extend(constr_features[cidx])
x[category].append(features)
cids[category].append(cname)
# Labels
lazy_enforced = sample.get("lazy_enforced")
if lazy_enforced is not None:
if cname in lazy_enforced:
y[category] += [[False, True]]