Exactitude-preuve d'un algorithme gourmand pour la couverture minimale des sommets d'un arbre


14

Il existe un algorithme gourmand pour trouver la couverture minimale des sommets d'un arbre qui utilise la traversée DFS.

  1. Pour chaque feuille de l'arbre, sélectionnez son parent (c.-à-d. Que son parent est dans la couverture de sommet minimum).
  2. Pour chaque nœud interne:
    si l'un de ses enfants n'est pas sélectionné, sélectionnez ce nœud.

Comment prouver que cette stratégie gourmande donne une réponse optimale? Qu'il n'y a pas de couverture de sommet plus petite que celle que l'algorithme ci-dessus produit?


Je ne pense pas que la logique de la 2e étape soit correcte. Si vous considérez un arbre dégénéré avec 6 nœuds descendant à fond (étiquetez-les 1-6 correspondant à leur profondeur). Ensuite, la première étape de votre algorithme sélectionnera le nœud 5. La deuxième étape sélectionnera alors éventuellement le premier nœud (racine) puis le deuxième nœud (enfant) OU le troisième nœud. Cependant, cela est incorrect car vous ne souhaitez choisir le nœud 2 et le nœud 5 que pour une solution correcte.
miguel.martin

@ miguel.martin Si la couverture de sommet ne contient que des sommets numérotés 2 et 5, l'arête entre les nœuds 3 et 4 ne sera pas couverte.
Laschet Jain

Réponses:



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.