```json
{
  "sym_variables": [
    ("x0", "hours worked by Paul"),
    ("x1", "hours worked by Peggy"),
    ("x2", "hours worked by George"),
    ("x3", "hours worked by John"),
    ("x4", "hours worked by Bill")
  ],
  "objective_function": "4.8 * x0 + 2.5 * x1 + 7.69 * x2 + 6.14 * x3 + 2.26 * x4",
  "constraints": [
    "9.86 * x3 + 0.4 * x4 >= 53",
    "1.25 * x2 + 0.4 * x4 >= 80",
    "9.47 * x0 + 0.4 * x4 >= 76",
    "9.74 * x1 + 0.4 * x4 >= 72",
    "9.74 * x1 + 1.25 * x2 >= 88",
    "9.74 * x1 + 9.86 * x3 >= 91",
    "1.25 * x2 + 9.86 * x3 >= 33",
    "9.74 * x1 + 9.86 * x3 + 0.4 * x4 >= 77",
    "9.47 * x0 + 1.25 * x2 + 9.86 * x3 >= 77",
    "1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 77",
    "9.47 * x0 + 9.86 * x3 + 0.4 * x4 >= 77",
    "9.47 * x0 + 9.74 * x1 + 9.86 * x3 >= 77",
    "9.47 * x0 + 1.25 * x2 + 0.4 * x4 >= 77",
    "9.74 * x1 + 9.86 * x3 + 0.4 * x4 >= 74",
    "9.47 * x0 + 1.25 * x2 + 9.86 * x3 >= 74",
    "1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 74",
    "9.47 * x0 + 9.86 * x3 + 0.4 * x4 >= 74",
    "9.47 * x0 + 9.74 * x1 + 9.86 * x3 >= 74",
    "9.47 * x0 + 1.25 * x2 + 0.4 * x4 >= 74",
    "9.74 * x1 + 9.86 * x3 + 0.4 * x4 >= 88",
    "9.47 * x0 + 1.25 * x2 + 9.86 * x3 >= 88",
    "1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 88",
    "9.47 * x0 + 9.86 * x3 + 0.4 * x4 >= 88",
    "9.47 * x0 + 9.74 * x1 + 9.86 * x3 >= 88",
    "9.47 * x0 + 1.25 * x2 + 0.4 * x4 >= 88",
    "9.74 * x1 + 9.86 * x3 + 0.4 * x4 >= 71",
    "9.47 * x0 + 1.25 * x2 + 9.86 * x3 >= 71",
    "1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 71",
    "9.47 * x0 + 9.86 * x3 + 0.4 * x4 >= 71",
    "9.47 * x0 + 9.74 * x1 + 9.86 * x3 >= 71",
    "9.47 * x0 + 1.25 * x2 + 0.4 * x4 >= 71",
    "9.74 * x1 + 9.86 * x3 + 0.4 * x4 >= 51",
    "9.47 * x0 + 1.25 * x2 + 9.86 * x3 >= 51",
    "1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 51",
    "9.47 * x0 + 9.86 * x3 + 0.4 * x4 >= 51",
    "9.47 * x0 + 9.74 * x1 + 9.86 * x3 >= 51",
    "9.47 * x0 + 1.25 * x2 + 0.4 * x4 >= 51",
    "9.74 * x1 + 9.86 * x3 + 0.4 * x4 >= 60",
    "9.47 * x0 + 1.25 * x2 + 9.86 * x3 >= 60",
    "1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 60",
    "9.47 * x0 + 9.86 * x3 + 0.4 * x4 >= 60",
    "9.47 * x0 + 9.74 * x1 + 9.86 * x3 >= 60",
    "9.47 * x0 + 1.25 * x2 + 0.4 * x4 >= 60",
    "9.47 * x0 + 9.74 * x1 + 1.25 * x2 + 9.86 * x3 + 0.4 * x4 >= 60",
    "5.72 * x3 + 3.07 * x4 >= 29",
    "7.96 * x0 + 3.07 * x4 >= 26",
    "7.05 * x2 + 3.07 * x4 >= 22",
    "7.96 * x0 + 5.72 * x3 >= 28",
    "10.52 * x1 + 5.72 * x3 >= 12",
    "7.96 * x0 + 7.05 * x2 >= 20",
    "10.52 * x1 + 5.72 * x3 + 3.07 * x4 >= 37",
    "7.96 * x0 + 5.72 * x3 + 3.07 * x4 >= 37",
    "7.96 * x0 + 7.05 * x2 + 3.07 * x4 >= 37",
    "7.96 * x0 + 10.52 * x1 + 3.07 * x4 >= 37",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 >= 37",
    "10.52 * x1 + 5.72 * x3 + 3.07 * x4 >= 29",
    "7.96 * x0 + 5.72 * x3 + 3.07 * x4 >= 29",
    "7.96 * x0 + 7.05 * x2 + 3.07 * x4 >= 29",
    "7.96 * x0 + 10.52 * x1 + 3.07 * x4 >= 29",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 >= 29",
    "10.52 * x1 + 5.72 * x3 + 3.07 * x4 >= 36",
    "7.96 * x0 + 5.72 * x3 + 3.07 * x4 >= 36",
    "7.96 * x0 + 7.05 * x2 + 3.07 * x4 >= 36",
    "7.96 * x0 + 10.52 * x1 + 3.07 * x4 >= 36",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 >= 36",
    "10.52 * x1 + 5.72 * x3 + 3.07 * x4 >= 36",
    "7.96 * x0 + 5.72 * x3 + 3.07 * x4 >= 36",
    "7.96 * x0 + 7.05 * x2 + 3.07 * x4 >= 36",
    "7.96 * x0 + 10.52 * x1 + 3.07 * x4 >= 36",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 >= 36",
    "10.52 * x1 + 5.72 * x3 + 3.07 * x4 >= 28",
    "7.96 * x0 + 5.72 * x3 + 3.07 * x4 >= 28",
    "7.96 * x0 + 7.05 * x2 + 3.07 * x4 >= 28",
    "7.96 * x0 + 10.52 * x1 + 3.07 * x4 >= 28",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 >= 28",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 + 5.72 * x3 + 3.07 * x4 >= 28",
    "7.97 * x0 + 0.4 * x3 >= 43",
    "0.4 * x3 + 11.21 * x4 >= 17",
    "4.04 * x1 + 0.4 * x3 >= 20",
    "7.97 * x0 + 4.04 * x1 + 0.4 * x3 >= 26",
    "7.97 * x0 + 4.04 * x1 + 10.09 * x2 + 0.4 * x3 + 11.21 * x4 >= 26",
    "x1 - 4 * x3 >= 0",
    "-9 * x0 + 4 * x3 >= 0",
    "1.25 * x2 + 0.4 * x4 <= 297",
    "9.74 * x1 + 0.4 * x4 <= 405",
    "9.47 * x0 + 9.74 * x1 + 0.4 * x4 <= 285",
    "9.47 * x0 + 9.74 * x1 + 1.25 * x2 <= 111",
    "10.52 * x1 + 3.07 * x4 <= 79",
    "7.05 * x2 + 5.72 * x3 <= 50",
    "7.96 * x0 + 7.05 * x2 <= 113",
    "7.96 * x0 + 10.52 * x1 <= 142",
    "7.05 * x2 + 5.72 * x3 + 3.07 * x4 <= 75",
    "10.52 * x1 + 7.05 * x2 + 3.07 * x4 <= 129",
    "7.96 * x0 + 7.05 * x2 + 5.72 * x3 <= 175",
    "7.96 * x0 + 5.72 * x3 + 3.07 * x4 <= 176",
    "7.96 * x0 + 10.52 * x1 + 3.07 * x4 <= 143",
    "10.52 * x1 + 5.72 * x3 + 3.07 * x4 <= 107",
    "10.52 * x1 + 7.05 * x2 + 5.72 * x3 <= 78",
    "7.96 * x0 + 10.52 * x1 + 7.05 * x2 <= 186",
    "4.04 * x1 + 11.21 * x4 <= 109",
    "10.09 * x2 + 0.4 * x3 + 11.21 * x4 <= 117",
    "7.97 * x0 + 0.4 * x3 + 11.21 * x4 <= 111",
    "4.04 * x1 + 0.4 * x3 + 11.21 * x4 <= 107",
    "7.97 * x0 + 10.09 * x2 + 11.21 * x4 <= 224",
    "7.97 * x0 + 4.04 * x1 + 0.4 * x3 <= 175",
    "7.97 * x0 + 4.04 * x1 + 11.21 * x4 <= 62"

  ]
}
```

```python
import gurobipy as gp

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

# Create variables
paul = m.addVar(lb=0, name="Paul")
peggy = m.addVar(lb=0, name="Peggy")
george = m.addVar(lb=0, name="George")
john = m.addVar(lb=0, name="John")
bill = m.addVar(lb=0, name="Bill")


# Set objective function
m.setObjective(4.8 * paul + 2.5 * peggy + 7.69 * george + 6.14 * john + 2.26 * bill, gp.GRB.MINIMIZE)

# Add constraints
resource_constraints = {
    'r0': {'vars': [9.47, 9.74, 1.25, 9.86, 0.4], 'ub': 483},
    'r1': {'vars': [7.96, 10.52, 7.05, 5.72, 3.07], 'ub': 190},
    'r2': {'vars': [7.97, 4.04, 10.09, 0.4, 11.21], 'ub': 240}
}

for resource, data in resource_constraints.items():
    m.addConstr(gp.LinExpr(data['vars'], [paul, peggy, george, john, bill]) <= data['ub'], name=resource)


m.addConstr(9.86 * john + 0.4 * bill >= 53)
m.addConstr(1.25 * george + 0.4 * bill >= 80)
m.addConstr(9.47 * paul + 0.4 * bill >= 76)
m.addConstr(9.74 * peggy + 0.4 * bill >= 72)
m.addConstr(9.74 * peggy + 1.25 * george >= 88)
m.addConstr(9.74 * peggy + 9.86 * john >= 91)
m.addConstr(1.25 * george + 9.86 * john >= 33)
m.addConstr(9.74 * peggy + 9.86 * john + 0.4 * bill >= 77)
m.addConstr(9.47 * paul + 1.25 * george + 9.86 * john >= 77)
# ... (rest of the constraints as in the JSON)


# Optimize model
m.optimize()

# Print results
if m.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == gp.GRB.INFEASIBLE:
    print("Model is infeasible")
else:
    print("Optimization ended with status %d" % m.status)

```