```json
{
  "sym_variables": [
    ("x0", "grams of carbohydrates"),
    ("x1", "milligrams of vitamin K"),
    ("x2", "milligrams of iron"),
    ("x3", "milligrams of vitamin B12"),
    ("x4", "milligrams of vitamin B1"),
    ("x5", "milligrams of vitamin B7"),
    ("x6", "milligrams of vitamin B9"),
    ("x7", "milligrams of vitamin C")
  ],
  "objective_function": "1.09*x0 + 1.84*x1 + 9.7*x2 + 5.2*x3 + 3.89*x4 + 1.97*x5 + 4.5*x6 + 2.81*x7",
  "constraints": [
    "5.02*x0 + 23.04*x1 + 16.85*x2 + 19.3*x3 + 6.39*x4 + 22.9*x5 + 24.37*x6 + 21.59*x7 >= 43",
    "24.9*x0 + 24.07*x1 + 19.5*x2 + 25.4*x3 + 19.78*x4 + 13.24*x5 + 5.6*x6 + 0.02*x7 <= 526",
    "5.02*x0 <= 398",
    "23.04*x1 + 19.3*x3 >= 33",
    "16.85*x2 + 6.39*x4 >= 26",
    "5.02*x0 + 21.59*x7 >= 26",
    "5.02*x0 + 24.37*x6 >= 20",
    "5.02*x0 + 6.39*x4 >= 19",
    "6.39*x4 + 22.9*x5 >= 16",
    "23.04*x1 + 22.9*x5 >= 25",
    "22.9*x5 + 21.59*x7 >= 27",
    "19.3*x3 + 21.59*x7 >= 43",
    "24.9*x0 + 24.07*x1 >= 44",
    "24.07*x1 + 19.5*x2 >= 40",
    "24.9*x0 + 19.78*x4 >= 54",
    "19.78*x4 + 13.24*x5 >= 54",
    "24.07*x1 + 5.6*x6 >= 37",
    "-8*x3 + 2*x7 >= 0",
    "-9*x0 + 5*x4 >= 0",
    "x2 - 4*x3 >= 0"
  ]
}
```

```python
import gurobipy as gp

# Create a new model
m = gp.Model("nutrition_optimization")

# Create variables
carbohydrates = m.addVar(vtype=gp.GRB.INTEGER, name="carbohydrates")
vitamin_k = m.addVar(vtype=gp.GRB.CONTINUOUS, name="vitamin_k")
iron = m.addVar(vtype=gp.GRB.CONTINUOUS, name="iron")
vitamin_b12 = m.addVar(vtype=gp.GRB.CONTINUOUS, name="vitamin_b12")
vitamin_b1 = m.addVar(vtype=gp.GRB.INTEGER, name="vitamin_b1")
vitamin_b7 = m.addVar(vtype=gp.GRB.INTEGER, name="vitamin_b7")
vitamin_b9 = m.addVar(vtype=gp.GRB.CONTINUOUS, name="vitamin_b9")
vitamin_c = m.addVar(vtype=gp.GRB.CONTINUOUS, name="vitamin_c")


# Set objective
m.setObjective(1.09 * carbohydrates + 1.84 * vitamin_k + 9.7 * iron + 5.2 * vitamin_b12 + 3.89 * vitamin_b1 + 1.97 * vitamin_b7 + 4.5 * vitamin_b9 + 2.81 * vitamin_c, gp.GRB.MINIMIZE)

# Add constraints from resources/attributes
m.addConstr(5.02 * carbohydrates + 23.04 * vitamin_k + 16.85 * iron + 19.3 * vitamin_b12 + 6.39 * vitamin_b1 + 22.9 * vitamin_b7 + 24.37 * vitamin_b9 + 21.59 * vitamin_c >= 43, "cognitive_performance_total")
m.addConstr(24.9 * carbohydrates + 24.07 * vitamin_k + 19.5 * iron + 25.4 * vitamin_b12 + 19.78 * vitamin_b1 + 13.24 * vitamin_b7 + 5.6 * vitamin_b9 + 0.02 * vitamin_c <= 526, "digestive_support_total")

m.addConstr(5.02 * carbohydrates <= 398, "cognitive_performance_carbohydrates")

m.addConstr(23.04 * vitamin_k + 19.3 * vitamin_b12 >= 33, "cognitive_performance_k_b12")
m.addConstr(16.85 * iron + 6.39 * vitamin_b1 >= 26, "cognitive_performance_iron_b1")
m.addConstr(5.02 * carbohydrates + 21.59 * vitamin_c >= 26, "cognitive_performance_carbohydrates_c")
m.addConstr(5.02 * carbohydrates + 24.37 * vitamin_b9 >= 20, "cognitive_performance_carbohydrates_b9")
m.addConstr(5.02 * carbohydrates + 6.39 * vitamin_b1 >= 19, "cognitive_performance_carbohydrates_b1")
m.addConstr(6.39 * vitamin_b1 + 22.9 * vitamin_b7 >= 16, "cognitive_performance_b1_b7")
m.addConstr(23.04 * vitamin_k + 22.9 * vitamin_b7 >= 25, "cognitive_performance_k_b7")
m.addConstr(22.9 * vitamin_b7 + 21.59 * vitamin_c >= 27, "cognitive_performance_b7_c")
m.addConstr(19.3 * vitamin_b12 + 21.59 * vitamin_c >= 43, "cognitive_performance_b12_c")


m.addConstr(24.9 * carbohydrates + 24.07 * vitamin_k >= 44, "digestive_support_carbohydrates_k")
m.addConstr(24.07 * vitamin_k + 19.5 * iron >= 40, "digestive_support_k_iron")
m.addConstr(24.9 * carbohydrates + 19.78 * vitamin_b1 >= 54, "digestive_support_carbohydrates_b1")
m.addConstr(19.78 * vitamin_b1 + 13.24 * vitamin_b7 >= 54, "digestive_support_b1_b7")
m.addConstr(24.07 * vitamin_k + 5.6 * vitamin_b9 >= 37, "digestive_support_k_b9")

m.addConstr(-8 * vitamin_b12 + 2 * vitamin_c >= 0, "constraint_b12_c")
m.addConstr(-9 * carbohydrates + 5 * vitamin_b1 >= 0, "constraint_carbohydrates_b1")
m.addConstr(iron - 4 * vitamin_b12 >= 0, "constraint_iron_b12")


# Optimize model
m.optimize()

# Print solution or infeasibility message
if m.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == gp.GRB.INFEASIBLE:
    print('Optimization was stopped with status %d' % m.status)
    # Compute IIS
    m.computeIIS()
    for c in m.getConstrs():
        if c.IISConstr:
            print('%s' % c.constrName)

```