Skip to content
Blog

They’re everywhere: Spotting optimization problems in the wild

Airports. Restaurant kitchens. CERN. Once you start seeing planning problems in everyday life, you can’t stop. Fair warning: this is a one-way door.

I’ve been flying a bit more recently for speaking engagements. Dublin. CERN. A few other places in between. As fun as that sounds, it also means something else: A lot of time in airports.

Right now, as I’m writing this, I’m sitting at a gate waiting for my flight. My flight is delayed. The gate next to mine just changed. A crowd of people is collectively refreshing the airport app, hoping their boarding time magically moves forward so they don’t miss their connection.

I couldn’t help but smile and think: yep, this is a planning problem!

Over the past year, I’ve noticed something interesting about how I look at the world. I’ve written about it before, but the idea keeps coming back: Planning problems are everywhere.

I’ve joked it is sort of a curse, once you start seeing them, you can’t really unsee them. And yet people underestimate just how common they are. When you start modelling these problems, you begin to notice something interesting: they all share the same structure.

# Airports: A giant optimization puzzle

Airports might be one of the best examples.

When you think about everything that has to come together, it’s really a lot! Airports are actually running several optimization problems at the same time: gate assignment, crew scheduling, aircraft turnaround planning, runway slot allocation**,** and passenger connection protection. It’s almost a wonder airports work at all.

Yet people often remember just the negative and chaotic parts: the boarding delay, the last minute gate changes or the long lines at security.

Working with planning problems on a daily basis, I see things a little differently. Just understanding the immense complexity behind creating an initial plan already makes me feel calmer about the chaos.

Think about the decisions involved:

  • Which gate should each flight use?
  • Which crew can legally operate a flight after delays?
  • How do we minimize missed connections?
  • Where should incoming aircraft be parked?
  • How do we re-route passengers when things go wrong?

Every delay or mishap ripples through that system of decisions, forcing the plan to be re-evaluated.

When the chaos hits, like it has around me writing this, I realize that this is just the result of a complex system constantly trying to adapt its plan as the situation changes.

And honestly, I can’t help but admire the attempt 🙂.

# Irish breakfast, but optimized

Apparently I don’t even need to be fully awake to get bitten by the optimization bug.

After a busy evening speaking at a user group in Dublin and a shorter night than I hoped for, I dragged myself to a nearby breakfast restaurant to grab a proper Irish breakfast with a fellow optimization enthusiast.

As we were talking about the different projects we’d worked on, I became fascinated with the restaurant’s open kitchen layout. And once again, my mind drifted toward optimization.

A restaurant kitchen is basically a job scheduling system. Orders arrive dynamically. Each dish requires different preparation steps. The kitchen has limited resources: burners, ovens, chefs, and time.

The staff constantly make small scheduling decisions:

  • Which order should be cooked first?
  • Which dishes can run in parallel?
  • How do we avoid one table waiting forever?

Experienced kitchens develop an intuition for it, but under the hood it resembles a classic job-shop scheduling problem.

And I couldn’t help but think how I’d model this problem as an optimization problem.

Sure, this kitchen is at a small scale. But structurally, it’s not that different from much larger systems.

# CERN

I was lucky enough to be invited to speak at Voxxed Days CERN, which came with some awesome perks, including a guided tour through the facilities. You probably guessed it by now, but even here it made me wonder about the planning challenges behind the scenes.

  • Scheduling maintenance for all different facilities
  • Allocating compute resources for analysis jobs
  • Coordinating experiments and detector usage

Even at one of the world’s most advanced research labs, the same fundamental problem appears again and again: “How do we allocate limited resources in the best possible way?”.

And of course, my brain was already buzzing with ways to optimize it.

# Seeing the pattern

If you are involved with planning optimization solutions, a pattern starts to emerge that you can’t unsee. Many everyday systems share the same underlying structure:

  • Resources (gates, buses, chefs, CPUs)
  • Tasks (flights, routes, orders, jobs)
  • Constraints (time limits, capacity, regulations)
  • Objectives (speed, cost, fairness, efficiency)

…and the challenge becomes finding the best possible plan.

Optimization problems are just amazing puzzles… and quite addictive 🙂 The only downside is that once you start thinking this way, it becomes hard to stop.

You start seeing optimization problems everywhere:

In airports. In supermarkets. In conference schedules. In traffic lights. In restaurant kitchens.

Sometimes you’re just standing in line somewhere and suddenly catch yourself thinking:

This could be optimized!

Much to the dismay of my partner and friends, who occasionally see me drift off mid-conversation.

But when things go sideways, like delays at an airport, it also brings a strange kind of calm.

Because the chaos we see in the real world often isn’t chaos at all.

It’s a plan being repaired in real time.

And if you know how to look at it…

You start seeing optimization problems everywhere.

Continue reading