Protótipo

[Exerto de: Sousa, P.; Ramos, C. and Neves, J. (1999), Manufacturing Entities with Incomplete Information. Proceedings of the 2nd International Workshop on Intelligent Manufacturing Systems (IMS-Europe'99), pp. 185-193. Leuven, Belgium, 22-24 September 1999]

Em seguida é apresentada uma breve descrição do sistema para o Escalonamento Dinâmico de Tarefas Industriais (uma descrição detalhada é apresentada em (Sousa and Ramos, 1998)). O método de escalonamento é adaptado de um método centralizado descrito em (Ramos et al., 1995), e o protocolo de negociação é uma variante do "Contract Net Protocol" (Davis and Smith, 1983).

O utilizador interage com o sistema através de um agente especial denominado "Task Manager", que é responsável pela criação de novos agentes de Tarefa ("Task Agents"). Para efectuar o escalonamento, o agente de tarefa vai efectuar uma negociação ocm os vários agentes Recurso ("Resource Agents"), e estabelecer um contracto. Os agentes de Recursos utilizam propagação de restrições para garantir as relações de precedência (e restrições temporais) entre as diversas operações da tarefa (Figura 1).

Figura 4 - Funcionamento do Sistema

Uma primeira implementação do sistema (Silva et al., 1998) foi utilizada para testar uma infra-estrutura de desenvolvimento de Sistemas Hólonicos de Fabrico. Nesse Trabalho foram desenvolvidas classes C++ representando comportamentos/funcionalidades genéricas dos agentes/holons. Uma outra abordagem é descrita em seguida.

O protótipo (Figura 2) foi construído utilizando SICStus Prolog para a parte computacional dos agentes, e Visual Basic para a Interface de Utilizador.

Figura 5 - A Interface de Utilizador do Protótipo

Na fase actual as comunicações são feitas utilizando a implementação SICStus da biblioteca de coordenação Linda (Bjornson et al., 1998), que implementa um espaço de memória partilhado (blackboard), isto é, não existem comunicações directas entre os agentes. A utilização de Linda facilitou o desenvolvimento do protótipo (em termos de código e tempo de desenvolvimento), mas pode degradar a performance do sistema ao introduzir um elemento centralizador (Nwana et al., 1996).

Estando o desenvolvimento ainda na fase inicial, o protótipo é bastante simples e foi utilizado primariamente para testar a exactidão da versão distribuída do método de escalonamento. Presentemente, os agentes Tarefa escolhem sempre o intervalo de tempo que se inicia mais cedo de entre as várias soluções fornecidas por cada recurso.

As mensagens trocadas entre agentes Tarefa e agentes Recurso são predicados Prolog escritos e lidos do espaço partilhado Linda. Cada clausula tem argumentos indicando o agente origem e destino, bem como um identificador de conversação que possibilita aos agentes relacionarem mensagens separadas.

Referências

Bjornson, R.; Carriero, N.; Gelernter, D. and Leichter, J. (1998) Linda, the Portable Parallel. Technical Report 520, Yale University Department of Computer Science, January 1988.

Davis, R. and Smith, R. (1983). Negotiation as a metaphor for distributed problem solving. Artificial Intelligence, vol. 20, n. 1, pp. 63-109.

Nwana, H.; Lee, L. and Jennings, N. (1996) Coordination in software agent systems. BT Technology Journal, 14(4), pp. 79-88. October.

Ramos, C.; Almeida, A. and Vale, Z. (1995). Scheduling Manufacturing Tasks considering Due Dates: a new method based on Behaviours and Agendas. International. Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems; Melbourne, Australia.

Silva, N.; Sousa, P. and Ramos, C. (1998) A Holonic Manufacturing System Implementation. Proceedings of the Advanced Summer Institute (ASI'98). Bremen, Germany, 14-17 July 1998.

Sousa, P. and Ramos, C. (1998). A Dynamic Scheduling Agent for Manufacturing Orders. Journal of Intelligent Manufacturing - special issue on agent based manufacturing, vol. 9 n. 2, pp. 107-112. Chapman & Hall. ISSN 0956-5515.

(c) 1999, Paulo Sousa
comentários e sugestões
Criação: 8 de Outubro de 1999
Ultima Alteração: 8 de Outubro de 1999