• Nenhum resultado encontrado

ds/dt = µn - µs - ßI S/N di /dt = ßI S/N - I - µi (1) dr/dt = I - µr.

N/A
N/A
Protected

Academic year: 2021

Share "ds/dt = µn - µs - ßI S/N di /dt = ßI S/N - I - µi (1) dr/dt = I - µr."

Copied!
14
0
0

Texto

(1)

MODELO BASEADO EM INDIVÍDUOS PARA SISTEMAS EPIDEMIOLÓGICOS COM UM NÚMERO ARBITRÁRIO DE COMPARTIMENTOS

Samir Angelo Milani Martins (PIBIC/CNPq/UFSJ) Erivelton Geraldo Nepomuceno (Orientador, DEPEL/UFSJ) 1. INTRODUÇÃO

Em um sentido genérico, epidemia é a alteração de uma ou mais características em um número significativo de indivíduos de uma população. Em geral, essas características estão relacionadas à saúde. As doenças infecciosas, como sarampo, poliomielite entre outras são exemplos bem conhecidos da humanidade (Hethcote, 2000; Anderson e May, 1992).

Doenças infecciosas desempenham um importante papel na história da humanidade desde os tempos mais remotos. A literatura histórica e epidemiológica está repleta de casos de doenças infecciosas que invadiram comunidades humanas afetando a população e a organização social. O número de mortes provocado pelas maiores epidemias de todos os tempos é impreciso, mas é incomparavelmente maior ao número de mortes provocados por todas as guerras (Anderson e May, 1992). Não são apenas os seres humanos que estão sujeito a doenças infecciosas. Muitas doenças atacam animais domésticos e animais de alto valor econômico, disseminando ou reduzindo a produtividade em inúmeros rebanhos (Poester et al., 2002).

A ciência tem contribuído no controle e modelagem de epidemias, desde o desenvolvimento de vacinas até campanhas de conscientização e políticas públicas. Contudo, tem-se observado a propagação de várias doenças entre seres humanos e animais, como a gripe asiática que atingiu a Europa e Ásia, a dengue, que recentemente atingiu o Rio de Janeiro, a febre aftosa que está presente em algumas regiões da Ásia e América do Sul e também a gripe suína, a Infuenza A, H1N1, que tem assolado o mundo inteiro.

Dada a relevância do assunto, uma nova área surgiu na ciência, a Epidemiologia, que estuda a distribuição de uma doença em uma população. E dentro da Epidemiologia, outra área que se fortaleceu foi a Epidemiologia Matemática. O interesse em modelar doenças infecciosas tem sido objeto de estudo de inúmeros trabalhos em todo o mundo (Anderson e May, 1992; Yang, 2001). Hethcote (2000) afirma que a modelagem epidemiológica pode contribuir para “o projeto e análise de pesquisas epidemiológicas, sugerir qual tipo de dado deve ser coletado, identificar tendências, realizar predições e estimar a incerteza das predições”.

Outro ponto importante que deve ser ressaltado é a interdisciplinaridade do assunto, uma vez que envolve médicos, biólogos e até mesmo engenheiros, no que se trata de estratégias de controle de epidemias (Alvarenga et al., 2006; Nepomuceno et al., 2006).

Os modelos matemáticos mais utilizados para representar epidemias são os modelos compartimentais, como o modelo SIR (Kermack e McKendrick, 1927; Hethcote, 2000). Baseado em equações diferenciais não-lineares, é possível avaliar a dinâmica entre três tipos de indivíduos considerados: suscetível (S), infectado (I ) e recuperado (R). O modelo SIR é expresso em (1), sendo ß o coeficiente de transmissão que determina a taxa em que novas infecções surgem como conseqüência do contato entre suscetíveis e infectados; µ a taxa de novos suscetíveis por unidade de tempo e £ significa a taxa de recuperação dos indivíduos infectados.

dS/dt = µN - µS - ßI S/N

dI /dt = ßI S/N - £I - µI

(1)

(2)

Outros compartimentos podem ser adicionados, de acordo com a epidemia. Hethcote (2000) traz uma ampla discussão desse tema, apresentando um dos mais gerais modelos de compartimento presentes na literatura, o MSEIR, que abrange a imunidade passiva adquirida pela mãe (M), indivíduos suscetíveis (S), expostos (E), infectados (I) e recuperados (R). A característica essencial destes modelos compartimentais é o fato de não se levar em conta a severidade da doença no indivíduo, ou seja, os indivíduos são tratados por uma abstração da média do grau de imunidade ou infecção.

Outro inconveniente dessa abordagem é a determinação da estrutura do modelo matemático, ou seja, quais compar timentos devem ser inclusos no modelo de forma que o mesmo represente bem o sistema. É uma das etapas de maior importância na modelagem matemática de sistemas dinâmicos, senão a mais, pois dá ao modelo as características do sistema.

Encontra-se também variações do modelo SIR para atender a demandas específicas. Por exemplo, Huang e Villasana (2005) incorporaram termos que levam em conta as políticas de prevenção e a transmissão da doença por meio do compartilhamento de seringas e transfusão de sangue para modelar a epidemia da AIDS. Piqueira et al. (2005) elaboraram o modelo SAIR (suscetível-antídoto-infectado-recuperado) para investigar a propagação de vírus em redes de computador. Nesse modelo, a categoria Antídoto designa os computadores que possuem programas de anti-vírus eficientes.

Uma abordagem para lidar com a questão de populações heterogêneas, estudado em ecologia é o Modelo Baseado em Indivíduos, MBI, ou IBM, do inglês Individual Based Model (Nepomuceno et al., 2006; Nepomuceno, 2005; Sole et al., 1999; Grimm, 1999; Lomnicki, 1999; Grimm et al., 2006). Segundo Grimm (1999), “cada indivíduo é tratado como uma entidade única e discreta que possui idade e ao menos mais uma propriedade que muda ao longo do ciclo da vida, tal como peso, posição social, entre outras”.

Os trabalhos presentes na literatura (veja por exemplo (Burke et al., 2006)) utilizam o MBI para um determinado tipo de modelo compar timental. Isso também tem acontecido com os trabalhos desenvolvidos no GCOM -Grupo de Controle e Modelagem da UFSJ. Assim, Nepomuceno et al. (2006) apresentam o MBI para o modelo SIR. Em (Alvarenga et al., 2006), os autores apresentam uma modelagem para o modelo SAIR, aplicado na modelagem da propagação de vírus em redes de computadores. Nesses trabalhos, uma abordagem sistemática foi desenvolvida para cada tipo de modelo compartimental. Esse trabalho apresenta uma abordagem para generalizar a formulação de representações por MBI de sistemas epidemiológicos com um número arbitrário de compartimentos.

2. REVISÃO DE LITERATURA

Foi feita baseada nas referências bibliográficas constituintes da seção Referências Bibliográficas. Nela, em um primeiro momento estudou-se a estrutura do MBI, para diferentes sistemas multi-agentes (Grimm et al., 2006). Artigos como (Brauer, 2006; Burke et al., 2006; Hethcote, 2000; Anderson e May, 1992; Nepomuceno et al., 2006; Huang e Villasana, 2005; Grimm, 1999) também foram utilizados como base na etapa de revisão bibliográfica.

Após esse estudo, foi feita uma pesquisa acerca de softwares matemáticos que realizam cálculos com precisão, eficiência e rapidez. Uma vez que as rotinas que implementam um MBI possuem alto custo computacional, é necessário obter um software veloz. Nessa pesquisa, encontrou-se as linguagens de programação Fortran, C++ e Scilab como três alternativas a serem escolhidas. Importante ressaltar que necessariamente seria escolhido um software livre, pois deseja-se tornar distribuível o programa implementado neste trabalho.

Com isso, baseando-se no custo de processamento durante a realização de várias operações matemáticas, matriciais ou não, como por exemplo produto, soma, subtração, potência, divisão, dentre outras operações, escolheu-se a linguagem em que seria implementado o MBI para um número genérico de compartimentos.

Fez-se um estudo acerca do funcionamento dessas linguagens, uma vez que era necessário adquirir conhecimento para a implementação do MBI com diferentes números de compartimentos.

Uma vez realizado o estudo e escolhida a linguagem a ser utilizada, foi feita um aprofundamento na mesma, com o intuito de desenvolver de uma maneira eficiente e eficaz o programa (Pires, 2004).

(3)

3. METODOLOGIA

3.1 Elaboração do MBI

O MBI é um modelo que leva em conta as características de cada indivíduo separadamente, com o intuito de aumentar a representatividade do modelo de um sistema real. Cada indivíduo é formado por um vetor de características, como mostra a equação 2. Nepomuceno e colaboradores (2006) expressaram o MBI para o SIR, no qual um indivíduo é representado por:

Im,t = [ C1 C2 ... Cn], (2) em que m é o tamanho da população, t é o instante em que o indivíduo apresenta um conjunto específico de características e Cn é uma característica do indivíduo. A primeira característica é o seu estado do ponto de vista epidemiológico ou compartimental. Outras características são a idade, o tempo de duração da infecção, o tempo de latência, o sexo ou quaisquer outras características consideradas relevantes. Por sua vez, uma população é representada por:

Pt = [ I1,t I1,t I1,t ... I1,t ]T (3) em que Im,t é um indivíduo no instante t e P é uma matriz m×n que contem todos os indivíduos com suas respectivas características.

A formulação do MBI permite agregar várias características dos indivíduos no modelo, o que pode tornar o modelo mais realístico. Sejam as seguintes definições:

Definição 1: Seja Pt a população de tamanho m. O estado da população em um instante t = t é o conjunto de características de cada indivíduo nesse instante. Esse estado permanece constante por um intervalo de tempo t.

Definição 2: Transição de um estado para outro ocorre quando pelo menos uma característica Cm mudou de um ou mais indivíduos da população.

Em cada instante de tempo, cada indivíduo pode encontrar com um outro. A transição para cada estado acontece por meio de distribuições estatísticas, semelhantes à cadeias de Markov (Aiello e da Silva, 2003). Normalmente, utiliza-se a distribuição uniforme para a infecção de novos indivíduos e a distribuição exponencial para as demais transições entre os estados.

3.2 Escolha da linguagem de programação

Esta é a etapa em que foi escolhida a linguagem na qual foi desenvolvido o programa. De antemão, foram descartados aqueles softwares de programação que não possuam caráter livre, pois torna o projeto economicamente inviável.

Foi feita uma pesquisa em diversos locais da internet acerca de softwares livres para cálculos matemáticos.

Softwares livres, além de serem éticos e corretos, minimizam significativamente o gasto em pesquisas. Dentre os

encontrados, estão as linguagens de programação Scilab, Fortran, e C++. As linguagens Fortran e C++ são conhecidas como linguagens eficientes, precisas e robustas com grande utilização no meio acadêmico. O Scilab, por sua vez, tem aumentado sua popularidade por se assemelhar ao software Matlab®, software de programação que realiza cálculos matriciais com grande facilidade. O Scilab, além de ser livre, é de código aberto, permitindo o acesso a suas funções e também a criação de outras pelos usuários com grande facilidade.

A princípio, foi verificada a velocidade dos softwares supracitados por meio de comparação. Esta comparação foi feita da seguinte forma: uma vez escolhidos os softwares candidatos, C + +, F ORT RAN e Scilab, foi desenvolvido um

(4)

algoritmo teste repleto de cálculos matemáticos com alguns comandos básicos de programação, como os comandos for, while, if, entre outros. Fez-se uma comparação entre o tempo gasto para simular este algoritmo teste pelos diferentes softwares. Aquele que simulou o programa teste com um menor tempo foi o software escolhido para o desenvolvimento do algoritmo para simular o MBI, para um número arbitrário de compartimentos.

Um grande estudo teve de ser feito em todas as linguagens, para que fosse possível a implementação de uma rotina-teste nas diferentes linguagens. Além disso, fez-se necessário um estudo em Linux, e compiladores Linux para as linguagens C++ e FORTRAN.

Para a linguagem C++, utilizou-se o compilador g++ para Linux, enquanto que para a linguagem Fortran utilizou-se o compilador gfortran, também para Linux. O próprio Scilab já é um compilador, e foi utilizada sua versão para Linux (Scilab 4.1.2). O uso de Sistemas Operacionais livres vem sendo largamente empregado por questões éticas e por minimizar o gasto em várias atividades, além de serem robustos e velozes.

Um dos sistemas operacionais Linux adotados pelo Grupo de Controle e Modelagem (GCoM) é o Kurumin 7, sistema estável, baseado na distribuição DEBIAN, totalmente brasileiro. Tal sistema foi tomado como base para a execução desse projeto.

De posse desses dados, fez-se um algoritmo que foi implementado na linguagem mais rápida, ou seja, de menor custo computacional, para um MBI com diferentes número de compartimentos. O custo computacional mostra-se de extrema importância, uma vez que, para sistemas, epidemiológicos, é desejável simular populações com alto número de indivíduos.

3.3Construção e implementação do MBI genérico

Uma vez escolhida a linguagem de programação, foi feito um estudo de como implementar o MBI de um modo genérico, para um número arbitrário de compartimentos. Esse MBI deve ser capaz de representar modelos compartimentais, como o SIS, SIR, SIRV, dentre outros.

A Figura 1 apresenta um fluxograma no qual Nepomuceno et al. (2006) representaram o modelo SIR, utilizando o MBI. Esse algoritmo foi tomado como base, sendo que as mesmas premissas foram utilizadas para a implementação do MBI genérico. O algoritmo foi implementado, em Scilab, uma vez que o mesmo mostrou-se a mais adequada plataforma para o desenvolvimento deste trabalho, conforme descrito.

Com o intuito de implementar o MBI para um número genérico de compartimentos, dividiu-se o trabalho em duas principais etapas. Na primeira, os dados tratados pela rotina são aqueles em que não há o produto de compartimentos na taxa de variação de um dado compartimento, ou seja, um processo semelhante quando indivíduos morrem ou recuperam (Figura 1). Para tal, utilizou-se distribuição logarítmica.

A segunda etapa, refere-se àquela onde este produto existe, de forma análoga aos compartimentos S e I, no modelo SIR. Nessa etapa, tratou-se os dados de maneira análoga ao processo de infecção, dado por Nepomuceno et al. (2006). Dessa maneira, pôde-se implementar um MBI para diferentes compartimentos.

Tendo em vista a metodologia acima abordada, foi desenvolvido um programa capaz de simular modelos matemáticos com diferentes número de compartimentos, por meio do MBI.

3.4 Avaliação e validação do programa desenvolvido

Com o intuito de validar o programa desenvolvido, obteve-se a representação do modelo SIR, utilizando o MBI, bem como de um outro modelo compartimental hipotético. Fez-se simulações Monte-Carlo para verificar a precisão do programa.

Além do programa genérico, para um número arbitrário de compartimentos, simulou-se também diversos outros modelos compartimentais, como o SIR, SIS, SIRV pulsado e SISV pulsado.

(5)

Figura 1: Algoritmo do MBI para o modelo SIR. 4. ANÁLISE DOS RESULTADOS

Executou-se a rotina teste um total de 15 vezes para cada linguagem de programação, em cada compilador. Dessa forma, pôde-se comparar a velocidade de processamento de cada linguagem, o que é de extrema impor tância, uma vez que o custo computacional do MBI é muito alto. A Figura 2 mostra os resultados obtidos, para todas as linguagens escolhidas nos Sistema Operacional Linux.

O compilador gfortran teve um tempo de processamento médio de 3,7415 s, enquanto que o g++ teve em média como tempo de processamento 3,3573 s. Para o Scilab, o tempo médio foi de 1,4367 s, valor significativamente inferior.

O algoritmo do MBI para um número arbitrário de compartimentos foi desenvolvido, e traduzido para a plataforma Scilab, uma vez que a mesma mostrou-se de menor custo computacional. Tem-se também o fato que pode-se incorporar mais funções ao escopo do Scilab, além da facilidade do trabalho com cálculos matriciais. Assim sendo, pretende-se disponibilizar tal função para os mais diversos pesquisadores correlatos e interessados no sítio do GCoM

(6)

(www.eletrica.ufsj.edu.br/~gcom).

Nesse programa, o usuário escolhe um modelo compartimental a ser simulado, entrando com as respectivas taxas. Como saída, tem os valores de cada compartimento simulado. As características individuais dependem dos parâmetros do modelo compartimental associado, que podem ser, por exemplo, o estado do indivíduo (compartimento), sua idade, a máxima idade do indivíduo, dentre outras.

Na Figura 3 é apresentado o programa genérico implementando o modelo compartimental SIR, enquanto que na Figura 4 foi simulado um modelo compartimental genérico, com quatro compartimentos.

Para o MBI, em ambas abordagens, utilizou-se simulação Monte-Carlo, sendo que foram simuladas um total de 100 vezes.

Figura 2: Custo computacional referente à rotina teste implementada. Em º encontra-se o custo computacional do compilador gfortran (linguagem FORTRAN). Em * encontra-se o custo referente ao compilador g++ (linguagem C++). Por

fim, em Δ encontra-se o custo computacional da plataforma Scilab.

Além desses modelos, simulou-se também outros, de maneira a obter um maior conhecimento a respeito de sistemas epidemiológicos (Figuras 5, 6 e 7).

Os resultados obtidos mostraram-se bastante interessantes. A princípio, esperava-se que linguagens como C+ + e FORTRAN, obtivessem um menor custo computacional. Contudo, tratando-se de cálculos matriciais, mostra-se que o Scilab é robusto e mais ágil que os demais. Isso se deve ao fato que o Scilab entende uma matriz como uma entidade única, enquanto que as outras linguagens entendem uma matriz como várias entidades indexadas.

Outro ponto positivo do Scilab é a facilidade que o mesmo apresenta ao trabalhar com matrizes, sendo que não é necessário trabalhar índice por índice, e pode-se trabalhar com a matriz por inteiro, ao realizar operações como soma, subtração, produto e inversão de matrizes. O Scilab também possui diversas funções que em outras linguagens têm de serem implementadas a priori, tais como potenciação, find, inv, dentre outras.

(7)

Figura 3: Modelo SIR expresso pelo MBI. Em vermelho, se encontra o modelo SIR, enquanto que em preto está o MBI.

(8)

Figura 5: Modelo SIRV expresso pelo MBI para uma epidemia hipotética.

Para os modelos simulados por meio do MBI genérico, utilizou-se como parâmetros ß = 20%, a = µ = 1/60, £= 1/5, tendo como condições iniciais, So= 400, Io = 400 e Ro= 200. Para os modelos que possuem controle por meio de vacinação pulsado, adotou-se uma taxa de vacinação de 40% e uma frequência de 10dt, sendo dt = 0, 1 o passo de integração, N = 1000 a população inicial. Para o modelo SIR, teve-se como condições iniciais So = 400 , Io = 400 e Ro = 200, enquanto que a epidemia hipotética com quatro compartimentos teve como condições iniciais para os dois primeiros compartimentos 300 e 200 para os outros dois. Para os outros modelos, inicialmente, So= 800, I= 50 e Ro= 150. O número de vacinados inicial, para o SIRV, é zero. Para os modelos SI e SIV, adotou-se os valores iniciais de So = 900, Io = 100, sendo o número inicial de vacinados também nulo.

(9)

Figura 7: Modelo SIV expresso pelo MBI para uma epidemia hipotética.

Pode-se perceber, por meio da Figura 3, que a abordagem genérica para o MBI conseguiu uma boa representatividade do modelo compartimental SIR. Além do modelo SIR, teve-se também a implementação de outros modelos compartimentais, de forma a enriquecer o projeto.

Ponto de extrema relevância é que a multidisciplinaridade do trabalho contribuiu para que o aluno tivesse participação importante em um artigo aceito, a ser publicado em um dos mais importantes congressos da área de engenharia, o SBAI (Simpósio Brasileiro de Automação Inteligente). Neste, é realizado um controle proporcional em malha fechada de epidemias, utilizando modelos NARMAX polinomiais. O aluno e o professor deste projeto publicaram também um artigo em um periódico de caráter internacional, Journal of Computational Interdisciplinary Sciences, que trata de ciências interdisciplinares, além de, durante o período de vigência da bolsa, mais duas publicações.

5. CONCLUSÕES

Neste trabalho, implementou-se um MBI para um número genérico de compartimentos, a um baixo custo computacional. Verificou-se o custo computacional de três linguagens de programação, quando se trata de cálculos com variáveis simples e matriciais. Tendo em vistas tais cálculos, mostrou a superioridade do software Scilab em relação as outras linguagens C++, Fortran, tratando-se de cálculos matriciais.

Também foram expressos vários modelos compartimentais para o MBI, tais como o SIR, SIRV, SIS, SISV, além de um modelo compartimental genérico, com quatro compartimentos. Todas as abordagens para o MBI, como pôde ser visto nas simulações monte-carlo, mostraram-se eficientes e precisas.

Outro ponto importante foi que a multidisciplinaridade da área de pesquisa permitiu a publicação de uma série de trabalhos em congressos interdisciplinares e de engenharia, bem como em um periódico internacional.

Com este trabalho, espera-se ajudar a comunidade acadêmica da área de epidemiologia matemática, disponibilizando, uma função em Scilab, de um MBI para simular epidemias e outros sistemas multiagentes, com diferentes números de compartimentos. Ponto interessante é que o usuário estará livre para escolher o número adequado de compartimento, de acordo com o sistema em questão.

(10)

Referências Bibliográficas

Aiello, O. E. e da Silva, M. A. A. (2003). New approach to dynamical Monte Carlo methods: application to an epidemic

model. Physica A-Statistical Mechanics and its Applications, 327(3–4):525–534.

Alvarenga, L. R., Lamperti, R. D., e Nepomuceno, E. G. (2006). Estudo da propagação de vírus em redes de

computadores por meio do modelo baseado em indivíduos. Anais do Congresso Brasileiro de Automática, páginas 2423–

2428, Salvador, BA, Brasil.

Anderson, R. M. e May, R. M. (1992). Infectious Diseases of Humans: Dynamics and Control. Oxford: Oxford University Press.

Brauer, F. (2006). Some simple epidemic models. Mathematical Biosciences and Engineering, 3(1):1 – 15.

Burke, D. S., Epstein, J. M., Cummings, D. A. T., Parker, J. I., Cline, K. C., Singa, R. M., e Chakravarty, S. (2006).

Individual-based computational modeling of smallpox epidemic control strategies. Academic Emergency Medicine,

13(11):1142 – 1149.

Grimm, V. (1999). Ten years of individual-based modelling in ecology: what have we learned and what could we learn in the

future? . Ecological Modelling, 115(2-3):129–148.

Grimm, V., Bergerb, U., Bastiansena, F., Eliassenc, S., Ginotd, V., Giskec, J., Goss-Custarde, J., Grandf, T., K., H. S., Huseg, G., Hutha, A., Jepsena, J. U., Jorgensenc, C., Mooij, W. M., Muller, B., Peer, G., e Pioub, C. (2006). A standard

protocol for describing individual-based and agent-based models. Ecological Modelling, 198:115–126.

Hethcote, H. W. (2000). The mathematics of infectious diseases. SIAM Review, 42(4):599–653.

Huang, X. e Villasana, M. (2005). An extension of the Kermack-McKendrick model for AIDS epidemic. Journal of the Franklin Institute-Engineering and Applied Mathematics, 342(4):341–351.

Kermack, W. e McKendrick, A. (1927). A contribution to the mathematical theory of epidemics. Proceedings of the Royal Society of London Series A Mathematical and Physical Sciences, A115:700–721.

Lomnicki, A. (1999). Individual-based models and the individual-based approach to population ecology. Ecological Modelling, 115(2-3):191–198.

Nepomuceno, E. G. (2005). Dinâmica, Modelagem e Controle de Epidemias. Tese de Doutorado, Programa de Pós-Graduação em Engenharia Elétrica, UFMG.

Nepomuceno, E. G., Aguirre, L. A., Takahashi, R. H. C., Lamperti, R. D., Alvarenga, L. R., e Kurcbart, S. M. (2006).

Modelagem de sistemas epidemiológicos por meio de modelos baseados em indivíduos. Anais do XVI Congresso

Brasileiro de Automática, páginas 2399–2404, Salvador – BA – Brasil.

Piqueira, J. R. C., Navarro, B. F., e Monteiro, L. H. A. (2005). Epidemiological models applied to viruses in computer

networks. Journal of Computer Science, 1(1):31–34.

(11)

Poester, F., Goncalves, V., e Lage, A. (2002). Brucellosis in Brazil. Veterinary Microbiology, 90(1-4):55–62.

Sole, R. V., Gamarra, J. G. P., Ginovart, M., e Lopez, D. (1999). Controlling chaos in ecology: from deterministic to individual-based models. Bulletin of Mathematical Biology, 61:1187– 1207.

Yang, H. M. (2001). Epidemiologia matemática: estudo dos efeitos da vacinação em doenças de transmissão direta. Editora da Unicamp, Campinas.

ANEXO – CÓDIGO EM SCILAB

//////////////////////////////////////////////////////////////////////////////////////////////////////// // Implementação de um MBI genérico, para um número // // arbitrário de compartimentos // // Programa Institucional de Iniciação Científica // // PIBIC-CNPq-UFSJ // // Bolsista: Samir Angelo Milani Martins // // Orientador: Erivelton Geraldo Nepomuceno // /////////////////////////////////////////////////////////////////////////////////////////////////////// // Limpando as variáveis e a tela, respectivamente

clear; clc; for kw = 1:10

// Definindo o passo de integração dt = 0.1; tf = 100; // Carregando funções funcprot(0); getf('montaPTotal.sci'); getf('tamanhoPop.sci'); getf('incrementodt.sci'); getf('quantstart.sci');

// Carregando as matrizes relacao_direta e relacao_cruzada loadmatfile('-ascii','relacao_direta.dat');

loadmatfile('-ascii','relacao_cruzada.dat');

// Carregando as condições iniciais de cada compartimento loadmatfile('-ascii','cond_ini.dat');

// Definindo o tamanho da populacao N = tamanhoPop();

// Determinando o número de compartimentos do modelo n_comp = length(cond_ini);

(12)

P = montaPTotal(); rest = 0;

// Processo do MBI

for tempo = 1:tf/dt // Varia o tempo por meio dos passos de integração

// Reiniciando o número de mortos nummortos = 0;

pos = 0;

n(tempo) = size(P,1);

// Quantidade de características referente a relacao_direta quantdir = 1+2*size(relacao_direta,1);

// Passos do processo

// 1. Encontrar quantos indivíduos morrerão; posmorte = find(P(:,4)>P(:,5)); // Matando a turma P(posmorte,:) = []; // Numéro de mortos nummortos = length(posmorte); // Nascimento

// 2. Baseado nesses que vão morrer, determinar quantos nascerão; quantnasc = nummortos*exp(-rand(1)/n(tempo))+rest;

quantnasc1 = floor(quantnasc); rest = quantnasc - quantnasc1;

// Nascimento de indivíduos for k = 1:quantnasc1

// Inicializando a linha da matriz P P($+1,:) = 0;

// Fazendo com que a primeira coluna seja preenchida por suscetíveis P($,1) = 1;

for k = 1:size(relacao_direta,1) // Varia o parâmetro

for kk = 2: size(relacao_direta,2) // Varia o compartimento

if abs(relacao_direta(k,kk)) ==1

P($,2*k+1) = -(1/relacao_direta(k,1))*log(rand(1));

(13)

end end end end // Processo de recuperação

// Encontrando as posições onde existem indivíduos infectados posinfec = find(P(:,1)==2);

posrecup = [];

// Encontrando os indivíduos que virarão recuperados if length(posinfec)>0

posrecup = find(P(posinfec,6)>P(posinfec,7)); end

// Retirando os infectados, que virarão recuperados, e adicionando os recuperados if posrecup <> [] P(posrecup,:) = []; for k = 1:length(posrecup)

// Inicializando a linha da matriz P P($+1,:) = 0;

// Fazendo com que a primeira coluna seja preenchida por recuperados P($,1) = 3;

for k = 1:size(relacao_direta,1) // Varia o parâmetro

for kk = 2: size(relacao_direta,2) // Varia o compartimento if abs(relacao_direta(k,kk)) ==3 P($,2*k+1) = -(1/relacao_direta(k,1))*log(rand(1)); end end end end

(14)

end

//***Trabalhando com os dados presentes em relacao_cruzada - InÃcio*************

// Começando o loop "das infecções"

for kk = 1:size(P,1) // Analisa todos os indivíduos

if P(kk,1)== 1 // Verifica se o indivÃduo pertence ao compartimento // Escolha estocástica de um indivíduo

ind = ceil(rand(1)*size(P,1));

if ind ~= kk // Exceto o mesmo indivíduo kk

// Multiplicando por N e por dt devido ao modelo SIR if (P(ind,1)==2)&(rand(1)>(1-relacao_cruzada(1,1))); P(kk,1) = 3;

for k = 1:size(relacao_direta,1) // Varia o parâmetro

for kk = 2: size(relacao_direta,2) // Varia o compartimento if abs(relacao_direta(k,kk)) ==3 P(kk,2*k+1) = -(1/relacao_direta(k,1))*log(rand(1)); end end end

end // Relativo ao if P(ind,1)==... end // Relativo ao if ind ~= kk ... end // Relativo ao if P(kk,1)== end // Relativo ao for kk=1:N

// Acrescentando dt as características pares P = incrementodt(P);

//***Trabalhando com os dados presentes em relacao_cruzada - Fim****************

//Número de indivíduos referente a cada compartimento for kkk = 1:n_comp

compartimentos(tempo,kkk) = sum(P(:,1)==(kkk)); end

end // Relativo à variação do tempo por meio de passos de integração plot(compartimentos);

disp(kw) end

Referências

Documentos relacionados

INOCÊNCIA. RECURSO DO RÉU PROVIDO. O conjunto probatório não oferece elementos hábeis a concluir, de forma segura, que o acusado tenha praticado ou concorrido, de forma consciente

FRANÇAIS ENGLISH ESP AÑOL POR TUGUÊS NEDERLANDS SVENSKA ESP AÑOL POR TUGUÊS Ligar/Desligar HICUT ➮ Prima a tecla MENU ?. No visor

Esta ação pode ocorrer de forma seletiva quando os AINES agem apenas na COX2, controlando apenas a inibição de media- dores químicos, ou de forma não seletiva, agindo na COX2 no

Federação Portuguesa de Ciclismo e Clube de Ciclismo José Maria Nicolau Dirt Jumping / Bike

O limite individual de venda de gêneros alimentícios do CONTRATADO, será de até R$ 20.000,00 (vinte mil reais) por DAP por ano civil, referente à sua produção, conforme a

O presente instrumento trata da readequação do Projeto Básico (Anexo I) do contrato de gestão nº 15/2018, firmado entre a UFGD e a FUNAEPE, cujo objeto é a continuidade da

a) Seleção das amostras com teores de PCDD/F e PCB sob a forma de dioxina que excedam os teores máximos, ou os níveis de ação. Esta abordagem pode envolver um método de

Como refere Patrão Neves acerca da alteridade, não se trata de uma assimetria relacional entre os sujeitos, trata-se apenas de uma assimetria entre direitos e deveres 31 , que