tweak the metadata constraints to always consider bundles
This commit is contained in:
parent
aaa672c14c
commit
4acb9545d4
@ -31,26 +31,24 @@ def build_constraints(solver_run: SolverRun, problem: LpProblem,
|
|||||||
boolean_to_int(item.attribute_exists(attribute))
|
boolean_to_int(item.attribute_exists(attribute))
|
||||||
for item in solver_run.items
|
for item in solver_run.items
|
||||||
]))
|
]))
|
||||||
|
|
||||||
problem += lpSum(
|
problem += lpSum(
|
||||||
[
|
[
|
||||||
len(bundle.items_with_attribute(attribute)) * bundles[bundle.id] for bundle in solver_run.bundles
|
len(bundle.items_with_attribute(attribute)) * bundles[bundle.id] for bundle in solver_run.bundles
|
||||||
] +
|
] +
|
||||||
[
|
[
|
||||||
con[item.id] * items[item.id] for item in solver_run.unbundled_items
|
con[item.id] * items[item.id] for item in solver_run.unbundled_items()
|
||||||
]
|
]
|
||||||
) >= round(
|
) >= round(total_form_items * (min / 100)), f'{attribute.id} - {attribute.value} - min'
|
||||||
total_form_items *
|
|
||||||
(min / 100)), f'{attribute.id} - {attribute.value} - min'
|
problem += lpSum(
|
||||||
# problem += lpSum([
|
[
|
||||||
# con[item.id] * items[item.id] for item in solver_run.items
|
len(bundle.items_with_attribute(attribute)) * bundles[bundle.id] for bundle in solver_run.bundles
|
||||||
# ]) >= round(
|
] +
|
||||||
# total_form_items *
|
[
|
||||||
# (min / 100)), f'{attribute.id} - {attribute.value} - min'
|
con[item.id] * items[item.id] for item in solver_run.unbundled_items()
|
||||||
problem += lpSum([
|
]
|
||||||
con[item.id] * items[item.id] for item in solver_run.items
|
) <= round(total_form_items * (min / 100)), f'{attribute.id} - {attribute.value} - max'
|
||||||
]) <= round(
|
|
||||||
total_form_items *
|
|
||||||
(max / 100)), f'{attribute.id} - {attribute.value} - max'
|
|
||||||
elif attribute.type == 'bundle':
|
elif attribute.type == 'bundle':
|
||||||
logging.info('Bundles Constraint Generating...')
|
logging.info('Bundles Constraint Generating...')
|
||||||
# TODO: account for many different bundle types, since the id condition in L33 could yield duplicates
|
# TODO: account for many different bundle types, since the id condition in L33 could yield duplicates
|
||||||
|
Loading…
x
Reference in New Issue
Block a user