Enunciado | Código | Objetivos
|
|
|
||||||||||||||||||
Estado
inicial |
Estado
meta |
Se trata de un dominio de prueba muy conocido en Inteligencia Artificial. Tenemos un conjunto de N bloques numerados (de 0 a N-1). Cada bloque puede colocarse de uno en uno sobre la mesa (TABLE) o encima de otro bloque, formando torres. Sólo podemos mover bloques libres, que no tienen nada encima. En principio, en la versión más sencilla, la mesa tiene espacio suficiente para todos los bloques. Para estas primeras pruebas utilizaremos los siguientes estados inicial y estado meta.
Para cada dominio tendremos que completar dos archivos, domain.h y domain.c, que describimos a
continuación.
tState
*loadDomain(char *); void freeDomain(); int goalTest(tState *s); int executable(unsigned op,tState *s); tState *successorState(unsigned op,tState *s); void freeState(tState *s); int cost(unsigned op,tState *s); void showOperator(unsigned op); void showState(tState *s); |
#include "domain.h" #include "search.h" |
$ make domain
DOM=romania |
$ make |