To solve the given optimization problem using Gurobi, we first need to understand the objective function and the constraints involved. The objective is to maximize a linear function of hours worked by four individuals (George, John, Jean, and Bobby), subject to several linear constraints related to their computer competence ratings and total hours.

Given:
- Objective Function: Maximize \(3 \times \text{hours worked by George} + 6 \times \text{hours worked by John} + 5 \times \text{hours worked by Jean} + 1 \times \text{hours worked by Bobby}\)
- Constraints:
  - Minimum total competence ratings for various combinations of workers.
  - Maximum total competence ratings for other combinations.
  - Integral constraints on hours worked by some individuals.

Let's denote the hours worked by George, John, Jean, and Bobby as \(G\), \(J\), \(Je\), and \(B\) respectively. Given computer competence ratings are: George = 10, John = 4, Jean = 6, Bobby = 9.

The constraints from the problem statement can be formulated as follows:
1. \(4J + 6Je + 9B \geq 45\)
2. \(10G + 4J + 6Je \geq 45\)
3. \(4J + 6Je + 9B \geq 50\)
4. \(10G + 4J + 6Je \geq 50\)
5. \(10G + 4J \leq 240\)
6. \(6Je + 9B \leq 265\)
7. \(10G + 4J + 9B \leq 175\)
8. \(10G + 4J + 6Je + 9B \leq 175\)

And the integral constraints:
- \(G\) must be an integer.
- \(J\) can be any real number.
- \(Je\) must be an integer.
- \(B\) can be any real number.

Here's how you could implement this in Gurobi using Python:

```python
from gurobipy import *

# Create a model
m = Model("Optimization_Problem")

# Define variables
G = m.addVar(vtype=GRB.INTEGER, name="hours_worked_by_George")
J = m.addVar(vtype=GRB.CONTINUOUS, name="hours_worked_by_John")
Je = m.addVar(vtype=GRB.INTEGER, name="hours_worked_by_Jean")
B = m.addVar(vtype=GRB.CONTINUOUS, name="hours_worked_by_Bobby")

# Objective function
m.setObjective(3*G + 6*J + 5*Je + B, GRB.MAXIMIZE)

# Constraints
m.addConstr(4*J + 6*Je + 9*B >= 45, "min_total_competence_1")
m.addConstr(10*G + 4*J + 6*Je >= 45, "min_total_competence_2")
m.addConstr(4*J + 6*Je + 9*B >= 50, "min_total_competence_3")
m.addConstr(10*G + 4*J + 6*Je >= 50, "min_total_competence_4")
m.addConstr(10*G + 4*J <= 240, "max_total_competence_1")
m.addConstr(6*Je + 9*B <= 265, "max_total_competence_2")
m.addConstr(10*G + 4*J + 9*B <= 175, "max_total_competence_3")
m.addConstr(10*G + 4*J + 6*Je + 9*B <= 175, "max_total_competence_4")

# Solve the model
m.optimize()

# Print solution
for v in m.getVars():
    print("%s %f" % (v.varName, v.x))
print("Objective:", m.objVal)
```