Вы находитесь на странице: 1из 7
Seediscussions,stats,andauthorprofilesforthispublicationat: https://www.researchgate.net/publication/228719535

Seediscussions,stats,andauthorprofilesforthispublicationat:https://www.researchgate.net/publication/228719535

Article

CITATIONS

0

3authors:

8 PUBLICATIONS 0 CITATIONS

341 PUBLICATIONS 2,890 CITATIONS

READS

340

341 PUBLICATIONS 2,890 CITATIONS SEEPROFILE READS 340 A.Giret UniversitatPolitècnicadeValència 142 PUBLICATIONS

142 PUBLICATIONS 1,063 CITATIONS

Someoftheauthorsofthispublicationarealsoworkingontheserelatedprojects:

Agent-basednegotiationteams Viewproject Viewproject

SURF:IntelligentSystemforintegratedandsustainablemanagementofurbanfleets Viewproject Viewproject

AllcontentfollowingthispagewasuploadedbyV.Bottion03October2017.

Theuserhasrequestedenhancementofthedownloadedfile.

Distribución de órdenes de trabajo mediante algoritmos de asignación de recursos utilizando Sistema Multiagentes

J.Antonio Gordillo, Adriana Giret , Vicente Botti

Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, Camino de Vera s/n 46022 Valencia,España. {jgordillo,agiret,vbotti}@dsic.upv.es

Resumen. El objetivo del presente trabajo de investigación es el diseño e implementación de diversos algoritmos de distribución de recursos aplicados a la programación de un sistema multiagentes, en un entrono de fabricación de piezas cerámicas. La base para el desarrollo de la investigación la provee el estudio del comportamiento de las ardillas al almacenar sus comestibles, el cual es una metáfora excelente para su aplicación en entornos de fabricación reales. Se desarrolló una simulación completa de la distribución de órdenes aplicando los algoritmos en agentes JADE. Los resultados obtenidos mediante la experimentación proporcionan una muestra de la viabilidad de la aplicación de dichos algoritmos en el entorno industrial. Palabras clave: multiagentes, distribución dinámica, algoritmo de optimización, programación de órdenes de trabajo, sistemas de manufactura.

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].

La aplicación de los algoritmos presentados 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. Descripción de proyecto

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. Entorno de ardillas multiagente

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, se muestra la implementación de los tres comportamientos anteriores, para desarrollar el sistema multiagente.

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 de aplicación, se simula 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.

posible en cada una de ellas hasta finalizar el lote.     = Ardilla = Línea
posible en cada una de ellas hasta finalizar el lote.     = Ardilla = Línea
 
   
 
   

= Ardilla

= Línea de esmaltado

= Ardilla = Línea de esmaltado = Nueces

= 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.

4. Algoritmos de ardillas multiagente

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 primer 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 A(j) if A(j)>0 // tiene nueces para almacenar línea actual=i c(i)=A(j)-c(i) Mover ardilla a c(i+1) End if

Next

El segundo algoritmo es similar al primero en el sentido de búsqueda de espacio libre para almacenar recursos, pero en este caso, se revisarán varias localizaciones antes de decidirse por una. La ubicación escogida será la que presente mayor capacidad de almacenamiento. Asimismo, se tiene un número máximo de pasos para seleccionar la ubicación más adecuada.

Este algoritmo puede formalizarse como:

For each A(j)

If A(j)>0 // tiene nueces para almacenar línea actual=i For each c(i) step= step + 1 If c(i) =maxima capacidad c (i)=A(j)-c(j)

Next

Next

End if

End if

En el tercer algoritmo se tienen las mismas características de búsqueda del anterior, tales como selección del mejor espacio para almacenamiento y límite de pasos para localizarlo. Sin emabrgo, en este caso, la ardilla sólo buscará en espacios que no hayan sido visitados con anterioridad.

Este algoritmo puede formalizarse como:

For each A(j) If A(j)>0 // tiene nueces para almacenar línea actual=i

For each c(i) step= step + 1 If c(i) =”visitado” ir a siguiente línea Else If c(i) =maxima capacidad c (i)=A(j)-c(j)

Next

Next

End if

End if

5. Implementació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. Experimentación

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.

comunicará en el momento requerido, la cantidad almacenada. F i g . 2. Porcentaje de entrega

Fig. 2. Porcentaje de entrega de órdenes de fabricación sin arrojar sobrantes

La figura 2 muestra el porcentaje promedio de tareas en las que el trabajo pendiente se distribuyó en su totalidad. Puede observarse que el primer algoritmo presenta mayor eficiencia en este aspecto.

primer algoritmo presenta mayor eficiencia en este aspecto. Fig. 3. Tiempos de operación La figura 3

Fig. 3. Tiempos de operación

La figura 3 muestra los datos comparativos de la duración en la distribución de órdenes de trabajo para cada algoritmo utilizado. Puede observarse que a medida que van incrementándose el número de agentes necesarios para llevar a cabo la tarea, el tiempo de realización se incrementa significativamente para los algoritmos 2 y 3.

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.