## Problem Description and Formulation

The aquarium needs to feed their seals using sardines and tuna packets. The goal is to minimize the cost while meeting the nutritional requirements. Let's define the decision variables:

- \(x\): Number of packets of sardines to buy
- \(y\): Number of packets of tuna to buy

The cost of each packet of sardines is $15, and the cost of each packet of tuna is $18. The objective is to minimize the total cost:

\[ \text{Minimize:} \quad 15x + 18y \]

Each packet of sardines and tuna has the following nutritional content:

- Sardines: 4 grams of fat, 12 grams of essential fatty acids, and 10 grams of protein
- Tuna: 6 grams of fat, 10 grams of essential fatty acids, and 7 grams of protein

The aquarium needs:

- 800 grams of fat
- 1200 grams of essential fatty acids
- 700 grams of protein

This leads to the following constraints:

\[ 4x + 6y \geq 800 \] (Fat requirement)
\[ 12x + 10y \geq 1200 \] (Essential fatty acids requirement)
\[ 10x + 7y \geq 700 \] (Protein requirement)

Also, \(x \geq 0\) and \(y \geq 0\) because the number of packets cannot be negative.

## Gurobi Code

```python
import gurobi

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

    # Define the decision variables
    x = model.addVar(name="sardines", lb=0, vtype=gurobi.GRB.INTEGER)  # Number of packets of sardines
    y = model.addVar(name="tuna", lb=0, vtype=gurobi.GRB.INTEGER)    # Number of packets of tuna

    # Objective: Minimize the total cost
    model.setObjective(15 * x + 18 * y, gurobi.GRB.MINIMIZE)

    # Constraints
    model.addConstr(4 * x + 6 * y >= 800, name="fat_requirement")  # Fat requirement
    model.addConstr(12 * x + 10 * y >= 1200, name="fatty_acids_requirement")  # Essential fatty acids requirement
    model.addConstr(10 * x + 7 * y >= 700, name="protein_requirement")  # Protein requirement

    # Solve the model
    model.optimize()

    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: x = {x.varValue}, y = {y.varValue}")
        print(f"Minimum cost: ${model.objVal:.2f}")
    else:
        print("No optimal solution found")

solve_aquarium_problem()
```