Download - tema-08
Inteligencia Artificial I Curso 2009–2010
Tema 8: Planificacion
Jose L. Ruiz Reina
Dpto. de Ciencias de la Computacion e Inteligencia Artificial
Universidad de Sevilla
IA-I 2009–2010 CcIa Planificacion 8.1
Planificacion en IA
x Planificar: encontrar una secuencia de acciones que alcanzan un deter-minado objetivo si se ejecutan desde un determinado estado inicial.
x Plan: secuencia de acciones que consiguen el objetivo
x Aplicaciones del mundo real:
u Robotica
u Fabricacion mediante ensamblado de componentes
u Misiones espaciales
x Planning vs Scheduling
IA-I 2009–2010 CcIa Planificacion 8.2
El problema de la planificacion en IA
x Cuestiones a abordar:u Representacion del mundo y de las acciones que lo transforman
u Representacion de planes
u Algoritmos de busqueda de planes
u Minimizar los recursos consumidos por el plan
u Tiempo en el que se realiza cada accion
u Monitorizar la ejecucion del plan, revisandolo en caso de errores o contingencias
x Por simplificar, en este capıtulo supondremos:
u Acciones deterministas, totalmente definidas por su especificacion
u Hipotesis del mundo cerrado
IA-I 2009–2010 CcIa Planificacion 8.3
Planificacion y busqueda en espacio de estados
x Solucionar un problema de planificacion usando los algoritmos ya vistosde busqueda en espacio de estados no funciona en un problema deescala real, por los siguientes motivos:
u Descripcion de los estados en el mundo real extremadamente compleja
u Gran cantidad de posibles acciones, muchas de ellas irrelevantes para la consecucion
del objetivo final
u Las acciones solo cambian una pequena porcion del mundo (el problema del marco)
u Necesitamos heurısticas independientes del dominio
u La necesidad de una accion puede detectarse sin necesidad de que se haya decidido
las acciones previas (compromiso mınimo)
u A veces es aconsejable descomponer en subproblemas mas simples
x Idea: usar la logica para representar estados, acciones y objetivos
u Y algoritmos especıficos que operan sobre esta representacion
IA-I 2009–2010 CcIa Planificacion 8.4
Un formalismo logico: STRIPS
x Un lenguaje para representar problemas de planificacion:
u Constantes: objetos del mundo (en mayusculas)
u Variables para representar cualquier objeto (en minusculas)
u Sımbolos de predicados (para expresar propiedades de los objetos)
u Sımbolos de acciones (para representar operadores)
x Terminologıa:
u Atomos: formulas de la forma P (o1, . . . , on), donde P es un sımbolo de predicado y
cada oi es una constante o una variable
u Literales: atomos o negacion de atomos
u Literales cerrados: sin variables
x Estados: conjuncion de literales cerrados
u Hipotesis del mundo cerrado: las condiciones que no se mencionan se suponen falsas
IA-I 2009–2010 CcIa Planificacion 8.5
Ejemplo: el mundo de los bloques
x Ejemplo clasico en planificacion.
x Elementos que intervienen:
u Una superficie plana.
u Una serie de bloques cubicos.
u Un brazo robotizado, que puede coger un bloque cada vez.
u Un bloque puede estar sobre la mesa o apilado sobre otro bloque.
C A
B
D
IA-I 2009–2010 CcIa Planificacion 8.6
Representacion de estados en el mundo de los bloques
x Descripcion de un estado:
C A
B
D
DESPEJADO(B), DESPEJADO(C), DESPEJADO(D), BRAZOLIBRE, SOBRE(B,A)SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A)
x Predicados en el mundo de los bloques:
DESPEJADO(x), el bloque x esta despejado.BRAZOLIBRE, el brazo no agarra ningun bloque.SOBRELAMESA(x), el bloque x esta sobre la mesa.SOBRE(x,y), el bloque x esta sobre el y.AGARRADO(x), el bloque X esta sujeto por el brazo.
IA-I 2009–2010 CcIa Planificacion 8.7
Representacion de objetivos en STRIPS
x Objetivos: descripcion de los estados finales.
x Los objetivos se representan como conjuncion de literales (con posibili-dad de usar variables)
u Las variables en los objetivos se interpretan como existencialmente cuantificadas
x Satisfacer un objetivo:
u Un estado satisface un objetivo si es posible sustituir las variables del objetivo por
objetos del mundo de manera que sus literales estan incluidos en la descripcion del
estado
u Un estado es estado final si satisface el objetivo requerido
IA-I 2009–2010 CcIa Planificacion 8.8
Ejemplo de objetivos en el mundo de los bloques
C
B
DAD
A
B
C
Estado 1 Estado 2
x El objetivo SOBRE(B,A), SOBRELAMESA(A) es satisfecho por el estado 1 ypor el estado 2
x El objetivo SOBRE(x,A), DESPEJADO(x), BRAZOLIBRE es satisfecho por elestado 1 pero no por el estado 2
x El objetivo SOBRE(x,A), SOBRE(y,x) no es satisfecho por el estado 1 perosı por el estado 2
IA-I 2009–2010 CcIa Planificacion 8.9
Descripcion de acciones en STRIPS
x Representacion de operadores o acciones:
u O(x1, . . . , xn) simboliza el operador O actuando sobre los objetos x1, . . . , xn.
x Descripcion de la accion de un operador:
u Para intentar solucionar el problema del marco, solo se especifica lo que cambia
por la accion del operador.
u Usualmente, xi es variable: esquemas de operadores.
x Descripcion de la accion de un operador en estilo STRIPS, mediantetres listas:
u Precondicion: lista de literales que deben ser ciertos para que el operador pueda
ser aplicado.
u Borrado: lista de atomos que dejan de ser ciertos una vez se ha aplicado el operador.
u Adicion: lista de atomos que pasan a ser ciertos una vez se ha aplicado el operador.
u Es usual unir la lista de borrado y la de adicion en lo que se denomina una lista de
efectos (en la que los elementos de la lista de borrado aparecen negados)
IA-I 2009–2010 CcIa Planificacion 8.10
Operadores en el mundo de los bloques (I)
x Colocar un bloque sobre otro:
APILAR(x,y)P: DESPEJADO(y), AGARRADO(x)B: DESPEJADO(y), AGARRADO(x)A: BRAZOLIBRE, SOBRE(x,y), DESPEJADO(x)
x Quitar un bloque que estaba sobre otro:
DESAPILAR(x,y)P: SOBRE(x,y), DESPEJADO(x), BRAZOLIBREB: SOBRE(x,y), DESPEJADO(x), BRAZOLIBREA: AGARRADO(x), DESPEJADO(y)
IA-I 2009–2010 CcIa Planificacion 8.11
Operadores en el mundo de los bloques (II)
x Agarrar un bloque con el robot:
AGARRAR(x)P: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBREB: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBREA: AGARRADO(x)
x Bajar un bloque hasta la superficie:
BAJAR(x)P: AGARRADO(x)B: AGARRADO(x)A: SOBRELAMESA(x), BRAZOLIBRE, DESPEJADO(x)
IA-I 2009–2010 CcIa Planificacion 8.12
Aplicabilidad y aplicacion de operadores
x Un operador es aplicable a un estado si este satisface su precondicion
u Si aparecen variables en la precondicion, la aplicabilidad se define respecto de la
sustitucion θ usada para satisfacer la precondicion
u Por abreviar, a veces la sustitucion usada aparecera implıcita al hablar del operador
u Por ejemplo, hablaremos de DESAPILAR(A,B) para referirnos a DESAPILAR(x,y) con la
sustitucion {x/A,y/B}
x El resultado de aplicar un operador aplicable (respecto de una sustitu-cion θ) a un estado E es el estado resultante de:
u Eliminar de E los atomos, instanciados por θ, de la lista de borrado (si estuvieran)
u Anadir a E los atomos, instanciados por θ, de la lista de adicion (si no estuvieran)
x Plan: secuencia de operadores aplicables, completamente instanciados
x Solucion: plan que a partir del estado inicial obtiene un estado quesatisface el objetivo
IA-I 2009–2010 CcIa Planificacion 8.13
Ejemplo de aplicacion de operador (I)
DC
B
A
BDESAPILAR(B,A)
DC A
* Estado antes de aplicar DESAPILAR(B,A):
E = {DESPEJADO(B), DESPEJADO(C), DESPEJADO(D), BRAZOLIBRE, SOBRE(B,A)
SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A)}
* Precondiciones de DESAPILAR(B,A):
P = {SOBRE(B,A), DESPEJADO(B), BRAZOLIBRE}
--- Condiciones satisfechas en el estado (operador aplicable) ----
* Listas de borrado y adicion de DESAPILAR(B,A):
B = {SOBRE(B,A), DESPEJADO(B), BRAZOLIBRE}
A = {AGARRADO(B), DESPEJADO(A)}
* Estado despues de aplicar DESAPILAR(B,A):
E’ = (E-B)+A = {DESPEJADO(C), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(D), SOBRELAMESA(A),
AGARRADO(B), DESPEJADO(A)}
IA-I 2009–2010 CcIa Planificacion 8.14
Ejemplo de aplicacion de operador (II)
B
DC A DACB
BAJAR(B)
* Estado antes de aplicar BAJAR(B):
E = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C),
SOBRELAMESA(A), SOBRELAMESA(D), AGARRADO(B)}
* Precondiciones de BAJAR(B):
P = {AGARRADO(B)}
--- Condiciones satisfechas en el estado (operador aplicable) ----
* Lista de borrado de BAJAR(B):
B = {AGARRADO(B)}
* Lista de adicion de DESAPILAR(B,A):
A = {SOBRELAMESA(B), BRAZOLIBRE, DESPEJADO(B)}
* Estado despues de aplicar DESAPILAR(B,A):
E’ = (E-B)+A = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A),
SOBRELAMESA(D),SOBRELAMESA(B), BRAZOLIBRE, DESPEJADO(B)}
IA-I 2009–2010 CcIa Planificacion 8.15
Ejemplo: cambio de rueda pinchada
x Lenguaje:
u Objetos: RUEDA-REPUESTO, RUEDA-PINCHADA, EJE, MALETERO, SUELO
u Predicado: EN(-,-)
x Estado inicial:
EN(RUEDA-PINCHADA,EJE),EN(RUEDA-REPUESTO,MALETERO)
x Estado final:
EN(RUEDA-REPUESTO,EJE)
IA-I 2009–2010 CcIa Planificacion 8.16
Acciones en el cambio de rueda pinchada
u Sacar la rueda de repuesto del maletero
QUITAR(RUEDA-REPUESTO,MALETERO)
P: EN(RUEDA-REPUESTO,MALETERO)
B: EN(RUEDA-REPUESTO,MALETERO)
A: EN(RUEDA-REPUESTO,SUELO)
u Quitar la rueda pinchada del eje
QUITAR(RUEDA-PINCHADA,EJE)
P: EN(RUEDA-PINCHADA,EJE)
B: EN(RUEDA-PINCHADA,EJE)
A: EN(RUEDA-PINCHADA,SUELO)
u Colocar la rueda de repuesto en el eje
PONER(RUEDA-REPUESTO,EJE)
P: NOT(EN(RUEDA-PINCHADA,EJE)), EN(RUEDA-REPUESTO,SUELO)
B: EN(RUEDA-REPUESTO,SUELO)
A: EN(RUEDA-REPUESTO,EJE)
u Dejar el coche solo hasta la manana siguiente
DEJARSOLO
P: {}
B: EN(RUEDA-REPUESTO,SUELO), EN(RUEDA-REPUESTO,EJE), EN(RUEDA-REPUESTO,MALETERO)
EN(RUEDA-PINCHADA,EJE), EN(RUEDA-PINCHADA,SUELO)
A: {}
IA-I 2009–2010 CcIa Planificacion 8.17
Ejemplo: movimiento de robot por una rejilla
x Un robot ha de desplazarse por una rejilla, desde una posicion inicial auna final
u 8 movimientos posibles: N, S,E,O,NO,NE,SO,SE
u En algunas de las rejillas existen obstaculos no franqueables
Situacioninicial
Objetivo
del robot
IA-I 2009–2010 CcIa Planificacion 8.18
Representacion del problema del movimiento de robot
x Lenguaje:
u Constantes: numeros que indican coordenas horizontales y verticales
u Predicados: ROBOT-EN(-,-) y LIBRE(-,-)
x Estado inicial (casillas sin obstaculos y posicion del robot):
LIBRE(1,1),...,LIBRE(6,2),LIBRE(11,2),...,LIBE(12,12),ROBOT-EN(2,3).
x Objetivo: ROBOT-EN(10,11)
x Acciones (solo una, las siete restantes son analogos):
MOVER-SE(x,y)
P: ROBOT-EN(x,y),LIBRE(x+1,y-1)
B: ROBOT-EN(x,y),LIBRE(x+1,y-1)
A: ROBOT-EN(x+1,y-1),LIBRE(x,y)
u En este caso, necesitamos sımbolos de funcion (+ y -) y que el test de satisfacibilidad
maneje las nociones de numero siguiente y anterior
IA-I 2009–2010 CcIa Planificacion 8.19
Extensiones al formalismo STRIPS
x Existen sistemas de planificacion que usan un lenguaje de representacionmas expresivo
x Ejemplo:
u Uso de sımbolos de funcion
u Manejo del sımbolo de igualdad
u Disyunciones
u Variables con tipos
x En general existe un compromiso entre expresividad del lenguaje y sim-plicidad de los algoritmos que manejan la representacion
IA-I 2009–2010 CcIa Planificacion 8.20
Busqueda de planes hacia adelante
x Un problema de planificacion se puede plantear como un problema deespacio de estados:
u Estados descritos mediante listas de literales.
u Operadores como listas de precondiciones, adicion y borrado.
u Funcion es-estado-final descrita por un objetivo.
x La busqueda de planes podrıa hacerse usando los algoritmos de busque-da ya vistos en los temas anteriores: anchura, profundidad, primero elmejor, A*,. . .
x El uso de la representacion STRIPS permite el uso de heurısticas inde-pendientes del dominio
u Por ejemplo, el numero de literales en el objetivo que quedan por satisfacer en un
estado
IA-I 2009–2010 CcIa Planificacion 8.21
Calculo de sucesores
B
DC A
DAC
DAC
DAC
DACB
B
B
B
APILAR(x,y)[x=B,y=C]
APILAR(x,y)[x=B,y=D]
APILAR(x,y)[x=B,y=A]
BAJAR(x)[x=B]
IA-I 2009–2010 CcIa Planificacion 8.22
Calculo de sucesores
x Algoritmo para generar sucesores:
FUNCION SUCESORES-ADELANTE(E)1. Hacer SUCESORES igual a vacıo2. Para cada operador O2.1 Para cada sustitucion THETA de las variables que aparecen
en O tal que THETA(PRECONDICIONES(O)) esta incluida en E, hacer:2.1.2 E’ igual a E - THETA(BORRADO(O)) + THETA(ADICION(O))2.1.3 A~nadir E’ a SUCESORES
3. Devolver SUCESORES
x Ejemplo:
E = {DESPEJADO(C), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C),
SOBRELAMESA(A), SOBRELAMESA(D), AGARRADO(B)}
Cuatro posibles operadores aplicables:
1), 2) y 3): O=APILAR(x,y) con THETA=[x=B,y=C], THETA=[x=B,y=A] y THETA=[x=B,y=D], resp.
4): O=DEJAR(x) con sustitucion THETA=[x=B].
Sucesor en el caso 1):
E’= { DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C), SOBRELAMESA(A),
SOBRELAMESA(D), BRAZOLIBRE, DESPEJADO(B), SOBRE(B,C)}
IA-I 2009–2010 CcIa Planificacion 8.23
Ineficiencia de la busqueda hacia adelante
x La busqueda hacia adelante en un problema de planificacion:
u Es completa (si el conjunto de objetos es finitos)
u Es ineficiente en la practica (por las razones ya expuestas)
x El formalismo logico para representar los estados, resuelve en ciertamedida:
u El problema del marco
u La obtencion de heurısticas independientes del dominio
x Sin embargo, persisten algunos problemas
u El gran factor de ramificacion (consideracion de acciones irrelevantes)
u La busqueda del plan de manera secuencial
u Planes no jerarquicos
x Para intentar resolver el primer punto, se puede realizar una busquedahacia atras, dirigida por el objetivo
IA-I 2009–2010 CcIa Planificacion 8.24
Busqueda de planes hacia atras
x Busqueda hacia atras:
u Comienzo en un objetivo
u En cada estado se generan todos los posibles predecesores
u Finalizar cuando se alcanza un objetivo que es cierto en el estado inicial
x Predecesor de un objetivo G:
u mediante operador O y sustitucion θ
u es cualquier estado E cuyo sucesor al aplicar O y θ satisface G.
u Relevante: Al menos, en la lista de adicion del operador esta uno de los literales de
G
u Consistente: En la lista de borrado de G no aparece ningun literal de G
x Ventajas:
u Generalmente mas eficiente: menos ramificacion
u Posibilidad de aplicar heurısticas independientes del dominio (proximidad al estado
inicial)
IA-I 2009–2010 CcIa Planificacion 8.25
Calculo de predecesores
DAC
B
DAC
DC
B
AC
B
B
A
D
APILAR(x,y)[x=B,y=C]
DEJAR(x)[x=A]
DEJAR(x)[x=D]
IA-I 2009–2010 CcIa Planificacion 8.26
Calculo de predecesores
x Algoritmo para generar predecesores:
FUNCION PREDECESORES-ATRAS(G)1. Hacer PREDECESORES igual a vacıo2. Para cada operador O2.1 Para cada sustitucion THETA de las variables que aparecen en O
tal que al menos un literal L de G esta en THETA(ADICION(O)), yG no tiene elementos de THETA(BORRADO(O)), hacer:2.1.1 E igual G + THETA(PRECONDICION(O)) - THETA(ADICION(O))2.1.2 A~nadir E a PREDECESORES
3. Devolver PREDECESORESx Ejemplo:
G = {DESPEJADO(B), DESPEJADO(A), DESPEJADO(D), SOBRE(B,C), BRAZOLIBRE,
SOBRELAMESA(C), SOBRELAMESA(A), SOBRELAMESA(D)}
Tres posibles operadores aplicables (en regresion)
1): O=APILAR(x,y) con sustitucion THETA=[x=B,y=C].
2) y 3): O=DEJAR(x) con sustituciones THETA=[x=A], s=[x=D] resp.
Predecesor en el caso 1)
E = {DESPEJADO(B), DESPEJADO(A), DESPEJADO(D), SOBRELAMESA(C),
SOBRELAMESA(A), SOBRELAMESA(D), AGARRADO(B)}
IA-I 2009–2010 CcIa Planificacion 8.27
Planificacion lineal
x Tanto la busqueda de planes hacia adelante como la busqueda de planeshacia atras son ejemplos de algoritmos de planificacion lineal
x En un planificador lineal, el espacio de busqueda lo forman secuenciastotalmente ordenadas de acciones, bien desde el inicio hacia adelante obien desde el objetivo hacia atras
IA-I 2009–2010 CcIa Planificacion 8.28
La anomalıa de Sussman
x Problema de planificacion que muestra las carencias de la planificacionlineal:
A
Estado inicial Estado final
C
A B
B
C
x Estados:
Estado inicial = { SOBRELAMESA(A), SOBRELAMESA(B),DESPEJADO(B), DESPEJADO(C), BRAZOLIBRE, SOBRE(C,A) }
Objetivo = {SOBRE(A,B), SOBRE(B,C) }
IA-I 2009–2010 CcIa Planificacion 8.29
Anomalıa de Sussman con un planificador lineal
x Un plan para satisfacer SOBRE(A,B):
1. DESAPILAR(C,A) 2. BAJAR(C) 3. AGARRAR(A) 4. APILAR(A,B)
x Estado intermedio:
A
B CEstado actual
IA-I 2009–2010 CcIa Planificacion 8.30
Anomalıa de Sussman con un planificador lineal
x Un plan para satisfacer SOBRE(B,C):
5. DESAPILAR(A,B) 6. BAJAR(A) 7. AGARRAR(B) 8. APILAR(B,C)
x Estado intermedio:
Estado actual
C
B
A
x Problema: SOBRE(A,B) ha dejado de ser cierto.
u Al satisfacer SOBRE(B,C) se ha deshecho.
IA-I 2009–2010 CcIa Planificacion 8.31
Deficiencias de la planificacion lineal
x Causa del problema:
u El planificador intenta resolver un objetivo cada vez.
u En ciertos casos, hay interaccion entre objetivos, deshaciendose unos a otros.
x Este un problema general de los algoritmos de planificacion lineal.
IA-I 2009–2010 CcIa Planificacion 8.32
Alternativas a la planificacion lineal
x Busqueda de planes no lineales, entrelazando objetivos.
x Ejemplo:
La anomalıa de Sussman se pude solucionar:1. Comenzado a satisfacer SOBRE(A,B), en parte solo,
despejando A, (DESAPILAR(C,A), BAJAR(C)).2. Satisfacer SOBRE(B,C), haciendo APILAR(B,C).3. Completar SOBRE(A,B), haciendo APILAR(A,B)
x Principio de mınimo compromiso: no determinar completamente elorden entre acciones, a no ser que sea estrictamente necesario
IA-I 2009–2010 CcIa Planificacion 8.33
Planes parcialmente ordenados
x Plan parcialmente ordenado: un plan en el que solo se especifican algu-nas de las precedencias entre sus acciones
x Principio de mınimo compromiso
x Secuenciar un plan parcialmente ordenado: construir un plan secuencialque respete las precedencias obligatorias
u
Este sera el ultimo paso
IA-I 2009–2010 CcIa Planificacion 8.34
Planes parcialmente ordenados: ejemplo
x Plan parcialmente ordenado y secuenciaciones
TOMARBROCHA
TOMARBROCHA
TOMARBROCHA
TOMAR ESCALERA
TOMAR ESCALERA
TOMAR ESCALERA
PINTARTECHO
PINTARTECHO
PINTARTECHO
INICIO
INICIO
INICIO
FIN
FIN
FIN
IA-I 2009–2010 CcIa Planificacion 8.35
Planes parcialmente ordenados: componentes
x Un conjunto de acciones que constituyen los pasos que el plan lleva acabo, de entre los operadores del problema, cada una con sus precondi-ciones y efectos
u Dos acciones especiales: INICIO (sin precondiciones y cuyo efecto es el estado
inicial) y FIN (sin efectos y cuyas precondiciones son el objetivo final)
x Un conjunto de restricciones de orden A ≺ B entre acciones del plan
A B
x Un conjunto de enlaces causales, Ap→ B, especificando la consecucion,
por parte de una accion, de una de las precondiciones de otra acciondel plan (lleva implıcita una restriccion de orden)
AGARRAR(A) APILAR(A,B)AGARRADO(A)
x Un conjunto de precondiciones abiertas: aquellas que aun no tienenenlaces causales que las consigan
IA-I 2009–2010 CcIa Planificacion 8.36
Planes parciales inicial y final
x Plan parcial inicial: plan cuyas unicas acciones son INICIO y FIN, conla restriccion INICIO ≺ FIN, sin enlaces causales y con todas las pre-condiciones de FIN abiertas
x Planes parciales finales: planes parciales sin conflictos entre los enlacescausales, sin ciclos entre las restricciones de orden y sin precondicionesabiertas
u Una accion C entra en conflicto con (o amenaza) un enlace causal Ap→ B, si C tiene
a ¬p en su lista de efectos y segun las restricciones de orden, C podrıa ir despues
de A y antes que B
IA-I 2009–2010 CcIa Planificacion 8.37
Ejemplo: aprobar IA1
x Lenguaje:
u Objetos: IA1, ETSII, CASA
u Predicado: EN(-), ESTUDIADO(-), APROBADO(-)
x Estado inicial:
EN(CASA)
x Estado final:
EN(CASA), APROBADO(IA1)
x Acciones:
IR(x,y) ESTUDIAR(x) EXAMINARSE-CON-EXITO(x)
P: EN(x) P: {} P: EN(ETSII), ESTUDIADO(x)
B: EN(x) B: {} B: {}
A: EN(y) A: ESTUDIADO(x) A: APROBADO(x)
u Descartaremos acciones del tipo IR(x,x)
IA-I 2009–2010 CcIa Planificacion 8.38
Ejemplos de planes parciales
x Ejemplo de plan parcial inicial:
INICIO FIN
x Ejemplo de plan parcial:
INICIO FIN
IR(ETSII,CASA) EN(CASA)
E−C−E(IA1) APROBADO(IA1)
IA-I 2009–2010 CcIa Planificacion 8.39
Ejemplo de planes parciales
x Ejemplo de plan parcial final:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
EN(ETSII)
EN(CASA)
IA-I 2009–2010 CcIa Planificacion 8.40
Secuenciaciones de planes parciales solucion
x Secuenciacion de un plan parcial: colocar las acciones una detras deotra, sin contradecir ninguna restriccion de orden que se deduzca delplan parcial
x Punto clave: cualquier secuenciacion de un plan parcial solucion da lugara una secuencia de acciones que partiendo del estado inicial consigue elobjetivo (es decir, una solucion al problema original)
x En el ejemplo, dos posibilidades (ambas soluciones al problema original):
ESTUDIAR(IA1) IR(CASA,ETSII) E−C−E(IA1) IR(ETSII,CASA)
IR(ETSII,CASA)E−C−E(IA1)ESTUDIAR(IA1)IR(CASA,ETSII)
IA-I 2009–2010 CcIa Planificacion 8.41
Planificacion como busqueda en el espacio de planes
x ¿Como disenar un algoritmo para encontrar planes parciales finales?
u Idea: comenzar en el plan inicial y aplicar transformaciones u operadores a los
planes parciales, refinandolos
u Basicamente, estas transformaciones consisten en resolver precondiciones abiertas
o resolver amenazas
x En cada punto habra varias alternativas de refinamiento, y no todasconducen hacia un plan parcial final
x Problema: encontrar la secuencia de pasos de refinamiento que partien-do del plan parcial inicial, llegue a un plan parcial solucion (es decir,sin ciclos, sin amenazas y sin precondiciones abiertas)
u ¡Es una busqueda en espacios de estados!
x Pero ahora los estados son los planes parciales
IA-I 2009–2010 CcIa Planificacion 8.42
Operadores (refinamiento de planes parciales)
x Resolucion de precondiciones abiertas: dada una precondicion abiertap de una accion B del plan, por cada accion A que tiene a p comoefecto, se puede obtener un plan sucesor (refinar) aplicando alguno delos siguientes pasos (siempre que el plan resultante no tenga ciclos)
:
u Establecimiento simple: si la accion A ya aparece en el plan, anadir la restriccion
A ≺ B y el enlace causal Ap→ B
u Accion nueva: si la accion A no aparece ya en el plan, anadir la accion al plan, las
restricciones A ≺ B, INICIO ≺ A y A ≺ FIN, y el enlace causal Ap→ B (es posible
incluso introducir como nueva una accion igual a una que ya estuviera)
x Resolucion de conflictos: dado un conflicto entre el enlace causal Ap→ B
y la accion C, se puede obtener un plan sucesor aplicando alguno de lossiguientes pasos (siempre que el plan resultante no tenga ciclos):
u Anadir la restriccion B ≺ C (promocion)
u O anadir la restriccion C ≺ A (degradacion)
IA-I 2009–2010 CcIa Planificacion 8.43
Planificacion de orden parcial: busqueda
x Es posible plantear un algoritmo de planificacion como una busquedaen el espacio de estados anterior
u Es decir, como busqueda de una secuencia de operadores de refinamiento de planes
que a partir del plan inicial obtiene un plan parcial final
x Motivos para la ramificacion en la busqueda:
u Distintas acciones que resuelven precondiciones abiertas
u Las dos formas de resolver un conflicto (promocion y degradacion)
u Nota: no es necesario considerar un sucesor por cada precondicion abierta del plan,
ni por cada amenaza existente, basta considerarlas en pasos posteriores, siguiendo
un orden dado
x Un algoritmo POP es simplemente un algoritmo que aplica un algoritmode busqueda (en profundidad, por ejemplo) en el espacio de los planesparciales
IA-I 2009–2010 CcIa Planificacion 8.44
Algoritmo POP para el ejemplo de aprobar IA1
x Convenios en la representacion grafica del ejemplo, por claridad en lamisma:
u Algunas restricciones de orden no apareceran, en particular la asociadas a enlaces
causales
u Las precondiciones y efectos no apareceran. En particular, no apareceran las pre-
condiciones abiertas
u Cuando una accion no tenga precondiciones abiertas, esta aparecera sombreada
x Paso 1: plan inicial
INICIO FIN
u Precondiciones abiertas: APROBADO(IA1), EN(CASA); vamos a resolver primero
APROBADO(IA1)
u Una unica posibilidad: accion nueva EXAMINARSE-CON-EXITO(IA1)
IA-I 2009–2010 CcIa Planificacion 8.45
Algoritmo POP para el ejemplo de aprobar IA1
x Paso 2:
INICIO E−C−E(IA1) FINAPROBADO(IA1)
u Resolvemos ahora la precondicion EN(CASA) de FIN
u Dos posibilidades: establecimiento simple con INICIO o accion nueva
IR(ETSII,CASA)
u Consideraremos la primera de ella en primer lugar, intentando la segunda en caso
de fallo
IA-I 2009–2010 CcIa Planificacion 8.46
Algoritmo POP para el ejemplo de aprobar IA1
x Paso 3:
EN(CASA)INICIO FIN
E−C−E(IA1)
APROBADO(IA1)
u Resolvemos ahora la precondicion EN(ETSII) de EXAMINRSE-CON-EXITO(IA1)
u Solo una posibilidad: accion nueva IR(CASA,ETSII)
IA-I 2009–2010 CcIa Planificacion 8.47
Algoritmo POP para el ejemplo de aprobar IA1
x Paso 4:
IR(CASA,ETSII)
INICIO FIN
E−C−E(IA1)
APROBADO(IA1)
EN(ETSII)
EN(CASA)
u Aparece una amenaza: de IR(CASA,ETSII) sobre el enlace causal entre INICIO y
FIN
u Intentamos resolver la amenaza por promocion o por degradacion
IA-I 2009–2010 CcIa Planificacion 8.48
Algoritmo POP para el ejemplo de aprobar IA1
x Pero en ambos casos, se crearıa un ciclo:
u Promocion:
IR(CASA,ETSII)
INICIO FIN
E−C−E(IA1)
APROBADO(IA1)
EN(ETSII)
EN(CASA)
u Degradacion:
IR(CASA,ETSII)
INICIO FIN
E−C−E(IA1)
APROBADO(IA1)
EN(ETSII)
EN(CASA)
IA-I 2009–2010 CcIa Planificacion 8.49
Algoritmo POP para el ejemplo de aprobar IA1
x Por tanto, hay FALLO y hemos de retroceder al anterior punto de ra-mificacion, que estaba en el paso 2
u Y elegir la otra alternativa: accion nueva IR(ETSII,CASA) para resolver la precon-
dicion EN(CASA) de FIN
x Paso 5:
INICIO FIN
IR(ETSII,CASA) EN(CASA)
E−C−E(IA1) APROBADO(IA1)
x Elegimos ahora la precondicion ESTUDIADO(IA1) de EXAMINARSE-CON-EXITO(IA1)
u La unica posibilidad para resolverla es accion nueva ESTUDIAR(IA1)IA-I 2009–2010 CcIa Planificacion 8.50
Algoritmo POP para el ejemplo de aprobar IA1
x Paso 6:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
ESTUDIADO(IA1)
x Elegimos ahora la precondicion EN(ETSII) de EXAMINARSE-CON-EXITO(IA1)
u La unica posibilidad para resolverla es accion nueva IR(CASA,ETSII)
IA-I 2009–2010 CcIa Planificacion 8.51
Algoritmo POP para el ejemplo de aprobar IA1
x Paso 7:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII) EN(ETSII)
ESTUDIADO(IA1)
u Ahora existen amenazas : por ejemplo, de IR(ETSII,CASA) sobre el enlace causal
entre IR(CASA,ETSII) y EXAMINARSE-CON-EXITO(IA1)
u Intentamos resolver esa amenaza por degradacion; si no diera resultado, intentamos
promocion
IA-I 2009–2010 CcIa Planificacion 8.52
Algoritmo POP para el ejemplo de aprobar IA1
x Paso 8 (degradacion):
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII) EN(ETSII)
ESTUDIADO(IA1)
u Otra amenaza: de IR(CASA,ETSII) sobre el enlace causal entre IR(ETSII,CASA)
y FIN
u Intentamos resolver la amenaza por promocion o por degradacion
IA-I 2009–2010 CcIa Planificacion 8.53
Algoritmo POP para el ejemplo de aprobar IA1
x Pero en ambos casos, se crearıa un ciclo:
u Promocion:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII) EN(ETSII)
ESTUDIADO(IA1)
u Degradacion:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII) EN(ETSII)
ESTUDIADO(IA1)
IA-I 2009–2010 CcIa Planificacion 8.54
Algoritmo POP para el ejemplo de aprobar IA1
x Por tanto, hay FALLO
u Hemos de retroceder al anterior punto de ramificacion (paso 7), y elegir la otra
alternativa: resolver la amenaza de IR(ETSII,CASA) sobre el enlace causal entre
IR(CASA,ETSII) y EXAMINARSE-CON-EXITO(IA1), mediante promocion
x Paso 9:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
IA-I 2009–2010 CcIa Planificacion 8.55
Algoritmo POP para el ejemplo de aprobar IA1
x Elegimos ahora la precondicion EN(ETSII) de IR(ETSII,CASA)
u Dos alternativas: establecimiento simple con IR(CASA,ETSII) o accion nueva con
IR(CASA,ETSII).
u Elegimos la primera, reconsiderandolo si fuera necesario
x Paso 10:
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
EN(ETSII)
IA-I 2009–2010 CcIa Planificacion 8.56
Algoritmo POP para el ejemplo de aprobar IA1
x Elegimos la precondicion EN(CASA) de IR(CASA,ETSII)
u Tres alternativas: establecimiento simple con INICIO, establecimiento simple con
IR(ETSII,CASA) o accion nueva con IR(ETSII,CASA).
u Elegimos la primera, reconsiderandolo si fuera necesario
x Paso 11 (Plan parcial final):
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
EN(ETSII)
EN(CASA)
IA-I 2009–2010 CcIa Planificacion 8.57
Algoritmo POP para el ejemplo de aprobar IA1
x Finalmente, secuenciamos:
ESTUDIAR(IA1) IR(CASA,ETSII) E−C−E(IA1) IR(ETSII,CASA)
IR(ETSII,CASA)E−C−E(IA1)ESTUDIAR(IA1)IR(CASA,ETSII)
IA-I 2009–2010 CcIa Planificacion 8.58
Algoritmo POP (version recursiva)
FUNCION POP(COTA)
1. Hacer POP-REC(PLAN-INICIAL(*ESTADO-INICIAL*,*OBJETIVOS*),COTA)
FUNCION POP-REC(PLAN,COTA)
1. Si PLAN es final, devolver SECUENCIACION(PLAN) y terminar.
2. Si existe en PLAN una amenaza de la accion C sobre A --p-->B, entonces
2.1 Sean PLANPR obtenido de PLAN mediante promocion en la amenaza anterior
2.2 Si PLANPR tiene ciclos, sea RESULTADO igual a FALLO;
en caso contrario, sea RESULTADO igual a POP-REC(PLANPR,COTA).
2.3 Si RESULTADO no es FALLO, devolver RESULTADO y terminar; en otro caso:
2.3.1 Sea PLANDEG obtenido de PLAN mediante degradacion en la amenaza anterior
2.3.2 Si PLANDEG tiene ciclos, sea RESULTADO igual a FALLO;
en caso contrario, sea RESULTADO igual a POP-REC(PLANDEG,COTA).
2.3.3 Devolver RESULTADO y terminar.
3. Sea P una precondicion abierta en PLAN
4. Para cada accion (nueva o ya existente) que tiene a P como efecto, hacer:
4.1 Hacer PLANEXT el resultado de cerrar la precondicion P en PLAN mediante un enlace
causal (si fueran accion nueva, a~nadir tambien la accion al PLAN)
4.2 Si PLANEXT no tiene ciclos y un numero de acciones menor o igual que COTA, entonces:
5.2.1 Sea RESULTADO igual POP-REC(PLANEXT,COTA)
5.2.2 Si RESULTADO no es FALLO, devolver RESULTADO y terminar
5. Devolver FALLO (* aquı solo se llegarıa si la precondicion abierta no
se puede resolver con exito mediante ninguna accion *)
IA-I 2009–2010 CcIa Planificacion 8.59
POP como busqueda
x Arbol de busqueda:
u Nodos: planes parciales
u Ramificacion por la eleccion de acciones que resuelven precondiciones abiertas
u Ramificacion por las distintas maneras de resolver las amenazas
x No es necesario considerar un sucesor por cada precondicion abiertadel plan, ni por cada amenaza existente, basta considerarlas en pasosposteriores, siguiendo un orden dado
u Aunque el orden en el que se vayan considerando puede influir en la eficiencia de
la busqueda
x La busqueda en profundidad podrıa entrar en una rama infinita
u Por eso hacemos busqueda acotada (por un numero maximo de acciones en el plan)
IA-I 2009–2010 CcIa Planificacion 8.60
Busqueda POP para el ejemplo de aprobar IA1
1
23
4
FALLO
5
6
7
8
FALLO
9
10
11
SOLUCION
INICIO FIN
INICIO E−C−E(IA1) FINAPROBADO(IA1)
EN(CASA)INICIO FIN
E−C−E(IA1)
APROBADO(IA1)
IR(CASA,ETSII)
INICIO FIN
E−C−E(IA1)
APROBADO(IA1)
EN(ETSII)
EN(CASA)
INICIO FIN
IR(ETSII,CASA) EN(CASA)
E−C−E(IA1) APROBADO(IA1)
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
ESTUDIADO(IA1)
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII) EN(ETSII)
ESTUDIADO(IA1)
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII) EN(ETSII)
ESTUDIADO(IA1)
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
EN(ETSII)
IR(ETSII,CASA)
INICIO FIN
APROBADO(IA1)
E−C−E(IA1)
EN(CASA)
ESTUDIAR(IA1)
IR(CASA,ETSII)
ESTUDIADO(IA1)
EN(ETSII)
EN(ETSII)
EN(CASA)
IA-I 2009–2010 CcIa Planificacion 8.61
POP: algunas consideraciones
x Por simplificar, no hemos tenido en cuenta las complicaciones quepodrıan surgir con las variables de los operadores:
u Uso de unificacion
u Algunas variables podrıan quedar sin instanciar (principio de mınimo compromiso)
u Restricciones de desigualdad
x Uso de heurısticas en POPu Difıcil estimar la “cercanıa” de un plan parcial a una solucion
x Heurıstica para seleccionar la precondicion a resolver: heurıstica masrestrictiva
u Seleccionar la condicion que puede ser resuelta por el menor numero de acciones
IA-I 2009–2010 CcIa Planificacion 8.62
Ampliacion del tema
x Existen muchas otras tecnicas de planificacion:
u GRAPHPLAN
u SATPLAN
u ...
x Otras cuestiones que aquı no vemos:
u Planificacion con recursos limitados
u Planificacion mediante descomposicion jerarquica
u Planificacion en entornos con incertidumbre
u Ejecucion del plan: vigilancia y replanificacion
u Planificacion continua
u Planificacion multiagente
IA-I 2009–2010 CcIa Planificacion 8.63
Anomalıa de Sussman en POP
x Para finalizar, veremos como la planificacion de orden parcial resuelvela anomalıa de Sussman
u Nota importante: por simplificar la presentacion, en cada momento escogeremos los
operadores de refinamiento adecuados
u Es decir, nuestra “busqueda” no tendra fallos, aunque en la practica esto es irreal
u Tambien por simplificar, a veces se aplicaran varios pasos de una vez
IA-I 2009–2010 CcIa Planificacion 8.64
Anomalıa de Sussman en POP
x Plan inicial:
INICIO FIN
x Resolver la precondicion sobre(A,B) de FIN mediante la accion nuevaAPILAR(A,B) (es la unica opcion):
INICIO FINAPILAR(A,B)sobre(A,B)
IA-I 2009–2010 CcIa Planificacion 8.65
Anomalıa de Sussman en POP
x Resolver la precondicion sobre(B,C) de FIN mediante la accion nuevaAPILAR(B,C) (es la unica opcion):
FINAPILAR(A,B)sobre(A,B)
INICIO
APILAR(B,C)
sobre(B,C)
IA-I 2009–2010 CcIa Planificacion 8.66
Anomalıa de Sussman en POP
x Resolver la precondicion agarrado(B) de APILAR(B,C) mediante laaccion nueva AGARRAR(B)
u Tambien se podrıa usar DESAPILAR, opcion que habrıa que considerar si la elec-
cion realizada fallara (busqueda)
APILAR(A,B)sobre(A,B)
INICIO
APILAR(B,C)
sobre(B,C)
AGARRAR(B) agarrado(B)
FIN
IA-I 2009–2010 CcIa Planificacion 8.67
Anomalıa de Sussman en POP
x Resolver la precondicion agarrado(A) de APILAR(A,B) mediante laaccion nueva AGARRAR(A)
u Como en el caso anterior, tambien se podrıa usar DESAPILAR (explorar mediante
busqueda)
APILAR(B,C)AGARRAR(B) agarrado(B)
FIN
sobre(B,C)
sobre(A,B)APILAR(A,B)
INICIO
AGARRAR(A)agarrado(A)
IA-I 2009–2010 CcIa Planificacion 8.68
Anomalıa de Sussman en POP
x Resolver la precondicion despejado(A) de AGARRAR(A) mediante laaccion nueva desapilar(C,A):
APILAR(B,C)AGARRAR(B) agarrado(B)
FIN
sobre(B,C)
sobre(A,B)APILAR(A,B)AGARRAR(A)
agarrado(A)
INICIO
DESAPILAR(C,A)
despejado(A)
IA-I 2009–2010 CcIa Planificacion 8.69
Anomalıa de Sussman en POP
x Resolver la precondicion brazolibre de AGARRAR(B) mediante la ac-cion nueva bajar(C) (existen mas opciones):
FINsobre(A,B)
APILAR(A,B)AGARRAR(A)agarrado(A)
INICIO
DESAPILAR(C,A)
despejado(A)
AGARRAR(B)agarrado(B)
APILAR(B,C)
sobre(B,C)
BAJAR(C)brazolibre
IA-I 2009–2010 CcIa Planificacion 8.70
Anomalıa de Sussman en POP
x Usar la accion INICIO para, mediante establecimiento simple, resolvertodas las precondiciones de DESAPILAR(C,A) (existen otras opciones):
u El enlace causal entre INICIO y DESAPILAR(C,A) que asegura despejado(C),
se ve amenazado por APILAR(B,C): resolver mediante promocion (unica opcion),
colocando la restriccion de que APILAR(B,C) debe ir tras DESAPILAR(C,A)
����������������������������������������������������������������
����������������������������������������������������������������
��������������������������������������������������������������������������������
��������������������������������������������������������������������������������
����������������������������������������������������������������
����������������������������������������������������������������
FINsobre(A,B)
APILAR(A,B)AGARRAR(A)agarrado(A)
despejado(A)
AGARRAR(B)agarrado(B)
APILAR(B,C)
sobre(B,C)
BAJAR(C)brazolibre
INICIO
despejado(C)sobre(C,A)brazolibre
DESAPILAR(C,A)
IA-I 2009–2010 CcIa Planificacion 8.71
Anomalıa de Sussman en POP
x Usar la accion INICIO para, mediante establecimiento simple, resolverlas restantes precondiciones de AGARRAR(B); igualmente medianteestablecimiento simple, usar DESAPILAR(C,A) para resolver la pre-condicion agarrado(C) de BAJAR(C)
u El enlace causal entre BAJAR(C) y AGARRAR(B) que asegura brazolibre, se ve
amenazado por AGARRAR(A): resolver mediante promocion, colocando la restric-
cion de que AGARRAR(A) debe ir tras AGARRAR(B)
u De esta manera, tambien se resuelve la amenaza de APILAR(A,B) al enlace causal
entre INICIO y AGARRAR(B), ya que la anterior restriccion implica que API-
LAR(A,B) ocurre despues de AGARRAR(B)
IA-I 2009–2010 CcIa Planificacion 8.72
Anomalıa de Sussman en POP
FINsobre(A,B)
APILAR(A,B)AGARRAR(A)agarrado(A)
despejado(A)
AGARRAR(B) APILAR(B,C)
sobre(B,C)
BAJAR(C)brazolibre
INICIO
despejado(C)sobre(C,A)brazolibre
DESAPILAR(C,A)
agarrado(C)
sobrelamesa(B)despejado(B)
agarrado(B)
IA-I 2009–2010 CcIa Planificacion 8.73
Anomalıa de Sussman en POP
x Las restantes condiciones abiertas se pueden resolver mediante estable-cimiento simple, como indica la figura
FINsobre(A,B)
APILAR(A,B)AGARRAR(A)agarrado(A)
despejado(A)
AGARRAR(B) APILAR(B,C)
sobre(B,C)
BAJAR(C)brazolibre
INICIO
despejado(C)sobre(C,A)brazolibre
DESAPILAR(C,A)
agarrado(C)
sobrelamesa(B)despejado(B)
agarrado(B)
despejado(C)
despejado(B)
sobrelamesa(A)
brazolibre
IA-I 2009–2010 CcIa Planificacion 8.74
Anomalıa de Sussman en POP
x El plan parcial resultante es una solucion: no tiene conflictos, no tieneciclos y no hay precondiciones abiertas
x Secuenciacion del plan:
B
A C A CB
CB
A
BCA
DESAPILAR(C,A) BAJAR(C) AGARRAR(B) APILAR(B,C) AGARRAR(A) APILAR(A,B)
B A
C
A CB CBA
x Notese que se intercalan los pasos necesarios para solucionar los dosobjetivos originales
IA-I 2009–2010 CcIa Planificacion 8.75
Bibliografıa
x Russell, S. y Norvig, P. Artificial Intelligence (A Modern Approach)(Prentice–Hall, 2000). Second Edition
u Cap. 11: “Planning”.
x Borrajo, D., Juristo, N., Martınez, V. y Pazos, J. Inteligencia Artificial:metodos y tecnicas.1993.
x Rich, E. y Knight, K. Inteligencia Artificial (segunda edicion).1996.
x Nilsson, N. Principios de Inteligencia Artificial. 1987.
x Escolano, F. et al. Inteligencia Artificial: modelos, tecnicas y areas deaplicacion (Ed. Thomson, 2000)
IA-I 2009–2010 CcIa Planificacion 8.76