## Problem Description and Formulation

The problem is an optimization problem with the goal to maximize a given objective function subject to several constraints. The variables are 'chicken breasts', 'steaks', and 'lemons'. The objective function to maximize is:

\[ 1 \times (\text{chicken breasts})^2 + 8 \times (\text{steaks})^2 + 5 \times \text{steaks} \times \text{lemons} + 3 \times (\text{lemons})^2 + 5 \times \text{chicken breasts} \]

Subject to the following constraints:

1. Umami index constraints:
   - Chicken breasts: 1
   - Steaks: 6
   - Lemons: 3

2. Constraints:
   - $(\text{steaks})^2 + (\text{lemons})^2 \geq 19$
   - $1 \times \text{chicken breasts} + 3 \times \text{lemons} \geq 11$
   - $8 \times (\text{chicken breasts})^2 - 3 \times (\text{lemons})^2 \geq 0$
   - $1 \times \text{chicken breasts} + 6 \times \text{steaks} \leq 62$
   - $6 \times \text{steaks} + 3 \times \text{lemons} \leq 27$
   - $1 \times \text{chicken breasts} + 3 \times \text{lemons} \leq 32$
   - $1 \times \text{chicken breasts} + 6 \times \text{steaks} + 3 \times \text{lemons} \leq 32$

3. Variable constraints:
   - $\text{chicken breasts}$ must be an integer (non-fractional)
   - $\text{steaks}$ must be an integer
   - $\text{lemons}$ must be an integer

## Gurobi Code Formulation

```python
import gurobi

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

    # Define variables
    chicken_breasts = model.addVar(name="chicken_breasts", vtype=gurobi.GRB.INTEGER)
    steaks = model.addVar(name="steaks", vtype=gurobi.GRB.INTEGER)
    lemons = model.addVar(name="lemons", vtype=gurobi.GRB.INTEGER)

    # Objective function
    model.setObjective(1 * chicken_breasts**2 + 8 * steaks**2 + 5 * steaks * lemons + 3 * lemons**2 + 5 * chicken_breasts, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(steaks**2 + lemons**2 >= 19)
    model.addConstr(chicken_breasts + 3 * lemons >= 11)
    model.addConstr(8 * chicken_breasts**2 - 3 * lemons**2 >= 0)
    model.addConstr(chicken_breasts + 6 * steaks <= 62)
    model.addConstr(6 * steaks + 3 * lemons <= 27)
    model.addConstr(chicken_breasts + 3 * lemons <= 32)
    model.addConstr(chicken_breasts + 6 * steaks + 3 * lemons <= 32)

    # Umami index upper bounds for variables (not necessary as already defined in constraints)
    # model.addConstr(chicken_breasts <= 70)  # Not directly needed, part of other constraints
    # model.addConstr(6 * steaks <= 70)
    # model.addConstr(3 * lemons <= 70)

    # Solve the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Chicken Breasts: {chicken_breasts.varValue}")
        print(f"Steaks: {steaks.varValue}")
        print(f"Lemons: {lemons.varValue}")
        print(f"Objective: {model.objVal}")
    else:
        print("The model is infeasible.")

solve_optimization_problem()
```