## Problem Description and Formulation

The construction company produces two types of equipment: bulldozers and forklifts. The production of each type requires a certain amount of time on the assembly line and in the quality control (QC) process. The goal is to maximize profit given the limited hours available for assembly and QC.

Let's denote:
- \(B\) as the number of bulldozers produced,
- \(F\) as the number of forklifts produced.

## Constraints:

1. Assembly line time: \(3B + 2F \leq 600\)
2. QC time: \(2B + 1.5F \leq 400\)
3. Non-negativity: \(B \geq 0, F \geq 0\)

## Objective Function:

Maximize profit \(P = 7000B + 6000F\)

## Gurobi Code

```python
import gurobi

def solve_production_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    B = model.addVar(lb=0, vtype=gurobi.GRB.CONTINUOUS, name="Bulldozers")
    F = model.addVar(lb=0, vtype=gurobi.GRB.CONTINUOUS, name="Forklifts")

    # Objective function: Maximize profit
    model.setObjective(7000*B + 6000*F, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(3*B + 2*F <= 600, name="Assembly_Line_Time")
    model.addConstr(2*B + 1.5*F <= 400, name="QC_Time")

    # Solve the model
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution found.")
        print(f"Bulldozers: {B.varValue}")
        print(f"Forklifts: {F.varValue}")
        print(f"Max Profit: {model.objVal}")
    else:
        print("No optimal solution found.")

solve_production_problem()
```

This code defines a linear programming problem with Gurobi, where we aim to maximize the profit from producing bulldozers and forklifts under given constraints. The solution will indicate how many of each the company should produce to achieve maximum profit.