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

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

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

Mesterséges Intelligencia MI

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

Mesterséges intelligencia 2. laborgyakorlat

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

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

Intelligens Rendszerek Elmélete IRE 4/32/1

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

2. Visszalépéses keresés

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

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

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

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

2. Visszalépéses stratégia

Kétszemélyes játékok 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

Függvények növekedési korlátainak jellemzése

Keresések Gregorics Tibor Mesterséges intelligencia

1. Milyen hatással van a heurisztika általában a keresõ rendszerek mûködésére?

Adatszerkezetek 7a. Dr. IványiPéter

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

Dr. habil. Maróti György

Adatszerkezetek 2. Dr. Iványi Péter

Mesterséges Intelligencia MI

Amortizációs költségelemzés

Mesterséges Intelligencia MI

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

Általános algoritmustervezési módszerek

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

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

Mesterséges Intelligencia MI

egy szisztolikus példa

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Bevezetés az informatikába

Párhuzamos algoritmusok tervezésének alapjai

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Elemi adatszerkezetek

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

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

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

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

Programozás alapjai II. (7. ea) C++

22. GRÁFOK ÁBRÁZOLÁSA

Descartes-féle, derékszögű koordináta-rendszer

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

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

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

NP-teljesség röviden

Optimalizálási eljárások GYAKORLAT, MSc hallgatók számára. Analízis R d -ben

Keresési algoritmusok, optimalizáció

ÖSSZEFOGLALÁS a Bsc záróvizsga mesterséges intelligenciáról szóló témaköréhez

, , A

Hidraulikus hálózatok robusztusságának növelése

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

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

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

2014. szeptember 24. és 26. Dr. Vincze Szilvia

Számítógép hálózatok, osztott rendszerek 2009

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Diszkrét, egészértékű és 0/1 LP feladatok

Mesterséges Intelligencia MI

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

Dinamikus programozás párhuzamosítási lehetőségekkel

Totális Unimodularitás és LP dualitás. Tapolcai János

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Nem-lineáris programozási feladatok

Mesterséges intelligencia

Genetikus algoritmusok

Dinamikus modellek szerkezete, SDG modellek

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

Térinformatikai algoritmusok Elemi algoritmusok

Gráfkeresések A globális munkaterületén a startcsúcsból kiinduló már feltárt utak találhatók (ez az ún. kereső gráf), külön megjelölve az utak azon

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

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

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

A gráffogalom fejlődése

Konjugált gradiens módszer

Párhuzamos algoritmusok tervezésének alapjai

Mesterséges Intelligencia I. (I602, IB602)

2017/ Szegedi Tudományegyetem Informatikai Intézet

Érdekes informatika feladatok

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

Approximációs algoritmusok

HÁLÓZAT Maximális folyam, minimális vágás

Mesterséges intelligencia 3. laborgyakorlat

angolul: greedy algorithms, románul: algoritmi greedy

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Diszkrét matematika 2.C szakirány

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

Dijkstra algoritmusa

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

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

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

Átírás:

Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások pontosabb tárgyalása Futó Iván (szerk.): Mesterséges Intelligencia, Aula, 1999. fejezetéből származnak

Vázlat A diszkrét optimalizálási probléma Soros megoldás Párhuzamos megoldási lehetőségek és problémák optimalizáláshoz 2

Diszkrét optimalizálás A diszkrét optimalizálási problémák komoly számítási igényűek. Jelentős elmélettel és gyakorlati fontossággal rendelkeznek (ütemezési feladatok, pályatervezés, digitális áramkörökhöz tesztpéldák generálása, logisztikai feladatok, stb.). A kereső algoritmusok a feltételeknek megfelelő megoldások terét szisztematikusan vizsgálják. optimalizáláshoz 3

Definíció A diszkrét optimalizációs probléma (DOP) a következő módon fejezhető ki: (S, f). S bizonyos feltételeknek eleget tévő megoldások véges, vagy megszámlálhatóan végtelen halmaza, f költségfüggvény S minden eleméhez valós R értéket rendel. A DOP megoldása olyan x opt megoldás keresése, hogy f(x opt ) f(x) minden x S esetén. Gyakran NP-teljes probléma. optimalizáláshoz 4

Diszkrét optimalizáció: példa Egyértékű lineáris programozási feladat (0/1 integer-linearprogramming problem): adott A m n mátrix, bm 1 vektor és cn 1 vektor. A cél egy olyan n 1 vektor meghatározása, amelynek elemei csak 0 és 1 értékekből állhatnak, a vektor teljesíti a következő feltételt: és az f függvénynek minimuma kell legyen: *: Duális megfogalmazás optimalizáláshoz 5

DOP és a gráfkeresés Az S lehetséges elemeinek száma nagyon nagy. A DOP gyakran úgy is megfogalmazható, hogy egy gráfban minimum költségű utat keressünk egy kezdőponttól egy vagy több lehetséges cél csomópontig. Az S minden x elemét tekinthetjük egy útnak a kezdőponttól valamely célig. A gráf csomópontjai állapotok Az állapotok vagy végpontok, vagy nem végpontok Bizonyos állapotok lehetséges megoldáshoz tartoznak, mások nem Az élekhez költségek tartoznak, amelyek az egyik állapotból a másikba történő átmenet ráfordításai. A gráfot állapottérnek nevezzük. optimalizáláshoz 6

Állapottér gráf: példa Egyértékű lineáris programozási feladat Az állapotok az x vektor egyes koordinátáihoz rendelt értékek => fa optimalizáláshoz 7

1 6 4 7 5 8-as kirakó 1 6 4 7 5 1 4 1 6 4 7 5 6 4 1 7 5 2 3 1 4 1 8 4 1 4 1 6 7 5 4 Egy kezdeti állapotból találjuk meg azt a legrövidebb lépéssorozatot, amely a célkonfigurációba vezet. Állapottér: gráf 8 3 2 6 4 1 7 5 6 4 1 7 5 8 3 2 3 2 6 4 6 8 4 6 4 6 7 4 1 7 5 1 7 5 1 7 5 1 5 8 3 2 1 4 8 3 2 1 4 7 1 4 6 5 7 1 4 6 5 2 3 1 8 4 1 2 3 8 4 8 3 8 1 3 1 2 3 1 2 3 2 1 4 2 4 8 4 7 8 4 6 5 8 1 3 8 1 3 8 1 3 2 4 2 4 2 6 4 7 5 1 3 8 1 3 8 2 4 7 2 4 6 5 1 3 8 2 4 2 3 1 8 4 2 3 4 1 8 2 8 1 4 3 2 8 1 4 3 célállapot 1 4 5 7 6 1 4 5 7 6 1 4 5 1 5 7 6 7 4 6 1 5 7 4 6 2 3 1 8 5 7 4 6 2 3 1 6 1 6 8 7 5 4 7 5 4 2 8 1 6 1 6 3 7 5 4 7 5 4 1 5 7 4 6 1 5 6 7 4 1 5 6 7 4 duplikált állapot 2 3 1 6 3 7 5 4 1 5 6 7 4 1 5 7 4 6 1 3 1 2 3 8 2 4 8 4 optimalizáláshoz 8

Kereső algoritmusok tere A keresési tér gráf vagy fa? A gráf fává történő kiterítése gyakran nagyméretű 1 feladathoz vezet. 2 4 2 1 4 3 5 6 3 5 6 7 7 7 8 9 8 9 8 9 (a) 1 1 2 3 2 3 4 4 4 5 6 5 6 5 6 7 7 7 7 7 8 9 8 9 8 9 8 9 8 9 10 10 10 10 10 10 10 optimalizáláshoz 9 (b) 10 10

Kereső stratégiák I. Nem módosítható keresés Nincs visszalépés. Pl. hegymászó algoritmus (gradiens keresés). Visszalépéses keresés Törli a zsákutcát. Ha körre futunk, akkor visszalépés. Mélységi korlátot használhatunk (heurisztika). Azonos szinten célszerű sorrendi heurisztikát használni. Kis memória igényű. Nem garantálja az optimális megoldást (csak növekvő mélységi korláttal és iterálva). optimalizáláshoz 10

Négy-királynő probléma Visszalépéses keresés + azonos sorban haladva, mindig balról jobbra helyezzük el a királynőket. optimalizáláshoz 11

Kereső stratégiák II. Nem informált gráfkeresés Nem informált gráfkeresések a gráf kiértékelő függvényben (f(n) = g(n) + h(n)) beépülő heurisztikát nem használunk. Csúcsok NYÍLT és ZÁRT listája. Mélységi keresés Egységnyi élköltséget tekintünk. f(n):= -g(n) minden n NYÍLT csúcsra. Mélységi korlát használható, iterációs változatban is. Fa állapottérnél előnyös. Szélességi keresés Egységnyi élköltséget tekintünk. f(n):= g(n) minden n NYÍLT csúcsra. optimalizáláshoz 12

Iteratív mélységi keresés Gyakran a megoldás a gyökérhez közeli, de másik ágon van. Az egyszerű mélységi keresés nagy részt dolgozna fel mielőtt erre az ágra jut. Iteratív módon növeljük a mélységi határt, ameddig keresünk. Ha nem találunk megoldást, akkor a határt növeljük és ismételjük a folyamatot. optimalizáláshoz 13

Mélységi keresés: tárolási követelmény és adatstruktúra A mélységi keresés minden lépésénél a még ki nem próbált alternatívákat el kell tárolni. Ha m egy állapot tárolásához szükséges adatterület, és d a maximális mélység, akkor a mélységi kereséshez szükséges teljes tér O(md) nagyságrendű. Ha a keresendő állapottér fa, akkor a mélységi keresést veremmel hatékonyan lehet reprezentálni. A verem memória szükséglete egyenesen arányos a fa mélységével. optimalizáláshoz 14

Mélységi keresés: tárolási követelmény és adatstruktúra (a) Mélységi keresés fa esetén; pontozottan jelennek meg a már felkeresett csúcsok; (b) A verem a még ki nem próbált alternatívákat tárolja csak; (c) a verem a ki nem próbált alternatívákat és szüleiket (szürkített) tárolja. optimalizáláshoz 15

Mélységi keresés korláttal: példa 1. 1 6 4 7 5 Korlát: 5 2. 1 6 4 7 5 19. 1 4 1 6 4 7 5 3. 6 4 1 7 5 20. 29. 2 3 1 4 1 8 4 1 4 4. 8 3 2 6 4 1 7 5 8. 6 4 1 7 5 21. 8 3 2 1 4 25. 7 1 4 6 5 30. 2 3 1 8 4 2 3 1 8 4 5. 8 3 9. 2 3 13. 16. 2 6 4 6 8 4 6 4 6 7 4 1 7 5 1 7 5 1 7 5 1 5 22. 8 3 2 1 4 26. 7 1 4 6 5 31. 1 2 3 8 4 6. 7. 10. 11. 8 3 8 6 3 2 3 2 3 2 6 4 2 4 6 8 4 6 8 4 1 7 5 1 7 5 1 7 5 1 7 5 14. 15. 2 8 6 4 3 6 4 5 1 7 5 1 7 17. 18. 6 7 4 6 7 4 1 5 1 5 23. 24. 27. 28. 32. 8 3 8 1 3 1 2 3 1 2 3 2 1 4 2 4 7 4 7 1 4 8 4 7 8 4 6 1 5 6 5 6 5 optimalizáláshoz 16

Szélességi keresés: példa 1. 1 6 4 7 5 2. 3. 4. 1 6 4 1 4 7 5 1 6 4 7 5 5. 6. 7. 2 3 8. 9. 6 4 1 4 1 8 4 1 4 1 7 5 1 6 7 5 4 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 8 3 8 3 2 3 2 3 2 8 2 8 2 6 4 6 4 2 1 4 7 1 4 1 8 4 1 8 4 1 4 3 1 4 5 1 6 1 6 3 1 7 5 1 7 5 6 5 7 6 7 5 4 7 5 4 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 8 3 2 3 8 3 1 2 3 2 3 4 2 8 2 3 2 3 2 6 4 6 8 4 6 4 6 7 4 2 1 4 7 1 4 8 4 1 8 1 4 3 1 4 5 1 6 1 6 8 1 5 6 1 6 3 1 7 5 1 7 5 1 7 5 1 5 6 5 7 6 7 5 4 7 5 4 7 4 7 5 4 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 8 3 8 6 3 2 3 2 3 2 8 8 3 8 1 3 1 2 3 2 6 4 2 4 6 8 4 6 8 4 6 4 3 6 4 5 6 7 4 6 7 4 1 7 5 1 7 5 1 7 5 1 7 5 1 7 5 1 7 1 5 1 5 Kereső 2 1 4 algoritmusok 2 4 7 4 7 1 4 diszkrét 8 4 6 1 5 6 5 optimalizáláshoz 17

Heurisztikus gráfkereső stratégiák Az f(x) kiértékelő függvénybe valamilyen heurisztikát építünk be (f(x) = g(x) + h(x)). Gyakran például becsülhető a cél elérésének költsége az aktuális csúcsból. A becslést heurisztikus becslésnek nevezik. Ha a becslés garantáltan alábecsül, akkor megengedő heurisztikáról beszélünk. Elképzelés: ha heurisztikát használunk, akkor a rossz, vagy nem sokat ígérő utakra nem költünk. optimalizáláshoz 18

Diszkrét optimizálás példához heurisztika A 8-as kirakóhoz (megengedő) heurisztika W(n) (n NYÍLT), ahol W a rossz helyek száma A 8-as kirakóhoz megengedő heurisztika A rács minden pontja a koordinátáival azonosítható. Az (i, j) és a (k, l) pozíciók távolsága: i - k + j - l. Ez a Manhattan távolság. A kezdeti és cél pozíciók közötti Manhattan távolságok összege (P-vel fogjuk jelölni) megengedő heurisztika. optimalizáláshoz 19

Kereső stratégiák III. Heurisztikus gráfkereső stratégiák Előretekintő keresés A* f(n) = h(n) minden n NYÍLT csúcsra. Kiértékelő fgv. f(n) = g(n) + h(n) minden n NYÍLT csúcsra, ahol h(n) megengedő heurisztika. Garantálja az optimális megoldást. Nagy a memória igény. Meglátogatott csúcsokkal (állapotokkal) arányos. Mind fák, mind gráfok estében hatékony. optimalizáláshoz 20

Előretekintő keresés f = W1. 1 6 4 7 5 4 1 6 4 7 5 5 2. 3 5 1 4 1 6 4 7 5 W hibásak száma, hátralévő mozgások alsó becslését adja. 4. 3. 3 2 3 3 4 1 4 1 8 4 1 4 8 3 2 1 4 3 7 1 4 6 5 4 5. 8 3 2 1 4 3 8 3 4 6. 8 1 3 2 1 4 2 4 3 7. 8 1 3 3 8 1 3 4 8 1 3 4 2 4 2 4 2 6 4 7 5 8. 1 3 2 8 1 3 4 8 2 4 7 2 4 6 5 9. 1 3 8 2 4 1 1 3 2 10. 1 2 3 0 Kereső algoritmusok 8 2 4 diszkrét 8 4 optimalizáláshoz 21

A* példa P heurisztikával 1. 1 6 4 7 5 4 1 6 4 7 5 5 2. 3 5 1 4 1 6 4 7 5 3 3. 2 3 3 1 4 1 8 4 1 4 4 4. 2 3 1 8 4 2 2 3 1 8 4 4 5. 1 2 3 8 4 1 6. 1 2 3 0 1 2 3 2 Kereső algoritmusok 8 diszkrét 4 7 8 4 6 5 optimalizáláshoz 22

Párhuzamos diszkrét optimalizáció: motiváció DOP általában NP-teljes problémák. Segít-e a párhuzamosítás? Sok problémánál az átlagos eset polinomiális idejű. Sokszor viszonylag kis állapotterünk van, de valós idejű megoldásra van szükségünk. Többletráfordítás A soros és párhuzamos keresés közötti munkamennyiség gyakran különböző. Ha W a soros munka és W P a párhuzamos, a többletráfordítás s = W P /W. A sebességnövekedés határa p (W/W P ). optimalizáláshoz 23

Párhuzamos mélységi keresés A keresési teret miként osszuk fel processzorok között? A különböző ágakat lehet párhuzamosan keresni. De az ágak nagyon eltérő méretűek lehetnek. Nehéz becsülni az ágak méretét a gyökerükből. Dinamikus terhelés kiegyenlítés szükséges. A B C D E F A statikus dekompozíció strukturálatlan fakeresést és nem kiegyensúlyozott terheléshez vezet. optimalizáláshoz 24

Párhuzamos mélységi keresés: dinamikus terhelés kiegyenlítés Amikor egy processzor befejezi munkáját, akkor egy másiktól kér. Osztott memóriás modellnél ez lockolással és a munka szétvágásával történik (lásd később). Ha valamely processzor megoldáshoz és, akkor a többi terminál. Az eddig fel nem dolgozott részeket saját veremben tárolhatja minden processzor. Kezdetben az egész teret egy processzorhoz rendeljük. optimalizáláshoz 25

Párhuzamos mélységi keresés: dinamikus terhelés kiegyensúlyozás optimalizáláshoz 26

Párhuzamos mélységi keresés: munkafelosztás Mélységi keresés: a két részfa a verem reprezentációval. optimalizáláshoz 27

Terhelés kiegyenlítés A munka kiosztásának sémája: Aszinkron (lokális) körbeforgó: minden processzor egy számlálót tart karban ((target +1) mod p ) és az igényét a felé közvetíti. Nagyszámú munkaigényt generál. Globális körbeforgó: A rendszer tart karban egy számlálót és az igények körbeforgó módon kerülnek kezelésre. Legkevesebb munkaigényt generálja. Véletlen ciklikus: Véletlenszerűen kerül kiválasztásra egy processzor. Megfelelő kompromisszum. optimalizáláshoz 28

Sebesség anomáliák párhuzamos keresésnél A párhuzamos mélységi keresés kevesebb csomópontot jár be, mint a soros. optimalizáláshoz 29

Sebesség anomáliák párhuzamos keresésnél A párhuzamos mélységi keresés több csomópontot jár be, mint a soros. optimalizáláshoz 30