## Step 1: Define the symbolic representation of the variables
The variables are 'air defense batteries', 'medical platoons', and 'reconnaissance troops'. Let's denote them as $x_1$, $x_2$, and $x_3$ respectively.

## Step 2: Translate the given attributes into a usable format
The attributes given are:
- $r_0$: mobility rating
- $r_1$: fun factor

With their respective values:
- $x_1$ (air defense batteries): $r_0 = 7.23$, $r_1 = 12.68$
- $x_2$ (medical platoons): $r_0 = 24.81$, $r_1 = 22.6$
- $x_3$ (reconnaissance troops): $r_0 = 14.26$, $r_1 = 11.12$

## 3: Formulate the objective function
The objective function to minimize is: $1 \cdot x_1^2 + 5 \cdot x_1 \cdot x_3 + 4 \cdot x_2^2 + 5 \cdot x_2$.

## 4: Define the constraints
1. $7.23x_1 \geq 7.23 \cdot x_1$ (always true, just a definition)
2. $12.68x_1 \geq 12.68 \cdot x_1$ (always true, just a definition)
3. $24.81x_2 \geq 24.81 \cdot x_2$ (always true, just a definition)
4. $22.6x_2 \geq 22.6 \cdot x_2$ (always true, just a definition)
5. $14.26x_3 \geq 14.26 \cdot x_3$ (always true, just a definition)
6. $11.12x_3 \geq 11.12 \cdot x_3$ (always true, just a definition)
7. $24.81x_2 + 14.26x_3 \geq 147$
8. $7.23x_1 + 24.81x_2 + 14.26x_3 \geq 147$
9. $12.68^2x_1^2 + 11.12^2x_3^2 \geq 90$
10. $12.68x_1 + 22.6x_2 \geq 73$
11. $12.68x_1 + 22.6x_2 + 11.12x_3 \geq 73$
12. $x_1 - 7x_2 \geq 0$
13. $x_1, x_2, x_3$ are integers.

## 5: Symbolic Representation
```json
{
    'sym_variables': [('x1', 'air defense batteries'), ('x2', 'medical platoons'), ('x3', 'reconnaissance troops')],
    'objective_function': '1 * x1^2 + 5 * x1 * x3 + 4 * x2^2 + 5 * x2',
    'constraints': [
        '24.81 * x2 + 14.26 * x3 >= 147',
        '7.23 * x1 + 24.81 * x2 + 14.26 * x3 >= 147',
        '12.68^2 * x1^2 + 11.12^2 * x3^2 >= 90',
        '12.68 * x1 + 22.6 * x2 >= 73',
        '12.68 * x1 + 22.6 * x2 + 11.12 * x3 >= 73',
        'x1 - 7 * x2 >= 0',
        'x1, x2, x3 are integers'
    ]
}
```

## 6: Gurobi Code
```python
import gurobi

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

# Define the variables
x1 = m.addVar(name="air_defense_batteries", vtype=gurobi.GRB.INTEGER)
x2 = m.addVar(name="medical_platoons", vtype=gurobi.GRB.INTEGER)
x3 = m.addVar(name="reconnaissance_troops", vtype=gurobi.GRB.INTEGER)

# Objective function
m.setObjective(1 * x1**2 + 5 * x1 * x3 + 4 * x2**2 + 5 * x2, gurobi.GRB.MINIMIZE)

# Constraints
m.addConstr(24.81 * x2 + 14.26 * x3 >= 147)
m.addConstr(7.23 * x1 + 24.81 * x2 + 14.26 * x3 >= 147)
m.addConstr(12.68**2 * x1**2 + 11.12**2 * x3**2 >= 90)
m.addConstr(12.68 * x1 + 22.6 * x2 >= 73)
m.addConstr(12.68 * x1 + 22.6 * x2 + 11.12 * x3 >= 73)
m.addConstr(x1 - 7 * x2 >= 0)

# Update model
m.update()

# Solve the model
m.optimize()

# Print the solution
if m.status == gurobi.GRB.OPTIMAL:
    print("Objective: ", m.objVal)
    print("Air defense batteries: ", x1.varValue)
    print("Medical platoons: ", x2.varValue)
    print("Reconnaissance troops: ", x3.varValue)
else:
    print("The model is infeasible")
```