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.