From b720dfa3527c068670ea0148e4700971dd277cb4 Mon Sep 17 00:00:00 2001
From: Joshua Burman <jburman@meazurelearning.com>
Date: Wed, 9 Feb 2022 13:10:29 -0500
Subject: [PATCH] tighten up tif and tcc targets

---
 app/services/loft_service.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/services/loft_service.py b/app/services/loft_service.py
index 2032ae9..4f20817 100644
--- a/app/services/loft_service.py
+++ b/app/services/loft_service.py
@@ -95,7 +95,7 @@ class LoftService(Base):
 
       return solution
 
-  def recursive_solve(self, items, bundles_amount, attempts = 1000) -> LpProblem:
+  def recursive_solve(self, items, bundles_amount, attempts = 5000) -> LpProblem:
     selected_bundles = solver_helper.get_random_bundles(
                                         self.solver_run.total_form_items,
                                         bundles_amount,
@@ -127,15 +127,15 @@ class LoftService(Base):
     # multi-objective constraints
     for target in self.solver_run.objective_function.tif_targets:
       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.2, f'max tif theta ({target.theta}) target value {target.value}'
       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.2, f'min tif theta ({target.theta}) target value {target.value}'
 
     for target in self.solver_run.objective_function.tcc_targets:
       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.1, f'max tcc theta ({target.theta}) target value {target.value}'
       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.1, f'min tcc theta ({target.theta}) target value {target.value}'
 
     # solve problem
     problem.solve()