L’attaque des zombies
Je me souviens qu’en cours d’épidémiologie on avait toujours le droit à des modèles chiant en compartiments avec leur lot d’équations différentielles et jamais le droit de s’amuser avec des modèles graphiques type automates cellulaires qui pourtant avaient l’air trop cool.
Du coup j’ai essayé sur R pour voir. Le code est surement pas optimal. C’est du trafic (je maitrise mal les matrices) mais du trafic qui fonctionne et surtout je ne voulais pas piquer un code déjà fait. Les règles ? Ils s’agit d’une attaque de zombie qui contaminent les individus adjacents. L’avantage des zombies c’est qu’ils me simplifient grandement la tâche parce qu’il n’y a pas de rémission possible. Alors voyons voir…
library(animation) #Fonction sur les cells adjacentes contamine <- function (x, k, where, proba.conta){ k.c <- k + where k.c <- k.c[k.c <= length(x) & k.c > 0] k.c <- k.c[which(x[k.c]==0)] vec.c <- rbinom(length(k.c), 1, proba.conta) x[k.c] <- vec.c return (x) } #On initialise grid.n = 10000 grid.ncol = 100 proba.conta = 0.2 x <- matrix(rbinom(grid.n, 1, 0.001), ncol=grid.ncol, byrow=T) #On fait tourner et on sauve ani.options(ani.height = 400, ani.width = 400, outdir = getwd(), nmax = 100, interval = 0.30) saveGIF( {for(i in 1:100){ k <- which(x==1) x <- contamine(x, k, where=1, proba.conta) x <- contamine(x, k, where=-1, proba.conta) x <- contamine(x, k, where=grid.ncol, proba.conta) x <- contamine(x, k, where=-grid.ncol, proba.conta) if(sum(x)==grid.n){image(x, col="black")} else{image (x, col=c("white", "black"))}} }, title="zombies")
Ce qui nous donne :