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?

e_noether
la source
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:

11

CCXXX

CCC

A.Schulz
la source
4

|M||C|MC

Yuval Filmus
la source