Modelagem de Sistema de
Assistência a Desastres Orientado a
Agentes Usando MAS-ML
Sistemas Multi-Agentes
Alunos:
Marcos Côrtes
Tácio Silva Diogo
Prof:
Viviane Silva
Proposta
• Desenvolver documentação de análise de um
projeto orientado a agentes usando a
linguagem MAS-ML [SILVA 04]
• Domínio da Aplicação: Sistema Integrado de
Auxílio a Desastres (SIAD)
– Coordenar departamentos de assistência civil
(segurança, bombeiros, saúde)
– Otimizar a comunicação e a realização dos
trabalhos destes departamentos
Cidade (região urbana)
• Uma cidade é constituída por entidades
– Rua
– Esquina
– Prédio
Desastre
• Um desastre é um evento que abala as
estruturas da cidade
– Prédios destruídos
– Ruas bloqueadas
– Prédios com fogo (incêndio)
• IDU – Índice de destruição Urbana = Número
de estruturas atingidas
• CM – Número de Civis mortos
SIAD
• O objetivo do SIAD é coordenar as suas suborganizações com o objetivo de minimizar a
destruição da cidade (diminuir IDU) e evitar o
máximo de mortes (diminuir o CM)
• É composto por 3 departamentos (suborganizações)
Departamentos
• Departamento de Segurança: coordena os
policiais para que desobstruam as ruas e
promove a comunicação através de uma
Central de Segurança
Departamentos
• Departamento de Saúde: coordena as
ambulâncias para que socorram o máximo de
civis, evitando suas mortes. Promove a
comunicação através de uma Central de Saúde
Departamentos
• Departamento de Bombeiros: coordena os
bombeiros para que apaguem os incêndios
nos prédios e promove a comunicação através
de uma Central de Bombeiros
Análise
• Usaremos a linguagem de modelagem
orientada a SMA MAS-ML [SILVA 04]
• Diagramas de Organização, Papéis, Classes,
Sequência e Atividade serão demonstrados.
Diagrama de Organização
Cidade
RCentralSegurança
RPolicial
Central
Polícia
Civil
Policial
DepSegurança
RDepSegurança
RCivil
Central
Saúde
Central
Bombeiro
RCentralBombeiro
RCentralSaúde
SIAD
DepBombeiro
RDepBombeiro
RBombeiro
Bombeiro
DepSaúde
RDepSaúde
RAmbulância
Ambulância
Diagrama de Organização
<<main-organization>>
SIAD
<<goal>> float g_fDanos = min -> planComandarSistema
<<goal>> float g_fEficiencia_comunicacao = max -> planGerirComunicacao
<<belief>> Rcentral b_centralSocorro
<<belief>> Rcentral b_centralPolicial
<<belief>> Rcentral b_centralBombeiro
{} atualizarDanos() {}
{} atualizarComunicacaoCentrais() {}
{} encontrarCentrais{}
planComandarSistema{atualizarDanos, encontrarCentrais,
atualizarComunicacaoCentrais} -> g_fDanos
planGerirComunicacao{atualizarComunicacaoCentrais}>g_fEficiencia_comunicacao
Diagrama de Papéis
RCentral
central
RCentralBombeiro
1
central
RCentralSegurança
comunicar
RDepSegurança
1
central
RCentralSaúde
integrante
RDepBombeiro
comunicar
RDepSaúde
1
comunicar
n
RBombeiro
n apagar fogo n
Predio
integrante
n
RPolicial
n desbloquear n
Rua
integrante
n
RAmbulância
1 salvar
n
RCivil
Diagrama de Papéis
comunicar
RMovel
<<goal>> int g_nMensagens = 0 ->planEnviarMsg
<<goal>> bool g_bBloqueado = false ->planOutraRota
<<right>>Mover
<<right>>Comunicar
{} InferirRota{}
planEnviarMsg {Comunicar} -> g_Mensagens
planOutraRota {InferirRota, Mover} -> g_bBloqueado
RBombeiro
RPolicial
RAmbulância
RCivil
Diagrama de Classes
<< environment >>
Cidade
2
1
Esquina
4
Ligação
Rua
Desobstrui
Ambulância
salva
Ligação
Ligação
Policial
Civíl
Esquina
Prédio
Apaga incêndio
Refúgio
Bombeiro
Contido
Central
Bombeiro
Central
Polícia
Central
Saúde
Papel (SubOrganização)
RDepBombeiro
<<goal>> float g_fIncendiosApagados = max
<<goal>> float g_fEficiencia_comunicacao = max
{} atualizarDanos() {}
{} atualizarComunicacaoCentral() {}
{} encontrarCentral{}
planComandarSistema{atualizarDanos, encontrarCentral,
atualizarComunicacaoCentral} -> g_fDanos
planGerirComunicacao{atualizarComunicacaoCentrais}->g_fEficiencia_comunicacao
Papel (Agente Móvel)
RBombeiro
<<goal>> float g_fIncendiosApagados = max
<<goal>> float g_fEficiencia_comunicacao = max
<<belief>> vector<Estrutura> vecIncendios
{} localizarIncendio() {}
{} apagarIncendio() {}
{} comunicarIncendio{}
planConterFogo{localizarIncendio, comunicarIncendio, apagarIncendio} ->
g_fIncendiosApagados
Papel (Central)
RCentralSaúde
<<goal>> float g_nMensagensAtendidas = max
<<belief>> vector<message> g_vecMensagensAguardando
{} identificarDestinatários() {}
{} distribuirMensagensIdentificadas () {}
planDistribuirMensagens{identificarDestinatários,
distribuirMensagemIdentificadas} -> g_nMensagensAtendidas
Diagrama de Atividades
planConterFogo : RBombeiro
apagarIncêndio
localizarIncêndio
<<message>>
comunicarIncêndio
Diagrama de Seqüência
Conclusão
• A linguagem de modelagem conseguiu
expressar todas as necessidades exigidas pelo
sistema modelado
• Como é baseado em UML, a linha de
aprendizagem é diminuída
Conclusão
• Auto-Avaliação (prós)
– Domínio de aplicação adotado encaixou-se
perfeitamente ao paradigma orientado a multiagentes
– Simplicidade na aplicação facilitou na obtenção de
diagramas estáticos bem interessantes
– A adoção de um problema prático ajudou aos
integrantes a absorver melhor os conhecimentos
envolvendo a modelagem sistemas multi-agentes.
Conclusão
• Auto-Avaliação (contras)
– Imaturidade da forma de implementação de SMA
dificultou no desenvolvimento de modelos
adequados ao problema em questão
– Desconhecimento da natureza dos protocolos
adotados no sistema prejudicou o
desenvolvimento dos papéis
Referências
[DIOGO&ALVES 08] Diogo, Tácio Silva; Alves, Bruno Vieira Guerra: Proposta de um
sistema de auxílio a desastres baseado no RoboCup Rescue. Relatório de
progresso de projeto final, Departamento de Ciência da Computação, Universidade
Federal Fluminence, Niterói, 2008.
[MORIMOTOa] Morimoto, Takeshi: How To Develop Robocup Rescue Agent for
RobocupRescue Simulation System. Manual Técnico, versão 0.1, 1º edição.
[MORIMOTOb] Morimoto, Takeshi, Kono K., Takeuchi I.: YabAI the first Rescue
Simulation League Championship.
[SILVA 04] Silva, Viviane Torres da.: From a Conceptual Framework for Agents and
Objects to a Multi-Agent System Modeling Language. Tese de Doutorado,
Departamento de Ciência da Computação, Pontífica Universidade Católica do Rio
de Janeiro, Rio de Janeiro, 2004.
[SILVA 04b] Silva, Viviane Torres da. Choren R. Lucena C.: A UML Based Approach for
Modeling and Implementing Autonomous Agents and Multiagent Systems.
Autonomous Agents and Multiagent Systems, AAMAS, 2004.
Download

Apresentação