Un algorithme de complexité O(|S|) pour

publicité
Un algorithme de complexité O(|S|) pour calculer la distance
de transfert entre deux partitions de S
Daniel Cosmin Porumbel1 , Jin-Kao Hao2 , Pascale Kuntz3
1
3
Univ. Lille-Nord de France, UArtois, LGI2A
Technoparc Futura FSA, 62400 Béthune, France
[email protected]
2 Université d’Angers, LERIA
2 Bd Lavoisier, 49045 Angers, France
[email protected]
Laboratoire d’Informatique de Nantes Atlantique, Polytech’Nantes
BP 50609, 44306 Nantes cedex 3, France
[email protected]
Mots-clés : algorithme linéaire, distance de transfert, partitions proches
1
Introduction
En analyse de donneées et classification, il peut être utile de comparer des partitions entre elles
via une mesure de distance. Une des distances les plus utilisées est la distance de transfert étudiée
notamment par S. Régnier [5] dès les années 60 [5]. Plus formellement, soient k un entier positif
et S un ensemble ; une partition est un ensemble de k classes deux à deux disjointes, qui forment
un recouvrement de S. La distance de transfert entre deux partitions P1 et P2 est le nombre minimal
d’éléments qu’il faut transférer entre les classes du P1 pour transformer P1 en P2 .
Des études précédentes [2, 3, 1] ont proposé une méthode de calcul fondée sur une réduction directe
au problème d’affectation et une résolution par la méthode hongroise (complexité entre O(|S| + k2 )
et O(|S| + k3 )). Dans cette communication, nous présentons un algorithme avec une complexité en
O(|S|) si certaines conditions de proximité entre partitions sont satisfaites. En pratique, si les partitions sont de distance inférieure à |S|
5 , le calcul peut être souvent effectué en O(|S|). De plus, nous
étendons l’algorithme à des partitions plus distantes mais qui partagent certaines classes en commun.
2
Distance de transfert et nouvel algorithme
Notons d(P1 , P2 ) la distance de transfert entre P1 et P2 . D’une façon duale, la similarité s(P1 , P2 )
est définie par le nombre maximal d’éléments qui n’ont pas besoin d’être transférés entre des classes
de P1 pour transformer P1 en P2 . Ainsi, la distance et la similarité satisfont l’équation s(P1 , P2 ) +
d(P1 , P2 ) = |S|. Pour calculer la similarité, il faut trouver une affectation σ : {1, 2, . . . , k} → {1, 2, . . . , k}
qui maximise la somme :
!
s(P1 , P2 ) = max
σ
∑
Ti,σ(i) ,
(1)
1≤i≤k
où T est une matrice k × k de similarité définie par Ti j = |P1i ∩ P2j |. La Figure 1 illustre le processus
de calcul de distance. La meilleure affectation sur cet exemple est : σ̄(1) = 1, σ̄(2) = 3 et σ̄(3) = 2.
Depuis les années 80, l’approche classique de calcul repose sur la transformation du problème en
un problème d’affectation linéaire qui se résout avec la méthode hongroise [3, 2, 1]. L’entrée de ce
P1: |1 2 3 4
T(Mat. de Similarité)
4 0 0
Similarité = 7
=> 0 1 2 =>
Distance = |S| - 7 = 2
| 6 7|
1 1 0
| 5 6 7 | 8 9|
P2: |1 2 3 4 8 | 5 9
FIG. 1 – Un exemple de calcul de distance. Il suffit de transférer 2 éléments (8 et 5) pour transformer P2 en P1 .
Ainsi, la première classe de P1 (i.e. {1, 2, 3, 4}) devient égale à la première classe de P2 ; la deuxième classe de
P1 (i.e. {5, 6, 7}) devient égale à la troisième de P2 et la troisième classe de P1 (i.e. {8, 9}) devient égale à la
deuxième de P2 .
problème est une matrice de coût k × k, et ainsi, l’algorithme de résolution doit inévitablement exécuter au moins O(k2 ) pas pour lire toute l’entrée. Comme la méthode hongroise est dédiée uniquement
à des problèmes de minimisation, l’approche classique de calcul nécessite aussi une transformation
préalable de la matrice T .
Pour réduire la complexité à O(|S|), nous proposons de ne pas recourir au problème d’affectation et
d’exploiter le fait que l’entrée de notre problème contient juste O(|S|) éléments (les deux partitions).
De plus, la matrice T est une matrice creuse où seulement |S| éléments (au maximum) sont utilisés,
i.e. les éléments Ti j = |P1i ∩ P2j | avec i = P1 (x) et j = P2 (x), pour tous les x ∈ S. Pour les autres i et j
(s’il n’y a pas de x ∈ S tel que i = P1 (x) et j = P2 (x)), la valeur |P1i ∩ P2j | est forcement nulle.
À partir de ces observations, nous avons construit un algorithme [4] à deux étapes : (A) construire
la matrice de similarité T (P1 , P2 ), et (B) déterminer l’affectation σ̄ maximisant la somme (1). L’étape
(A) peut être toujours réalisée en O(|S|) : (i) pour l’allocation de mémoire, il est possible d’utiliser un
allocateur au niveau de bloc de mémoire, (ii) pour l’initialisation, il suffit de parcourir les éléments
x ∈ S, et de modifier juste les valeurs TP1 (x),P2 (x) . L’étape (B) peut être exécutée en O(|S|) uniquement
si certaines conditions sont satisfaites, e.g. si chaque classe de P1 partage avec une classe de P2
au moins la moitié de leurs éléments. Dans ce cas, l’algorithme a besoin d’utiliser uniquement les
valeurs TP1 (x),P2 (x) (avec x ∈ S) pour trouver σ̄ et cela nécessite O(|S|) opérations.
Pour conclure, notons que cet algorithme peut être employé dans de nombreuses applications qui
calculent fréquemment des distances entre des partitions proches. Par exemple, en analyse des données, il faut souvent comparer une partition de référence (un étalon, le gold standard) avec une partition déterminée par un algorithme. Des exemples similaires existent en analyse d’images, biologie,
partitionnement de données et clustering—voir des références en [4].
Références
[1] I. Charon, L. Denoeud, A. Guénoche, and O. Hudry. Maximum transfer distance between partitions. Journal of Classification, 23(1) :103–121, 2006.
[2] W.H.E. Day. The complexity of computing metric distances between partitions. Mathematical
Social Sciences, 1 :269–287, 1981.
[3] D. Gusfield. Partition-distance : A problem and class of perfect graphs arising in clustering.
Information Processing Letters, 82(3) :159–164, 2002.
[4] C.D. Porumbel, J.K. Hao, and P. Kuntz. An efficient algorithm for computing the distance between close partitions. Discrete Applied Mathematics, 159(1) :53–59, 2011.
[5] S. Régnier. Sur quelques aspects mathématiques des problèmes de classification automatique.
Mathématiques et Sciences Humaines, 82 :20, 1983 et 1965. (reprint of ICC Bulletin, 4, 175191, Rome, 1965).
Téléchargement