Académique Documents
Professionnel Documents
Culture Documents
MEMOIRE
Présenté en vue de l’obtention du diplôme de :
Master en Informatique
Option : Intelligence Artificielle
Par :
NECHNACHE Aboubakr
Et
CHARA Bilal
Thème
Une Méthode Pour La Détection Des
Communautés Dans Les Réseaux
Dynamiques
Devant le jury composé de
M me Chettibi Selwa Présidente
me
M Boudebza Souâad Encadreur
M. Labani Merouane Examinateur
Nous remerçions Allah, le tout-puissant qui nous a donné, la force, le courage, et la pa-
tience d’accomplir ce travail
Notre gratitude, nos vifs remerçiements et nos respects à notre encadrante M me Souâad
Boudebza, pour tous ses judicieux conseils, son temps qu’elle nous a consacré et pour ses
orientations.
Nous remerçions l’ensemble des membres du jury qui nous ont fait l’immense plaisir
d’avoir accepté d’examiner et d’évaluer notre travail.
Merçi aux collègues du travail, merçi aux collègues de l’université pour leurs encoura-
gements.
Un grand merçi à tous les enseignants du département d’Informatique qui ont été im-
pliqués d’une manière ou d’une autre dans la formation en Master et en Licence.
Dédicace
Je tiens à dédier cet humble travail à :
Enfin, je remerçie mon directeur M. A. Farhat pour les façilités qu’il m’a fourni pour
compléter ce travail.
A tous ceux qui, par un mot, m’ont donné la force de continuer . . ..
Bilal
Dédicace
Je tiens à dédier cet humble travail à :
Enfin, je remerçie tous ceux qui, par un mot, m’ont donné la force de continuer . . ..
Aboubakr
Résumé
Les grands réseaux d’interactions (appelés réseaux de terrains) issus de nombreuses dis-
ciplines (sociologie, biologie, informatiques, etc.) peuvent être représentés par des graphes
dont les noeuds représentent les acteurs du phénomène et les liens représentent les in-
teractions entre eux. Ces réseaux exhibent une structure mésoscopique appelée structure
communautaire. Une communautés est vue comme un sous-graphe composé de noeuds
qui sont densément liés entre eux et faiblement liés aux autres noeuds du réseau. Les
réseaux de terrain sont par nature dynamiques. Donc, au fur et à mesure de l’évolution
des interactions dans le réseau, la structure communautaire par conséquent change.
Dans le cadre de ce travail, nous abordons un sujet qui est encore très peu abordé dans
la littérature scientifique, celui de l’analyse multi-échelle temporelle des structures com-
munautaires. Nous proposons un algorithme de détection de communautés dynamiques
baptisé DCMET (Détection de Communautés à Multiples Échelles Temporelles), qui se
base principalement sur l’analyse des réseaux d’interaction à plusieurs échelles temporelles.
Cet algorithme concentre principalement sur le principe de similarité et le clustering des
communautés, il permet de détecter les communautés stables sur différentes échelles tem-
porelles.
Afin de valider notre proposition, nous avons effectué des expérimentations sur des ré-
seaux synthétiques et réels.
Introduction générale 1
I État de l’art 4
I.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2 Les réseaux complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I.2.1 Définition d’un réseau complexe . . . . . . . . . . . . . . . . . . . . 4
I.2.2 Exemples des réseaux complexes . . . . . . . . . . . . . . . . . . . . 5
I.2.3 Propriétés des réseaux complexes . . . . . . . . . . . . . . . . . . . 5
I.2.3.1 Réseaux sans échelle . . . . . . . . . . . . . . . . . . . . . 5
I.2.3.2 Réseaux de petit monde . . . . . . . . . . . . . . . . . . . 6
I.2.3.3 Structure communautaire . . . . . . . . . . . . . . . . . . 7
I.3 Notion de la théorie des graphes . . . . . . . . . . . . . . . . . . . . . . . . 7
I.4 Représentation des réseaux dynamiques . . . . . . . . . . . . . . . . . . . . 8
I.4.1 Graphes agrégés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
I.4.2 Séries de snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I.4.3 Réseau temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I.5 Problème de la détection de communautés . . . . . . . . . . . . . . . . . . 9
I.6 Détection de communautés statiques . . . . . . . . . . . . . . . . . . . . . 10
i
Table des matières
II Proposition 26
II.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
II.2 Exigences de notre méthode . . . . . . . . . . . . . . . . . . . . . . . . . . 27
II.2.1 Analyser les réseaux dynamiques à plusieurs échelles temporelles . . 27
II.2.2 Détecter les communautés stables . . . . . . . . . . . . . . . . . . . 27
II.3 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
II.3.1 Partitionnement du graphe d’interactions . . . . . . . . . . . . . . . 28
II.3.2 Clustering des instantanés . . . . . . . . . . . . . . . . . . . . . . . 30
II.3.3 Détection de communautés . . . . . . . . . . . . . . . . . . . . . . . 31
II.3.4 Filtrage de communautés . . . . . . . . . . . . . . . . . . . . . . . . 31
II.3.5 Choix des fonctions et des paramètres . . . . . . . . . . . . . . . . . 31
II.3.5.1 Détection de communauté - DC . . . . . . . . . . . . . . . 31
II.3.5.2 Similarité des noeuds de la communauté - NCS . . . . . . 33
II.4 Exemple explicatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
II.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
ii
Table des matières
Bibliographie vii
iii
TABLE DES FIGURES
iv
Table des figures
v
LISTE DES TABLEAUX
III.1 Comparaison des scores NMI obtenus par la méthode proposée (DCMET),
la méthode de [Boudebza et al., 2019] et la méthode de [Greene et al., 2010]. 45
vi
LISTES DES ACRONYMES
vii
INTRODUCTION GÉNÉRALE
L’analyse des réseaux issus des données réelles, aussi appelés graphes de terrains, est
un domaine ayant conduit à de nombreux travaux ces dernières années, dans de nom-
breuses domaines. En effet, il est possible de représenter des systèmes réels sous la forme
de réseaux. On peut notamment citer en informatique, le Web peut être vu comme un
ensemble de pages web (simples fichiers texte) reliées entre elles par des liens hypertextes.
Internet peut être vu comme un ensemble de routeurs interconnectés par des câbles, en
biologie, le cerveau est un ensemble de neurones en interaction, et une cellule peut être
modélisée comme un ensemble de protéines qui interagissent pour fonctionner.
Récemment, le développement technologique a conduit à la naissance d’immenses réseaux,
pouvant contenir des milliards de noeuds et de liens, et pour lesquels il est possible d’ob-
tenir de grandes quantités d’information, ces réseaux sont appelés les grands graphes ou
graphes de terrains. Ces derniers sont devenus un sujet d’étude à part entière. Une parti-
cularité des graphes de terrains, que ce sont souvent des graphes dynamiques, ils évoluent
au cours du temps, ce qui se traduit par l’ajout et la disparition des noeuds et des liens.
La dynamique de ces réseaux est donc un facteur important à prendre en compte lors de
l’analyse de ces réseaux. L’une des problématiques majeures dans l’analyse des réseaux
est celle de la détection de leurs structures communautaires dans le temps.
Nombreuses sont les solutions qui ont été proposées pour résoudre le problème de détection
de communautés dynamiques. Une solution classique consiste à considérer le réseau dyna-
mique comme une série d’instantanés et d’analyser ensuite l’évolution des communautés
entre ces instantanés. Cette solution a l’avantage de pouvoir réutiliser les algorithmes
de détection de communautés statiques sur lesquels de nombreux chercheurs travaillent
depuis longtemps, mais elle présente néanmoins deux problèmes :
— Problème de définition de l’échelle temporelle : En fait, les changements des
réseaux dynamiques peuvent être observées à différentes échelles : années, mois, jour,
1
Liste des tableaux
heure et même à des échelles plus petites. Par exemple, si l’on observe des interac-
tions entre chercheurs dans un laboratoire, on peut s’attendre à trouver des groupes
de personnes correspondant à des réunions ou des pauses-café, interagissant avec une
fréquence élevée sur de courtes périodes de temps, ou à des membres d’un projet
avec une fréquence moyenne à moyen terme, ou encore à des groupes de coordination
interagissent à fréquence faible sur de plus longues périodes de temps, etc [Boudebza
et al., 2019]. Par conséquent, les communautés peuvent exister à différentes échelles
de temps : à court terme, à moyen terme et à long terme. Le modèle d’instanta-
nés nécessite toujours de définir l’échelle temporelle d’analyse, c-à-d, la taille de la
fenêtre temporelle qui est souvent choisie de façon arbitraire. Donc, l’analyse des
communautés sur une échelle temporelle arbitraire va nécessairement passer à coté
de certaines communautés, les communautés formées par les interactions de faible
latence sont invisibles lorsque l’échelle temporelle est plus petite, ainsi les commu-
nautés formées par des interactions de haute fréquence ne peuvent pas être détectés
sur une échelle temporelle plus grande.
— Problème d’instabilité des communautés : Une question importante pour la
détection des communautés est la stabilité [Aynaud and Guillaume, 2010]. De nom-
breux algorithmes de détection de communautés statiques sur lesquels reposent les
méthodes dynamiques travaillant sur des instantanés sont instables car ils peuvent
fournir des résultats très différents pour des réseaux similaires. Ce problème devient
important dans les situations dynamiques, car il est important de s’assurer que l’évo-
lution des communautés détectées correspond bien aux modifications structurelles
et n’ait pas d’effets secondaires dus aux algorithmes utilisés.
L’objectif principal de ce mémoire est de concevoir un algorithme de détection de commu-
nautés pour les réseaux dynamiques, qui tente d’offrir une solution à ces deux problèmes.
Pour cela, nous avons défini une méthode qui permet une analyse multi-échelle des grands
graphes d’interaction, et garantit la stabilité des communautés. L’algorithme fonctionne
sur quatre étapes : le partitionnement de graphe d’interactions, après dans la deuxième
étape le clustering des instantanés, ensuite la détection de communautés, et finalement le
filtrage des communautés.
L’approche proposée est évaluée sur différents types de réseaux, des réseaux synthétiques
et des réseaux réels. Nous avons testé notre méthode avec un générateur des réseaux
dynamique qui permet de générer des communautés dynamiques à plusieurs échelles tem-
porelles. Les résultats sont composés en terme de NMI (Normalisée Mutuelle Informa-
tion). Notre méthode a été également testé sur des réseaux réels collecté par SocioPat-
terns [Stehlé et al., 2011]. Les résultats ont été validé qualitativement. Les résultats obte-
2
Liste des tableaux
Organisation du mémoire
Ce mémoire est organisé en 3 chapitres organisés comme suit :
Le chapitre I présente un bref état de l’art sur les réseaux complexe, les propriétés et
aussi les définissions de quelques concepts nécessaires sur la théorie des graphes. De plus
ce chapitre présente la notion de communauté ainsi une revue des recherches liées à la
détection de communautés dynamiques.
Le chapitre II est consacré à la présentation de notre nouvel algorithme proposé. Tout
d’abord, nous nous intéressons aux exigences de notre algorithme. Ensuite, nous détaillons
notre proposition baptisé DCMET (Détection Communauté Multi Échelle Temporelle)
sous ses différent angles, à savoir le partitionnement du graphe d’interactions, clustering
des instantanés, la détection de communautés,et enfin le filtrage des communautés.
Le chapitre III présente les environnements de développement, et détaille les expérimen-
tations menées pour juger l’intérêt de notre algorithme proposé. Les résultats de ces
expérimentations sont discutés dans ce chapitre afin de mieux valider notre méthode.
Ce travail se termine par une conclusion générale et des respectives.
3
CHAPITRE I
ÉTAT DE L’ART
I.1 Introduction
Ce chapitre présente l’état de l’art se rapportant à la détection de communautés.
Nous introduisons tout d’abord la notion du réseau complexe dans la section I.2, et nous
présentons ensuite des généralités sur la théorie des graphes dans la section I.3. Dans la
section I.4, nous présentons les différentes représentations des réseaux dynamiques. La
définition d’une communauté, ainsi que sa problématique de détection seront présentés
dans la section I.5. Après, dans la section I.6 nous présentons les principales approches
de détection de communautés statiques. Ensuite, nous décrivons dans la section I.7 les
principales approches de la détection de communautés dynamiques. Nous terminons ce
chapitre par une analyse critique de ces approches en soulignant leurs avantages et leurs
inconvénients.
4
I.2. Les réseaux complexes
Un réseau sans échelle est un réseau dont la distribution des degrés suit une loi de
puissance. En d’autres termes, la fraction P (k) d’un nœud de réseau avec k connexions à
d’autres nœuds s’applique aux plus grandes valeurs de k.
De nombreux réseaux sont signalés comme étant sans échelle, bien que l’analyse statistique
réfute bon nombre de ces affirmations et en conteste sérieusement d’autres. De plus,
certains soutiennent que le simple fait de savoir que la distribution des degrés est à queue
grasse est plus important que de savoir si un réseau est sans échelle par une définition
statistiquement rigoureuse. La figure I.1 montre un exemple d’un réseau complexe sans
échelle.
5
I.2. Les réseaux complexes
Un réseau de petit monde est un graphe mathématique dans lequel la plupart des
nœuds ne sont pas voisins les uns des autres, mais les voisins d’un nœud donné sont
susceptibles d’être voisins les uns des autres, et la plupart des nœuds peuvent être atteints
par des sauts ou des étapes à travers un petit nombre de nœuds. Les réseaux de petit monde
ont tendance à contenir des cliques, c’est-à-dire des sous-réseaux avec des connexions
entrent presque deux nœuds. La figure I.2 montre un exemple d’un réseau complexe de
petit monde.
6
I.3. Notion de la théorie des graphes
La structure communautaire est l’une des caractéristiques les plus importantes obser-
vées dans les réseaux complexes. Une communauté est un sous-graphe dont les sommets
sont plus liés entre eux qu’avec le reste du réseau. L’extraction de la structure commu-
nautaire du réseau est appelée détection de communautés. Celle-ci est importante, car elle
permet de comprendre la structure et le fonctionnement du réseau.
7
I.4. Représentation des réseaux dynamiques
S = {A, B, C, D, E, F } et A = {{A, B}, {C, D}, {D, E}, {A, F }, {B, D}, {C, F }} (I.1)
8
I.5. Problème de la détection de communautés
9
I.6. Détection de communautés statiques
10
I.6. Détection de communautés statiques
catégorie est appelée méthode de bissection spectrale [Spielman and Teng, 1996].
L’approche hiérarchique est basée sur la définition d’une mesure de similarité entre les
nœuds du réseau. Elle se divise en deux catégories : agglomérative et divisive.
I.6.1.2.2 Approche divisive : L’approche divisive est de type descendante, elle place
d’abord tous les nœuds dans la même communauté, puis supprime les liens entre les nœuds
11
I.6. Détection de communautés statiques
ayant une faible similarité. Par conséquent, la communauté mère est décomposée en plu-
sieurs partitions. Ce processus se répète jusqu’à ce que tous les nœuds soient dans une
communauté. Chaque algorithme de cette catégorie définit ses propres critères de sup-
pression de liens à chaque itération [Moctar, 2019]. Le premier exemple de cette approche
est l’algorithme de [Girvan and Newman, 2002], où l’heuristique utilisée pour sélectionner
les liens à supprimer à chaque itération consiste à choisir le lien avec la plus grande cen-
tralité d’intermédiarité. Rappelons que la centralité intermédiaire d’un lien e est donnée
par le rapport du nombre de chemins les plus courts passant par e et reliant n’importe
quelle paire de nœuds dans le graphe au nombre total de chemins les plus courts dans
le graphe. L’heuristique appliquée dans l’algorithme 1 de [Girvan and Newman, 2002] est
basée sur le fait que les liens inter-communautaires ont nécessairement une forte centralité
d’intermédiarité. Le principal inconvénient de cet algorithme est sa complexité élevée.
12
I.6. Détection de communautés statiques
Ou :
— Aij est un élément de la matrice d’adjacence entre les noeuds i et j ;
— ki et kj sont les degrés de centralité des noeuds i et j respectivement ;
— ci et cj sont les communautés de noeuds ;
— C est la communauté étudiée ;
— m est le nombre de connexions observées ;
— δ(Ci , Cj ) est le symbole delta de Kronecker [Law-Kam-Cio, 2014], qui indique si les
noeuds i et j appartiennent à la même communauté ;
ki kj
— 2m
est l’espérance de la connexion sous hypothèse de distribution aléatoire ;
Elle représente l’écart entre le nombre de connexions observées et le nombre théorique
(espéré) obtenu si les connexions avaient été distribuées aléatoirement entre les noeuds
(plus communauté compacte, plus le résultat de modularité est élevé).
La modularité d’un réseau après partitionnement en k communautés est définit comme
suite :
k
!
1 X X ki kj
Q= Aij − (I.3)
2m k=1 ij∈Ck 2m
13
I.6. Détection de communautés statiques
L’algorithme de Louvain [Blondel et al., 2008] est définit dans l’algorithme 2 et un exemple
qui illustre son fonctionnement est présenté dans à la figure I.6.
Le recuit simulé est une méta-heuristique stochastique pour les problèmes d’optimi-
sation globale, évitant le risque d’être piégé dans des minima locaux. Tout d’abord, l’al-
gorithme commence par partitionner le réseau en partitions aléatoires. Ensuite, à chaque
itération, les marches aléatoires locales et globales sont à nouveau exécutées en fonction
de la modularité. Le déplacement local permet de déplacer aléatoirement un nœud d’un
module à un autre. Le mouvement global consiste à scinder et à fusionner des modules.
Le travail présenté par [Guimera and Amaral, 2005] introduit le principe du calcul de
la température, à la température t, des mouvements sont proposés et acceptés avec une
14
I.7. Détection de communautés dynamiques
certaine probabilité, par exemple : déplacement des nœuds du modèle vers un autre ou
fusion/division de modules.
15
I.7. Détection de communautés dynamiques
l’évolution du réseau. Une des premières études portant sur le suivi des communautés est
décrite dans [Palla et al., 2007]. L’auteur définit «six transformations possibles de la com-
munauté : naissance, mort, croissance, contraction, fusion et division»(voir figure I.7). Une
opération similaire est réalisée par [Asur et al., 2009] est également mentionné [Greene
et al., 2010].
[Bródka et al., 2013], identifie sept évolutions possibles de la dynamique des communau-
tés : rétrécissement, expansion, regroupement, clivage, apparition, disparition, continue.
Sauf le dernier, les six autres sont les mêmes que ceux définis par [Palla et al., 2007]. [Ca-
zabet, 2013]rajoute une huitième opération, appelé résurgence.
Figure I.7 – Opérations d’évolution communautaire dans les réseaux dynamiques. Figure
de [Palla et al., 2007]
Plus précisément, l’opération d’évolution des communautés dynamiques peut être ex-
primée comme suit :
— Croissance : la communauté grandit en intégrant des nouveaux noeuds/liens.
— Contraction : la communauté se rétrécit en raison de la perte de certains nœuds/liens.
— Fusion : Plusieurs communautés sont fusionnées en une seule.
— Division : diviser la communauté en plusieurs petites communautés.
— Naissance : La combinaison nœuds/liens forme une nouvelle communauté à l’instant
présent.
— Mort : La communauté qui existait à l’instant précédent disparaît à l’instant pré-
sent. La disparition d’une communauté peut se produire dans deux situations : soit
tous les nœuds de la communauté disparaissent, comme une communauté liée aux
saisons, soit les liens entre les nœuds disparaissent à un instant donné, on dit alors
Communauté événementielle.
16
I.7. Détection de communautés dynamiques
— continue : la communauté est constituée de nœuds/liens qui restent les mêmes d’un
instantané à l’autre.
— Résurgence : Les communautés disparaissent à certains moments puis réapparaissent
sous une forme identique ou très similaire quelque temps plus tard. C’est le cas des
communautés cycliques. Concernant l’inéquivalence entre «résurgence »et «mort +
naissance », il faut noter qu’au niveau de «résurgence » :
— La disparition et la renaissance d’une communauté ne sont pas continues.
— Les communautés qui en résultent peuvent subir des changements structurels
(notamment dans la répartition des liens).
La détection de communautés statiques semble être bien établie, et presque tous les
chercheurs ont l’idée de réutiliser les méthodes statiques dans des cas dynamiques. Il
existe de nombreuses tentatives d’adaptation des algorithmes statiques à des réseaux dy-
namiques ( [Hopcroft et al., 2004, Palla et al., 2007, Wang et al., 2008, Chen et al., 2010]).
L’idée générale est de considérer un réseau dynamique comme une série de réseaux sta-
tiques appelés "instantanés". Selon l’échelle temporelle, c’est-à-dire la taille de la fenêtre
d’agrégation utilisée pour construire le réseau d’instantanés, considérée lors de l’analyse
des communautés, les méthodes de cette approche peuvent être classées en deux catégorie.
Dans la première catégorie, les communautés sont étudiées à une seule échelle temporelle
alors que dans la deuxième, les communautés sont analysées à plusieurs échelles tempo-
relles de différentes tailles.
17
I.7. Détection de communautés dynamiques
18
I.7. Détection de communautés dynamiques
nant des événements intégrés démontrent que cette stratégie peut suivre avec succès les
communautés au fil du temps dans des réseaux volatils. De plus, ils décrivent des expé-
riences explorant les communautés dynamiques détectées dans un réseau réel d’opérateur
mobile contenant des millions d’utilisateurs. [Greene et al., 2010]
Algorithme de [Chen et al., 2010] :
[Chen et al., 2010] Introduit les concepts de représentation de graphe et de représentation
communautaire pour détecter et suivre la dynamique communautaire. La représentation
du graphe à t est le nœud qui apparaît également dans le graphe à t − 1. Un représen-
tant de la communauté est le nœud avec le plus petit nombre d’occurrences parmi les
autres communautés dans le même graphe. Tout d’abord, ils trouvent des représentants
de graphe dans chaque instantané et énumèrent les communautés dans chaque graphe
en utilisant les représentants de graphe comme graines. Ils ont ensuite utilisé des repré-
sentants de la communauté pour établir des relations entre les communautés à travers
différentes périodes. Enfin, des règles de décision sont utilisées pour décider du type de
dynamique communautaire.
Algorithme de [Morini et al., 2017] :
Dans [Morini et al., 2017], les auteurs calculent d’abord des instantanés de réseau agrégés
à partir d’observations d’horodaté à l’aide d’une fenêtre glissante. Les communautés sont
détectées indépendamment sur chaque fenêtre à l’aide d’un algorithme de détection sta-
tique. Ensuite, calcule de la similarité entre les paires de communautés à t et à t − 2, t − 1,
t+1, t+2. Cette information est utilisée pour lisser l’évolution de la communauté : si Ct−1
dans l’instantané précédent a une similarité forte avec Ct+n dans ce dernier instantané,
mais a une similarité plus faible avec les deux C1t et C2t à t, puis fusionné les deux, et la
communauté résultante est identifiée par Ct−n et Ct+n .
Algorithme de [Rossetti, 2020] :
L’algorithme Angel de [Rossetti, 2020] est une méthode centrée sur les nœuds pour dé-
tecter les communautés qui se chevauchent dans les réseaux statiques et dynamiques. La
variante dynamique de ce algorithme fonctionne comme suit : premièrement, les commu-
nautés de différents instantanés sont extraites à l’aide de la variante statique de l’algo-
|X∩Y |
rithme. Ensuite, le score de précision : Precision= (X, Y ) = |X|
est utilisé pour faire
correspondre les communautés entre des instantanés consécutifs dans les deux sens. Cela
permet d’identifier différents événements dans le cycle de vie d’une communauté.
La deuxième catégorie est celle des méthodes de détection statiques informées successives.
Ils proposent de considérer les résultats obtenus au temps t lors de la détection des com-
munautés au temps t + 1. Cela permet de réduire l’instabilité de l’algorithme, c’est-à-dire
que l’algorithme donne des résultats très éloignés pour des graphes très proches. En choi-
19
I.7. Détection de communautés dynamiques
sissant entre deux partitions différentes et pourraient prendre celle qui ressemble le plus
à la précédente, cette approche est illustré dans la figure I.9 et appliquée dans les travaux
de [Lin et al., 2009, Liu et al., 2020, Chen et al., 2020, Xie et al., 2011, Wang, 2012], nous
détaillerons certaines des méthodes ci-dessous :
Figure I.9 – Description de l’approche de détection statique basée sur l’informer succes-
sives [Cazabet, 2013].
20
I.7. Détection de communautés dynamiques
Il n’autorise pas non plus les opérations telles que la fusion ou la division communauté.
Algorithme de [Liu et al., 2020] :
Un travail est proposé par [Liu et al., 2020]. Les auteurs ont proposé un algorithme évolu-
tionnaire multi-objectif, dénommé DESC (Detecting the evolving community structure),
principalement pour capturer les modèles évolutifs des communautés dans les réseaux so-
ciaux dynamiques. Ils ont également utilisé la modularité et l’information mutuelle comme
fonctions objectives. Ils ont développé un opérateur de migration coopérant avec les opé-
rateurs génétiques classiques (opérateurs de sélection, de croisement et de mutation) pour
rechercher les connexions entre communautés, et adoptent la représentation du génome
dans [Yang et al., 2014] pour représenter les réseaux.
Algorithme de [Chen et al., 2020] :
[Chen et al., 2020] a proposé un algorithme de clustering d’affinité évolutif. Premièrement,
une matrice de similarité pondérée dans le temps est utilisée et calculée pour capturer les
changements temporels dans l’évolution de la communauté. Ensuite, des équations dif-
férentielles sont utilisées pour apprendre le comportement évolutif de l’intimité. Lors de
l’itération, l’affinité entre deux nœuds est mise à jour selon le mode d’itération. Les nœuds
à haute affinité se rassemblent dans le même groupe et les nœuds à faible affinité restent
à l’écart, formant une structure communautaire dans un réseau dynamique.
21
I.7. Détection de communautés dynamiques
différents instantanées adjacents (en avant et en arrière) pour voir si elles correspondent
ou non à des communautés stables. Le processus est répété pour chaque granularité tem-
porelle. Une réduction exponentielle est opté pour minimiser le nombre des échelles à
étudier et donc accélérer la méthode. [Boudebza et al., 2019]
L’évolution du réseau n’est plus vue comme une série d’instantanés, mais comme une
série de modifications du réseau. Il s’agit donc de prendre en compte les dernières mo-
dification faites sur le réseau et de modifier les communautés existantes en conséquence.
Cette approche est illustré dans la figure I.10.
Figure I.10 – Exemple de l’approche de détection communautaire sur les réseaux tem-
porels [Cazabet, 2013].
22
I.7. Détection de communautés dynamiques
nautés dynamiques dans des réseaux temporels. ILCD est inspiré de principes issus des
systèmes multi-agents (SMA). Le processus de simulation considère chaque noeud comme
un agent, qui peut procéder à 5 types d’actions : essayer de créer une nouvelle commu-
nauté, créer un nouveau lien avec un autre agent (arête du graphe), supprimer un lien
avec un autre agent, demander à rejoindre une communauté et demander à expulser un
agent d’une communauté. Pour chaque ajout d’un lien (i, j) dans le réseau, si i est dans
une communauté C et j n’appartient pas à C, l’algorithme évalue si j doit être intégré à
C. Lorsque il s’agit d’un retrait d’un lien interne d’une communauté, l’algorithme évalue
si des noeuds devraient quitter la communauté ou même si celle-ci Devrait se diviser.
Après chaque modification du réseau, si une ou plusieurs communautés ont été modifiées,
la fusion des communautés est étudiée.
Algorithme de [Boudebza et al., 2018] :
[Boudebza et al., 2018] proposent un algorithme en ligne, appelé OLCPM, basé sur les
méthodes de percolation de clique et de propagation de labels. OLCPM permet de dé-
tecter les communautés recouvrantes et de travailler sur des réseaux temporels avec une
granularité fine. À chaque changement du réseau, l’algorithme fait une mise à jour locale
des communautés.
Algorithme de [Zhao et al., 2019] :
Une approche incrémentale est proposée par [Zhao et al., 2019] pour détecter les com-
munautés dans les réseaux sociaux dynamiques. L’idée principale est de détecter la com-
munautés dans l’état initial du réseau, puis de collecter et d’analyser les changements
dynamiques incrémentaux, c’est-à-dire tous les changements entre deux pas de temps, et
enfin de mettre à jour la communauté de manière incrémentale. Cette méthode permet
l’ajout de sous-graphes (y compris les nœuds et les arêtes). Des stratégies de mise à jour
sont définies pour trouver des communautés à l’état actuel en fonction de la relation entre
le sous-graphe incluant des changements incrémentiels et les communautés à l’instant
précédent.
23
I.8. Conclusion
L’avantage évident des méthodes utilisant des instantanés est la réutilisation des outils
existants (algorithmes statiques et techniques d’appariement) sur lesquels de nombreux
chercheurs travaillent depuis longtemps. En revanche, cette approche a des faiblesses in-
hérentes qui est l’instabilité : sur deux graphes topologiquement très proches, un même
algorithme peut trouver des communautés très différentes. Les modifications obtenues ne
sont donc pas liées à des changements structurels, mais à l’incertitude de l’algorithme
utilisé. De plus, l’utilisation de la méthode d’instantané entraîne des opérations sur plu-
sieurs instantanés, encore sa complexité élevée. Les méthodes travaillant sur des réseaux
temporels ne souffre pas du problème d’instabilité. Mais, elles présentent néanmoins des
certaines limitations. Par exemple, la difficulté du parallélisme, puisque les communau-
tés découvertes représentent les meilleures solutions au niveau global. L’autre limitation,
c’est la dérive des communautés, cette question se pose lorsque on utilise des définitions
de communautés stochastiques comme modularité : parce que les partitions évoluent à
partir de solutions optimales locales, il n’existe aucune garantie qu’ils apporteront une
solution optimale au niveau global.
I.8 Conclusion
Dans ce chapitre, nous avons exposé les concepts de base sur les réseaux complexes,
leurs types et leurs propriétés. Après, nous introduisent quelques notions de la théorie des
graphes, ceci est considéré comme l’outil le plus approprié pour représenter des réseaux
complexes. Après, nous avons passé en revue la littérature sur le thème de la détection
de communauté dans les réseaux dynamiques et statiques. Un grand nombre d’études ont
montré un grand intérêt pour ce sujet. Bien que plusieurs approches aient été proposées
pour détecter les communautés dans les réseaux, nous présentons deux approches pour
la détection des réseaux statiques, les approches hiérarchiques et les approches basées
24
I.8. Conclusion
sur la modularité. Pour la détection des réseaux dynamiques, nous avons distingué deux
catégories, la première considère le réseau comme instantané et utilise les méthodes sta-
tiques, ce dernier pose le problème de l’instabilité. L’autre catégorie élimine le problème
de l’instabilité et utilise les réseaux temporels, mais elle ne peut pas se suivre toutes les
étapes d’évolution des communautés. Notre proposition qui sera décrite dans le chapitre
suivant, s’intéresse à cette dernière catégorie et tente toutefois à suivre toute l’évolution
de communautés.
25
CHAPITRE II
PROPOSITION
II.1 Introduction
Les interactions dynamiques sont souvent représentées par le modèle d’instantanés :
le réseau est divisé en plusieurs réseaux statiques. L’analyse des communautés sur de tels
modèles de réseaux est souvent confrontée à de nombreux problèmes. L’un des problèmes à
été présenté récemment dans les travaux de [Boudebza et al., 2019] qui est celui de l’analyse
multi-echelle temporelle. En fait, le modèle d’instantanés exige souvent le choix arbitraire
d’une échelle temporelle d’analyse. Donc, une analyse des communautés trouvées sur une
échelle choisie arbitrairement va nécessairement passer à coté de certaines communautés,
les communautés formées par les interactions de faible latence sont invisibles lorsque
l’échelle temporelle est plus petite, ainsi les communautés formées par les interactions à
haute fréquence sont perdues dans le bruit quand l’échelle temporelle est plus grande.
Une analyse des communautés à plusieurs échelles temporelle semble donc la solution
idéale pour étudier les réseaux d’interactions. Dans le présent chapitre, nous proposons
une méthode pour la détection des communautés dynamiques, basée sur une analyse à
plusieurs échelles temporelles. Ce chapitre est présenté comme suit. Dans la section II.2
nous commençons par décrire les exigences relatives à la méthode que nous proposons.
Ensuite, dans la section II.3, nous décrivons de façon détaillée notre méthode, nommée
DCMET (Détection de Communautés à Multiples Échelles Temporelles) et on conclu ce
chapitre par un exemple explicatif sur le déroulement de notre méthode dans la section
II.4.
26
II.2. Exigences de notre méthode
27
II.3. Méthode
II.3 Méthode
Notre méthode baptisée DCMET (Détection de Communautés à Multiples Échelles
Temporelles), vise à détecter des communautés stables en analysant le réseau dynamique
sur plusieurs échelles temporelles. Nous utilisons un processus à quatre étapes :
1. Partitionnement de graphe d’interactions, nous partitionnons le graphe d’in-
teraction sur plusieurs instantanés, chaque instantané à une durée w. Le paramètre
w indique l’échelle temporelle exprimée dans une période de temps.
2. Clustering des instantanés, regrouper les instantanés similaires dans des clusters.
3. Détection de communautés, trouvez les communautés associées à chaque cluster.
4. Filtrage des communautés, pour éliminer les périodes des communautés ou les
communautés elles-mêmes qui sont redondantes avec les communautés déjà trouvées
à l’itération précédente.
Ce processus se répète à partir de l’étape 2 jusqu’à obtenir un seul cluster qui contient
toutes les instantanées ou il n y a plus de clusters similaires. Pour passer d’une itération
à une autre, nous avons utilisé un paramètre de réduction θr pour diminuer le seuil de
similarité. Le pseudo-code de notre méthode est décrit dans l’algorithme 3.
Avant de commencer à détailler chacune de ces quatre étapes, nous définissons d’abord
les fonctions et les paramètres de notre méthode :
— DC(G), un algorithme statique de détection de communautés pour un graphe G.
— NCS(G1 ,G2 ), une fonction de similarité entre deux graphes G1 et G2 .
— θs , un paramètre qui désigne le seuil de similarité.
— θt , un paramètre qui représente le seuil de stabilité.
— θr , un paramètre de réduction du seuil de similarité.
Voir la section II.3.5 sur la façon comment choisir ces fonctions et paramètres.
On définit une communauté dynamique stable C comme un couple C = (n, p), avec n la
liste des noeuds de la communauté, p sa période d’existence définie en tant que ensemble
d’intervalles pas nécessairement successifs, par exemple, p = [ti , tj [, [tk , tl [ signifie que la
communauté existe à deux intervalles : de ti à tj et de tk à tl .
28
II.3. Méthode
Algorithme 3 DCMET
Input : G, w, θs , θt , θr
Output : com_f inal
1: résulta ← {}
2: com_f inal ← {}
3: Gw ← partitionner(G, w) ▷ partitionnement de graphe
4: Répéter
5: cl ← {}
6: N ← taille(Gw )
7: cl ← clustering(Gw , θs )
8: com_dyn ← detection_des_communauté(cl)
9: com ← {}
10: com ← f iltrage(com_dyn, θt )
11: com_f inal ← com_f inal + com
12: θs ← θs − θr
13: Jusqu’à(θs == 0 et cl == Gw )
29
II.3. Méthode
Algorithme 4 clustering
Input : G, θs
Output : cl
1: M ← [][]
2: Pour i=0 à N-1 Faire
3: Pour j=0 à N-1 Faire
4: M [i, j] ← N CS(Gi .w, Gj .w)
5: Fin Pour
6: Fin Pour
7: cl ← {}
8: Pour i=0 à N-1 Faire
9: Pour j=0 à N-1 Faire
10: Si M [i, j] > θs Alors
11: bool ← f aux
12: Pour E dans cl Faire
13: Si Gw [i] ∈ E Alors
14: E ← E + Gw [j] ▷ le symbole "+" signifie l’union
15: bool ← vrai
16: Break
17: Fin Si
18: Fin Pour
19: Si bool == f aux Alors
20: C ← Gw [i] + Gw [j]
21: cl ← cl + c
22: Fin Si
23: Fin Si
24: Fin Pour
25: Fin Pour
30
II.3. Méthode
31
II.3. Méthode
32
II.4. Exemple explicatif
33
II.4. Exemple explicatif
Itération 0 :
B- Clustering des instantanés
Nous calculons la matrice de distance entre les différents instantanés, en utilisant la mesure
de distance N CS décrit dans la section II.3.5. Les résultats obtenus sont montrés dans la
figure II.8
34
II.4. Exemple explicatif
35
II.4. Exemple explicatif
D- Filtrage du communautés
Cette étape consiste à supprimer les communautés redondantes.
Avant de passer à la prochaine itération, on réduit le seuil de similarité d’une valeur de
θr = 0.1, donc θs = 0.35.
Itération 1 :
B- Clustering des instantanés
maintenant, on recalcule la matrice de distance entre les clusters obtenus à l’itération
précédente. Les résultats obtenus sont montrés dans la figure II.12.
36
II.4. Exemple explicatif
D- Filtrage du communautés
Cette étape consiste à supprimer les communautés redondantes.
On termine cette itération par la diminution du seuil de similarité, θs = θs − θr = 0.25.
Itération 2 :
B- Clustering des instantanés
maintenant, on recalcule la matrice de distance entre les clusters obtenus à l’itération
précédente. Les résultats obtenus sont montrés dans la figure II.15.
37
II.4. Exemple explicatif
38
II.5. Conclusion
D- Filtrage du communautés
Nous avons effectué le filtrage de communauté pour enlever les redondantes.
On termine le processus ici à cause de l’identique du cluster cl avec le graphe d’interactions
G.
Les résultats obtenus
Nous avons obtenu un résultat final de 4 communautés.
II.5 Conclusion
Dans ce chapitre, nous avons introduit un nouvel algorithme de la détection des com-
munautés dynamiques nommé DCMET. Ce dernier est considéré comme un des premiers
algorithmes pour analyse des réseaux dynamiques à plusieurs échelles temporelles. DC-
MET utilise le principe de similarité et le clustering pour détecter des communauté stables.
L’exemple explicatif a montré le fonctionnement de notre méthode. Dans le chapitre sui-
vant, nous définirons les environnements de développement de notre méthode, et nous
nous concentrerons à valider notre proposition.
39
CHAPITRE III
IMPLÉMENTATION ET EXPÉRIMENTATION
III.1 Introduction
Dans ce chapitre, nous montrerons dans la section III.2 l’implémentation de notre
système, nous présentons en premier lieu l’environnement de développements logiciel et
les outils utilisés pour implémenter notre application. Après, dans la section III.3 nous
allons présenter les résultats des expérimentations de l’algorithme proposé sur des données
de test synthétiques et réelles.
III.2 Implémentation
40
III.2. Implémentation
les langages plus anciens. Par conséquent, développement du code à l’aide de Python est
plus rapide que d’autres langages [Rédaction JDN, 2020].
Python et gratuit et téléchargeable sur ce site : https ://www.python.org/downloads
41
III.2. Implémentation
42
III.2. Implémentation
III.2.1.3 Packages
Après avoir installé le logiciel et la plate-forme, nous avons procédé à l’installation des
packages nécessaires au développement de notre application.
43
III.3. Expérimentations et résultats
La figure III.5 montre l’interface qui permet de tester notre outil sur des données syn-
thétiques, il permet à l’utilisateur de générer un graphe dynamique avec des communautés
stables comme décrit dans le travail de boudebza [Boudebza et al., 2019].
La figure III.6 montre l’interface qui manipule les donnés réels, il permet aussi la
visualisation des résultats (communautés).
44
III.3. Expérimentations et résultats
SC 5 10 20 30 40 50
DCMET 0.45 0.40 0.36 0.31 0.20 0.12
[Boudebza et al., 2019] 0.91 0.78 0.69 0.69 0.62 0.54
[Greene et al., 2010] 0.31 0.30 0.29 0.3 0.28 0.27
Table III.1 – Comparaison des scores NMI obtenus par la méthode proposée (DCMET),
la méthode de [Boudebza et al., 2019] et la méthode de [Greene et al., 2010].
45
III.3. Expérimentations et résultats
données sont collectées à l’aide de la technologie RFID (identification par radio fréquence).
Cette technique enregistre la proximité des personnes à une distance d’environ 1,5 mètre,
77602 contacts ont été enregistrés entre 242 individus (232 élèves et 10 enseignants) au
cours de deux journées consécutives en octobre 2009 (jeudi 1er octobre et vendredi 2
octobre 2009) de 8h45 à 17h20 le premier jour, et de 8h30 à 17h05 le deuxièmes jour (ce
qui donne une durée moyenne d’interaction quotidienne de 176 minutes), la figure III.7
indique le taux de participation pour les classes scolaires.
Comme il n’y a pas de vérité de terrain pour se comparer, nous avons adopté une
approche d’évaluation qualitative. Nous avons utilisé l’information descriptive soulignée
dans l’étude SocioPatterns [Stehlé et al., 2011], et nous avons essayé de montrer que les
communautés trouvées par notre méthode sont significatives et pourraient permettre de
détecter des patterns intéressantes sur des données réelles.
La visualisation a été limitée à quatre classes (1B, 2B, 3B, 5B) pour permettre une analyse
précise des résultats. Au total, 25 communautés ont été détectées sur cet ensemble de
données. Nous avons capturé deux figures : la premiers correspond à des communautés
de longueur moins de 30 min et la deuxième correspond à des communautés de plus
de 2 heures (voir figure III.8). Les affiliations des nœuds sont ordonnées par classe, les
observations suivantes peuvent être faites :
— Pour une échelle moins de 30 minutes, nous avons détecté des communautés pendant
les pauses. Dans l’étude original de Sociopatterns, il est noté qu’il y a une très grande
fréquence d’interaction durant les pauses et que les pauses ne sont pas synchronisées
entre classes. Donc cela correspond bien a nous observations le matin, midi et le
soir.
46
III.3. Expérimentations et résultats
Figure III.8 – Communautés stables de différentes longueurs sur les données Sociopat-
terns Primary School
47
III.4. Conclusion
— Pour une échelle supérieurs à deux heures, nous avons retrouvé la structure en
classe. Les mêmes communautés ont été retrouvées par les auteurs de Sociopatterns
en construisant le graphe cumulé de chaque journée.
III.4 Conclusion
Dans ce chapitre, nous avons effectué différents expérimentations pour valider notre
proposition sur des données synthétiques et réelles. Les résultats obtenus ont été satisfai-
sants et ont montré la pertinence de l’aspect multi échelle temporelle proposé par notre
méthode.
48
CONCLUSION GÉNÉRALE ET PERSPECTIVES
49
BIBLIOGRAPHIE
vii
Bibliographie
[Bezdek, 2013] Bezdek, J. C. (2013). Pattern recognition with fuzzy objective function
algorithms. Springer Science & Business Media.
[Biggs et al., 1993] Biggs, N., Biggs, N. L., and Norman, B. (1993). Algebraic graph theory.
Number 67. Cambridge university press.
[Blondel et al., 2008] Blondel, V. D., Guillaume, J.-L., Lambiotte, R., and Lefebvre, E.
(2008). Fast unfolding of communities in large networks. Journal of statistical mecha-
nics : theory and experiment, 2008(10) :P10008.
[Boettcher and Percus, 1999] Boettcher, S. and Percus, A. G. (1999). Extremal optimi-
zation : Methods derived from co-evolution. arXiv preprint math/9904056.
[Boudebza et al., 2018] Boudebza, S., Cazabet, R., Azouaou, F., and Nouali, O. (2018).
Olcpm : An online framework for detecting overlapping communities in dynamic social
networks. Computer Communications, 123 :36–51.
[Boudebza et al., 2019] Boudebza, S., Cazabet, R., Nouali, O., and Azouaou, F. (2019).
Detecting stable communities in link streams at multiple temporal scales. In Joint
European Conference on Machine Learning and Knowledge Discovery in Databases,
pages 353–367. Springer.
[Bródka et al., 2013] Bródka, P., Saganowski, S., and Kazienko, P. (2013). Ged : the
method for group evolution discovery in social networks. Social Network Analysis and
Mining, 3(1) :1–14.
[Cazabet, 2013] Cazabet, R. (2013). Détection de communautés dynamiques dans des
réseaux temporels. PhD thesis, Université Paul Sabatier-Toulouse III.
[Cazabet et al., 2010] Cazabet, R., Amblard, F., and Hanachi, C. (2010). Detection of
overlapping communities in dynamical social networks. In 2010 IEEE second interna-
tional conference on social computing, pages 309–314. IEEE.
[Cazabet et al., 2020] Cazabet, R., Boudebza, S., and Rossetti, G. (2020). Evaluating
community detection algorithms for progressively evolving graphs. Journal of Complex
Networks, 8(6) :cnaa027.
[Chen et al., 2010] Chen, D., Shang, M., Lv, Z., and Fu, Y. (2010). Detecting overlap-
ping communities of weighted networks via a local algorithm. Physica A : Statistical
Mechanics and its Applications, 389(19) :4177–4187.
[Chen et al., 2020] Chen, J., Liu, D., Hao, F., and Wang, H. (2020). Community detection
in dynamic signed network : an intimacy evolutionary clustering algorithm. Journal of
Ambient Intelligence and Humanized Computing, 11(2) :891–900.
viii
Bibliographie
[Danon et al., 2005] Danon, L., Diaz-Guilera, A., Duch, J., and Arenas, A. (2005). Com-
paring community structure identification. Journal of statistical mechanics : Theory
and experiment, 2005(09) :P09008.
[Duch and Arenas, 2005] Duch, J. and Arenas, A. (2005). Community detection in com-
plex networks using extremal optimization. Physical review E, 72(2) :027104.
[Faron-Zucker, 2014] Faron-Zucker, C., editor (2014). Actes des 25es journées franco-
phones d’Ingénierie des Connaissances (IC 2014), France. Conférence IC.
[Fortunato, 2010] Fortunato, S. (2010). Community detection in graphs. Physics reports,
486(3-5) :75–174.
[Girvan and Newman, 2002] Girvan, M. and Newman, M. E. (2002). Community struc-
ture in social and biological networks. Proceedings of the national academy of sciences,
99(12) :7821–7826.
[Greene et al., 2010] Greene, D., Doyle, D., and Cunningham, P. (2010). Tracking the
evolution of communities in dynamic social networks. In 2010 international conference
on advances in social networks analysis and mining, pages 176–183. IEEE.
[Guimera and Amaral, 2005] Guimera, R. and Amaral, L. A. N. (2005). Cartography of
complex networks : modules and universal roles. Journal of Statistical Mechanics :
Theory and Experiment, 2005(02) :P02001.
[Hervé, 2017] Hervé, B. (2017). Connexité.
[Hopcroft et al., 2004] Hopcroft, J., Khan, O., Kulis, B., and Selman, B. (2004). Tracking
evolving communities in large linked networks. Proceedings of the National Academy of
Sciences, 101(suppl 1) :5249–5253.
[Hu et al., 2016] Hu, Y., Yang, B., and Lv, C. (2016). A local dynamic method for tra-
cking communities and their evolution in dynamic networks. Knowledge-Based Systems,
110 :176–190.
[Idrissa Sarr, 2016] Idrissa Sarr, A. O. M. M. (2016). IIETA | Advancing the World of
Information and Engineering.
[Isella, ] Isella, Lorenzo et Stehlé, J. e. B. A. e. C. C. e. P. J.-F. e. V. d. B. W. Qu’y
a-t-il dans une foule ? analyse des réseaux comportementaux en face à face. Journal de
biologie théorique, 271 :166–180.
[Jdidia et al., 2007] Jdidia, M. B., Robardet, C., and Fleury, E. (2007). Communities
detection and analysis of their dynamics in collaborative networks. In 2007 2nd In-
ternational Conference on Digital Information Management, volume 2, pages 744–749.
IEEE.
ix
Bibliographie
[Kadiyala and Kumar, 2017] Kadiyala, A. and Kumar, A. (2017). Applications of python
to evaluate environmental data science problems. Environmental Progress & Sustainable
Energy, 36(6) :1580–1586.
[Kernighan and Lin, 1970] Kernighan, B. W. and Lin, S. (1970). An efficient heuristic
procedure for partitioning graphs. The Bell system technical journal, 49(2) :291–307.
[Labatut and Orman, 2017] Labatut, V. and Orman, G. K. (2017). Community structure
characterization. arXiv preprint arXiv :1705.10621.
[Lancichinetti et al., 2009] Lancichinetti, A., Fortunato, S., and Kertész, J. (2009). Detec-
ting the overlapping and hierarchical community structure in complex networks. New
journal of physics, 11(3) :033015.
[Law-Kam-Cio, 2014] Law-Kam-Cio, Y.-M. (2014). Mise en œuvre d’un solveur de Ga-
lerkin discontinu pour la modélisation d’écoulements à surfaces libres viscoélastiques
tridimensionnels. PhD thesis, École Polytechnique de Montréal.
[Lesage, 2022] Lesage, L. (2022). Développer en Python avec Anaconda.
[Leskovec et al., 2009] Leskovec, J., Lang, K. J., Dasgupta, A., and Mahoney, M. W.
(2009). Community structure in large networks : Natural cluster sizes and the absence
of large well-defined clusters. Internet Mathematics, 6(1) :29–123.
[Likas et al., 2003] Likas, A., Vlassis, N., and Verbeek, J. J. (2003). The global k-means
clustering algorithm. Pattern recognition, 36(2) :451–461.
[Lin and Kernighan, 1973] Lin, S. and Kernighan, B. W. (1973). An effective heuristic
algorithm for the traveling-salesman problem. Operations research, 21(2) :498–516.
[Lin et al., 2009] Lin, Y.-R., Chi, Y., Zhu, S., Sundaram, H., and Tseng, B. L. (2009).
Analyzing communities and their evolutions in dynamic social networks. ACM Tran-
sactions on Knowledge Discovery from Data (TKDD), 3(2) :1–31.
[Liu et al., 2020] Liu, F., Wu, J., Xue, S., Zhou, C., Yang, J., and Sheng, Q. (2020).
Detecting the evolving community structure in dynamic social networks. World Wide
Web, 23(2) :715–733.
[Liu et al., 2010] Liu, J., Zhong, W., Abbass, H. A., and Green, D. G. (2010). Separa-
ted and overlapping community detection in complex networks using multiobjective
evolutionary algorithms. In IEEE Congress on Evolutionary Computation, pages 1–7.
IEEE.
[MacQueen et al., 1967] MacQueen, J. et al. (1967). Some methods for classification and
analysis of multivariate observations. In Proceedings of the fifth Berkeley symposium on
mathematical statistics and probability, volume 1, pages 281–297. Oakland, CA, USA.
x
Bibliographie
[McDaid et al., 2011] McDaid, A. F., Greene, D., and Hurley, N. (2011). Normalized mu-
tual information to evaluate overlapping community finding algorithms. arXiv preprint
arXiv :1110.2515.
[Melançon, 2006] Melançon, G. (2006). Espaces collaboratifs métaphores graphiques et
exploration visuelle. Intelligence collective rencontre, pages 37–42.
[Moctar, 2019] Moctar, A. O. M. (2019). Détection et suivi de l’évolution de communautés
ego-centrées dans les réseaux sociaux dynamiques. PhD thesis, Université Cheikh Anta
Diop de Dakar.
[Moctar and Sarr, ] Moctar, A. O. M. and Sarr, I. Détection de communautés statiques
et dynamiques.
[Mohamed Babou, 2012] Mohamed Babou, H. (2012). Comparaison de réseaux biolo-
giques. Theses, Université de Nantes.
[Mohamed Moctar and Sarr, 2016] Mohamed Moctar, A. and Sarr, I. (2016). Détection
de communautés statiques et dynamiques. Revue d intelligence artificielle, 30 :469–496.
[Morini et al., 2017] Morini, M., Flandrin, P., Fleury, E., Venturini, T., and Jensen, P.
(2017). Revealing evolutions in dynamical networks. arXiv preprint arXiv :1707.02114.
[Mseddi, 2017] Mseddi, A. (2017). Optimisation du placement et de la migration des
répliques de données dans les réseaux de diffusion de contenu basés sur le cloud.
[Mucha et al., 2010] Mucha, P. J., Richardson, T., Macon, K., Porter, M. A., and On-
nela, J.-P. (2010). Community structure in time-dependent, multiscale, and multiplex
networks. science, 328(5980) :876–878.
[Murtagh and Legendre, 2014] Murtagh, F. and Legendre, P. (2014). Ward’s hierarchi-
cal agglomerative clustering method : which algorithms implement ward’s criterion ?
Journal of classification, 31(3) :274–295.
[NDIAYE, 2017] NDIAYE, S. N. (2017). Quelques rappels sur la théorie des graphes.
[Neumann, 1976] Neumann, B. (1976). A problem of paul erdös on groups. Journal of
the Australian Mathematical Society, 21(4) :467–472.
[Newman, 2004] Newman, M. E. (2004). Fast algorithm for detecting community struc-
ture in networks. Physical review E, 69(6) :066133.
[Ng et al., 2001] Ng, A., Jordan, M., and Weiss, Y. (2001). On spectral clustering : Ana-
lysis and an algorithm. Advances in neural information processing systems, 14.
[Pai, 2021] Pai, P. (2021). Exemple de dendrogramme.
[Palla et al., 2007] Palla, G., Barabási, A.-L., and Vicsek, T. (2007). Quantifying social
group evolution. Nature, 446(7136) :664–667.
xi
Bibliographie
[Pedregosa et al., 2011] Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion,
B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J.,
Passos, A., Cournapeau, D., Brucher, M., Perrot, M., and Duchesnay, E. (2011). Scikit-
learn : Machine learning in Python. Journal of Machine Learning Research, 12 :2825–
2830.
[Radicchi et al., 2004] Radicchi, F., Castellano, C., Cecconi, F., Loreto, V., and Parisi, D.
(2004). Defining and identifying communities in networks. Proceedings of the national
academy of sciences, 101(9) :2658–2663.
[Redaction, 2020] Redaction (2020). Tout est graphe ! Détection de communautés : théorie
et retour d’expérience.
[Rossetti, 2020] Rossetti, G. (2020). Angel : efficient, and effective, node-centric commu-
nity discovery in static and dynamic networks. Applied Network Science, 5(1) :1–23.
[Rossetti and Cazabet, 2018] Rossetti, G. and Cazabet, R. (2018). Community discovery
in dynamic networks : a survey. ACM computing surveys (CSUR), 51(2) :1–37.
[Rédaction JDN, 2020] Rédaction JDN, L. (2020).
[Rémy, 2022] Rémy, C. (2022). Community detection libraries.
[Sache, 1974] Sache, A. (1974). La théorie des graphes. Number 1554. Presses Universi-
taires de France-PUF.
[Sachs et al., 1988] Sachs, H., Stiebitz, M., and Wilson, R. J. (1988). An historical note :
Euler’s königsberg letters. Journal of Graph Theory, 12(1) :133–139.
[Spielman and Teng, 1996] Spielman, D. A. and Teng, S.-H. (1996). Spectral partitioning
works : Planar graphs and finite element meshes. In Proceedings of 37th conference on
foundations of computer science, pages 96–105. IEEE.
[Stehlé et al., 2011] Stehlé, J., Voirin, N., Barrat, A., Cattuto, C., Isella, L., Pinton, J.-
F., Quaggiotto, M., Van den Broeck, W., Régis, C., Lina, B., et al. (2011). High-
resolution measurements of face-to-face contact patterns in a primary school. PloS one,
6(8) :e23176.
[Tajeuna et al., 2015] Tajeuna, E. G., Bouguessa, M., and Wang, S. (2015). Tracking
the evolution of community structures in time-evolving social networks. In 2015 IEEE
International Conference on Data Science and Advanced Analytics (DSAA), pages 1–10.
IEEE.
[Talbi, 2013] Talbi, M. (2013). Une nouvelle approche de détection de communautés dans
les réseaux sociaux. PhD thesis, Université du Québec en Outaouais.
xii
Bibliographie
xiii