Piotr Wikieł - Do lazybones push the world forward?
-
Upload
piotr-wikiel -
Category
Science
-
view
44 -
download
0
Transcript of Piotr Wikieł - Do lazybones push the world forward?
Do lazybones push the world forward?
About programming automation
Piotr Wikieł, MeetIT Toruń, 2016 @pwikiel, piotr.wikiel@gmail
„There's a pretty good chance we end up with a universal basic
income, or something like that, due to automation”
– Elon Musk
Exponential growth of computing. 20th to 21st centuries. CC-BY-1.0 Coutesy of Ray Kurzweil and Kurzweil Technologies, Inc.
Soft computing
• Fuzzy Logic
• Probabilistic Logic
• Machine Learning
• Evolutionary Computation
Evolutionary algorithms• Genetic algorithms
• Genetic programming
• Evolutionary programming
• Neuroevolution
• …
Function Set and Terminal Set
Mutation(if (< x 3) (+ (* 2 x) 3) (* (- x 2) x))
(if (< x 3) (+ (* 4 (/ x 2)) 3) (* (- x 2) x))
Crossover(if (< x 3) (+ (* 2 x) 3) (* (- x 2) x))
(if (< x 3) (+ (* 4 (/ x 2)) 3) (/ (* x Math/PI) 2))
(if (< x 3) (+ (* 2 x) 3) (/ (* x Math/PI) 2))
Architecture-altering operations
(if (< x 3) (+ (* 2 x) 3) (* (- x 2) x))
(defn foo1 [x] (+ (* 2 x) 3))
(if (< x 3) (foo1 x) (* (- x 2) x))
Fitness function
• Answers the question „How good is program in doing its work?”
• May contain some penalties, e.g. for the size of the program
• Lexicase selection
Search spaceb2 4 4ac
WAT?
Push&PushGP• Language for creating evolutionary systems
• Based on stacks:
• one stack for every type of data
• one stack for code
• one stack for executed program
• Based on operations on stacks’ elements.
(run-push ’(2 2 integer_add) (make-push-state))
:integer (4)
(run-push ’(2 2 3 integer_add integer_mult) (make-push-state))
:integer (10)
Applications of genetic programming
• Computations
• Building of complex systems
• Life modeling and simulations
• https://github.com/lspector
• http://www.genetic-programming.com/
• http://faculty.hampshire.edu/lspector/push.html