Je crois que cela est vrai, mais je n'ai pas pu obtenir de preuve formelle non plus. Mais est-il vrai qu'un arbre couvrant minimum est accessible en appliquant l'algorithme de Kruskal? De même, est-ce vrai pour l'algorithme de Prim?
EDIT: Pour être plus précis, je veux savoir si un MST est donné pour un graphique connecté, non orienté et pondéré, est-il garanti qu'il existe une séquence d'étapes utilisant Kruskal ou Prim qui génère ce MST. Par exemple, il existe différents choix pour Kruskal lorsqu'il y a plusieurs bords avec le même poids. De même pour Prim.
algorithms
graphs
minimum-spanning-tree
domoremath
la source
la source
Réponses:
Comme indiqué par le commentaire de Raphaël et le commentaire de j_random_hacker , la réponse est positive. En fait, tout MST est accessible par n'importe quel algorithme MST avec quelques exceptions mineures.
Pour un grapheG , deux fonctions de pondération sur tous les bords (en nombres réels) sont définies comme étant (faiblement) compatibles avec la comparaison (entre elles) si nous pouvons étendre le strict ordre faible sur les bords induit par l'une ou l'autre fonction de poids au même strict commande totale. Autrement dit, nous pouvons concevoir des règles de bris d'égalité cohérentes avec chaque fonction de poids de sorte que le résultat de la comparaison de deux bords quelconques par une fonction de poids et de ses règles de bris d'égalité soit le même que le résultat de l'autre fonction de poids et de sa fonction de lien. enfreindre les règles.
La preuve du lemme 1 est laissée comme un exercice facile.
(Indice) Preuve: Une approche consiste à vérifier la condition 5 du lemme 1. Une autre approche consiste à vérifier la condition 2 du lemme 1 en montrant que dans n'importe quel ensemble de bords, un bord le plus léger de est également un bord le plus léger de w 1w2 w1 ,
Un algorithme basé sur la comparaison sur un grapheG est défini comme compatible avec la comparaison si pour deux fonctions de pondération compatibles avec la comparaison (peu) sur tous les bords, nous pouvons exécuter l'algorithme avec une fonction de pondération d'une manière qui peut être répétée sans aucun changement. avec l'autre fonction de poids. En particulier, ces deux exécutions de l'algorithme auront la même sortie.
Veuillez noter que la plupart sinon tous les algorithmes MST peuvent être énoncés en deux versions. La première saveur suppose que des bords distincts de ont des poids distincts, ce qui est utilisé lorsque la principale préoccupation est de trouver un MST (qui est en fait également l'unique MST). La deuxième saveur permet des bords distincts de GG G d'avoir les mêmes poids. Bien sûr, dans cette réponse, où la principale préoccupation est de trouver tous les MST, nous ne nous occuperons que des algorithmes MST dans la deuxième version.
Un algorithme MST compatible avec la comparaison peut trouver tous les MST.
Pour prouver la proposition ci-dessus, il suffit d'adapter légèrement la section "Kruskal peut trouver tous les MST" dans le calcul du nombre de MST . Pour tout MST de G avec la fonction de poids w 1 , choisissez un poids positif qui est plus léger que la différence absolue entre n'importe quelle paire de poids de bord inégaux. Si nous soustrayons ce poids du poids de chaque bord en m sans changer le poids des autres bords, nous obtenons une nouvelle fonction de poids, disons w 2 . Si le bord e 1 est plus clair que e 2 de w 1 , e 1 doit être plus clair quem G w1 m w2 e1 e2 w1 e1 par w 2 également. Selon le lemme 2, w 1 et w 2. Parce que l'algorithme est compatible avec la comparaison, nous pouvons exécuter l'algorithme de la même manière avec w 1 ou avec w 2 . Puisque cette course trouvera l'unique MST, m avece2 w2 w1 w2 sont compatibles avec la comparaison. Notez que est l'unique MST avec w 2 . (Une façon de montrer cette unicité est de prouver que chaque fois que le poids d'un bord MST est réduit, tout MST avec la nouvelle fonction de poids doit contenir ce bord.) Ainsi, toute exécution de l'algorithme sur w 2 trouvera mm w2 w2 m w1 w2 m , il trouvera également m avec w 1 .w2 m w1
Chaque algorithme MST est compatible avec la comparaison
La proposition ci-dessus semble trop large. Eh bien, par chaque algorithme MST, je veux dire tout algorithme MST basé sur une comparaison générale que j'ai vu, à l'exclusion de ceux apparemment pathologiques tels que faux ou ayant des étapes inutiles. Puisqu'un algorithme MST compatible avec la comparaison peut trouver tous les MST, chaque algorithme MST peut trouver tous les MST. En particulier, chacun des quatre algorithmes MST classiques , à savoir les algorithmes de Borůvka, Prim, Kruskal et de suppression inversée, peut trouver tous les MST.
Voici trois autres algorithmes MST compatibles avec la comparaison.
L'algorithme MST suivant n'est pas compatible avec la comparaison.
Veuillez noter que les huit algorithmes MST mentionnés ci-dessus sont basés sur des comparaisons.
Comment montrer qu'un algorithme est compatible avec la comparaison?
Un algorithme est compatible avec la comparaison si, en termes vagues, il peut être décrit en trois types d'étapes.
Cette condition suffisante couvre les algorithmes de Borůvka, Prim, Kruskal, reverse-delete, delete-heavy-edge et add-non-heavy-edge. Notez que pour répondre à cette condition suffisante, nous pouvons être amenés à modifier certaines descriptions d'un algorithme sans affecter l'ensemble des MST accessibles. En raison de l'exception de l'algorithme de Kruskal biaisé en degré étant compatible avec la comparaison, permettez-moi de souligner que cette condition suffisante est décrite en termes vagues
la source