Piotr Wikieł - Czy lenie pchają świat do przodu?

17
Czy lenie pchają świat do przodu? O automatyzacji programowania Piotr Wikieł, MeetIT Toruń, 2016 @pwikiel, piotr.wikiel@gmail

Transcript of Piotr Wikieł - Czy lenie pchają świat do przodu?

Page 1: Piotr Wikieł - Czy lenie pchają świat do przodu?

Czy lenie pchają świat do przodu?O automatyzacji programowania

Piotr Wikieł, MeetIT Toruń, 2016 @pwikiel, piotr.wikiel@gmail

Page 2: Piotr Wikieł - Czy lenie pchają świat do przodu?

„Jest całkiem duża szansa, że skończymy z jakąś formą dochodu

gwarantowanego za sprawą automatyzacji.”

– Elon Musk

Page 3: Piotr Wikieł - Czy lenie pchają świat do przodu?
Page 4: Piotr Wikieł - Czy lenie pchają świat do przodu?

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

Page 5: Piotr Wikieł - Czy lenie pchają świat do przodu?

Soft computing

• Logika rozmyta (Fuzzy Logic)

• Logika probabilistyczna (Probabilistic Logic)

• Machine learning (Machine Learning)

• Obliczenia ewolucyjne (Evolutionary Computation)

Page 6: Piotr Wikieł - Czy lenie pchają świat do przodu?

Algorytmy ewolucyjne• Algorytmy genetyczne

• Programowanie genetyczne

• Programowanie ewolucyjne

• Neuroewolucja

• …

Page 7: Piotr Wikieł - Czy lenie pchają świat do przodu?
Page 8: Piotr Wikieł - Czy lenie pchają świat do przodu?

Function Set i Terminal Set

Page 9: Piotr Wikieł - Czy lenie pchają świat do przodu?

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

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

Page 10: Piotr Wikieł - Czy lenie pchają świat do przodu?

Krzyżowanie(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ł - Czy lenie pchają świat do przodu?

Zmiana struktury(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ł - Czy lenie pchają świat do przodu?

Funkcja przystosowania

• (ang. fitness function)

• Musi odpowiadać na pytanie „jak dobrze program wykonuje swoją pracę?”

• Może zawierać „kary”

• Lexicase selection

Page 13: Piotr Wikieł - Czy lenie pchają świat do przodu?

Search spaceb2 4 4ac

WAT?

Page 14: Piotr Wikieł - Czy lenie pchają świat do przodu?

Push&PushGP• Język do tworzenia systemów ewolucyjnych

• Oparty o kilka stosów:

• dla różnych typów danych

• dla kodu

• dla wykonywanego programu

• … i o operacje na elementach stosów

Page 15: Piotr Wikieł - Czy lenie pchają świat do przodu?

(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ł - Czy lenie pchają świat do przodu?

Zastosowania programowania genetycznego

• Problemy obliczeniowe

• Tworzenie skomplikowanych systemów

• Modelowanie życia

Page 17: Piotr Wikieł - Czy lenie pchają świat do przodu?

• https://github.com/lspector

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

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