Forums ProgMatique Forum Index Forums ProgMatique
Programmation (C/C++, JAVA, PHP, JavaScript, ...) et Informatique (Webmaster, Web)
Retour au site Progmatique

Aide pour la simulation d'une diffusion épidémique

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Forums ProgMatique Forum Index » Programmation » Java
Previous topic :: Next topic  
Author Message
TimEco


Offline


Joined: 14 Jan 2011
Posts: 1
Localisation: Paris


PostPosted: Sat 15 Jan 2011 - 20:14    Post subject: Aide pour la simulation d'une diffusion épidémique Reply with quote

Bonjour à tous, 


Je suis étudiant, et on me demande de de réaliser une application permettant à l'utilisateur de faire des simulation de ce modèle en choisissant les valeurs des 3 paramètres (pourcentage de malade initial, txContamination et duréeContagion).


Voilà l'idée générale : La population est répartie en 3 catégories 
S les personnes saines et susceptibles de devenir infectées,
I : les personnes infectées, malades,
R : les personnes guéries et qui sont immunisées.



Une maladie est caractérisée par :
txContamination : la probabilité qu'une personne saine rencontrant une personne infectée contracte la maladie,
duréeContagion : la durée (en pas de temps) pendant laquelle une personne infectée est contagieuse.

Chaque personne est entourée de 8 voisins et, initialement, un certain pourcentage de la population est infectée, les autres personnes étant saines (personne n'est guéri).


La simulation se déroule de la façon suivante :
A chaque pas de temps, chaque personne rencontre l'un de ses voisins, choisi au hasard. Si cette personne est saine et ce voisin est malade, alors la personne devient infectée avec une probabilité txContamination.
A chaque pas de temps, une personne qui est malade depuis duréeContagion devient guérie.


La simulation permettra de voir :
combien de temps va durer l'épidémie, i.e. le nombre de pas de temps nécessaire pour que plus personne ne soit infecté,
quelle pourcentage de la population aura été infecté,
les courbes indiquant le nombre de personnes (en ordonnée) qui deviennent malades ou guéries à chaque pas de temps (en abscisse).


J'éprouve quelques difficultés pour la réalisation des méthodes "rencontrer" & "simuler" :






package Modele;
import Interface.ObservateurIndividu;


public class Individu {
    int col;    //colonne occupée par cet  individu
    int lig;
    int colV ; //colonne et ligne du voisin
    int ligV ;
    static Territoire territoire;
    Etat etat ;
    ObservateurIndividu observateur;


public Individu (int c, int l, Etat e){
    etat = e;
    col = c;
    lig = l;
    observateur = new ObservateurIndividu(c, l);
    observateur.changeEtat(etat);
}


public void rencontrer(){
    // A COMPLÉTER
}


void choisirVoisin (){
 colV = col; //colonne et ligne du voisin
 ligV = lig;
int voisinN, voisinE, voisinS, voisinO; //adresse des voisins nord et est
voisinN= (lig+ (territoire.nbLig)-1)%territoire.nbLig;
voisinO = (col + (territoire.nbCol)-1)%territoire.nbCol;
voisinE = (col+1)%territoire.nbCol;
voisinS = (lig+1)%territoire.nbLig;


int direction = (int) (Math.random()*Cool;
 switch (direction){    //dans le sens des aiguilles d'une montre
         case 1 : ligV=voisinN; break;
         case 2 : colV=voisinE; ligV=voisinN; break;
         case 3 : colV=voisinE; break;
         case 4 : colV=voisinE; ligV=voisinS; break;
         case 5 :  ligV=voisinS; break;
         case 6 : colV = voisinE; ligV=voisinS; break;
         case 7 : colV = voisinE; break;
         case 8 : colV = voisinE; ligV=voisinN; break;
         }
}




}




package Modele;
import java.util.ArrayList;
import Interface.ObservateurTerritoire;




public class Territoire   {
public int nbCol; //nb colonnes du terain
public int nbLig; //nb lignes du terrain
public Individu [] []population;   //[colonne] [ligne]
private ObservateurTerritoire observateur;
int nbIndividu;


public Territoire (int nc, int nl, double to){
//initialisation
Individu.territoire = this;
observateur =new ObservateurTerritoire();
nbCol = nc;
nbLig = nl;
population = new Individu[nbCol][nbLig];   //créer les population
Etat e;
for (int l=0; l<nbLig; l++)
    for (int c=0; c<nbCol;c++){
        if (Math.random()<to) e = Etat.malade;
        else e=Etat.sain;
         population [c] [l]= new Individu(c,l, e);
        }
}


public void simuler(int nbP){
//A COMPLÉTER
}
}








Mes problèmes sont d'ordre technique, je pourrais vous expliquer plus en détail l'objectif de la méthode si besoin est.


Merci d'avance.
A bientôt. Wink
_________________
Bonjour,
Je suis étudiant, et novice en programmation.
Back to top
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Forums ProgMatique Forum Index » Programmation » Java All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  

Index | Create a forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
Powered by phpBB v2 © 2001, 2005 phpBB Group ¦ Theme: subSilver++