To solve the optimization problem described, we first need to convert the natural language description into a symbolic representation. This involves defining variables and translating the objective function and constraints into algebraic terms.

Let's define the variables as follows:
- $x_1$: The number of hours plant Gamma is run.
- $x_2$: The number of hours plant Delta is run.

The objective function, which represents the total cost of running both plants, can be expressed as:
\[35x_1 + 95x_2\]

This is because running plant Gamma costs $35 per hour and running plant Delta costs $95 per hour.

The constraints are based on the demand requirements for asphalt and bricks. At least 90 units of asphalt and 85 units of bricks must be produced daily. Given that:
- Plant Gamma produces 4 units of asphalt and 3 units of bricks per hour.
- Plant Delta produces 6 units of asphalt and 5 units of bricks per hour.

The constraints can be written as follows:
1. Asphalt production constraint: \[4x_1 + 6x_2 \geq 90\]
2. Bricks production constraint: \[3x_1 + 5x_2 \geq 85\]

Additionally, since the plants cannot run for a negative number of hours, we have non-negativity constraints:
\[x_1 \geq 0\]
\[x_2 \geq 0\]

Thus, the symbolic representation of the problem is:

```json
{
    'sym_variables': [('x1', 'hours plant Gamma is run'), ('x2', 'hours plant Delta is run')],
    'objective_function': '35*x1 + 95*x2',
    'constraints': ['4*x1 + 6*x2 >= 90', '3*x1 + 5*x2 >= 85', 'x1 >= 0', 'x2 >= 0']
}
```

To solve this linear programming problem using Gurobi in Python, we can use the following code:

```python
from gurobipy import *

# Create a new model
m = Model("BlueOceanProduction")

# Define variables
x1 = m.addVar(lb=0, name="hours_Gamma")
x2 = m.addVar(lb=0, name="hours_Delta")

# Set the objective function
m.setObjective(35*x1 + 95*x2, GRB.MINIMIZE)

# Add constraints
m.addConstr(4*x1 + 6*x2 >= 90, "asphalt_production")
m.addConstr(3*x1 + 5*x2 >= 85, "bricks_production")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Hours plant Gamma should run: {x1.x}")
    print(f"Hours plant Delta should run: {x2.x}")
    print(f"Total cost: {m.objVal}")
else:
    print("No optimal solution found")
```

This code defines the model, variables, objective function, and constraints as described in the symbolic representation. It then optimizes the model and prints out the results if an optimal solution is found.