Tous les arbres s'étendant sur un minimum de MST sont-ils accessibles par Kruskal et Prim?

13

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.

domoremath
la source
2
Réponse et discussion pertinentes à un autre résultat que vous voudrez peut-être utiliser comme un lemme.
Raphael
3
La première section de ma réponse le prouve pour l'algorithme de Kruskal, et je pense qu'un argument similaire fonctionnerait pour Prim: stackoverflow.com/a/13779113/47984
j_random_hacker

Réponses:

9

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 graphe G , 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.

Lemme 1 : Soit et w 2 deux fonctions de poids. Les cinq déclarations suivantes sont équivalentes les unes aux autres.w1w2

  1. et w 2 sont compatibles avec la comparaison.w1w2
  2. Dans tout ensemble d'arêtes, il existe une arête la plus claire commune de et de w 2 .w1w2
  3. Dans tout ensemble d'arêtes, il existe une arête la plus lourde commune de et de w 2 .w1w2
  4. Il existe une fonction de pondération qui attribue des poids distincts à des arêtes distinctes de sorte que w 3 est compatible en comparaison avec w 1 et w 2 .w3w3w1w2
  5. pour tout bord et e 2 tels quee1e2 soit plus léger que e 2 par une fonction de poids, e 1 est aussi léger ou plus léger que e 2e1e2e1e2 par l'autre fonction de poids.

La preuve du lemme 1 est laissée comme un exercice facile.

Lemme 2 : Soit deux fonctions de poids et w 2 telles que si e 1 < ww1w2, alorse1< w 2 e2e1<w1e2e1<w2e2 . Ensuite, ils sont comparables en comparaison.

(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 1w2w1 ,

Un algorithme basé sur la comparaison sur un graphe G 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 GGG 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 quemGw1mw2e1e2w1e1 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 avece2w2w1w2sont 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 mmw2w2mw1w2m , il trouvera également m avec w 1 .w2mw1

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 de suppression des bords lourds. Commencez par tous les bords. Trouvez un cycle à plusieurs reprises et retirez l'un de ses bords les plus lourds jusqu'à ce qu'il ne reste plus de cycle.
  • l'algorithme add-non-heavy-edge. Commencez avec l'ensemble vide. Itérer sur tous les bords. Chaque bord est ajouté et, si un cycle se forme, supprimez l'un des bords les plus lourds.
  • l'algorithme de remplacement par un bord plus léger. Commencez par un arbre couvrant . Trouver le cycle en T plus un bord e pas dans T . Si un bord t dans ce cycle est plus lourd que e , retirez t de T et ajoutezTTeTtetTeTT

L'algorithme MST suivant n'est pas compatible avec la comparaison.

  • l'algorithme de Kruskal biaisé en degrés, qui est l'algorithme de Kruskal avec la modification suivante. Supposons que lorsque nous allons supprimer un bord avec le poids minimum de comme dans la description de wikipedia de l'algorithme de Kruskal , nous avons plusieurs bords avec le poids minimum à choisir. L'arête que nous choisissons de supprimer sera une arête dont la somme des degrés de ses deux sommets est la plus grande de tous les choix. Cet algorithme ne peut pas être compatible avec la comparaison car il ne trouve pas le MST { a b , b c , c d } du graphe avec les sommets a , b , c et l'arête a bS{ab,bc,cd}a,b,cab1bc,cd,db2

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?

G

  • FGF
  • S
  • tandis que SF
    • S
    • S
    • Si ce bord relie deux arbres différents, ajoutez-le à la forêt F
  • production F

w1w2GSw1w2

Un algorithme est compatible avec la comparaison si, en termes vagues, il peut être décrit en trois types d'étapes.

  1. faire quelque chose qui n'implique pas de poids.
  2. sélectionner une arête avec le poids minimum dans un ensemble d'arêtes donné
  3. sélectionner une arête avec le poids maximum dans un ensemble d'arêtes donné

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

John L.
la source