manbet体育手机客户端


减肥药


#!/usr/bin/python版权所有2018,Gurobi Opt狗万app足彩imization,LLC#解决经典饮食模型,展示如何向现有模型添加约束。来自gurobipy import*#营养指南,基于#美国农业部美国人饮食指南,2005#http://www.health.gov/DietaryGuidelines/dga2005/ 类别,营养不良,最大营养=复合食品({‘卡路里’:[18002200],‘蛋白质’:[91,GRB.INFINITY],‘脂肪’:[0,65],‘钠’:[01779])食品,成本=复合食品({“汉堡包”:2.49,“鸡肉”:2.89,“热狗”:1.50,“薯条”:1.89,“通心粉”:2.09,“比萨饼”:1.99,“沙拉”:2.49,“牛奶”:0.89,“冰淇淋”:1.59}{(“汉堡包”,“卡路里”):410,(“汉堡包”,“蛋白质”):24,(“汉堡包”,“脂肪”):26,(“汉堡包”,“钠”):730,(“鸡肉”,“卡路里”):420,(‘鸡肉’、‘蛋白质’):32,(‘鸡肉’、‘脂肪’):10,(‘鸡肉’、‘钠’):1190,(‘热狗’、‘热量’):560,(‘热狗’、‘蛋白质’):20,(‘热狗’、‘脂肪’):32,(‘热狗’、‘钠’:1800,(‘薯条’、‘热量’):380,(‘薯条’、‘蛋白质’:4,(‘薯条’、‘脂肪’):19,(‘薯条’、‘钠’:270,(‘通心粉’、‘热量’):320,(‘通心粉’、‘蛋白质’):12、(‘通心粉’、‘脂肪’):10、(‘通心粉’、‘钠’):930、(‘比萨饼’、‘卡路里’):320、(‘比萨饼’、‘蛋白质’):15、(‘比萨饼’、‘脂肪’):12、(‘比萨饼’、‘钠’):820、(‘沙拉’、‘卡路里’:31、(‘沙拉’、‘脂肪’):12、(‘沙拉’、‘钠’):1230、‘牛奶’、‘卡路里’:100、‘牛奶’、‘蛋白质’:8、,(‘牛奶’、‘脂肪’):2.5、(‘牛奶’、‘钠’):125、(‘冰淇淋’、‘卡路里’):330、(‘冰淇淋’、‘蛋白质’):8、(‘冰淇淋’、‘脂肪’):10、(‘冰淇淋’、‘钠’):180#模型m=模型(“饮食”)#为要购买的食物创建决策变量#创建#这些决策变量。以下内容相当于###buy={}#对于食品中的f:#buy[f]=m.addVar(name=f)#目标是最小化成本m.setObjective(buy.prod(cost),GRB.minimize)#使用循环结构,前面的语句将是:##m.setObjective(对于食品中的f,sum(sum(buy[f]*cost[f]),GRB.MINIMIZE)#营养约束m.addConstrs((quicksum(营养价值[f,c]*buy[f]表示食品中的f)=[minNutrition[c],maxNutrition[c]]表示类别中的c),“#”)#使用循环结构,前面的语句将是:#表示类别中的c:#m.addRange(#总和(营养价值[f,c]*buy[f]表示食品中的f),minNutrition[c],maxNutrition[c],c)def printSolution():如果m.status==GRB.status.OPTIMAL:print('\nCost:%g'%m.objVal)print('\nBuy:')buyx=m.getAttr('x',buy)for f in foods:if buy[f].x>0.0001:print('%s%g'(f,buyx[f])else:print('No solution求解m.optimate()'printSolution print('n约束:最多6份乳制品')m.addConstr(buy.sum(['milk','ice cream'))<=6,“限制奶制品”)#求解m.optimize()打印解决方案()