## Problem Description and Formulation

The shoe company aims to maximize its net profits by determining the optimal number of black and blue shoes to produce daily. The problem involves several constraints:

- The company can produce at most 150 black shoes and at most 100 blue shoes daily.
- There is an expected demand for at least 75 black shoes and 60 blue shoes each day.
- The company must ship a minimum of 125 shoes daily to a store.
- Each black shoe results in a $3 loss, while each blue shoe results in a $6 profit.

## Symbolic Representation

Let's denote:
- \(B\) as the number of black shoes produced daily.
- \(L\) as the number of blue shoes produced daily.

The objective is to maximize the net profit \(P\), given by:
\[ P = 6L - 3B \]

Subject to the constraints:
1. \( B \leq 150 \)
2. \( L \leq 100 \)
3. \( B \geq 75 \)
4. \( L \geq 60 \)
5. \( B + L \geq 125 \)

## Gurobi Code

```python
import gurobi

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

    # Define variables
    B = model.addVar(lb=0, ub=150, name="Black_Shoes")  # Black shoes
    L = model.addVar(lb=0, ub=100, name="Blue_Shoes")   # Blue shoes

    # Objective: Maximize net profit
    model.setObjective(6*L - 3*B, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(B >= 75, name="Min_Black_Demand")
    model.addConstr(L >= 60, name="Min_Blue_Demand")
    model.addConstr(B + L >= 125, name="Min_Total_Shoes")

    # Solve the model
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal black shoes: {B.varValue}")
        print(f"Optimal blue shoes: {L.varValue}")
        print(f"Optimal net profit: {model.objVal}")
    else:
        print("No optimal solution found.")

if __name__ == "__main__":
    solve_shoe_problem()
```