## Problem Description and Formulation

The problem described is a classic example of a linear programming problem, specifically a diet problem or a nutrient allocation problem. The goal is to minimize the cost of food consumption while meeting certain nutritional requirements.

Let's denote:
- $x_c$ as the number of servings of chicken,
- $x_p$ as the number of servings of pork,
- $c_c$ as the cost per serving of chicken ($10),
- $c_p$ as the cost per serving of pork ($15),
- $P_c$, $P_p$ as the protein content per serving of chicken (20 units) and pork (15 units),
- $C_c$, $C_p$ as the carbohydrate content per serving of chicken (5 units) and pork (3 units),
- $F_c$, $F_p$ as the fat content per serving of chicken (6 units) and pork (8 units),
- $P_{req}$, $C_{req}$, $F_{req}$ as the required daily intake of protein (100 units), carbohydrates (50 units), and fat (30 units).

The objective function to minimize the total cost is:
\[ \text{Minimize:} \quad 10x_c + 15x_p \]

Subject to the constraints:
\[ 20x_c + 15x_p \geq 100 \] (Protein requirement)
\[ 5x_c + 3x_p \geq 50 \] (Carbohydrate requirement)
\[ 6x_c + 8x_p \geq 30 \] (Fat requirement)
\[ x_c, x_p \geq 0 \] (Non-negativity constraints, as servings cannot be negative)

## Gurobi Code

```python
import gurobi

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

    # Define variables
    x_c = model.addVar(name="chicken", lb=0, vtype=gurobi.GRB.CONTINUOUS)  # Servings of chicken
    x_p = model.addVar(name="pork", lb=0, vtype=gurobi.GRB.CONTINUOUS)  # Servings of pork

    # Objective function: minimize cost
    model.setObjective(10 * x_c + 15 * x_p, gurobi.GRB.MINIMIZE)

    # Constraints
    model.addConstr(20 * x_c + 15 * x_p >= 100, name="protein_requirement")  # Protein
    model.addConstr(5 * x_c + 3 * x_p >= 50, name="carbohydrate_requirement")  # Carbohydrates
    model.addConstr(6 * x_c + 8 * x_p >= 30, name="fat_requirement")  # Fat

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal servings of chicken: {x_c.varValue}")
        print(f"Optimal servings of pork: {x_p.varValue}")
        print(f"Total cost: ${model.objVal:.2f}")
    else:
        print("No optimal solution found.")

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