## Problem Description and Formulation

The problem requires finding the optimal mix of two fertilizers, P100 and Y200, to minimize the amount of vitamin B in a plant growth compound while meeting specific nutritional requirements. The compound must contain at least 200 units of nitrogen, at least 150 units of phosphoric acid, and no more than 300 units of vitamin A.

## Decision Variables

Let \(x\) be the amount of fertilizer P100 in kg, and \(y\) be the amount of fertilizer Y200 in kg.

## Objective Function

The objective is to minimize the amount of vitamin B in the compound. Each kg of P100 contains 4 units of vitamin B, and each kg of Y200 contains 6 units of vitamin B. Therefore, the objective function is:

\[ \text{Minimize:} \quad 4x + 6y \]

## Constraints

1. **Nitrogen Constraint:** The compound must contain at least 200 units of nitrogen. Given that each kg of P100 contains 11 units of nitrogen and each kg of Y200 contains 9 units of nitrogen:

\[ 11x + 9y \geq 200 \]

2. **Phosphoric Acid Constraint:** The compound must contain at least 150 units of phosphoric acid. Given that each kg of P100 contains 6 units of phosphoric acid and each kg of Y200 contains 10 units of phosphoric acid:

\[ 6x + 10y \geq 150 \]

3. **Vitamin A Constraint:** The compound must contain no more than 300 units of vitamin A. Given that each kg of P100 contains 5 units of vitamin A and each kg of Y200 contains 8 units of vitamin A:

\[ 5x + 8y \leq 300 \]

4. **Non-Negativity Constraints:** The amounts of fertilizers P100 and Y200 cannot be negative:

\[ x \geq 0, \quad y \geq 0 \]

## Gurobi Code

```python
import gurobi

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

    # Define variables
    x = model.addVar(name="P100", lb=0, ub=gurobi.GRB.INFINITY)
    y = model.addVar(name="Y200", lb=0, ub=gurobi.GRB.INFINITY)

    # Objective function: Minimize vitamin B
    model.setObjective(4*x + 6*y, gurobi.GRB.MINIMIZE)

    # Constraints
    model.addConstr(11*x + 9*y >= 200, name="Nitrogen")
    model.addConstr(6*x + 10*y >= 150, name="Phosphoric_Acid")
    model.addConstr(5*x + 8*y <= 300, name="Vitamin_A")

    # Optimize
    model.optimize()

    # Output
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal amount of P100: {x.varValue} kg")
        print(f"Optimal amount of Y200: {y.varValue} kg")
        print(f"Minimum amount of vitamin B: {4*x.varValue + 6*y.varValue} units")
    else:
        print("The problem is infeasible.")

solve_fertilizer_problem()
```