Can we measure energy consumption in
population-based metaheuristics?
JJ Merelo, Cecilia Merelo-Molina
Universidad de Granada, Zenzorrito
Energy consumption is a problem
We need to reduce energy consumption in metaheuristics
But we need to measure it first
Meet the Brave New Algorithm
Literature-inspired metaphor
Stratified population evolutionary algorithm
α caste → with itself, crossover +
mutation
β only with α → crossover +
mutation
γ, δ, ε → only mutation; γ →
hillclimbing
Open source, written in Julia!
Very fine control of the exploration/exploitation tradeoff
It's only possible to measure energy spent by the system while our program is running
E(Workload) = E(measured) -
E(baseline)
Baseline includes operating context +
runtime overhead
But we are interested in our algorithm only
E(Workload) = E(measured) -
E(baseline)
So, again, can we measure energy consumption in
population-based metaheuristics?
Maybe not? Check out these baseline measures
Baseline is a fleeting thing...
We need to avoid variability
Or rather to track it
Sequential mixed strategy → 1 Baseline, 1 Workload
Again choppy waters... But at least the ships keep together
Still not ideal for measuring small or medium
differences
Algorithm configuration would be
out
Let's go for a sandwich
Baseline sandwich ⇒ a
workload between 2 baseline runs
E(Workload) = E(measured) -
(E(baseline-before)-E(baseline-after))/2
Also, we make 5 blocks of experiments
Measuring over diverse operating contexts
Even so, this is what we have
📊 Can we spot differences depending on problem dimension/population sizes?
↩ Can we measure energy consumption in
population-based metaheuristics?
📈But we need to boost statistical significance by
experimental repetition
🥪 sandwich
protocol
Conclusion
There's a bonus track!
Open science!
Merci! Nog vraoge?
Thank you very much!
Questions?
🇳🇱 Hartelijk dank. Zijn er nog
vragen?