## Problem Description and Symbolic Representation

The problem involves a meat factory that produces burgers and hot-dogs. The goal is to maximize revenue given the available resources (meat and binding agent) and the revenue per item.

### Symbolic Variables:
- $x_1$ = Number of burgers
- $x_2$ = Number of hot-dogs

### Objective Function:
Maximize revenue $R = 0.30x_1 + 0.20x_2$

### Constraints:
1. Meat constraint: $3x_1 + 2x_2 \leq 2000$
2. Binding agent constraint: $2x_1 + x_2 \leq 1800$
3. Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$

## Symbolic Representation in JSON Format

```json
{
  'sym_variables': [('x1', 'burgers'), ('x2', 'hot-dogs')],
  'objective_function': '0.30*x1 + 0.20*x2',
  'constraints': [
    '3*x1 + 2*x2 <= 2000',
    '2*x1 + x2 <= 1800',
    'x1 >= 0',
    'x2 >= 0'
  ]
}
```

## Gurobi Code in Python

```python
import gurobipy as gp

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

# Define variables
x1 = model.addVar(name="burgers", lb=0, vtype=gp.GRB.CONTINUOUS)
x2 = model.addVar(name="hot-dogs", lb=0, vtype=gp.GRB.CONTINUOUS)

# Set objective function
model.setObjective(0.30*x1 + 0.20*x2, gp.GRB.MAXIMIZE)

# Add constraints
model.addConstr(3*x1 + 2*x2 <= 2000, name="meat_constraint")
model.addConstr(2*x1 + x2 <= 1800, name="binding_agent_constraint")

# Solve the model
model.optimize()

# Print solution
if model.status == gp.GRB.OPTIMAL:
    print(f"Optimal number of burgers: {x1.varValue}")
    print(f"Optimal number of hot-dogs: {x2.varValue}")
    print(f"Max revenue: {model.objVal}")
else:
    print("The model is infeasible.")
```er of hot-dogs: {x2.varValue}")
        print(f"Max revenue: {model.objVal}")
    else:
        print("No optimal solution found.")

solve_optimization_problem()
```