fix trailing whitespace
This commit is contained in:
@ -62,24 +62,35 @@ class LoftService(Base):
|
|||||||
problem = LpProblem("ata-form-generate", LpMinimize)
|
problem = LpProblem("ata-form-generate", LpMinimize)
|
||||||
|
|
||||||
# constraints
|
# constraints
|
||||||
problem += lpSum([used[i]*items[i]
|
problem += lpSum([items[item.id]
|
||||||
for i in items]) == self.solver_run.total_form_items
|
for item in self.solver_run.items]) == self.solver_run.total_form_items, 'Total form items'
|
||||||
|
|
||||||
|
for constraint in self.solver_run.constraints:
|
||||||
|
con = dict(zip([item.id for item in self.solver_run.items],
|
||||||
|
[item.attribute_exists(constraint.reference_attribute.id, constraint.reference_attribute.value)
|
||||||
|
for item in self.solver_run.items]))
|
||||||
|
problem += lpSum([con[item.id]
|
||||||
|
* items[item.id]
|
||||||
|
for item in self.solver_run.items]) >= round(self.solver_run.total_form_items * (constraint.minimum / 100)), f'{constraint.reference_attribute.id} - {constraint.reference_attribute.value} - min'
|
||||||
|
problem += lpSum([con[item.id]
|
||||||
|
* items[item.id]
|
||||||
|
for item in self.solver_run.items]) <= round(self.solver_run.total_form_items * (constraint.maximum / 100)), f'{constraint.reference_attribute.id} - {constraint.reference_attribute.value} - max'
|
||||||
|
|
||||||
# multi-objective functions and constraints
|
# multi-objective functions and constraints
|
||||||
for target in self.solver_run.objective_function.tif_targets:
|
for target in self.solver_run.objective_function.tif_targets:
|
||||||
tif = lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
tif = lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items])
|
for item in self.solver_run.items])
|
||||||
problem += lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
problem += lpSum([item.iif(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items]) <= target.value
|
for item in self.solver_run.items]) <= target.value, f'min tif theta ({target.theta}) target value {target.value}'
|
||||||
problem_objection_functions.append(tif)
|
problem_objection_functions.append(tif)
|
||||||
|
|
||||||
for target in self.solver_run.objective_function.tcc_targets:
|
for target in self.solver_run.objective_function.tcc_targets:
|
||||||
tcc = lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
tcc = lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items])
|
for item in self.solver_run.items])
|
||||||
problem += lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
problem += lpSum([item.irf(self.solver_run, target.theta)*items[item.id]
|
||||||
for item in self.solver_run.items]) <= target.value
|
for item in self.solver_run.items]) <= target.value, f'min tcc theta ({target.theta}) target value {target.value}'
|
||||||
problem_objection_functions.append(tcc)
|
problem_objection_functions.append(tcc)
|
||||||
|
|
||||||
# solve problem
|
# solve problem
|
||||||
problem.sequentialSolve(problem_objection_functions)
|
problem.sequentialSolve(problem_objection_functions)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user