Tudd Intuíció, előadás, állapottér keresési

Ez a fejezet foglalkozik a problémák megoldásához segítségével állapottér gráfban. Az állam tér le, mint egy sor Államok - a csúcsok, a készlet átmenetek államonként - ívek, a beállított kezdeti állapotok és a beállított végső állapotok. A probléma megoldása képviselteti magát, mint utat a térben állami grafikon, amely összeköti a kezdeti állapotban a végső.







Ha az állam a tér kis feladat ez lesz minden optimális megoldások mélységi keresést. A problémák nagy tér csak egy optimális megoldás kiszámítása találva az állam széles.

A célkitűzések a generikus megoldó használnak. Állami különböző problémák tartoznak a különböző területeken. Megjegyeznünk a legjobb között talált megoldásokat a „változót” VÄRM. A fordító szükséges típusokat.

13.1. Mélységi keresés állapottér







Ebben a részben a DFS-állapottér megoldására alkalmazzák az ismert problémák. Először megoldó alkalmazott arra a problémára, a farkas, a kecske és a káposzta. Egyéb feladatokat a programban csak fokozta, hogy a leírás az államok és a közöttük lévő átmenetek.

A probléma a farkas, a kecske és a káposzta a következő (Alcuin, XIII c.). A tulajdonos a farkas, kecske és egy halom káposztát kell átjutni a folyó bal partján a jogot, amelynek a rendelkezésére egy kis csónakban. Ebben a csónak, ráadásul a gazda, hogy elfér csak egy dolog - egy farkas, vagy kecskét, vagy a káposzta. Nem hagyható felügyelet nélkül farkas és a kecske, kecske és a káposzta. Hogyan szervezzük meg az átkelést?

Feltétel problémák szállítása a folyó általában formájában leírt három, amely több, entitások (objektumok), a bal partján, egy csomó dolog (tárgy) a jobb parton, és a bank, amely egy csónakot.

A problémák megoldására, mint fent, hozzon létre egy konzol projekthez. Ez a projekt létrehoz egy mélységi modult. Ez a modul kell helyezni univerzális megoldó, amely egy mélységi keresés (listák 13,1 -13,2) 1 Listing 13,2 line változata Visual Prolog 7,5 V = VÄRM :: új ([]), a változata Visual Prolog 7.4 szükséges cserélni a vonal V = VÄRM *> :: új ([]).

Példa 13.1. Az osztály nyilatkozat mélység

Példa 13.2. Végrehajtási osztály mélység




Kapcsolódó cikkek