README.md 10,3 ko
Newer Older
ic194665's avatar
ic194665 a validé
## Mesures de réseaux d'interaction
ic194665's avatar
ic194665 a validé

### 2.Quelques mesures de base:
ic194665's avatar
ic194665 a validé

ic194665's avatar
ic194665 a validé
| 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       | 
ic194665's avatar
ic194665 a validé


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)**
ic194665's avatar
ic194665 a validé

### 3.La connexité du reseau
ic194665's avatar
ic194665 a validé

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

ic194665's avatar
ic194665 a validé
```java
ic194665's avatar
ic194665 a validé
 if(isConnected(graph))
            System.out.println("Le graphe est connexe");
        else
            System.out.println("Le graphe est non connexe");   
ic194665's avatar
ic194665 a validé
```
ic194665's avatar
ic194665 a validé

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)**
ic194665's avatar
ic194665 a validé
  
ic194665's avatar
ic194665 a validé
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)**
ic194665's avatar
ic194665 a validé

### 4.La distribution de degrés
ic194665's avatar
ic194665 a validé

En traçant la distribution de degrés avec [le fichier obtenu][dd-degres-distribution] en échelle log-log on observe une ligne droite 
ic194665's avatar
ic194665 a validé
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)**
ic194665's avatar
ic194665 a validé

ic194665's avatar
ic194665 a validé
Tracer la distribution et estimer l'exposant de la loi de puissance:
ic194665's avatar
ic194665 a validé

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

On a γ=2.7±0.04
ic194665's avatar
ic194665 a validé

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:

ic194665's avatar
ic194665 a validé
 ```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:
ic194665's avatar
ic194665 a validé

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

ic194665's avatar
ic194665 a validé
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 
ic194665's avatar
ic194665 a validé
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.
ic194665's avatar
ic194665 a validé

### 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 :   

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

| 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        | 
ic194665's avatar
ic194665 a validé
| Distance moyenne | ≈ 5.5        |  
| Connectivité                 | OUI            |
ic194665's avatar
ic194665 a validé
|  tracer la distribution de degres   |    
  :--------------------------:|
ic194665's avatar
ic194665 a validé
  ![](src/main/resources/distribution_degres/deg-meth-att-ref.png) |

ic194665's avatar
ic194665 a validé
|  tracer la distribution de distances            |    
  :--------------------------:|
ic194665's avatar
ic194665 a validé
  ![](src/main/resources/distribution_distances/dist-distrib-mehode.png) |

ic194665's avatar
ic194665 a validé
<br>
ic194665's avatar
ic194665 a validé
2. Un réseau aléatoire :
ic194665's avatar
ic194665 a validé
| 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             |
ic194665's avatar
ic194665 a validé
|  tracer la distribution de degres            |    
  :--------------------------:|
  ![](src/main/resources/distribution_degres/deg-reseau-aleatoire.png) 
ic194665's avatar
ic194665 a validé
|  tracer la distribution de distances            |    
  :--------------------------:|
ic194665's avatar
ic194665 a validé
  ![](src/main/resources/distribution_distances/dist-distrib-aleat.png) |
ic194665's avatar
ic194665 a validé

<br>
ic194665's avatar
ic194665 a validé
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)**

ic194665's avatar
ic194665 a validé
### 2-les courbes des 3 scénarios :
ic194665's avatar
ic194665 a validé
![](src/main/resources/propagation/graphe%20de%20colabaration/colaboration.png)

Les 3 scénarios se stabilisent :
ic194665's avatar
ic194665 a validé
- Scénario 1: autour de 85%
- Scénario 2 (immunisation aléatoire): autour de 30%
- Scénario 3 (immunisation sélective): autour de 10%
ic194665's avatar
ic194665 a validé
### 3- Le degre moyen des 2 groupes
   - Le degre moyen du groupe 0 est : **![](https://latex.codecogs.com/gif.latex?%5Cleft%20%5Clangle%20k%20%5Cright%20%5Crangle%20%5Capprox%206.6)**
   - Le degre moyen du groupe 1 est : **![](https://latex.codecogs.com/gif.latex?%5Cleft%20%5Clangle%20k%20%5Cright%20%5Crangle%20%5Capprox%2011.4)**
ic194665's avatar
ic194665 a validé
   
   La difference s'explique par une présence nettement superieur de hubs dans le groupe 1,
   donc une grande probabilité d'etre immunisé par les voisins.

### 4-Une nouvelle stratégie 
En adaptant une nouvelle stratégie **l'immunisation d'un nœud est équivalente à sa suppression du réseau**
ic194665's avatar
ic194665 a validé
 les nouveaux seuils épidémique sont:
ic194665's avatar
ic194665 a validé
 - Immunisation aléatoire : ![](https://latex.codecogs.com/gif.latex?%5Clambda%20_%7Bc%7D%3D0.045)
 - Immunisation sélective : ![](https://latex.codecogs.com/gif.latex?%5Clambda%20_%7Bc%7D%3D0.094)
ic194665's avatar
ic194665 a validé

Pour le réseau aléatoire, le seuil épidémique est approximativement égal à celui du réseau initial car la taille du réseau n'a pas d'influence sur son seuil épidémique.
Alors que le réseau sélectif a un seuil épidémique environ deux fois plus grand que les autres. On peut justifier cela par le fait qu'un grand nombre de hub soient retirés
du réseau et donc limite la propagation.

ic194665's avatar
ic194665 a validé
### 5-Simulation avec les memes scénarios:
- **Un réseau aléatoire** 
ic194665's avatar
ic194665 a validé

![](src/main/resources/propagation/graphe%20random/random.png)

- **Un réseau généré avec la méthode d'attachement préférentiel**
ic194665's avatar
ic194665 a validé

![](src/main/resources/propagation/grapge%20preferential/preferencial.png) 
ic194665's avatar
ic194665 a validé

ic194665's avatar
ic194665 a validé
Dans les 2 réseaux :
- Scénario 1: Les 2 réseaux se stabilisent presque à la meme valeur, cette 
 valeur est atteinte plus rapidement dans le graphe générer avec la méthode d'attachement préférentiel
- Scénario 2 et 3:
  1. Réseau aléatoire: courbes normales et logiques
  2. Réseau généré avec la méthode d'attachement préférentiel: les 2 courbes se stabilisent à la meme valeur 
 


  
[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