dietmodel.py


#!/usr/bin/env python3.7 #版权2023,Gurobi Opt狗万app足彩imization, LLC #解决经典饮食模型。该文件实现了一个函数,该函数制定并求解模型,但它不包含模型数据。数据由调用程序#传入。运行示例'diet2.py', # 'diet3.py',或'diet4.py'来调用该函数。import gurobipy as gp from gurobipy import GRB def solve(categories, minNutrition, maxNutrition, foods, cost, nutritionValues): #模型m = gp.Model(“diet”)#为购买的食物创建决策变量buy = m.d addvars (foods, name=“buy”)#目标是最小化成本m.setObjective(buy.prod(cost), GRB. minimize) #营养约束m.d addconstrs ((gp。quicksum(nutritionValues[f, c] * buy[f] for f in foods) == [minNutrition[c], maxNutrition[c]] for c in categories), "_") def printSolution(): if m.status == GRB。OPTIMAL: print('\nCost: %g' % m.b obval) print('\nBuy:') for f in foods: if buy[f]。X> 0.0001: print('%s %g' % (f, buy[f].X)) else: print('No solution') # Solve m.optimize() printSolution() print('\nAdding constraint: at most 6 servings of dairy') m.addConstr(buy.sum(['milk', 'ice cream']) <= 6, "limit_dairy") # Solve m.optimize() printSolution()