From Programs to Program Spaces: Programming by Optimisation
Holger H. Hoos
BETA Lab Department of Computer Science University of British Columbia Canada
45th CREST Open Workshop on Genetic Improvement London, UK, 2016/01/26
From Programs to Program Spaces: Programming by Optimisation Holger - - PowerPoint PPT Presentation
From Programs to Program Spaces: Programming by Optimisation Holger H. Hoos BETA Lab Department of Computer Science University of British Columbia Canada 45th CREST Open Workshop on Genetic Improvement London, UK, 2016/01/26 The age of
BETA Lab Department of Computer Science University of British Columbia Canada
45th CREST Open Workshop on Genetic Improvement London, UK, 2016/01/26
“As soon as an Analytical Engine exists, it will necessarily guide the future course of the science. Whenever any result is sought by its aid, the question will then arise – by what course of calculation can these results be arrived at by the machine in the shortest time?”
(Charles Babbage, 1864)
Holger Hoos: Programming by Optimisation 1
I financial markets I social interactions I cultural preferences I artistic production I . . .
Holger Hoos: Programming by Optimisation 2
I computation speed (time is money!) I energy consumption (battery life, ...) I quality of results (cost, profit, weight, ...)
I globalised markets I just-in-time production & services I tighter resource constraints
Holger Hoos: Programming by Optimisation 3
application context 1 solver application context 2 application context 3 solver solver
application context 1 solver[p1] application context 2 application context 3 solver[p3] solver solver[·] solver solver solver solver[p2]
I widely used industrial optimisation software I exact solver, based on sophisticated branch & cut algorithm
I 135 parameters that directly control search process I find parameter settings that solve MIP-encoded wildlife
Holger Hoos: Programming by Optimisation 5
Lo Hi
Holger Hoos: Programming by Optimisation 6
Lo Hi
Holger Hoos: Programming by Optimisation 6
10-2 10-1 100 101 102 103 104 105 10-2 10-1 100 101 102 103 104 105 CPLEX optimised [CPU s] CPLEX default [CPU s]
Holger Hoos: Programming by Optimisation 7
I parameterised target algorithm A
I set of (training) inputs I I performance metric m
Holger Hoos: Programming by Optimisation 8
Holger Hoos: Programming by Optimisation 9
I size of configuration space I parameter interactions I discrete / categorical parameters I conditional parameters I performance varies across inputs (problem instances) I evaluating poor configurations can be very costly I censored algorithm runs
Holger Hoos: Programming by Optimisation 10
e.g., Jones (1998), Bartz-Beielstein (2006) I Key idea:
I perform runs for selected configurations (initial design)
I iteratively select promising configuration,
Holger Hoos: Programming by Optimisation 11
parameter response measured
Holger Hoos: Programming by Optimisation 12
parameter response model measured
Holger Hoos: Programming by Optimisation 12
parameter response model predicted best measured
Holger Hoos: Programming by Optimisation 12
parameter response model predicted best measured
Holger Hoos: Programming by Optimisation 12
parameter response model predicted best measured
Holger Hoos: Programming by Optimisation 12
parameter response model predicted best measured
new incumbent found!
Holger Hoos: Programming by Optimisation 12
Hutter, HH, Leyton-Brown (2011) I uses random forest model to predict performance
I predictions based on algorithm parameters and instance
I finds promising configurations based on expected improvement
I initialisation with single configuration
Holger Hoos: Programming by Optimisation 13
Lo Hi
Holger Hoos: Programming by Optimisation 14
Lo Hi
Holger Hoos: Programming by Optimisation 14
HH (2012)
I program (large) space of programs I encourage software developers to
I avoid premature commitment to design choices I seek & maintain design alternatives
I automatically find performance-optimising designs
Holger Hoos: Programming by Optimisation 15
use context
PbO-<L> source(s) parametric <L> source(s) instantiated <L> source(s) deployed executable design space description PbO-<L> weaver PbO design
benchmark inputs Holger Hoos: Programming by Optimisation 16
Holger Hoos: Programming by Optimisation 17
Application, Design choices Speedup PbO level SAT-based software verification (Spear), 26
Hutter, Babi´ c, HH, Hu (2007)
4.5–500 × 2–3 AI Planning (LPG), 62
Vallati, Fawcett, Gerevini, HH, Saetti (2011)
3–118 × 1 Mixed integer programming (CPLEX), 76
Hutter, HH, Leyton-Brown (2010)
2–52 ×
University timetabling, 18 design choices, PbO level 2–3 new state of the art; UBC exam scheduling
Fawcett, Chiarandini, HH (2009)
Machine learning / Classification, 786 design choices, PbO level 0–1
methods from machine learning
Thornton, Hutter, HH, Leyton-Brown (2012) Holger Hoos: Programming by Optimisation 18
Mu, Hoos, St¨ utzle (under review)
√n
10-3 10-2 10-1 100 101 102 103 104 105 2000 4000 6000 8000 10000 running time [CPU s] #cities EAX default EAX optimised
Holger Hoos: Programming by Optimisation 19
I macro learning in planning (Alhossaini & Beck 2012) I garbage collection in Java (Lengauer & M¨
I kidney exchange (Dickerson et al. 2012)
Holger Hoos: Programming by Optimisation 20
solver design space
Holger Hoos: Programming by Optimisation 21
application context solver
solver design space
Holger Hoos: Programming by Optimisation 21
application context planner planner solver
solver parallel portfolio instance- based selector design space
Holger Hoos: Programming by Optimisation 21
application context planner planner
solver parallel portfolio instance- based selector design space
Holger Hoos: Programming by Optimisation 21
I leverages computational power to construct
I enables creative thinking about design alternatives I produces better performing, more flexible software I facilitates scientific insights into
I efficacy of algorithms and their components I empirical complexity of computational problems
Holger Hoos: Programming by Optimisation 22
(Prof. Mondrian Kilroy in Alessandro Baricco: City)