Prova di correttezza di un algoritmo avido per la copertura minima del vertice di un albero


14

Esiste un algoritmo avido per trovare la copertura minima del vertice di un albero che utilizza l'attraversamento DFS.

  1. Per ogni foglia dell'albero, seleziona il suo genitore (cioè il suo genitore è nella copertura minima del vertice).
  2. Per ciascun nodo interno:
    se uno dei suoi figli non è selezionato, selezionare questo nodo.

Come posso dimostrare che questa strategia avida dà una risposta ottimale? Che non esiste una copertura del vertice di dimensioni inferiori a quella prodotta dall'algoritmo sopra?


Non penso che la logica per il secondo passo sia corretta. Se consideri un albero degenerato con 6 nodi che scendono fino in fondo (etichettali 1-6 corrispondenti alla loro profondità). Quindi il primo passo del tuo algoritmo sceglierà il nodo 5. Il secondo passo probabilmente sceglierà il primo nodo (root) e poi il secondo nodo (figlio) O il terzo nodo. Tuttavia, ciò non è corretto poiché si desidera selezionare solo il nodo 2 e il nodo 5 per una soluzione corretta.
miguel.martin,

@ miguel.martin Se la copertura dei vertici contiene solo vertici numerati 2 e 5, il bordo tra i nodi 3 e 4 non sarà coperto.
Laschet Jain,

Risposte:



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.