## Problem Description and Formulation

The problem described is a classic example of a linear programming problem. Bolts and Nuts produces two products: scooters and bikes. Each product requires a certain amount of time on two machines: a grinder and a polisher. The goal is to maximize profit given the constraints on machine usage.

Let's define the variables:
- \(S\): the number of scooters produced
- \(B\): the number of bikes produced

The profit per scooter is $100, and the profit per bike is $50. Therefore, the total profit \(P\) can be represented as:
\[P = 100S + 50B\]

The constraints are as follows:
1. One scooter requires 2 hours on the grinder, and one bike requires 4 hours on the grinder. The grinder can be used for a maximum of 10 hours per day.
\[2S + 4B \leq 10\]

2. One scooter requires 3 hours on the polisher, and one bike requires 3 hours on the polisher. The polisher can be used for a maximum of 10 hours per day.
\[3S + 3B \leq 10\]

3. Non-negativity constraints: The number of scooters and bikes produced cannot be negative.
\[S \geq 0, B \geq 0\]

## Gurobi Code

To solve this problem using Gurobi in Python, we will use the following code:

```python
import gurobipy as gp

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

# Define variables
S = model.addVar(name="Scooters", lb=0, vtype=gp.GRB.CONTINUOUS)
B = model.addVar(name="Bikes", lb=0, vtype=gp.GRB.CONTINUOUS)

# Objective function: Maximize profit
model.setObjective(100 * S + 50 * B, gp.GRB.MAXIMIZE)

# Constraints
model.addConstr(2 * S + 4 * B <= 10, name="Grinder_Constraint")
model.addConstr(3 * S + 3 * B <= 10, name="Polisher_Constraint")

# Solve the model
model.optimize()

# Print the results
if model.status == gp.GRB.OPTIMAL:
    print(f"Optimal solution: Scooters = {S.varValue}, Bikes = {B.varValue}")
    print(f"Maximum profit: ${model.objVal:.2f}")
else:
    print("No optimal solution found")
```

This code defines the model, sets up the objective function and constraints, solves the linear programming problem, and then prints out the optimal production levels for scooters and bikes, along with the maximum achievable profit. If no optimal solution is found, it indicates that the problem is infeasible or unbounded.