• Aucun résultat trouvé

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

1.4.3 Méthodes spectrales

Les méthodes spectrales sont des méthodes de partitionnement reposant exclusivement sur l’algèbre linéaire des matrices. Elles ont la particularité d’offrir une unique solution à un problème par résolution de systèmes linéaires. Contrairement à la grande majorité des méthodes de parti-tionnement, les méthodes spectrales ne sont pas soumises à un quelconque tirage aléatoire pour déterminer cette solution. Cette rigueur peut, dans certains cas, contraindre le problème et exclure des solutions accessibles par des méthodes plus souples. Le cadre formel et la rigueur mathéma-tique de cette catégorie de méthodes en font des candidats sérieux pour répondre au problème de partitionnement.

Outre la liste d’adjacence (voir section1.3.1), il est possible de définir les relations de dépen-dance entre les sommets d’un graphe à l’aide de deux matrices : matrice d’adjacence et matrice des degrés. La matrice d’adjacence concatène le poids des arcs reliant chaque paire de sommets et la matrice des degrés est une matrice diagonale retournant le degré de chaque sommet du graphe. Ces matrices sont formellement définies comme suit :

Définition 26 (Matrice d’adjacence et des degrés) :Soit un graphe simpleG= (V,E).

La matriceMAd jde dimensionnV∗nV , telle que∀(i,j)∈ {1, ...,nV}2:

(MAd j)i j=

(

0 sii=j

poids(vi,vj) sinon

est appelée matrice d’adjacence du grapheG.

La matriceMDegde dimensionnV∗nV , telle que∀(i,j)∈ {1, ...,nV}2:

(MDeg)i j=    deg(i) = nSk=1 poids(vi,vk) sii= j 0 sinon est appelée matrice des degrés du grapheG.

Cette structure a l’avantage de contenir plus d’information de la liste d’adjacence mais elle est donc plus lourde à manipuler. À titre d’exemple, reprenons la figure1.3.1en attribuant à chaque arcs un poids, dans le but d’illustrer la notion de matrice d’adjacence et matrice des degrés. Comme on peut le constater dans l’exemple ci-dessous, lorsqu’un un arc n’est pas présent dans le graphe, le poids qui lui est associé dans la matrice d’adjacence est nul. Il est simple de déduire la matrice des degrés à partir de la matrice d’adjacence, les valeurs prises par la diagonale deMdegsont égales à la somme des valeurs de chaque ligne deMad j.

Graphe orienté

Matrice d’adjacence         0 2.5 1.6 0 0 0 0 0 4.5 3.5 0 2 0 0 0.5 6.3 0 0 0 0 0 0 0 0 0        

Matrice des degrés

        4.1 0 0 0 0 0 8 0 0 0 0 0 2.5 0 0 0 0 0 6.3 0 0 0 0 0 0        

Graphe non orienté

Matrice d’adjacence         0 2.5 1.6 6.3 0 2.5 0 2 4.5 3.5 1.6 2 0 0 0.5 6.3 4.5 0 0 0 0 3.5 0.5 0 0        

Matrice des degrés

        10.4 0 0 0 0 0 12.5 0 0 0 0 0 4.1 0 0 0 0 0 10.8 0 0 0 0 0 4        

Le type de graphe (orienté ou non) modifie totalement ces deux matrices. Pour les graphes non orientés, la matrice d’adjacence est symétrique, ce qui n’est pas le cas pour les graphes orientés. Dans le cas d’un graphe orienté, la matrice des degrés correspond en réalité à la somme des poids des arcs sortant d’un nœud, ce qui diffère légèrement avec la définition 17 donnée en section1.3.1. La théorie mathématique offre un outil puissant pour le problème du partitionnement de graphes. Celui-ci peut être ramené à la résolution d’un système numériqueMx=λx au prix de quelques approximations. Résoudre ce genre de système numérique consiste à trouver une base orthogo-nale de vecteurs propres de la matriceM. Ce qui implique que le problème du partitionnement de graphe peut être résolu en trouvant une famille de valeurs propresλ et une famille de vecteurs propresxd’une matrice. Cette matrice en question, est la matrice Laplacienne définie comme suit :

Définition 27 (Matrice laplacienne) :Soit un grapheG= (V,E). La matrice

MLap=MDeg−MAd j

est appelée matrice Laplacienne (ou de Laplace) deG.

Tout d’abord, il est nécessaire de faire quelques rappels d’algèbre linéaire concernant les va-leurs propres et les vecteurs propres afin de faciliter la compréhension de cette section.

Définition 28 (Vecteur propre, valeur propre) : Soit Ev un espace vectoriel sur un

corps K. Soit uun endomorphisme deEv. Un vecteurx deEv tel qu’il existeλ dansK

tel queu(x) =λxest appelé vecteur propre deu. Dans ce cas,λ est appelé valeur propre deu.

La méthode spectrale doit son nom au théorème spectral de l’algèbre linéaire. Son utilisation pour la résolution du problème du partitionnement de graphe n’est pas nouveau [DH72]. De nom-breux articles présentent l’application de la méthode spectrale au partitionnement de graphe, tant

pour le problème du partitionnement contraint [HL95], [PSL90] que pour celui du partitionnement non contraint [HK92], [DGK04] .

Dans un premier temps, intéressons nous à la bissection d’un graphe G= (V,E) en deux ensembles de sommetsV1etV2. Soitxun vecteur de taillentel que :

∀vi∈V,xi=

(

1 sivi∈V1 −1 sivi∈V2

En reprenant le coût de coupe entreV1etV2défini en section1.3.3on a :

coupe(V1,V2) =

v1∈V1,v2∈V2 poids(v1,v2) =1 2

(vi,vj)∈E (xi−xj)2poids(vi,vj) =1 2x T MLapx

Minimiser le coût de coupe d’une bissection revient à trouver un vecteurxqui minimisexTMLapx. Autrement dit, ce problème consiste à résoudre le système linéaire :

MLapx=λx

Résoudre ce système numérique consiste à trouver la plus petite valeur propreλ de la matrice

MLapet le vecteur propre qui lui est associé.

Méthodes de résolution

Le problème du partitionnement de graphe peut se résoudre par la recherche des vecteurs propres de la matrice Laplacienne. Plusieurs méthodes, présentées dans [GL96], peuvent être uti-lisées dans le but de trouver les vecteurs propres de la matrice Laplacienne :

- l’algorithme itératif de Lanczos

- la méthode itérative du quotient de Rayleigh - l’algorithme de la décomposition QR - l’algorithme itératif de Jacobi

Les valeurs propres (λ)i issues de la matrice MLap ont toutes en commun d’être positives ou nulles. La plus petite valeur propre estλ1=0, à qui on associe le vecteur propre trivial x= (1,· · ·,1)T. Il est possible de trier les valeurs propres par ordre croissant 0=λ1≤λ2≤ · · · ≤λn, ainsi que les vecteurs propres qui leur sont associés. Ces valeurs et vecteurs propres possèdent certaines propriétés qui sont notamment très utiles pour le partitionnement de graphes.

La première personne à en avoir étudié les propriétés est Miroslav Fiedler dans [Fie75]. C’est pour cela, que ces vecteurs propres portent le nom de vecteurs de Fiedler. Le second vecteur de Fiedler, qui est associé à la seconde plus petite valeur propre, permet d’obtenir une bissection de coût de coupe minimum d’un grapheG= (V,E)en deux sous-ensemblesV1,V2tels queV1∪V2=

V. Pour cela, il suffit de discrétiser les valeurs du vecteur vers{−1; 1}pour répartir les sommets du graphe dans les deux ensembles. Ce processus est généralisable au partitionnement de la forme 2i. En effet, les i+1 premiers vecteurs de la famille de Fiedler de la matrice Laplacienne de

Gpermettent de trouver une 2i-partition deG. Pour cela, il suffit de discrétiser chaque vecteur de Fiedler vers{−1; 1}, puis de créer les bissections correspondantes. Les modalités de discrétisation dépendent fortement de la nature du partitionnement.

Cas du partitionnement contraint

Le partitionnement contraint consiste à trouver une partition deGqui soit équilibrée et dont le coût de coupe soit minimal. Nous avons vu ci-dessus que la bissection s’obtient par discrétisation du second vecteur de Fiedlder et qu’il est possible de généraliser ce processus pour le partitionne-ment de la forme 2i. Le problème est que seuls les trois premiers vecteurs de Fiedler (sans compter le vecteur trivial) apportent des résultats fiables.

Afin de respecter la balance de partitionnement, la discrétisation du vecteur de Fiedlerxvers

{−1; 1}se fait comme suit :

- trie des valeurs dexpar ordre croissant - discrétisation des n2 premières valeurs vers−1 - discrétisation des n2 dernières valeurs vers 1

Une telle discrétisation garantit à coup sûr le respect de la balance de partitionnement. Pour le 2i-partitionnement, le même processus est appliqué à chaque vecteur de Fiedler, en respectant les modifications imposées par les bissections précédentes au niveau de la balance de partitionnement. C’est le respect de ces modifications qui limite l’utilisation des vecteurs de Fiedler. Car au-delà du troisième, il devient quasiment impossible de respecter les modifications. Il est cependant pos-sible d’obtenir une partitionk=2i8 en utilisant une approche par bissection récursive, ou par

bissection itérative hiérarchique (voir1.4.4).

Cas du partitionnement non contraint

Dans le cas du partitionnement non contraint, on cherche à obtenir une partition qui respecte l’une des deux fonctions objectifs suivantes : le ratio de coupe et coût de coupe normalisé. En fonction du choix de la fonction objectif, une modification est apportée au système à résoudre. Pour le ratio de coupe, le système à résoudre devient :

MLapx=λMAd jx

Et pour la coût de coupe normalisé :

MLapx=λMDegx

Comme pour le cas contraint, le partitionnement s’obtient par discrétisation des vecteurs de Fiedler. Cependant, dans ce cas, il n’est pas nécessaire d’obtenir des parties de même poids. La discrétisation des vecteurs est donc totalement différente :

- discrétisation de toutes les valeursxi<0 vers−1 - discrétisation de toutes les valeursxi>0 vers 1

L’un des inconvénients des méthodes spectrales est qu’elles utilisent des algorithmes de re-cherche de vecteurs propres qui sont gourmands en temps de calcul et en espace mémoire. Afin de remédier à ce problème, il est conseillé de combiner la méthode spectrale à un algorithme multi-niveaux pour les graphes de plus de 10000 sommets. De plus, la méthode spectrale étant une méthode de recherche globale, il est conseillé d’appliquer un algorithme d’affinage à la par-tition obtenue afin d’en améliorer la qualité. La méthode multi-niveaux, ainsi que les méthodes d’affinages, sont présenter en section1.5.3.