Académique Documents
Professionnel Documents
Culture Documents
1
Avril 2023 SYMBIOSIS
2
Avril 2023 SYMBIOSIS
I. Introduction
La détection de communauté est un problème complexe en science des réseaux, qui consiste à
identifier des groupes de nœuds fortement connectés dans un réseau. Ce problème a suscité un grand
intérêt dans la communauté scientifique en raison de ses applications dans de nombreux domaines.
Pour le résoudre, de nombreuses méthodes ont été proposées : heuristiques, métaheuristiques,
machine learning, toutes ayant un seul but : rapidité et précision.
Notre travail lors du projet 2CS est alors d’imaginer une méthode qui mettrait le machine
learning au service des recherches arborescentes afin de résoudre le problème de détection de
communauté.
Ainsi, la mission la plus importante de notre travail est dans un premier lieu de maîtriser le
problème étudié, de se familiariser avec ses particularités, sa résolution et son évolution.
Puis dans un deuxième, découvrir puis parcourir les techniques de recherche arborescente
existantes, comprendre leurs avantages et désavantages, leurs divers applications dans les problèmes
combinatoires mais surtout déceler leur taux de compatibilité avec la détection de communauté.
En somme, notre travail vise à devenir expert du problème de la détection de communauté, et
à maîtriser les techniques de recherche arborescente, et cela dans le but de fusionner ces
connaissances avec les méthodes du Machine Learning. Nous espérons ainsi contribuer à
l'avancement de la recherche dans ce domaine en proposant au final une hybridation efficace, qui
saura améliorer les performances de ce qui existe déjà.
3
Avril 2023 SYMBIOSIS
Dans les années 1990, le domaine des systèmes complexes a émergé, et avec lui est venue une
attention renouvelée pour la détection de communautés comme moyen de comprendre la structure et
la fonction des réseaux complexes. Les premiers travaux dans ce domaine étaient axés sur le
développement de méthodes pour identifier des communautés hiérarchiques et chevauchantes dans les
réseaux. Des contributions notables dans ce domaine incluent le travail de Girvan et Newman (2002),
qui ont introduit le concept de modularité comme moyen de quantifier la qualité de la structure de la
communauté, et le travail de Clauset et al. (2004), qui ont développé un algorithme rapide pour la
détection de communautés basé sur l'optimisation de la modularité.
Au-delà d’une utilité explicite, qui est de détecter les communautés, le PDC peut
avoir des implications importantes pour la compréhension des processus biologiques, du
comportement humain, de l'apprentissage automatique et de nombreux autres domaines.
Voici quelques exemples d’utilisation de la détection de communauté :
4
Avril 2023 SYMBIOSIS
● La biologie : La détection de communautés est largement utilisée pour étudier les interactions
protéine-protéine et les réseaux métaboliques dans les cellules. Elle peut aider à comprendre
comment les protéines interagissent pour former des complexes, comment les voies
métaboliques sont régulées et comment les gènes sont régulés.
● Les réseaux sociaux : La détection de communautés est utilisée pour identifier les groupes de
personnes ayant des intérêts similaires, des comportements similaires ou des caractéristiques
similaires. Cela peut aider les entreprises à cibler leurs publicités ou à recommander des
produits à des utilisateurs ayant des intérêts similaires.
5
Avril 2023 SYMBIOSIS
B. Résolution du problème
6
Avril 2023 SYMBIOSIS
Les arêtes :
C’est une relation particulière, bien spécifiée entre deux acteurs, les arêtes peuvent
être non dirigées lorsque la relation signifie la même chose aux deux acteurs ou bien
dirigées dans le cas contraire. Ces liens entre nœuds peuvent aussi être pondérés avec
une valeur numérique ou pas. Ainsi le poids d’un nœud représente le poids total des
arêtes qui sont connectées au nœud en question.
Graphes non orientés :
Également appelés graphes simples, ce sont des graphes dans lesquels les arêtes n'ont
pas de direction. Les graphes non orientés sont souvent utilisés pour modéliser les
relations binaires entre des objets ou des entités.
Graphes orientés :
Dans ces graphes, les arêtes ont une direction, ce qui signifie qu'une arête reliant un
nœud A à un nœud B ne relie pas nécessairement le nœud B au nœud A. Les graphes
orientés sont souvent utilisés pour modéliser des processus ou des flux de données qui
ont un sens de direction.
Graphes pondérés :
Ces graphes sont similaires aux graphes non orientés ou orientés, mais chaque arête
est pondérée avec une valeur numérique. Les graphes pondérés sont couramment
utilisés pour modéliser des relations où l'intensité de la relation est importante.
7
Avril 2023 SYMBIOSIS
𝑒𝑖𝑖 : la fraction de la somme des poids des arêtes appartenant à la communauté i sur
a. Louvain classique
L’heuristique a été proposée en 2008 par Vincent Blondel, Jean-Loup Guillaume,
Renaud Lambiotte et Etienne Lefebvre, et elle se compose de deux phases principales.
Dans la première phase, on maximise la modularité en assignant chaque nœud à sa
propre communauté, puis en itérant sur chaque nœud et en l'assignant à la communauté qui
maximise la modularité globale. Cela se fait jusqu'à ce qu'il n'y ait plus d'amélioration de la
modularité.
Dans la deuxième phase, l'algorithme agrège les communautés identifiées dans la
première phase pour construire un nouveau graphe dans lequel les nœuds représentent les
communautés. Les poids des arêtes entre les communautés sont calculés en sommant les poids
des arêtes reliant les nœuds des communautés correspondantes dans le graphe original.
L'algorithme répète ensuite la première phase sur ce nouveau graphe agrégé, en
maximisant la modularité globale en assignant chaque communauté à sa propre communauté,
puis en itérant sur chaque communauté et en l'assignant à la communauté qui maximise la
modularité globale.
Comme mentionné précédemment, cet algorithme est rapide et apte à détecter des
communautés dans de grands graphes en temps raisonnable. Mais plus encore, il n'a pas
besoin de connaître à l'avance le nombre de communautés et peut être utilisé pour détecter des
communautés de différentes tailles.
8
Avril 2023 SYMBIOSIS
b. L’algorithme Louvain+
Le partitionnement qu'exécute Louvain peut-être considéré comme grossier,
l’algorithme Louvain+ (Gach and Hao) intègre dans Louvain deux phases afin d’y contrer : le
dégrossissement et le raffinement.
On commence d’abord par exécuter Louvain afin d’obtenir des graphes et des clusters
sur plusieurs niveaux, et on sauvegarde l’historique.
Puis pour chaque cluster et chaque graphe généré à partir de l’avant dernier niveau;
on projette vers un niveau plus bas, c’est ce qu’on appelle le dégrossissement, où nous
décomposons la communauté en les communautés qui la composent. A chaque niveau, nous
appliquons un raffinement des clusters : Pour chaque nœud d’un cluster, nous examinons
toutes les communautés voisines qui peuvent le contenir, on l’assigne à celle qui fait
augmenter le gain en modularité.
Nous répétons ces deux phases de dégrossissement et de raffinement jusqu’à atteindre
le niveau 0 : obtenir de nouveau un graphe avec des nœuds qui représentent des individus.
9
Avril 2023 SYMBIOSIS
b. La recherche Tabou
La recherche tabou est une méthode de recherche locale combinée avec un ensemble
de techniques permettant d’éviter d’être piégé dans un minimum local ou la répétition d’un
cycle.
Démarrant d’une solution initiale dans un ensemble de solutions local, des
sous-ensembles de solutions dans le voisinage sont générés afin de retenir celle qui améliore
une fonction d’évaluation.
Cependant l’algorithme accepte parfois des solutions qui n’améliorent pas la solution
courante. Il met aussi en œuvre une liste tabou contenant les k dernières solutions visitées,
afin d’éviter de les revisiter car jugées non prometteuses. Cette liste est remise à jour après un
certain nombre d’itérations, forçant ainsi l’algorithme à explorer des régions différentes de
l’espace de recherche.
10
Avril 2023 SYMBIOSIS
- LC : une liste de candidats utilisée pour stocker les solutions voisines si elles
ne sont pas déjà dans les listes LTI et LTD.
L’algorithme démarre de la génération d’une solution initiale, cette dernière peut être
générée par l’une des heuristiques décrites précédemment ou sinon aléatoirement.
De cette solution initiale, une population est générée en alternant à chaque fois
aléatoirement une communauté dans la solution.
L’algorithme HGT boucle ensuite les étapes suivantes jusqu’à atteindre un certain
critère d'arrêt ( généralement, un nombre d’itérations ) :
La population est évaluée de par la modularité, et les meilleures solutions sont
sélectionnées par élitisme et placées dans la LTI si elles n'existent pas dans la LTD.
Suite à ça, pour chaque élément de LTI, un ensemble de voisin est généré, et si un
voisin n’est ni dans LTI, ni dans LTD, ce dernier sera stocké dans la liste LC. Ainsi, les deux
meilleures solutions des listes LTI et LC sont choisies en tant que parents pour les prochaines
générations, mais pas que : le meilleur d’entre eux est aussi comparé à la meilleure solution
courante , afin de la mettre à jour, et d’incrémenter la liste tabou LTD. La dernière étape
d’une itération de HGT est la combinaison des deux parents afin de créer de nouvelles
solutions.
C. Synthèse du chapitre
11
Avril 2023 SYMBIOSIS
exploiter lors de nos propres travaux, et cela selon l’article : A review of heuristics and metaheuristics
for community detection in complex networks: Current usage, emerging development and future
directions (Attea et al.)
Avant tout, en général, un algorithme de détection de communautés basé sur une
métaheuristique, MCD ∶ 𝕀 → 𝕀, est une fonction de transformation itérative qui peut être définie par
le tuple dans l'équation suivante :
MCD = (Ω, 𝕀, Γ, Φ, 𝑠, 𝑟, 𝑚𝑢, 𝜄)
12
Avril 2023 SYMBIOSIS
- Maximiser la Conductance.
- Minimiser l’Expansion.
13
Avril 2023 SYMBIOSIS
Optimisation multi-objectif
Pour plusieurs de ces fonctions d’évaluations, on a pu analyser les corrélations intrinsèques
entre plusieurs objectifs de structure de communauté dans (Shi et al.) (Shi et al.).
Ces travaux ont étudié les corrélations (corrélées positivement, indépendantes ou corrélées
négativement) des fonctions objectives qui ont été utilisées ou qui pourraient potentiellement être
utilisées pour la détection de communauté.
Ils ont montré qu'optimiser une paire d'objectifs négativement corrélés améliore
considérablement les performances par rapport à l'optimisation de l'un des objectifs d'origine, et même
mieux que d'autres approches bien établies de détection de communauté.
14
Avril 2023 SYMBIOSIS
Un Tree Search débute par un état initial et explore de manière systématique l'arbre en visitant
chaque nœud et en générant les nœuds enfants pour lesquels il existe des transitions valides. L'objectif
de ce type de recherche est de trouver une solution optimale en évaluant chaque nœud en fonction
d'une fonction de coût ou d'une heuristique. En d'autres termes, la méthode évalue les différents
chemins de l'arbre pour trouver celui qui conduit à la meilleure solution possible.
Dans cette partie du deuxième chapitre, nous allons explorer les algorithmes fondamentaux de
la recherche arborescente, et celà en nous basant principalement sur la thèse “Anytime Tree Search
For Combinatorial Optimization, by Luc Libralesso.”
15
Avril 2023 SYMBIOSIS
2. Algorithmes fondamentaux
a. Breadth First Search (BrFS)
Description de la méthode
Cette technique de parcours de graphe consiste à explorer en priorité tous les nœuds
d’un niveau donné avant de passer au niveau suivant.
L’algorithme maintient le niveau courant jusqu’à exploration de tous ces nœuds. Au
démarrage, le premier niveau correspond à la racine (root). Chaque itération explore un
nouveau niveau avec l'expansion de leurs fils. A la fin de l’itération, on passe au niveau
supérieur, et ce jusqu’à le critère d'arrêt.
Avantages et inconvénients
BrFS a connu une large utilisation vu sa simplicité et sa capacité à améliorer
rapidement les bornes (bounds) et à prouver l'optimalité de la solution finale pour un nombre
de nœuds relativement petit. Cependant, sur les grandes instances, l’algorithme a tendance à
trouver des solutions tard dans la recherche (donc ne trouvant aucune solution pendant les
heures de calcul).
Amélioration
Pour pallier ces inconvénients, des améliorations ont été ajoutées au BrFS afin de
permettre de trouver rapidement de bonnes solutions, on en cite la technique du diving (la
plongée).
La plongée est utilisée pour décrire une situation où l'algorithme décide d'explorer un
chemin plus en détail en le suivant plus profondément dans l'arbre de recherche : lorsque
l'algorithme atteint un nœud qui n'a pas encore été exploré, il génère les nœuds enfants, puis
les évalue afin de décider si l’un d’entre eux a le potentiel de mener à une meilleure solution.
Si c’est le cas, il plonge plus profondément dans ce nœud et continue sa recherche.
La stratégie de plongée peut être utile dans des situations où la fonction heuristique
n'est pas assez précise pour guider la recherche vers la solution optimale. En explorant
l'espace de recherche plus en détail, l'algorithme peut potentiellement trouver une meilleure
solution plus rapidement que s'il avait suivi uniquement la fonction heuristique.
16
Avril 2023 SYMBIOSIS
Avantages et inconvénients
DFS est largement utilisé en raison de sa simplicité, utilisation limitée de la mémoire
et sa facilité de retour en arrière. Cependant, sur de grandes instances, l’algorithme risque
d’être coincé sur une mauvaise branche et ne pas en sortir. Pour cela, le technique de
restarting est adoptée afin d’améliorer l’algorithme.
Amélioration
Afin d’améliorer l’algorithme, le restarting (ou "backjumping") est adopté. Ce
dernier est une technique qui consiste à ré-initialiser l'algorithme de recherche en
recommençant à partir d'un certain point dans l'arbre.
Cela peut être utile si l'algorithme a atteint un point où il n'y a plus de solutions
possibles à partir d'un nœud donné. Au lieu de continuer à explorer ce chemin sans issue,
l'algorithme peut redémarrer, en évitant cette fois-ci les choix précédemment effectués qui ont
mené à ce mauvais chemin.
17
Avril 2023 SYMBIOSIS
• h(n) indique le coût suffixe. Il correspond à une estimation optimiste du coût pour
atteindre le meilleur nœud objectif possible en dessous de n. h(n) est appelée
heuristique admissible car elle ne surestime jamais les coûts.
Anytime ✔
Limité en mémoire ✔ ✔
Complet ✔ ✔ ✔
18
Avril 2023 SYMBIOSIS
a. Weighted A* (WA*)
Weighted A* consiste à modifier la borne utilisée dans la recherche A* comme suit :
f’(n) = g(n) +w.h(n) tel que w ≥ 1
Cela permet de détendre l'optimalité de la première solution par un facteur de w. La première
solution trouvée par Weighted A* est au plus w fois pire que la solution optimale. Plus w est grand,
plus Weighted A* trouvera rapidement des solutions.
Remarque :
Dans le cas spécifique de w = 1, nous obtenons l'algorithme A*. Si w = ∞, la première
solution obtenue est guidée uniquement par h(n). Cela peut être vu comme une minimisation du
travail restant à faire pour obtenir une solution.
Remarque :
Dans le cas où w = 1, l'algorithme effectue une recherche en profondeur d'abord (DFS).
Lorsque w est grand, l'algorithme se comporte comme A*.
19
Avril 2023 SYMBIOSIS
ANA* étend alors en premier les nœuds avec une valeur maximale. L'ouverture d'un nœud en
utilisant ce critère correspond à la façon la plus avide (greediest) possible d'améliorer la solution
actuelle
Remarque :
RBFS compromet en réalité le temps de calcul en rouvrant les ancêtres du dernier nœud
exploré afin de gagner en mémoire puisque seul un nombre linéaire de nœuds doit être stocké.
20
Avril 2023 SYMBIOSIS
Remarque :
Si d=1, LDS se comporte comme un algorithme glouton, et si d = ∞, il est identique à DFS.
Remarque :
Dans la plupart des problèmes d'optimisation discrets, les solutions réalisables sont
principalement situées au tout en bas de l'arbre de recherche. Ainsi, ces méthodes sont dominées par
une stratégie simple de type Depth First Search ou Best First.
h. Beam Search
Beam Search est un algorithme de recherche d'arbre qui utilise un paramètre appelé la taille
du faisceau (beam). Il se comporte comme une recherche en largeur tronquée (Breadth First Search,
BrFS) : Il ne considère que les meilleurs beam nœuds à un niveau donné et ignore le reste.
Cependant, ainsi décrit, BS n'est pas un algorithme anytime. Plus le paramètre beam est
grand, plus il faudra de temps pour atteindre des solutions réalisables, mais meilleures seront ces
solutions.
Pour le rendre anytime, Beam Search a été amélioré et des variantes s’en sont découlées, ces
dernières sont appelées "Complete Anytime Beam Search". On les décrit ci-dessous.
21
Avril 2023 SYMBIOSIS
22
Avril 2023 SYMBIOSIS
générés mais qui n'ont pas encore été développés. Ces nœuds sont triés selon leur estimation de la
borne inférieure. Le bord de l’arbre est mis à jour pendant le processus de recherche en ajoutant de
nouveaux nœuds et en supprimant les nœuds qui ont été développés ou qui dépassent la taille
maximale du bord.
L’algorithme SMA* consiste à explorer l'arbre de recherche comme A*, en ouvrant le nœud n
ayant la plus petite borne inférieure. Il ajoute au bord de l'arbre l'enfant de n qui a le plus petit f(n), et
met à jour la borne inférieure de n si nécessaire. Si n n'a pas d'autre enfant il est écarté, sinon, il est
ajouté à nouveau au bord de l'arbre avec une borne inférieure mise à jour.
Comme la recherche BS, il considère une taille maximale de bord beam. Si le bord contient
plus de nœuds que beam, SMA* écarte les nœuds ayant la plus grande borne inférieure.
Remarque :
SMA* généralise l'algorithme glouton si D = 1, et A* si D = ∞.
SMA* diffère principalement des autres algorithmes présentés jusqu'à présent en exploitant
une nouvelle approche : extraire un enfant d'un nœud donné et éventuellement mettre à jour sa borne.
23
Avril 2023 SYMBIOSIS
Une autre formule qu’on pourrait utiliser est EXP3 (Auer et al.), qui contrairement à UCT, ne
fait aucune hypothèse sur la distribution de la récompense.
Avec UCT et EXP3, l’algorithme se comporte au début de manière que l’on pourrait qualifiée
de chaotique, alors afin de minimiser l’effet de ce démarrage à froid, une troisième politique
de choix qu’on pourrait mentionner serait RAVE (Gelly et al.), dans laquelle un score
supplémentaire est maintenu, appelé QRAVE, qui est mis à jour pour chaque action effectuée
dans la phase de simulation et pas seulement pour celles choisies dans les étapes de sélection.
Rétropropagation - propage les gains (scores), pour tous les agents modélisés dans le jeu à
tous les nœuds le long du chemin à partir du dernier nœud visité dans l'arbre (la feuille).
Remarque :
MCTS possède de nombreuses qualités car ses expériences permettent de trouver rapidement
de bonnes solutions et elle explore l'arbre de manière best-first search. Cependant, malgré son succès
dans les jeux, la méthode n’est pas largement utilisée en optimisation combinatoire.
24
Avril 2023 SYMBIOSIS
gestion de mémoire dans la recherche d'arbre(Maniezzo) (Blum). En effet, après une itération, les
phéromones sont mises à jour et la prochaine itération explorera les parties de l'arbre où les meilleures
solutions ont été trouvées.
Ce mécanisme aide la recherche d'arbre à adapter son guide en fonction de l'endroit où les
meilleures solutions ont été trouvées. Ce principe permet de surmonter les cas où la fonction de guide
(heuristique non admissible) ne fournit pas une bonne orientation générale.
25
Avril 2023 SYMBIOSIS
Nous avons aussi Gao et al. (2018) qui traitent dans leur article l'utilisation de l'apprentissage
par renforcement profond de manière générale et démontrent l'efficacité de la méthode proposée afin
de prédire les mouvements dans Hex. L’article érige aussi une comparaison de l’hybridation proposée
avec la recherche arborescente de Monte Carlo (MCTS) et l'apprentissage par renforcement.
Nous citons également les travaux de Yang et al. (2020). L’article propose une approche
évolutive de l'apprentissage automatique du jeu de Go et démontre l'efficacité de la méthode proposée
dans l'apprentissage du jeu sans connaissance préalable du komi. La méthode proposée est différente
d'AlphaGo, qui entraîne un réseau de valeurs pour prédire le taux de victoire de l'état actuel avec un
komi connu.
Les hybridations de référence incluent aussi Świechowski et al. (2018), un article qui étudie
l'impact des modèles de prédiction supervisés sur l'IA de Hearthstone et démontre que même des
réseaux neuronaux simples peuvent être entrainés et utilisés pour l'évaluation des états du jeu.
C. Synthèse du chapitre
Les algorithmes fondamentaux semblent être les méthodes les plus adaptées sur les petits
arbres en raison de leur simplicité.
Cependant, sur de grandes instances, ces méthodes n'obtiennent généralement pas de solutions
de bonne qualité et consomment beaucoup de temps de calcul. Pour cela, plusieurs améliorations ont
été proposées mais elles sont généralement insuffisantes pour rivaliser avec les méta-heuristiques
classiques. C’est pourquoi, nous nous sommes intéressés à l’hybridation des Tree Searches avec le
machine learning, une hybridation qui, lorsque bien posée, peut aider à explorer de manière bien plus
efficace l’arbre de recherche.
26
Avril 2023 SYMBIOSIS
D’ailleurs, Talbi, dans son article intitulé “Metaheuristics and Machine Learning for
Optimization: A Review”, décrit comment l'utilisation de techniques de machine learning peut
améliorer les performances des métaheuristiques. Selon lui, le Machine Learning peut être intégré
avec les métaheuristiques à trois niveaux différents :
Niveau problème
Décomposition de l’espace de recherche - Le Machine Learning peut aider à décomposer
l’espace de recherche en sous-espaces plus petits afin d'accélérer la recherche et la mener vers
une région plus prometteuse.
Fonction objective - Le Machine Learning peut simplifier le calcul de fonctions objectives
coûteuses en calcul en les rapprochant et peut également générer des fonctions objectifs
apprenables afin d'améliorer l'algo-convergence de rythme.
Bas niveau
Solutions initiales - Le Machine Learning peut aider à générer des solutions initiales de
bonne qualité en utilisant des connaissances préalables extraites de bonnes solutions sur des
instances similaires.
Operator’s design ou conception des opérateurs - Le Machine Learning peut aider à
améliorer la qualité de la recherche et la gestion de la population en exploitant les
connaissances antérieures pour générer des individus plus prometteurs à chaque itération.
Operator’s selection ou sélection des opérateurs - Le Machine Learning peut aider à
sélectionner de manière plus efficace l'opérateur à utiliser dans le cas de métaheuristiques qui
ont plusieurs opérateurs, tels que les algorithmes génétiques.
Haut niveau
Le Machine learning est utilisé pour sélectionner plus efficacement les métaheuristiques en
prédisant les performances de chaque métaheuristique pour une tâche donnée. Cette approche
est particulièrement utile pour les problèmes d'optimisation très complexes, où il existe de
nombreuses métaheuristiques disponibles et où l'exploration exhaustive de toutes les
combinaisons possibles de métaheuristiques et de paramètres est coûteuse en temps et en
ressources.
27
Avril 2023 SYMBIOSIS
Ainsi, nous aurons aussi une classification pour l’hybridation des Tree Searches avec le
Machine Learning :
Niveau problème
Décomposition de l’arbre de recherche - Le Machine Learning peut aider à décomposer
l’arbre de recherche et à le simplifier. On cite comme exemple l’algorithme Simplified
Memory-bounded A*, ce dernier s’appuie sur le bord de l’arbre qui est l'ensemble des nœuds
qui ont été générés mais qui n'ont pas encore été développés. Grâce au machine learning, nous
pourrions écarter des nœuds de l’exploration dès lors qu’ils sont dans le bord d’arbre sans
avoir à les développer.
Fonction objective - Dans les méthodes arborescentes, l'objectif est de trouver une solution
optimale en évaluant chaque nœud en fonction d'une fonction de coût ou d'une heuristique. Le
Machine Learning peut simplifier le calcul de fonctions coûteuses en calcul en les
rapprochant, ou en prédictant le coût d’un nœud sans fonction. Comme avec les
métaheuristiques, il peut également générer des fonctions apprenables.
Bas niveau
Solutions initiales - La rapidité d’une TS, et la qualité de la solution retournée peut souvent
dépendre de la racine de laquelle on démarre, particulièrement si la méthode utilisée est
constructive. Ainsi, le Machine Learning peut aider à générer un nœud initial de bonne qualité
en utilisant des connaissances extraites de bonnes solutions sur des instances similaires.
Operator’s design ou conception des opérateurs - Comme on le ferait lors d’une recherche
local, lors d’une méthode arborescente on passe d’un état à un autre. Dans une recherche
locale on appellerait le deuxième état un voisin, dans une TS, un fils, sauf que finalement,
pour générer ce prochain état, le Machine Learning peut intervenir afin d’améliorer la qualité
de la recherche en générant des individus plus prometteurs à chaque itération.
Operator’s selection ou sélection des opérateurs - Comme dans une métaheuristique de
type GA, nous pouvons définir plusieurs opérateurs afin de générer nos fils, le Machine
Learning peut alors aider à sélectionner de manière plus efficace l'opérateur à utiliser. Cela
peut s’avérer particulièrement utile dans la méthode MCTS, lorsqu’il s’agira de générer
plusieurs fils puis de simuler une expérience complète pour chacun de ses fils et de propager
les résultats de ces simulations.
Haut niveau
Nous l’avons vu précédemment, les méthodes de recherches arborescentes sont très
nombreuses, et bien que certaines méthodes présentent des avantages ou désavantages clairs
pour des problèmes particuliers, souvent, pour choisir une méthode de résolution, il faudra
tester et évaluer plusieurs TS.
28
Avril 2023 SYMBIOSIS
29
Avril 2023 SYMBIOSIS
IV. Synthèse
Le problème de détection de communauté est un problème extrêmement complexe, et son
espace de recherche devient presque infini très rapidement, particulièrement lorsque l’on ne connaît
pas le nombre de communautés, ainsi une recherche exhaustive de l’espace des solutions possibles
n’est pas réalisable. C’est donc pour cela que l’on a choisi de voir la recherche arborescente qu’on
effectue comme une méthode constructive.
Pas seulement, l’évaluation du partitionnement d’un réseau peut-être délicate, car la qualité
d’une structure de communautés dépend de plusieurs facteurs interconnectés tels que la densité des
liens entre les membres d'une communauté, la similarité des propriétés des nœuds au sein d'une
communauté, l'importance de la cohésion et de la séparation entre les communautés, etc. Ces facteurs
peuvent avoir des impacts contradictoires sur la qualité globale de la partition. Ainsi, des fois en
passant d’une solution à son fils, on peut avoir une dégradation de la qualité de partitionnement, sauf
qu’en suivant un enchaînement assez long à partir de ce fils, on pourrait retrouver la meilleure
solution réalisable.
Notre travail alors s’agissait de trouver une TS qui recherche efficacement l'espace des
partitions possibles en tenant compte des facteurs afin de trouver une partition qui répond au mieux
aux critères de qualité spécifiques à chaque problème.
Beaucoup des méthodes arborescentes vus, malgré leur nature Anytime, ont tendance à se
concentrer sur une région locale de l'espace de recherche, et ceux en explorant un ensemble limité de
partitions à chaque étape, ce qui peut entraîner un risque de convergence prématurée vers un optimum
local, et comme mentionné précédemment, de par la nature du problème de détection de communauté,
cela peut être particulièrement préjudiciable dans notre travail.
Ainsi, il nous faut une méthode stochastique, qui permettrait d’explorer de manière plus large
et plus diversifiée l'espace de recherche. C’est pourquoi nous avons opté pour Monte Carlo Tree
Search.
En utilisant MCTS, on peut simuler de nombreuses partitions potentielles et construire un
arbre de recherche pour trouver la partition optimale en prenant en compte une ou plusieurs mesures
de qualité de la communauté, comme vu lors de la synthèse du premier chapitre.
Nous commencerons par une solution initiale, qui pourrait être générée aléatoirement mais
qui serait préférable de générer par une heuristique connue, Louvain en l’occurrence.
Ensuite, afin de générer les voisins, nous mettons en place cinq actions possibles :
30
Avril 2023 SYMBIOSIS
Déplacer un nœud vers une communauté différente : Cette action implique de sélectionner
un nœud et de le déplacer vers une communauté différente. Le nœud peut être déplacé vers
une communauté ayant une densité de connexions plus élevée avec ses voisins, ou vers une
communauté qui est plus similaire à sa communauté actuelle en fonction de certaines
mesures.
Fusionner deux communautés : Cette action implique de sélectionner deux communautés et
de les fusionner en une seule communauté. Les communautés peuvent être fusionnées si elles
ont une densité élevée de connexions entre elles, ou si leurs membres sont similaires en
fonction de certaines mesures.
Diviser une communauté en deux communautés : Cette action implique de sélectionner
une communauté et de la diviser en deux communautés plus petites. La division peut être
effectuée en fonction de certaines mesures qui identifient des sous-groupes au sein de la
communauté, tels que le clustering ou l'optimisation de la modularité.
Échanger les membres de deux communautés : Cette action implique de sélectionner deux
communautés et d'échanger leurs membres. L'échange peut être effectué en fonction de
certaines mesures qui minimisent la perturbation de la structure globale de la communauté.
Créer une nouvelle communauté : Cette action implique de sélectionner un sous-ensemble
de nœuds et de créer une nouvelle communauté pour eux. La nouvelle communauté peut être
créée en fonction de certaines mesures qui identifient un sous-ensemble de nœuds qui sont
densément connectés les uns aux autres mais pas aux nœuds des autres communautés.
Les travaux cités lors de l’état de l’art tournaient en réalité particulièrement autour de
l’hybridation du machine learning avec le MCTS car à ce niveau, nous avions déjà l’idée d’utiliser la
recherche arborescente Monte Carlo.
On a ainsi découvert que le principal facteur qui motive les chercheurs à introduire la ML
dans les MCTS est d'obtenir de meilleurs résultats que l'état de l'art actuel. Les exemples d'AlphaGo,
de MoHex-3HNN et d'autres montrent que la ML peut effectivement permettre d'obtenir des résultats
aussi spectaculaires.
Une autre motivation est de permettre aux MCTS de converger plus rapidement. Trois
groupes d'approches dans cette catégorie. La première, par exemple par Zhuang et al. (2015), Wu et
al. (2018) et Świechowski et al. (2018), y parviennent en introduisant un modèle ML pour la fonction
d'évaluation dans les MCTS. La seconde, qui est souvent combinée à la première comme dans les
approches inspirées d'AlphaGo, consiste à utiliser un modèle ML pour la fonction d'évaluation dans
les MCTS ou comme politique pour les simulations. Enfin, les algorithmes RL tels que TD(λ) peuvent
31
Avril 2023 SYMBIOSIS
être combinés avec la formule UCT ou être utilisés à la place dans les MCTS comme l'ont montré
Vodopivec et Ster (2014).
Pour notre application, nous avons décidé d’utiliser du Reinforcement Learning, ou
apprentissage par renforcement, car nous n’avons pas de connaissances préalables aux réseaux. Le
Machine Learning ici va donc guider la recherche, et permettre à l’algorithme de choisir la meilleure
action qui permettrait l’exploration la plus efficace possible de l’arbre. Ainsi, en prenant en compte le
parallèle fait avec la classification de Talbi lors du chapitre deux, nous allons implémenter le machine
learning au bas niveau, pour la sélection des opérateurs.
Nous allons aussi inclure du Deep Learning dans notre hybridation afin de remplacer la Q
table pour l'ensemble des états.
Ceci est l’idée initiale, la prochaine étape est de réfléchir à une hybridation éventuelle entre
MCTS et Beam Search, en plus de la couche de ML, afin d’obtenir une convergence plus rapide, mais
sans tomber dans un problème d’optimum local.
V. Conclusion
La thématique abordée ici n’est pas un sujet largement étudié dans la littérature, mais en
observant ce qui existe actuellement, et en collant certains morceaux, nous espérons arriver à des
résultats qui pourraient faire une différence quant à ce qu’on peut retrouver dans le monde de la
recherche.
De nos jours, le machine learning n’est plus une science à part entière, mais plutôt un outil
que l’on devrait pouvoir utiliser afin d’améliorer nos travaux. Peu importe la thématique, peu importe
la méthode, il y a un plus à apporter en permettant un certain apprentissage de la part de nos
méthodes.
32
Avril 2023 SYMBIOSIS
Références Bibliographiques
Attea, Bara'a A., et al. “A review of heuristics and metaheuristics for community detection in complex
networks: Current usage, emerging development and future directions.” Swarm and
Auer, Peter, et al. “Finite-time Analysis of the Multiarmed Bandit Problem.” Machine Learning, vol.
Blondel, Vincent D., et al. “Fast unfolding of communities in large networks.” Journal of Statistical
Blum, Christian. “Beam-ACO—hybridizing ant colony optimization with beam search: an application
to open shop scheduling.” Computers & Operations Research, vol. 32, no. 6, 2005, pp.
1565-1591.
Cheikh, Salmi, et al. “A Hybrid Heuristic Community Detection Approach.” 2020 International
Conference on INnovations in Intelligent SysTems and Applications (INISTA), 2020, pp. 1-7.
Falkenauer, Emanuel. Genetic Algorithms and Grouping Problems. Wiley, 1998. Accessed 23 April
2023.
Fortunato, Santo. “Community detection in graphs.” Physics Reports, vol. 486, no. 3-5, 2010, pp.
75-174.
Fürnkranz, Johannes, et al., editors. Machine Learning: ECML 2006: 17th European Conference on
Machine Learning, Berlin, Germany, September 18-22, 2006, Proceedings. Springer Berlin
Gach, Oliver, and Jin-Kao Hao. “Improving the Louvain Algorithm for Community Detection with
Gelly, et al. “Monte-Carlo tree search and rapid action value estimation in computer Go.” Artif. Intell.,
2011.
Gog, Anca, et al. “Community Detection in Complex Networks Using Collaborative Evolutionary
33
Avril 2023 SYMBIOSIS
Halalai, Raluca, et al. “Distributed community detection in social networks with genetic algorithms.”
Liu, Jing, et al. “Separated and overlapping community detection in complex networks using
Maniezzo, Vittorio. “Exact and Approximate Nondeterministic Tree-Search Procedures for the
Quadratic Assignment Problem.” INFORMS Journal on Computing, vol. 11, no. 4, 1999, pp.
358-369.
Pizutti, Clara. “Evolutionary Computation for Community Detection in Networks: A Review.” IEEE
Świechowski, Maciej, et al. “Monte Carlo Tree Search: a review of recent modifications and
Gao, Chao et al. “Three-Head Neural Network Architecture for Monte Carlo Tree Search.”
C. Gao, R. Hayward and M. Müller, "Move Prediction Using Deep Convolutional Neural Networks in
Hex," in IEEE Transactions on Games, vol. 10, no. 4, pp. 336-343, Dec. 2018
Yang, Bohong et al. “Learning the Game of Go by Scalable Network Without Prior Knowledge of
34
Avril 2023 SYMBIOSIS
David Silver et al. ,A general reinforcement learning algorithm that masters chess, shogi, and Go
Anthony, Thomas W. et al. “Thinking Fast and Slow with Deep Learning and Tree Search.” ArXiv
Silver, D., Huang, A., Maddison, C. et al. Mastering the game of Go with deep neural networks and
T. Vodopivec and B. Šter, "Enhancing upper confidence bounds for trees with temporal difference
Ilhan, Ercüment and A. Sima Etaner-Uyar. “Monte Carlo tree search with temporal-difference
learning for general video game playing.” 2017 IEEE Conference on Computational
Zhuang, Yimeng et al. “Improving Monte-Carlo tree search for dots-and-boxes with a novel board
T. -R. Wu et al., "Multilabeled Value Networks for Computer Go," in IEEE Transactions on Games,
35