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

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é


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é

ic194665's avatar
ic194665 a validé
----
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 : 
ic194665's avatar
ic194665 a validé
<img src="https://latex.codecogs.com/svg.latex?\small&space;k >ln(n) (p > \frac{ln(N)}{N})" title="" />
ic194665's avatar
ic194665 a validé

ic194665's avatar
ic194665 a validé
 et là dans notre cas :&nbsp;
ic194665's avatar
ic194665 a validé
<img src="https://latex.codecogs.com/svg.latex?\small&space;k = 6.62208890914917 \ngtr ln(N) = 12.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é 
ic194665's avatar
ic194665 a validé
moyen superieur à <img src="https://latex.codecogs.com/svg.latex?\small&space;k > 12.666909387  "/>   
ic194665's avatar
ic194665 a validé
----
### 4-La distribution des degrés
ic194665's avatar
ic194665 a validé

ic194665's avatar
ic194665 a validé
 Il faut créer un fichier contenant les degrés et leurs distributions, en executant
ic194665's avatar
ic194665 a validé
  avec gnuplot on aura ces 2 resultats:  

ic194665's avatar
ic194665 a validé
 
 


En traçant la distribution de degrés en échelle log-log on observe une ligne droite 
pendant plusieurs ordres de grandeur. Cela nous indique une loi de puissance : 
ic194665's avatar
ic194665 a validé
<img src="https://latex.codecogs.com/svg.latex?\small&space;P_k=CK^\delta"/>
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é
<br>
ic194665's avatar
ic194665 a validé

ic194665's avatar
ic194665 a validé
 |  tracer la distribution des 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 ± ∞.  

ic194665's avatar
ic194665 a validé
 
ic194665's avatar
ic194665 a validé
----
### 5-La distance moyenne dans le réseau
ic194665's avatar
ic194665 a validé
Voici le programme utilisé:
 ```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++;
            System.out.format("\r%.1f%% complété", ((double) i) / 1000 * 100);
        }

        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;
    }
 ```
La courbe obtenue :
![](src/main/resources/distribution_distances/dist-distri.png)

La distance moyenne obtenue avec un échantillon de 1000 est :6;76 par consequant 
L'hypothèse des 6 degrés de séparation semble se confirmer. 

Pour  savoir s'il s'agit d'un réseau "petit monde", il suffit de vérifier que d=d(max)
 <img src="https://latex.codecogs.com/svg.latex?\small&space; \frac{ln(N)}{ln(K)}=6.71" /> et vue que

d et d(max) ne sont pas égaux mais notre algorithme ne permet pas d'avoir un résultat d'une immense précision, 
on pourra en conclure que le réseau de collaboration est un petit monde.
......................

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

Oui, ce graphe est connexe.

|  tracer la distribution des degres et estimer l'exposant de la loi de puissance            |    |   
  :--------------------------:|:-------------------------:
  ![](src/main/resources/distribution_degres/deg-meth-att-ref.png) |

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




2)Un réseau aléatoire :

| Mesure          |    Resultat| 
|-----------------|:-------------|
| Le nombre de noeud (N) :| 100000  |
| Le nombre de lien (L)   :  | 348924          | 
| Le Degré moyen (K)    :|    6.978549957275391      | 
| Le coefficient de clustering :   |   6.77163144670172E-5       | 

Ce réseau n'est pas connecté.


 |  tracer la distribution et estimer l'exposant de la loi de puissance            |    |   
     :--------------------------:|:-------------------------:
     ![](src/main/resources/distribution_degres/deg-reseau-aleatoire.png) |

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