## Problem Description and Formulation

The problem is a linear programming optimization problem. The goal is to maximize the profit of a pie shop by determining the number of regular and premium pies to produce, given certain constraints.

### Decision Variables
- \(x_1\): The number of regular pies to produce.
- \(x_2\): The number of premium pies to produce.

### Objective Function
The profit from \(x_1\) regular pies is $8\(x_1\) and from \(x_2\) premium pies is $10\(x_2\). The objective is to maximize the total profit:
\[ \text{Maximize:} \quad 8x_1 + 10x_2 \]

### Constraints
1. **Non-negativity constraints**: \(x_1 \geq 0\) and \(x_2 \geq 0\), as the number of pies cannot be negative.
2. **Demand constraints**:
   - The demand for regular pies is at most 50: \(x_1 \leq 50\).
   - The demand for premium pies is at most 30: \(x_2 \leq 30\).
3. **Total production constraint**: The shop can only make 60 pies in total: \(x_1 + x_2 \leq 60\).

## Gurobi Code

```python
import gurobi

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

    # Define the decision variables
    x1 = model.addVar(lb=0, name="regular_pies")
    x2 = model.addVar(lb=0, name="premium_pies")

    # Objective function: Maximize profit
    model.setObjective(8 * x1 + 10 * x2, gurobi.GRB.MAXIMIZE)

    # Demand constraints
    model.addConstr(x1 <= 50, name="regular_demand_constraint")
    model.addConstr(x2 <= 30, name="premium_demand_constraint")

    # Total production constraint
    model.addConstr(x1 + x2 <= 60, name="total_production_constraint")

    # Optimize the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution found.")
        print(f"Number of regular pies to produce: {x1.x}")
        print(f"Number of premium pies to produce: {x2.x}")
        print(f"Maximum profit: ${model.objVal:.2f}")
    else:
        print("No optimal solution found.")

# Run the function
solve_pie_shop_problem()
```