## Mesures de réseaux d'interaction

### 2.Quelques mesures de base:

| Mesure          |  Resultat| 
|-----------------|:-------------|
| Le nombre de noeud (N) :|  317080 |
| Le nombre de lien (L)   :  |   1049866        | 
| Le Degré moyen (K)    :|    6.62208890914917      | 
| Le coefficient de clustering :   |   0.6324308280637396       | 


Le coefficient de clustering pour un réseau aléatoire de la même taille et du même degré moyen est 
**![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20P%3D%5Cfrac%7BK%7D%7BN%7D%3D%5Cfrac%7B6.62208890914917%7D%7B317080%7D%3D0.00002088459)**

### 3.La connexité du reseau

Oui, le reseau est connexe car il posséde une seule composante connexe (il suffit d'executer ce code)

```java
 if(isConnected(graph))
            System.out.println("Le graphe est connexe");
        else
            System.out.println("Le graphe est non connexe");   
```

Un réseau aléatoire de la même taille et degré moyen ne sera pas connexe car dans un régime connecté cette condition doit etre verifiée : 
**![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20k%20%3Eln%28n%29%3A%28p%20%3E%20%5Cfrac%7Bln%28N%29%7D%7BN%7D%29)**
et là dans notre cas : **![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20k%20%3D%206.62208890914917%20%5Cngtr%20ln%28N%29%20%3D%2012.666909387)**
  
Donc un réseau aléatoire avec cette taille sera connexe à partir d'un degré 
moyen **![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20k%3E12.666909387)**

### 4.La distribution de degrés

En traçant la distribution de degrés avec [le fichier obtenu][dd-degres-distribution] en échelle log-log on observe une ligne droite 
pendant plusieurs ordres de grandeur. Cela nous indique une loi de puissance : 
**![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20P_k%3DCK%5E%5Cdelta)**

Tracer la distribution et estimer l'exposant de la loi de puissance:

 |  Tracer la distribution de degrés            |    |   
  :--------------------------:|:-------------------------:
  ![](src/main/resources/distribution_degres/dd_dblp.png) |

On a γ=2.7±0.04

La loi de puissance ici signifie que ce reseau n'a pas d'échelle, comme
on a pu le remarquer lors du calcul de la distribution le degré typique 
des noeuds est k ± ∞.  

### 5.La distance moyenne dans le réseau

Voici le programme utilisé pour obtenir la distribution des distances:

 ```java
  public static HashMap<Integer, Double> getDistancesDistribution(Graph g, int nn) {
        List<Node> sample = Toolkit.randomNodeSet(g, nn);
        HashMap<Integer, Double> dist_distances = new HashMap<>();

        int i = 0;
        for (Node n : sample) {
            BreadthFirstIterator<Node> iter = (BreadthFirstIterator<Node>) n.getBreadthFirstIterator();

            while (iter.hasNext()) {
                int depth = iter.getDepthOf(iter.next());
                Double depthSum = dist_distances.get(depth);

                if (depthSum == null)
                    dist_distances.put(depth, 1.0);
                else
                    dist_distances.put(depth, depthSum + 1);
            }

            i++;
        }

        Double measuresCount = dist_distances.values().stream().reduce(0.0, Double::sum);
        dist_distances.forEach((k, v) -> dist_distances.put(k, v / measuresCount));

        return dist_distances;
    }
 ```
 Puis j'ai mets les resultat dans ce [fichier][dd-distances-distribution]  
 
- La courbe obtenue en exécutant avec gnuplot est:

 ![](src/main/resources/distribution_distances/dist-distri.png)

La courbe obtenue correspond à une **loi de poisson** de parametre  **γ= la distance moyenne**
la cloche dans la courbe(**γ**) indique la valeur du plus grand nombre de noeuds 
partageant une distance avec un autre noeud.

La distance moyenne obtenue avec un échantillon de 1000 est **6,76** par conséquant 
L'hypothèse des 6 degrés de séparation semble se confirmer. 

Vérifiant si les propriétés d'un réseau **petit monde** sont réunies :

- Six degrés de séparation  :heavy_check_mark: :heavy_check_mark:
- **![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20%3Cd%20%3E%20%3Dd_%7B_max%7D)** 

Par un simple calcul **![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20d_%7Bmax%7D%3D%20%5Cfrac%7Bln%28N%29%7D%7Bln%28K%29%7D%3D%206.70064)**, vu que notre programme n'est pas très précis alors on peut les considérés comme égaux
**![](https://latex.codecogs.com/gif.latex?%5Cdpi%7B100%7D%20%5Cfn_jvn%20%3Cd%20%3E%20%5Capprox%20d_%7B_max%7D)**  :heavy_check_mark: :heavy_check_mark:

Les propriétés sont vérifiées donc c'est un réseau **petit monde**  

Un réseau aléatoire avec les mêmes caractéristiques aura la
même distance moyenne, car d'après le cours, c'est la seule caractéristique en
commun entre un réseau de terrain et réseau aléatoire.

### 6-Refaire les mesures de base

En utilisant GraphStream, on génere un réseau aléatoire et un 
un réseau avec la méthode d'attachement préférentiel (Barabasi-Albert)
(même taille et même degré), et on refait les mesures précédentes :   

1. Un réseau avec la méthode d'attachement préférentiel (Barabasi-Albert) :

| Mesure          |    Resultat| 
|-----------------|:-------------|
| Le nombre de noeud (N) :| 100000  |
| Le nombre de lien (L)   :  | 349539          | 
| Le Degré moyen (K)    :|     6.990779876708984     | 
| Le coefficient de clustering :   |  0.0012226869597521156        | 
| Distance moyenne | ≈ 5.5        |  
| Connectivité                 | OUI            |


|  tracer la distribution de degres   |    
  :--------------------------:|
  ![](src/main/resources/distribution_degres/deg-meth-att-ref.png) |

|  tracer la distribution de distances            |    
  :--------------------------:|
  ![](src/main/resources/distribution_distances/dist-distrib-mehode.png) |

<br>

2. Un réseau aléatoire :

| Mesure                 | Resultats | 
|-----------------|:-------------:|
| Le nombre de noeud (N)       | 100000         | 
| Le nombre de lien (L)        | 348924         |
| Le Degré moyen (K)           | 6.978549       |  
| Le coefficient de clustering | 6.771E-5        |  
| Distance moyenne | ≈6.4        |  
| Connectivité                 | NON             |


|  tracer la distribution de degres            |    
  :--------------------------:|
  ![](src/main/resources/distribution_degres/deg-reseau-aleatoire.png) 

|  tracer la distribution de distances            |    
  :--------------------------:|
  ![](src/main/resources/distribution_distances/dist-distrib-aleat.png) |

<br>
  
Les résultats expérimentaux ne correspondent pas totalement aux prédictions théoriques  

La distribution de distances des trois réseaux suit un loi de Poisson. 

## Propagation

1-Le taux de propagation noté λ est le nombre moyen de cas secondaires provoqués par 
une seule personne infectée au cours de sa période contagieuse, il se calcule avec cette formule :
**![](https://latex.codecogs.com/gif.latex?%5Clambda%20%3D%5Cfrac%7B%5Cbeta%20%7D%7B%5Cmu%20%7D)**.

β est la probabilité de transmettre dans une unité d temps **![](https://latex.codecogs.com/gif.latex?%5Cbeta%20%3D%5Cfrac%7B1%7D%7B7%20%7D)**.  

μ est le taux de guérison **![](https://latex.codecogs.com/gif.latex?%5Cmu%20%3D%5Cfrac%7B1%7D%7B14%20%7D)**.

Donc λ=2.

Le seuil épidémique calculé à l'aide d'un programe est **![](https://latex.codecogs.com/gif.latex?%5Clambda%20_%7Bc%7D%3D%5Cfrac%7B%5Cleft%20%5Clangle%20k%20%5Cright%20%5Crangle%7D%7B%5Cleft%20%5Clangle%20k%5E%7B2%7D%20%5Cright%20%5Crangle%7D%5Capprox%200.46)**

Le seuil épidémique d'un réseau aléatoire qui a le meme degré serait **![](https://latex.codecogs.com/gif.latex?%5Clambda%20_%7Bc%7D%3D%5Cfrac%7B1%7D%7B%5Cleft%20%5Clangle%20k%20%5Cright%20%5Crangle%20&plus;1%7D%5Capprox%200.131)**

2-les courbes des 3 scénarios :
![](src/main/resources/propagation/graphe de colabaration/colaboration.png)

Les 3 scénarios se stabilisent :
- scénario 1: autour de 85%
- scénario 2 (immunisation aléatoire): autour de 30%
- scénario 3 (immunisation sélective): autour de 10%



  
[dd-degres-distribution]: https://www-apps.univ-lehavre.fr/forge/ic194665/tp2-ri-chaourar_imine/-/blob/master/src/main/resources/distribution_degres/degreedistribution.txt
[dd-distances-distribution]: https://www-apps.univ-lehavre.fr/forge/ic194665/tp2-ri-chaourar_imine/-/blob/master/src/main/resources/distribution_distances/distancedistribution    
