## Problem Description and Formulation

The problem is a classic example of a linear programming problem. Cacaotier has a limited amount of cocoa (30,000 grams) to produce gourmet truffles and chocolate bars. The goal is to maximize profit given certain constraints.

### Decision Variables

- \(x\): Number of gourmet truffles
- \(y\): Number of chocolate bars

### Objective Function

The profit from each gourmet truffle is $7, and from each chocolate bar is $3. The objective is to maximize the total profit:

\[ \text{Maximize:} \quad 7x + 3y \]

### Constraints

1. **Cocoa Availability**: Each gourmet truffle weighs 700 grams, and each chocolate bar weighs 300 grams. The total cocoa available is 30,000 grams.

\[ 700x + 300y \leq 30,000 \]

2. **Demand Constraint**: At least twice the amount of chocolate bars as gourmet truffles are needed.

\[ y \geq 2x \]

3. **Gourmet Truffles Minimum**: There needs to be at least 10 gourmet truffles made.

\[ x \geq 10 \]

4. **Non-Negativity**: The number of gourmet truffles and chocolate bars cannot be negative.

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

However, since \(x \geq 10\), the \(x \geq 0\) constraint is implicitly satisfied.

## Gurobi Code

```python
import gurobi

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

    # Define variables
    x = model.addVar(lb=10, name="gourmet_truffles")  # At least 10 truffles
    y = model.addVar(name="chocolate_bars")

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

    # Constraints
    model.addConstr(700 * x + 300 * y <= 30000, name="cocoa_availability")
    model.addConstr(y >= 2 * x, name="demand_constraint")

    # Solve the model
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal Solution:")
        print(f"Gourmet Truffles: {x.varValue}")
        print(f"Chocolate Bars: {y.varValue}")
        print(f"Maximum Profit: ${7 * x.varValue + 3 * y.varValue}")
    else:
        print("No optimal solution found.")

solve_cacaotier_problem()
```

This code defines the optimization problem as described, using Gurobi to find the optimal production levels of gourmet truffles and chocolate bars that maximize profit under the given constraints.