## Problem Description and Formulation

The problem is an optimization problem where we need to maximize an objective function subject to several constraints. The objective function to maximize is:

\[ 8.91 \times \text{milligrams of vitamin E} + 4.08 \times \text{milligrams of potassium} + 6.4 \times \text{milligrams of vitamin A} \]

The variables are:
- \(x_0\): milligrams of vitamin E
- \(x_1\): milligrams of potassium
- \(x_2\): milligrams of vitamin A

The constraints are based on the digestive support index and kidney support index for each variable, with specific upper bounds and coefficients provided.

## Constraints

1. \( 3.06x_0 + 3.33x_1 + 3.55x_2 \geq 36 \) (Total digestive support index from \(x_0\) and \(x_1\))
2. \( 3.33x_1 + 3.55x_2 \geq 50 \) (Total digestive support index from \(x_1\) and \(x_2\))
3. \( 0.65x_0 + 0.02x_1 + 1.68x_2 \geq 48 \) (Total kidney support index)
4. \( 3.33x_1 + 3.55x_2 \leq 113 \) 
5. \( 3.06x_0 + 3.33x_1 \leq 114 \)
6. \( 3.06x_0 + 3.33x_1 + 3.55x_2 \leq 136 \)
7. \( 0.65x_0 + 1.68x_2 \leq 114 \) (Total kidney support index from \(x_0\) and \(x_2\))
8. \( 0.65x_0 + 0.02x_1 + 1.68x_2 \leq 114 \) (Same as constraint 3, but ensuring it's clear it's an upper bound)

## Gurobi Code

```python
import gurobi

def optimize():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    x0 = model.addVar(name="milligrams_of_vitamin_E", lb=0, ub=None)  # Vitamin E
    x1 = model.addVar(name="milligrams_of_potassium", lb=0, ub=None)  # Potassium
    x2 = model.addVar(name="milligrams_of_vitamin_A", lb=0, ub=None)  # Vitamin A

    # Objective function
    model.setObjective(8.91 * x0 + 4.08 * x1 + 6.4 * x2, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(3.06 * x0 + 3.33 * x1 + 3.55 * x2 >= 36, name="digestive_support_min_1")
    model.addConstr(3.33 * x1 + 3.55 * x2 >= 50, name="digestive_support_min_2")
    model.addConstr(0.65 * x0 + 0.02 * x1 + 1.68 * x2 >= 48, name="kidney_support_min")
    model.addConstr(3.33 * x1 + 3.55 * x2 <= 113, name="digestive_support_max_1")
    model.addConstr(3.06 * x0 + 3.33 * x1 <= 114, name="digestive_support_max_2")
    model.addConstr(3.06 * x0 + 3.33 * x1 + 3.55 * x2 <= 136, name="total_digestive_support_max")
    model.addConstr(0.65 * x0 + 1.68 * x2 <= 114, name="kidney_support_max_1")
    model.addConstr(0.65 * x0 + 0.02 * x1 + 1.68 * x2 <= 114, name="kidney_support_max_2")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Milligrams of Vitamin E: {x0.varValue}")
        print(f"Milligrams of Potassium: {x1.varValue}")
        print(f"Milligrams of Vitamin A: {x2.varValue}")
        print(f"Objective: {model.objVal}")
    else:
        print("No optimal solution found.")

optimize()
```