- Curso: Ciência da Computação
- Semestre: 5º semestre (2025.1)
- Integrantes:
- Disciplina: Estruturas Matemáticas
- Orientador: Wellington Lacerda
- Universidade: Universidade Salvador - UNIFACS
Este projeto foi desenvolvido como parte de um trabalho acadêmico da disciplina de Estruturas Matemáticas, no curso de Ciência da Computação da Universidade Salvador - UNIFACS. O objetivo é implementar uma Cadeia de Markov utilizando a linguagem Julia.
- Descrição do Projeto
- Modelos Implementados
- Tecnologias Utilizadas
- Estrutura do Projeto
- Instruções de Instalação e Execução
Este projeto consiste em um simulador de Cadeia de Markov com duas funcionalidades principais:
- Modelo de Progressão de Doença (Gripe/Influenza): Simula a progressão da gripe/influenza em uma população, analisando a dinâmica da doença ao longo do tempo.
- Modelo Personalizado (NxN): Permite ao usuário criar e simular uma Cadeia de Markov genérica de tamanho NxN, definindo todos os parâmetros da simulação.
Uma cadeia de Markov é um modelo matemático que descreve um processo estocástico com a propriedade de memória limitada: o próximo estado do sistema depende apenas do estado atual, e não da sequência de eventos anteriores.
Este modelo simula a progressão da gripe/influenza em uma população de 1000 indivíduos, com o objetivo de analisar a dinâmica da doença ao longo do tempo. A simulação é realizada por um período de 30 dias, com relatórios apresentados a cada 5 dias para acompanhar a evolução da doença.
O modelo considera quatro estados possíveis:
- Suscetível (S): Indivíduos que ainda não foram infectados pelo vírus.
- Infectado (I): Indivíduos que estão atualmente infectados com a gripe.
- Recuperado (R): Indivíduos que se recuperaram da gripe.
- Complicações (C): Indivíduos que desenvolveram alguma complicação decorrente da doença.
Este modelo permite que o usuário crie e simule uma Cadeia de Markov genérica de tamanho NxN, onde N é o número de estados. O usuário tem controle total sobre:
- Matriz de Transição: Define o número de estados (N) para a matriz de transição NxN.
- Probabilidade de Transição: Especifica as probabilidades de transição entre cada par de estados.
- Número de Iterações: Define o número de passos na simulação.
- Número de Entidades: Define quantas entidades serão simuladas simultaneamente.
- Linguagem: Julia
- Versão Utilizada: 1.11.5
- Pacotes:
- Distributions.jl
- LinearAlgebra
- Printf
- StatsBase
- Documenter
markov-chain-julia-cc/
├── src/
│ ├── main.jl # Arquivo principal
│ ├── influenza_model.jl # Modelo de progressão da gripe/influenza
│ ├── custom_markov_chain_model.jl # Modelo personalizado (NxN)
│ └── simulation.jl # Funções de simulação
├── LICENSE # Licensa MIT
├── Manifest.toml # Versões dos pacotes
├── Project.toml # Configuração do projeto
└── README.md # Documentação do projeto-
Pré-requisitos:
- Julia 1.11.5 instalado.
- Git instalado.
-
Clone o repositório:
git clone git@github.com:edd-araujo/markov-chain-julia-cc.git cd markov-chain-julia-cc -
Instale as dependências:
julia --project
No REPL do Julia, pressione
]para entrar no modo de gerenciamento de pacotes e execute:instatiate
Se o comando acima não funcionar, adicione as dependências manualmente:
add Distributions Documenter LinearAlgebra Printf StatsBase
-
Execute o projeto:
julia src/main.jl
Ou se ainda estiver no REPL do Julia:
include("src/main.jl")