## Problem Description and Formulation

The actor needs to gain weight by eating pizza and donuts while minimizing costs. The requirements are:

- A minimum of 3000 calories per day
- At least 200 grams of fat per day

The characteristics of each food item are:

- Pizza: $4, 300 calories, 10 grams of fat
- Donut: $2, 200 calories, 7 grams of fat

Let's denote:
- \(P\) as the number of pizzas
- \(D\) as the number of donuts

The objective is to minimize the total cost: \(4P + 2D\)

Subject to:
1. \(300P + 200D \geq 3000\) (calories constraint)
2. \(10P + 7D \geq 200\) (fat constraint)
3. \(P \geq 0, D \geq 0\) (non-negativity constraint)

## Gurobi Code

```python
import gurobi

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

    # Define variables
    P = model.addVar(name="Pizzas", lb=0, vtype=gurobi.GRB.CONTINUOUS)
    D = model.addVar(name="Donuts", lb=0, vtype=gurobi.GRB.CONTINUOUS)

    # Objective: Minimize cost
    model.setObjective(4 * P + 2 * D, gurobi.GRB.MINIMIZE)

    # Constraints
    model.addConstr(300 * P + 200 * D >= 3000, name="calories_constraint")
    model.addConstr(10 * P + 7 * D >= 200, name="fat_constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal cost: ${model.objVal:.2f}")
        print(f"Pizzas: {P.x:.2f}")
        print(f"Donuts: {D.x:.2f}")
    else:
        print("No optimal solution found")

if __name__ == "__main__":
    solve_actor_diet()
```