## Problem Description and Formulation

The problem is an optimization problem with the goal to maximize the objective function:

\[ 5 \times \text{mg of vitamin B12} + 9 \times \text{mg of vitamin B5} + 2 \times \text{mg of iron} \]

subject to several constraints related to muscle growth index, energy stability index, and cognitive performance index.

## Constraints

1. **Muscle Growth Index Constraints:**
   - \(\text{mg of vitamin B12} \times 6 + \text{mg of vitamin B5} \times 20 + \text{mg of iron} \times 11 \leq 98\)
   - The total combined muscle growth index from milligrams of vitamin B12, vitamin B5, and iron should be 98 at maximum.

2. **Energy Stability Index Constraints:**
   - \(\text{mg of vitamin B5} \times 9 + \text{mg of iron} \times 8 \geq 8\)
   - \(\text{mg of vitamin B12} \times 12 + \text{mg of vitamin B5} \times 9 + \text{mg of iron} \times 8 \geq 23\)
   - \(\text{mg of vitamin B5} \times 9 + \text{mg of iron} \times 8 \leq 66\)
   - \(\text{mg of vitamin B12} \times 12 + \text{mg of vitamin B5} \times 9 + \text{mg of iron} \times 8 \leq 66\)

3. **Cognitive Performance Index Constraints:**
   - \(\text{mg of vitamin B5} \times 13 + \text{mg of iron} \times 8 \leq 106\)
   - \(\text{mg of vitamin B12} \times 7 + \text{mg of vitamin B5} \times 13 \leq 67\)
   - \(\text{mg of vitamin B12} \times 7 + \text{mg of vitamin B5} \times 13 + \text{mg of iron} \times 8 \leq 67\)

## Gurobi Code Formulation

```python
import gurobi

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

    # Define variables
    vitamin_B12 = model.addVar(lb=-gurobi.GRB.INFINITY, name="vitamin_B12")
    vitamin_B5 = model.addVar(lb=-gurobi.GRB.INFINITY, name="vitamin_B5")
    iron = model.addVar(lb=-gurobi.GRB.INFINITY, name="iron")

    # Objective function
    model.setObjective(5 * vitamin_B12 + 9 * vitamin_B5 + 2 * iron, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(6 * vitamin_B12 + 20 * vitamin_B5 + 11 * iron <= 98, name="muscle_growth_index")
    model.addConstr(9 * vitamin_B5 + 8 * iron >= 8, name="energy_stability_index_B5_iron")
    model.addConstr(12 * vitamin_B12 + 9 * vitamin_B5 + 8 * iron >= 23, name="energy_stability_index_total")
    model.addConstr(9 * vitamin_B5 + 8 * iron <= 66, name="energy_stability_index_B5_iron_max")
    model.addConstr(12 * vitamin_B12 + 9 * vitamin_B5 + 8 * iron <= 66, name="energy_stability_index_total_max")
    model.addConstr(13 * vitamin_B5 + 8 * iron <= 106, name="cognitive_performance_index_B5_iron")
    model.addConstr(7 * vitamin_B12 + 13 * vitamin_B5 <= 67, name="cognitive_performance_index_B12_B5")
    model.addConstr(7 * vitamin_B12 + 13 * vitamin_B5 + 8 * iron <= 67, name="cognitive_performance_index_total")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Vitamin B12: {vitamin_B12.varValue}")
        print(f"Vitamin B5: {vitamin_B5.varValue}")
        print(f"Iron: {iron.varValue}")
        print(f"Objective: {model.objVal}")
    else:
        print("No optimal solution found.")

optimize_vitamins()
```