Modifier la distance entre deux partitions


17

J'ai deux partitions de et je recherche la distance d'édition entre elles.[1n]

Par cela, je veux trouver le nombre minimal de transitions uniques d'un nœud dans un groupe différent qui sont nécessaires pour passer de la partition A à la partition B.

Par exemple, la distance de {0 1} {2 3} {4}en {0} {1} {2 3 4}serait de deux

Après avoir cherché, je suis tombé sur ce document, mais a) je ne sais pas s'ils tiennent compte de l'ordre des groupes (quelque chose qui ne m'importe pas) à leur distance b) je ne sais pas comment cela fonctionne et c) Il n'y a pas de références.

Toute aide appréciée


5
Quelle serait, selon vous, la distance entre {0 1 2 3} et {0 1} {2 3}? Serait-ce 2? Deuxièmement, je ne vois pas du tout pourquoi les «graphiques» entrent en jeu. Il semble que vous ayez deux partitions de [n] et que vous vouliez calculer une distance entre elles.
Suresh Venkat

Oui, ce serait deux. En effet, il s'agit de partitions définies sur les nœuds d'un graphe (ie une partition de graphe). Ce n'est probablement pas important pour la solution, mais c'est le problème que j'essaie de résoudre, d'où la raison pour laquelle je l'ai mentionné.
zenna

3
Si le graphique n'est pas pertinent, veuillez supprimer toutes les références aux "graphiques" et "nœuds" de votre question; ça n'aide pas, ça distrait.
Jukka Suomela

La distance d'édition ne peut-elle pas être définie en termes de distance sur le réseau de partition?
Tegiri Nenashi

@Tegiri - Il s'agit bien de la distance géodésique sur le réseau de partititons. Malheureusement, calculer ce réseau pour tout ensemble de cardinalité bien supérieur à 10 est intraitable.
zenna

Réponses:


21

Ce problème peut être transformé en problème d'affectation , également connu sous le nom de problème de correspondance bipartite pondérée maximale.

Notez d'abord que la distance d'édition est égale au nombre d'éléments qui doivent changer d'un ensemble à un autre. Cela équivaut au nombre total d'éléments moins le nombre d'éléments qui n'ont pas besoin de changer. Donc, trouver le nombre minimum d'éléments qui ne changent pas équivaut à trouver le nombre maximum de sommets qui ne changent pas.

Let et B = { B 1 , B 2 , . . . , B l } soit de partitions [ 1 , 2 , . . . , n ] . Aussi, sans perte de généralité, soit k l (autorisé car e d i tA={A1,A2,...,Ak}B={B1,B2,...,Bl}[1,2,...,n]kl ). Soit alors B l + 1 , B l + 2 , ..., B k tous les ensembles vides. Alors le nombre maximum de sommets qui ne changent pas est:edit(A,B)=edit(B,A)Bl+1Bl+2Bk

maxfi=1k|AiBf(i)|

est une permutation de [ 1 , 2 , . . . , k ] .f[1,2,...,k]

C'est exactement le problème d'affectation où les sommets sont , ..., A k , B 1 , ..., B k et les arêtes sont des paires ( A i , B j ) de poids | A iB j | . Cela peut être résolu en temps O ( | V | 2 log | V | + | V | | E | ) .A1AkB1Bk(Ai,Bj)|AiBj|O(|V|2log|V|+|V||E|)


Pourriez-vous nommer l'algorithme, qui donne cette complexité temporelle s'il vous plaît?
D-503

Je crois que @bbejot fait référence à l'algorithme de chemin le plus court successif (avec le sous-programme Dijkstra implémenté à l'aide de tas de fibonacci).
Wei

Cela m'a pris beaucoup de temps pour analyser cela parce que je ne suis pas un mathématicien, mais merci. J'ai passé beaucoup de temps à chercher et c'était la seule chose que j'ai pu trouver qui montrait comment convertir le problème de distance de partition en problème d'affectation - ou en n'importe quel algorithme que je pouvais appeler à partir d'une bibliothèque Python. (La partie difficile pour moi a été de trouver comment utiliser scipy.optimize.linear_sum_assignment puis de configurer les matrices en fonction de ces instructions.)
Sigfried

J'avais besoin de rendre les poids négatifs. Sinon, scipy.optimize.linear_sum_assignment me donne 0 pour tout.
Sigfried,

2

Regardez le PDF de cet article

http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030160

La définition de la distance d'édition là-dedans est exactement ce dont vous avez besoin, je pense. La partition «de référence» serait (arbitraire) l'une de vos deux partitions, l'autre serait simplement l'autre. Contient également des citations pertinentes.

Cordialement, Rob


Merci Rob. Cependant, sauf si je manque quelque chose, il s'agit d'une distance d'édition définie en termes de mouvements de fusion / fusion. Celles-ci sont bien étudiées et, comme le souligne l'article, la variation de l'information en est une mesure théorique. Je m'intéresse cependant aux transitions de mouvement à élément unique.
zenna

1

Idée grincheuse du dimanche matin qui pourrait ou non être correcte:

Wlog, que soit la partition avec plus d'ensembles, P 2 l'autre. Tout d'abord, attribuez des noms différents par paire n 1 ( S ) Σ à vos ensembles P 1 . Ensuite, trouvez une meilleure dénomination n 2 ( S ) pour les ensembles P 2 selon les règles suivantes:P1P2n1(S)ΣP1n2(S)P2

  • pour S P 2 avec S S maximal parmi tous S P 1 ; choisissez celui qui crée le moins de conflits si plusieurs choix sont possibles.n2(S):=n1(S)SP2SSSP1
  • Si maintenant pour certains S S , attribuez celui qui partage le moins d'éléments avec S , n 1 ( S ) = n 2 ( S ) , le nom de l'ensemble dans P 1, il partage le deuxième plus grand nombre d'éléments, c'est-à-dire qu'il doit concourir pour le nom de cet ensemble.n2(S)=n2(S)SSS,n1(S)=n2(S)P1
  • Si l'ancienne règle ne peut pas être appliquée, vérifiez si les deux ensembles peuvent concourir pour le nom des autres ensembles avec lesquels ils partagent moins d'éléments (ils peuvent toujours avoir plus d'éléments de certains que les ensembles auxquels son nom a été attribué). !). Dans l'affirmative, attribuez ce nom à celui de S , S ' qui partage plus d'éléments avec l'ensemble respectif pour lequel ils peuvent rivaliser; l'autre conserve le nom anciennement conflictuel.SP1S,S
  • Répétez cette procédure jusqu'à ce que tous les conflits soient résolus. Puisque n'a pas moins d'ensembles que P 2 , il y a suffisamment de noms.P1P2

w1=n1(1)n1(n)w2=n2(1)n2(n)nj(je)=nj(S),jeSPjH(w1,w2)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.