← Latest papers
💻 computer science

Optimization under uncertainty: understanding orders and testing programs with specifications

This paper demonstrates how functional programming can rigorously specify and test optimization methods under two distinct types of uncertainty—value and functorial—by analyzing the necessary order relations for generalizing minimization to multi-objective and probabilistic settings.

Original authors: Patrik Jansson, Nicola Botta, Tim Richter

Published 2026-03-17
📖 6 min read🧠 Deep dive

Original authors: Patrik Jansson, Nicola Botta, Tim Richter

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are the captain of a ship trying to find the perfect route across an ocean. Your goal is simple: get to the destination as fast as possible while using the least amount of fuel.

In a perfect world, you would have a map that tells you exactly how fast you can go and exactly how much fuel you'll burn for every possible path. You could just pick the single "best" path. This is what computer scientists call optimization under certainty. It's easy to solve, like finding the shortest line on a piece of paper.

But the real world isn't a perfect map. It's foggy, stormy, and full of surprises. This paper is about how to find the "best" route when you can't be 100% sure of the weather, the engine's efficiency, or even what "best" actually means.

The authors, Patrik Jansson, Nicola Botta, and Tim Richter, use the language of Functional Programming (a way of writing software that treats calculations like mathematical functions) to build a toolkit for solving these messy, uncertain problems. They tackle two main types of fog:

1. The Fog of "Too Many Goals" (Value Uncertainty)

The Metaphor: The Impossible Sandwich.
Imagine you are ordering a sandwich. You want it to be:

  • The tastiest possible.
  • The healthiest possible.
  • The cheapest possible.

Here's the problem: The tastiest sandwich is usually the unhealthiest and most expensive. The healthiest one might taste like cardboard. You can't rank them on a single "best" list because they are all different. One isn't strictly "better" than the other; they are just incomparable.

In the paper, this is called Multi-Objective Optimization.

  • The Old Way: People often try to force a solution by saying, "Okay, let's just count health points and taste points and add them up." But this is like saying "1 hour of exercise equals 100 dollars." It's an arbitrary choice that hides the real trade-offs.
  • The New Way (The Paper's Solution): Instead of picking one winner, the authors' method finds the "Pareto Front." Think of this as a "Menu of Good Deals."
    • The menu lists every sandwich where you cannot get more taste without losing health, or more health without losing taste.
    • It doesn't tell you which one to pick; it tells you, "Here are all the options where you are getting the maximum possible value for your money. You decide which trade-off you prefer."

They use a clever "bump" function (like a game of musical chairs) to filter out the bad sandwiches and keep only the ones on the "Good Deal" menu. They also wrote a "test harness" (like a quality control inspector) to make sure their code actually finds the right menu every time.

2. The Fog of "Unknown Outcomes" (Functorial Uncertainty)

The Metaphor: The Magic 8-Ball vs. The Crystal Ball.
Sometimes, even if you know your goals, you don't know what will happen.

  • Scenario A: You invest money. You know you might get \100, or you might lose \50. The outcome is a probability distribution (a list of possibilities with chances attached).
  • Scenario B: You are planning a climate policy. You know that cutting emissions might lower temperatures, but the exact amount depends on complex, unknown physics. The outcome is a range of possibilities (an interval).

In computer science terms, the function doesn't return a single number (like "Cost: \50"); it returns a **container** of numbers (like "Cost: [\40, \60]"or"Cost:5060]" or "Cost: 50% chance of \40, 50% chance of $60").

The Problem: How do you compare two containers?

  • Is a bag with [\40, \60] better than a bag with [\45, \55]?
  • If you just look at the average (the expected value), you might miss a huge risk. Maybe the [\40, \60] bag has a tiny 1% chance of costing you $1,000,000!

The Paper's Solution:
The authors argue that you can't just use a simple average. You need a Measure Function (a rule for judging the bag).

  • The Rule of "Strict Dominance": They propose a strict rule: A bag is only "better" if every single possibility inside it is better than every single possibility in the other bag.
  • The Trap: They show that if you use a bad rule (like just looking at the "width" of the bag or a random constant), you might pick a bag that is actually dangerous.
  • The Fix: They prove that your rule for judging the bag must be Monotonic. This means: "If you improve the contents of the bag (make the numbers smaller), your score for the bag must get better." If your rule doesn't follow this logic, your optimization will break.

They tested this with different "bags" (lists, probability distributions, intervals) and showed that only rules that respect this strict logic lead to safe, reliable decisions.

Why Does This Matter? (The Big Picture)

This isn't just about writing better code; it's about trust.

In fields like Climate Change, Economics, and Engineering, we often have to make decisions that affect millions of lives.

  • If a climate model says "We should cut emissions," but the model didn't account for the uncertainty of how much damage that actually prevents, we might make a bad choice.
  • If a financial model ignores the "worst-case scenario" because it only looks at the "average," we might crash the economy.

The authors are saying: "Stop guessing. Stop using black-box shortcuts."
They provide a rigorous, mathematical way to:

  1. Define what "better" means when you have multiple goals.
  2. Define what "better" means when you have uncertain outcomes.
  3. Test your software to prove it actually follows those definitions.

The Takeaway

Think of this paper as a new set of traffic laws for decision-making in a foggy world.

  • Instead of just driving fast and hoping for the best, it gives you a map of all the safe routes (Pareto Front).
  • It gives you a rulebook for how to judge a car that might break down (Uncertainty).
  • And most importantly, it gives you a mechanic's checklist (Testing) to ensure your car won't crash before you even start the engine.

By using these methods, scientists and policymakers can stop arguing about "gut feelings" and start having clear, honest debates about the trade-offs and risks they are actually willing to accept.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →