11.6. A tervkészítési módszerek elemzése

A mesterséges intelligencia területén belül, a tervkészítés jelenleg nagy figyelemnek örvend. Ennek egyik oka, hogy egyesíti az eddig bemutatott két nagy területet, a keresést és a logikát. A tervkészítő tekinthető egy programnak, ami vagy egy megoldást keres, vagy (konstruktívan) bizonyítja egy megoldás létezését. A két terület alapötleteinek keresztezése az utóbbi évtizedben több nagyságrendnyi javulást hozott a hatékonyság tekintetében, és egyúttal megnövelte a tervkészítők ipari alkalmazásokban való felhasználhatóságát. Sajnos még mindig nincs tiszta képünk arról, hogy mely problémákra mely megoldások a legalkalmasabbak. Később valószínűleg új technikák kerülnek majd előtérbe, melyek dominálnak majd a meglévők felett.

A tervkészítési feladat elsősorban a kombinatorikus robbanás kézbentartásáról, kontrollálásról szól. Egy p elemi állítást tartalmazó problématérben 2p állapot lehetséges. Összetett problémakörökben p nagyon nagy lehet. Vegyük azt, hogy a problématér objektumainak tulajdonságai (Pozíció, Szín stb.) és relációi (Ott, Rajta, Közte stb.) vannak. Az állapotok száma, d objektummal és hármas relációkkal a problématérben 2d^3. Végkövetkeztetésként – a legrosszabb esetet feltételezve – megállapíthatjuk, hogy a tervkészítés reménytelen.

Az ilyen pesszimizmus ellen az „oszd meg és uralkodj” elv hatásos fegyver lehet. A legjobb esetben – amennyiben a probléma teljesen dekomponálható – az „oszd meg és uralkodj” elv exponenciális gyorsulást hozhat. A dekomponálhatóságot azonban a cselekvések negatív kölcsönhatásai megszüntetik. A részben rendezett tervkészítő ezt egy erős reprezentácós megközelítéssel, az okozati kapcsolatokkal kezelte, de sajnos a konfliktusok mindegyike csak egy választással oldható fel (ami a konfliktusban álló cselekvést vagy a kapcsolat elé, vagy mögé sorolja) és ezen választások száma exponenciálisan nő. A GRAPHPLAN algoritmus a gráf felépítésekor kikerüli ezeket a döntéseket úgy, hogy az ütközéseket mutex kapcsolatokkal rögzíti anélkül, hogy a feloldás módjáról döntene. A SATPLAN algoritmus a mutex kapcsolatok hasonló területét fedi le, de ezt egy specifikus adatstruktúra felhasználása helyett az általános CNF alak felhasználásával teszi. Az, hogy ez mennyire jól működik, a felhasznált SAT megoldótól függ.

Néha a probléma hatékonyan megoldható, ha észrevesszük, hogy a negatív kölcsönhatások kizárhatók. Azt mondjuk, hogy egy feladatnak sorba rendezhető részcéljai (serializable subgoals) vannak, ha létezik a részcéloknak egy olyan rendezése, hogy a tervkészítő sorrendben elérheti őket anélkül, hogy a korábban már elért részcélokat felszámolná. A kockavilágban például, ha a cél egy torony megépítése (pédául az A a B-n, ami pedig az asztalon elhelyezkedő C-n van), akkor a részcélok felülről lefelé sorrendezhetők: ha először elérjük, hogy C az asztalon van, akkor a továbbiakban – mialatt a további részcélokat teljesítjük – ennek megszüntetésére soha nem lesz szükség. Egy tervkészítő, ami az alulról felfelé trükköt alkalmazza, a kockavilág bármely problémáját képes megoldani visszalépés nélkül (bár nem mindig a legrövidebb tervet adja).

Egy összetettebb példaként, a NASA Deep Space 1 űrhajóját irányító Távirányító Ágens tervkészítő esetén elhatározták, hogy az űrhajót irányító állítások legyenek sorba rendezhetők. Ez talán nem is annyira meglepő, hiszen az űrhajót a mérnökök úgy tervezték, hogy minél könnyebb legyen irányítani (más megkötések figyelembevételével). A célok sorrendezhetőségét kihasználva a Távirányító Ágens tervkészítő a keresés nagy részét megspórolhatta, így megfelelően gyors volt az űrhajó valós idejű irányítására, amit korábban lehetetlennek tartottak.

A kombinatorikus robbanás kordában tartására több lehetőség is van. Az 5. fejezetben láthattuk, hogy a kényszerkielégíthetőségi problémák (CSP-k) visszalépési számának kontrollálásához számos megoldás létezik, mint például a függőségirányított visszalépés. Ezen technikák mindegyike alkalmazható a tervkészítéshez is. Például a megoldás kinyerése egy tervkészítési gráfból kezelhető egy kétértékű CSP-ként, melynek változói azt jelzik, hogy egy adott cselekvés bekövetkezik-e egy adott időpontban, vagy sem. A CSP megoldható az 5. fejezet bármely algoritmusával, például a min-konfliktusok algoritmussal. Egy közeli rokon, a BLACKBOX rendszerben használt megoldás, a tervkészítési gráfot CNF kifejezésre fordítja, melyből ezután egy SAT megoldóval nyeri ki a tervet. Ez a megközelítés jobb, mint a SATPLAN algoritmus, feltételezhetően azért, mert a tervkészítési gráf már számos lehetetlen állapotot és cselekvést eltávolított a feladatból. A GRAPHPLAN algoritmusnál is jobban működik, valószínűleg azért, mert a kielégíthetőségi keresés, mint a WALKSAT, nagyobb rugalmasságú a GRAPHPLAN algoritmus által használt szigorú visszalépéses keresésnél.

Nem kétséges, hogy a GRAPHPLAN-hoz, a SATPLAN-hoz és a BLACKBOX-hoz hasonló tervkészítők előremozdították a tervkészítés fejlődését azáltal, hogy megnövelték a tervkészítő rendszerek teljesítményét, és tisztázták a kapcsolódó reprezentációs és komlexitási kérdéseket. Ezek a megoldások azonban eredendően ítéletlogikai megoldások, így korlátozott a problémakör, amelyet képesek kifejezni. (Például néhány tucat objektumot és helyet tartalmazó logisztikai problémának megfelelő CNF kifejezésekhez gigabájtnyi kapacitásra van szükség.) Bár a tervkészítési gráfhoz hasonló struktúrák továbbra is hasznosak lesznek, mint a heurisztikák forrása, valószínűnek tűnik, hogy elsőrendű reprezentációkra és algoritmusokra lesz szükség a további fejlődéshez.