## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize profit by determining the optimal number of packages of seafood medley one and seafood medley two to sell, given the availability of scallops, mussels, and oysters.

Let's define the decision variables:

* $x_1$: number of packages of seafood medley one to sell
* $x_2$: number of packages of seafood medley two to sell

The objective function is to maximize profit:

* Profit per package of seafood medley one: $20
* Profit per package of seafood medley two: $25

The constraints are:

* Availability of scallops: $20x_1 + 40x_2 \leq 10000$
* Availability of mussels: $30x_1 + 40x_2 \leq 12000$
* Availability of oysters: $50x_1 + 20x_2 \leq 11000$
* Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$

## Gurobi Code

```python
import gurobipy as gp

# Create a new model
model = gp.Model("Seafood Medley Optimization")

# Define the decision variables
x1 = model.addVar(name="seafood_medley_one", lb=0, ub=gp.GRB.INFINITY)
x2 = model.addVar(name="seafood_medley_two", lb=0, ub=gp.GRB.INFINITY)

# Define the objective function
model.setObjective(20 * x1 + 25 * x2, gp.GRB.MAXIMIZE)

# Define the constraints
model.addConstr(20 * x1 + 40 * x2 <= 10000, name="scallops_constraint")
model.addConstr(30 * x1 + 40 * x2 <= 12000, name="mussels_constraint")
model.addConstr(50 * x1 + 20 * x2 <= 11000, name="oysters_constraint")

# Solve the model
model.optimize()

# Print the solution
if model.status == gp.GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Seafood Medley One: {x1.varValue}")
    print(f"Seafood Medley Two: {x2.varValue}")
    print(f"Max Profit: {model.objVal}")
else:
    print("No optimal solution found.")
```