## Problem Description and Formulation

The problem is a linear programming optimization problem. We need to maximize the profit of Zeta Furniture by determining the optimal number of bookcases and computer desks to stock, given certain constraints.

Let's define the decision variables:

- $B$: the number of bookcases
- $D$: the number of computer desks

The objective function to maximize profit is:
\[ \text{Maximize:} \quad 500B + 80D \]

Subject to the following constraints:

1. **Space constraint**: $12B + 5D \leq 1000$ (total space used does not exceed 1000 sq ft)
2. **Product mix constraint**: $D \geq 0.65(B + D)$ (at least 65% of all furniture must be computer desks)
3. **Capital constraint**: $1200B + 200D \leq 22000$ (total capital tied up does not exceed $22000)
4. **Non-negativity constraints**: $B \geq 0, D \geq 0$ (number of bookcases and computer desks must be non-negative)

## Converting Constraints for Clarity

- The product mix constraint can be rewritten as: $0.35D \geq 0.65B$ or $D \geq \frac{0.65}{0.35}B$, which simplifies to $D \geq \frac{13}{7}B$ or approximately $D \geq 1.857B$.

## Gurobi Code

```python
import gurobi

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

    # Define variables
    B = model.addVar(name="bookcases", lb=0, vtype=gurobi.GRB.INTEGER)
    D = model.addVar(name="desks", lb=0, vtype=gurobi.GRB.INTEGER)

    # Objective function: Maximize profit
    model.setObjective(500 * B + 80 * D, gurobi.GRB.MAXIMIZE)

    # Space constraint
    model.addConstr(12 * B + 5 * D <= 1000, name="space_constraint")

    # Product mix constraint
    model.addConstr(D >= (13/7) * B, name="product_mix_constraint")

    # Capital constraint
    model.addConstr(1200 * B + 200 * D <= 22000, name="capital_constraint")

    # Solve the model
    model.optimize()

    # Print the status
    if model.status == gurobi.GRB.OPTIMAL:
        print("Optimal solution found.")
        print(f"Bookcases: {B.varValue}, Desks: {D.varValue}")
        print(f"Max Profit: {model.objVal}")
    else:
        print("No optimal solution found.")

solve_optimization_problem()
```

This code defines the optimization problem using Gurobi's Python interface, sets up the objective function and constraints, and then solves the model. The solution will provide the optimal number of bookcases and computer desks to maximize profit under the given constraints.