Intuition

Question 1

Génération du réseau

Je pense que pour un n petit, l’influence de teta sera grande. Si teta est petit, alors tous les points ne seront pas reliés. Au contraire, pour un n très grand et le même teta, tous les points devraient être reliés.

Question 2

Connexité

Je pense que la courbe va ressemblé à un S, mais que celui-ci va être décalé vers la gauche en fonction de N.

  library("ggplot2");
  set.seed(42);
  genereDisque = function(N,R){
    res= data.frame();
    i = 1;
    repeat{
      x = runif(1,-1,1);
      y = runif(1,-1,1);
      if(sqrt(x^2+y^2) <= R){
        res = rbind(res, data.frame(x=x, y=y));
        i=i+1;
      }
      
      if(i==N+1) break;
    }
    res;
  }
  
  #dataaa = genereDisque(10,1);
  #ggplot(data=dataaa, aes(x=x, y=y))+ geom_point() + coord_fixed();
  #dist(dataaa);
  
  grapheDeConnexion = function(N,R,teta,graphe=FALSE){
    donnees = genereDisque(N,R);
    res = data.frame();
    connex = matrix(data = FALSE, nrow = N, ncol = N);
    matrix = as.matrix(dist(donnees));
    matrix[1,1] = TRUE;
    for(i in 2:(N)){
      for(j in 1:(i-1)){
        if(matrix[i,j] <= teta){
          res = rbind(res, data.frame(x1 = donnees[i,1], y1 = donnees[i,2], x2 = donnees[j,1], y2 = donnees[j,2]));
          connex[i,j] = TRUE;
          connex[j,i] = TRUE;
        }
      }
      connex[i,i] = TRUE;
    }
    if(graphe){
      p = ggplot(data=donnees, aes(x=x, y=y))+ geom_point()  +geom_segment(aes(x = x1, y = y1, xend = x2, yend = y2), data = res) + coord_fixed();
      return(p);
    }
    else{
      return(connex);
    }
  }
  
  calculConnexite = function(N,R,teta){
    matrice = grapheDeConnexion(N,R,teta);
    
    #print(matrice);
    X0 = rep(FALSE,N);
    for (i in 1:N)
    {
      if(sum(((matrice%*%matrice[i,])!=0))==N){
        return(TRUE);
      }
    }
    return(FALSE);
  }
  
  #calculConnexite(100,1,0.60);
  
  calculP = function(N,R,pas,repetition){
    tailleBoucle = floor(R/pas);
    #print(tailleBoucle);
    nbTrue = rep(0, tailleBoucle);
    for(i in 1:repetition){
      pasCourant = pas;
      for(j in 1:tailleBoucle){
        if(calculConnexite(N,R,pasCourant)){
          #print("a");
          nbTrue[j] = nbTrue[j] + 1;
        }
        #print(pasCourant);
        pasCourant = pasCourant + pas;
      }
      #print(nbTrue);
    }
    for(i in 1:tailleBoucle){
      nbTrue[i] = nbTrue[i]/repetition;
    }
    return(nbTrue);
  }
  
  #"calculP(10,1,0.05,20);

Calculs

Question 1

Génération du réseau

  N=100;

Sur ce premier graphe, on voit que pour teta=0.2, tous les points ne sont pas reliés entre eux.

  grapheDeConnexion(N,1, 0.2, graphe = TRUE);

Ici, pour teta=0.4, on voit que tous les points sont reliés.

  grapheDeConnexion(N,1, 0.4, graphe = TRUE);

Ici, pour un N grand et un teta plutôt grand, tous les points sont pratiquements reliés entre eux.

  grapheDeConnexion(N,1, 0.6, graphe = TRUE);

On voit donc que plus teta augmente, et plus les points sont reliés les uns aux autres (mais on s’y attendait déjà).

Question 2

Connexité

Attention : j’ai utilisé la fonction geom_smooth() afin d’aficher des intervals de confiance. Cependant la courbe passe au dessus de 1, mais les valeurs elles, ne dépassent pas 1.

On voit ici que le le S se situe entre 0.5 et 1.

  pas = seq(0.05,1,0.05);
  N=10;
  proba = calculP(N,1,0.05,20);
  df=data.frame(proba= proba, valeur=pas);
  ggplot(data=df, aes(x=pas,y=proba)) + geom_smooth();
## `geom_smooth()` using method = 'loess'

De même pour un N plus grand, le S se situe un peu plus vers la gauche.

  N=20;
  proba = calculP(N,1,0.05,20);
  df=data.frame(proba= proba, valeur=pas);
  ggplot(data=df, aes(x=pas,y=proba)) + geom_smooth();
## `geom_smooth()` using method = 'loess'

Pour un N très grand, le S commence même avant un teta de 0.5 .

  N=100;
  proba = calculP(N,1,0.05,20);
  df=data.frame(proba= proba, valeur=pas);
  ggplot(data=df, aes(x=pas,y=proba)) + geom_smooth();
## `geom_smooth()` using method = 'loess'

On voit donc que la courbe est sensiblement la même, mais qu’elle se décalle en fonction de N.

Analyse

N influence moins la courbe que ce que je pensais.