tighter tif and tcc

This commit is contained in:
Joshua Burman 2022-02-09 23:24:51 -05:00
parent 24168f6bbb
commit 7031c03fde
2 changed files with 5 additions and 4 deletions

View File

@ -1,5 +1,6 @@
from pulp import lpSum, LpProblem from pulp import lpSum, LpProblem
from random import randint, sample from random import randint, sample
import logging import logging
from models.bundle import Bundle from models.bundle import Bundle

View File

@ -93,15 +93,15 @@ 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:
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 - 8, f'max tif theta ({target.theta}) target value {target.value}' for item in self.solver_run.items]) >= target.value - target.value * 0.15, f'max tif theta ({target.theta}) target value {target.value}'
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 + 8, f'min tif theta ({target.theta}) target value {target.value}' for item in self.solver_run.items]) <= target.value + target.value * 0.15, 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:
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 - 20, f'max tcc theta ({target.theta}) target value {target.value}' for item in self.solver_run.items]) >= target.value - target.value * 0.2, f'max tcc theta ({target.theta}) target value {target.value}'
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 + 20, f'min tcc theta ({target.theta}) target value {target.value}' for item in self.solver_run.items]) <= target.value + target.value * 0.2, f'min tcc theta ({target.theta}) target value {target.value}'
# solve problem # solve problem
logging.info('Solving...') logging.info('Solving...')