## Problem Description and Formulation

The problem requires minimizing an objective function subject to several constraints. The objective function to be minimized is:

\[ 1 \times (\text{hours worked by Mary})^2 + 6 \times (\text{hours worked by Mary}) \times (\text{hours worked by George}) + 2 \times (\text{hours worked by George})^2 + 6 \times (\text{hours worked by Mary}) + 8 \times (\text{hours worked by George}) \]

The variables are:
- \(x_0\): hours worked by Mary
- \(x_1\): hours worked by George

The constraints are:
1. \(12x_0 \leq 84\)
2. \(2x_0 \leq 92\)
3. \(20x_1 \leq 84\)
4. \(12x_1 \leq 92\)
5. \(12x_0^2 + 20x_1^2 \geq 38\)
6. \(12x_0 + 20x_1 \geq 38\)
7. \(2x_0^2 + 12x_1^2 \geq 28\)
8. \(2x_0 + 12x_1 \geq 28\)
9. \(-10x_0 + 7x_1 \geq 0\)
10. \(12x_0^2 + 20x_1^2 \leq 55\)
11. \(2x_0 + 12x_1 \leq 52\)

## Gurobi Code Formulation

```python
import gurobipy as gp

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

# Define variables
x0 = m.addVar(name="hours_worked_by_Mary", lb=0)  # Assuming non-negative hours
x1 = m.addVar(name="hours_worked_by_George", lb=0)  # Assuming non-negative hours

# Objective function
m.setObjective(x0**2 + 6*x0*x1 + 2*x1**2 + 6*x0 + 8*x1)

# Constraints
m.addConstr(12*x0 <= 84, name="Mary_work_quality_rating")
m.addConstr(2*x0 <= 92, name="Mary_productivity_rating")
m.addConstr(20*x1 <= 84, name="George_work_quality_rating")
m.addConstr(12*x1 <= 92, name="George_productivity_rating")

m.addConstr(12*x0**2 + 20*x1**2 >= 38, name="combined_work_quality_rating_squared")
m.addConstr(12*x0 + 20*x1 >= 38, name="combined_work_quality_rating")

m.addConstr(2*x0**2 + 12*x1**2 >= 28, name="combined_productivity_rating_squared")
m.addConstr(2*x0 + 12*x1 >= 28, name="combined_productivity_rating")

m.addConstr(-10*x0 + 7*x1 >= 0, name="hourly_work_constraint")

m.addConstr(12*x0**2 + 20*x1**2 <= 55, name="combined_work_quality_rating_squared_upper")
m.addConstr(2*x0 + 12*x1 <= 52, name="combined_productivity_rating_upper")

# Solve the model
m.optimize()

# Print the solution
if m.status == gp.GRB_OPTIMAL:
    print("Optimal Solution:")
    print(f"Hours worked by Mary: {x0.varValue}")
    print(f"Hours worked by George: {x1.varValue}")
    print(f"Objective Function Value: {m.objVal}")
else:
    print("The model is infeasible or unbounded.")
```