Tesis Final AntokoletzV4
Tesis Final AntokoletzV4
Tesis Final AntokoletzV4
Tesis de grado.
Título:
“Metodología para el desarrollo de sistemas multi-agente basado
en fichas”
Mesa examinadora:
Presidente: Ing. BRESSANO, Mario
Vocal 1: Ing. MELONI, Brenda
Vocal 2: Ing. DIAZ, Daniela
Año 2019
Historia de Revisión del Documento
Por lo pronto debo agradecer la paciencia y la guía de mi tutora Ing. Daniela Diaz, los
empujones para que no abandone de la Mg. Ing. Brenda Meloni, que buscó siempre
allanarme el trabajo; y la paciencia de mi familia que siempre me apoya.
Índice
6
6.3.1. Hitos de la metodología. ________________________________________________________ 107
6.3.2. Esquema de desarrollo. _________________________________________________________ 108
6.3.3. Captura de requerimientos ______________________________________________________ 109
6.3.4. Análisis ______________________________________________________________________ 114
6.3.5. Diseño ______________________________________________________________________ 117
6.3.6. Desarrollo o codificación. _______________________________________________________ 119
6.3.7. Pruebas _____________________________________________________________________ 120
7
9. Referencias/Bibliografía _______________________________________________ 153
10. Anexos ___________________________________________________________ 159
10.1. Códigos de transmisión. __________________________________________________ 159
10.2. Reglas del juego WARI. __________________________________________________ 161
10.2.1. Material ___________________________________________________________________ 162
10.2.2. Objetivo___________________________________________________________________ 162
10.2.3. Reglas ____________________________________________________________________ 162
10.2.4. Tablero ___________________________________________________________________ 162
10.2.5. Movimiento _______________________________________________________________ 162
10.2.6. Capturas __________________________________________________________________ 163
10.2.7. Reglas Suplementarias _______________________________________________________ 164
10.2.8. Fin de la Partida ____________________________________________________________ 165
10.2.9. Breves notas sobre técnica y estrategia _________________________________________ 166
8
Índice de ilustraciones
10
Índice de tablas
Tabla 1: Glosario 16
Tabla 2: Tabla de propiedades del mensaje 43
Tabla 3: Tabla de operaciones de los mensajes 44
Tabla 4: Tabla de relaciones entre agentes 46
Tabla 5: Tabla de rol 56
Tabla 6: Tabla de modelos de Prometheus 65
Tabla 7: Infraestructura Multiagentes 67
Tabla 8: Infraestructura RETSINA 67
Tabla 9: Ficha de objetivos 79
Tabla 10: Ficha de objetivos 79
Tabla 11: Ficha de entorno 81
Tabla 12: FIcha de actores 82
Tabla 13: Ficha de rol 84
Tabla 14: Ficha de agentes 85
Tabla 15: Ficha de roles 87
Tabla 16: FIcha de protocolo 88
Tabla 17: FIcha de mensaje 89
Tabla 18: Ficha de acciones 90
Tabla 19: Ficha de riesgo 91
Tabla 20: Ficha de conocimiento 93
Tabla 21: Ficha de prueba unitaria 94
Tabla 22: Explicación cursograma 107
Tabla 23: Ficha de objetivos objPpal 123
Tabla 24:Ficha de objetivos objRecibir 124
Tabla 25: Ficha de objeticos objCoordinaOper 124
Tabla 26: Ficha de intorno entIA 125
Tabla 27: Tabla de entrada 126
Tabla 28: Ficha de rol rolEntrada 126
Tabla 29: Ficha de rol rolSalida 127
Tabla 30:Ficha de objetivos objPpal con recursos 127
Tabla 31:Ficha de objetivos objPpal con restricciones 128
Tabla 32: Ficha de riesgo: rsgEntradaFalla 128
Tabla 33:Ficha de plan plaRecibir 131
11
Tabla 34: Ficha de plan: plaDecodifica 131
Tabla 35:Ficha de plan: plaValida 132
Tabla 36: Ficha de plan: plaCreaCoord 132
Tabla 37: Ficha de plan: plaCoordinaOper 133
Tabla 38: Ficha de plan: plaCoordinaOper 133
Tabla 39: Ficha de plan: plaCapturarSemillas 134
Tabla 40: Ficha de plan: plaProfFuturo 134
Tabla 41: Ficha de plan plaSeecEstrategia 135
Tabla 42: Ficha de plan plaSelecAgujero 135
Tabla 43: Ficha de plan plaEntregaMensaje 136
Tabla 44: Ficha de plan plaGestError 136
Tabla 45: Ficha de rol rolEntrada 137
Tabla 46: Ficha de rol rolCoordinador 137
Tabla 47: Ficha de rol rolAgujero 138
Tabla 48: Ficha de rol rolSalida 138
Tabla 49: Fichas de conocimietno knoCoordinador knoAgujero 139
Tabla 50: Fichas de mensajes msgPedido y msgProfundidad 140
Tabla 51: Fichas de mensajes msgRespuesta y msgOk 140
Tabla 52: Ficha de protocolo proSinProfundidad y proConProfundidad 141
Tabla 53: Fichas de protocolo: proEntrada y proSalida 141
Tabla 54: Fichas de agentes entFrontera y entCoordinador 144
Tabla 55: Ficha de agentes entAgujero 144
Tabla 56: Ficha de pruebas pruFro01 y pruFro02 145
Tabla 57: Ficha de pruebas pruFro03 y pruFro04 145
Tabla 58: Fichas de pruea pruCoo01 y pruCoo02 146
Tabla 59: Fichas de pruebas pruCoo03 y pruCoo04 146
Tabla 60: Fichas de pruebas: pruCoo05 y pruCoo06 146
Tabla 61: Fichas de pruebas: pruAgu01 y pruAgu02 147
Tabla 62: Ficha de prueba pruAgu03 147
12
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Resumen
La idea del proyecto es, en primer lugar dar una introducción teórica de los sistemas
multi-agente, a continuación se analizarán las diferentes metodologías de desarrollo
de sistemas multi-agente. Siguiendo una de ellas, se realizará el análisis y el diseño
para el futuro desarrollo de una aplicación de inteligencia artificial para el sistema
SPIA-Wari (desarrollado como trabajo práctico final de pregrado). Luego, el presente
proyecto es una consecuencia de los problemas hallados para el desarrollo del
proyecto de pregrado desarrollado en el año 2014.
13
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Palabras clave
14
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
IA Inteligencia Artificial
GPL La GNU GPL (General Public License o licencia pública general) es una
licencia creada por la Free Software Foundation a mediados de los 80, y
está orientada principalmente a proteger la libre distribución, modificación
y uso de software. Su propósito es declarar que el software cubierto por
esta licencia es software libre y protegerlo de intentos de apropiación que
restrinjan esas libertades a los usuarios.
http://www.gnu.org/copyleft/gpl.html
http://www.garaitia.com/new/gpl-spanish.php
Software Software libre (en inglés free software) es el software que, una vez
Libre obtenido, puede ser usado, copiado, estudiado, modificado y
redistribuido libremente. El software libre suele estar disponible
gratuitamente, pero no hay que asociar software libre a software gratuito,
aunque conserve su carácter de libre, puede ser vendido.
http://www.fsfla.org/
15
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Agujero Posición del tablero. Son las casillas en dónde se desarrolla el juego.
Almacén Posiciones extremas del tablero que almacenan las fichas ganadas por
cada uno de los jugadores
Tabla 1: Glosario
16
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
1. Introducción
Inteligencia: Los sistemas son cada vez más complejos y, muchas veces, esa
complejidad se traduce en un comportamiento cada vez más inteligente.
Si bien, hablar de inteligencia podría requerir de libros enteros, hay que admitir
que muchos elementos actuando de cierta manera, podría constituir un
comportamiento inteligente.
Por ejemplo, una hormiga sola, no es un organismo inteligente, pero un
hormiguero, ¿no tiene una sociedad organizada?
Para tener una sociedad organizada, se requiere de un tipo de inteligencia.
Luego, tienen hormigas guerrero, trabajadoras comunes, reproductoras,
agricultoras y, por supuesto, la reina. Por separado, las hormigas funcionan de
manera elemental, pero juntas, presentan una inteligencia distribuida.
17
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
tránsito, etc.
Paradigma procedural
Assembler
Cód máqu
18
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
pensar se los seres humano. En los primeros tiempos, los primeros programadores
eran considerados gurús, y la programación era oscura y elitista.
En la actualidad, puede programar toda persona que posea un mínimo de
conocimiento. Y este camino lleva (entre otras bifurcaciones) a la programación
orientada a agentes.
Como se podrá comprobar, en la primera parte de éste trabajo, los seres humanos
piensan y se comportan como agentes.
19
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
20
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
21
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
ANEXOS:
Al final del trabajo, se presentarán anexos con el reglamento del juego SPIA Wari, las
características que deben tener las IA para el juego, la codificación para la
comunicación.
22
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Agente
Agentspeak
Prometheus Concepto
Definiciones
Componentes
Tropos
Gaia
INGENIAS
Agente Agente
MESSAGE
ZEUS
MASBMethod Agente
Agente
METODOLOGÍAS
CoMoMAS DE DESARROLLO Organización del
sistema
multiagente
CommonKAD
Cassiopeia
MeDeSMAGF
Desire
Comunicación
Archon RETSINA entre agentes
MADE PASSI
ACL
AAII/BDI Agent Communication
Languaje
ODAC
23
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
24
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Propósito de la sección
2. De los agentes
2.1. Introducción
Películas como Terminator con una inteligencia distribuida como Skynet se trata de
un posible escenario no muy lejano. De hecho, en la actualidad, aviones no tripulados
como los MQ-1 Predators norteamericanos, pueden llevar misiles AGM114 Hellfire y
tienen cierta autonomía operativa. El MQ-9 Reaper puede llevar armamento hasta
4500 Kg.
Ilustración 3:Predator
25
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ilustración 4: Volk-2
Como hemos visto en la introducción de éste trabajo, una de las tendencias es dotar
a los sistemas de más y más "inteligencia" y "autonomía". Hasta hace poco tiempo,
los programas tenían que ser guiados por un operador, pero en ciertas operaciones el
esperar por la acción de un humano, puede hacer peligrar los objetivos del sistema
entonces, se opta por darle más autonomía.
Veamos los siguientes escenarios:
Operaciones de trading: en el mundo de los negocios de bolsa, las operaciones
son cada vez más rápidas. Hay sistemas que se encargan de monitorear
segundo a segundo el valor de las acciones. Muchas veces, el operador tiene
que estar siguiendo decenas o centenas de acciones para poder actuar y debe
comprar y vender las mismas en cuestión de minutos para obtener ganancias
significativas. Es imposible, físicamente, semejante atención en un humano.
Para poder automatizar esas operaciones se opera con agentes software con
algoritmos que reconocen ciertos patrones o que se activan cuando se dan
ciertas características en los valores de las acciones y que tienen posibilidad
de comprar o vender.
Operaciones espaciales: El envío de robots a explorar diferentes planetas,
asteroides y cometas son cada vez más frecuentes. Una sonda planetaria como
el Oportunity de la NASA que se encuentra explorando el planeta Marte desde
2004, tiene un comportamiento autónomo que le permite tomar ciertas
decisiones sin necesidad que control de misión la corrobore.
26
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ilustración 5: Oportunity
Hay que tener en cuenta que, en el mejor de los casos, el tiempo que requiere
la información de los sensores desde Marte hasta La Tierra y la vuelta con las
instrucciones (suponiendo que el operador de misión responda
inmediatamente), lleva varios minutos ya que la velocidad de las
comunicaciones no es infinita, no son instantáneas, no pueden superar la
velocidad de la luz. Incluso hay que tener en cuenta que en muchos casos la
comunicación se torna imposible ya que La Tierra y Marte se encuentran en los
puntos opuestos de las órbitas con el Sol en el medio.
Operaciones de vuelo en aeronáutica: Los sistemas electrónicos de un avión,
en especial en un avión de combate, cumplen con sus objetivos de manera
autónoma para quitarle ciertas responsabilidades a los pilotos como mantener
la estabilidad y el sistema de puntería,
Operaciones en una central nuclear: No requiere de mucha explicación el darle
autonomía a los sistemas de seguridad de una central nuclear.
27
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Para poder ver la diferencia entre ambas tecnologías, Wooldridge enunció muy
claramente las diferencias entre agentes y objetos. Veamos la siguiente lista:
Los agentes tienen autonomía, los objetos no. Veremos más adelante en la
definición de agente que un agente recibe un estímulo y realiza una acción. Es
él mismo quien decide cuándo aceptar el estímulo y cómo reaccionar ante él.
Los objetos, al igual que los agentes, se comunican utilizando mensajes, que
no son otra cosa que métodos públicos que se activan para realizar sus
28
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
29
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
trabajo), si para una solución se pueden aplicar tanto tecnología MAS como
POO o cualquier otra, hay que optar siempre por la que sea más sencilla.
Para mi proyecto debo desarrollar mi propia arquitectura: Durante el transcurso
de los años, se desarrollaron muchas arquitecturas de agente. Sin duda hay
alguna que se amolde al proyecto. Desarrollar una arquitectura como
corresponde, puede llevar mucho tiempo (años).
3. El concepto de agente
3.1. ¿Qué es un agente?
Como todo concepto de éste tipo, que es un concepto aprovechado desde otro
dominio, tiene una definición un tanto controversial.
¿Por dónde empezar?
Empezamos por la definición que da la Real Academia Española y la etimología de la
palabra:
"Un agente inteligente es una entidad capaz de percibir su entorno, procesar tales
percepciones y responder o actuar en su entorno de manera racional, es decir, de
manera correcta y tendiendo a maximizar un resultado esperado. Es capaz de percibir
su medio ambiente con la ayuda de sensores y actuar en ese medio utilizando
actuadores (elementos que reaccionan a un estímulo realizando una acción)"
30
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ilustración 6:Agentes-Entorno
Por las definiciones que se plasmaron hasta ahora, podemos ver que es aplicable a
un agente humano, biológico, químico, etc. En cualquiera de ellos se aplica el
concepto a la perfección.
Un agente no es, necesariamente, un robot, pero un robot, que sin duda es un agente,
nos permite hacernos una idea de lo que es un agente.
Un robot se mueve dentro de un entorno específico. Si se diseña una sonda espacial,
tendrá su utilidad en el espacio. Sus sensores y efectores o actuadores, interpretarán
y operarán correctamente si están en el entorno apropiado.
El robot tiene sensores a través de los cuales puede percibir su entorno. Puede
tratarse de bigotes si tiene que moverse evitando impactar superficies, ultrasonido si
tiene que medir distancias, sensores de presión, si tiene que levantar objetos o visión
si debe cumplir con objetivos observacionales.
Hasta aquí el robot percibe el mundo y, cuanto mucho, realiza un mapeo de ese
entorno en su interior. De manera que, si necesitamos y deseamos (lógicamente para
eso lo desarrollamos) que modifique su entorno (haga algo), se le agregan actuadores
apropiados a la tarea a realizar. Los efectores son las herramientas que tiene el
robot/agente para actuar sobre el medio. Puede tratarse de ruedas o patas para
moverse, brazo mecánico para realizar ciertas operaciones, parlantes para emitir
sonidos o pantallas para mostrar información.
31
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
32
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
33
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
34
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Las acciones que puede realizar un agente son de muy variada índole:
Recopilación de información
ordenamiento de información
almacenamiento de información
coordinación de otros agentes
realización de tareas físicas
creación de otro agentes
transportar objetos (físicos, lógicos, otros
Ilustración 8: Robot de SUMO agentes)
(Parallax)
etc.
Sin duda, el límite es la imaginación del diseñador.
Una de las condiciones que establece la definición que estamos analizando es que
realice las operaciones en forma autónoma. En éste momento necesitamos
comprender la diferencia entre un sistema autónomo y un sistema automático.
Para plantear la distinción entre los sistemas automáticos y autónomos, primero
veremos que dice el diccionario de la Real Academia Española sobre las palabras
automático y autónomo:
Entonces podemos decir que un Sistema Automático es un sistema que tiene una
serie de pasos prefijados que cumplirá indefectiblemente desde el principio hasta el
final. El salteo de algunos pasos dependerá de la programación, pero jamás será
decisión del propio sistema. Por otro lado, un Sistema Autónomo es aquel que no
necesita de la supervisión de un operario. Tomará decisiones de acuerdo a las
condiciones del entorno y almacenará su experiencia en su memoria interna. El
35
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
36
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
37
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
4.1. Introducción
La única manera de que los agentes interactúen entre ellos es que tengan algún tipo
de comunicación. El agente no puede cumplir con sus propios objetivos sin considerar
los de los otros. En algunos casos, un agente necesitará de la asistencia de otros para
llegar a sus metas; en otros casos, deberá competir con otros agentes por el acceso
a recursos y en otras oportunidades deberá negociar con sus contrincantes porque
sus objetivos pueden ser opuestos.
A la interacción entre los agentes se la denomina habilidad social. Esa habilidad puede
manifestarse a través de la cooperación, coordinación y negociación. La única manera
de interactuar sería usando algún lenguaje de comunicación.
En este punto se intentará responder a las preguntas: ¿Qué es comunicar? ¿qué
comunicar? y ¿cómo hacerlo?
38
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Como se ha hecho en otros puntos, nos remitiremos a la RAE para tener una primera
aproximación de lo que es comunicar.
39
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
4.2.4.2. FIPA-ACL
El FIPA-ACL es un estándar definido por Fundation for Intelligent Physical Agents
(FIPA – www.fipa.org) donde ACL significa Agent Communication Languaje.
Inicialmente analizaremos la composición de un mensaje FIPA-ACL.
41
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
42
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Realización
Paso de Solicitud de Manejo de
Acto comunicativo Negociación de
información infromación errores
acciones
accept-proposal ×
Agree ×
Cancel ×
Cpf ×
Failure ×
Inform ×
43
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
not-understood ×
Propose ×
query-if ×
refuse ×
reject-proposal ×
Request ×
request-when ×
request-whenever ×
Subscribe ×
44
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
4.2.4.3. KQML
KQML es la sigla para Knowledge Query and Manipulation Languaje (Lenguaje de
consulta y manipulación de conocimiento. El mismo ha sido desarrollado en el
programa ARPA Knowledge sharing effort (Esfuerzo de compartición de conocimiento
de ARPA).
KQML es tanto un formato de mensaje como un protocolo de manipulación de esos
mensajes. Se enfoca en un conjunto de enunciados performativos (son enunciados
que al utilizarse realiza la acción que significa). Que define las operaciones que los
agentes pueden intentar basado en los conocimientos de otros agentes y apuntando
a los objetivos. El desarrollo de este lenguaje se basa en la teoría de actos del habla.
Las oraciones expresadas por los humanos no siempre aseveran un hecho, pueden
transmitir una creencia, un conocimiento, una intención o un deseo. Además puede
establecerse una relación entre el estado interno de un agente y de los mensajes que
intercambia con los demás agentes. Como redes de contactos y negociación entre
agentes.
Características KQML:
El lenguaje KQML cumple con los estándares FIPA (Foundation for Intelligent
Phisical Agents,).
Los mensajes, además de tener una sintaxis y una semántica, comunican una
acción apoyada por el contenido (solicita, consulta, niega afirma, etc.)
Las primitivas del lenguaje se llaman ejecutivas
o performativa
o acción
o realizativos
Estas primitivas señala las intenciones y las acciones de los agentes influyendo
en la base de conocimiento de los otros agentes.
Es posible definir unos agentes especializados que se denominan agentes
facilitadores cuya función es coordinar la interacción entre otros agentes.
Realizando las siguientes acciones:
o Asociación de direcciones físicas con nombres simbólicos
o registro de bases de datos
o registro de servicios ofrecidos
o registro de servicios buscados por los agentes
o servicios de comunicación (reenvío, intermediación, etc.).
45
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Como es posible imaginar, el trabajar con sistemas multi-agente, significa algún tipo
de coordinación de los sistemas multi-agente.
Pueden concebirse muchos agentes siguiendo un objetivo sin tener ningún tipo de
coordinación, mientras los objetivos sean simples. Pueden colaborar, lo que sin duda
requiere coordinación o pueden competir.
Reducción de intervalos
Temporal
Extensión de intervalos
Recursos
Reducción de recursos
insuficientes
Competitivo
Material Sustitución de recursos
Tipo de
Cancelación de acciones
relación
Objetivos Incompatibles
En el caso de una relación competitiva, los agentes deben competir por algún recurso
escaso. Esa escasez no significa faltante. Es que, en un instante dado, lo esté usando
otro agente. Por ejemplo el acceso a un determinado efector o una línea de
comunicaciones en un instante dado.
Lo más interesante es cuando los agentes tienen objetivos incompatibles en donde se
dan negociaciones, intermediación, etc.
46
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
5.1. Introducción
5.1.1. Introducción
La palabra metodología proviene del griego μέθοδος que provinene a su vez de μετά
que significa más o meta, objetivo, οδως (odós) significa camino y λογος (logos)
significa estudio. Podemos decir que metodología es el camino, el conjunto de
procedimientos racionales que se utilizan para alcanzar el objetivo o la gama de
objetivos. Con frecuencia puede definirse la metodología como el estudio o elección
de un método pertinente o adecuadamente aplicable a determinados objetos.
La metodología supone sistematizar las series de procedimientos, la organización de
los pasos a través de los cuales se ejecutarán los procedimientos. No es posible
investigar sin pensar en la secuencia lógica de pasos que, necesariamente, deben
cumplirse para lograr cumplir con los objetivos de manera racional y segura.
5.2.1. Introducción
Según [35] y [36] podemos basarnos en cuatro componentes para evaluar un marco de
trabajo para el análisis:
Criterio de procesos: se analiza el proceso de desarrollo de sistemas multi-
agentes
Criterio de técnicas: se analiza el acceso a técnicas para desarrollar un sistema
multi-agentes
47
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
5.3.1. Introducción
En ésta sección realizaremos una vista a vuelo de pájaro de las diferentes
metodologías definiéndolas brevemente y brindando lugares donde obtener más
información de la misma. Algunas de estas metodologías han sido abandonadas por
sus autores.
La mayoría de las metodologías tienen una gran influencia de las orientadas a objetos
y otras del proceso unificado de desarrollo de software (RUP)
Requerimiento de informaciones
4. Refinamiento e introducción de las instancias de agentes (lo que indica que es
una metodología iterativa).
Estos pasos se plasman en los modelos de agentes y en los modelos de interacción.
Teniendo en cuenta el nivel interno, podemos considerar dos pasos:
Análisis del plan para lograr los objetivos
Contextos
Condiciones
Sub-objetivos
Acciones
Gestión de errores
Consideraciones de las creencias (conocimientos internos que tiene el
agente y análisis de las entradas y los requerimientos de salida)
Éstos pasos definen el propósito y los objetivos de un agente.
Al final, el sistema está conformado por una jerarquía de agentes que cumplen roles
y están afectados por la interacción entre los roles. Los roles y las interacciones entre
los roles son invariantes en el tiempo.
Estos agentes tienen una estructura organizacional rígida y, por ende, no es muy
maleable cuando el ambiente es dinámico.
Cassiopeia [1][38], fue propuesta por Collinot et. al. Es de naturaleza bottom-up, en
contraste a GAIA y AAII que es up-bottom. Se comienza analizando los
comportamientos necesarios para realizar una tarea.
La metodología Cassiopeia adopta la aproximación orientada a la organización de los
agentes hacia los agentes.
Las fases del ciclo de vida de Cassiopeia comienzan con la definición de las tareas
colectivas del sistema al diseño del sistema multi-agentes a través de dos fases: la
iniciación y la construcción.
Cassiopeia modela a los agentes a través de sus roles que tienen tres capas:
Roles dependientes del dominio: comportamiento individual de los agentes.
Roles relacionales: cómo interactúan los agentes entre sí.
Roles organizacionales: como se agrupan los agentes.
Propone tres pasos:
49
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En la RoboCup 2001[37], uno de los equipos fue diseñado por Collinot usando esta
metodología que se enfoca en los temas organizacionales analizando las
interdependencias de las especializaciones de bajo nivel, facilitando la formación de
grupos usando esas interdependencias.
50
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
o Nivel de dominio
o Nivel de inferencia
o Nivel de tarea
Modelo de diseño: describe la arquitectura y diseño técnico del KBS (es en el
que hay que basarse para realizar el desarrollo y la implementación)
Modelo de Modelo de
tareas experiencia
AGENTE
Modelo de Modelo de
sistema cooperación
Análisis funcional: debe identificar las tareas a ser resueltas por el sistema
multi-agentes. También deben identificarse las dependencias de datos y de
control entre las tareas. Los resultados del análisis funcional se recaban en el
modelo de tareas.
Análisis de requerimientos: debe identificar los requerimientos de diseño del
sistema multi-agentes. El resultado de este análisis se consignan en el modelo
de diseño. También del análisis de requerimientos surge información para
identificar a los agentes a crear.
52
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Diseño conceptual
Descripción del problema
Diseño racional
Diseño conceptual
Diseño conceptual
53
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
DESIRE tiene ventajas: permite una delimitación clara entre componentes y tareas,
permite una buena modularidad, el lenguaje para especificación formal permite un
diseño conceptual y un diseño detallado, utiliza una herramienta gráfica para el diseño
y especificación; y tiene herramientas de verificación para chequear consistencia,
acciones completas y correctas. Otra ventaja es que la herramietna de prototipade
está construida en SWIProlog y se integra fácilmente con JAVA.
54
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Como todas las metodologías, GAIA define conceptos. En éste caso los conceptos
pueden ser concretos o abstractos:
Concretos (son los resultados del diseño del sistema)
o Tipos de agentes
o Servicios
o Conocimientos
Abstractos (conceptualizan el sistema durante el análisis)
o Sistema
o Roles
o Permisos
o Responsabilidades
o Protocolos
o Actividades
o Propiedades de seguridad
o Propiedades de vida
Especificación
requerimientos
Modelo de
Modelo de roles Fase de Análisis
interacción
55
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Sistema
Roles Interacciones
Responsabilidades Permisos
ROL Nombre_del_rol
Descripción Descripción del rol
Protocolos y actividades Los protocolos y actividades en los que el rol está
involucrado
Permisos Permisos o derechos asociados al rol
Responsabilidades
Ciclo de vida Responsabilidades en el ciclo de vida, lo que debe
hacer
Seguridad Listado de predicados sobre los límites del rol
56
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Identificar roles
Análisis
57
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
El proceso envuelve a dos flujos: Análisis y Diseño, con tres fases cada uno:
Comiendo, elaboración y construcción.
Análisis:
o Comienzo: Como está basado el RUP, lo inicial es identificar los actores
y los casos de uso en los que se encuentran involucrados. Esos casos
de uso deben modelar la organización y deben tomar los elementos de
interacción con el entorno. Se modeliza a los actores como agentes que
deben cumplir con esos casos de uso. Debe guiarse por los puntos de
vista enunciados previamente.
58
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
59
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
AgentTool es una herramienta desarrollada para poder soportar MaSE: crea clases
de agentes, construye conversaciones y ensambla las clases de agentes.
60
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Vista de
entorno
Vista de
Vista de
arquitectura
Tareas
Vista de
sistema
Vista de
Vista de
roles
sociedad
Vista de
interacción
61
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Organización
Rol
Objetivo
Y las actividades:
Tarea
Servicio
Interacción
Protocolo de interacción
63
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
65
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Seguridad Seguridad
Autoridad de certificación - Servicios criptográficos Módulo de seguridad - Claves públicas/privadas
66
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Entorno operativo
Máquina, S.O., Red – Multicast - Capa de transporte: TCP/IP, Inalámbrico, infrarrojo, SSL
En RETSINA, sería:
Seguridad Seguridad
Autoridad de certificación - Servicios criptográficos Módulo de seguridad - Claves públicas/privadas
Entorno operativo
Máquina, S.O., Red – Multicast - Capa de transporte: TCP/IP, Inalámbrico, infrarrojo, SSL
67
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Respuestas
Origen de
infromación1 Origen de
infromación r
Origen de
infromación1
Graficamente
68
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Análisis
o Conceptualización
Modelo estructural inicial: describe la estructura del dominio del
problema.
Modelo de tarea inicial: cómo los problemas hallados en el
dominio son solucionados (basados en tareas y métodos)
o Análisis extendido
Modelo de entorno: define las entidades externas al sistema y sus
interacciones.
Modelo estructural: describe las estructuras que proviene del
dominio de conocimientos, de las entidades externas.
Modelo de tareas: funcionalidades necesarias para interactuar
con las entidades definidas en el modelo de entorno.
Diseño
o Síntesis
69
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
70
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Posición: abtracción entre un rol y un agente. Se dice que un agente ocupa una
posición cuando cumple con cierto conjunto de roles.
71
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Dependencias:
o Dependencia de objetivo: Un actor depende de otro para cumplir con un
objetivo.
Tropos tiene algunas críticas. No está bien adecuada al mundo real, todavía está en
desarrollo y aún no ha madurado en la especificación y diseño de agentes de sistema
72
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Definición de tareas: Se analiza y detallan las tareas que debe realizar cada
agente.
Organización de los agentes: Una vez definidos los agentes y las tareas que
realizan, debe analizarse los conocidos de cada agente, que información
pueden requerir y qué información deben compartir, formando una especie de
organización de los agentes.
Coordinación de los agentes: Se definen los protocolos de comunicación de
cada agente, lo que permite que trabajen coordinados.
Generación de código y implementación de tareas: una vez que está todo
definido, las herramientas permiten la generación del código y la prueba de lo
desarrollado.
Graficamente [69]
73
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
74
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
75
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.1. Introducción
En los capítulos precedentes se intentó dar una visión a vuelo de pájaro de lo que es
la teoría en sistemas multi-agentes.
Este marco teórico permite poder comprender qué es lo necesario para definir y tener
en cuenta al momento de armar una metodología de desarrollo de sistemas multi-
agentes: Como se conforma un agente y qué tipos de agentes podemos usar en
nuestros sistemas, cómo se comunican los agentes, cómo es posible la coordinación
entre ellos y los desarrollos hechos por los investigadores en torno a metodologías
que nos puedan servir como guía en el desarrollo de la parte final de este trabajo.
La intención es que la metodología pueda aplicarse a sistemas informáticos, sistemas
humanos y sistemas mixtos, por ello se dejan de lado las condiciones referentes a los
lenguajes de programación que deberían surgir a fines de la etapa de diseño.
La mayoría de las metodologías de desarrollo de software tienen diferentes fases que
pueden tener nombres que pueden variar como captura de requerimientos, análisis,
diseño, desarrollo, pruebas e implementación.
En el desarrollo de agentes podemos ver que muchas metodologías abarcan solo las
fases de análisis y diseño dejando libertad en las otras. En el presente trabajo se
intentará cubrir el proceso completo de desarrollo de software.
76
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.1.3. Notación
De la misma forma, el nombre unívoco que se coloca luego del prefijo, será un
sustantivo (o construcción sustantiva), una acción (verbo o construcción verbal) o un
adjetivo; según se enuncie en las definiciones que se describirán a continuación.
Si bien durante toda la introducción teórica se han desarrollado los conceptos que se
definirán a continuación, es importante que se entienda qué significan en el contexto
de ésta metodología.
MeDeSMAGF se basa en la generación y depuración de fichas.
A fin de facilitar el proceso de desarrollo, a modo de guía, se definirá, para cada
concepto, la ficha que debería ser completada y refinada durante el proceso de
desarrollo de software.
Las fichas junto a los modelos a los que deban incorporarse, forman la columna
vertebral de ésta metodología.
6.1.4.1. Objetivo
Los objetivos o metas son los intereses que tienen los diferentes actores.
Los objetivos los podemos clasificar:
77
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
78
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ficha de objetivos
Nombre del objetivo Tipo de objetivo:
Descripción
Actividades: Roles:
Recursos:
Restricciones:
A fin de poder determinar los objetivos debe partirse de los objetivos del sistema multi-
agentes e ir retrocediendo hasta llegar a los objetivos unitarios que se le asignarán a
los diferentes planes o roles.
Esquema:
En los modelos, los objetivos se esquematizarán como una elipse con el nombre del
objetivo inserto en ella:
79
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Objetivo primario
Objetivo secundario
Notación:
Prefijo: obj
Identificador: Verbo o frase verbal que indica la acción.
6.1.4.2. Entorno
El entorno, también llamado medio, es todo lo que rodea al sistema y tiene algún tipo
de interacción con él.
Es el que brinda los recursos para que pueda operar el sistema multi-agentes. El
entorno incluye, y no está limitado a, lugar de operación (en caso de ser sistemas
humanos o mixtos), equipamiento, sistema operativo, memoria, etc.
Los entornos pueden ser estáticos en donde está básicamente definido y no tiene
mucho cambio a lo largo del tiempo de ejecución del sistema multi-agentes; o
dinámicos en donde la información es incierta y no siempre completa, de manera que
debería analizarse el uso de lógica difusa. Es posible definir más de un entorno que
se conecte al sistema. Con esto se puede determinar que el sistema debe funcionar
inmerso en varios entornos, posiblemente con diferentes recursos.
El entorno debe estar bien descripto y no debe omitirse nada que pueda afectar al
sistema.
Esquema:
El entorno se representa en los modelos como una nube:
80
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Entorno
Notación:
Prefijo: ent
Identificador: sustantivo o frase substantiva que identifique al entorno.
Ficha de entorno
Nombre del entorno:
Descripción
Actores: Roles:
Recursos: Restricciones:
81
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.1.4.3. Actor
El actor es, generalmente una entidad externa al sistema que tiene intereses sobre él,
exigiendo alguna funcionalidad. El actor no es necesariamente un humano, puede ser
otro sistema.
Lo primero que veremos en la captura de requisitos es la identificación de él o los
actores.
Ficha de actores
Nombre del actores: Tipo de actor:
Descripción
Recursos: Restricciones:
Agentes:
Esquema:
82
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Notación:
Prefijo: act
Identificador: sustantivo o frase substantiva que identifique al actor.
6.1.4.4. Rol
83
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ficha de roles
Nombre del objetivo
Descripción
Actividades: Objetivos:
Agentes:
Planes: Restricciones:
Rol
Notación:
Prefijo: rol
Identificador: sustantivo o frase substantiva que identifique al entorno.
84
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.1.4.5. Agente
Ficha de agentes
Tipo de agente
Nombre del agente
Descripción
Roles: Actores
Tecnología utilizada:
Lenguajes de programación:
85
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Esquema
Los agentes se representarán en los modelos como rectángulo con líneas verticales
en los costados y el nombre asignado al agente dentro:
Agente
Notación:
Prefijo: ent
Identificador: sustantivo o frase substantiva que identifique al agente.
6.1.4.6. Plan
Un plan es una secuencia de tareas o actividades que se asocia a un rol para que
cumpla con su objetivo.
Debe especificarse claramente la lista de actividades u tareas que integran el plan y
debe tenerse en cuenta que el plan puede ser extremadamente complejo. Se puede
desarrollar textualmente o utilizando diagramas de flujo.
86
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Esquema
Los planes se representarán en los modelos como:
Plan
Notación:
Prefijo: pla
Identificador: acción o frase verbal que identifique al plan.
6.1.4.7. Protocolo
Es parte fundamental en los sistemas multi agente las comunicaciones entre los
agentes y los agentes y el entorno. A fin de definir las comunicaciones, se establecen
los protocolos de interacción. Los protocolos entre agentes y entre agente y entorno,
se graficará como un sistema de anda-niveles (para establecer la secuencia) y un
esquema de mensajes.
87
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ficha de protocolo
Nombre del protocolo
Descripción
Rol destino:
Secuencia de mensajes
Diagrama de secuencias:
88
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ficha de mensaje
Nombre del mensaje:
Descripción
Esquema:
Protocolo
Mensaje
Notación:
Prefijo: msg
Identificador: sustantivo o frase substantiva que identifique al mensaje.
89
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Prefijo: prt
Identificador: sustantivo o frase substantiva que identifique al protocolo.
6.1.4.8. Acciones:
Ficha de acción
Nombre de la acción:
Descripción
Acciones/procedimiento: Restricciones:
Esquema:
Esquema:
90
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
accTomaPieza
Prefijo: acc
Identificador: verbo o frase verbal que identifique la acción.
6.1.4.9. Riesgo:
Ficha de riesgo
Tipo de riesgo
Nombre del riesgo:
Alto Medio Bajo
Descripción
Impacto:
Indicadores:
Estrategia de mitigación;
Plan de contingencia:
91
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Esquema:
Notación:
Prefijo: rsg
Identificador: sustantivo o frase substantiva que identifique al riesgo.
6.1.4.10. Conocimientos:
92
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ficha de conocimiento
Nombre del conocimiento:
Descripción
Variables/predicados: Rol/Agente:
Esquema:
knoConocimiento1
iCantFichas
iIdAgujero
Notación:
Prefijo: kno
Identificador: sustantivo o frase substantiva que identifique al conocimiento.
93
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Ficha de Pruebas
Tipo de
Nombre de la pueba Prueba:
Descripción
Entradas:
Observaciones
Esquema:
pruPrueba
94
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
El modelo de entorno nos permite tener una visión de las necesidades del sistema
multi-agentes y de las condiciones a las que se verá sometido. Deben consignar
principalmente los actores involucrados, los entornos definidos y las restricciones.
Entorno 1 Entorno 2
rsgSistema1
rsgSistema2
.....
msgRol2Ent1
msgRol13Ent1
msgRol4Ent2
msgEnt2Rol4
Actor1
Rol1 Rol 2 Actor 2
Rol 4
Actor 3
SIstema
En caso de considerarlo necesario, el analista puede agregar los roles que tienen
intercambio directo con el entorno.
Se sugiere es tener en cuenta los mensajes que se intercambian entre el entorno y el
sistema.
Hay que recordar que los roles son los que tienen los objetivos asociados. Es posible
que un rol tenga más de un objetivo, de manera
95
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
rsgConsumoRecursos
objDetermJugada3 objDetPuntuación3
objRecibiAnálisisAgentes
objPerdirAsistAgent objDetermJugada4 objDetPuntuación4
esq
objEnviarJugada
objDetermJugada5 objDetPuntuación5
objDetermJugada6 objDetPuntuación6
objVerificaPosibilidades objDetermJugada6
objRecibeEstado
objSelecciona
Si se considera complejo un objetivo, se puede ampliar con los objetivos internos que
lo forman.
Los objetivos sirven como base para la generación de roles. Un rol puede tener uno o
más objetivos. Los mismos deben estar jeraquizados y, dentro de un mismo rol, no
deberían ser contradictorios, o si lo son, al estar jerarquizados, estará claro a cual de
esos objetivos se le dará prioridad.
96
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Agente
accApagaCircuitos
msgActiva
rolOperador
rolVerificador
rolCoordinador
rolMuestra
msgDeter msgConsu
msgAltera
accElevaTemp msgInfor
rolAnalizador
97
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Por otra parte, dependiendo del sistema, los agentes se registran con el agente
coordinador quién lo da de alta en una base de datos del sistema
Un agente puede tener un tipo de modelo de conocimientos mientras otros tener otro
completamente distinto, de manera que los modelos de conocimiento se asocian a
roles o agentes.
Por lo general, la unidad de desarrollo es el agente, de manera que una vez diseñado
y depurado el modelo interno de agentes, se estaría en condiciones de iniciar la
programación.
Objetivo primario
knoConocimiento1
iCantFichas
iIdAgujero
Agente2
98
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Rol1
99
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
msgSolucitudServicio
msgBuscarInfo
msgComprendido
msgReactivación
msgHallado
msgRespuesta
msgComprendido
100
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.2.7.3. Estado
Procesando
6.2.7.4. Transición
SolicitaInfo
Buscando Esperando
Hallado SolicitaInfo
Procesando Informando
101
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Inicio
6.2.8.2. Acción
plaAcción
6.2.8.3. Unión
102
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.2.8.4. Bifurcación
6.2.8.5. Decisión
Si
si
Estado
no
6.2.8.6. Flujo
103
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
11
FIN
Inicio
Fase1 no
Depurada
si
Fase2 no
no
Depurada
si
Fase3 no
Depurada
si
Refinada
si
FIN
104
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
105
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Inicio
1. Detección de la
falla
2. ¿Funciona pero
no llegan
mensajes?
NO
3. Comunicarse con
4. Estimar solución
Ing. Biomédica SI
6. Comunicarse con
Mesa de ayuda y 5.
generar ticket ¿Problema de
infraestructura
?
si
7. Comunicarse con
8. Verificar
Mesa de ayuda y
NO conectividad
generar ticket
14.
¿Problema de 9. ¿no es problema
equipamiento de infraestructura?
?
SI SI
NO NO
16.Hacer 11.Hacer
seguimiento seguimiento
Fin
106
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Fase 1
Fase 2
Fase n
107
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Dependiendo del tamaño del proyecto, es posible agregar hitos donde el aquitecto o
analista considere necesario.
108
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.3.3.1. Introducción
En la primera parte de éste capítulo hemos definido el concepto de actor para ésta
metodología.
Por cada uno de los actores hallados deben completarse los datos que se conozcan
de las fichas de actores.
Es importante comprender que, no conocer a todos los actores involucrados en el
sistema, pueden llevar a retrasos importantes o, incluso, a hacer fracasar el proyecto.
Los actores pueden ser personas físicas, organizaciones u otros sistemas.
En el caso de estar tratando con organizaciones, debe buscarse reducirlo a personas
de manera que sea más sencillo ubicar los objetivos y necesidades que pueda tener.
109
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Teniendo bien en claro los objetivos del sistema. A fin de poder buscar el entorno
deben determinarse, de manera clara, los límites del sistema. De esa determinación
110
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Las salidas del sistema son un tipo determinado de objetivos que se consideran
objetivos finales del sistema.
Pueden identificarse claramente porque estos objetivos tienen contacto con el sistema
y con el entorno estregándole información o realizando alguna acción sobre el mismo.
Este tipo de objetos nunca pueden ser sub-objetivos. En la ficha, como tipo de objeto,
se consignará primario-salida o secundario-salida.
Normalmente las salidas del sistema se dan en forma de mensajes o de acción.
Una vez que se conocen las entradas y las salidas, pueden comenzar a definir roles.
Hay un rol que es el responsable de enviar un mensaje al medio o de ejecutar una
acción sobre él. Uno de los objetivos de ese rol sería entregar ese mensaje y/o
ejecutar la acción.
Nuevamente hay un rol responsable y cuyo objetivo es recibir entradas desde el
entorno del sistema, ya sea como mensaje o interpretando una acción del medio sobre
el sistema.
En próximas etapas se definirán planes que permitan a esos roles llegar a cumplir con
los objetivos que se le van asignando.
111
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
El poder identificar los riesgos en etapas tempranas del desarrollo, y saber cómo
mitigarlos permitirá un desarrollo más tranquilo.
Como se dijo al principio de éste punto, las fichas completas van formando un
diagrama de red o de mallas. Para generar el modelo de entorno, debe considerarse
lo que se ha hallado e inscripto en la ficha de entornos lo los elementos que están
relacionados en un primer nivel.
Si el analista lo considera importante, puede agregar más de un nivel.
Paso 11: Generar el modelo inicial de objetivos con los datos obtenidos en los puntos
anteriores.
113
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.3.4. Análisis
6.3.4.1. Introducción
Este paso se basa en los planes definidos en el paso anterior y en los objetos hallados
en la captura de requerimientos. A medida que se definen los planes, es posible que
surjan nuevos objetivos secundarios, que a su vez tendrán sus propios planes.
En el modelo de objetivos generado en la fase anterior, se agregarán los nuevos
objetivos englobados y con objetivo final el objetivo que se desglosa.
114
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En base a los objetivos hallados en el paso anterior, deben realizarse planes que
permitan, a partir de los disparadores u ingresos del sistema, lograr el cumplimiento
de los objetivos. Como mínimo habrá un plan por objetivo.
A medida que se desarrollan esos planes, surgen bifurcaciones que justifican nuevos
objetivos y planes.
Cuando se define un plan que puede repetirse cierta cantidad de veces variando
entradas, salidas o conocimientos internos, estamos en presencia de un posible rol
con sus ingresos y conocimientos internos, que el plan transformará en salida en caso
de información o acción en caso de elemento físico.
Los diferentes planes pueden tener asociados Diagramas de actividades y Diagramas
de estados para poder hacer más explícitas las operaciones que se irán definiendo.
Operativamente, se sugiere realizar una lista de planes, atendiendo al detalle. Con
esto se intenta decir que los planes deben realizarse lo más atómico que se desee a
fin de simplificar el proceso de codificación y testing.
Un rol es un artefacto que modela cómo un agente participa en una relación. Los roles
tienen definidos planes, acciones y protocolos de comunicaciones y están enfocados
al cumplimiento de un objetivo. Dado que los agentes son artefactos sociales,
ineludiblemente tienen uno o más roles asociados.
Los roles son los que le dan la funcionalidad al agente y es una relación muchos a
muchos, esto quiere decir que cuando se diseñen los agentes, estos pueden cubrir
uno o más roles, y un rol puede estar incluido en uno o más agentes.
La ficha de roles sirve como guía para poder completar los datos necesarios. Las
fichas de los roles, pueden tener asociados diagrama de estados que clarifiquen la
definición del rol.
115
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
A fin de que pueda establecerse una relación entre los roles, tiene que haber algún
tipo de comunicación o interacción.
A fin de poder establecer una interacción entre roles, y por ende, entre agentes, es
necesario establecer protocolos. En éste paso se definen los protocolos de interacción
o comunicaciones entre agentes. La ficha de protocolo da una guía en el proceso de
interacción entre los roles. En caso de que la interacción sea de comunicación, debe
también establecerse claramente el formato de mensaje.
En la definición del protocolo de comunicaciones, se establece el tipo de comunicación
que habrá entre los agentes: comunicación directa (sincrónica), comunicación a través
de agente negociador (asincrónica), comunicación a través de base de datos,
comunicación a través de archivo, servicios (sincrónica), etc.
En ésta metodología MeDeSMAGF se sugiere el uso de algunos de los sistemas de
mensajes ya estandarizados como KQML o FIPA-ACL, pero puede definirse como lo
considere necesario el arquitecto/analista.
En éste punto, el arquitecto/analista puede valerse de diagramas de secuencia.
Teniendo claro los protocolos de interacción entre los roles, se puede generar el
modelo de roles del sistema multi-agente.
Éste modelo permitirá comprender las relaciones entre los roles y las posibles
comunicaciones/interacciones entre ellos.
Paso 7: Iterar
116
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.3.5. Diseño
6.3.5.1. Introducción
Durante esta fase debe comprenderse cómo vamos a hacer definido durante la fase
de análisis. Se diseñan los modelos de datos para el conocimiento de lo que puedan
ser necesarios.
Siguiendo el mismo esquema verificamos qué es el diseño para las otras
metodologías. Para AAII el diseño se enfoca en el punto de vista interno basado en el
análisis del propósito de los servicios y planes; GAIA se basa en la agrupación de
roles de agentes y define un modelo de agentes, un modelo de servicios y un modelo
de conocidos o interacciones; MASE se basa en Rational Unified Process; Tropos
trabaja el diseño arquitectural y el diseño detallado; ZEUS trabaja el diseño de los
agentes; MAS-CommonKADS aborda el diseño a través del modelo de diseño y
arquitectura; y MESSAGE adoptó el Proceso unificado de desarrollo de software.
Ya se tienen todos los elementos para poder generar las fichas de agentes, que
posteriormente se volcarán en los gráficos que forman el modelo de agentes. Al
momento de diseñar los agentes deben tenerse en cuenta los datos recabados en las
fichas de roles y que rol o roles se le asignarán al agente en cuestión. Al asignarle uno
117
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
o más roles, el agente heredará uno o varios comportamientos que dependen del
entorno o de la funcionalidad que es necesario darle. Recibirá un modo de
comunicarse con otros agentes que cumplirán otros roles y tendrá una estructura de
conocimientos heredada.
Es posible, pero no recomendable, trabajar en el diseño de un paciente que no reciba
comportamientos y estructuras de al menos un rol dado que se perderá trazabilidad
entre el análisis y el diseño del mismo.
Generar los modelos internos de los agentes es graficar lo volcado en las fichas de
agentes, para tener una comprensión visual y modular de lo que se necesario
programar.
Paso 6: Iterar.
118
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Durante ésta fase se desarrolla y codifica, si se trabaja con bases de datos, se crean
las bases de datos (tablas, índices, triggers y stored procedures) que almacenarán los
conocimientos de los roles y agentes; y se programarán los agentes.
Durante el diseño se llevó a detalle concreto cómo se deben programar los agentes.
La metodología MedeSMAGF, fue guiando el desarrollo de manera que pueda
programarse a los agentes de manera modular.
Pueden identificarse los siguientes módulos que podrían programarse de manera de
ser reusados:
Rol (un agente tiene indefectiblemente un rol, pero puede tener más de uno)
Comunicaciones
Servicios
Conocimientos
Acciones
Es importante que mientras se transita por esta etapa, se vayan desarrollando las
funciones y pasos necesarios para poder realizar las pruebas unitarias (unit testing),
119
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
6.3.7. Pruebas
6.3.7.1. Introducción
Fase en la que se comprueba que el sistema cumpla con las necesidades recabadas
durante la captura de requerimientos y el análisis y que el código no falle.
Paso 2: Testeo unitario de agente: cada agente debe ser testeado como sistema
aparte.
Este punto trata de las pruebas de comunicaciones. Se verificarán todos los puntos
de interacción directa de cada agente con el resto. Primero uno a uno, luego ir
agregando agentes hasta poder comprobar toda interacción.
En caso de no poder probar todas las conexiones ya que no se conoce a priori la
cantidad de agentes, deben probarse íntegramente todos los tipos de agentes, y tratar
de establecer una proyección de la performance de la interacción del grupo de
agentes.
120
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En este paso, se consideran realizadas todas las pruebas unitarias enunciadas en los
pasos anteriores. Cualquier falla en el testeo integral, forzaría:
Un análisis de la desviación, buscando los motivos. Es posible que la
desviación no afecte significativamente al sistema o que afecte sólo a un
objetivo secundario.
Revisión si es una falla sólo de codificación. En este caso, debe realizarse las
correcciones necesarias y volver a realizar los testeos correspondientes.
En caso de determinarse un error de análisis o diseño, debe forzar un nuevo
ciclo.
Es posible que la falla no sea relevante, o que afecte a un objetivo secundario.
En esos casos, el analista debe considerar la necesidad de iniciar un nuevo
ciclo para reparar la falla, o si se acepta la falla. En caso de que se acepta la
falla es muy importante de que quede perfectamente documentada como
limitación del sistema.
El testeo integral debe realizarse, inicialmente en un ambiente controlado. Luego ir
ampliando las variables hasta lograr un ambiente lo más cercano a la realidad.
En este paso, se plantea la generación de un checklist que permita comprobar, dentro
de lo posible, todas las opciones que puedan plantearse.
121
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
7.1. Introducción
El alcance de ésta sección del documento es servir de guía para la realización de una
Inteligencia artificial utilizando tecnología multi-agente para ser aplicada al proyecto
S.P.I.A.-Wari.
Se realizará la captura de requisitos, el análisis, el diseño y se plantearán las pruebas
de test unitario y las pruebas integrales.
Queda fuera del alcance la fase de codificación y la fase de testing de la inteligencia
artificial.
7.2.1. Introducción
Para realizar la captura de requisitos, nos basaremos en el reglamento del juego Wari
para poder comprender los objetivos de la IA a desarrollar.
122
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
7.2.2. Desarrollo
Lógicamente las cuatro primeras pautas que debe cumplir son las generales para
todos los ejecutables que quieran funcionar como IAs.
Ser un ejecutable (ya sea .com, .exe, .cmd, .vbs, .war, etc. No importa si
compilado o interpretado)
Admitir una cadena de 14 caracteres como parámetro.
Devolver un entero entre 1 y 6.
Considerar los seis primeros agujeros y el primer almacén como propios
Las pautas anteriores han sido definidas en el Trabajo práctico final para la obtención
de mi título de pregrado de “Analista de sistemas”. [70]
El principal objetivo del sistema es ganar el juego respetando las reglas asignadas en
el anexo 2.
Llevándolo a un campo medible, maximizar la captura total de fichas.
123
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
124
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
125
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
1a6 Agujeros de los cuales la IA debe seleccionar uno. Son los que se
consideran agujeros propios.
7 a 12 Son agujeros que muestran las semillas que se encuentran dentro de las
elecciones del contrincante. Son los que se consideran agujeros del
contrincante.
13 Almacén de las semillas capturadas propias. Éste es el número a
maximizar (para éste diseño). Las semillas tomadas por las jugadas
propias durante el transcurso del juego irán a parar a éste almacén.
14 Almacén de semillas del contrincante. Las semillas tomadas por las
jugadas del contrincante durante el transcurso del juego irán a parar a éste
almacén.
Tabla 27: Tabla de entrada
Los primeros roles que pueden determinarse en el sistema son los encargados de
ingresar datos al sistema y de devolver resultados al entorno.
126
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
127
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Con los datos recabados en entorno, roles y riesgos, es posible generar el modelo de
entorno.
128
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
SPIA Wari
rsgEntradaFalla
rolEntrada rolSalida
SIstema
objPpal
objRecibir objCapturarSemillas
objCoordinaOper objEntregarMensaje
7.3.1. Introducción
7.3.2. Desarrollo
129
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
130
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
131
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
132
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
133
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
134
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
135
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
136
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
138
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
139
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En el segundo caso, podemos ver que hay comunicación entre el “coordinador” y los
agujeros.
140
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
objPpal
objRecibir
objDecodifica
objCreaCoord
objValida
objCoordinaOper objEntregarMensaje
objCapturarSemillas
objSelecAgujero
objSelecEstrategia objCreaAgujeros
objProfFuturo
objGestError
objCapturarSemillas
142
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
7.4.1. Introducción
7.4.2. Desarrollo
Para diseñar los agentes, es necesario apoyarse en los roles que se han definido
durante la fase de análisis.
143
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
144
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Se desarrollarán los casos de prueba basado en los agentes y los distintos planes que
deberán ejecutar cada agente.
7.4.2.3.1. entFrontera
145
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
7.4.2.3.2. entCoordinador.
7.4.2.3.3. entAgujero.
147
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En éste sistema tenemos tres agentes. De manera que tendremos tres modelos
internos de agentes. Se utilizarán todos los gráficos que se consideren necesarios
para evitar sorpresas al momento de desarrollo.
7.4.2.5.1. entFrontera.
148
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
7.4.2.5.2. entCoordinador.
7.4.2.5.3. entAgujero.
150
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Los sistemas se complejizaron cada vez más, desde los viejos programas lineales de
las primeras computadoras como las ENIAC, a los actuales sistemas distribuidos que
funcionan en supercomputadoras. Como vimos en la introducción teórica, las
metodologías de desarrollo de software han ido acompañando esa evolución
facilitando la construcción y el manejo de sistemas complejos. En un principio, los
ordenadores trabajaban por lotes bach. Luego comenzaron a usarse las interfaces
para interactuar con los usuarios. Ahora, se espera que el usuario intervenga sólo
cuando sea necesario, que los sistemas actúen solos. Permitiendo organizar agendas,
comunicar, recordar, negociar, comprar, vender, jugar de manera realista, simular, etc.
Los sistemas de desarrollo también evolucionaron. Distintos paradigmas se fueron
creando para acompañar las necesidades de complejidad. Entre esos paradigmas se
encuentra la Programación orientada a agentes.
Debe recordarse que lo que se explicó al principio, en mitos y verdades. La
programación orientada a sistema multi-agentes, no es la panacea del desarrollo de
software, ni debería aplicarse a todos los tipos de sistemas. Es ideal cuando se trata
de sistemas distribuidos o cuando el comportamiento del sistema depende de
demasiadas variables desconocidas en donde la negociación entre agentes (o partes
del mismo) puede hacer la diferencia.
El desarrollo de sistemas multi-agentes presenta complicaciones que sólo pueden
comprenderse desarrollando uno. Sin una metodología clara que guíe durante el
proceso, los tiempos pueden dispararse y puede perderse el control del proyecto.
Por otra parte, para desarrollar una metodología es necesario comprender plenamente
las necesidades de un sistema multi-agentes, durante la captura de requerimientos,
durante el análisis y el diseño, las complejidades del desarrollo y las pruebas.
Como se pudo ver en el desarrollo del trabajo lo que se plantea es un proceso cíclico
que va completando fichas y modelos hasta lograr minimizar la incertidumbre sobre lo
que deben y no deben hacer los agentes, cómo deben comunicarse y cómo deben
interactuar con el entorno.
Las idas y vueltas para la determinación de los datos necesarios para ir completando
los pasos fuerzan al analista u arquitecto a comprender la evolución que debe seguir
el proceso durante todas las fases enunciadas. Como resultado final, obtendrá un
juego de fichas y modelos que le permitirá a los programadores, codificar limitando las
pérdidas de tiempo por reprogramación y clarificando las pruebas que se deben
realizar para asegurar un funcionamiento dentro de unos parámetros considerados
como normales.
También se puede concluir que la modelación de un sistema multi-agente puede
aplicarse a organizaciones en donde interactúan: agentes software puros, agentes
software con humanos y sistemas de humanos puros; que permite la aplicación en
151
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
152
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
9. Referencias/Bibliografía
agent based model. Journal of Artificial Societies and Social Simulation vol. 4, no. 2.
2001
http://jasss.soc.surrey.ac.uk/4/2/4.html
Rodney A. Brooks and Anita M. Flynn: Fast, cheap and out of control: A robot
[6]
invasion of the solar system. Journal of The British Interplanetary Society. Volumen
42. 1989; pp 478-485
Savage, John E.: Models of Computation, Exploring the power of computing. Brown
[7]
[8] Freeman, James A.; Skapura, David M.: Redes Neuronales, Algoritmos,
aplicaciones y técnicas de programación. Addison-Wesley/Diaz de Santos. ISBN 0-
201-60115-X. 1991
[10]J.
Febres, C. Prieto, Y. Gonzalez: Control en 2D de un asistente robótico para
cirugías laparoscópicas. Mecánica Computacional Vol XXIX. 2010; págs. 6539-6547
153
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
[14] http://www.swi-prolog.org/
[15] http://www.learnprolognow.org/
[16] http://homepages.inf.ed.ac.uk/stg/research/Psharp/
[17] http://www.gprolog.org/
[18] http://www.dobrev.com/
[19] http://ciao-lang.org/
[20] http://www.visual-prolog.com/
Zalta Edward: Basic Concepts in Modal Logic. Center for the Study of Languaje and
[21]
José Luis Fernández Vindel, Ángeles Manjarrés Riesco, Francisco Javier Díez
[23]
Jill Fain Lehman, John Laird, Paul Rosenbloom: A Gentle Introduction to Soar, an
[27]
154
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
– 2004
Robert Kowalski and Fariba Sadri: An Agent Architecture that Unifies Rationality
[29]
Jörg Müller y Markus Pischel: The agent architecture InteRRaP: Concept and
[30]
http://link.springer.com/chapter/10.1007%2F978-3-540-25943-5_7#page-1
155
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
[40]Jignesh Patel, Chetan Bhatt, “CommonKADS Model Framework for Web Based
Agricultural Decision Support System”. World Conference on Computers in Agriculture
and Natural Resources, University of Costa Rica, San Jose, Costa Rica, July 27th-
30th, 2014.
http://CIGRProceedings.org
[47]Luca
Cernuzzi, Thomas Juan, Leon Sterling, Franco Zamborelli – The GAIA
Methodology: Basic concept and extensions – 2005
[48] http://ingenias.sourceforge.net/
156
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
(Eds.) Lecture Notes in Computer Science. Vol. 1957, Springer Verlag, Berlin –
January 2001.
Engineering for Agent Systems – Srpinger – 2004 – Cap. 6 – Pág. 107 – 125
– Abril 2004
[57] http://www.cs.cmu.edu/~./blangley/commusersguide/Overview.html
[58] http://www.cs.cmu.edu/~softagents/retsina.html
Katia Sycara, Massimo Paolucci, Martin van Velsen, Joseph Giampapa, The
[59]
[61] http://www.troposproject.eu/
Paolo Giorgini, Manuel Kolp, John Mylopoulos, Pistone Marco – The Tropos
[62]
Alicia Martinez Rebollar, Hugo Estrada Esquivel, Luis Antonio Gama Moreno –
[63]
157
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
[64] Alicia Martinez, Hugo Estrada, Luis Antonio Gama, Carmen Velazco, Eliel Morales
– Lenguaje de especificación para el framework TROPOS – Conference: Anais do
WER10 - Workshop em Engenharia de Requisitos, Cuenca, Ecuador, April 12-13,
2010
[65] Jaron Collis, Divine Ndumu – The Role Modelling Guide – The Zeus Agent Building
Jaron Collis, Divine Ndumu – ZEUS Technical Manial – The Zeus Agent Building
[66]
Toolkit – 1999
[67] www.fipa.org/resources/methodologies
[68] http://193.113.209.147/projects/agents/zeus/
J.C. Collis, D.T. Ndumu, H.S. Nwana L.C. Lee – The Zeus Agent tool-kit – BT
[69]
158
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
10. Anexos
10.1. Códigos de transmisión.
64 @ 0
65 A 1
66 B 2
67 C 3
68 D 4
69 E 5
70 F 6
71 G 7
72 H 8
73 I 9
74 J 10
75 K 11
76 L 12
77 M 13
78 N 14
79 O 15
80 P 16
81 Q 17
159
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
82 R 18
83 S 19
84 T 20
85 U 21
86 V 22
87 W 23
88 X 24
89 Y 25
90 Z 26
91 [ 27
92 \ 28
93 ] 29
94 ^ 30
95 _ 31
96 ‘ 32
97 a 33
98 b 34
99 c 35
100 d 36
101 e 37
102 f 38
103 g 39
104 h 40
105 i 41
106 j 42
160
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
107 k 43
108 l 44
109 m 45
110 n 46
111 o 47
NOTA: Por lo poco que es necesario transmitir se optó por la sencillez dado que
comprimir la información no tiene sentido.
Las IA deberán devolver un número del 1 al 6 seleccionando el agujero del cual extraer
las semillas.
NOTA: El sistema acondicionará el string para que siempre el valor devuelto sea un
número del 1 al 6.
161
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
10.2.1. Material
El material no puede ser más simple:
Cuarenta y ocho piedrecitas, semillas, palitos... cualquier cosa pequeña vale.
Doce (aunque, por comodidad, suelen ser catorce) recipientes o agujeros. Pueden
hacerse en el suelo, en un trozo de madera, en un bloque de arcilla...
Y dos personas dispuestas a exprimirse el cerebro
10.2.2. Objetivo
El objetivo del juego es hacernos con mas piedras, garbanzos, o lo que sean, que el
contrario. Puesto que hay cuarenta y ocho al empezar el juego, con capturar
veinticinco habremos ganado la mayoría de ellas y, por lo tanto, la partida.
10.2.3. Reglas
Las reglas del wari son sencillísimas:
10.2.4. Tablero
El tablero (si queremos llamarle así) está compuesto por dos filas de seis recipientes
o agujeros. De ellas, la que está más cerca de nosotros es nuestra, y la que está más
cerca de nuestro contrario suya. Siempre se empieza a mover desde un hoyo de
nuestro lado del tablero, y siempre se come en los hoyos del lado contrario.
Al empezar el juego en cada uno de los doce hoyos habrá cuatro fichas.
Además de estos, suele haber dos hoyos suplementarios, uno en cada extremo del
tablero, que se llaman «casas». El que queda a nuestra derecha es nuestra casa, el
otro la casa del contrario. Sirven para ir dejando en ellos las fichas que comamos
durante la partida.
Veamos cómo sería un tablero con casas al inicio de la partida
10.2.5. Movimiento
Un movimiento consiste en lo siguiente:
Tomamos todas las piedras de uno de los hoyos de nuestro lado.
Las vamos depositando una a una en los hoyos siguientes (tanto nuestros como de
nuestro rival) en el sentido contrario al de las agujas del reloj.
por ejemplo, si el jugador A mueve el hoyo de más a su derecha:
(se ha representado el movimiento de la mano del jugador A con una flecha)
162
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
Si el hoyo inicial contenía en concreto doce o más piedras, daremos una vuelta
completa al tablero; en ese caso el hoyo del que tomamos las piedras debe saltarse.
Es decir, al finalizar un movimiento, da igual el número de piedras que contuviera el
hoyo inicial, éste debe quedar siempre vacío.
Veamos un ejemplo. El jugador B mueve el hoyo que se indica.
10.2.6. Capturas
La captura, si se produce, es la última parte del movimiento:
Si al depositar la última piedra de un movimiento se hace en un hoyo enemigo, y este
contiene (contando la piedra que acabamos de depositar) dos o tres piedras, estas
son comidas. Es decir, las sacaremos y las dejaremos en nuestra casa (o las
mantendremos en la mano si jugamos en un tablero sin casas).
Lo mismo iremos haciendo, uno a uno, con los hoyos anteriores al último siempre que
contengan dos o tres piedras y pertenezcan al enemigo, hasta que lleguemos a uno
que no cumpla alguna de estas condiciones (del que no tomaremos las piedras).
Veamos un ejemplo:
163
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
B ha quedado sin fichas, en su siguiente movimiento A debe darle fichas con que
seguir jugando. Sólo puede hacerlo moviendo del hoyo señalado.
164
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En caso de que esto no sea posible la partida finaliza y el jugador que conserva fichas
en sus hoyos une estas a las que comiera durante la partida. Se considera que
controla el tablero y que, por tanto, todas las fichas que queden sobre él son suyas.
Sin embargo, si un jugador realiza una captura y con ello deja al contrario sin fichas,
el contrario pasará en su turno y, siendo nuevamente el turno del que realizó la
captura, se aplica la regla anterior. Es decir, está obligado a introducir fichas en los
hoyos del adversario si le es posible. (el efecto es que el jugador que come todas las
fichas del lado del contrario, mueve de nuevo inmediatamente).
Veamos un caso:
165
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
En ocasiones, cuando la partida está finalizando y quedan muy pocas fichas sobre el
tablero, se produce una posición que se repite cíclicamente sin que los jugadores
puedan o quieran evitarlo. En este caso la partida se considera finalizada y cada
jugador unirá a las que haya comido durante la partida las fichas que estén en su lado
del tablero.
Veamos una de tales posiciones:
Cuando ambos jugadores consiguen hacerse con veinticuatro fichas la partida termina
en empate.
En cuanto a la estrategia:
Acumular fichas: Una técnica básica es acumular cuantas más fichas mejor en uno de
los propios agujeros.
No dar fichas al rival: Una segunda técnica básica consiste en tratar de que los propios
movimientos no metan fichas en los agujeros del rival, sino que sean movimientos
cortos completamente dentro de los hoyos propios.
166
Institucuón: Instituto Universitario Aeronáutico Fecha: 12/12/2018
Proyecto: Metodología de desarrollo de sistemas multi agente Versión: 2.0.0
Documento: Tesis de grado Autor: Daniel Antokoletz Huerta
167