dimanche 26 octobre 2014

Mini-projet sur la simulation: l'élevage des lapins

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.
            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.





Categories: , ,