Top Banner
Do lazybones push the world forward? About programming automation Piotr Wikieł, MeetIT Toruń, 2016 @pwikiel, piotr.wikiel@gmail
17

Piotr Wikieł - Do lazybones push the world forward?

Jan 22, 2018

Download

Science

Piotr Wikiel
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

Page 2: Piotr Wikieł - Do lazybones push the world forward?

„There's a pretty good chance we end up with a universal basic

income, or something like that, due to automation”

– Elon Musk

Page 3: Piotr Wikieł - Do lazybones push the world forward?
Page 4: Piotr Wikieł - Do lazybones push the world forward?

Exponential growth of computing. 20th to 21st centuries. CC-BY-1.0 Coutesy of Ray Kurzweil and Kurzweil Technologies, Inc.

Page 5: Piotr Wikieł - Do lazybones push the world forward?

Soft computing

• Fuzzy Logic

• Probabilistic Logic

• Machine Learning

• Evolutionary Computation

Page 6: Piotr Wikieł - Do lazybones push the world forward?

Evolutionary algorithms• Genetic algorithms

• Genetic programming

• Evolutionary programming

• Neuroevolution

• …

Page 7: Piotr Wikieł - Do lazybones push the world forward?
Page 8: Piotr Wikieł - Do lazybones push the world forward?

Function Set and Terminal Set

Page 9: Piotr Wikieł - Do lazybones push the world forward?

Mutation(if (< x 3) (+ (* 2 x) 3) (* (- x 2) x))

(if (< x 3) (+ (* 4 (/ x 2)) 3) (* (- x 2) x))

Page 10: Piotr Wikieł - Do lazybones push the world forward?

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))

Page 11: Piotr Wikieł - Do lazybones push the world forward?

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))

Page 12: Piotr Wikieł - Do lazybones push the world forward?

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

Page 13: Piotr Wikieł - Do lazybones push the world forward?

Search spaceb2 4 4ac

WAT?

Page 14: Piotr Wikieł - Do lazybones push the world forward?

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.

Page 15: Piotr Wikieł - Do lazybones push the world forward?

(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)

Page 16: Piotr Wikieł - Do lazybones push the world forward?

Applications of genetic programming

• Computations

• Building of complex systems

• Life modeling and simulations

Page 17: Piotr Wikieł - Do lazybones push the world forward?

• https://github.com/lspector

• http://www.genetic-programming.com/

• http://faculty.hampshire.edu/lspector/push.html