## Problem Description and Formulation

The vine farmer has 100 acres of land to grow red and green grapes. The goal is to maximize profit given the following constraints:

1. The farmer must grow at least 30 acres of red grapes.
2. The farmer must grow at least 25 acres of green grapes.
3. The farmer prefers to grow more green grapes than red grapes but can grow at most twice the amount of green grapes as red grapes.
4. The profit per acre of red grapes is $300, and the profit per acre of green grapes is $250.

## Symbolic Representation

Let's denote:
- \(R\) as the acres of red grapes,
- \(G\) as the acres of green grapes.

The objective function to maximize profit (\(P\)) is:
\[ P = 300R + 250G \]

Subject to:
1. \( R \geq 30 \)
2. \( G \geq 25 \)
3. \( G \leq 2R \)
4. \( R + G \leq 100 \) (total land constraint)

## Gurobi Code

```python
import gurobi

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

    # Define variables
    R = m.addVar(lb=0, name="Red_Grapes")
    G = m.addVar(lb=0, name="Green_Grapes")

    # Objective function: Maximize profit
    m.setObjective(300*R + 250*G, gurobi.GRB.MAXIMIZE)

    # Constraints
    m.addConstr(R >= 30, name="Min_Red")
    m.addConstr(G >= 25, name="Min_Green")
    m.addConstr(G <= 2*R, name="Green_vs_Red")
    m.addConstr(R + G <= 100, name="Total_Land")

    # Solve the problem
    m.optimize()

    # Check if the model is optimized
    if m.status == gurobi.GRB.OPTIMAL:
        print("Optimal Solution:")
        print(f"Acres of Red Grapes: {R.varValue}")
        print(f"Acres of Green Grapes: {G.varValue}")
        print(f"Max Profit: {m.objVal}")
    else:
        print("The model is infeasible")

solve_grape_problem()
```

This code defines the optimization problem as described, using Gurobi's Python interface. It sets up the variables, objective function, and constraints according to the problem formulation. The `solve_grape_problem` function solves the model and prints out the optimal acres of red and green grapes to grow, along with the maximum achievable profit. If the problem is infeasible, it indicates so.