## Problem Description and Symbolic Representation

The problem requires maximizing the objective function: $9 \times \text{reconnaissance troops} + 5 \times \text{light infantry companies}$.

Subject to the following constraints:
- The fun factor of reconnaissance troops is $8.6$.
- The fun factor of light infantry companies is $2.79$.
- The total fun factor should be $\geq 45$ and $\leq 83$.
- $9 \times \text{reconnaissance troops} - 5 \times \text{light infantry companies} \geq 0$.
- $\text{reconnaissance troops}$ must be a non-fractional number.
- $\text{light infantry companies}$ must be an integer.

## Symbolic Representation

Let's denote:
- $\text{reconnaissance troops}$ as $x_1$.
- $\text{light infantry companies}$ as $x_2$.

The objective function is: $9x_1 + 5x_2$.

The constraints are:
1. $8.6x_1 + 2.79x_2 \geq 45$
2. $8.6x_1 + 2.79x_2 \leq 83$
3. $9x_1 - 5x_2 \geq 0$
4. $x_1$ is a non-negative, non-fractional (continuous) variable.
5. $x_2$ is a non-negative integer.

## Gurobi Code

```python
import gurobi

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

# Define variables
x1 = model.addVar(lb=0, name="reconnaissance_troops")  # Non-fractional, non-negative
x2 = model.addVar(lb=0, vtype=gurobi.GRB.INTEGER, name="light_infantry_companies")  # Integer, non-negative

# Objective function
model.setObjective(9 * x1 + 5 * x2, gurobi.GRB.MAXIMIZE)

# Constraints
model.addConstr(8.6 * x1 + 2.79 * x2 >= 45, name="fun_factor_min")
model.addConstr(8.6 * x1 + 2.79 * x2 <= 83, name="fun_factor_max")
model.addConstr(9 * x1 - 5 * x2 >= 0, name="troops_vs_companies")

# Optimize
model.optimize()

# Print solution
if model.status == gurobi.GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Reconnaissance troops: {x1.varValue}")
    print(f"Light infantry companies: {x2.varValue}")
    print(f"Objective: {model.objVal}")
else:
    print("No optimal solution found.")
```

## Symbolic Representation Output

```json
{
    'sym_variables': [('x1', 'reconnaissance troops'), ('x2', 'light infantry companies')],
    'objective_function': '9*x1 + 5*x2',
    'constraints': [
        '8.6*x1 + 2.79*x2 >= 45',
        '8.6*x1 + 2.79*x2 <= 83',
        '9*x1 - 5*x2 >= 0'
    ]
}
```