piotr wikieł - czy lenie pchają świat do przodu?
TRANSCRIPT
![Page 1: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/1.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/2.jpg)
„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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/3.jpg)
![Page 4: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/4.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/5.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/6.jpg)
Algorytmy ewolucyjne• Algorytmy genetyczne
• Programowanie genetyczne
• Programowanie ewolucyjne
• Neuroewolucja
• …
![Page 7: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/7.jpg)
![Page 8: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/8.jpg)
Function Set i Terminal Set
![Page 9: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/9.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/10.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/11.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/12.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/13.jpg)
Search spaceb2 4 4ac
WAT?
![Page 14: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/14.jpg)
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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/15.jpg)
(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?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/16.jpg)
Zastosowania programowania genetycznego
• Problemy obliczeniowe
• Tworzenie skomplikowanych systemów
• Modelowanie życia
![Page 17: Piotr Wikieł - Czy lenie pchają świat do przodu?](https://reader031.vdocuments.mx/reader031/viewer/2022020213/58a81f331a28ab4d148b5dd7/html5/thumbnails/17.jpg)
• https://github.com/lspector
• http://www.genetic-programming.com/
• http://faculty.hampshire.edu/lspector/push.html