## Problem Description and Formulation

The problem is a classic example of a linear programming problem. The goal is to maximize the profit of a luggage company by determining the optimal number of carry-on and large suitcases to produce, given certain production constraints.

Let's define the decision variables:

* $x_1$: Number of carry-on suitcases produced per day
* $x_2$: Number of large suitcases produced per day

The objective function is to maximize the total profit:

* Profit per carry-on suitcase: $100
* Profit per large suitcase: $150
* Total profit: $100x_1 + 150x_2

The constraints are:

* Maximum production rate for carry-on suitcases: $x_1 \leq 15$
* Maximum production rate for large suitcases: $x_2 \leq 20$
* Maximum sewing machine capacity: $x_1 + x_2 \leq 25$
* Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$

## Gurobi Code

```python
import gurobipy as gp

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

# Define the decision variables
x1 = model.addVar(lb=0, ub=15, name="carry_on_suitcases")
x2 = model.addVar(lb=0, ub=20, name="large_suitcases")

# Define the objective function
model.setObjective(100*x1 + 150*x2, gp.GRB.MAXIMIZE)

# Add constraints
model.addConstr(x1 <= 15, name="carry_on_production_limit")
model.addConstr(x2 <= 20, name="large_production_limit")
model.addConstr(x1 + x2 <= 25, name="sewing_machine_capacity")

# Optimize the model
model.optimize()

# Print the results
if model.status == gp.GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Carry-on suitcases: {x1.varValue}")
    print(f"Large suitcases: {x2.varValue}")
    print(f"Maximum profit: ${model.objVal:.2f}")
else:
    print("No optimal solution found.")
```

This code defines the decision variables, objective function, and constraints, and then solves the model using Gurobi's optimization algorithm. The results are printed to the console, including the optimal production levels and maximum profit.