attempt sequential solve
This commit is contained in:
parent
4b08ad253c
commit
46d3538690
@ -134,14 +134,13 @@ class LoftService(Base):
|
|||||||
upBound=1,
|
upBound=1,
|
||||||
cat='Binary')
|
cat='Binary')
|
||||||
|
|
||||||
# problem_objection_functions = []
|
|
||||||
|
|
||||||
# create problem
|
# create problem
|
||||||
problem = LpProblem("ata-form-generate", LpMinimize)
|
problem = LpProblem("ata-form-generate", LpMinimize)
|
||||||
|
problem_objective_functions = []
|
||||||
|
|
||||||
# dummy objective function, because it just makes things easier™
|
# dummy objective function, because it just makes things easier™
|
||||||
problem += lpSum(
|
# problem += lpSum(
|
||||||
[items[item.id] for item in self.solver_run.items])
|
# [items[item.id] for item in self.solver_run.items])
|
||||||
|
|
||||||
# constraints
|
# constraints
|
||||||
# problem += lpSum([items[item.id]
|
# problem += lpSum([items[item.id]
|
||||||
@ -164,47 +163,57 @@ class LoftService(Base):
|
|||||||
logging.info('Creating TIF and TCC constraints')
|
logging.info('Creating TIF and TCC 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([
|
||||||
# for item in self.solver_run.items])
|
|
||||||
# problem_objection_functions.append(tif)
|
|
||||||
problem += lpSum([
|
|
||||||
bundle.tif(self.solver_run.irt_model, target.theta) *
|
bundle.tif(self.solver_run.irt_model, target.theta) *
|
||||||
bundles[bundle.id] for bundle in self.solver_run.bundles
|
bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||||
] + [
|
] + [
|
||||||
item.iif(self.solver_run, target.theta) * items[item.id]
|
item.iif(self.solver_run, target.theta) * items[item.id]
|
||||||
for item in self.solver_run.items
|
for item in self.solver_run.items
|
||||||
]) >= target.value - 5, f'max tif theta ({target.theta}) target value {target.value}'
|
])
|
||||||
problem += lpSum([
|
problem_objective_functions.append(tif)
|
||||||
bundle.tif(self.solver_run.irt_model, target.theta) *
|
# problem += lpSum([
|
||||||
bundles[bundle.id] for bundle in self.solver_run.bundles
|
# bundle.tif(self.solver_run.irt_model, target.theta) *
|
||||||
] + [
|
# bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||||
item.iif(self.solver_run, target.theta) * items[item.id]
|
# ] + [
|
||||||
for item in self.solver_run.items
|
# item.iif(self.solver_run, target.theta) * items[item.id]
|
||||||
]) <= target.value + 5, f'min tif theta ({target.theta}) target value {target.value}'
|
# for item in self.solver_run.items
|
||||||
|
# ]) >= target.value - 5, f'max tif theta ({target.theta}) target value {target.value}'
|
||||||
|
# problem += lpSum([
|
||||||
|
# bundle.tif(self.solver_run.irt_model, target.theta) *
|
||||||
|
# bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||||
|
# ] + [
|
||||||
|
# item.iif(self.solver_run, target.theta) * items[item.id]
|
||||||
|
# for item in self.solver_run.items
|
||||||
|
# ]) <= target.value + 5, f'min tif theta ({target.theta}) target value {target.value}'
|
||||||
|
|
||||||
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([
|
||||||
# for item in self.solver_run.items])
|
|
||||||
# problem_objection_functions.append(tcc)
|
|
||||||
problem += lpSum([
|
|
||||||
bundle.trf(self.solver_run.irt_model, target.theta) *
|
bundle.trf(self.solver_run.irt_model, target.theta) *
|
||||||
bundles[bundle.id] for bundle in self.solver_run.bundles
|
bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||||
] + [
|
] + [
|
||||||
item.irf(self.solver_run, target.theta) * items[item.id]
|
item.irf(self.solver_run, target.theta) * items[item.id]
|
||||||
for item in self.solver_run.items
|
for item in self.solver_run.items
|
||||||
]) >= target.value - 15, f'max tcc theta ({target.theta}) target value {target.value}'
|
])
|
||||||
problem += lpSum([
|
problem_objective_functions.append(tcc)
|
||||||
bundle.trf(self.solver_run.irt_model, target.theta) *
|
# problem += lpSum([
|
||||||
bundles[bundle.id] for bundle in self.solver_run.bundles
|
# bundle.trf(self.solver_run.irt_model, target.theta) *
|
||||||
] + [
|
# bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||||
item.irf(self.solver_run, target.theta) * items[item.id]
|
# ] + [
|
||||||
for item in self.solver_run.items
|
# item.irf(self.solver_run, target.theta) * items[item.id]
|
||||||
]) <= target.value + 15, f'min tcc theta ({target.theta}) target value {target.value}'
|
# for item in self.solver_run.items
|
||||||
|
# ]) >= target.value - 15, f'max tcc theta ({target.theta}) target value {target.value}'
|
||||||
|
# problem += lpSum([
|
||||||
|
# bundle.trf(self.solver_run.irt_model, target.theta) *
|
||||||
|
# bundles[bundle.id] for bundle in self.solver_run.bundles
|
||||||
|
# ] + [
|
||||||
|
# item.irf(self.solver_run, target.theta) * items[item.id]
|
||||||
|
# for item in self.solver_run.items
|
||||||
|
# ]) <= target.value + 15, f'min tcc theta ({target.theta}) target value {target.value}'
|
||||||
|
|
||||||
# solve problem
|
# solve problem
|
||||||
logging.info('Solving...')
|
logging.info('Solving...')
|
||||||
problem.solve()
|
# problem.solve()
|
||||||
# problem.sequentialSolve(problem_objection_functions)
|
problem.sequentialSolve(problem_objective_functions)
|
||||||
logging.info('Solved...generating form and adding to solution')
|
logging.info('Solved...generating form and adding to solution')
|
||||||
|
|
||||||
# add return items and create as a form
|
# add return items and create as a form
|
||||||
|
Loading…
x
Reference in New Issue
Block a user