Prova de correção de um algoritmo guloso para cobertura mínima de vértice de uma árvore

14

Existe um algoritmo ganancioso para encontrar uma cobertura mínima de vértice de uma árvore que usa a travessia do DFS.

  1. Para cada folha da árvore, selecione seu pai (ou seja, seu pai está na cobertura mínima de vértice).
  2. Para cada nó interno:
    se algum de seus filhos não estiver selecionado, selecione este nó.

Como faço para provar que essa estratégia gananciosa dá uma resposta ótima? Que não há cobertura de vértice menor em tamanho do que aquela que o algoritmo acima produz?

e_noether
fonte
Eu não acho que a lógica para o segundo passo esteja correta. Se você considerar uma árvore degenerada com 6 nós descendo totalmente (rotule-os de 1 a 6 correspondentes à profundidade). Em seguida, o primeiro passo do seu algoritmo selecionará o nó 5. O segundo passo possivelmente selecionará o primeiro nó (raiz) e o segundo nó (filho) OU o terceiro nó. No entanto, isso está incorreto, pois você deseja escolher apenas os nós 2 e 5 para obter uma solução correta.
Miguel.martin
@ miguel.martin Se a Vertex Cover contiver apenas vértices numerados 2 e 5, a borda entre os nós 3 e 4 não será coberta.
Laschet Jain

Respostas:

11

CCXXX .

Agora pegue qualquer cobertura ideal CCC

A.Schulz
fonte
4

|M||C|MC

Yuval Filmus
fonte