testing a theory on constraint issues
This commit is contained in:
@ -63,6 +63,9 @@ class LoftService(Base):
|
|||||||
# create problem
|
# create problem
|
||||||
problem = LpProblem("ata-form-generate", LpMinimize)
|
problem = LpProblem("ata-form-generate", LpMinimize)
|
||||||
|
|
||||||
|
problem += lpSum([items[item.id]
|
||||||
|
for item in self.solver_run.items])
|
||||||
|
|
||||||
# constraints
|
# constraints
|
||||||
problem += lpSum([items[item.id]
|
problem += lpSum([items[item.id]
|
||||||
for item in self.solver_run.items]) == self.solver_run.total_form_items, 'Total form items'
|
for item in self.solver_run.items]) == self.solver_run.total_form_items, 'Total form items'
|
||||||
@ -72,21 +75,22 @@ class LoftService(Base):
|
|||||||
|
|
||||||
# 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, f'min tif theta ({target.theta}) target value {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, f'min tcc theta ({target.theta}) target value {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)
|
||||||
|
problem.solve()
|
||||||
|
|
||||||
# add return items and create as a form
|
# add return items and create as a form
|
||||||
form_items = service_helper.solution_items(problem.variables(), self.solver_run)
|
form_items = service_helper.solution_items(problem.variables(), self.solver_run)
|
||||||
|
Reference in New Issue
Block a user