Mesterséges intelligencia 4
Megoldáskereső algoritmusok osztályozása Visszavonható-e műveletvégzés? Nem módosítható keresők Módosítható keresők Műveletvégzés hatása nem vonható vissza. Egyszerű adatbázis. Műveletvégzés hatása visszavonható. Összetettebb adatbázis. visszalépéses kereső keresőfával kereső
Visszalépéses (Backtrack) kereső Adatbázis: aktuális út (a kezdőcsúcsból az aktuális csúcsba) csúcs = Műveletek: operátorok visszalépés: az aktuális csúcs törlése állapot + az állapotra még nem alkalmazott operátorok
az összes a kezdőállapotra alkalmazható operátor Alap backtrack Vezérlő: Inicializálás: start-csúcs az adatbázisba start-csúcs = Tesztelés: az aktuális csúcsban célállapot van-e? kezdőállapot + az összes a kezdőállapotra alkalmazható operátor
Alap backtrack Vezérlő: Az aktuális csúcs állapotára (a) Vissza a 2-re Van-e még nem alkalmazott alkalmazható operátor? Ha nincs ⇒ visszalépés Ha van operátor választása (o) o eltávolítása az aktuális csúcsból o(a) hozzáfűzése az adatbázishoz (új csúcsként) Vissza a 2-re
Alap backtrack üres-e az adatbázis? i inicializálás n a tesztelése o(a) új csúcsként az adatbázishoz i visszalépés n a-ra van-e még nem alkalmazott alkalmazható operátor? n i
Alap backtrack Ha megoldást talált: A megoldás maga az adatbázis (mint út). A csúcsokban tárolandó: a csúcsban tárolt állapotra utoljára alkalmazott operátor.
Alap backtrack tulajdonságai Teljesség: Ha van megoldás, akkor véges állapottér gráfban megtalálja. Ha nincs megoldás, akkor véges állapottér gráfban felismeri. Optimalitás: nem garantálja az optimális megoldás megtalálását.
Backtrack úthosszkorláttal A reprezentációs gráf köreinek átvágására: maximalizáljuk az adatbázis méretét! Legyen előre adott egy pozitív szám: korlát A visszalépési feltétel kibővítése: ha az adatbázis hossza > korlát ⇒ visszalépés
Backtrack úthosszkorláttal üres-e az adatbázis? i inicializálás n a tesztelése o(a) új csúcsként az adatbázishoz i visszalépés n n |adatb|<korlát és a-ra van még operátor? i
Backtrack úthosszkorláttal tulajdonságai Teljesség: Ha van megoldás, nem garantált annak megtalálása. (ha az úthosszkorlát túl kicsi) Ha nincs megoldás, akkor tetszőleges állapottér gráfban felismeri. Optimalitás: nem garantálja az optimális megoldás megtalálását.
Backtrack körfigyeléssel A reprezentációs gráf köreinek eliminálására: ne engedjük állapotok duplikálását az adatbázisban! Az adatbázis kibővítésének feltételhez kötése: ha az új állapot (a’) már szerepel az adatbázisban ⇒ nem fűzzük hozzá a’-t
Backtrack körfigyeléssel üres-e az adatbázis? i inicializálás n a tesztelése o(a) új csúcsként az adatbázishoz i visszalépés n i n n o(a) szerepel az adatbázisban? a-ra van még operátor? i
Backtrack körfigyeléssel tulajdonságai Teljesség: Ha van megoldás, akkor tetszőleges állapottér gráfban megtalálja. Ha nincs megoldás, akkor tetszőleges állapottér gráfban felismeri. Optimalitás: nem garantálja az optimális megoldás megtalálását.
Ág és korlát algoritmus Optimális megoldás keresésére Az úthosszkorlátos backtrack kereső egy változata Az úthosszkorlát dinamikusan változik megoldást találva az úthosszkorlát a megoldás hosszára csökken
Ág és korlát algoritmus üres-e az adatbázis? inicializálás (korlát és megoldás is) inicializálás i n megoldás üres? i n o(a) új csúcsként az adatbázishoz megoldás:=adatb + korlát := |adatb| visszalépés a tesztelése i i n |adatb|<korlát és a-ra van még operátor? n i
Ág és korlát algoritmus tulajdonságai Teljesség: Ha van megoldás, akkor tetszőleges állapottér gráfban megtalálja (ha a korlát kezdőértéke nem túl kicsi). Ha nincs megoldás, akkor tetszőleges állapottér gráfban felismeri. Optimalitás: garantálja az optimális megoldás megtalálását.