## Problem Description and Formulation

The problem requires minimizing the objective function:

\[ 4.05 \times \text{slices of pizza} + 6.13 \times \text{chicken breasts} \]

subject to the following constraints:

1. The cost of slices of pizza is $18 each.
2. The cost of chicken breasts is $15 each.
3. The total spend on slices of pizza and chicken breasts must be at least $101.
4. The expression \(8 \times \text{slices of pizza} - 4 \times \text{chicken breasts} \geq 0\).
5. The total cost of slices of pizza and chicken breasts must be at most $177.

## Mathematical Formulation

Let \(x_0\) be the number of slices of pizza and \(x_1\) be the number of chicken breasts.

The objective function to minimize is:

\[ 4.05x_0 + 6.13x_1 \]

Subject to:

1. \(18x_0 + 15x_1 \geq 101\)
2. \(8x_0 - 4x_1 \geq 0\)
3. \(18x_0 + 15x_1 \leq 177\)

## Gurobi Code

```python
import gurobipy as gp

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

# Define the variables
slices_of_pizza = m.addVar(name="slices_of_pizza", lb=0)  # Non-negative
chicken_breasts = m.addVar(name="chicken_breasts", lb=0)  # Non-negative

# Objective function
m.setObjective(4.05 * slices_of_pizza + 6.13 * chicken_breasts, gp.GRB.MINIMIZE)

# Constraints
m.addConstr(18 * slices_of_pizza + 15 * chicken_breasts >= 101, name="min_spend")
m.addConstr(8 * slices_of_pizza - 4 * chicken_breasts >= 0, name="balance")
m.addConstr(18 * slices_of_pizza + 15 * chicken_breasts <= 177, name="max_spend")

# Solve the model
m.solve()

# Print the solution
if m.status == gp.GRB.OPTIMAL:
    print("Optimal Solution:")
    print(f"Slices of Pizza: {slices_of_pizza.varValue}")
    print(f"Chicken Breasts: {chicken_breasts.varValue}")
    print(f"Objective: {m.objVal}")
else:
    print("No optimal solution found")
```