IRE 4 /32/ 1 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – I ntelligens R endszerek E lmélete 4
IRE 4 /32/ 2 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Problémamegoldás kereséssel
IRE 4 /32/ 3 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – ”Egyszerű” lények intelligenciája?
IRE 4 /32/ 4 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A problémák csoportosítása a megoldási idő szerint P (Polynomial) „viszonylag egyszerűen megoldható problémák.” P típusú egy probléma ha létezik olyan problémamegoldó algoritmus, melynek időszükséglete legfeljebb N polinomjával függ össze. NP (Non-deterministic Polynomial) „Nehéz problémák.” Azok a problémák, melyek bármely feltételezett megoldása polinomiális idő alatt eldönthető, hogy helyes –e. NP-teljes (NP complete): A legnehezebben megoldható, (nagy változószám esetén megoldhatatlan) problémák. A megoldásához szükséges idő e N (vagy n!) szerint változik.
IRE 4 /32/ 5 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A problématér matematikai ábrázolása Minden feladat (probléma) direkt vagy implicit módon meghatároz egy gráfot, (egyszerűbb estben egy fát) melynek: Kezdőcsúcs: a kiinduló adathalmaz Élek: az alkalmazható műveletek Gráfpontok: „levelek”, „gyerek csomópontok” Általános csúcsok: az adathalmaz egy-egy változatát tartalmazzák, amelyeket a megfelelő élek menti műveletek alkalmazásával kapunk. Fa struktúraGráf struktúra
IRE 4 /32/ 6 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A keresési tér nagyságának becslése 1. Sakk 1 : Egy átlagos játszma lépésváltásainak száma 45 ( a fa mélysége 90) Egy állásban a legális lépések átlagos száma 35 A lehetséges levelek száma: Ha egy erős játékos minden állásban 1.76 lépést tart jónak, akkor tehát 1.25 * kiértékelendő csúcs adódik 4.6 milliárd év ~ másodperc Ha egy másodperc alatt állást értékelünk, akkor 4,6 milliárd évre lenne szükség Fekete Gregorics-Nagy: Bevezetés a mesterséges intelligenciába
IRE 4 /32/ 7 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A keresési tér nagyságának becslése 2. Az utazó ügynök problémája: 1. Minden városba el kell utazni, 2. Minden városba csak egyszer kell elutazni, Felkeresendő városok száma (n) A lehetséges útirányok száma:n!/2n * * A C D B S Kombinatorikus robbanás !!!
IRE 4 /32/ 8 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Produkciós (kereső) rendszer A produkciós rendszer a klasszikus mesterséges intelligencia egyik alapvető fogalma, egy sajátos probléma megoldási szemléletet tükröző feladat megoldási rendszer. Külön kezeli: A feladat adatait Az adatokon értelmezett műveleteket A műveleteket algoritmussá szervező vezérlési stratégiákat. (pl. keresés)
IRE 4 /32/ 9 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A produkciós rendszer általános algoritmusa Kezdeti állapot kiválasztása While állapot ≠ célállapot do Begin Az állapotra alkalmazható operátor kiválasztása állapot:=operátor(állapot) End.
IRE 4 /32/ 10 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A kereséssel kapcsolatos alapfogalmak Globális optimum Lokális optimum → „Niche” Keresés matematikai értelemben = a gráf adott csomópontjából az operátorok segítségével egy másik csomópontba vitele, (kiterjesztése) → „gyermek” csomópontokba Keresési típusok: Próba-hiba keresés Keresés a költség figyelmen kívül hagyásával Keresés a költség figyelembe vételével Heurisztikus keresések Listák a vizsgált csomópontok tárolására: „open” lista a megnyitott csomópontok nyilvántartására „closed” lista a megvizsgált csomópontok számontartására Nem informált
IRE 4 /32/ 11 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Mélységi keresés („depth first”) LIFO adatkezelés: (Last In First Out) „open” lista, az állapotok (csomópontok) tárolására „Mindig a zsák tetejére pakolunk, és onnan is veszünk el” Open lista: (S)(A,B)(C,D,B)(D,B)(B)(E,F)(G,cél,F)(cél,F)
IRE 4 /32/ 12 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Mélységi keresés algoritmusa Open lista: (S)(A,B)(C,D,B)(D,B)(B)(E,F)(G,cél,F)(cél,F) Fabejárás: 1. tedd a start csomópontot az open listára 2. hurok: IF open=üres lista then kilépés; {! sikertelen, ha az összes csomópontot megvizsgáltuk} 3. n:=első(open); {az open lista első elemének beolvasása} 4.IF cél(n) then {sikeres} kilépés 5.vedd le (n, open); {n levétele az open listáról} 6. terjeszd ki n-t és helyezd az összes "gyermek" csomópontot az open lista elejére 7. Go TO hurok
IRE 4 /32/ 13 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Példa mélységi keresésre gráfban S A B XCD Ecél open lista: (S)(A S,B S )(X A,C A,B S )(E X,C A,B S ) (C A,B S )(E C,cél C, B S )(cél C,B S ) closed lista S,A S,X A,E X,C A,
IRE 4 /32/ 14 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Mélységi keresés gráfban 1. tedd a start csomópontot az open listára 2. hurok:IF open=üres THEN kilépés; sikertelen keresés 3. n:=első(open) 4.IF cél(n) THEN sikeres kilépés 5.vedd le (n, open), add hozzá (n, closed) 6.n kiterjesztésével generáld az összes "gyermek" csomópontot. Az open és a closed lista által nem tartalmazott gyermek csomópont az open lista elejére kerül és az n-re irányuló mutatót kap. GO TO hurok
IRE 4 /32/ 15 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Szélességi (horizontális) keresés („breadth-first ”) FIFO adatkezelés (First In First Out) „Mindig a cső elejére pakolunk, és a végéről veszünk el” Open lista: (S)(A,B)(B,C,D)(C,D,E,F)(D,E,F)(E,F)(F,G,cél)(G,cél)(cél)
IRE 4 /32/ 16 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A szélességi keresés algoritmusa fa bejárásnál Open lista (S)(A,B)(B,C,D)(C,D,E,F)(D,E,F)(E,F)(F,G,cél)(G,cél)(cél) 1. tedd a start csomópontot az open listára 2. hurok:IF open=üres THEN kilépés; sikertelen keresés 3.n:=első(open) 4.IF cél(n) THEN sikeres kilépés 5.vedd le (n, open)terjeszd ki n-t és helyezd el az összes "gyermek" csomópontot az open lista végére 6. Go to hurok
IRE 4 /32/ 17 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A szélességi keresés algoritmusa gráf bejárásnál 1. tedd a start csomópontot az open listára 2. hurok:IF open=üres THEN kilépés; sikertelen keresés 3. n:=első(open) 4.IF cél(n) THEN sikeres kilépés 5.vedd le (n, open), add hozzá (n, closed) n kiterjesztésével generáld az összes "gyermek" csomópontot. Az open és a closed lista által nem tartalmazott gyermek csomópont az open lista végére kerül és az n-re irányuló mutatót kap. 6. Go to hurok
IRE 4 /32/ 18 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Példa szélességi keresésre gráfban S A B c1CD Ec2 open lista: (S)(A S,B S )(B S,c1 A,C A )(c1 A,C A,D B ) closed lista A S,B S
IRE 4 /32/ 19 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Optimális (egyenletes) keresés „A kiindulási pontból mindig a minimális költségű csomópontot vizsgáljuk” Open lista: S(0) B S (1)A S (4) E B (3)A S (4),F B (4) A S (4)F B (4)c1 E (6)H E (7) F B (4)C A (5)c1 E (6)D A (6)H E (7) c2 F (5)C A (5)c1 E (6)D A (6)I F (6)H E (7 )
IRE 4 /32/ 20 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – A optimális keresés algoritmusa Fabejárás: 1. tedd a start csomópontot az OPEN listára 2. hurok:IF open=üres THEN kilépés; sikertelen! 3. n:=első(open) 4. IF cél(n) THEN sikeres kilépés 5. vedd le (n, open) 6. ha lehet, n kiterjesztése, minden n-nél a költség kiszámolása. A gyermek csomópontok felírása az open listára majd növekvő "költség" szerint sorrendbe rendezése 7. GO TO hurok Gráf keresésnél : 5. vedd le (n, open), add hozzá (n, closed) 6. az open és closed lista által nem tartalmazott gyermek csomópontok az open listára kerülnek, az n-re irányuló mutatót kapnak, majd növekvő "költség" szerint sorrendbe rendezzük.
IRE 4 /32/ 21 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Példa optimális megoldás keresésre gráfon S A B c1CD Ec Előzetes open lista S(0) A S (2) B S (3) B S (3) c1 A (7) C A (5) c1 A (7) C A (5) C B (4) D B (6) D B (6) c1 A (7) E C (6) c2 C (5) (rendezett) open lista closed listA S(0) - A S (2) B S (3) S(0) B S (3) C A (5) c1 A (7) S(0) A S (2) C B (4) D B (6) c1 A (7) S(0) A S (2) B S (3) c2 C (5) D B (6) E C (6) c1 A (7) S(0) A S (2) B S (3) C B (4)
IRE 4 /32/ 22 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Gyakorló feladat optimális megoldás keresésre gráfon S A B c1CD Ec
IRE 4 /32/ 23 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Heurisztikus keresés Heurisztika : Heuriskein (görög)= felfedező, Archimedes„Heuréka” = megtaláltam a feladatoknak a tapasztalatokra és megalapozott ötletekre épülő próbálkozásokkal történő megoldási módszere. Az utazó ügynök probléma egy lehetséges heurisztikus megoldása: „Minden lépésnél a helyi legjobb alternatíva kiválasztása.” 1. Önkényesen kiválasztani a kezdő várost. 2. Megvizsgálni az összes nem meglátogatott várost és a legközelebbit felkeresni. 3. Ismételni a 2. lépést, amíg az összes várost meg nem látogattuk. A megoldás időszükséglete: n 2 ami << n!/2N
IRE 4 /32/ 24 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Legjobbat először („best first”) algoritmus 1. tedd a start csomópontot az open listára 2. hurok:IF open=üres then sikertelen kilépés 3.n:=első(open) 4.IF cél(n) THEN sikeres kilépés 5.vedd le (n, open), add hozzá (n, closed) 6.terjeszd ki n-et és generáld az összes gyermek csomópontot. Csak az open és closed listákban nem szereplőket tedd az open listára és kapcsolj hozzájuk n-re irányuló mutatót. Rendezd az open lista csomópontjait növekvő h(n) szerinti sorrendbe 7.GO TO hurok. Edsger Dijkstra „legrövidebb útkereső algoritmusa” Sokat idézett optimunkereső algoritmus:
IRE 4 /32/ 25 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Nehezen kereshető „ felszínek” 1
IRE 4 /32/ 26 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Nehezen kereshető „ felszínek” 2
IRE 4 /32/ 27 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – „Hegymászó” algoritmus numerikus analízis -> ~ = gradiens módszer "A cél elérését az ahhoz megjósolhatóan legközelebb álló csomópontok (állapotok) kiválasztásával kísérli meg." h(n) = a csúcs és az n közötti távolság. Cél Start
IRE 4 /32/ 28 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Helymászó algoritmus 1. n:=start csomópont 2. hurok:IF cél (n) THEN sikeres kilépés 3. terjeszd ki n-et, számold ki h(ni)-t minden gyermek csomópontra és a legkisebb "költségű" (csúcstól való távolságot) vedd a következő n-nek. 4. IF h(n)<h(következő n) then sikertelen kilépés 5. n:=következő n 6.GO TO hurok Problémás:- lokális maximum esetén (több "csúcs" létezése) - "fennsík" esetén (azonos magasságú hely)
IRE 4 /32/ 29 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Nehezen kereshető „ felszínek” 3.
IRE 4 /32/ 30 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Nehezen kereshető „ felszínek” 4.
IRE 4 /32/ 31 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Nehezen kereshető „ felszínek” 5
IRE 4 /32/ 32 Óbudai Egyetem, NIK Dr. Kutor László2011. TÁMOP – Kérdések - Miért van szükség kereső algoritmusokra a mesterséges intelligencia létrehozásához? - Tudnak-e heurisztikát alkalmazni a számítógépek? - Miért nehéz probléma eldönteni, hogy az egyes feladatok melyik probléma osztályba tartoznak?