Try our new documentation site (beta).
Filter Content By
Version
Text Search
${sidebar_list_label} - Back
Filter by Language
diet2.py
#!/usr/bin/env python3.11 # Copyright 2024, Gurobi Optimization, LLC # Separate the model (dietmodel.py) from the data file (diet2.py), so # that the model can be solved with different data files. # # Nutrition guidelines, based on # USDA Dietary Guidelines for Americans, 2005 # http://www.health.gov/DietaryGuidelines/dga2005/ import dietmodel import gurobipy as gp from gurobipy import GRB categories, minNutrition, maxNutrition = gp.multidict( { "calories": [1800, 2200], "protein": [91, GRB.INFINITY], "fat": [0, 65], "sodium": [0, 1779], } ) foods, cost = gp.multidict( { "hamburger": 2.49, "chicken": 2.89, "hot dog": 1.50, "fries": 1.89, "macaroni": 2.09, "pizza": 1.99, "salad": 2.49, "milk": 0.89, "ice cream": 1.59, } ) # Nutrition values for the foods nutritionValues = { ("hamburger", "calories"): 410, ("hamburger", "protein"): 24, ("hamburger", "fat"): 26, ("hamburger", "sodium"): 730, ("chicken", "calories"): 420, ("chicken", "protein"): 32, ("chicken", "fat"): 10, ("chicken", "sodium"): 1190, ("hot dog", "calories"): 560, ("hot dog", "protein"): 20, ("hot dog", "fat"): 32, ("hot dog", "sodium"): 1800, ("fries", "calories"): 380, ("fries", "protein"): 4, ("fries", "fat"): 19, ("fries", "sodium"): 270, ("macaroni", "calories"): 320, ("macaroni", "protein"): 12, ("macaroni", "fat"): 10, ("macaroni", "sodium"): 930, ("pizza", "calories"): 320, ("pizza", "protein"): 15, ("pizza", "fat"): 12, ("pizza", "sodium"): 820, ("salad", "calories"): 320, ("salad", "protein"): 31, ("salad", "fat"): 12, ("salad", "sodium"): 1230, ("milk", "calories"): 100, ("milk", "protein"): 8, ("milk", "fat"): 2.5, ("milk", "sodium"): 125, ("ice cream", "calories"): 330, ("ice cream", "protein"): 8, ("ice cream", "fat"): 10, ("ice cream", "sodium"): 180, } dietmodel.solve(categories, minNutrition, maxNutrition, foods, cost, nutritionValues)