## Problem Description and Formulation

The problem is a classic example of a linear programming problem. Delta Electronics wants to maximize profit by stocking the optimal number of regular and premium microphones given certain constraints.

Let's define the decision variables:
- \(R\): the number of regular microphones to stock
- \(P\): the number of premium microphones to stock

The objective is to maximize profit. Given:
- The profit per regular microphone is $80
- The profit per premium microphone is $95

The objective function can be written as:
\[ \text{Maximize:} \quad 80R + 95P \]

Subject to the following constraints:
1. **Budget Constraint:** The total cost of microphones should not exceed $30,000.
\[ 75R + 100P \leq 30000 \]

2. **Demand Constraint:** The total number of microphones should not exceed 300.
\[ R + P \leq 300 \]

3. **Non-Negativity Constraint:** The number of microphones cannot be negative.
\[ R \geq 0, P \geq 0 \]

## Gurobi Code

To solve this problem using Gurobi in Python, you can use the following code:

```python
import gurobi

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

    # Define the decision variables
    R = model.addVar(lb=0, name="Regular_Microphones")
    P = model.addVar(lb=0, name="Premium_Microphones")

    # Objective function: Maximize profit
    model.setObjective(80*R + 95*P, gurobi.GRB.MAXIMIZE)

    # Budget constraint
    model.addConstr(75*R + 100*P <= 30000, name="Budget_Constraint")

    # Demand constraint
    model.addConstr(R + P <= 300, name="Demand_Constraint")

    # Optimize the model
    model.optimize()

    # Print the status of the optimization
    if model.status == gurobi.GRB.Status.OPTIMAL:
        print("Optimal solution found.")
        print(f"Stock {R.varValue} regular microphones and {P.varValue} premium microphones.")
        print(f"Maximum profit: ${80*R.varValue + 95*P.varValue}")
    else:
        print("No optimal solution found.")

# Run the function
solve_microphone_problem()
```

This code defines the problem in Gurobi, solves it, and then prints out the optimal solution if one is found.