Exemplo n.º 1
0
 def add_calorie_count_constraint(self, csp):
     varsList = []
     for req in self.profile.requests:
         for meal in self.profile.meals:
             var = (req.rid, meal)
             csp.add_variable(var, [0,req.getCalorieCount()])
             varsList.append(var)
             csp.add_binary_factor((req, meal), var, lambda taken1, calorieCount: calorieCount > 0 if taken1 else calorieCount == 0 )
     util.get_sum_variable(csp, "total", varsList, self.profile.maxTotalCalories)
Exemplo n.º 2
0
 def add_ingredient_quantity_constraint(self, csp):
     for ingred in self.profile.availableIngreds:
         varsList = []
         for req in self.profile.requests:
             if req.getIngredients()[ingred] > 0:
                 for meal in self.profile.meals:                    
                     var = (req.rid, meal, ingred)
                     if ingred in req.getIngredients():
                         csp.add_variable(var, [0,req.getIngredients()[ingred]])
                     else:
                         csp.add_variable(var, [0])
                     varsList.append(var)
                     csp.add_binary_factor((req, meal), var, lambda taken1, ingredQty: ingredQty > 0 if taken1 else ingredQty == 0 )
         util.get_sum_variable(csp, ingred + "total", varsList, self.profile.availableIngreds[ingred])
Exemplo n.º 3
0
def add_salary_constraints(csp, players):
    sum_var = util.get_sum_variable(csp, "salary", positions, TOTAL_SALARY_LIMIT + 1, players)
    csp.add_unary_factor(sum_var, lambda x: x <= TOTAL_SALARY_LIMIT)
    print "Finished adding salary constraints"