## Problem Description and Formulation

The problem is a linear programming optimization problem. The goal is to maximize profit by determining the number of acres to allocate to growing oak and elm trees, given certain constraints.

### Variables
- Let \(x\) be the number of acres of oak trees.
- Let \(y\) be the number of acres of elm trees.

### Objective Function
The profit per acre of oak trees is $1000, and the profit per acre of elm trees is $1200. The objective function to maximize profit (\(P\)) is:
\[ P = 1000x + 1200y \]

### Constraints
1. Total land constraint: The man has 300 acres of land.
\[ x + y \leq 300 \]
2. Minimum oak trees constraint: He must grow at least 50 acres of oak trees.
\[ x \geq 50 \]
3. Minimum elm trees constraint: He must grow at least 70 acres of elm trees.
\[ y \geq 70 \]
4. Elm vs. Oak trees constraint: He can grow at most 2 times the amount of elm trees as oak trees.
\[ y \leq 2x \]
5. Non-negativity constraints: Acres cannot be negative.
\[ x \geq 0, y \geq 0 \]
However, given the minimum constraints, non-negativity is implicitly satisfied.

## Gurobi Code

```python
import gurobi

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

    # Define variables
    x = model.addVar(lb=50, name="oak_acres")  # At least 50 acres of oak
    y = model.addVar(lb=70, name="elm_acres")  # At least 70 acres of elm

    # Objective function: Maximize profit
    model.setObjective(1000 * x + 1200 * y, gurobi.GRB.MAXIMIZE)

    # Total land constraint
    model.addConstr(x + y <= 300, name="total_land")

    # Elm vs. Oak trees constraint
    model.addConstr(y <= 2 * x, name="elm_vs_oak")

    # Solve the model
    model.optimize()

    # Check if the model is optimized
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal acres of oak trees: {x.varValue}")
        print(f"Optimal acres of elm trees: {y.varValue}")
        print(f"Maximal profit: {model.objVal}")
    else:
        print("The model is infeasible.")

solve_optimization_problem()
```