Disciplina: FGA0210 - PARADIGMAS DE PROGRAMAÇÃO - T01
Nro do Grupo: 3
Paradigma: SMA
Matrícula | Aluno |
---|---|
17/0013651 | João Gabriel Antunes |
17/0163571 | Murilo Loiola Dantas |
O Epidemic Simulation é um projeto SMA que utiliza um modelo baseado em agente (ABM, sigla em inglês) para simular o fenômeno de propagação de uma doença que ocorre entre agentes, utilizando alguns valores críticos como a taxa de mortalidade, tempo de recuperação, taxa de infecção, tamanho da população e tempo de duração.
A visualização dessa simulação se dá por dois gráficos: um gráfico de linhas que é atualizado em tempo real e apresenta a quantidade de pessoas infectadas, sucetíveis à infecção, recuperadas e mortas. O outro gráfico é um *Grid* atualizado também em tempo real e que mostra o espaço amostral dinâmico com os agentes em movimento.
O modelo utilizado para a simulação de propagação foi o SIR (Susceptible, Infected, Removed) modificado, subdividindo a categoria REMOVED em RECOVERED e DECEASED. O SIR é o modelo mais simples para simulação de epidemias, pois desconsidera uma gama de fatores que impactam como a doença se espalha (decretos governamentais, capacidade do sistema de saúde, entre outros).
Programa em stand-by, aguardando entrada do usuário:
Simulação finalizada com parâmetros padrão:
Linguagens: Python
Tecnologias: Mesa, Bokeh
Para rodar o projeto na sua máquina, é recomendado que utilize o Docker, devido às dependências do código. Para tal, primeiro garanta que o Docker e o docker-compose estejam instalados. Para ter certeza, acesse a documentação dessa ferramenta disponível aqui.
Uma vez instalados, rode o seguinte comando no diretório do projeto:
docker-compose up --build
Caso já exista um container buildado, rode o comando:
docker-compose up
O programa estará disponível no local: localhost:5006/main.
Caso prefira não utilizar o Docker para rodar o projeto, ainda é possível instalar todos as dependências utilizadas rodando o seguinte comando:
pip3 install -r requirements.txt
Após a instalação dos módulos, se tudo der certo, use o comando para rodar:
bokeh serve --show main.py
Ao executar o programa, uma aba será aberta no navegador padrão, na porta 5006.
O usuário será apresentado com o estado inicial do programa, conforme a primeira figura.
O usuário pode utilizar os sliders presentes abaixo das plotagens para para configurar os parâmetros da simulação.
Clicar no botão Start Simulation iniciará a simulação. O usuário pode acompanhar os valores da simulação no gráfico de linhas. O plot de células apresenta os agentes em movimento.
Para ver o vídeo, basta acessar este hyperlink.
Só é possível rodar uma simulação por execução do programa.
As cores representam os mesmos estados em ambas as plotagens.
No plot de células, mais de um agente pode ocupar a mesma célula. Um agente infectado pode infectar um agente suscetível que estiver na mesma célula que ele.