## Problem Description and Formulation

The problem is a multi-variable optimization problem with various constraints. The goal is to minimize the objective function:

\[ 6 \times \text{strips of bacon} + 7 \times \text{cheeseburgers} + 4 \times \text{potatoes} \]

subject to several constraints related to sourness index, dollar cost, and grams of fat.

## Constraints

1. **Sourness Index Constraints:**
   - Total sourness from strips of bacon and potatoes: \( 13x_0 + 3x_2 \geq 30 \)
   - Total sourness from all: \( 13x_0 + 9x_1 + 3x_2 \geq 30 \)
   - Sourness from cheeseburgers and potatoes: \( 9x_1 + 3x_2 \leq 136 \)
   - Total sourness from all: \( 13x_0 + 9x_1 + 3x_2 \leq 86 \)

2. **Cost Constraints:**
   - Cost from cheeseburgers and potatoes: \( 4x_1 + 4x_2 \geq 32 \)
   - Total cost: \( 14x_0 + 4x_1 + 4x_2 \geq 32 \)
   - Cost from cheeseburgers and potatoes: \( 4x_1 + 4x_2 \leq 95 \)
   - Cost from strips of bacon and cheeseburgers: \( 14x_0 + 4x_1 \leq 74 \)

3. **Fat Constraints:**
   - Fat from strips of bacon and potatoes: \( 24x_0 + 21x_2 \geq 28 \)
   - Total fat from all: \( 24x_0 + 10x_1 + 21x_2 \geq 28 \)
   - Fat from cheeseburgers and potatoes: \( 10x_1 + 21x_2 \leq 212 \)

4. **Other Constraints:**
   - \( 3x_0 - 6x_1 \geq 0 \)
   - \( -4x_0 + 6x_2 \geq 0 \)

## Gurobi Code Formulation

```python
import gurobi

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

    # Define variables
    strips_of_bacon = m.addVar(name="strips_of_bacon", lb=0)  # Non-integer
    cheeseburgers = m.addVar(name="cheeseburgers", lb=0)  # Non-integer
    potatoes = m.addVar(name="potatoes", lb=0)  # Non-integer

    # Objective function
    m.setObjective(6 * strips_of_bacon + 7 * cheeseburgers + 4 * potatoes, gurobi.GRB.MINIMIZE)

    # Constraints
    # Sourness index constraints
    m.addConstr(13 * strips_of_bacon + 3 * potatoes >= 30, name="sourness_bacon_potatoes")
    m.addConstr(13 * strips_of_bacon + 9 * cheeseburgers + 3 * potatoes >= 30, name="sourness_all")
    m.addConstr(9 * cheeseburgers + 3 * potatoes <= 136, name="sourness_cheeseburgers_potatoes")
    m.addConstr(13 * strips_of_bacon + 9 * cheeseburgers + 3 * potatoes <= 86, name="sourness_all_upper")

    # Cost constraints
    m.addConstr(4 * cheeseburgers + 4 * potatoes >= 32, name="cost_cheeseburgers_potatoes")
    m.addConstr(14 * strips_of_bacon + 4 * cheeseburgers + 4 * potatoes >= 32, name="cost_all")
    m.addConstr(4 * cheeseburgers + 4 * potatoes <= 95, name="cost_cheeseburgers_potatoes_upper")
    m.addConstr(14 * strips_of_bacon + 4 * cheeseburgers <= 74, name="cost_bacon_cheeseburgers_upper")

    # Fat constraints
    m.addConstr(24 * strips_of_bacon + 21 * potatoes >= 28, name="fat_bacon_potatoes")
    m.addConstr(24 * strips_of_bacon + 10 * cheeseburgers + 21 * potatoes >= 28, name="fat_all")
    m.addConstr(10 * cheeseburgers + 21 * potatoes <= 212, name="fat_cheeseburgers_potatoes_upper")

    # Other constraints
    m.addConstr(3 * strips_of_bacon - 6 * cheeseburgers >= 0, name="other_constraint1")
    m.addConstr(-4 * strips_of_bacon + 6 * potatoes >= 0, name="other_constraint2")

    # Resource constraints (Implicit in variable definitions)

    # Solve the problem
    m.optimize()

    # Print the solution
    if m.status == gurobi.GRB.OPTIMAL:
        print("Objective: ", m.objVal)
        print("Strips of bacon: ", strips_of_bacon.x)
        print("Cheeseburgers: ", cheeseburgers.x)
        print("Potatoes: ", potatoes.x)
    else:
        print("The problem is infeasible")

optimization_problem()
```