Sunteți pe pagina 1din 53

Sistemas Multi-Agentes

Juan de Lara
Escuela Politcnica Superior
Ingeniera Informtica
2
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Resolucin de Problemas.
3
ndice
Introduccin.
Areas de Aplicacin.
Qu es un Agente ?
Qu es un Sistema Multi-Agente ?
Agentes Inteligentes.
Agente vs. Objeto.
Agente vs. Sistema Experto.
Tipos de Agentes.
Simulacin Basada en Agentes.
Resolucin de Problemas.
4
Introduccin
Inteligencia Artificial Distribuida (finales 70s), Vida
Artificial.
Crtica a la Inteligencia Artificial clsica (programas
no encarnados, no situados)
Resolucin de problemas complejos, fsicamente
distribuidos, heterogneos, cambiantes, ....
Enfasis en las acciones e interacciones entre
elementos similares.
5
Areas de Aplicacin
Ciencias sociales (psicologa, sociologa, filosofa) y
ciencias naturales (ecologa y biologa).
Anlisis experimental y terico de mecanismos de auto-
organizacin y emergencia que surgen cuando varias
entidades autnomas interaccionan.
Tecnologa informtica y de telecomuniacin:
Creacin de artefactos distribuidos capaces de realizar
tareas complejas mediante cooperacin e interaccin.
6
Qu es un Agente?
Un sistema informtico, situado en un entorno, que es
capaz de realizar acciones flexibles y autnomas para
alcanzar sus objetivos. [Jenn98]
Agente
Agente
Entorno
Entorno
Entrada
sensores
Salida
acciones
7
Ejemplo: Un Termostato
Un sistema de control puede verse como un agente.
Agente
Agente
Entorno
Fisico
Entorno
Fisico
Frio
OK
Encender calefaccin
Apagar calefaccin
Frio Encender calefaccin
OK Apagar calefaccin
8
Ejemplo: Notificacin de Correo
Monitoriza continuamente el correo de entrada del usuario.
Indica con un icono si hay correo.
Agente
Agente
Entorno
Lgico
Entorno
Lgico
Correo Icono
Correo Presentar Icono
9
Qu es un Sistema Multi-Agente (SMA)?
Entorno E.
Un conjunto de objetos Ob, situados en el entorno.
Un conjunto de Agentes Ag Ob.
Relaciones entre objetos.
Operaciones que hacen que los agentes de Ag puedan percibir,
producir, consumir, transformar y manipular objetos de Ob.
Leyes del Universo (modelan las reacciones del mundo a las
acciones de los agentes).
10
Qu es un Sistema Multi-Agente (SMA)?
Emergencia: Las interacciones entre los agentes
en un cierto nivel dan lugar a varios tipos de
fenmenos en otro nivel.
Consciencia, Movimientos de los bancos de
peces, bandadas de aves, funcionamiento de las
colonias de insectos sociales, etc.
11
Agentes Inteligentes
Realizan acciones flexibles:
Reactivos. Perciben el entorno y responden ante cambios...
Pro-Activos. Toman la iniciativa...
Habilidades Sociales. Interaccin con otros agentes...
... para conseguir sus objetivos.
12
Agentes Inteligentes
Reactividad vs Proactividad
Agentes reactivos puros (reaccionan continuamente al
entorno).
Agentes completamente dirigidos por objetivos (ciegos).
Balance entre ambos.
13
Agentes Inteligentes
Habilidades Sociales:
Cooperacin.
Competencia.
Negociacin.
14
Agente vs. Objeto
Los objetos encapsulan un estado, realizan acciones (mtodos),
y se comunican (mediante mensajes).
Autonoma:
Un objeto recibe invocaciones de mtodos. No controla
cundo se ejecutan.
Un agente recibe peticiones (que puede o no realizar).
Objects do it for free; agents do it for money
15
Agente vs. Objeto
Flexibilidad (reactivos, pro-activos, habilidades sociales).
Los agentes tienen su propio hilo de control (agente vs. Objetos
Activos).
Podemos utilizar tecnologa orientada a objetos para
implementar sistemas multi-agentes.
16
Agente vs. Sistema Experto
Los sistemas expertos (80s) se utilizan para consulta sobre
dominios muy especficos.
No interaccionan directamente con el entorno, sino a travs de
un usuario (no hay sensores, no encarnacin, no estn
situados), dan respuestas (no hay efectores).
Normalmente carecen de habilidades sociales (cooperacin).
17
ndice
Introduccin.
Tipos de Agentes.
Arquitecturas Abstractas para SMA.
Arquitecturas Concretas:
Arquitecturas Basadas en Lgica.
Arquitecturas Reactivas
Arquitecturas BDI.
Simulacin Basada en Agentes.
Resolucin de Problemas.
18
Arquitecturas Abstractas para SMA
S = {s1, s2, ...} son los posibles estados del entorno.
A = {a1, a2, ...} acciones (capacidades de los agentes).
Un agente estndar se puede ver como:
Accion: S* A
Un agente decide qu acciones realizar dependiendo de su
historia (estados del entorno con los que se ha encontrado).
19
Arquitecturas Abstractas para SMA
env: S x A (S).
env(s, a) = conjunto de estados del entorno que podran resultar
de ejecutar a en s.
Entornos:
Determinista vs. No-determinista.
Accesibles vs. Inaccesibles.
Estticos vs. Dinmicos.
Discretos vs. Contnuos.
20
Arquitecturas Abstractas para SMA
H: s
0
s
1
s
2
... s
u
...
u , a
u
= accion((s
0
,..,s
u
))
u , u > 0, s
u
env(s
u-1
, a
u-1
)
El comportamiento caracterstico de un agente accion en un
entorno env es el conjunto de todas las historias hist(accion,
env) que satisfacen las dos condiciones anteriores.
a
o
a
1
a
2
a
u-1
a
u
21
Arquitecturas Abstractas para SMA
Invariantes: Propiedades que se cumplen en todas las historias.
Equivalencia de comportamiento entre dos agentes ag
1
y ag
2
si
hist(ag
1
, env) = hist(ag
2
, env).
Historias Infinitas.
22
Arquitecturas Abstractas:
Agentes Reactivos
Deciden lo que hacer sin tener en cuenta la historia:
Accion: S A
Ejemplo: Termostato.
Accion(s) = encender calefaccin si s == Frio
apagar calefaccin de otro modo.
23
Arquitecturas Abstractas:
Percepcin
Agente
Agente
Entorno
Entorno
visin
visin
Accin
Accin
Vision: S P P es un conjunto de percepciones.
Accion: P* A
24
Arquitecturas Abstractas:
Percepcin
Si s
1
S y s
2
S , s
1
s
2
y vision(s
1
) == vision(s
2
), entonces s
1
y s
2
son indistinguibles desde el punto de vista del agente.
Lo anotamos: s
1
s
2
Si | | = |S|, entonces el agente puede distinguir todos los
estados.
Si | | = 1, el agente est ciego.
25
Arquitecturas Abstractas:
Agentes con Estado
Agente
Agente
Entorno
Entorno
visin
visin
Accin
Accin
Siguiente
Siguiente
Estado
Accion: I A, I: Estados Internos del Agente.
Siguiente: I x P I
26
El agente tiene como estado inicial: i
act
= i
0
.
Repetir
Observar el entorno: perc = vision(s)
Modificar el estado interno: i
act
= Siguiente(i
act
, perc)
Realizar la accin: a = accion(i
act
)
Este agente y el agente estndar son idnticos en poder
expresivo.
Arquitecturas Abstractas:
Agentes con Estado
27
ndice
Introduccin.
Tipos de Agentes.
Arquitecturas Abstractas para SMA.
Arquitecturas Concretas:
Arquitecturas Basadas en Lgica.
Arquitecturas Reactivas
Arquitecturas BDI.
Simulacin Basada en Agentes.
Resolucin de Problemas.
28
Arquitecturas Concretas:
Cmo se representa el estado de los agentes?
Cmo se implementan las acciones que pueden realizar los
agentes?
Arquitecturas concretas:
Agentes basados en lgica.
Agentes reactivos.
Arquitecturas BDI (belief-desire-intention).
Arquitecturas por capas.
29
Arquitecturas Concretas:
Agentes Basados en Lgica.
Representacin simblica del entorno y del
comportamiento deseado, mediante frmulas lgicas.
Manipulacin mediante deduccin lgica y prueba de
teoremas.
Especificacin ejecutable del comportamiento del
agente mediante una teora .
30
Arquitecturas Concretas:
Agentes Basados en Lgica.
Agentes deliberativos: el estado (creencias) es una
base de datos de frmulas lgicas de primer orden.
Ejemplo:
open(valve)
temperature(reactor, 321)
pressure(tank, 28)
31
Arquitecturas Concretas:
Agentes Basados en Lgica.
Sea L el conjunto de frmulas de lgica de primer
orden.
D = (L), el conjunto de posibles bases de datos.
El estado de un agente es un miembro de D: ,
1
, ....
|-


32
Arquitecturas Concretas:
Agentes Basados en Lgica.
Vision: S P
Siguiente: D x P D
Accion: D A (mediante reglas de deduccin).
Function accion(: D): A
for each a A:
if |-

Do(a) then return a


for each a A:
if

Do(a) then return a


return NULL
33
Arquitecturas Concretas:
Agentes Basados en Lgica. Ejemplo.
Predicados:
In(x, y)
Dirt(x, y)
Facing(d)
Percepciones: Dirt, null
Acciones: forward, turn, suck
34
old() = {P(t
1
,...,t
n
)|P {In, Dirt, Facing} y P(t
1
,..,t
n
) }
nuevo: D x {P A} D
nuevo(In(0, 0), dirt) = Dirt(0,0)
...
nuevo(In(0, 0)Facing(north), forward) = In(0,1)
...
nuevo(Facing(north), turn) = Facing(east)
Siguiente(, p) = (\old())nuevo(, p)
Arquitecturas Concretas:
Agentes Basados en Lgica. Ejemplo.
35
Reglas de comportamiento:
In(x, y) Dirt(x,y) Do(suck)
In(0,0) Facing(north) Dirt(0, 0) Do(forward)
In(0,1) Facing(north) Dirt(0, 1) Do(forward)
In(0,2) Facing(north) Dirt(0, 2) Do(turn)
In(0,2) Facing(east) Do(forward)
...
Arquitecturas Concretas:
Agentes Basados en Lgica. Ejemplo.
36
Arquitecturas Concretas:
Agentes Basados en Lgica.
Time (t
1
):
1
...
Time (t
2
):
1
|-

Do(a)
Si el entorno cambia entre t1 y t2, entonces la accin a puede no ser
ptima.
Calculative rationality: Suponer que el mundo no cambia mientras el
agente decide qu hacer.
En algunos entornos la representacin simblica de una percepcin
(p.ej.: una imagen) puede no ser obvia.
Razonar acerca de informacin temporal es complicado.
37
Arquitecturas Concretas:
Agentes Reactivos.
Rechazo de la IA simblica (no hay representaciones
simblicas, ni toma de decisiones basada en sus
manipulaciones sintcticas).
El comportamiento inteligente surge como una interaccin
de un agente situado con el entorno.
Emergencia de comportamiento inteligente de la interaccin
de varios comportamientos simples.
38
Arquitecturas Concretas:
Agentes Reactivos. Arquitectura de Subsumcin
(Rodney Brooks)
Cada comportamiento del agente toma continuamente
percepciones y las hace corresponder con una accin.
Los mdulos de comportamiento son autmatas finitos (no hay
razonamiento simblico).
A veces se implementan como reglas: situacin accin.
Varios comportamientos pueden activarse a la vez.
Jerarqua de subsumcin. Las capas inferiores son de mayor
prioridad, las superiores son ms abstractas.
39
Arquitecturas Concretas:
Agentes Reactivos. Arquitectura de Subsumcin
(Rodney Brooks)
La funcin Visin permanece sin cambios.
La funcin Accin se implementa por medio de un conjunto
de comportamientos y una relacin de inhibicin.
Un comportamiento es un par (c, a); c P es la condicin
(percepciones); a A es una accin.
Un comportamiento (c, a) se dispara si el entorno est en el
estado s y Vision(s) c.
Comportamiento = {(c, a) | c P y a A}
40
Arquitecturas Concretas:
Agentes Reactivos. Arquitectura de Subsumcin
(Rodney Brooks)
Relaciones de inhibicin asociadas: R
Comportamiento
E R x R (de orden total sobre R, transitiva,
irreflexiva y antisimtrica).
b
1
E b
2
si (b
1
, b
2
) E; b
1
inhibe a b
2
.
41
Arquitecturas Concretas:
Agentes Reactivos. Arquitectura de Subsumcin
(Rodney Brooks)
function accion(p: P) : A
Var fired: (R)
Var selected: A
fired:={(c,a)|(c,a) R y p c}
for each (c,a) in fired:
if ((c,a) fired | (c,a)E(c,a)) return a
return null
42
Arquitecturas Concretas:
Agentes Reactivos. Arquitectura de Subsumcin
(Rodney Brooks). Ejemplo: Mars Explorer.
Si se detecta un obstculo cambiar direccin
Si se llevan muestras en la base dejar muestras
Si se llevan muestras (en la base) ir gradiente arriba
Si se detecta una muestra coger muestra
Si true moverse aleatoriamente
1 E 2 E 3 E 4 E 5
43
Arquitecturas Concretas:
Agentes Reactivos. Arquitectura de Subsumcin
(Rodney Brooks). Ejemplo: Mars Explorer.
Muestras en grupos. Cooperacin.
Si se detecta un obstculo cambiar direccin
Si se llevan muestras en la base dejar muestras
Si se llevan muestras (en la base)
(dejar 2 porciones radioactivas) (ir gradiente arriba)
Si se detecta una muestra coger muestra
Si se detectan porciones radioactivas (coger una) (ir
gradiente abajo)
Si true moverse aleatoriamente
1 E 2 E 3 E 4 E 5 E 6
44
Arquitecturas Concretas:
Agentes Reactivos.
Ventajas:
Simplicidad, Economa, Baja complejidad
computacional, tolerancia a fallos.
Desventajas:
No tienen modelos del entorno.
Los agentes toman decisiones basndose en
informacin local.
Difcil hacer que aprendan de la experiencia.
Difcil construir agentes con muchas capas.
45
Arquitecturas Concretas:
Arquitectura BDI.
Razonamiento prctico: Decidir, momento a momento, qu
accin realizar para conseguir nuestros objetivos.
Decidir qu objetivos conseguir (deliberacin) y cmo
conseguirlos (means-end reasoning planificacin).
Las intenciones :
conducen los planes.
restringen las futuras deliberaciones.
Persisten.
Influencian creencias sobre las que se basar futuro
razonamiento prctico.
46
Arquitecturas Concretas:
Arquitectura BDI.
A veces hay que descartar intenciones. De vez en cuando
hay que reconsiderarlas.
Dilema:
Si no se reconsideran muy a menudo.
Se se reconsideran demasiado a menudo.
Balance entre comportamiento pro-activo y reactivo. Hay
que tener en cuenta la velocidad a la que cambia el
entorno.
47
Arquitecturas Concretas:
Arquitectura BDI.
Sensor
Sensor
frc
frc
creencias
Generar opciones
Generar opciones
deseos
filtro
filtro
intenciones
Ejecutar
Ejecutar
frc: funcin de revisin de creencias.
48
Arquitecturas Concretas:
Arquitectura BDI.
Bel es el conjunto de posibles creencias.
Des es el conjunto de posibles deseos.
Int es el conjunto de intenciones.
Representacin mediante frmulas lgicas.
Nocin de consistencia entre estos conjuntos.
Estado: (B, D, I); B Bel, D Des, I Int
49
Arquitecturas Concretas:
Arquitectura BDI.
frc: (Bel) x P (Bel)
Opciones: (Bel) x (Int) (Des)
Filtro: (Bel) x (Des) x (Int) (Int)
Descarta las intenciones que no son alcanzables.
Persiste en las intenciones que no se han alcanzado,
pero que podran dar un resultado positivo.
Debe adoptar nuevas intenciones, para conseguir
intenciones que ya existen o explotar nuevas
oportunidades.
50
Arquitecturas Concretas:
Arquitectura BDI.
B(Bel), D(Des), Int(Int). Filtro(B,D,I) ID.
Las intenciones actuales son intenciones que se
tuvieron previamente o nuevas opciones.
Ejecutar: (Int) A
Accin: P A
Funcion accion(p: P): A
B := frc (B, p)
D := Opciones(D, I)
I := Filtro(B, D, I)
return ejecutar(I)
51
Agent::run() {
Environment e;
//start the environment in its own thread
e.run();
while (true) {
I = getBestPlan();
//returns true if goal was achieved
if (I.execute()) D.remove(I.goal);
}
Environment::run(){
while (true) {
a.B.incorporateNewObservations(getInput(w));
if (! a.currentPlanIsApplicable())
a.stopCurrentPlan();
sleep(someShortTime);
}
Arquitecturas Concretas:
Arquitectura BDI.
52
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Simulacin Discreta y Agentes Reactivos.
Modelado: aUML.
Lenguajes de Codificacin.
SWARM.
OOCSMP.
Ejemplos:
Sociedades Artificiales: Hormigas Virtuales.
Evolucin del Lenguaje.
Resolucin de Problemas.
53
Simulacin Basada en Agentes
Utilizar el concepto de agente para la simulacin de
modelos compuestos por mltiples elementos que
interactan.
Aplicaciones:
Ecologia.
Sociologia.
Psicologia.
Urbanismo.
...
54
Simulacin Basada en Agentes
Simulacin.
La simulacin trabaja con imitaciones" (modelos) del sistema real.
Los modelos son simplificaciones adecuadas (son validos) de la
realidad.
Experimentar con el sistema real a veces es:
Demasiado costoso.
Peligroso.
Imposible.
55
Estado
Entrada Salida
Nodelo [ Sistema
Estructura
Constitucin Interna.
Estado.
Necanismo para la transicin
de estados.
Asignacin estado a salida.
Comportamiento
Nanifestacin externa.
Relacin entre secuencias de
entrada y salidas.
Simulacin Basada en Agentes.
Simulacin.
56
Estado
Salida Nodelo [ Sistema
1
0
1
1
Entrada
1
S
0
S
1
1/1
0/0
0/0
1/1
current
Estructura
Constitucin Interna.
Estado.
Necanismo para la transicin
de estados.
Asignacin estado a salida.
Comportamiento
Nanifestacin externa.
Relacin entre secuencias de
entrada y salidas.
Simulacin Basada en Agentes.
Simulacin.
57
Todo formalismo de simulacin debe tener una variable de
indexacin (normalmente es el tiempo) que permita la transicin de
estados de los modelos.
TimeBase = T, <
Bases temporales comunes incluyen:
T = {NOW} (modelos algebraicos).
T = R (continuos, eventos discretos, etc.)
T = N (autmatas, Redes de Petri B8W, etc.)
Simulacin Basada en Agentes.
Base Temporal.
58
Caracterizan el comportamiento a lo largo del tiempo.
: T A
T
A
continua T
A
Continua a trozos
T
A
Constante a Trozos
T
A
Eventos discretos
Simulacin Basada en Agentes.
Trayectorias.
59
REALIDAD NODELO
Entidad
del Nundo Real
Sistema S
Datos Observados
del Experimento
Nodelo Base
Nodelo N
Resultados de la
Simulacin
Estudiar comportamiento
en contexto del experimento.
Experimento dentro de
contexto.
validacin
Simular
= experimento virtual
en contexto
Proceso de
Nodelado8Simulacin
OBJETIvOS
Simulacin Basada en Agentes.
Modelado.
60
Nodelado
Simulacin
validacin
verificacin
Simulacin Basada en Agentes.
Modelado.
61
Las variables que representan el estado del sistema cambian
(instantaneamente) en instantes discretos de tiempo (eventos).
El estado del sistema permanece inalterado entre eventos.
La base temporal es continua, pero durante un cierto intervalo
de tiempo, slo un numero finito de eventos ocurren.
La tcnica mas apropiada para modelar un sistema particular
depende da la naturaleza de los intervalos entre eventos
(aleatorios vs. determintas).
Simulacin Basada en Agentes.
Simulacin Discreta.
62
Simulacin Basada en Agentes.
Es dificil predecir el comportamiento de los sistemas multi-
agentes.
Obedecen los principios de los fenmenos caticos.
Una modificacin de las condiciones iniciales tiene efectos que
se amplifican por la interaccin entre los agentes.
No quiere decir que no obezcan leyes:
Auto-organizacin.
Emergencia.
63
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Simulacin Discreta y Agentes Reactivos.
Modelado: aUML.
Lenguajes de Codificacin.
SWARM.
OOCSMP.
Ejemplos:
Sociedades Artificiales: Hormigas Virtuales.
Evolucin del Lenguaje.
Resolucin de Problemas.
64
Modelado: aUML
UML.
8QLILHG0RGHOLQJ/DQJXDJH
Busca combinar y hacer un estandar a partir de los mtodos de
modelado mas conocidos:
Booch - OOD.
Rumbaugh - ONT.
Jacobson - OOSE y Objectory.
Combina las mejores propiedades de:
Conceptos de modelos de datos (ERD)
Nodelos de negocios (workflow)
Nodelos de Objetos
Nodelos de Componentes
65
UNL ofrece una forma estandar de especificar
sistemas
Modelado: aUML
UML.
66
Diagramas Estructurales
D. de Clases
D. de Objetos
D. de Componentes
D. de Instalacin
Diagramas de Comportamiento
D. Casos de Uso
D. de Secuencia
D. de Colaboracin
D. de Estados
D. de Actividad
Modelado: aUML
UML.
67
Modelado: aUML
Diagramas de Clases de Agentes.
Nombre [ rol1, rol2,...
Descripcin del estado
Acciones
Ntodos
Capacidades
Statechart (comportamiento)
CA-1[
protocolo
CA-1[
protocolo
Por
defecto
No
entendido
68
Modelado: aUML
Diagramas de Clases de Agentes.
- x, y: int
- x, y: int
- px, py: int
- px, py: int
- width, length: int
- width, length: int
<<capabilities>>
move
lookAround
<<capabilities>>
move
lookAround
- doorX, doorY: int
- doorX, doorY: int
ivisual
iLocomotion
Runner
Runner
Room
Room
Door
Door
*
Environment
Environment
"Situated
1
*
Position
Position
is visible
is visible
is visible
can move in
- xinit, yinit: int
- xend, yend: int
- xinit, yinit: int
- xend, yend: int
Wall
Wall
*
has
69
Noving To
Exit
Noving To
Exit
Noving
Ramdomly
Noving
Ramdomly
tm(1) [
move(door)
tm(1) [
door, morePopulated:=lookAround()
|door|[
move(door)
|else|[
move(morePopulated)
Runner
Runner
|in door|
Modelado: aUML
Statecharts.
70
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Simulacin Discreta y Agentes Reactivos.
Modelado: aUML.
Lenguajes de Codificacin.
SWARM.
OOCSMP.
Ejemplos:
Sociedades Artificiales: Hormigas Virtuales.
Evolucin del Lenguaje.
Resolucin de Problemas.
71
Lenguajes de Codificacin.
OOCSMP.
Extensin orientada a objetos del lenguaje de
simulacin continua CSMP.
Otras extensiones:
Resolver ecuaciones en derivadas parciales (PDEs).
Manejar eventos discretos.
Producir simulaciones distribuidas.
Varios formatos de salida que se pueden combinar en un
mismo problema.
SODA-1L & 2L permiten la inclusin de los modelos en
documentos para la web.
...
72
Lenguajes de Codificacin.
OOCSMP.
Los agentes se pueden modelar como objetos OOCSMP.
Las clases OOCSMP representan tipos de agentes.
Constructores mltiples.
+= y -= aaden y borran objetos de colecciones.
...
73
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Simulacin Discreta y Agentes Reactivos.
Modelado: aUML.
Lenguajes de Codificacin.
SWARM.
OOCSMP.
Ejemplos:
Sociedades Artificiales: Hormigas Virtuales.
Evolucin del Lenguaje.
Resolucin de Problemas.
74
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
Agentes similares a hormigas artificiales...
...pero se comunican directamente y no por medio de
feromonas.
Se mueven en una rejilla de 50x50 buscando comida.
Si la encuentran:
Comen una porcin y llevan otra al hormiguero.
Esto se repite hasta que la fuente de comida desaparece.
75
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
z Cada agente tiene un genoma que controla su
comportamiento.
Actividad
Comunicacin
Escepticismo Nentira Nemoria
z Mentira:
00: El agente siempre dice la verdad.
01: El agente da una posicin aproximada.
10: El agente da una posicin aleatoria.
11: El agente da la posicin contraria.
76
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
Explore
Explore
Return
to Nest
Return
to Nest
Go for
Food
Go for
Food
Ask
Food
Ask
Food
[Life mod RET = 0|
Found_food (px,py}[
increase(Life)
Nemorize_Location(px,py)
tm(1}[
move(activity)
decrease(Life)
H
F
o
r
g
o
t
_
p
o
s
i
t
i
o
n

V

F
o
o
d
_
d
e
p
l
e
t
e
d
In_nest (px,py}[
mate
Found_food (px,py}[
increase(Life)
N
o
_
R
e
s
p
o
n
s
e
Told_Food (fx,fy}
[rand(}>=sceptic]15|]
Nemorize_Location(fx,fy)
F
o
u
n
d
_
a
n
t

(
p
x
,
p
y
}
[
r
a
n
d
(
}
<
t
a
l
k
]
1
5
|
T
o
l
d
_
F
o
o
d
(
f
x
,
f
y
}
[
r
a
n
d
(
}
<
s
c
e
p
t
i
c
]
1
5
|
Found_ant (fx,fy}
[rand(}<talk]15|[
Tell_food(lie)
Life == 0
[
px = py = 0
Life= rand()
77
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
Agent A
Agent A
Activity
Comm
Skepticism
Lie
Nemory
Nate
Choose Cross-over point
Nate
Choose Cross-over point
Agent B
Agent B
Activity
Comm
Skepticism
Lie
Nemory
Newborn Agent C
Newborn Agent C
Activity
Comm
Skepticism
Lie
Nemory
Newborn Agent D
Newborn Agent D
Activity
Comm
Skepticism
Lie
Nemory
78
z Tres clases:
Agent.
Nest.
Territory.
[1] INCLUDE "Territory.csm"
[2] INCLUDE "Agent.csm"
[3] CLASS NEST
[4] {
[5] TERRITORY T1
[6] DATA NUMAGENTS:= 300, POX:=0, POY:=0, ANTHILL := 0
[7] AGENT LAGENTS := AGENT [NUMAGENTS]( SELF )
[8] INITIAL
[9] MAXX := T1.MAXX
[10] MAXY := T1.MAXY
[11] ...
[12] DYNAMIC
[13] FCNSW(ANTHILL, , ,LAGENTS[?].MATE(LAGENTS[?]))
[14] LAGENTS[?].STEP()
[15] LAGENTS[?].COLLIDE(LAGENTS[?])
[16] KF := 0
[17] KF += LAGENTS.KNOWFOOD
[18] NA := 0
[19] NA += INSW ( LAGENTS.MAXAGE, 0, 1)
[20] NL := MEAN (LAGENTS.GETLIE())
[21] NAC := MEAN (LAGENTS.GETACTIVITY())
[22] NSCEP := MEAN (LAGENTS.GETSCEPTIC())
[23] NCOM := MEAN (LAGENTS.GETCOMMUNICATIVE())
[24] NMEM := MEAN (LAGENTS.GETMEMO())
[25] PRINT NA, NAC, NSCEP, NCOM, NL, NMEM
[26]}
[1] INCLUDE "Territory.csm"
[2] INCLUDE "Agent.csm"
[3] CLASS NEST
[4] {
[5] TERRITORY T1
[6] DATA NUMAGENTS:= 300, POX:=0, POY:=0, ANTHILL := 0
[7] AGENT LAGENTS := AGENT [NUMAGENTS]( SELF )
[8] INITIAL
[9] MAXX := T1.MAXX
[10] MAXY := T1.MAXY
[11] ...
[12] DYNAMIC
[13] FCNSW(ANTHILL, , ,LAGENTS[?].MATE(LAGENTS[?]))
[14] LAGENTS[?].STEP()
[15] LAGENTS[?].COLLIDE(LAGENTS[?])
[16] KF := 0
[17] KF += LAGENTS.KNOWFOOD
[18] NA := 0
[19] NA += INSW ( LAGENTS.MAXAGE, 0, 1)
[20] NL := MEAN (LAGENTS.GETLIE())
[21] NAC := MEAN (LAGENTS.GETACTIVITY())
[22] NSCEP := MEAN (LAGENTS.GETSCEPTIC())
[23] NCOM := MEAN (LAGENTS.GETCOMMUNICATIVE())
[24] NMEM := MEAN (LAGENTS.GETMEMO())
[25] PRINT NA, NAC, NSCEP, NCOM, NL, NMEM
[26]}
Ejemplo.
Implementacin
OOCSMP
79
Numero de Agentes
Numero de Agentes
que conocen una
fuente de comida
(pueden estar
equivocados)
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
80
Los parmetros Actividad y Memoria crecen
rpidamente a sus valores mximos.
Dos situaciones:
Comida escasa:
Los agentes compiten y los mentirosos abundan.
Esto hace que el escepticismo suba(defensa contra rumores).
Comida abundante:
No hay necesidad de mentir: mentirosos pueden desaparecer
rpidamente.
Como resultado de esto el escepticismo desaparece.
El parmetro de comunicacin suele ser alto en estas
situaciones.
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
81
Ejemplo: Sociedades Artificiales.
Hormigas Virtuales.
Ejemplo 1:
Sin Reproduccin Ni evolucin, Fuentes Fijas de Comida
Ejemplo 2:
Sin evolucin, Fuentes Nviles y de Comida
82
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Simulacin Discreta y Agentes Reactivos.
Modelado: aUML.
Lenguajes de Codificacin.
SWARM.
OOCSMP.
Ejemplos:
Sociedades Artificiales: Hormigas Virtuales.
Evolucin del Lenguaje.
Resolucin de Problemas.
83
Evolucin del Lenguaje (Steels)
No intenta explicar cmo se origin el lenguaje en los
humanos.
Examina posibilidades tericas que llevan a la
formacin de lenguaje y significado.
Lenguaje como fenmeno emergente.
Co-evolucin de lenguaje y significados.
84
Evolucin del Lenguaje (Steels)
Juegos lingsticos.
Varios agentes tratan de obtener un vocabulario comn para
nombrar objetos.
Un juego lingstico se produce entre dos agentes:
El agente que habla usa elementos extra-lingsticos para
sealar el objeto de la conversacin.
Emite una palabra (o crea una nueva si no tiene palabra
para el objeto).
El juego tiene xito si el receptor tiene asociada esa misma
palabra para el objeto.
85
Evolucin del Lenguaje (Steels)
Juegos lingsticos.
Conjunto de agentes A (de tamao N
A
).
Cada agente a A tiene contacto con un conjunto de objetos
O
a
= {o
0
, ..., o
n
}
Un lxico L es una relacin entre objetos y palabras. EL agente
tambin guarda el nmero de veces que la relacin se ha usado
y las que ha sido usada con xito.
L
a
= O
a
x W
a
x N x N
Un agente es un par a = <L
a
, O
a
>
Sinonimia y Homonimia.
86
Evolucin del Lenguaje (Steels)
Juegos lingsticos.
Un juego lingstico N = < s, h, o> es una interaccin entre un
agente que habla (s) y otro que escucha (h) sobre un objeto (o):
El que habla selecciona un objeto de su lista y llama la
atencin del oyente sobre l.
s elige una palabra w para o (la que ms xito ha tenido).
H deriva el conjunto de objetos H = { h | <h, w, u, s> L
a
}
El juego lingstico tiene xito si o H
87
Evolucin del Lenguaje (Steels)
Juegos lingsticos Adaptativos
El resultado del juego lingstico cambia el estado de
los agentes: a
t
= < L
a,t
, O
a,t
>
Si el juego tiene xito y s us la palabra w: <o, w, u,
s> L
s,t
<o, w, u+1, s+1> L
s,t+1
y <o, w, v+1,
w+1> L
h,t+1
Si no tiene xito <o, w, u, s> L
s,t
<o, w, u+1, s>
L
s,t+1
y <o, w, v+1, w> L
h,t+1
88
Evolucin del Lenguaje (Steels)
Juegos lingsticos Adaptativos
Otras reglas que hacen que el juego falle:
El agente h no conoce el objeto o. h puede aadirlo a O
h,t
con
probabilidad p
o
.
El agente s puede no tener una palabra para el objeto o. s puede
generar (con probabilidad p
c
) una palabra aleatoria para o. L
s, t+1
=
L
s,t
{<o,w,1,0>}.
El agente h puede no conocer la palabra <o, w, u, s> L
h,t
. h puede
extender su lxico con una probabilidad p
a
. L
h, t+1
= L
h,t
{<o,w,1,0>}
Si o H, el agente puede adquirir la palabra <o, w, u, s> con una
probabilidad p
a
. L
h, t+1
= L
h,t
{<o,w,1,0>}
89
Evolucin del Lenguaje (Steels)
Resultados. Entorno Cerrado.
xito de los juegos lingsticos a lo largo del tiempo.
90
Evolucin del Lenguaje (Steels)
Resultados. Entorno Cerrado.
xito de las palabras de un agente para un objeto a lo largo del tiempo.
91
Evolucin del Lenguaje (Steels)
Resultados. Entorno Abierto.
Juegos lingsticos con xito a lo largo del tiempo.
Incremento de la poblacin con probabilidad 0.00025
92
Evolucin del Lenguaje (Steels)
Resultados. Entorno Abierto.
Juegos lingsticos con xito a lo largo del tiempo.
Incremento de la poblacin con probabilidad 0.001
93
Evolucin del Lenguaje
Ejemplos
Dos poblaciones (a)
Ejemplo 1
Dos poblaciones (b)
Articulo
94
Otros Ejemplos
Simulacin de la Evacuacin
de un edificio
95
ndice
Introduccin.
Tipos de Agentes.
Simulacin Basada en Agentes.
Resolucin de Problemas.
Ant Colony Optimization (ACO).
96
ACO
Resolver problemas de optimizacin (viajante, etc.) con
mtodos inspirados en la forma de trabajar de las
hormigas.
Las hormigas dejan feromonas en su camino hacia la
comida.
Una hormiga tiende a seguir un rastro de feromonas, y
deja feromonas que refuerzan el rastro.
Las feromonas se evaporan (el rastro va desapareciendo
segn deja de haber comida en uno de los focos).
97
ACO
A
E
Obstaculo
A
E
H C
Obstaculo
A
E
H C
98
ACO
A
E
D
H C
B
d=1
d=1
d=0.5
d=0.5
A
E
D
H C
B
time = 0
30
hormigas
30
hormigas
15
hormigas
15
hormigas
15
hormigas
15
hormigas
A
E
D
H C
B
time = 1
30
hormigas
30
hormigas
20
hormigas
10
hormigas
10
hormigas
20
hormigas
=15
=15 =30
=30
99
ACO aplicado al problema del Viajante
b
i
(t) (i=1...n) nmero de hormigas en la ciudad i en el tiempo t.
es el nmero total de hormigas.
Cada hormiga es un agente que:
Elige la prxima ciudad con una probabilidad funcin de la distancia de
la ciudad y la cantidad de feromonas en el camino.
Tiene una lista de ciudades ya visitadas.
Cuando completa una vuelta deja feromonas en cada vrtice (i, j)
visitado

=
=
n
1 i
i
) t ( b m
100
ACO aplicado al problema del Viajante

ij
(t) es la cantidad de feromonas en el arco (i, j) en el instante t
Cada n iteraciones (un ciclo) las hormigas completan una vuelta, y
las feromonas se actualizan:

ij
(t+n) =
ij
(t)+
ij
(1-) es la evaporacin de las feromonas.

=
=
m
1 k
k
ij ij

=
0
L
Q
k
k
ij
si la hormiga k us (i, j) en su vuelta (t, t+n)
en otro caso
101
ACO aplicado al problema del Viajante



0
] [ )] t ( [
] [ )] t ( [
p
) k ( permitidos l
il il
ij ij
k
ij
si j permitidos(k)
en otro caso
La probabilidad de que una hormiga se mueva desde i a j es:
El algoritmo para cuando se llega a un nmero mximo de ciclos, o
cuando todas las hormigas consiguen la misma vuelta.
102
ACO aplicado al problema del Viajante
En otras variaciones del algoritmo las hormigas actualizan el rastro
de feromonas en cada salto de ciudad a ciudad.
La actualizacin puede ser constante (ant-density) o
inversamente proporcional a la longitud del arco (ant-quantity)
que se ha recorrido.
Hay que calibrar los parmetros (, , y Q).
La complejidad del algoritmo es O(NC*n
3
), ya que se ha encontrado
empricamente la mejor relacin entre el nmero de ciudades y el
de hormigas.
103
ACO aplicado al problema del Viajante.
Resultados.
Mejores soluciones que otros algoritmos especficos
para el problema del viajante, pero tarda ms tiempo.
Comparado con tcnicas estndar de bsqueda Tab
y Simulated Annealing (SA). Fue mejor que SA y tan
bueno como Tab.
ACO se puede aplicar a otros problemas de
optimizacin: Quadratic Assignment, Job-Shop
Scheduling, etc.
104
Bibliografa
[Ferb99] Ferber, J. 1999. Multi-Agent Systems. An Introduction to
Distributed Artificial Intelligence. Addison-Wesley.
[Jenn98] Jennings, N.R., Sycara, K., Wooldridge, M. 1998. A
Roadmap of Agent Research and Development. Autonomous
Agents and Multi-Agent Systems, 1, 7-38. Kluwer Academic
Publishers.
[Weis99] Weiss, G. 1999. Multiagent Systems, a Modern
Approach to Distributed Artificial Intelligence. The MIT Press.
105
Bibliografa
[Stee99] Steels, L., Brooks, R. The Artificial Life Route to Artificial
Intelligence.Lawrence Erlabaum Associates, Publishers.
[Alfo02] Alfonseca, M., de Lara, J. 2002. Two level evolution of
foraging agent communities. BioSystems Vol 66, Issues 1-2,
pp.: 21-30. Elsevier.
[Swar02] Sitio web de Swarm: http://www.swarm.org
[Dori96] Dorigo, M., Maniezzo, V. 1996. The Ant System:
Optimization by a colony of cooperating agents. IEEE
Transactions on Systems, Man, and Cybernetics, Part-B,
Vol.26, No.1, pp. 1-13.
106
Bibliografa
[ACO03] Pgina Web dedicada a Ant Colony Optimization:
http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html
[Stee99] Steels, L., McIntyre, A. 1999. Spatially Distributed
Naming Games. Advances in Complex Systems, 1(4).
[deLa02] de Lara, J., Alfonseca, M. 2002. The role of forgetting,
memory size and spatial separation in dynamic language
games. Journal of Artificial Societies and Social Simulation
(JASSS). Vol.5(2): U2-U24.
http://jasss.soc.surrey.ac.uk/JASSS.html.

S-ar putea să vă placă și