Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias ›...

14
1 Sistemas Expertos e Inteligencia Artificial / Guía XI Planificación en Inteligencia Artificial. Agentes Planificadores. Comprender el concepto de Planificación en Inteligencia Artificial. Comprender las técnicas de la inteligencia artificial en ejemplos de planificación. Identificar el método Strips, el cual es muy utilizado al momento de realizar una planificación. Implementar la solución para problemas de planificación en Python. Guía Número 11. Computadora con Python. Comenzamos por definir qué es un plan. Un plan es una secuencia de acciones individuales que permiten alcanzar una meta a partir de una situación inicial. Desde principios de los años 70, la comunidad de IA especializada en planificación se ha preocupado del problema de diseño de agentes artificiales capaces de actuar en un entorno. La planificación se puede ver como una forma de programación automática: el diseño de un curso de acción que satisfará un cierto objetivo. Dentro de la comunidad de la IA, se ha asumido desde hace tiempo que algún tipo de sistema planificador debe formar parte de los componentes centrales de cualquier agente artificial La idea básica es dotar al agente planificador de: Representación del objetivo a alcanzar. Representación de las acciones que puede realizar. Representación del entorno. Capacidad de generar un plan para alcanzar el objetivo. A continuación, se muestra la representación gráfica de un agente planificador: Facultad: Ingeniería Escuela: Computación Asignatura: Sistemas Expertos e Inteligencia Artificial Objetivos Específicos Material y Equipo Introducción Teórica

Transcript of Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias ›...

Page 1: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

1 Sistemas Expertos e Inteligencia Artificial / Guía XI

Planificación en Inteligencia Artificial.

Agentes Planificadores.

• Comprender el concepto de Planificación en Inteligencia Artificial.

• Comprender las técnicas de la inteligencia artificial en ejemplos de planificación.

• Identificar el método Strips, el cual es muy utilizado al momento de realizar una planificación.

• Implementar la solución para problemas de planificación en Python.

• Guía Número 11.

• Computadora con Python.

Comenzamos por definir qué es un plan.

Un plan es una secuencia de acciones individuales que permiten alcanzar una meta a partir de una situación inicial.

Desde principios de los años 70, la comunidad de IA especializada en planificación se ha preocupado del problema de

diseño de agentes artificiales capaces de actuar en un entorno. La planificación se puede ver como una forma de

programación automática: el diseño de un curso de acción que satisfará un cierto objetivo.

Dentro de la comunidad de la IA, se ha asumido desde hace tiempo que algún tipo de sistema planificador debe formar

parte de los componentes centrales de cualquier agente artificial La idea básica es dotar al agente planificador de:

• Representación del objetivo a alcanzar.

• Representación de las acciones que puede realizar.

• Representación del entorno.

• Capacidad de generar un plan para alcanzar el objetivo.

A continuación, se muestra la representación gráfica de un agente planificador:

Facultad: Ingeniería

Escuela: Computación

Asignatura: Sistemas Expertos e Inteligencia Artificial

Objetivos Específicos

Material y Equipo

Introducción Teórica

Page 2: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

2 Sistemas Expertos e Inteligencia Artificial / Guía XI

La interrogante a responder es: ¿Cómo representar…?

• objetivo a alcanzar

• estado del entorno

• acciones disponibles para el agente

• el propio plan

Redefinimos el concepto de plan.

Plan es una secuencia (lista) de acciones, que llevan de un estado inicial a un estado final. Entonces, la planificación se puede

ver como un problema de búsqueda en un espacio de estados.

Hay ejemplos que se repiten de forma reiterada en la literatura de Planificación:

• Torres de Hanoi

• 8-puzzle, 15-puzzle

• Mundo de los bloques (Blocks World)

En la vida diaria también nos enfrentamos a problemas de planificación, por ejemplo, si queremos realizar un viaje:

Page 3: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

3 Sistemas Expertos e Inteligencia Artificial / Guía XI

Otro ejemplo de aplicaciones de la Planificación es la gestión de flujos de trabajo (workflows):

Tipos de Planes.

A. Plan parcialmente ordenado (Partial-order plan).

Compuesto por un conjunto de acciones ordenadas parcialmente. Existen restricciones de secuencia en estas acciones.

Un algoritmo de generación de planes se puede usar para transformar un plan parcialmente ordenado en un plan

totalmente ordenado.

Ejemplo:

Page 4: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

4 Sistemas Expertos e Inteligencia Artificial / Guía XI

B. Plan totalmente ordenado (Total-order plan).

Compuesto por un conjunto de acciones totalmente ordenado.

Ejemplo:

La planificación en la Inteligencia Artificial, es el procedimiento automático para encontrar un plan para un problema

concreto. Se pueden aplicar los métodos conocidos de búsqueda en espacio de estados, pero en ocasiones presentan

problemas de eficiencia.

Las acciones no relevantes, en el caso de utilizar la teoría de árboles, representan un alto factor de ramificación.

Los algoritmos de búsqueda que hemos estudiado se interesan sólo en devolver el estado final o estado-solución.

Los algoritmos de planificación no solo se interesan por encontrar el estado solución, sino en mantener todos los estados

intermedios que llevan desde el estado inicial al final.

Los algoritmos de planificación suelen usar no solo el conocimiento dentro del heurístico, sino también las descripciones

de los efectos de las acciones para guiar su búsqueda (utilizan la estructura lógica del problema).

Muchos algoritmos de planificación reducen la complejidad del problema descomponiéndolo en sub-objetivos.

Esto solo se puede realizar en problemas reales que se puedan descomponer o casi descomponer (el planificador

descompone el problema y luego resuelve pequeños conflictos al recomponer la solución).

La planificación clásica considera entornos que son:

• Completamente observables: el planificador percibe perfectamente el estado del entorno y el efecto de sus acciones

en el entorno.

• Deterministas: se pueden predecir y predefinir los efectos de todas las acciones.

• Finitos: existe un conjunto finito de acciones y de estados.

• Estáticos: el entorno solo cambia cuando el agente planificador actúa sobre él.

• Discretos: el entorno se puede describir de forma discreta:

o Tiempo discreto (se suele medir en ciclos de ejecución).

o Acciones discretas (las acciones suelen verse como unidades y necesitar un ciclo de ejecución).

Page 5: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

5 Sistemas Expertos e Inteligencia Artificial / Guía XI

o Objetos discretos: las descripciones de los objetos son discretas.

o Efectos discretos: los efectos de las acciones suelen ser directamente observables una vez se ha ejecutado

la acción.

Lenguaje de los problemas de planificación.

Recordemos que para resolver este tipo de problemas, la clave está en cómo lo representaremos (estados, acciones y

objetivos). La clave está en encontrar un lenguaje que sea suficientemente expresivo para describir un amplio rango de

problemas, pero suficientemente restrictivo para permitir algoritmos operativos y eficientes.

Uno de estos lenguajes es STRIPS, el cual es el lenguaje de representación básico de los planificadores clásicos.

Existen algunos formalismos específicos para representar problemas de planificación:

• Representación de estados. Descripción de la situación del “mundo”.

o En todo momento se conoce el estado del “mundo”.

o Solo hay un agente que puede cambiar el estado del “mundo”.

Los planificadores descomponen el mundo en condiciones lógicas, representando un estado como una secuencia

(conjunción) de literales positivos conectados. Consideremos literales proposicionales, por ejemplo, Pobre ^ Desconocido

puede representar el estado de un agente desafortunado. También pueden utilizarse literales de primer orden, por

ejemplo: En (Avion1, Melbourne) ^ En (Avion2, Sydney), que puede representar un estado en un problema de reparto de

equipaje.

• Representación de objetivos. Un objetivo es un estado parcialmente especificado, representado como una

secuencia de literales positivos y simples, tales como: Rico ∧ Famoso.

Un estado proposicional “s” satisface un objetivo “g” si “s” contiene todos sus elementos en “g” (y posiblemente algunos

más).

Ejemplo: el estado Rico ∧ Famoso ∧ Miserable satisface el objetivo Rico ∧ Famoso

• Representación de acciones. Modifican el estado del “mundo”.

o Se suponen instantáneas.

o Se supone que sus efectos son deterministas.

Las acciones se especifican en términos de las precondiciones que se han de cumplir antes de que se puedan ejecutar y de

los efectos que producen una vez se han ejecutado. Por ejemplo, la acción que nos indica cómo un avión vuela desde una

ciudad a otra puede exponerse como:

Acción (volar (av, origen, destino),

PRECOND: En (av, origen) ∧ Avion (av) ∧ Aeropuerto (origen) ∧ Aeropuerto (destino)

EFECTO: En (av, origen) ∧ En (av, destino)

Esto es más propio llamarlo esquema de acción, para indicar que representa un número de diferentes acciones que pueden

ser derivadas mediante la instanciación de las variables av, origen y destino pudiendo adquirir diferentes valores.

Page 6: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

6 Sistemas Expertos e Inteligencia Artificial / Guía XI

En general, un esquema de acción consta de tres partes:

• El nombre de la acción y la lista de parámetros de los que depende la acción, por ejemplo, volar (av, origen, destino)

sirve para identificar la acción.

• La precondición es la unión de literales positivos sin dependencia funcional que especifica que debe de ser

verdadero en un estado antes de que la acción se ejecute. Todas las variables en la precondición han de aparecer

en la lista de parámetros de la acción.

• El efecto es la unión de literales sin dependencia funcional describiendo cómo cambia el estado cuando la acción

se ejecuta. Todas las variables han de aparecer también en la lista de parámetros de la acción. Un literal positivo “P”

en el efecto se espera que sea verdadero en el estado resultante de la acción, mientras que un literal negativo “¬P”

se espera que sea falso.

Una acción es aplicable en cualquier estado que satisfaga la precondición

• En 1er orden: existe una sustitución para las variables en la precondición. Por ejemplo, el estado

En (A1, JFK) ∧ Avion (A1) ∧ En (A2, SFO) ∧ Avion (A2) ∧ Aeropuerto (JFK) ∧ Aeropuerto (SFO)

satisface la precondición de la acción volar:

En (a, origen) ∧ Avion (a) ∧ Aeropuerto (origen) ∧ Aeropuerto (destino)

El resultado de ejecutar la acción en un estado s es un estado s’ al que se añaden los literales positivos del efecto y se

eliminan los literales negativos. Por ejemplo, el efecto de la acción volar sobre el estado anterior:

Introducción a los STRIPS (Stanford Research Institute Problem Solver).

Un STRIP es un planificador automático utilizado en aplicaciones de robótica. Utiliza un formalismo basado en la lógica para

representar estados y operadores:

• Estados: conjunto de predicados lógicos.

• Operador: añade y/o elimina predicados al estado actual.

Ejemplo de Planificador Lineal:

Realiza una búsqueda regresiva en el espacio de estados.

Parte de la descripción del estado objetivo y selecciona operadores y estados hacia atrás.

Descompone el estado meta inicial en sucesivas submétases hasta alcanzar una situación que corresponda con la

descripción del estado inicial.

Operadores STRIPS.

Este operador representa una acción mediante tres componentes:

1. Precondiciones (PC): Lista de elementos que tienen que ser ciertos en el estado para que la acción pueda ser

aplicada.

Page 7: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

7 Sistemas Expertos e Inteligencia Artificial / Guía XI

2. Lista borrar (B): Lista de elementos que dejan de ser ciertos una vez aplicada la acción.

3. Lista Añadir (A): Lista de elementos que pasan a ser ciertos una vez aplicada la acción.

Las listas A y B pueden unirse (lista Efectos) indicando los elementos de B negados, Solo especifica lo que cambia en el

“mundo” con la ejecución de la acción.

Operadores parametrizables: elementos en listas PC, A y B pueden contener variables que se instanciarán al aplicar el

operador.

Un problema de planificación se puede plantear como un problema de espacio de estados:

• Estados descritos mediante listas de elementos (átomos) cerrados.

• Acciones como listas de precondiciones y efectos.

• Caracterización de estados finales descrita por el objetivo.

Búsqueda en planificación (espacio de estados).

• Idea: aplicar los métodos de búsqueda en espacio de estados

Operadores: acciones posibles.

Solución: secuencia de acciones desde estado inicial al final.

• Búsqueda progresiva (hacia adelante).

Ineficiente en aplicaciones prácticas.

Gran número de acciones irrelevantes (no hacen avanzar el plan) a evaluar en cada estado

=> alto factor de ramificación.

Dificultad para definir heurísticas generales útiles.

• Búsqueda regresiva (hacia atrás).

Comienza en un objetivo y para cada uno de los estados se generan los posibles predecesores.

Predecesor de Ei: cualquier estado Ej para el que existe una sustitución tal que al aplicarla junto a un operador O se

satisfacen los átomos de Ei

Finaliza cuando se alcanza un objetivo que sea cierto en el estado inicial

Mejora la eficiencia: saca ventaja de la descomposición del problema en sub-problemas (reduce factor ramificación).

Espacio de estados sigue siendo grande.

Búsqueda en planificación (espacio de planes)

• Idea: realizar búsqueda sobre el espacio de posibles planes parciales.

• Plan parcialmente ordenado: un plan en el que sólo se especifican algunas de las precedencias entre sus acciones.

No especifican completamente el orden de las acciones, sólo si es realmente relevante.

Hasta ahora se manejaban/exploraban secuencias de acciones totalmente ordenadas (planificación lineal).

Secuenciar un plan parcial → construir un plan secuencial que respete las precedencias obligatorias.

• Esquema general

Estados = planes parciales

Operadores = modificaciones que refinan los planes parciales

o añadir operador

Page 8: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

8 Sistemas Expertos e Inteligencia Artificial / Guía XI

o reordenar operadores

o instanciar un operador

• Solución = estado final encontrado (plan parcial sin conflictos que cumple las restricciones).

• Se definen 2 acciones ficticias

INICIO, sin precondiciones (PC), su lista añadir (A) es igual al estado inicial del problema.

FIN, sus precondiciones (PC) coinciden con el estado final, no tiene lista añadir (A).

• Se establecen restricciones de orden entre las acciones posibles (ACCION1 - ACCION2).

• En los planes parciales se establecen enlaces (ACC1 𝑃→ ACC2) entre una acción que genera alguna precondición (p)

necesaria para la otra.

• Una acción amenaza una relación ACC1 𝑃→ ACC2 si en su lista borrar (B) incluye al átomo p y según las restricciones

de orden puede ubicarse entre ACC1 y ACC2.

• Estado inicial del espacio de planes: plan ”INICIO - FIN”

• Estado final: plan parcial sin amenazas en los enlaces que lo conforman, sin ciclos en las restricciones de orden y sin

precondiciones pendientes.

A continuación, se muestra el problema para el mundo de los bloques, abordado en la guía de laboratorio No.6, pero

resuelto aplicando STRIPS:

Page 9: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

9 Sistemas Expertos e Inteligencia Artificial / Guía XI

Ejemplo 1. Otro problema clásico que puede resolverse con STRIPS es el problema de las Torres de Hanoi (muy conocido

por todos). Se desea implementar un agente planificador que solucione este problema.

A continuación, se muestran los pasos para resolverlo utilizando STRIPS.

Debemos generar un árbol formado por:

• Nodos “y”: son las propiedades.

• Nodos “o”; son los operadores.

Recordemos que el problema de las torres de Hanoi consiste en “n” discos en una varilla, ordenados por sus tamaños en

forma creciente. El objetivo del juego consiste en que a partir de un estado inicial (todos los discos en una de las varillas),

hacer los movimientos necesarios (considerando las restricciones del problema) para llegar a un estado objetivo (todos los

discos ordenados en otra varilla).

Se tiene:

3 discos (D1, D2, D3) y 3 varillas (A, B, C)

Conjunto de propiedades:

• on (D1, D2), on (D1, D3), on (D1, A), on (D1, B), on (D1, C), on (D2, D3), on (D2, A), etc.

• clear (D1), clear (D2), clear (D3): “no hay nada encima del disco”

• clear (A), clear (B), clear (C): “no hay ningún disco en la varilla”

No debemos incluir propiedades no compatibles con el dominio (restricciones del problema):

• on (D2, D1), on (D3, D1), on (D2, D1), on (D3, 2), on (A, D1), on (B, D3), etc.

Conjunto de operadores:

• mover (D1, D2, D3)

PC: {clear (D1), clear (D3), on (D1, D2)}

B: {on (D1, D2), clear (D3)}

A: {on (D1, D3), clear (D2)}

De manera más formal se tiene:

Elementos: I = {D1, D2, D3, A, B, C}

Procedimiento

Page 10: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

10 Sistemas Expertos e Inteligencia Artificial / Guía XI

Predicados auxiliares:

• menor (D1, D2), menor (D2, D3), menor (D3, A), menor (D3, B), menor (D3, C), etc.

• menor* es el cierre transitivo de menor.

Conjunto de propiedades:

• P = {on (x, y): x, y ∈ I ∧ menor* (x, y)} ∪ {clear (x): x ∈ I}

Conjunto de operadores:

• O = {mover (x, y, z): x ∈ {D1, D2, D3} ∧ y, z ∈ I ∧ menor* (x, y) ∧ menor* (x, z) ∧ y ≠ z}

• Plantilla para los efectos de los operadores:

mover (“x”, “y”, “z”)

PC: {clear (“x”), clear (“z”), on (“x”, “y”)}

B: {on (“x”, “y”), clear (“z”)}

A: {on (“x”, “z”), clear (“y”)}

En el primer movimiento tenemos:

S0 = {on (D1, D2), on (D2, D3), on (D3, A), clear (D1), clear (B), clear(C)}

En el segundo movimiento tenemos:

S1 = {on (D1, C), on (D2, D3), on (D3, A), clear (D1), clear (D2), clear (B)}

(Ver figura 1).

En el tercer movimiento tenemos:

S2 = {on (D1, C), on (D2, B), on (D3, A), clear (D1), clear (D2), clear (D3)}

(Ver figura 2).

Page 11: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

11 Sistemas Expertos e Inteligencia Artificial / Guía XI

En el cuarto movimiento tenemos:

S3 = {on (D1, D2), on (D2, B), on (D3, A), clear (D1), clear (D3), clear (C)}

Page 12: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

12 Sistemas Expertos e Inteligencia Artificial / Guía XI

En el quinto movimiento tenemos:

S4 = {on (D1, D2), on (D2, B), on (D3, C), clear (D1), clear (D3), clear (A)}

Los pasos se repiten en forma similar, hasta alcanzar el estado objetivo.

Page 13: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

13 Sistemas Expertos e Inteligencia Artificial / Guía XI

Tomando como referencia la información presentada en el ejemplo No.1, implementar un simulador del agente planificador

(en Python) para resolver el problema de las Torres De Hanoi.

Considerar la siguiente funcionalidad para el simulador del agente planificador:

• Permitir que el usuario indique la cantidad de elementos a utilizar para el problema de planificación, es decir, discos

a utilizar. Recuerde que la cantidad de varillas es fija.

• El usuario debe también proporcionar el estado inicial (la varilla donde están los discos antes de cualquier acción)

y el estado final (la varilla donde deben trasladarse los discos).

• Diseñar la interfaz, considerando que debe mostrarse todos los pasos que realiza la solución implementada con el

lenguaje STRIPS (tomar como referencia las ilustraciones mostradas en el ejemplo).

Implementar un simulador del agente planificador (en Python) para resolver el problema del movimiento de un robot en un

laberinto:

• Un robot ha de desplazarse por un laberinto (representado por una matriz de cuadros (rejilla)), desde una posición

inicial a una final.

• Hay 8 movimientos posibles: N, S, E, O, NO, NE, SO, SE.

• En algunas de las casillas existen obstáculos no franqueables.

En la imagen se muestra un ejemplo del entorno del problema:

Los cuadros negros representan los obstáculos, los cuadros blancos representan donde puede moverse libremente el robot.

Debe plantearse la solución para este problema considerando el lenguaje STRIPS.

Investigación Complementaria

Análisis de resultados

Page 14: Planificación en Inteligencia Artificial. Agentes … › udb_files › recursos_guias › informatica-in...parte de los componentes centrales de cualquier agente artificial La idea

14 Sistemas Expertos e Inteligencia Artificial / Guía XI

Considerar la siguiente funcionalidad para el simulador del agente planificador:

• Permitir que el usuario indique el estado inicial del problema:

• Definir los obstáculos (cantidad y posición de celdas negras).

• Posición inicial del robot (celda origen).

• El usuario debe también proporcionar el estado final, es decir, la celda a donde debe dirigirse el robot en el laberinto.

• Diseñar la interfaz, considerando que debe mostrarse todos los pasos que realiza la solución implementada con el

lenguaje STRIPS (tomar como referencia las ilustraciones mostradas en el ejemplo).

• Inteligencia Artificial con Aplicaciones a la Ingeniería, Pedro Ponce Cruz.

• PALMA MENDEZ. J.T, MARIN MORALES. R., Inteligencia artificial, España McGraw Hill Primera Edición 2008.

Bibliografía