Számítógép és programozás 2

Hasonló dokumentumok
Számítógép és programozás 2

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához

Intelligens Rendszerek Elmélete IRE 4/32/1

Mesterséges Intelligencia MI

Keresések Gregorics Tibor Mesterséges intelligencia

Számítógépes döntéstámogatás. Genetikus algoritmusok

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Keresési algoritmusok, optimalizáció

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

2. Visszalépéses stratégia

Algoritmizálás, adatmodellezés tanítása 8. előadás

Számítógép és programozás 2

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Diszkrét matematika 2. estis képzés

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

2. Visszalépéses keresés

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2010/2011 1/363

V. Kétszemélyes játékok

Diszkrét matematika 2.C szakirány

Közösség detektálás gráfokban

Mesterséges Intelligencia MI

Gépi tanulás a gyakorlatban. Lineáris regresszió

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Képrekonstrukció 9. előadás

Mesterséges intelligencia 2. laborgyakorlat

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Megerősítéses tanulás 7. előadás

Mit látnak a robotok? Bányai Mihály Matemorfózis, 2017.

Konjugált gradiens módszer

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.

Diszkrét matematika 2. estis képzés

Mesterséges Intelligencia MI

Adatszerkezetek II. 1. előadás

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Genetikus algoritmusok

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Diszkrét matematika 2. estis képzés

Algoritmusok bonyolultsága

Bevezetés az informatikába

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Dr. habil. Maróti György

Kétszemélyes játékok

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Gráfalgoritmusok ismétlés ősz

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Diszkrét matematika 2.C szakirány

Dinamikus programozás vagy Oszd meg, és uralkodj!

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Adatszerkezetek 7a. Dr. IványiPéter

Mohó algoritmusok. Példa:

Algoritmusok bonyolultsága

Gyártórendszerek dinamikája

Újrahasznosítási logisztika. 7. Gyűjtőrendszerek számítógépes tervezése

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

Gráfelméleti feladatok. c f

Szociális hálózatok Gráf alapú módszerek. Adatbányászat. Klaszterezés Szociális hálózatok. Szegedi Tudományegyetem. Adatbányászat

Adatszerkezetek 2. Dr. Iványi Péter

Mesterséges intelligencia. Gregorics Tibor people.inf.elte.hu/gt/mi

Diszkrét matematika 2.

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE

Diszkrét matematika 2. estis képzés

Nem-lineáris programozási feladatok

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Gépi tanulás. Féligellenőrzött tanulás. Pataki Béla (Bolgár Bence)

1. tétel - Gráfok alapfogalmai

EuroOffice Optimalizáló (Solver)

Az optimális megoldást adó algoritmusok

A sz.ot.ag. III. Magyar Számítógépes Nyelvészeti Konferencia december 8. Bíró Tamás, ELTE, Budapest / RUG, Groningen, NL 1/ 16

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Gépi tanulás Gregorics Tibor Mesterséges intelligencia

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: (

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

A lineáris programozás alapjai

Átírás:

Számítógép és programozás 2 11. Előadás Halmazkeresések, dinamikus programozás http://digitus.itk.ppke.hu/~flugi/

A keresési feladat megoldása Legyen a lehetséges megoldások halmaza M ciklus { X legyen egy tetszőleges eleme M-nek } amíg X nem megoldás Kicsit lassú Viszont minden keresési feladat őse A keresési feladatok csak abban különböznek, hogy milyen stratégia szerint vizsgálnak meg egy elemet előbb, vagy később

Bejáró keresések Informálatlan keresések mélységi szélességi Visszalépéses keresés: részben informált, miszerint sosem javul ki már elrontott útvonal Informált keresések heurisztika megengedhető heurisztika: A* algoritmus

Heurisztikák A heurisztika egy becslés az adott pontból induló optimális út végleges súlyára (h*-ra) Legyes w(s) az s út eddig felhalmozott súlya, és h(s) az út végpontjához tartozó heurisztikus függvény, ilyenkor az utak jelenlegi halmazából azt az s úthosszabbítást választjuk, amire w(s) +h(s) minimális Ha h(s) sosem becsül túl (megengedhető), akkor A* Ha h=h*, akkor nem értékel ki felesleges csúcsot Ha h(s)=0 minden s-re, akkor egyenletes keresés Ha az élek súlya egyforma, akkor szélességi

Optimalizációk Kétféle optimalizációs kontextust fogunk használni: Gráfon keresés amikor a szomszédság kérdése hangsúlyos f függvény maximumértékének keresése úgy, hogy a megengedett művelet egy x Df elemére kiszámítani f(x)-et amikor a heurisztikus függvényt általánosíthatjuk tetszőlegesen finom felbontású problémára

Optimalizációs módszerek Egyenletes keresés / A* Halmazt bővítő, aktuális halmaz minden szomszédságát kezelő hozzáállás Iteratív approximációs megoldások Közelítő módszerek, becslés pontosítása Hegymászó Egyetlen pont bolyongása a problématérben Dinamikus programozás Lépéslehetőségek szuboptimális kombinációja

Iteratív approximációs megoldások Kezdetben adott egy érvényes de nem optimális megoldás Létezik szabály vagy heurisztika az optimális megoldás felé elmozdításra Példa: Newton solver: feladat: függvény zérushelyének meghatározása (optimalizálás: 0-hoz legközelebbi elem megkeresése) minden lépésben az adott pontbeli értékből indított érintő zérushelyét nézzük a következő körben

Iteratív approximációs megoldások Az elv: van egy vagy több elemünk Tudjuk, hogy az érvényes elemekből hogyan kaphatunk eddig nem látott érvényes elemeket (pl. sziget bejárása) Heurisztika, vagy tétel szerint lépésről lépésre közelítjük a legjobb megoldást A genetikus algoritmus (GA) is egy iteratív megoldás A mesterséges neuronhálózat is iteratívan tanítható approximátor

Hegymászó Egy pontot veszünk, és mindig az f függvény által adott felületen felfelé igyekszünk f': gradiens módszernek is nevezik Előnyei: egyszerű implementálni, gyors lehet, sokszor igen lassú művelet kiszámítani az f függvényt Hátrányai: érzékeny a felület bonyolultságára, lokális maximumpontba beragad

Szimulált hűtés Sok hegymászónk van, akik néha véletlenszerűen is lépnek A hűtés a véletlen mozgás valószínűségét csökkenti Így eleinte kijönnek a lokális maximumok környezetéből Jobb a mechanikus gradiens módszernél, de ugyanúgy beakadhat, csak több esélye van a globális maximumpontra Akkor érdemes használni, ha van valamennyire pontos elképzelés a globális optimum helyéről

Halmazok iteratív összeállítása Gyakori feladattípus: Egy összefüggő részhalmazt keresünk úgy, hogy csak az összefüggőséget adó szabályt ismerjük, a részhalmazra nincs zárt szabályunk Pl 2D sziget beszínezése, összefügg az, ami szomszédos pont, és szárazföld Egy vagy több eleme ismert a halmaznak Viszonylag sok feladatban felfedezhető Lezárt (függvény lezártja): A szomszédsági reláció lezártja egy pontra = az adott pontból szomszédok során elérhető összes pont

Halmazok iteratív összeállítása Módszer: bővítsük a halmazt a meglevő elemek szomszédaival Terminálási feltétel: a halmazbővítés egy köre lefutott új szomszéd találata nélkül Példák: floodfill, kitöltés elérhető elemek listája

Dinamikus programozás Példafeladat: van két szövegünk, adjuk meg a távolságot köztük a minimális módosítások számával betoldás, törlés, helyettesítés Levenshtein távolság például Gizike és Győzike között a távolság 2: Gizike, Gyizike, Győzike Ez nem karakterenkénti távolság: g i z i k e g y ő z i k e

Dinamikus programozás A megoldás két mátrix használata, melyből az egyik a statikus távolságokat tartalmazza itt most 0 vagy 1, hogy a két karakter egyezik-e vagy sem (a helyettesítés súlya) T g y ő z i k e g 0 1 1 1 1 1 1 i 1 1 1 1 0 1 1 z 1 1 1 0 1 1 1 i 1 1 1 1 0 1 1 k 1 1 1 1 1 0 1 e 1 1 1 1 1 1 0

Dinamikus programozás A másik mátrix erre épül úgy, hogy bejár minden részszó-részszó párt, hibát görgetve Minden pozíciópárra rápróbálja a lehetséges műveleteket (törlés, beszúrás, javítás) minimuma a lehetséges útvonalaknak a pozícióhoz A honnan jöttünk kapcsolatok megadják az útvonalat visszafelé D g y ő z i k e 0 1 2 3 4 5 6 7 g 1 0 1 2 3 4 5 6 i 2 1 1 2 3 3 4 5 z 3 2 2 2 2 3 4 5 i 4 3 3 3 3 2 3 4 k 5 4 4 4 4 3 2 3 e 6 5 5 5 5 4 3 2

törlés Dinamikus programozás A D mátrix elemeinek függősége a lehetséges műveletekből származik A helyettesítés/ B azonos C min(a+t itt, B+W t,c+w b ) beszúrás

Dinamikus programozás A lépéslehetőségek megadják, hogy mely pontokból választhatunk minimumot Ez a választás irányt is mutat: honnan jöttünk A táblázat kitöltésének befejeztével ezen útvonalak visszafelé bejárva kaphatóak meg Azért nem előrefelé, mert lehetségesek zsákutcák, csak az számít, hogy melyik útvonal érkezett meg sikeresen

Dinamikus programozás Az egyes lépések súlya hangolható, például a T mátrix valós távolságokat tartalmazhat, jobban vagy kevésbé büntethetjük a beszúrást/törlést A lépéslehetőségek megszabásával más és más jellegű megoldások kereshetőek, például megtiltható két egymás utáni törlés/beszúrás, ha az útvonalak ilyenek:

Összefoglalás Egyenletes/A* keresés, heurisztika minősége Sikeressége lehet garantált Bolyongás gradiens irányba Beragadhat lokális maximumba, de lehet gyors, és egyszerű megírni Mesterséges neuronhálók tanítási stratégiái ennek esetei Lépéslehetőségek megszorítása Csak a lépéslehetőségek kombinációin optimális a dinamikus programozás megoldása Létezik polinomiális megoldás