• Aucun résultat trouvé

1.4 Les grandes catégories de méthodes de partitionnement

1.4.4 Méthodes d’expansion de région

Les méthodes d’expansion de région sont des méthodes déterministes reposant principalement sur la notion de voisinage. Elles ont toutes en commun d’être des méthodes de bissection de graphe conçues pour respecter au mieux la balance de partitionnement. Ceci fait de ces méthodes des candidats sérieux pour la résolution du problème de partitionnement contraint. Leur application au problème dek-partitionnement nécessite l’utilisation d’une méthode de bissection récursive. Cependant, nous avons préféré une approche itérative hiérarchique à une approche récursive. Le principe de fonctionnement de celle-ci est similaire à une approche récursive mais diffère dans son implémentation.

Algorithme de bissection itérative hiérarchique

Nombre de méthodes sont initialement conçues pour résoudre un problème de bissection de graphes. Or, dans la pratique, le partitionnement de graphes ne se limite pas à un 2-partitionnement. Pour être complète, une méthode se doit de répondre correctement à un problème dek-partitionnement, oùkest généralement de la forme 2i. Nous verrons par la suite qu’il est possible de généraliser le processus pour unkquelconque.

FIGURE1.13 – Exemple de hiérarchie de partition obtenue pour un 4-partitionnement

L’algorithme de bissection itérative hiérarchique permet d’étendre les méthodes de bissection auk-partitionnement. Comme son nom l’indique, cette méthode repose sur une hiérarchie de

parti-tions obtenue par application itérative d’une méthode de bissection sur chacun des sous-ensembles de la partition précédemment obtenue. Dans certains cas, il est possible d’exprimerksous la forme d’une puissance de 2, c’est à direk=2i. La hiérarchie de partitions obtenue se compose dei+1 niveaux, oùis’obtient comme suit :

2i=k

eiln(2)=k

iln(2) =ln(k)

i= ln(k)

ln(2)

Pourk=2i, le nombre de bissections nécessaires pour atteindre la partition souhaitée est de i

p=1

p

Au niveaui=0, la partition Pse compose d’un unique ensemble contenant l’intégralité des sommets du grapheG, c’est à dire P={V}. L’application d’une première bissection sur

l’en-sembleV donne naissance à une bi-partitionP={V1,V2}, qui correspond au niveaui=1 de la hiérarchie. Le niveaui+1 s’obtient en appliquant une bissection sur chaque ensemble du niveau

i. Ainsi le dernier niveau correspond au résultat duk-partitionnement souhaité. Dans cet exemple

k=4=22, ce qui implique une hiérarchie à 3 niveaux et à 3 bissections pour obtenir la 4-partition

P={V1,V2,V3,V4}.

Algorithme 6Algorithme de bissection itérative hiérarchique pour le 2i-partitionnement

PROCÉDURE: Bissection_Itérative_Hiérarchique_2i ENTRÉES: G= (V,E),kle nombre de parties

Calcul de la profondeurimax=lnln((k2))

Initialisation de la partitionP=V1, oùV1=V Pouriallant de 0 àimaxfaire

Pour jallant de 1 à 2ifaire

Bissection de l’ensembleVj Ajout deVj+iàP

SiModification du graphe nécessaireAlors

Mise à jour deGpar suppression des arcs reliant lesVk⊂P Finsi

Fin pour Fin pour

Sorties: P

L’algorithme6présente le fonctionnement d’un algorithme de bissection itérative hiérarchique reposant sur le principe de hiérarchie de partitions illustré par la figure1.13. Certains algorithmes de partitionnement nécessitent une modification du graphe après chaque bissection. Cette modi-fication consiste, en général, à supprimer les arcs reliant les parties de la partitionP. C’est no-tamment le cas pour les algorithmes d’expansion de région, qui reposent sur un mécanisme de propagation au sein du graphe. Or, partant d’un sommetvi∈Vi, on ne doit pas pouvoir accéder aux sommetsvj ∈Vj. Sans quoi, l’algorithme pourrait attribuer un même sommet à deux sous-ensembles de la partition, ce qui va à l’encontre de la définition de partition présentée en1.3.1.

Il est possible d’adapter cet algorithme auk-partitionnement quelconque en ajoutant une étape supplémentaire. La bissection itérative hiérarchique pour lek-partitionnement consiste à

décom-poser le processus en un partitionnement de la forme 2i, puis d’appliquer une bissection sur autant de sous-ensembles de la partition que nécessaire pour atteindre lek-partitionnement souhaité. La première étape consiste à déterminer le 2i<kplus proche deketr=k−2i, oùr correspond au nombre d’ensemble restant à partitionner. Ainsi, l’algorithme6est appliqué jusqu’à atteindre le 2i -partitionnement, puisrensembles parmi les 2idisponibles sont soumis à une nouvelle bissection. Ces ensembles sont choisis de façon à endommager le moins possible la balance de partition-nement. Il est naturel de dire qu’une telle approche endommage systématiquement la balance de partitionnement, même si celui-ci peut être minimisé par un choix judicieux. Cependant, il est pos-sible de ré-équilibrer celle-ci à l’aide d’algorithme d’équilibrage de charge (voir la section1.5.4) et d’affinage (voir la section1.5.3). L’algorithme7, présente le fonctionnement de la méthode de bissection itérative hiérarchique pour unk-partitionnement quelconque.

Algorithme 7 Algorithme de bissection itérative hiérarchique pour le k-partitionnement

quel-conque

PROCÉDURE: Bissection_Itérative_Hiérarchique_K ENTRÉES: G= (V,E),kle nombre de parties

Calcul du 2i<kplus proche dek

Calcul du nombre de bissections restantes à réaliserr=k−2i Application de l’algorithme6pour obtenir la 2i-partition Sélection des ensembles(Vp)de poids maximum

Pouriallant de 1 àrfaire

Bissection de l’ensembleVi⊂(Vp)

Ajout deVi+1àP

SiModification du graphe nécessaireAlors

Mise à jour deGpar suppression des arcs reliant lesVk⊂P Finsi

Fin pour

Sorties: P

En général, ce type d’approche a pour effet de réduire l’accès à certaines solutions et donc d’être légèrement moins performantes qu’une méthode directe. Cependant, il existe des procédés pour contourner ce problème.

La méthode Graph Growing Partitioning (GGP)

Le graph growing algorithm (GGP) est une méthode de bissection de graphe introduite par George Karypis et Vipin Kumar dans [KK98a]. Son principe est simple, il repose sur l’évolution de deux ensembles de sommets :Vori contient l’intégralité des sommets du graphe G etVdest

initialement vide est conçu pour accueillir les sommets deVori. Ces ensembles sont construit pour respecter, à tout moment de l’exécution de l’algorithme, les conditions suivantes :

(

Vori∪Vdest=V

Vori∩Vdest=/0

L’algorithme débute par le tirage aléatoire d’un sommetvi du graphe G. Celui-ci est déplacé de

sommets de l’ensembleVdestsont déplacés deVori versVdest, à condition qu’ils n’y appartiennent déjà, jusqu’à ce que l’ensembleVdestatteigne la moitié du poids total des sommets du graphe. L’al-gorithme fourni une partitionP={Vori,Vdest}théoriquement équilibré. Cependant, nous verrons par la suite que cette affirmation n’est pas toujours vraie.

Cette méthode est efficace sur des problèmes de faibles tailles (inférieur à 200 sommets), mais l’est beaucoup moins sur des problèmes de plus grandes taille.

La méthode Greedy Graph Growing Partitioning (GGGP)

La méthode GGGP est une amélioration de la méthode GGP, proposée par ses auteurs dans [KK98a]. L’amélioration réside dans la sélection des sommets adjacents à ceux deVdest. Pour cela, un nouvel ensemble de sommet est ajouté :Vad jqui est l’ensemble des sommets adjacents à ceux présents dansVdest. Cet ensemble doit respecter, à tout moment de l’exécution de l’algorithme, la condition suivante :

∀vi∈Vad jvi∈/Vdest

L’algorithme débute par le tirage aléatoire d’un sommetvidu grapheG. Celui-ci est déplacé deVori versVdest. L’ensembleVad jest ensuite mis à jour en ajoutant tous les sommets adjacents àvi∈/Vdest

et n’étant pas déjà présents dansVad j. Contrairement à la GGP, seul le sommet qui minimise au mieux le coût de coupe est déplacé deVori versVdest et est supprimé deVad j. Le processus est itéré jusqu’à ce que l’ensembleVdest atteigne la moitié du poids total des sommets du graphe. L’algorithme8présente le fonctionnement de cette méthode.

Algorithme 8Algorithme Greedy Graph Growing Partitioning (GGGP)

PROCÉDURE: GGGP ENTRÉES: G= (V,E)

InitialisationVori=V contient tous les sommets deV

InitialisationVdestetVad jsont vides

Initialisationpoidsdest=0 du poids de l’ensemble destination à 0 Calcul du poids moyenpoidsmoy= poids2(V)

Tirage aléatoire d’un sommetvi∈Vori

Mise à jour depoidsdest=poidsdest+poids(vi)

Déplacement du sommetvideVoriversVdest Tantquepoidsdest<poidsmoyfaire

Mise à jour deVad j

Sélection duvj∈Vad jde gain maximum Mise à jour de poidsdest=poidsdest+poids(vj)

Déplacement du sommetvj deVori versVdest

Suppression devjdansVad j Fin Tantque

Sorties: Vori,Vdest

Les auteurs Karipis et Kumar considèrent cette méthode comme étant plus efficace que la GGP car elle permet une réduction du coût de coupe et un respect de l’équilibre de la partition au cours de son exécution. Cependant, ces méthodes restent toutes deux fortement dépendantes du choix du sommet de départ. Pour résoudre ce problème, les auteurs proposent de réaliser 4 tirages

aléatoires distincts et de conserver la meilleure solution pour réduire l’aspect aléatoire de cette méthode. Cependant, nous verrons dans la section2.2.2que dans la plupart des cas, ce nombre de tirage est loin d’être suffisant pour garantir la convergence de l’algorithme vers une solution proche de l’optimum.

Même si cette méthode est plus efficace que la GGP, elle reste fortement dépendante de la taille du graphe. Pour palier ce problème, les auteurs proposent de combiner cette méthode à une approche multi-niveaux.