To solve Autumn Auto's advertising problem, we need to formulate a linear programming model. The goal is to minimize the total cost of advertising while reaching at least 50 million baby boomers and 30 million millennials.

Let's define two decision variables:
- $x_1$: The number of talent show ads purchased.
- $x_2$: The number of global news commercials purchased.

The objective function, which represents the total cost that Autumn Auto wants to minimize, can be written as:
\[ \text{Minimize} \quad 80,000x_1 + 30,000x_2 \]

The constraints are based on the requirements to reach at least 50 million baby boomers and 30 million millennials:
- For baby boomers: $5,000,000x_1 + 13,000,000x_2 \geq 50,000,000$
- For millennials: $20,000,000x_1 + 7,000,000x_2 \geq 30,000,000$

Additionally, $x_1$ and $x_2$ must be non-negative since they represent the number of ads.

Now, let's translate this model into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Autumn_Auto_Advertising")

# Define variables
x1 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="talent_show_ads")
x2 = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name="global_news_commercials")

# Set the objective function
m.setObjective(80000*x1 + 30000*x2, GRB.MINIMIZE)

# Add constraints
m.addConstr(5000000*x1 + 13000000*x2 >= 50000000, "baby_boomers")
m.addConstr(20000000*x1 + 7000000*x2 >= 30000000, "millennials")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Talent show ads: {x1.x}")
    print(f"Global news commercials: {x2.x}")
    print(f"Total cost: ${80000*x1.x + 30000*x2.x}")
else:
    print("No optimal solution found")
```