Question 0 :

En vue de la description correspondant à l’évolution de la situation on peut estimer que puisque l’allèle bleue est récessif il y a plus de chance d’obtenir des yeux marrons pour un individu que des yeux bleus. On peut donc supposer que les yeux bleus sont voués à être de moins en moins présents au fil des populations et donc de disparaitre au bout d’un certains nombres de générations. La proportion de personnes ayant les yeux bleus va donc décroitre.

Question 1 :

Nous avons une population de P=20 individus, un horizon de Imax=20 et une population initiale P0

crealist=function(p,bb0,mm0){
  l=c();
  if (length(l)<p){
    for (j in 0:bb0){
    l[j]=c(1);
    }
    for (k in 0:(mm0-1)){
      l[k+bb0+1]=c(2);
    }
    for (x in (mm0+bb0):(p-1)){
      l[x+1]=c(3);
    }
  }
  return (l);
}

exo1b=function(p,i,bb0,mm0){
  l=c();
  lb=c(); #liste des valeurs de BBi
  lm=c(); #liste des valeurs de MMi
  lb[0]=bb0/p;
  lm[0]=mm0/p;
  c=0;
  #initialisation de la liste l composée du nombre d'individus BB (1), MM (2) et BM (3)
  l=crealist(p,bb0,mm0);
  ##return (l);
  #on effectue la simulation pour Imax générations
  for (r in 1:i-1){
      nbm=0;
      nbb=0;
    #on effectue la création de p individu dans la rième génération
    for (s in 1:p-1){
      i1=sample.int(p-1,1); #on tire un nb aléatoire entre 0 et p-1 pour choisir ensuite un parent
      i2=sample.int(p-1,1); #de même pour le second parent
      p1=l[i1]; #on détermine le premier parent
      p2=l[i2]; #on détermine le second parent
    #on détermine le premier allèle en fonction du parent choisi
      if (p1==1){
        a1='b';
      }
      else if (p1==2){
        a1='m'
      }
      else {
        y=runif(1,0,1);
        if (y<=0.5){
          a1 = 'b';
        }
        else {a1='m';}
      }
    #on fait de même pour le second allèle
      if (p2==1){
        a2='b';
      }
      else if (p2==2){
        a2='m'
      }
      else {
        y=runif(1,0,1);
        if (y<=0.5){
          a2 = 'b';
        }
        else {a2='m';}
      }
    #on place alors l'individu dans la liste correspondante (suivant ses allèles (MM ou BB)
      if (a1==a2){
         if (a1=='m'){
          nbm=nbm+1;
        }
        else {nbb=nbb+1;}
      }
    }
  lb[r]=nbb/p;
  lm[r]=nbm/p;
  l=crealist(p,nbb,nbm);
  }
  #print ('Les valeurs de BBi pour i allant de 0 à Imax sont :');
  return (lb);
}

exo1m=function(p,i,bb0,mm0){
  l=c();
  lb=c(); #liste des valeurs de BBi
  lm=c(); #liste des valeurs de MMi
  lb[0]=bb0/p;
  lm[0]=mm0/p;
  c=0;
  #initialisation de la liste l composée du nombre d'individus BB (1), MM (2) et BM (3)
  l=crealist(p,bb0,mm0);
  ##return (l);
  #on effectue la simulation pour Imax générations
  for (r in 1:i-1){
      nbm=0;
      nbb=0;
    #on effectue la création de p individu dans la rième génération
    for (s in 1:p-1){
      i1=sample.int(p-1,1); #on tire un nb aléatoire entre 0 et p-1 pour choisir ensuite un parent
      i2=sample.int(p-1,1); #de même pour le second parent
      p1=l[i1]; #on détermine le premier parent
      p2=l[i2]; #on détermine le second parent
    #on détermine le premier allèle en fonction du parent choisi
      if (p1==1){
        a1='b';
      }
      else if (p1==2){
        a1='m'
      }
      else {
        y=runif(1,0,1);
        if (y<=0.5){
          a1 = 'b';
        }
        else {a1='m';}
      }
    #on fait de même pour le second allèle
      if (p2==1){
        a2='b';
      }
      else if (p2==2){
        a2='m'
      }
      else {
        y=runif(1,0,1);
        if (y<=0.5){
          a2 = 'b';
        }
        else {a2='m';}
      }
    #on place alors l'individu dans la liste correspondante (suivant ses allèles (MM ou BB)
      if (a1==a2){
         if (a1=='m'){
          nbm=nbm+1;
        }
        else {nbb=nbb+1;}
      }
    }
  l=crealist(p,nbb,nbm);
  lb[r]=nbb/p;
  lm[r]=nbm/p;
  }
  #print ('Les valeurs de MMi pour i allant de 0 à Imax sont :');
  return (lm);
}

#Veuillez pardonner le surplus de code, mais il s'agissait d'un soucis d'affichage des courbes.

Courbes représentatives de l’évolution de BBi et MMi au cours du temps

On peut voir ici la courbe d’évolution des BBi (bleu) et MMi (rouge) pour P=20, Imax=20 et les différentes P0.