72
Inteligencia Artificial I Curso 2003–2004 Tema 8: Planificaci´on (I) Jos´ e A. Alonso Jim´ enez Francisco J. Mart´ ın Mateos Jos´ e L. Ruiz Reina Dpto. de Ciencias de la Computaci´on e Inteligencia Artificial Universidad de Sevilla IA-I 2003–2004 C c I a Planificaci´on(I) 8.1

New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Inteligencia Artificial I Curso 2003–2004

Tema 8: Planificacion (I)

Jose A. Alonso Jimenez

Francisco J. Martın Mateos

Jose L. Ruiz Reina

Dpto. de Ciencias de la Computacion e Inteligencia Artificial

Universidad de Sevilla

IA-I 2003–2004 CcIa Planificacion (I) 8.1

Page 2: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.2

Page 3: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.3

Page 4: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.4

Page 5: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.5

Page 6: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.6

Page 7: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.7

Page 8: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.8

Page 9: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.9

Page 10: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.10

Page 11: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.11

Page 12: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.12

Page 13: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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(B,A) 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 2003–2004 CcIa Planificacion (I) 8.13

Page 14: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.14

Page 15: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de aplicacion de operador (I)

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 2003–2004 CcIa Planificacion (I) 8.15

Page 16: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.16

Page 17: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.17

Page 18: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.18

Page 19: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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):

LIBRE(1,1),LIBRE(2,1),LIBRE(6,1),LIBRE(7,1),...,LIBRE(12,12)

x Objetivo: ROBOT-EN(10,11)

x Aciones (solo uno, los siete restantes son analogos):

MOVER-SO(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 2003–2004 CcIa Planificacion (I) 8.19

Page 20: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.20

Page 21: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.21

Page 22: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.22

Page 23: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.23

Page 24: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.24

Page 25: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Busqueda de planes hacia atras

x Busqueda hacia atras:

u Comienzo en un estado objetivo

u En cada estado se generan todos los posibles predecesores

u Finalizar cuando se alcanza el estado inicial.

x Predecesor de un estado E:u mediante operador O y sustitucion θ

u es cualquier estado E ′ cuyo sucesor al aplicar O y θ es E.

x Ventajas:

u Generalmente mas eficiente: menos ramificacion

u Posibilidad de aplicar heurısticas independientes del dominio (proximidad al estado

inicial)

IA-I 2003–2004 CcIa Planificacion (I) 8.25

Page 26: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.26

Page 27: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Calculo de predecesores

x Algoritmo para generar predecesores:

FUNCION PREDECESORES-ATRAS(E’)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 E’ esta en THETA(ADICION(O)), yE’ no tiene elementos de THETA(BORRADO(O)), hacer:2.1.1 E igual E’ + THETA(PRECONDICION(O)) - THETA(ADICION(O))2.1.2 A~nadir E a PREDECESORES

3. Devolver PREDECESORESx Ejemplo:

E’ = {DESPEJADO(B), DESPEJADO(A), DESPEJADO(D), SOBRE(B,A), 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 2003–2004 CcIa Planificacion (I) 8.27

Page 28: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

El algoritmo de planificacion STRIPS

x Primer algoritmo especıfico de planificacion

u Stanford Research Institute Problem Solver

u Disenado en los anos 70 para controlar el robot Shakey

u El formalismo que se uso para representar estados, objetivos, y acciones tuvo un

fuerte impacto en desarrollos posteriores

u Sin embargo, el algoritmo ha quedado desfasado respecto de las tecnicas usadas hoy

en dıa

x Planificacion lineal y hacia atras

u Hacia atras: pila de objetivos por conseguir

u Lineal: La busqueda se realiza sobre secuencias de acciones conectadas con el obje-

tivo

u El estudio del algoritmo STRIPS nos servira para discutir las ventajas e inconve-

nientes de este tipo de planificacion lineal y hacia atras

IA-I 2003–2004 CcIa Planificacion (I) 8.28

Page 29: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Planificacion con pila de objetivos

x La idea en el planificador STRIPS es que en cada momento se mantiene:

u Una pila con objetivos y con operadores.

u Un estado actual.

x Pila de objetivos y operadores:

u Objetivos a alcanzar.

u Operadores: Acciones a aplicar.

x Procedimiento:u Inicialmente, se coloca en la pila el objetivo a conseguir.

u Los operadores se colocan en la pila para conseguir objetivos.

u Las precondiciones de los operadores son nuevos objetivos.

u Si un objetivo en la cima de la pila se verifica, se desapila

u Si hay un operador en la cima de la pila se aplica al estado actual

u Si la pila se vacıa, el objetivo se ha conseguido.

IA-I 2003–2004 CcIa Planificacion (I) 8.29

Page 30: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x El problema:

A

B C B

C

AEstado inicial Estado final

IA-I 2003–2004 CcIa Planificacion (I) 8.30

Page 31: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x Estados:

Estado inicial = { SOBRELAMESA(B), SOBRELAMESA(C).DESPEJADO(A), DESPEJADO(C), BRAZOLIBRE, SOBRE(A,B) }

Estado final = { SOBRELAMESA(B), SOBRELAMESA(A).DESPEJADO(A), DESPEJADO(C), BRAZOLIBRE, SOBRE(C,B) }

Llamaremos R a lo que tienen en comun ambos estados:R = {SOBRELAMESA(B), BRAZOLIBRE, DESPEJADO(A), DESPEJADO(C)}

x En cada momento, mantenemos una pila de objetivos y operadores yun estado actual.

IA-I 2003–2004 CcIa Planificacion (I) 8.31

Page 32: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x Estado actual:

Inicialmente, el estado:

A

B CEstado actual

x Pila actual:Inicialmente, la conjuncion de los literales del estado final:

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.32

Page 33: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x En la cima de la pila hay una conjuncion de objetivos:

u Comprobar si la cima de la pila es cierta en el estado actual.

u Nuevo objetivo: satisfacer los literales que no sean ciertos.

x Hay que satisfacer dos literales: se apilan.

x Dos posibilidades, dependiendo del orden:

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

SOBRELAMESA(A)

SOBRE(C,B)

SOBRE(C,B), SOBRELAMESA(A), R

x Optamos por la primera, pudiendo reconsiderar mas tarde la segunda.

x Pila actual:

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.33

Page 34: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x En la cima de la pila hay un solo objetivo:

u Comprobar si es cierto en el estado actual.

u Si no, buscar operadores que lo tengan en su lista de adicion y tratar de aplicarlos.

x Buscando operadores:

El unico operador que a~nade algo de la forma SOBRE(x,y)es APILAR(x,y):

P: DESPEJADO(y), AGARRADO(x)B: DESPEJADO(y), AGARRADO(x)A: BRAZOLIBRE, SOBRE(x,y), DESPEJADO(x)

(con sustitucion [x=C,y=B])

x Apilamos el operador, obteniendo la siguiente pila actual:

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.34

Page 35: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x El operador ha de poderse aplicar:

u Apilamos sus precondiciones, y seran el nuevo objetivo a satisfacer.

x Pila actual:

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x El objetivo de la cima de la pila no es cierto en el estado actual.

x Apilamos, en un determinado orden, los literales que necesitamos sat-isfacer.

IA-I 2003–2004 CcIa Planificacion (I) 8.35

Page 36: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x Dos posibilidades:

DESPEJADO(B)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

AGARRADO(C)

DESPEJADO(B)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRELAMESA(A)

SOBRE(C,B)

SOBRE(C,B), SOBRELAMESA(A), R

x Optamos por la primera, pudiendo reconsiderar mas tarde la segunda.

IA-I 2003–2004 CcIa Planificacion (I) 8.36

Page 37: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x Pila actual:

DESPEJADO(B)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x El literal de la cima de la pila no es cierto en el estado actual.

x Debemos buscar un operador que lo tenga en su lista de adicion.

x Buscando operadores:

Operadores que a~naden DESPEJADO(..):DESAPILAR(x, y) (con sustitucion [y=B]),BAJAR(x), (con sustitucion [x=B]),APILAR(x,y), (con sustitucion [x=B]).

IA-I 2003–2004 CcIa Planificacion (I) 8.37

Page 38: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x Problema: Variables que pueden ser sustituidas por cualquier bloque.

u Por ejemplo, DESAPILAR(x,y) se puede instanciar de tres maneras diferentes.

x Posibilidades (entre otras):

DESAPILAR(A,B)DESPEJADO(B)AGARRADO(C)

DESPEJADO(B),AGARRADO(C)APILAR(C,B)

SOBRE(C,B)SOBRELAMESA(A)

SOBRE(C,B),SOBRELAMESA(A),R

DESAPILAR(B,B)DESPEJADO(B)AGARRADO(C)

DESPEJADO(B),AGARRADO(C)APILAR(C,B)SOBRELAMESA(A)SOBRE(C,B)

SOBRE(C,B),SOBRELAMESA(A),R

DESAPILAR(C,B)DESPEJADO(B)AGARRADO(C)

DESPEJADO(B),AGARRADO(C)APILAR(C,B)SOBRELAMESA(A)SOBRE(C,B)

SOBRE(C,B),SOBRELAMESA(A),R

x Optamos por la primera posibilidad ([x=A,y=B], reconsiderable).

IA-I 2003–2004 CcIa Planificacion (I) 8.38

Page 39: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo planificacion STRIPS

x Pila actual (apilando tambien sus precondiciones):

SOBRE(A,B), DESPEJADO(A), BRAZOLIBRE

DESAPILAR(A,B)

DESPEJADO(B)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.39

Page 40: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Como el objetivo de la cima es cierto en el estado actual, se desapila.

x Pila actual:

DESAPILAR(A,B)

DESPEJADO(B)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.40

Page 41: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Operador en la cima de la pila: se puede aplicar.

x Nuevo estado actual:

A

Estado actual

B C

u Notese como el apilar todas las precondiciones del operador sobre el mismo operador

actua como un mecanismo que asegura que la aplicacion del operador es correcta

en el estado actual

IA-I 2003–2004 CcIa Planificacion (I) 8.41

Page 42: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Pila actual:

DESPEJADO(B)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.42

Page 43: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x El objetivo de la cima de la pila es cierto ahora en el estado actual: lodesapilamos.

x Pila actual:

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.43

Page 44: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Buscando operadores:

Los operadores que a~naden AGARRADO(x) son:AGARRAR(x)

P: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBREB: DESPEJADO(x), SOBRELAMESA(x), BRAZOLIBREA: AGARRADO(x)

(con sustituticion [x=C])

DESAPILAR(x,y)P: SOBRE(x,y), DESPEJADO(x), BRAZOLIBREB: SOBRE(x,y), DESPEJADO(x), BRAZOLIBREA: AGARRADO(x), DESPEJADO(y)

(con sustitucion [x=C], y tres posibilidadespara la y)

IA-I 2003–2004 CcIa Planificacion (I) 8.44

Page 45: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x De las cuatro opciones posibles escogemos la primera (reconsiderable).

x Pila actual (con las precondiciones):

DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE

AGARRAR(C)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x El objetivo de la cima no es cierto, ya que el brazo no esta libre.

IA-I 2003–2004 CcIa Planificacion (I) 8.45

Page 46: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Pila actual:

BRAZOLIBRE

DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE

AGARRAR(C)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.46

Page 47: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Buscando operadores:

Los operadores que dejan el brazo libre son:BAJAR(x)

P: AGARRADO(x)B: AGARRADO(x)A: SOBRELAMESA(x), BRAZOLIBRE, DESPEJADO(x)

con cualquier sustitucion.APILAR(x,y)

P: DESPEJADO(y), AGARRADO(x)B: DESPEJADO(y), AGARRADO(x)A: BRAZOLIBRE, SOBRE(x,y), DESPEJADO(x)

con cualquier sustitucion.

IA-I 2003–2004 CcIa Planificacion (I) 8.47

Page 48: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Escogemos BAJAR(A) (heurıstica).

x Pila actual (con las precondiciones):

AGARRADO(A)

BAJAR(A)

BRAZOLIBRE

DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE

AGARRAR(C)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.48

Page 49: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Objetivo de la cima de la pila cierto, desapilamos:

BAJAR(A)

BRAZOLIBRE

DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE

AGARRAR(C)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x Operador en la cima de la pila: se puede aplicar.

IA-I 2003–2004 CcIa Planificacion (I) 8.49

Page 50: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Nuevo estado actual:

AB CEstado actual

IA-I 2003–2004 CcIa Planificacion (I) 8.50

Page 51: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Pila actual (desapilamos el operador):

BRAZOLIBRE

DESPEJADO(C), SOBRELAMESA(C), BRAZOLIBRE

AGARRAR(C)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x Pila actual (desapilamos dos veces al ser ciertos los objetivos de la cima):

AGARRAR(C)

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.51

Page 52: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Operador en la cima de la pila: se aplica y desapila.

x Estado actual:

A

C

BEstado actual

IA-I 2003–2004 CcIa Planificacion (I) 8.52

Page 53: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Pila actual:

AGARRADO(C)

DESPEJADO(B), AGARRADO(C)

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

IA-I 2003–2004 CcIa Planificacion (I) 8.53

Page 54: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Pila actual (desapilamos dos veces al ser ciertos los objetivos de la cima):

x Pila actual:

APILAR(C,B)

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x Operador en la cima de la pila: se puede aplicar y desapilar.

IA-I 2003–2004 CcIa Planificacion (I) 8.54

Page 55: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Estado actual:

A

C

BEstado actual

IA-I 2003–2004 CcIa Planificacion (I) 8.55

Page 56: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo de planificacion STRIPS

x Pila actual:

SOBRE(C,B)

SOBRELAMESA(A)

SOBRE(C,B), SOBRELAMESA(A), R

x Se desapilan sucesivamente los objetivos, por ser ciertos en el estadoactual.

x En particular, es cierto el ultimo objetivo, porque se ha llegado al estadofinal buscado

x La pila queda vacıa y acaba la busqueda.

x Plan encontrado: DESAPILAR(A,B), BAJAR(A), AGARRAR(C), APILAR(A,B)

IA-I 2003–2004 CcIa Planificacion (I) 8.56

Page 57: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Pseudocodigo del algoritmo STRIPS

FUNCION STRIPS(ESTADO-INICIAL,OBJETIVOS)1. Hacer E igual a ESTADO-INICIAL

Hacer PILA la pila que tiene como unico elemento OBJETIVOS2. Repetir hasta que PILA se vacıe:

2.1 Sea C igual CIMA(PILA)2.2 Si C es una conjuncion de literales:

2.2.1 Si C se satisface en E, desapilar PILA2.2.2 Si C no se satisface en E, apilar, *escogiendo* un orden no intentado

anteriormente, los literales que forman E2.2.3 Si ya se han intentado todos las posibles maneras de ordenar los

literales devolver FALLO2.3 Si C es un literal:

2.3.1 Si C se satisface en E, despilar PILA2.3.2 Si C no se satisface en E, *escoger* un operador y una instancia del

mismo, de manera que el literal este en su lista de adicion yapilarlo en PILA. Apilar tambien la lista de sus precondiciones.

2.3.3 Si no existe tal operador, o ya se ha intentado con todoslos posibles, devolver FALLO.

2.4 Si C es un operador, hacer E igual a la aplicacion de C a E.

3. Devolver la lista de operadores aplicados.

IA-I 2003–2004 CcIa Planificacion (I) 8.57

Page 58: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

El algoritmo STRIPS: observaciones

x Cada una de las elecciones se puede reconsiderar.

u El pseudocodigo anterior es una version no determinista del algoritmo

x Arbol de busqueda:

u Nodos: pilas de objetivos.

u Ramificacion por orden de intentar satisfacer los literales.

u Ramificacion por los diversos operadores que se intentan aplicar.

u Ramificacion por las distintas instanciaciones de un operador.

x Mecanismo de seguridad:

u Comprobar que es cierta la conjuncion de literales despues de conseguir satisfacer

cada literal individualmente.

u Los operadores podrıan deshacer la accion de otros.

IA-I 2003–2004 CcIa Planificacion (I) 8.58

Page 59: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Deficiencias de STRIPS

x La anomalıa de Sussman:

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) }Estado final = { ...., SOBRE(A,B), SOBRE(B,C) }

x Pila actual:

SOBRE(A,B), SOBRE(B,C), ...

IA-I 2003–2004 CcIa Planificacion (I) 8.59

Page 60: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Dos posibilidades:

SOBRE(A,B)

SOBRE(B,C)

· · ·SOBRE(A,B), SOBRE(B,C), ...

SOBRE(B,C)

SOBRE(A,B)

· · ·SOBRE(A,B), SOBRE(B,C), ...

x Optamos por la primera:

SOBRE(A,B)

SOBRE(B,C)

· · ·SOBRE(A,B), SOBRE(B,C), ...

IA-I 2003–2004 CcIa Planificacion (I) 8.60

Page 61: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Intentando satisfacer SOBRE(A,B), la pila queda:

SOBRE(C,A), DESPEJADO(C), BRAZOLIBRE

DESAPILAR(C,A)

DESPEJADO(A)

BRAZOLIBRE

DESPEJADO(A), BRAZOLIBRE

AGARRAR(A)

AGARRADO(A)

DESPEJADO(B), AGARRADO(A)

APILAR(A,B)

SOBRE(A,B)

SOBRE(B,C)

· · ·SOBRE(A,B), SOBRE(B,C), ...

IA-I 2003–2004 CcIa Planificacion (I) 8.61

Page 62: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

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

x Pila actual (queda por satisfacer SOBRE(B,C)):

SOBRE(B,C)

· · ·SOBRE(A,B), SOBRE(B,C), ...

IA-I 2003–2004 CcIa Planificacion (I) 8.62

Page 63: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Intentando satisfacer SOBRE(B,C), la pila queda:

SOBRE(A,B), DESPEJADO(A), BRAZOLIBRE

DESAPILAR(A,B)

DESPEJADO(B)

BRAZOLIBRE

DESPEJADO(B), BRAZOLIBRE

AGARRAR(B)

AGARRADO(B)

DESPEJADO(C), AGARRADO(B)

APILAR(B,C)

SOBRE(B,C)

· · ·SOBRE(A,B), SOBRE(B,C), ...

x Un plan para satisfacer SOBRE(B,C):

5. DESAPILAR(A,B) 6. BAJAR(A) 7. AGARRAR(B) 8. APILAR(B,C)

IA-I 2003–2004 CcIa Planificacion (I) 8.63

Page 64: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Estado intermedio:

Estado actual

C

B

A

x Pila actual (queda sin satisfacer SOBRE(A,B)):

SOBRE(A,B), SOBRE(B,C), ...

x Problema: SOBRE(A,B) ha dejado de ser cierto.

u Al satisfacer SOBRE(B,C) se ha deshecho.IA-I 2003–2004 CcIa Planificacion (I) 8.64

Page 65: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Tomando la otra alternativa (correspondiente a un orden distinto desatisfacer los literales) ocurrirıa algo analogo.

x Estado intermedio (para satisfacer SOBRE(B,C)):

Estado actual

A

B

C

IA-I 2003–2004 CcIa Planificacion (I) 8.65

Page 66: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Estado intermedio (para satisfacer SOBRE(A,B)):

A

B CEstado actual

x Se ha desecho SOBRE(B,C) para conseguir SOBRE(A,B).

IA-I 2003–2004 CcIa Planificacion (I) 8.66

Page 67: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Ejemplo: anomalıa de Sussman

x Plan generado en la segunda alternativa:

1. AGARRAR(B) 2. APILAR(B,C)-----------------3. DESAPILAR(B,C) 4. BAJAR(B) 5. DESAPILAR(C,A)6. BAJAR(C) 7. AGARRAR(A) 8. APILAR(A,B)

x Pila actual (queda sin satisfacer SOBRE(A,B)):

SOBRE(A,B), SOBRE(B,C), ...

x Por tanto, en cualquiera de los dos casos, el algoritmo STRIPS fallarıaen la busqueda de una solucion.

x Una posible ¿ solucion ?

u Reconsiderar objetivos ya satisfechos con anterioridad.

IA-I 2003–2004 CcIa Planificacion (I) 8.67

Page 68: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Reconsiderando objetivos

x Continuamos con la primera alternativa.

x Volvemos a apilar SOBRE(A,B) para intentar resatisfacerlo:

SOBRE(A,B)

SOBRE(A,B), SOBRE(B,C), ...

x Intentando satisfacer SOBRE(A,B), la pila queda:

DESPEJADO(A), BRAZOLIBRE

AGARRAR(A)

AGARRADO(A)

DESPEJADO(B), AGARRADO(A)

APILAR(A,B)

SOBRE(A,B)

SOBRE(A,B), SOBRE(B,C), ...

IA-I 2003–2004 CcIa Planificacion (I) 8.68

Page 69: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Reconsiderando objetivos

x Finalmente se llegarıa al plan:

DESAPILAR(C,A), BAJAR(C), AGARRAR(A), APILAR(A,B)DESAPILAR(A,B), BAJAR(A), AGARRAR(B), APILAR(B,C)AGARRAR(A), APILAR(A,B)

IA-I 2003–2004 CcIa Planificacion (I) 8.69

Page 70: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

Problemas con la planificacion lineal

x Problema: plan no optimo.

x Causa del problema:

u El planificador intenta resolver un objetivo cada vez.

u Planificacion lineal.

u En ciertos casos, hay interaccion entre objetivos, deshaciendose unos a otros.

IA-I 2003–2004 CcIa Planificacion (I) 8.70

Page 71: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 No determinar completamente el orden secuencial de las acciones, a noser que sea estrıctamente necesario (mınimo compromiso)

x Idea:

u sustituir la busquea en el espacio de situaciones por la busqueda en el espacio de

planes parcialmente ordenados

u Aplicar operadores que refinan los planes parciales a medida que se necesita

IA-I 2003–2004 CcIa Planificacion (I) 8.71

Page 72: New Tema 8: Planificaci´on (I) · 2006. 9. 12. · IA-I 2003–2004 CcIa Planificaci´on (I) 8.17. Ejemplo: movimiento de robot por una rejilla x Un robot ha de desplazarse por

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 2003–2004 CcIa Planificacion (I) 8.72