• Nem Talált Eredményt

Keresés és keresési technikák

2. Irodalmi összefoglaló: a felhasznált fogalmak és eszközök 7

2.3. Mesterséges intelligencia technikák

2.3.4. Keresés és keresési technikák

A 2.3. fejezetben már elhangzott, hogy a legtöbb mesterséges intelligencia technikát igényl® feladat megoldása elemi lépések sorozataként állítható el®, amely módszeres próbálkozással, kereséssel [26]-[30] határozható meg. Ehhez ismerni kell a kezdeti ál-lapotot, az elemi lépéseket deniáló operátorokat vagy akciókat, amelyek segítségével egy állapotból egy másik állapot érhet® el, a célállapotok meghatározásához szük-séges célfüggvényt vagy céltesztet, valamint a költségfüggvényeket. Keresés során a kezdeti állapotból kiindulva, minden egyes állapotban a végrehajtható akciókat az állapotra alkalmazva az állapotok egy új halmaza érhet® el. Ez a folyamat az állapot kifejtése vagy kiterjesztése, amely során az állapot gyermekei generálhatók. Termé-szetesen a keresés vezérlése során valamilyen módon meg kell határozni a kifejtend®

állapotok sorrendjét, illetve szükség esetén lehet®vé kell tenni az összes lehet®ség kipróbálását. A keresés, az állapotok kifejtése akkor ér véget, amikor sikerül egy célállapotba jutni illetve amikor az összes lehet®ség kipróbálása került.

A keresés folyamata szemléletesen nyomon követhet® az úgynevezett keresési fán, ahol a fa csomópontjai az állapotokat, a fa élei pedig az akciókat reprezentálják. A

fa gyökér csomópontja a kezdeti állapot, levél csomópontjai pedig a még ki nem terjesztett állapotok. A fa jellemz® tulajdonságai ezen kívül még a fa mélysége, amely az adott szinthez vezet® út hosszával (akciók számával), valamint az elágazási tényez®, amely az alkalmazható akciók számával jellemezhet®.

A következtetés folyamata is megvalósítható kereséssel, amelyben a kezdeti ál-lapot a világot leíró mondatok konjunkciója, az operátorok az alkalmazott követ-keztetési szabályok, a célállapot pedig egy bizonyítandó állítás. Ennél a feladatnál a problémát a túlságosan nagy elágazási tényez® jelenti, amelyet egyrészt a sok és sokféle módon alkalmazható következtetési szabály, másrészt az adatbázis méretének exponenciális növekedése okozza.

A következ® alfejezetek bemutatják az általános keresési algoritmust, valamint ennek kisebb-nagyobb módosításával el®állított keresési technikákat.

Általános keresési algoritmus

Az általános keresés algoritmus f®bb lépései a következ®k:

1. Legyen L a kezdeti állapotokat tartalmazó lista.

2. Ha L üres, akkor leállás - a keresés sikertelen;

egyébként legyen n egy csomópont L-b®l.

3. Ha n egy célállapot, akkor leállás és n (és a hozzá vezet® út) visszaadása eredményként.

4. Egyébként n törlése L-b®l;

n gyermekeinek el®állítása (és a hozzájuk vezet® út megjegyzése);

a gyermekek hozzáadása L-hez;

visszalépés 2-re.

Az algoritmusban használt L lista a nyílt csúcsokat tartalmazza, amelyek azokat az el®állított állapotokat jelölik, amelyek még nem kerültek kiterjesztésre.

Az algoritmus végrehajtása során a legfontosabb döntések a következ®k:

- hogyan történjen az n csomópont kiválasztása L-b®l (2. lépés) - hogyan történjen n gyermekeinek hozzáadása L-hez (4. lépés)

Ezeknek a döntéseknek a megválaszolása a következ® fejezetekben a teljesség igénye nélkül bemutatásra kerül® különböz® keresési technikákat eredményezi.

Szélességi keresés

Szélességi keresésnél az általános keresési algoritmus módosítása az alábbiak szerint történik:

- n az els® csomópont L-b®l (2. lépés)

- n gyermekei L végére adódnak (4. lépés)

Ebben az esetben L sorként m¶ködik, tehát minden esetben a legrégebben betett csomópont vizsgálatára kerül sor. A keresési fát vizsgálva szélességi keresésnél min-dig a keresési fa legmagasabb szintjén lev® csúcsok egyikének kiválasztása történik.

Amennyiben ez célcsúcs, a keresés sikeresen véget ér, ellenkez® esetben pedig a csúcs kiterjesztésével folytatódik a keresés.

A módszer teljes és optimális (hiszen ha van megoldás, biztosan megtalálja a legrövidebb megoldási utat), azonban memóriaigénye nagy lehet (a fa mélységével exponenciálisan változik).

Mélységi keresés

Mélységi keresés során az általános keresési algoritmus a következ®képp módosul:

- n az els® csomópont L-b®l (2. lépés) - n gyermekei L elejére adódnak (4. lépés)

Ebben az esetben L veremként m¶ködik, tehát a legutoljára betett csomópont vizsgálatára kerül sor leghamarabb. A mélységi keresést keresési fán szemléltetve mindig a legmélyebb szinten lev® csúcsok egyikének vizsgálata történik. Amennyiben ez célcsúcs, a keresés sikeresen véget ér, ellenkez® esetben pedig a csúcs kiterjeszté-sével folytatódik a keresés.

A módszer nagyon szerény memóriaigénnyel (a fa mélységével és az elágazási tényez®vel arányos) rendelkezik, azonban hátránya, hogy nem teljes (elakadhat egy rossz, esetleg végtelen ágon) és ebb®l következ®en nem is optimális.

Korlátozott mélység¶ keresés, iteratív mélyítés

A korlátozott mélység¶ keresés algoritmusa a mélységi keresés hátrányos tulajdon-ságait javítja egy mélységi korlát bevezetésével. Így a keresési fában mindig a legmé-lyebben lév® csomópontok egyikét terjeszti ki abban az esetben, ha ez nem haladja meg az el®re deniált mélységi korlátot. Problémát okozhat azonban a mélységi korlát helyes megválasztása.

Az iteratív mélyítés algoritmusa ezt a problémát kerüli meg úgy, hogy a kor-látozott mélység¶ keresést egyre növekv® mélységi korlát mellett végzi el, mintha a csomópontoknak a mélységi korlát alatt nem lennének gyermekei. Ha a célt a vizsgált mélységi korlát mellett nem sikerül elérni, a korlát eggyel való növelésével újraindítja a keresést.

Az iteratív mélyítés algoritmus f®bb lépései a következ®k:

1. Legyen a mélységi korlát l = 0.

2. Legyen L a kezdeti állapotokat tartalmazó lista.

3. Ha L üres, akkor l értékének eggyel való növelése, majd visszalépés 2-re;

egyébként legyen n az els® csomópont L-b®l.

4. Ha n egy célállapot, akkor leállás és n (és a hozzá vezet® út) visszaadása eredményként.

5. Egyébként n törlése L-b®l;

ha n mélysége kisebb, mint l, akkor

n gyermekeinek el®állítása (és a hozzájuk vezet® út megjegyzése);

a gyermekek hozzáadása L elejéhez;

visszalépés 3-ra.

A módszer ötvözi a mélységi és a szélességi keresés el®nyös tulajdonságait, így az algoritmus a szélességi kereséshez hasonlóan teljes és optimális, azonban a mélységi keresés szerény memóriaigényével rendelkezik. Hátrányos tulajdonsága, hogy az algoritmus redundáns, hiszen sok csomópont többször is kifejtésre kerül, azonban legtöbb probléma esetén ezen többszörös kifejtés okozta többletmunka valójában elég kicsi.

Heurisztikus keresések

Az el®z® fejezetekben bemutatott keresési stratégiák a probléma megoldását az új állapotok szisztematikus el®állításával és a célállapotokkal való összehasonlításukkal találják meg. Mivel ezek a technikák a keresés vezérléséhez nem használnak fel fel-adatspecikus ismereteket, ezért ezeket neminformált keresési módszerek vagy vak keresések összefoglaló néven szokták említeni. Ezek a keresési módszerek a legtöbb feladatnál nagyon rossz hatékonysággal m¶ködnek, ezért felmerül az a kérdés, hogy hogyan lehet javítani a vak keresési eljárások hatékonyságát, hogyan lehet csökken-teni a feladatok megoldásával járó számításigényt, illetve hogyan lehet gyelembe venni az adott feladattal kapcsolatos információkat.

A feladatról szóló speciális ismereteket, ötleteket, heurisztikákat is felhasználó technikákat összefoglaló néven informált keresési módszereknek vagy heurisztikus kereséseknek nevezik. Lényegük, hogy deniálnak egy úgynevezett heurisztikus függ-vényt, amellyel egy adott állapotban becsülni lehet a célállapot elérésének költségét.

A heurisztikus keres® rendszerek egy csoportja a heurisztikus függvény ismeretében a nyílt csúcsok halmazából mindig a legígéretesebbnek t¶n® csomópontot választja kiterjesztésre. Egy másik megközelítés a heurisztikus függvényen kívül felhasználja az adott állapot elérésének már ismert költségét is, s a csomópontok közül a mini-mális költségösszeg¶t választja kifejtésre.

Egy adott feladat esetén a heurisztika különféle ötleteken alapulhat, azonban az alkalmazott heurisztikus függvényt®l elvárható, hogy hatékonyan számítható legyen és lehet®leg ne becsülje túl a tényleges költséget.

2.3.5. Kvalitatív modellek: a mesterséges intelligencia