This presentation argues that sofrware development has lagged behind other engineering disciplines (such as 3D printing) and that there is a need for a significant breakthrough so that software development can be done by a home user who does not posses a high level of technical programming knowledge
Engler and Prantl system of classification in plant taxonomy
A Technological Revolution in Automated Software Development
1. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
A Technological Revolution in Automated
Software Development
Professor Graham Kendall
• Vice-Provost (Research and Knowledge Transfer)
• University of Nottingham Malaysia Campus
• ASAP Research Group, University of Nottingham
2. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
A Technological Revolution in Automated
Software Development
• Based in Malaysia for past four years, and will be there for at least
another four years
• Chair of the MISTA conference series
• Editor-in-Chief of IEEE Transactions of Computational Intelligence
and AI in Games
• Associate Editor of ten journals, mostly (all) Operations Research
related
• Research interests include Operations Research, Logistics,
Scheduling, Evolutionary Computation, Games, Sports
• Fellow of the British Computer Society and Fellow of the
Operational Research Society
• http://www.graham-kendall.com
3. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Contents
• Motivation
• Is software development that hard?
• What can we do today?
• The Future?
We do not have the answers, but
challenges the community
4. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Motivation
• Theme: Computer Science for Improving the Quality of Life
• We are seeing a technological revolution that (in my view) will be viewed as
having a larger impact on society than the industrial revolution
• “Change will never be as slow as it is today”1
1 http://www.ericsson.com/thinkingahead/the-networked-society-blog/2012/10/01/change-will-never-be-as-slow-as-it-is-today/
5. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Motivation
• Social media etc. has changed the lives of billions
• Many examples of disruptive technologies:
• EMAIL has changed the way that we communicate. It was only 20 years
ago when we communicated via memos (nod towards BCC and CC)
• Texting/Whatsapp/Skype
• eBay
• Paypal
• Twitter
• Facebook
• WWW
• Some of these are already obsolete
6. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Motivation
• 3D printing is almost in every home
• Engineers can build bridges, Computer Engineers cannot build software.
Discuss!!
• We cannot automatically produce software – why not – and should this be our
aim?
7. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Is software development that hard?
8. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
• The term hacker was coined during
the pioneering days of computing,
largely at MIT
• People skilled at freaking the phone
system gradually moved over to
computing
• Their motivation was not to cause
destruction but just to work out how
things worked and to do them well
• Their motivation was not financial
• They led their life by an (unwritten)
hacker code
Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition, 2010, O'Reilly Media, ISBN-13: 978-1449388393
9. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
• Chandler is the efforts of Mitch
Kapor (creator of Lotus 1-2-3) to
create a personal information
manager (based on Agenda)
• Released 08 Aug 2008
• How do software development
teams work (or not)?
• Why is it so difficult to reuse
software effectively or efficiently?
• See https://en.wikipedia.org/wiki/Chandler_(software)
Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software, Crown
Business; Reprint edition (February 26, 2008), ISBN-13: 978-1400082476
10. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Arthur Samuel
• Samuel’s challenge: “Can we design a program
that would invent its own features in a game of
checkers and learn how to play, even up to the
level of an expert?”
• Newell’s Challenge: “Could the program learn
just by playing games against itself and receiving
feedback, not after each game, but only after a
series of games, even to the point where the
program wouldn’t even know which programs
had been won or lost?”
• Newell (and Minsky) believed that this was not
possible, arguing that the way forward was to
solve the credit assignment problem.
1. Samuel, A. L. 1959. Some studies in machine learning using the game of checkers. IBM Journal of Research and Development 3(3) 210-229
2. Samuel, A. L. 1967. Some studies in machine learning using the game of checkers ii - recent progress. IBM Journal of Research and
Development 11(6) 610-617
11. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Arthur Samuel
• Working in the late 50’s/early 60’s, Arthur Samuel
developed a algorithm that learnt to play checkers,
by playing against itself
• Bearing in mind the computing power that was
available, the experiment was a success, although
the matches against Robert Nealy were
controversial
• I can show you the relevant games available, if
interested
• Newell and Minksy would argue that you had to
solve the credit assignment problem to create an
effective checkers program
Allen Newell
Marvin Minksy
12. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
David Fogel
The Gedanken Experiment
• I offer to sit down and play a game with you. We sit across an
8x8 board and I tell you the legal moves
• We play five games, only then do I say “You got 7 points”. I
don’t tell you if you win or lost
• We play another five games and I say “You got 5 points”
• You only know “higher is better”
• How long would it take you to become an expert at this game?
• We cannot conduct this experiment but we can get a computer
to do it
1. Fogel, D. B. 2002. Blondie24: Playing at the Edge of AI . Morgan Kaufmann Publishers, Inc., San Francisco, CA
2. Fogel, D. B., K. Chellapilla. 2002. Verifying anaconda's expert rating by competing against Chinook: experiments in co-evolving a neural checkers
player. Neurocomputing 42(1-4) 69-86
3. Fogel, D. B., T. J. Hays, S. L. Hahn, J. Quon. 2004. A self-learning evolutionary chess program. Proceedings of the IEEE 92(12) 19471954
13. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
David Fogel
• Motivated by the defeat of Garry Kasparov in May
1997, Fogel set out to meet the challenge set by
Samuel
• Using Artificial Neural Networks as a function
evaluator, he used it at the bottom of a mini-max
search tree to evaluate board positions
• No optimization of weights and no evaluation
function
• Population of 30 players , played against each other
• After various experimental setups a player was
evolved that was rated over 2000 (expert level) and
that bear over 99% of players of zone.com
• Samuel’s challenge had been met
14. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Work Continues
1. Al-Khateeb, B and Kendall, G Introducing Individual and Social Learning Into
Evolutionary Checkers. IEEE Transactions on Computational Intelligence and AI in
Games, 4 (4): 258-269, 2012
2. Kendall, G and Su, Y Imperfect Evolutionary Systems. IEEE Transactions on
Evolutionary Computation, 11 (3): 294-307, 2007
3. Kendall, G; Yaakob, R and Hingston, P An Investigation of an Evolutionary Approach to
the Opening of Go. In Proceedings of the 2004 IEEE Congress on Evolutionary
Computation (CEC'04), pages 2052-2059, Portland, Oregon, 2004
4. Davis, J.E and Kendall, G An Investigation, using Co-Evolution, to Evolve an Awari
Player. In Proceedings of the 2002 Congress on Evolutionary Computation (CEC 2002),
pages 1408-1413, Hilton Hawaiian Village Hotel, Honolulu, Hawaii, May 12-17, 2002
5. Kendall, G and Smith, C The evolution of blackjack strategies. In Proceedings of the
The IEEE 2003 Congress on Evolutionary Computation (CEC2003), pages 2474-2481,
Canberra, Australia, 2003
15. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Digression
• Johnathan Schaeffer
• Chinook
• Marian Tinsley
• Checkers is Solved
• Checkers has roughly 500 billion billion
possible positions (5 × 1020)
• Perfect play by both sides leads to a draw
• DOI: 10.1126/science.1144079
16. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Genetic Algorithms and Programming
• Motivated by Darwin’s principles of natural
evolution (Survival of the Fittest)
• Evolve solutions to problem, rather than applying a
more traditional algorithmic design approach
• GA’s use a chromosome representation, GP uses
a tree based representation
• GAs/GPs are some of the best known examples of
many evolutionary algorithms. Others include
PSO, ACO,HBO etc.
• The proliferation of these algorithms is not without
criticism
• Sörensen K. 2013. Metaheuristics – the metaphor exposed.
International Transactions on Operational Research,
22(1):3-18
17. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Hyper-heuristics
442 252 127 106 37 10 10
252 252 127 106 37 10 9
252 252 127 85 12 10 9
252 127 106 84 12 10
252 127 106 46 12 10
Pack into bins with a capacity of 524
How would you do it?
18. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Hyper-heuristics
Largest fit, first fit heuristic
Sort the objects in decreasing order of weight , taking them in this
order put each object in the first bin that will accommodate that
object. The bins are also ordered in the order they came into use.
442 252 127 106 37 10 10
252 252 127 106 37 10 9
252 252 127 85 12 10 9
252 127 106 84 12 10
252 127 106 46 12 10
19. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7
442 442
252 252
252 252
252 252
252 252
252 252
252 252
252 252
127 127
127 127
127 127
127 127
127 127
106 106
106 106
106 106
106 106
85 85
84 84
46 46
37 37
37 37
12 12
12 12
12 12
10 10
10 10
10 10
10 10
10 10
10 10
9 9
9 9
524 524 524 524 524 524 524
All bins
filled to
capacity
20. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Remove Item 46
Bin 1 Bin 2 Bin 3 Bin 4 Bin 5 Bin 6 Bin 7 Bin 8
442 442
252 252
252 252
252 252
252 252
252 252
252 252
252 252
127 127
127 127
127 127
127 127
127 127
106 106
106 106
106 106
106 106
85 85
84 84
37 37
37 37
12 12
12 12
12 12
10 10
10 10
10 10
10 10
10 10
10 10
9 9
9 9
516 516 516 516 516 517 516 9
21. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Hyper-heuristics
Domain Barrier
……
Set of low level heuristics
Evaluation Function
Hyper-heuristic
Data flow
Data flow
H1 H2 Hn
22. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Hyper-heuristics
Domain Barrier
……
Set of low level heuristics
Evaluation Function
Hyper-heuristic
Data flow
Data flow
H1 H2 Hn
Generate these?
Evolve Acceptance
Function?
23. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Hyper-heuristics
Domain Barrier
……
Set of low level heuristics
Evaluation Function
Hyper-heuristic
Data flow
Data flow
H1 H2 Hn
Burke, E. K; Gendreau, M; Hyde, M; Kendall, G;
Ochoa, G; Özcan, E and Qu, R Hyper-heuristics: a
survey of the state of the art. Journal of the
Operational Research Society, 64 (12): 1695-1724,
2013
24. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Hyper-heuristics
1. Li, J and Kendall, G A hyper-heuristic methodology to generate adaptive strategies for
games. IEEE Transactions on Computational Intelligence and AI in Games, In Press
2. Grobler, J; Engelbrecht, A. P; Kendall, G and Yadavalli, V.S.S Heuristic Space Diversity
Control for Improved Meta-Hyper-Heuristic Performance. Information Sciences, 300: 49-
62, 2015
3. Maashi, M; Kendall, G and Özcan, E Choice Function based Hyper-heuristics for Multi-
objective Optimization. Applied Soft Computing, 28: 312-326, 2015
4. Sabar, N. R; Ayob, M; Kendall, G and Qu, R A Dynamic Multiarmed Bandit-Gene
Expression Programming Hyper-Heuristic for Combinatorial Optimization Problems.
IEEE Transactions on Cybernetics, 45 (2): 217-228, 2015.
5. Sabar, N. R and Kendall, G Population based Monte Carlo tree search hyper-heuristic
for combinatorial optimization problems. Information Sciences, 314: 225-239, 2015
6. Sabar, N. R; Ayob, M; Kendall, G and Qu, R Grammatical Evolution Hyper-Heuristic
for Combinatorial Optimization Problems. IEEE Transactions on Evolutionary
Computation, 17 (6): 840-861, 2013
25. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
Comments
• We have been evolving software since the 1950s
• Are we really any better at it, considering other advances?
• GP has the Humies (won in 2014 by an evolving checkers program)
• The examples I have used have been very selective but are there examples of
software being automatically developed for a large, commercial system?
26. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
The Future?
• How can we package up software development for the novice user, such that
an easy to use user interface enables anybody to develop software for any
purpose
• Time is not a real issue (c/f with 3D printing)
27. A Technological Revolution in Automated Software
Development
ICOCI 2015 – 11 Aug 2015
The Future?
• A challenge to Computer Science is to make software easier to develop, ideally
by the home user in the same way they can 3D print
• Most (all) of the automated software development methodologies that I know of
are search
• Search for a program
• Search for a heuristic selection algorithm
• Search for new heuristics
• I believe that this is one of the biggest challenges that faces Computer Science