## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize the profit of an auto manufacturing plant by determining the optimal number of doors and bumpers to produce given certain constraints.

### Decision Variables

- Let \(D\) be the number of doors produced per week.
- Let \(B\) be the number of bumpers produced per week.

### Objective Function

The profit per door is $200, and the profit per bumper is $150. The objective is to maximize the total profit \(P\), which can be represented as:

\[P = 200D + 150B\]

### Constraints

1. **Machine Time Constraint**: Each door takes 20 minutes of machine time, and each bumper takes 10 minutes. The machine is available for 3000 minutes per week. Therefore:

\[20D + 10B \leq 3000\]

2. **Door Production Limit**: The plant can make at most 100 doors per week:

\[D \leq 100\]

3. **Bumper Production Limit**: The plant can make at most 200 bumpers per week:

\[B \leq 200\]

4. **Non-Negativity Constraints**: The number of doors and bumpers cannot be negative:

\[D \geq 0, B \geq 0\]

## Gurobi Code

To solve this problem using Gurobi in Python, we can use the following code:

```python
import gurobi

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

    # Define the decision variables
    D = model.addVar(lb=0, ub=100, name="Doors")
    B = model.addVar(lb=0, ub=200, name="Bumpers")

    # Objective function: Maximize profit
    model.setObjective(200 * D + 150 * B, gurobi.GRB.MAXIMIZE)

    # Machine time constraint
    model.addConstraint(20 * D + 10 * B <= 3000)

    # Door and bumper production limits are already considered in the variable definitions

    # Solve the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution found. Doors: {D.varValue}, Bumpers: {B.varValue}")
        print(f"Max Profit: ${200 * D.varValue + 150 * B.varValue}")
    else:
        print("No optimal solution found.")

solve_production_problem()
```

This code defines the problem in Gurobi, solves it, and prints out the optimal production levels for doors and bumpers, along with the maximum achievable profit.