Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes...

30
Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto [email protected]

Transcript of Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes...

Page 1: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes

Auto-Organizáveis

Manoel Teixeira de Abreu Netto

[email protected]

Page 2: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 2Manoel Teixeira © LES/PUC-Rio

Sumário

• Motivação

• Visão Geral

• Framework

• Estudo de Caso

– AGV

– Modelo

– Execução

• Próximos Passos

Page 3: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 3Manoel Teixeira © LES/PUC-Rio

Motivação

• Sistemas capazes de operar em ambientes dinâmicos e heterogêneos, contornando perturbações, antes desconhecidas, no ambiente. De forma espontânea compor um nova organização.

• Busca por características como flexibilidade, robustez e adaptabilidade.

• Obtenção de respostas coletivas e complexas decorrentes das interações entre simples componentes do sistema, de forma descentralizada.

• Interesse da comunidade científica e industrial em soluções inspiradas na natureza.

Page 4: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 4Manoel Teixeira © LES/PUC-Rio

Sumário

• Motivação

• Visão Geral

• Framework

• Estudo de Caso

– AGV

– Modelo

– Execução

• Próximos Passos

Page 5: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 5Manoel Teixeira © LES/PUC-Rio

Visão Geral – Auto-organização

• Definido como o processo ou o mecanismo que permite um sistema adequar sua organização sem um comando externo explicito;

• Interações ocorrem localmente.

• Baseado em computação natural;

• Sistemas auto-organizáveis fortes e fracos;

Page 6: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 6Manoel Teixeira © LES/PUC-Rio

Visão Geral – Auto-organização

• Propriedades:

– Inexistência de um controle externo – Obrigatória

– Controle descentralizado – Não obrigatória

– Operação dinâmica – Obrigatória

• Emergência

Page 7: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 7Manoel Teixeira © LES/PUC-Rio

Visão Geral – SMA?

• As entidades autônomas são agentes;

• SMA é um grupo de agentes cooperando entre si;

• Comportamento macroscópicos usando apenas interações locais entre agentes.

Page 8: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 8Manoel Teixeira © LES/PUC-Rio

Padrões Básicos – Evaporation

• Problema:

– Ambientes multiagentes podem rapidamente ficarem sobrecarregados de informações inseridas pelos agentes

• É agregado aos dados um peso/tempo

• Ação de coordenação: a falta ou o decremento dos dados implicam em novas ações

• Regra de propagação: os dados propagados decrementam os seus pesos localmente e nos vizinhos iterativamente até alcançar o valor 0

Page 9: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 9Manoel Teixeira © LES/PUC-Rio

Sumário

• Motivação

• Visão Geral

• Framework

• Estudo de Caso

– AGV

– Modelo

– Execução

• Próximos Passos

Page 10: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 10Manoel Teixeira © LES/PUC-Rio

Framework

• Extensão do framework Jadex;

• Implementação dos padrões básicos descritos anteriormente;

• Definição dos padrões através de capabilities, com a construção dos planos de propagação e coordenação;

• Utilização do conceito de ambiente ativo;

• Estrutura que oferece a capacidade de desenvolvimento de novos padrões arquiteturais através da extensão do framework.

Page 11: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Framework

• Evaporation capability

Page 12: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

11/04/23 12Manoel Teixeira © LES/PUC-Rio

Sumário

• Motivação

• Visão Geral

• Framework

• Estudo de Caso

– AGV

– Modelo

– Execução

• Próximos Passos

Page 13: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Estudo de Caso - AGV

• AGV ( Automated Guided Vehicles)

• Aplicação real – Egemin e DristiNet;

• Veículos totalmente automatizados;

• Utilizados para transporte de carga;

• Exigência de um ambiente:

– Flexível (riscos PMBOK)

– Dinâmico (aberto)

Page 14: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Estudo de Caso - AGV

• Modelagem:

• Utilização dos padrões:

– Diffusion – Warehouse, Destino e Localizações;

– Aggregation - Localizações;

– Evaporation – Localizções, com dados da Warehouse;

Page 15: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Modelo – Diagrama de Caso de Uso

Page 16: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Modelo – Diagrama de Classe

Page 17: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Modelo – Diagrama de Classe

Page 18: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Modelo – Diagrama de Classe

Page 19: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Modelo

• Ambiente

Page 20: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Construindo o Ambiente

• DEBUG: new AGVEnvironment

• DEBUG: Adding position 1x1

• DEBUG: Adding position 1x2

• …

• DEBUG: Adding position 5x2

• DEBUG: Adding position 5x3

• DEBUG: Creating Plan....

• DEBUG: Adding location in position 1x1

• DEBUG: Adding location in position 1x2

• …

• DEBUG: Adding location in position 5x2

• DEBUG: Adding location in position 5x3

Page 21: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Adicionando os agentes

• DEBUG: Alocating Agent in position: 2x1• DEBUG: AgentLocation_1 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 2x2• DEBUG: AgentLocation_2 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 2x3• DEBUG: AgentLocation_3 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 3x1• DEBUG: AgentLocation_4 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 3x2• DEBUG: AgentLocation_5 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 4x1• DEBUG: AgentLocation_6 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 4x2• DEBUG: AgentLocation_7 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 4x3• DEBUG: AgentLocation_8 Executing EvaporationPatternPlan...• DEBUG: Alocating Agent in position: 1x1 (Warehouse)• DEBUG: Alocating Agent in position: 1x2 (Warehouse)• DEBUG: Alocating Agent in position: 1x3 (Warehouse)• DEBUG: Alocating Agent in position: 5x1 (Destination)• DEBUG: Alocating Agent in position: 5x2 (Destination)

Page 22: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Ação do Agente Destination – Difusão

• DEBUG: AgentDestination_12 Diffusing 'destination'...• DEBUG: Creating diffusionMsg...• DEBUG: Setting the content...• DEBUG: Getting neighbors...• DEBUG: 3 neighbors found...• DEBUG: Getting the environment...• DEBUG: Getting location of position: 5x2• DEBUG: No agent at this position...• DEBUG: Getting location of position: 4x1• DEBUG: Adding a receiver : AgentLocation_6@sepultura...• DEBUG: Getting location of position: 4x2• DEBUG: Adding a receiver : AgentLocation_7@sepultura...• DEBUG: Sending the message...• DEBUG: AgentLocation_7 diffusionMsg Receive...• DEBUG: AgentLocation_6 diffusionMsg Receive...• DEBUG: Data type: dpt size: 5• DEBUG: Saving the DISPATCH in the beliefbase...• DEBUG: Data type: dpt size: 5• DEBUG: Saving the DISPATCH in the beliefbase...

Page 23: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Adicionando uma Carga – Difusão

• DEBUG: Executing UserAgentPlan ...• DEBUG: Transporter_16 Looking for a Warehouse...• DEBUG: Setting agentsId...• DEBUG: UserAgent Sending newDataDiffusionMsg to AgentWarehouse_1@sepultura• DEBUG: AgentWarehouse_1 received newDataDiffusionMsg from:

AgentIdentifier(name=UserAgent@sepultura)• DEBUG: AgentWarehouse_1 Getting the content...• DEBUG: Data received: pck:• DEBUG: Saving in the beliefbase...• DEBUG: Creating a diffusionMsg...• DEBUG: Setting the content... pck:1:1:2:info• DEBUG: Getting neighbors...• DEBUG: 3 neighbors found...• DEBUG: Getting the environment...• DEBUG: Getting location of position: 2x1• DEBUG: Adding a receiver : AgentLocation_1@sepultura...• DEBUG: Getting location of position: 1x2• DEBUG: No agent at this position...• DEBUG: Getting location of position: 2x2• DEBUG: Adding a receiver : AgentLocation_2@sepultura...• DEBUG: Sending the message...

Page 24: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução - Evaporação

• DEBUG: AgentLocation_1 diffusionMsg Receive...• DEBUG: AgentLocation_2 diffusionMsg Receive...• DEBUG: Data type: pck size: 5• DEBUG: Saving the PACKAGE in the beliefbase...• DEBUG: Data type: pck size: 5• DEBUG: Saving the PACKAGE in the beliefbase...• DEBUG: AgentLocation_1 Executing EvaporationPatternPlan...• DEBUG: Evaporating package... factor = 1.9• DEBUG: AgentLocation_1 execute() evaporate: continues• DEBUG: AgentLocation_2 Executing EvaporationPatternPlan...• DEBUG: Evaporating package... factor = 1.9• DEBUG: AgentLocation_2 execute() evaporate: continues• DEBUG: AgentLocation_3 Executing EvaporationPatternPlan...• DEBUG: AgentLocation_4 Executing EvaporationPatternPlan...• DEBUG: AgentLocation_5 Executing EvaporationPatternPlan...• DEBUG: AgentLocation_6 Executing EvaporationPatternPlan...• DEBUG: Evaporating dispatch... factor = 0.9• DEBUG: AgentLocation_6 execute() evaporate: continues• DEBUG: Evaporating dispatch... factor = 0.9• DEBUG: AgentLocation_6 execute() evaporate: continues• DEBUG: AgentLocation_7 Executing EvaporationPatternPlan...• DEBUG: Evaporating dispatch... factor = 0.9• DEBUG: AgentLocation_7 execute() evaporate: continues• DEBUG: Evaporating dispatch... factor = 0.9• DEBUG: AgentLocation_7 execute() evaporate: continues

Page 25: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Procurando Carga

• DEBUG: Transporter_16 trying to move to 3x1...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 new position: 3x1• DEBUG: AgentLocation_4 received a getPackage request...• DEBUG: AgentLocation_4 sending reply...AgentIdentifier(name=Transporter_16@sepultura)• DEBUG: Transporter_16 reply received...• DEBUG: Data received: • DEBUG: Transporter_16 null received as reply...• DEBUG: Transporter_16 trying to move to 2x1...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 trying to move to 2x2...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 new position: 2x2• DEBUG: AgentLocation_2 received a getPackage request...• DEBUG: Data to be replyed: pck:1:1:1.9:info• DEBUG: AgentLocation_2 sending reply...AgentIdentifier(name=Transporter_16@sepultura)• DEBUG: Transporter_16 reply received...• DEBUG: Data received: pck:1:1:1.9:info• DEBUG: Transporter_16 Received 1 Packages...• DEBUG: Try position: 1x1• DEBUG: Transporter_16 trying to move to 1x1...• DEBUG: Transporter_16 Moved...• DEBUG: Getting the loaded package...• DEBUG: Requesting AgentWarehouse_1 package...• DEBUG: AgentWarehouse_1 Received a getPackage fromRParameter(name=sender,

value=AgentIdentifier(name=Transporter_16@sepultura), class=class jadex.adapter.fipa.AgentIdentifier)• DEBUG: Package: br.puc.rio.les.instance.agv.data.Package@7c21e

Page 26: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Procurando Destino

• DEBUG: Transporter_16 looking for destination...• DEBUG: Transporter_16 trying to move to 2x2...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 trying to move to 3x2...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 new position: 3x2• DEBUG: AgentLocation_5 received a dispatchPackage request...• DEBUG: AgentLocation_5 sending

reply...AgentIdentifier(name=Transporter_16@sepultura)• DEBUG: Transporter_16 reply received...• DEBUG: Data received: • DEBUG: Transporter_16 trying to move to 2x2...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 trying to move to 2x3...• DEBUG: Transporter_16 Moved...• DEBUG: Transporter_16 new position: 2x3• ...

Page 27: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Execução – Encontrando Destino

• DEBUG: Transporter_16 new position: 4x2

• DEBUG: AgentLocation_7 received a dispatchPackage request...

• DEBUG: Data to be replyed: dpt:5:1:0.9:info

• DEBUG: AgentLocation_7 sending reply...AgentIdentifier(name=Transporter_16@sepultura)

• DEBUG: Transporter_16 reply received...

• DEBUG: Data received: dpt:5:1:0.9:info

• DEBUG: Try position: 5x1

• DEBUG: Transporter_16 trying to move to 5x1...

• DEBUG: Transporter_16 Moved...

• DEBUG: Send the package to destination...

• DEBUG: Requesting AgentDestination_12 dispatch...

• DEBUG: AgentDestination_12 Dispatch requested...

• **************DEBUG: Package dispatchated at AgentDestination_12***************

Page 28: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Próximos Passos

• Separar o framework da instância (AGV)

• Aprimorar detalhes de implementação do AGV, como a busca por “feromônios”

• Aumentar a quantidade de agentes (Locations, Warehouses e Destinations)

• Implementar uma interface gráfica para visualização

• Implementar o caso de uso do VANT

Page 29: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

VANT

Page 30: Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes Auto-Organizáveis Manoel Teixeira de Abreu Netto mnetto@les.inf.puc-rio.br.

Um Framework Baseado em Padrões Arquiteturais para o Desenvolvimento de Sistemas Multiagentes

Auto-Organizáveis

Manoel Teixeira de Abreu Netto

[email protected]