Programtenyésztés igény szerint avagy hogyan segít programot írni a természetes kiválasztódás Szita István, Eötvös Collegium.

Slides:



Advertisements
Hasonló előadás
KÉSZÍTETTE: Takács Sándor
Advertisements

Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Algoritmusleíró eszközök
Programozási tételek, és „négyzetes” rendezések
A központi igazság kiválasztása
Hatékonyságvizsgálat, dokumentálás
TECHNIKA ÉS ÉLETVITEL 5. évfolyam
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Algoritmus és programozás
Mutációk.
3. A programozás eszközei, programozás-technikai alapismeretek
Small Liga Mozgás vezérlő rendszere
Számítástechnika Dr. Nyulászi László Tanszékvezető:
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozás.
Programozási Nyelvek (C++) Gyakorlat Gyak 03.
Programozási alapismeretek 3. előadás
Programozás alapjai.
Programozási nyelvek.
Optimális részhalmaz keresése Keresési tér. 0,0,0,0 1,0,0,0 0,1,0,0 0,0,1,0 0,0,0,10,0,1,1 1,1,0,0 1,0,1,0 0,1,1,0 1,1,1,0 1,0,1,1 0,1,1,1 1,1,1,11,1,0,1.
Bevezetés a gépi tanulásba február 16.. Mesterséges Intelligencia „A számítógépes tudományok egy ága, amely az intelligens viselkedés automatizálásával.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.
Genetikus algoritmusok
Programozás I. Horváth Ernő.
Számítógép generációk 1-3
IRE 5 /18/ 1 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – I ntelligens R endszerek E lmélete 5.
ISZAM III.évf. részére Bunkóczi László
Radioaktivitás Bomlási kinetika
dr. Szalkai István Pannon Egyetem, Veszprém
Hálózatkezelési újdonságok Windows 7 / R2
PÉK Szeged, Farkas Károly Programozás tanulása könnyedén - Szintonicitás.
szakmérnök hallgatók számára
Logikai szita Izsó Tímea 9.B.
Logikai szita Baráth Kornél.
INVITEL InnoApps Fejlesztői különdíj 2010 NYERTESEK.
Alprogramok a Pascal nyelvben
Lénárt Szabolcs Páll Boglárka
Programozási nyelvek.
Problémás függvények : lokális optimalizáció nem használható Globális optimalizáció.
HOMOSZEXUÁLIS ÉS HETEROSZEXUÁLIS FÉRFIAK PÁRVÁLASZTÁSA
1 Mössbauer-spektrumok illesztése: vonalalak A kibocsátott  -sugárzás energiaspektruma Lorentz-görbe alakú: I : sugárzás intenzitása  : frekvencia 
1 Operációs rendszerek I, 3. gyakorlat Windisch Gergely
Számítógépek története, felépítése összefoglalás
Belami beszámoló – Doménadaptációs alkalmazások. Problémafelvetés Felügyelt tanulás elvégzéséhez gyakran kevés jelölt adat áll rendelkezésre  doménadaptáció.
A molekuláris evolúció neutrális elmélete
Jelek, jelrendszerek.
Nicsak, ki beszél – már a számítógépek is... Szita István Eötvös Collegium.
és a Venn-Euler diagrammok
Genetikus algoritmusok
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Algoritmusok. Az algoritmus meghatározott sorrendben elvégzendő műveletek előírása, mint azonos típusú (matematikai, logikai) feladatok megoldására alkalmas.
Software - Ismeretek Avagy mitől megy a Hardware.
Döntsön a kard! Mesterséges intelligencia a játékokban Szita István Eötvös Collegium.
Informatikai Rendszerek Tervezése 5. Előadás: Genetikus algoritmusok Illyés László Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT.-5.
Menetrend optimalizálása genetikus algoritmussal
1/19 Hogyan tájékozódnak a robotok? Koczka Levente Eötvös Collegium.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
1 Mivel foglalkoz(t)unk a laborokon? 1.Labor: Word alapok Excel alapok: Excel alapok: Cellahivatkozás, munkalapfüggvény, diagram varázsló, trendvonal 2.
1  BME Híradástechnikai Tsz komhal20.ppt Kommunikációs hálózatok tervezése 20. előadás Izsó Tamás Híradástechnikai tanszék 2000 Budapesti Műszaki.
Honalapító őseink genetikai öröksége Kristóf Zoltán, 2013.
Programozás alapjai Készítette: Csiszár Nóra Anita
kialakulása, fejlődése, generációk
Adatstruktúrák Algoritmusok Objektumok
Programozási alapok.
Genetikus algoritmusok
43. lecke A Humán Genom Program
lecke A gének megváltozása. A génösszetétel megváltozása
Bevezetés a programozásba Algoritmikus gondolkodás
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
I. generáció II. generáció III. generáció IV. generáció
Előadás másolata:

Programtenyésztés igény szerint avagy hogyan segít programot írni a természetes kiválasztódás Szita István, Eötvös Collegium

Bevezető  a számítógép remek segítőtárs, mindent megcsinál, amit az ember mond neki  nagy hibája: nagyon pontosan meg kell mondani, mit akarunk  jó volna: elmondjuk a feladatot – a gép meg kitalálja a megoldást  önmaguktól tanuló programok

A megoldás: genetikus programozás  Természet: egészen jó megoldások  lopjuk el az ötletet:  mesterséges evolúciót!

Mesterséges evolúció  egyed  program  kromoszómák (több, ált. párosával)  kromoszómák  populáció (több)  populáció  természetes szelekció +  mesterséges szelekció (nemesítés)  mesterséges szelekció  mutáció  kereszteződés  … és még sok minden

Genetikus programozás (GP) - vázlatosan  kiindulási populáció létrehozása (véletlenszerűen), T=0  a T. generáció:  populáció kiértékelése  a leggyengébbek kihalnak  a többiek utódokat hoznak létre (mutáció, kereszteződés)  T=T+1

Mit kódolnak a gének?  a legelső, legfontosabb kérdés  feladatfüggő (pl. kapcsolási rajz, robot viselkedésmintái, útvonalterv)  jó volna: általános programnyelv  Basic, Pascal, C: rosszul tűri a GP-t  mutáció: 99,9%, hogy működésképtelen  jó kódolás: programfa

Program = fa ? / x15 if <= xy0+ y eredmény = x / 15 eredmény = 0, ha x <= y y+3 egyébként  gének: 3 if <=xy0+y3  LISP – általános programnyelv

Mutáció if <= xy0+ y3

Mutáció xy0+ y3

Mutáció -y0+ y3

Mutáció -y0+ y310z

Kereszteződés if <= xy0+ y3 - y* - yx 2 x

Kereszteződés xy0+ y3 - y* - yx 2 x xy0 * - yx 2

A programok kiértékelése  fitnessz-függvény: mennyire „rátermett” a program  túlélhet-e?  létrehozhat-e utódot?  leggyakrabban:  tanítópéldák: (bemenet -> kívánt kimenet) párok  mekkora hibát produkál  más: hányszor nyer?

Egyéb trükkök  segédfüggvények kifejlesztése („szervek” evolúciója)  részpopulációk („szigetek”)  vérfertőzés kizárása  koevolúció (versenytársak, paraziták)  nemek (2 – vagy akár több)

Genetikus programozás - pro és kontra  automatikus  kényelmesen megadható  ellenálló, hibatűrő programok  nagyon lassú  a kapott kód áttekinthetetlen pl. felesleges kódrészletek („vakbél”)  nem érdemes programozókat helyettesíteni vele  érdemes nehezen programozható feladatokra ráengedni

Mit tud a GP?  játékstratégiák (közepesen erős GO játékos)  áramkörtervezés (szűrők, erősítők)  adatsorelemzés (fehérjeosztályozás)  mesterséges élet (TIERRA)  természetes szöveg elemzése (folyamatban van)

Köszönöm a figyelmet!

Egyszerű példa  megoldás: fun f (V2_4) = (!!!!!!!!!) case V2_4 of case V2_4 of nil => nil nil => nil | cons( V2_32, V2_33 ) => | cons( V2_32, V2_33 ) => case V2_33 of case V2_33 of nil => V2_4 nil => V2_4 | cons( V2_59a7, V2_59a8 ) => cons( V2_59a7, cons( V2_32, V2_59a8 ) ) | cons( V2_59a7, V2_59a8 ) => cons( V2_59a7, cons( V2_32, V2_59a8 ) )

Egyszerű példa  egy számlistát meg kell fordítani  tanítópéldák: [] -> [] [37] -> [37] [49,37] -> [37,49] [95,49,37] -> [37,49,95]

Egyszerű példa  kiindulási populáció: fun f (V2_4) = V2_4 fun f (V2_4) = case V2_4 of nil => nil | cons( V2_32, V2_33 ) => V2_4 | cons( V2_32, V2_33 ) => V2_4 fun f (V2_4) = case V2_4 of case V2_4 of nil => nil nil => nil | cons( V2_32, V2_33 ) => | cons( V2_32, V2_33 ) => case V2_33 of case V2_33 of nil => V2_4 nil => V2_4 | cons( V2_59a7, V2_59a8 ) => cons( V2_59a7, cons( V2_32, V2_59a8 ) ) | cons( V2_59a7, V2_59a8 ) => cons( V2_59a7, cons( V2_32, V2_59a8 ) ) … és még sokan mások