Sie sind auf Seite 1von 24

Introduccin a la Planificacin Agentes planificadores

Agentes planificadores (1)

Desde principios de los 70, la comunidad de IA especializada en


planificacin se ha preocupado del problema de diseo de agentes
artificiales capaces de actuar en un entorno
La planificacin se puede ver como una forma de programacin
automtica: el diseo de un curso de accin que satisfar un
cierto objetivo
Dentro de la comunidad de la IA simbolica, se ha asumido desde
hace tiempo que algun tipo de sistema planificador debe formar
parte de los componentes centrales de cualquier agente artificial

La idea bsica es dotar al agente planificador:


representacin del objetivo a alcanzar
representacin de las acciones que puede realizar
representacin del entorno
Capacidad de generar un plan para alcanzar el objetivo

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 1


Introduccin a la Planificacin Agentes planificadores

Agentes planificadores (2)

objetivo/
estado del acciones
intencin/
entorno posibles
tarea
Pregunta: Como representar. . .
objetivo a alcanzar

estado del entorno

planner acciones disponibles para el

agente

el propio plan

plan to achieve goal

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 2


Introduccin a la Planificacin Planificacin

Planificacin
Qu es un plan?
Es una secuencia (lista) de acciones, que llevan de un estado inicial a
un estado final.
La planificacin se puede ver como un problema de bsqueda en
un espacio de estados.

142
1
0 n

17

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 3


Introduccin a la Planificacin Planificacin

Ejemplos paradigmticos de planificacin

Hay ejemplos que se repiten de forma reiterada en la literatura


de Planificacin
Torres de Hanoi
8-puzzle, 15-puzzle, .
Mundo de los bloques (Blocks World)

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012


Introduccin a la Planificacin Aplicaciones

Aplicaciones de la Planificacin: en la vida diaria

Ej: planificar un viaje

Inicio Reserva del billete


Preparacin
de avin

Reserva del coche


Reserva del hotel
de alquiler

Confirmar reservas Fin

[Ejemplo de Han Yu (University of Central Florida)]


LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012
Introduccin a la Planificacin Aplicaciones

Aplicaciones de la Planificacin: gestin de workflows

Empezar Instalar Insertar modem


montaje tarj. video

conectar CD
Mirar pedido Instalar
tarjeta de red
conectar bateria
Reunir Instalar
componentes unidad disco
probar

Montar la caja Instalar


y la placa base Fin montaje
placa base
[Ejemplo de Han Yu (University of Central Florida)]
LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012
Introduccin a la Planificacin Aplicaciones

Aplicaciones de la Planificacin: exploracin espacial

Mars Exploration Rovers


La planificacin de las tareas a realizar durante un da marciano se
realiza automticamente por un programa a partir de los objetivos
de exploracin que fija el personal de misin en la Tierra.

[Fuente: NASA Jet Propulsion Laboratory]

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012


Introduccin a la Planificacin Tipos de planes

Planes parcialmente ordenados

Plan parcialmente ordenado (Partial-order plan)


Compuesto por un conjunto de acciones ordenadas
parcialmente
Existen restricciones de secuencia en estas acciones
Un algoritmo de generacin de planes se puede usar para
transformar un plan parcialmente ordenado en un plan
totalmente ordenado

Get brush

Start Paint ceiling Finish

Get ladder

[Ejemplo de Han Yu (University of Central Florida)]


LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012
Introduccin a la Planificacin

Planes totalmente ordenados

Plan totalmente ordenado (Total-order plan)


Compuesto por un conjunto de acciones totalmente
ordenado

Start Get ladder Get brush Paint ceiling Finish

Start Get brush Get ladder Paint ceiling Finish

[Ejemplo de Han Yu (University of Central Florida)]


LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012
Introduccin a la Planificacin Planificacin

Diferencias entre alg. planificacin y alg. bsqueda

Los algoritmos de bsqueda que hemos visto hasta ahora se


interesan slo en devolver el estado final o estado-solucin.
Los algoritmos de planificacin no solo se interesan por
encontrar el estado solucin, sino en mantener todos los
estados intermedios que llevan desde el estado inicial al final.
Los algoritmos de planificacin suelen usar no solo el
conocimiento dentro del heurstico, sino tambin las
descripciones de los efectos de las acciones para guiar su
bsqueda (utilizan la estructura lgica del problema).
Muchos algoritmos de planificacin reducen la complejidad del
problema descomponiendolo en sub-objetivos
Esto solo se puede realizar en problemas reales que sean
descomponibles o quasi-descomponibles (el planificador
descompone el problema y luego resuelve pequeos conflictos al
recomponer la solucin)

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 10


Introduccin a la Planificacin Planificacin clsica

Planificacin clsica

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
estticos: el entonrno solo cambia cuando el agente planificador
actua sobre l.
discretos: el entorno se puede describir de forma discreta
Tiempo discreto (se suele medir en ciclos de ejecucin)
Acciones discretas (las acciones suelen verse como unidades y
necesitar un ciclo de ejecucin)
Objetos discretos: las descripciones de los objetos son discretas
Efectos discretos: los efectos de las acciones suelen ser
directamente observables una vez se ha ejecutado la accin

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 11


Introduccin a la Planificacin

Planificacin Clsica: teoria formal (I)

Ac ={1, ... , n}: un conjunto fijo de acciones.


< P, D, A> un descriptor para una accin

P es un conjunto de formulas en lgica de primer orden que


caracterizan la precondicin de la accin
D es un conjunto de frmulas en lgica de primer orden que
caracterizan aquellos hechos que se vuelven falsos por la ejecucin
de (delete list)

A es un conjunto de frmulas en lgica de primer orden que


caracterizan aquellos hechos que se vuelven ciertos por la ejecucin
de (add list)

Un problema de planificacin es una tripleta <,, >


LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 12
Introduccin a la Planificacin

Planificacin Clsica: teoria formal (II)

=(1, ... , n): un plan con respecto al problema de


planificacin <,, > determina una secuencia de n+1
modelos:

donde 0 = y

Un plan es aceptable ssi ,para todo


Un plan es correcto ssi
es aceptable, y

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 13


Introduccin a la Planificacin Planificacin clsica

Lenguaje de problemas de planificacin (1)

Representacin de estados: los planificadores descomponen el


mundo en condiciones lgicas, representando un estado como
una conjuncin de literales positivos:
Proposiciones: Pobre Desconocido

Literales de 1er orden: En(Avion1, Melbourne) En(Avion2, Sydney)

Representacin de objetivos: un objetivo es un estado


parcialmente especificado
Un estado s satisface un objetivo o si s contiene todos los atomos
de o (y posiblemente algunos ms)
Eg: el estado Rico Famoso Miserable satisface el objetivo
Rico Famoso

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 14


Introduccin a la Planificacin Planificacin clsica

Lenguaje de problemas de planificacin (2)

Representacin de acciones: Las acciones se especifican en


terminos 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
Accin(volar(av, orig, dest),
PRECOND: En(av, orig) Avion(av) Aeropuerto(orig) Aeropuerto(dest)
EFECTO: En(av, orig) En(av, dest)
)

La precondicin es una conjuncin de literales positivos que


especifica que debe de ser verdadero en un estado antes de que la
accion se ejecute. Todas las variables en la precondicin han de
aparecer en la lista de parmetros de la accin.
El efecto es una conjuncin de literales describiendo como cambia
el estado cuando la accin se ejecuta. Todas las variables han de
aparecer tambin en la lista de parmetros de la accin.

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 15


Introduccin a la Planificacin Planificacin clsica

Lenguaje de problemas de planificacin (3)

Una accin es aplicable en cualquier estado que satisfaga la


precondicin
En 1er orden: existe una substitucin para las variables en la
precondicin. Por ejemplo, el estado
En(A1, JFK) Avion(A1) En(A2, SFO) Avion(A2)
Aeropuerto(JFK) Aeropuerto(SFO)
satisface la precondicin de la accin volar:
En(a, orig) Avion(a) Aeropuerto(orig) Aeropuerto(dest)

El resultado de ejecutar la accin en un estado s es un estado s


al que se aaden los literales positivos del efecto y se eliminan
los literales negativos
Por ejemplo, el efecto de la accin volar sobre el estado anterior:

En(A1, SFO) Avion(A1) En(A2, SFO) Avion(A2) Se elimin:


Aeropuerto(JFK) Aeropuerto(SFO) En(A1, JFK)

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 16


Introduccin a la Planificacin Planificacin clsica

Ejemplo 1: Transporte aereo de carga

Dos cargas (C1 y C2) estan en 2 aeropuertos (SFO, JFK)


Tenemos dos aviones (A1 y A2) para transportar las cargas, uno
en cada aeropuerto
Describimos el estado inicial as:
Inicio( En(C1, SFO) En(C2, JFK) En(A1, SFO) En(A2, JFK)
Carga(C1) Carga(C2) Avion(A1) Avion(A2) Aeropuerto(SFO)
Aeropuerto(JFK) )

El objetivo es que C1 acabe en JFK y C2 en SFO


Describimos el objetivo as:
Objetivo( En(C1, JFK) En(C2, SFO) )

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 17


Introduccin a la Planificacin Planificacin clsica

Ejemplo 1: Transporte aereo de carga

Describimos las acciones de cargar, descargar y volar:

Accin(carga(c, av, aerop),


PRECOND: En(c, aerop) En(av, aerop) Carga(c) Avion(av)
Aeropuerto(aerop)
EFECTO: En(c, aerop) Dentro(c, av)
)
Accin(descarga(c, av, aerop),
PRECOND: Dentro(c, av) En(av, aerop) Carga(c) Avion(av)
Aeropuerto(aerop)
EFECTO: En(c, aerop) Dentro(c, av)
)
Accin(volar(a, orig, dest),
PRECOND: En(a, orig) Avion(a) Aeropuerto(orig) Aeropuerto(dest)
EFECTO: En(a, orig) En(a, dest)
)

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 18


Introduccin a la Planificacin Planificacin clsica

Ejemplo 1: Transporte aereo de carga

Solucin: el plan lo compone una secuencia de acciones.


En este caso hay varias soluciones
Ej. Solucion 1: usamos los dos aviones para hacer el traslado

[carga(C1, A1, SFO), vuela(A1, SFO, JFK), descarga(C1, A1, JFK)


carga(C2, A2, JFK), vuela (A2, JFK, SFO), descarga(C2, A2, SFO)]

Ej. Solucion 2: usamos solo un avin

[carga(C1, A1, SFO), vuela(A1, SFO, JFK), descarga(C1, A1, JFK)


carga(C2, A1, JFK), vuela (A1, JFK, SFO), descarga(C2, A1, SFO)]

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 19


Introduccin a la Planificacin Planificacin clsica

Lenguaje de representacin: STRIPS (ejemplo)


Fichero de descripcin del dominio
pick-up(x): unstack(x,y):

clear(x),ontable(x),handempty(). on(x,y),clear(x),handempty().
clear(x),ontable(x),handempty(). on(x,y),clear(x),handempty().
holding(x). holding(x),clear(y).

put-down(x):

holding(x). Fichero de descripcin del problema


holding(x). clear(C),clear(A),clear(B),clear(D),
clear(x),handempty(),ontable(x). ontable(C),ontable(A),ontable(B),
ontable(D),handempty().

stack(x,y): on(D,C),on(C,B),on(B,A).

holding(x),clear(y).
holding(x),clear(y).
clear(x),handempty(),on(x,y).

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 20


Introduccin a la Planificacin Planificacin clsica

Lenguaje de representacin: PDDL

Desde 1998 la comunidad de investigadores en planificacin ha


desarrollado un lenguaje standard de descripcin de planes:
Planning Domain Description Language (PDDL)
Objetivo inicial: lenguaje comn para competicin mundial de
planificadores
En la actualidad se ha convertido en un estndar de facto
WARNINGS:
existen varias versiones de PDDL, desde la 1.0 a la 3.1, cada una de
ellas con diferentes niveles de expresividad
No existe ningn planificador que soporte la especificacin 3.1
completa, sino subconjuntos de ella. hay que revisar la
documentacin (escasa) del plannerque se est usando para saber
que soporta y que no.

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 21


Introduccin a la Planificacin Planificacin clsica

Lenguaje de representacin: PDDL (sintaxis)


Fichero de descripcin del dominio
(define (domain DOMAIN_NAME)
(:requirements [:strips] [:equality] [:typing] [:adl])
(:predicates (PREDICATE_1_NAME [?A1 ?A2 ... ?AN])
(PREDICATE_2_NAME [?A1 ?A2 ... ?AN])
...)

(:action ACTION_1_NAME
[:parameters (?P1 ?P2 ... ?PN)] Como hay diferentes niveles de expresividad
[:precondition PRECOND_FORMULA] posibles, cada descripcin en PDDL dice los
[:effect EFFECT_FORMULA] requisitos necesarios para procesarla. Los
) ms comunes son:

(:action ACTION_2_NAME :strips expresividad como en STRIPS


...) :equality el dominio usa el predicado =
:typing el dominio define tipos de vars.
:adl expresividad extendida:
...)
1) disyunciones y cuantificadores en
precondiciones y objetivos,
2) Efectos cuantificados y condicionales

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 22


Introduccin a la Planificacin Planificacin clsica

Lenguaje de representacin: PDDL (sintaxis)

Fichero de descripcin del problema


(define (problem PROBLEM_NAME)
(:domain DOMAIN_NAME)
(:objects OBJ1 OBJ2 ... OBJ_N)
(:init ATOM1 ATOM2 ... ATOM_N)
(:goal CONDITION_FORMULA) )

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 23


Introduccin a la Planificacin Planificacin clsica

Lenguaje de representacin: PDDL (ejemplo)


Fichero de descripcin del dominio Fichero de descripcin del problema
(define (problem DLOG-2-2-2)
(define (domain driverlog)
(:domain driverlog)
(:requirements :strips :typing)
(:objects
(:types location locatable - object
driver1 - driver
driver truck obj - locatable
truck1 - truck
package1 - obj
)
s0 - location
(:predicates
s1 - location ...)
(at ?obj - locatable ?loc - location)
(:init
(in ?obj1 - obj ?obj - truck)
(at driver1 s12)
(driving ?d - driver ?v - truck)
(at truck1 s0)
(link ?x ?y - location) (path ?x ?y - location)
(empty truck1)
(empty ?v - truck)
(at package1 s0)
)
(path s1 p1-0)
(:action LOAD-TRUCK
(path p1-0 s1)
:parameters
...
(?obj - obj
(link s0 s1)
?truck - truck
(link s1 s0)
?loc - location)
... )
:precondition
(:goal (and (at driver1 s1)
(and (at ?truck ?loc) (at ?obj ?loc))
(at truck1 s1)
:effect
(at package1 s0)
(and (not (at ?obj ?loc)) (in ?obj ?truck)))
)))

LSI-FIB-UPC Inteligencia Artificial Curso 2011/2012 24

Das könnte Ihnen auch gefallen