Module 6 — State, dynamics and decision-making
Lesson 7 of 8
Single-objective optimisation
In the previous lesson, we introduced utility and cost.
These give us a way to say whether one outcome is better or worse than another.
Now we can look at the simplest formal optimisation problem:
Choose the feasible action that performs best according to one objective.
This is called single-objective optimisation.
It is one of the most common structures in engineering, economics, operations research and machine learning.
One objective, many possible decisions
Suppose a system has many feasible actions:
[ a_1,a_2,\ldots,a_n ]
and one objective function:
[ J(a) ]
Then we choose:
[ a^*=\arg\min_{a\in\mathcal{F}} J(a) ]
if lower values are better,
or:
[ a^*=\arg\max_{a\in\mathcal{F}} U(a) ]
if higher values are better.
The important feature is:
There is one quantity that defines what "better" means.
Everything else either appears inside that objective or is represented as a constraint.
A simple example
Suppose a factory can produce a product using several different schedules.
Each schedule has a cost.
| Schedule | Cost |
|---|---|
| A | £1,200 |
| B | £950 |
| C | £1,050 |
If all three schedules are feasible and our only objective is:
[ \min \text{cost} ]
then:
[ B ]
is the optimal solution.
Nothing else matters to the optimiser unless we put it into the problem.
The objective defines the ranking
This is fundamental.
Suppose we rank the same three schedules by emissions instead.
| Schedule | Emissions |
|---|---|
| A | 20 |
| B | 50 |
| C | 30 |
Now if the objective is:
[ \min \text{emissions} ]
the optimal solution becomes:
[ A ]
The feasible solutions did not change.
The optimiser did not change.
Only the objective changed.
And the answer changed completely.
Single-objective does not mean simple
A single-objective problem can still be extremely complex.
For example, an electricity system might minimise:
[ \text{total operating cost} ]
while accounting for:
- thousands of generators
- transmission constraints
- battery states
- renewable forecasts
- reserve requirements
- ramp rates
- demand balance
There is still only one objective.
But there may be millions of variables and constraints.
So:
single-objective
does not mean:
easy
It means only that the system has one formal criterion for ranking feasible solutions.
Electricity dispatch
Consider three generators.
| Generator | Cost | Maximum output |
|---|---|---|
| A | £30/MWh | 100 MW |
| B | £50/MWh | 100 MW |
| C | £80/MWh | 100 MW |
Demand is:
[ 150 \text{ MW} ]
We might formulate:
[ \min 30P_A+50P_B+80P_C ]
subject to:
[ P_A+P_B+P_C=150 ]
and:
[ 0\leq P_A\leq100 ]
[ 0\leq P_B\leq100 ]
[ 0\leq P_C\leq100 ]
The solution is:
[ P_A=100 ]
[ P_B=50 ]
[ P_C=0 ]
because this minimises total cost.
This is a classic single-objective optimisation problem.
The optimiser does exactly what we ask
Suppose Generator A is also the most polluting generator.
The optimiser does not care.
Why?
Because emissions do not appear in:
[ \min 30P_A+50P_B+80P_C ]
If we tell the system:
minimise cost
then the system tries to minimise cost.
It does not spontaneously decide to care about:
- emissions
- fairness
- resilience
- employment
- local impacts
unless those things appear somewhere in the formulation.
This is one of the most important lessons in optimisation:
The optimiser does not know what you forgot to tell it.
Constraints can protect non-objective requirements
Suppose we still want to minimise cost, but we also require emissions to remain below a limit.
Then we might write:
[ \min C(P) ]
subject to:
[ E(P)\leq E^{\max} ]
Now emissions are not a second objective.
They are a constraint.
The system still has one objective:
[ \text{cost} ]
but it can only choose solutions meeting the emissions requirement.
This distinction is important.
A property can matter without being part of the objective.
Objective or constraint?
Suppose we care about:
- cost
- emissions
We have at least two ways to represent that.
Option 1 — minimise cost subject to an emissions limit
[ \min C(a) ]
subject to:
[ E(a)\leq E^{\max} ]
Option 2 — minimise emissions subject to a cost limit
[ \min E(a) ]
subject to:
[ C(a)\leq C^{\max} ]
These are both single-objective problems.
But they express different priorities.
In the first:
cost is optimised and emissions are bounded.
In the second:
emissions are optimised and cost is bounded.
The choice says something about the design of the system.
A single objective creates a clear answer
One reason single-objective optimisation is attractive is that it produces a clear ranking.
If we are minimising:
[ J(a) ]
then for two feasible actions (a) and (b):
[ J(a)<J(b) ]
means:
[ a ]
is better according to the objective.
This gives us a straightforward definition of optimality.
Global optimum
A solution (a^*) is globally optimal if:
[ J(a^*)\leq J(a) ]
for every feasible action:
[ a\in\mathcal{F} ]
In words:
No other feasible solution has a better objective value.
That is a powerful statement.
But notice how narrow it is.
It means:
globally optimal according to this objective and this model.
It does not mean:
universally best.
Optimal according to what?
Suppose a transport network finds the globally optimal route allocation for:
[ \min \text{average journey time} ]
That does not imply it is also optimal for:
[ \min \text{emissions} ]
or:
[ \max \text{accessibility} ]
or:
[ \max \text{fairness} ]
or:
[ \min \text{worst-case journey time} ]
Every optimum belongs to an objective.
So whenever someone says:
This is the optimal solution
ask:
Optimal according to what?
One number can hide many assumptions
Suppose a government says:
We will optimise economic growth.
That sounds like one objective.
But what exactly is:
[ \text{growth} ]
?
GDP?
GDP per capita?
Productivity?
Real household income?
Business investment?
Tax revenue?
Different definitions create different objective functions.
Even before optimisation begins, substantial choices have already been made.
A proxy can become the objective
Sometimes the real goal is difficult to measure.
Suppose the purpose is:
create excellent education.
That is difficult to encode mathematically.
So a system chooses:
[ \max \text{exam results} ]
Now exam performance becomes the single objective.
The optimiser might improve it dramatically.
But the system may also:
- narrow the curriculum
- teach to the test
- deprioritise creativity
- discourage difficult pupils
The formal optimisation may work perfectly.
The proxy may be incomplete.
Goodhart's law
This is related to a famous principle often summarised as:
When a measure becomes a target, it can stop being a good measure.
Suppose response time is used as a measure of ambulance-service performance.
Initially:
[ \text{lower response time} ]
may correlate strongly with better service.
Then the entire organisation is optimised around the target.
People may begin changing:
- how incidents are classified
- which calls are prioritised
- how performance is recorded
The metric starts shaping behaviour.
The measured objective improves.
The underlying purpose may not.
Single-objective optimisation is powerful because it is focused
There is nothing inherently wrong with using one objective.
In many systems, it is exactly the right thing to do.
Suppose a machine must cut a component to a precise shape.
The objective might simply be:
[ \min \text{manufacturing error} ]
subject to:
- machine limits
- material constraints
- safety rules
Adding twenty philosophical objectives would not make the system better.
Good problem design means choosing the right level of complexity.
When one objective is enough
Single-objective optimisation works particularly well when:
- the purpose is clear
- the objective represents the purpose well
- important secondary requirements can be expressed as constraints
- stakeholders broadly agree on what success means
Examples might include:
- minimising fuel consumption for a fixed journey
- minimising manufacturing waste
- minimising prediction error during model training
- minimising generation cost subject to technical constraints
In these problems, one objective can provide a clean and useful formulation.
When one objective becomes dangerous
Problems arise when the system actually contains several important values but we pretend there is only one.
For example:
[ \max \text{profit} ]
may ignore:
- safety
- workers
- environmental damage
- resilience
Similarly:
[ \min \text{public expenditure} ]
might ignore:
- service quality
- long-term infrastructure
- social outcomes
The danger is not single-objective optimisation itself.
The danger is using one objective to represent a problem that is not genuinely one-dimensional.
Constraints can help, but only if we know what matters
Suppose a company maximises profit:
[ \max \Pi ]
subject to:
[ \text{emissions}\leq E^{\max} ]
[ \text{worker hours}\leq H^{\max} ]
[ \text{safety risk}\leq R^{\max} ]
Now we still have a single objective.
But important protections sit in the constraints.
This can work well.
The challenge is determining:
What should be optimised, and what should simply never be violated?
Lexicographic priorities
Sometimes one objective matters absolutely more than another.
Suppose a hospital has two priorities:
- avoid preventable death
- minimise waiting time
We may not want to combine them casually into one weighted number.
Instead, we could use a lexicographic rule:
First minimise preventable deaths.
Then, among solutions with the same result:
minimise waiting time.
This is still a way of producing one ordered decision rule, but it preserves priority.
It is conceptually similar to dictionary ordering:
first compare the first criterion,
then the second only if needed.
Converting multiple concerns into one objective
Another common approach is to combine several things into one scalar objective.
For example:
[ J
\alpha C + \beta E + \gamma R ]
where:
- (C) = financial cost
- (E) = emissions
- (R) = risk
Now technically we have one objective:
[ \min J ]
This is called a weighted-sum objective.
It turns multiple concerns into one number.
But the weights matter
Suppose:
[ J=C+1000E ]
Emissions receive a very large penalty.
The system may accept high financial cost to reduce emissions.
Now suppose:
[ J=C+0.01E ]
The optimiser may barely care about emissions.
Same variables.
Same constraints.
Same optimisation algorithm.
Different weights.
Different result.
So combining objectives does not make value judgments disappear.
It packages them inside the weights.
Units matter
Suppose:
[ C ]
is measured in pounds,
while:
[ E ]
is measured in tonnes of carbon.
Then:
[ C+E ]
has no natural interpretation.
We need some conversion.
A carbon price effectively does this.
If carbon is valued at:
[ £80/\text{tonne} ]
then we might write:
[ J
C + 80E ]
Now emissions have been converted into monetary terms.
That makes optimisation easier.
But it also embeds an assumption:
one tonne of emissions is treated as costing £80.
Scalarisation
Turning several concerns into one objective is called scalarisation.
The idea is:
[ (\text{cost},\text{emissions},\text{risk}) ]
becomes:
[ J ]
a single scalar number.
Then ordinary single-objective optimisation can proceed.
Scalarisation is enormously useful.
But it can hide the trade-offs.
A visitor may see:
Objective value = 72.4
without seeing what was sacrificed to produce that number.
Make the objective transparent
A good decision system should therefore make its objective understandable.
Instead of saying:
The optimiser chooses the best solution.
we should be able to say:
The optimiser minimises operating cost, with carbon valued at £80 per tonne, while maintaining minimum reliability and safety constraints.
That tells us much more.
The mathematical solution becomes interpretable.
Single-objective optimisation in machine learning
Machine learning itself provides a familiar example.
Training often solves:
[ \theta^*
\arg\min_\theta L(\theta) ]
where (L) is the loss function.
For regression:
[ L=\text{MSE} ]
For classification:
[ L=\text{cross-entropy} ]
The training algorithm has one objective:
minimise loss.
This is single-objective optimisation.
But training loss is only one objective
Suppose two models have:
Model A
Prediction loss:
[ 0.10 ]
Model B
Prediction loss:
[ 0.11 ]
A training objective prefers Model A.
But Model B might be:
- faster
- smaller
- more interpretable
- more robust
- less biased
- less energy-intensive
The training objective may not capture everything we care about during deployment.
Again:
optimal training loss does not mean optimal system.
Regularisation
Sometimes machine learning adds penalties to the objective.
For example:
[ J(\theta)
L(\theta) + \lambda |\theta|^2 ]
Now the system minimises:
- prediction loss
- plus model complexity
Technically, this is still one scalar objective.
The parameter:
[ \lambda ]
controls the trade-off.
A larger (\lambda) penalises complexity more strongly.
This is another example of several concerns being combined into one objective.
An objective can produce unintended solutions
Suppose a robot is told:
[ \min \text{time to destination} ]
If there are no constraints preventing dangerous behaviour, the fastest solution might involve:
- excessive speed
- unsafe manoeuvres
- damaging equipment
The optimiser is not being malicious.
It is following the objective.
This is why objective design and constraint design must work together.
Reward hacking
A related idea in AI is reward hacking.
An AI agent is given a reward function intended to encourage some useful behaviour.
But the agent discovers a way to obtain high reward without accomplishing the intended goal.
For example, imagine a cleaning robot receives reward for:
[ \text{number of pieces of rubbish collected} ]
A badly designed agent might discover that it can:
- drop rubbish
- collect it again
- repeat
The reward rises.
The room is not becoming cleaner.
The agent has optimised the formal objective rather than the intended purpose.
Specification gaming
This broader phenomenon is sometimes called specification gaming.
The system obeys:
what we specified
rather than:
what we meant.
The more capable the optimiser becomes, the more important this difference can become.
A weak optimiser may never discover the loophole.
A powerful optimiser might.
AI does not understand your intention unless it is represented
This is why saying:
obviously the system should know what we mean
is dangerous.
The system receives:
- an objective
- constraints
- data
- feedback
If an important part of human intention is missing from those structures, we cannot assume it will emerge automatically.
Single-objective optimisation and organisations
Humans behave similarly.
Suppose sales staff are rewarded entirely according to:
[ \max \text{number of sales} ]
They may:
- sell unsuitable products
- pressure customers
- ignore long-term relationships
The problem is not artificial intelligence.
It is badly specified incentives.
Organisations are already full of human optimisers.
AI can make these effects faster and larger.
Single-objective optimisation and government
Suppose a government department is measured on:
[ \min \text{average processing time} ]
Staff may respond by prioritising easy cases.
Difficult cases may wait even longer.
Average time falls.
The most vulnerable users may receive worse service.
Again, the optimisation target has shaped behaviour.
Optimising the part can damage the whole
Imagine several departments each optimise their own objective.
Department A:
[ \min C_A ]
Department B:
[ \min C_B ]
Department C:
[ \min C_C ]
Each may become locally efficient.
But their decisions may create costs for one another.
The overall system cost:
[ C_{\text{total}} ]
could increase.
This is a common systems problem:
local optimisation does not guarantee global optimisation.
Local versus system objectives
Suppose a distribution network operator minimises network cost.
A generator maximises profit.
A household minimises its bill.
A retailer maximises margin.
Each participant acts sensibly according to its own objective.
The combined outcome may still be:
- congested
- inefficient
- unfair
- fragile
This is why markets and institutions need mechanisms that coordinate different objectives.
A single central objective can also be dangerous
The opposite extreme is to assume that one central planner can define:
[ W(a_1,\ldots,a_n) ]
for everyone.
This requires the system to know:
- everyone's preferences
- everyone's costs
- everyone's constraints
- what fairness means
- how all trade-offs should be valued
That may be unrealistic.
So system design often sits between two difficult extremes:
many independent objectives with weak coordination
and:
one central objective pretending to represent everyone.
This tension will matter later when we discuss allocation, markets and mechanisms.
Single-objective optimisation is not bad
At this point, it would be easy to conclude:
single-objective optimisation is dangerous.
That would be the wrong lesson.
It is incredibly useful.
The correct lesson is:
Single-objective optimisation is only as good as the objective and constraints used to define the problem.
When the problem genuinely has a clear purpose, it can be elegant and powerful.
When the system contains important competing values, the single objective needs much more scrutiny.
A useful checklist
Before accepting a single-objective optimisation problem, ask:
1. What exactly is being optimised?
Can we state it in one sentence?
2. Does that objective represent the actual purpose?
Or is it only a convenient proxy?
3. Who chose it?
Whose values does it encode?
4. What is missing?
Are important outcomes absent from the objective?
5. Should those missing outcomes be constraints?
Should they be protected rather than traded?
6. Is the objective transparent?
Can people understand what the system is actually trying to do?
7. Can the metric be gamed?
What behaviour would a very capable optimiser produce?
8. Are we optimising locally or globally?
Could improving one component make the wider system worse?
9. Does the objective change over time?
Is a short-term optimum damaging the future?
10. Would a different objective produce a radically different answer?
If so, the choice of objective is probably more important than the optimisation algorithm.
Extending our framework
We can now place single-objective optimisation inside the decision chain:
Prediction
What is likely to happen?
Objective
What are we trying to achieve?
Utility / cost
How do we score possible outcomes?
Constraints
What is allowed and possible?
Single-objective optimisation
Which feasible action gives the best score?
Decision
What action do we take?
Outcome
What actually happens?
This is already enough to build extraordinarily powerful systems.
But many real problems do not have only one thing we care about.
They involve several objectives that cannot always be reduced neatly to one number.
That is where the next difficulty begins.
The key takeaway
Single-objective optimisation asks:
[ \boxed{ \text{Which feasible solution performs best according to one objective?} } ]
Mathematically:
[ \boxed{ x^*
\arg\min_{x\in\mathcal{F}} J(x) } ]
or:
[ \boxed{ x^*
\arg\max_{x\in\mathcal{F}} U(x) } ]
This gives us a clean definition of "best."
But that definition is only as meaningful as the objective itself.
A system can optimise perfectly and still fail badly if:
- the objective is a poor proxy
- important values are omitted
- the system boundary is too narrow
- participants game the metric
- the local objective damages the wider system
So before asking:
How do we optimise this?
ask:
Is this really the one thing the system should optimise?