Sistema Multiagentes para Programación en Entornos de

Transcripción

Sistema Multiagentes para Programación en Entornos de
Sistema Multiagentes para Programación en
Entornos de Fabricación
Área de conocimiento: Inteligencia Artificial
José Antonio Gordillo Sosa1, Adriana Giret Boggino2, Vicente Botti Navarro2
{jgordillo,agiret,vbotti}@dsic.upv.es
2
Departamento de Sistemas Informáticos y Computación, Universidad
Politécnica de Valencia. Camino de Vera s/n 46022 Valencia,España.
1
Tecnologías de la Información y Comunicación, Universidad Tecnológica del
Suroeste de Guanajuato. Carr. Valle-Huanímaro km1.2, 38400 Valle de Santiago,
Gto. México.
Resumen. La investigación en entornos multiagente toma frecuentemente
ejemplos biológicos en los que encontramos elementos destacados de
cooperación colectiva. Un ejemplo interesante es el del comportamiento de
las ardillas al buscar repetitivamente espacio libre para sus alimentos hasta
guardarlos por completo. Este comportamiento es una metáfora excelente
para desarrollar algoritmos y métodos de asignación de recursos de todo
tipo, desde bloques de datos computacionales hasta piezas de fábrica. Este
trabajo presenta un esquema de simulación que implementa un algoritmo de
este tipo para resolver el problema de programación de lotes de fabricación
de azulejos cerámicos en una planta de fabricación. En este enfoque se
demuestra un comportamiento cooperativo, incluyendo la habilidad de crear
rutas óptimas, y enfrentar ambientes dinámicos.
Además de la simulación basada en un sistema multiagente, se combinan
técnicas de programación, análisis de procesos de producción y manufactura
en un entorno real de fabricación de productos cerámicos.
Palabras clave: multiagentes, distribución dinámica, algoritmo de
optimización.
1 Introducción
La vida social de insectos y animales proporciona un ejemplo útil a partir del cual
la investigación de multiagentes puede inspirarse, ya que maneja acciones
colectivas sofisticadas con un gran número de elementos siguiendo
comportamientos individuales relativamente simples. Por ejemplo, el llamado
"comportamiento de enjambre" [1,2] de algunos insectos ha generado la creación
de métodos que se han aplicado con éxito en problemas de difícil optimización
como enrutamiento de redes [3].
Los sistemas de manufactura actuales requieren incluir técnicas de
configuración dinámica de procesos como medio para controlar el sistema de
producción y lograr un manejo óptimo de sus lotes, detallado incluso a nivel de
pieza producida; incluyendo, evidentemente, criterios de decisión rápida y manejo
eficiente de costos.
Tales sistemas necesitan, además, la implementación de mecanismos dinámicos
para proveer una respuesta rápida a tareas y órdenes emergentes de trabajo, así
como situaciones no previstas como fallas mecánicas o tardanzas en el montaje de
las líneas de manufactura. De manera general, podemos mencionar que el entorno
de fabricación de piezas cerámicas estudiado, se compone de 6 procesos básicos:
Gestión de Almacén de Materia Prima, Ayuda a la Gestión de Compras, Gestión de
Almacén de Productos Terminados, Ayuda a la Gestión de Ventas, Definición del
Plan Maestro, Producción y Fabricación. Este trabajo se aplica en el proceso de
Fabricación, el más difícil de controlar de los seis.
La aplicación del algoritmo presentado se centra en la asignación de tareas de
fabricación a los recursos de las líneas de esmaltado correspondientes,
posibilitando una distribución uniforme de las mismas.
2. Estado del Arte
El objetivo de este trabajo es el diseño, simulación y ejecución de la
programación de órdenes de trabajo en las líneas de producción de una empresa del
sector cerámico. Se propone una arquitectura de agentes JADE [4] integrados
al área de prensado como medio de enlace para distribuir dinámicamente los
diferentes lotes producidos hacia el área de esmaltado.
3. Metodología
El sistema de “ardillas” [5] consiste en un entorno Peer-to-Peer de espacios de
almacenamiento, en el que cada espacio contiene una cierta capacidad para guardar
nueces. Las ardillas viven en cada uno de estos espacios. Cuando tienen nueces, se
dirigen hacia los espacios, “husmeando” hasta encontrar uno adecuado para
guardar sus recursos.
El aspecto interesante del comportamiento de las ardillas es la manera como
distribuyen sus nueces y otros alimentos en su entorno hasta obtener una
distribución balanceada de recursos. La intención de estudiarlo es buscar la manera
de explotar este comportamiento para desarrollar técnicas de diseño e
implementación de sistemas multiagentes capaces de almacenar recursos en
sistemas reales de producción.
Los comportamientos estudiados de las ardillas pueden resumirse en:
•
Búsqueda de espacio y almacenamiento de nueces en áreas cercanas a su
nido
•
Investigación aleatoria de espacios antes de decidir dónde guardar sus
nueces
•
Una ardilla puede decidir no almacenar su comida si hay otras ardillas a
su alrededor.
En este trabajo, nos centramos en el primer comportamiento para implementar
el sistema de agentes.
La comunicación entre agentes se basa en la programación de comportamientos
(Behaviours en el lenguaje de programación) mediante los cuales se simula la
introducción de datos tales como: tamaño de lote, prioridad y modelo. Con ésto,
cada agente interactúa con el resto de manera dinámica, distribuyendo las piezas
producidas en las líneas con capacidad de recepción.
Tal estrategia puede realizarse mediante la plataforma de agentes JADE y
programación Java, utilizando como base de distribución de tareas un algoritmo de
optimización inspirado en comportamientos de ardillas, el cual consiste, en el
trabajo presentado, en tomar un lote cerámico y recorrer todas las líneas de
producción existentes hasta "almacenarlo" en su totalidad en ellas.
Como ejemplo, se simula solamente la distribución de 3 lotes previamente
prensados hacia igual número de líneas de esmaltado. Como se muestra en la figura
1, el agente encargado de cada lote revisa una a una dichas líneas, distribuyendo el
máximo de elementos posible en cada una de ellas hasta finalizar el lote.
= Ardilla
= Línea de esmaltado
= Nueces
Fig. 1. Entorno MAS con ardillas.
Cada espacio (línea de esmaltado) tiene diferentes capacidades de
almacenamiento durante el tiempo de ejecución de las tareas, a medida que la
ardilla va distribuyendo sus nueces (lotes cerámicos). Una vez que ésta ha
terminado de almacenarlos, cede su lugar a la siguiente en el orden de prioridad.
Cada ardilla requerirá buscar espacios de diferente capacidad, debido a que tienen
un número variado de nueces por almacenar.
3.1Algoritmo de ardillas multiagente
En esta sección se describe el algoritmo que implementa el comportamiento
descrito anteriormente que se ha implementado en este trabajo.
Considérense las definiciones siguientes:
nuez =pieza cerámica prensada
c= capacidad de carga de línea de esmaltado
A=ardilla de distribución
El algoritmo simula la búsqueda de espacio para almacenamiento de nueces. Si
en el espacio buscado no hay capacidad suficiente para vaciar la carga, se moverá a
la localización siguiente en busca de espacio disponible. El ciclo se repite hasta que
la ardilla encuentre dicho espacio o muera buscándolo, lo cual puede ocurrir si se
introducen restricciones al sistema (tiempo límite de búsqueda, volumen máximo
de recursos, etc.) o incidencia de factores externos (falla interna de los equipos,
sobrecarga de recursos, etc.)
Este algoritmo puede formalizarse como:
For each c(j)
if ardilla tiene nueces para almacenar
actual=i
c(i)=A(j)-c(i)
Mover ardilla a c(j+1)
End if
End if
3.2Implementación
La implementación del prototipo se desarrolló bajo el entorno JADE, utilizando
Java como lenguaje de programación. Se crea un agente para cada orden de
fabricación de piezas prensadas y 1 para cada línea de esmaltado. Una vez que el
agente con mayor prioridad ha logrado distribuir toda su carga, habilita al siguiente
agente en el orden de prioridad. La comunicación entre ellos se basa en la
programación de comportamientos (Behaviours) y métodos de creación dinámica
(en tiempo de ejecución) de agentes al terminar el funcionamiento de uno de ellos,
lo que posibilita una distribución más rápida.
6. Resultados experimentales
El simulador de almacenamiento de recursos permite manejar los parámetros
siguientes:
• Cantidad de piezas para distribuir. Desde 1 hasta n piezas. En este estudio
se maneja un máximo de 9 para representar el entorno.
•
•
•
•
Cantidad de espacios de almacenamiento. Desde 1 hasta n espacios. En el
trabajo presentado se involucran 3 líneas de producción donde se
almacenarán los recursos.
Capacidad de almacenamiento en cada espacio. El simulador puede
adaptarse a la capacidad específica requerida del sistema y, en tiempo de
ejecución, comunicar a cada agente la capacidad admitida en ese
momento.
Ardillas (agentes) a ser creadas. Debido al relativamente bajo
requerimiento de recursos para la creación de cada agente, su número
límite puede adaptarse a prácticamente cualquier situación real de
producción.
Cantidad de piezas almacenadas en cada espacio. Varía durante la
ejecución. Al igual que la capacidad de almacenamiento, el simulador
comunicará en el momento requerido, la cantidad almacenada.
Fig. 2. Resultado de almacenamiento de recursos
La figura 2 muestra el resultado de la ejecución del simulador. En la parte
superior aparece la creación de dos agentes de línea de esmaltado que recibirán los
recursos del agente que intenta almacenarlos. En la parte inferior, la creación del
agente que revisará las líneas intentando distribuir sus nueces.
En el ejemplo de la figura se tiene un sobrante de 1 nuez en la primera línea
(Nueces1:5, Espacio1:4), el agente se desplaza a la línea siguiente, que también
presenta sobrante de nueces (Nueces2: 7, Espacio2:2), por lo que la comunicación
se traslada al tercer agente, el cual tiene espacio suficiente de almacenamiento
(Nueces3: 3,Espacio3: 8). Se muestra el estado final de los agentes en la parte
superior de la figura, con un valor de 0 para el primer agente, lo cual indica la
distribución total de los recursos generados en ese momento.
Como información adicional, se muestra en pantalla el tiempo (medido en
mseg.) transcurrido entre las interacciones de los agentes. En la tabla a
continuación se muestra la duración observada de algunas de las acciones
generadas por el intercambio de datos en el simulador. En la columna de la
extrema derecha puede notarse que, a medida que la comunicación va adquiriendo
complejidad (mayor número de agentes, acumulación de recursos por almacenar,
etc.), el tiempo necesario para completar la tarea se incrementa exponencialmente.
Estado Agente1
Con sobrante
Con sobrante
Estado Agente 2
Almacena el total
de recursos
Con sobrante
Con sobrante
Con sobrante
Con sobrante
Almacena el total
de recursos
Con sobrante
No interviene
Estado Agente 3
No interviene
Tiempo (mseg.)
30793
Almacena parte de
recursos
Almacena el total
de recursos
Con sobrante
No interviene
44357
59082
35243
240
Tabla 1. Tiempos observados de interacción de agentes
Cabe mencionar que actualmente el proceso de programación de lotes de
fabricación de azulejos cerámicos en la empresa de la cual se ha obtenido la
información, se realiza de forma manual, por lo que la implementación de un
algoritmo que permita una distribución más dinámica y eficiente de las órdenes de
trabajo, en este caso mediante sistemas multiagente, sería de gran valía para la
empresa.
7. Conclusiones
En esta etapa del estudio, no se pretende hacer un desarrollo complejo o crear
mecanismos de alto nivel para cooperación y negociación, solamente centrarse en
un mecanismo simple, confiable y práctico para programación dinámica de tareas,
debido a que se intenta utilizar como parte de un diseño integral basado en agentes
y sistemas de manufactura para una fábrica real. Con ésto se simplifica la
complejidad del sistema, se reduce el retardo de comunicación y por consecuencia,
el tiempo de programación/reprogramación.
Los resultados obtenidos demuestran que los comportamientos de ardillas
traducidos en esquemas de trabajo reales son un medio eficiente de distribución de
tareas. Asimismo, una vez observado lo anterior, puede predecirse que es posible
responder a posibles situaciones de emergencia, tales como:
Reconfiguración para nuevos pedidos de emergencia
Reconfiguración tras cancelación de pedidos
Reconfiguración para optimización de la programación actual
Reconfiguración por ruptura de la máquina o producto destruido
8. Trabajos futuros
Como líneas futuras de investigación dentro de este trabajo pueden destacarse
las siguientes:
•
Implementación y comparación de eficiencia de otros algoritmos de
programación como medida de reducción de tiempos de proceso.
•
Desarrollo de interfaz gráfica del simulador para una mayor facilidad de
uso.
•
Reestructuración del código para permitir la introducción manual de datos
en tiempo real, para enfrentar contingencias.
•
Estudio detallado de requerimientos mínimos de hardware y software que
permita un funcionamiento óptimo del simulador.
•
Implantación en la fábrica de un sistema multiagente para la
programación de producción en tiempo real.
Referencias
[1] R. Poli, C. Di Chio, W.Langdon. Exploring extended particle swarms: a genetic
programming approach. In Proceedings of the 2005 conference on Genetic and
Evolutionary Computation. pp. 169-176.
[2] K.E. Parsopoulos,M.N.Vrahatis.Evolutionary computing and optimization: Particle
swarm optimization method in multiobjective problems. In Proceedings of the 2002
ACM Symposium on Applied Computing.
[3] Chien-Chung Shen, Chaiporn Jaikaeo,2005. Ad hoc multicast routing algorithm with
swarm intelligence. Mobile Networks and Applications. Volume 10 issue 1-2.
[4] JADE.2005.Java Agent Development Framework.http://jade.tilab.com/
[5] S. Camorlinga , K. Barker.2003.Multiagent Systems Storage Resource Allocation in a
Peer-to-Peer Distributed File System.

Documentos relacionados