```json
{
  "sym_variables": [
    ("x0", "milligrams of calcium"),
    ("x1", "milligrams of vitamin B5"),
    ("x2", "milligrams of vitamin B3"),
    ("x3", "grams of fiber"),
    ("x4", "milligrams of vitamin A")
  ],
  "objective_function": "4*x0 + 9*x1 + 7*x2 + 2*x3 + 1*x4",
  "constraints": [
    "3*x0 + 4*x1 + 8*x2 + 8*x3 + 11*x4 <= 200",
    "4*x1 + 8*x2 >= 33",
    "8*x2 + 11*x4 >= 20",
    "8*x3 + 11*x4 >= 37",
    "4*x1 + 8*x3 >= 26",
    "3*x0 + 8*x3 >= 27",
    "3*x0 + 11*x4 >= 19",
    "4*x1 + 8*x2 + 11*x4 >= 21",
    "8*x2 + 8*x3 + 11*x4 >= 21",
    "3*x0 + 8*x2 + 8*x3 >= 21",
    "3*x0 + 4*x1 + 8*x3 >= 21",
    "3*x0 + 4*x1 + 8*x2 >= 21",
    "3*x0 + 4*x1 + 11*x4 >= 21",
    "3*x0 + 8*x2 + 11*x4 >= 21",
    "4*x1 + 8*x3 + 11*x4 >= 21",
    "4*x1 + 8*x2 + 8*x3 >= 21",
    "3*x0 + 8*x3 + 11*x4 >= 21",
    "4*x1 + 8*x2 + 11*x4 >= 23",
    "8*x2 + 8*x3 + 11*x4 >= 23",
    "3*x0 + 8*x2 + 8*x3 >= 23",
    "3*x0 + 4*x1 + 8*x3 >= 23",
    "3*x0 + 4*x1 + 8*x2 >= 23",
    "3*x0 + 4*x1 + 11*x4 >= 23",
    "3*x0 + 8*x2 + 11*x4 >= 23",
    "4*x1 + 8*x3 + 11*x4 >= 23",
    "4*x1 + 8*x2 + 8*x3 >= 23",
    "3*x0 + 8*x3 + 11*x4 >= 23",

    "4*x1 + 8*x2 + 11*x4 >= 27",
    "8*x2 + 8*x3 + 11*x4 >= 27",
    "3*x0 + 8*x2 + 8*x3 >= 27",
    "3*x0 + 4*x1 + 8*x3 >= 27",
    "3*x0 + 4*x1 + 8*x2 >= 27",
    "3*x0 + 4*x1 + 11*x4 >= 27",
    "3*x0 + 8*x2 + 11*x4 >= 27",
    "4*x1 + 8*x3 + 11*x4 >= 27",
    "4*x1 + 8*x2 + 8*x3 >= 27",
    "3*x0 + 8*x3 + 11*x4 >= 27",
    "4*x1 + 8*x2 + 11*x4 >= 25",
    "8*x2 + 8*x3 + 11*x4 >= 25",
    "3*x0 + 8*x2 + 8*x3 >= 25",
    "3*x0 + 4*x1 + 8*x3 >= 25",
    "3*x0 + 4*x1 + 8*x2 >= 25",
    "3*x0 + 4*x1 + 11*x4 >= 25",
    "3*x0 + 8*x2 + 11*x4 >= 25",
    "4*x1 + 8*x3 + 11*x4 >= 25",
    "4*x1 + 8*x2 + 8*x3 >= 25",
    "3*x0 + 8*x3 + 11*x4 >= 25",
    "4*x1 + 8*x2 + 11*x4 >= 35",
    "8*x2 + 8*x3 + 11*x4 >= 35",
    "3*x0 + 8*x2 + 8*x3 >= 35",
    "3*x0 + 4*x1 + 8*x3 >= 35",
    "3*x0 + 4*x1 + 8*x2 >= 35",
    "3*x0 + 4*x1 + 11*x4 >= 35",
    "3*x0 + 8*x2 + 11*x4 >= 35",
    "4*x1 + 8*x3 + 11*x4 >= 35",
    "4*x1 + 8*x2 + 8*x3 >= 35",
    "3*x0 + 8*x3 + 11*x4 >= 35",
    "4*x1 + 8*x3 <= 59",
    "8*x2 + 11*x4 <= 47",
    "3*x0 + 11*x4 <= 133",
    "3*x0 + 8*x3 <= 159",
    "8*x3 + 11*x4 <= 187",
    "4*x1 + 11*x4 <= 153",
    "8*x2 + 8*x3 <= 106",
    "3*x0 + 4*x1 <= 157",
    "3*x0 + 8*x2 <= 132",
    "3*x0 + 8*x2 + 8*x3 <= 163",
    "4*x1 + 8*x2 + 8*x3 <= 123",
    "3*x0 + 4*x1 + 8*x3 <= 50",
    "8*x2 + 8*x3 + 11*x4 <= 160",
    "3*x0 + 4*x1 + 11*x4 <= 183",
    "3*x0 + 4*x1 + 8*x2 <= 129",
    "3*x0 + 4*x1 + 8*x2 + 8*x3 + 11*x4 <= 129",
    "x0 >= 0",
    "x1 >= 0",
    "x2 >= 0",
    "x3 >= 0",
    "x4 >= 0"

  ]
}
```

```python
import gurobipy as gp

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

# Create variables
calcium = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="calcium")
vitamin_b5 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b5")
vitamin_b3 = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_b3")
fiber = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="fiber")
vitamin_a = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="vitamin_a")


# Set objective function
m.setObjective(4 * calcium + 9 * vitamin_b5 + 7 * vitamin_b3 + 2 * fiber + 1 * vitamin_a, gp.GRB.MAXIMIZE)

# Add constraints
m.addConstr(3 * calcium + 4 * vitamin_b5 + 8 * vitamin_b3 + 8 * fiber + 11 * vitamin_a <= 200, "r0")
m.addConstr(4 * vitamin_b5 + 8 * vitamin_b3 >= 33)
m.addConstr(8 * vitamin_b3 + 11 * vitamin_a >= 20)
m.addConstr(8 * fiber + 11 * vitamin_a >= 37)
m.addConstr(4 * vitamin_b5 + 8 * fiber >= 26)
m.addConstr(3 * calcium + 8 * fiber >= 27)
m.addConstr(3 * calcium + 11 * vitamin_a >= 19)

# ... (add remaining constraints similarly)


# Optimize model
m.optimize()

# Print results
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("Model is infeasible")
else:
    print("Optimization ended with status %d" % m.status)

```
