## Problem Description and Symbolic Representation

The problem involves a fishing company that operates in two areas: the Pacific and Atlantic oceans. The company needs to provide a certain amount of fish, crab, and lobster per week while minimizing its operating costs.

### Symbolic Variables

Let's define the symbolic variables as follows:

- $x_1$: Days of operation in the Pacific ocean
- $x_2$: Days of operation in the Atlantic ocean

### Objective Function

The objective is to minimize the total operating cost. The cost of operating in the Pacific ocean is $5000 per day, and in the Atlantic ocean is $7000 per day. Therefore, the objective function can be represented as:

Minimize $5000x_1 + 7000x_2$

### Constraints

The company must provide at least 18 tons of fish, 10 tons of crab, and 5 tons of lobster per week. The catch per day in the Pacific and Atlantic oceans is given as follows:

- Pacific: 5 tons of fish, 2 tons of crab, 0.5 tons of lobster
- Atlantic: 4 tons of fish, 3 tons of crab, 1 ton of lobster

Therefore, the constraints can be represented as:

- $5x_1 + 4x_2 \geq 18$ (Fish constraint)
- $2x_1 + 3x_2 \geq 10$ (Crab constraint)
- $0.5x_1 + x_2 \geq 5$ (Lobster constraint)
- $x_1, x_2 \geq 0$ (Non-negativity constraint, as days of operation cannot be negative)

## Symbolic Representation in JSON Format

```json
{
    'sym_variables': [('x1', 'Days in Pacific'), ('x2', 'Days in Atlantic')],
    'objective_function': '5000*x1 + 7000*x2',
    'constraints': [
        '5*x1 + 4*x2 >= 18',
        '2*x1 + 3*x2 >= 10',
        '0.5*x1 + x2 >= 5',
        'x1 >= 0',
        'x2 >= 0'
    ]
}
```

## Gurobi Code in Python

```python
import gurobipy as gp

# Create a new model
model = gp.Model("Fishing_Problem")

# Define the variables
x1 = model.addVar(name="Pacific_Days", lb=0, vtype=gp.GRB.CONTINUOUS)
x2 = model.addVar(name="Atlantic_Days", lb=0, vtype=gp.GRB.CONTINUOUS)

# Define the objective function
model.setObjective(5000*x1 + 7000*x2, gp.GRB.MINIMIZE)

# Define the constraints
model.addConstr(5*x1 + 4*x2 >= 18, name="Fish_Constraint")
model.addConstr(2*x1 + 3*x2 >= 10, name="Crab_Constraint")
model.addConstr(0.5*x1 + x2 >= 5, name="Lobster_Constraint")

# Solve the model
model.optimize()

# Print the solution
if model.status == gp.GRB.OPTIMAL:
    print("Optimal Solution:")
    print(f"Days in Pacific: {x1.varValue}")
    print(f"Days in Atlantic: {x2.varValue}")
    print(f"Total Cost: {model.objVal}")
else:
    print("The model is infeasible or unbounded.")
```