Introduction :
La simulation a pour objet de reproduire la
réalité du terrain. D’une part, les individus sont multiples et variés :
la simulation doit prendre en compte la diversité des événements et des
comportements, tant d'un point de vue cinématique que fonctionnel. D'autre
part, la réalité du terrain est multiforme, instable et difficilement prévisible.
C’est de ces contraintes qu’on devait prendre compte lors de la réalisation du
projet sur la simulation de l’élevage des lapins .
I- Enoncé :
Dans une ferme, on dispose de 4 lapins :
·
un male de 25 mois.
·
un male de 15 mois.
·
une femelle de 17 mois,
enceinte de 2 mois.
·
une femelle de 26 mois,
enceinte d’un mois
Hypothèse d'étude:
è la période de grossesse d’une lapine est de 3 mois.
è La durée de vie d’un lapin suit une loi uniforme dans [0,100] mois.
è Un lapin male ou femelle atteint sa puberté à l’âge de 12 mois
è le nombre de lapins bébés qu’une femelle peut avoir suit une loi uniforme
dans [0,6] lapins, dont 50% males et 50%
femelles.
è Quand une lapine met bas, un mois après elle peut être enceinte.
La première partie:
1-Utiliser la simulation pour estimer,
après une période de 5 ans les paramètres
suivants :
·
Le nombre de lapins.
·
Le nombre de males
·
Le nombre de femelles.
·
Le nombre de femelles
pubertés.
·
La durée de vie
moyenne.
2 - Faire la simulation
de 40 expériences pour calculer les
intervalles de confiance à 95% pour les cinq paramètres précités.
3 - Estimer la taille
d’échantillon n à étudier pour avoir une précision +/- de 3 mois au niveau de
l’intervalle de confiance de durée de vie moyenne.
La deuxième partie:
Faire la simulation en
prévoyant une vaccination pour chaque lapin né.
Le coût d’une
vaccination est de 10 DH. Avec vaccination, la durée de vie suit une loi
uniforme entre [0,150] mois.
Refaire toutes les questions de la première partie avec vaccination, avec
en plus l’estimation du coût global des vaccinations pour une période de 5
ans.
Calculer son intervalle
de confiance.
II- Structure :
Pour résoudre ce problème, on a opté pour
l’utilisation du langage java, qui est un langage orienté objet, assez puissant
permettant de paramétrer toutes les
variables du problème.
Logique:
Ainsi,
on a utilisé les listes chaînées, comme structure de données ayant les champs
suivants : le sexe, la date de la mort, la date d’accouchement, la date de
la puberté et enfin la durée de vie.
NB : pour les males la date d’accouchement
par défaut est zéro
Logique:
La
démarche qu’on a adoptée pour faire la simulation est la
suivante :
Pour
un mois x il faut tout d’abord
1 -
éliminer
les lapins qui ont la Date_Mort=X.
2 -
ensuite
Chercher les lapines qui ont Date_Acouchement=X
2-1-Pour chaque nouveaux né faire les étapes
suivantes :
·
Déterminer
le sexe à l’aide de la fonction alea.
·
Calculer
la Date-Mort avec (X+durée de vie)
·
Date
puberté (X+12)
·
Durée
de vie (générée par alea)
·
Date
d’accouchement(X+15)et 0 pour les males.
·
Coût vaccin=coût vaccin+10( Cas de vaccination)
2-2 Date-Accouchement =X+4
3-incrémenter
X.
III- Programme :
On a commencé par définir quatre classes citées ci-dessous :
v
Aleas.java : On a définit une fonction aléatoire qui génère les différents variables aléatoires,
à savoir :
o
Durée de vie
o
Nombre des lapin nés
o
Sexe des lapins : male ou femelle
v Link.java: On a définit une liste chaînée qui contient
les champs suivants :
o
Sexe
o
DatePuberte
o DateMort;
o
DureeDeVie
o
DateAccouchement
v
FirstLastList: On définit
les méthodes du traitement suivantes :
o long getNbreLapins() : Calcule
le nombre de lapins total
o long getNbreMales() : Calcule Le nombre de males
o long getNbreFemelles() : Calcule
le nombre de femelles
o
long getNbreFemellesPuberte(long
mois) :Calcule le nombre de femelles pubertes
o
void insertLast(char sexe,long datepuberte,long
datemort,long dureedevie,long dateaccouchement): C’est
une méthode qui inserre un nouveau élément dans la liste chaînée et qui reçoit
comme paramètres :Le sexe du lapin,sa date de puberté,sa date de mort,sa
durée de vie,et sa date d’accouchement s’il s’agit d’une femelle.
o
void remove(double
datemort) : Cette
méthode supprime l’élement dont la date de mort est arrivée, de la liste
o long chercherAccouchement(long mois,double
probaBebe) : Cette méthode cherche les
lapins qui doivent accoucher dans un mois donnée et avec un nombre de bébé qui
est generé par la méthode alea.
o
double getcoutVaccination()
: Elle calcule le coût de
Vaccination
v Start.java : c’est
la méthode Main qui appelle les méthodes précitées.