Коректність - доказ жадібного алгоритму мінімальної вершини покриття дерева


14

Існує жадібний алгоритм пошуку мінімального вершинного покриву дерева, який використовує DFS обхід.

  1. Для кожного листя дерева виберіть його батьківський (тобто його батько знаходиться в мінімальній вершинній кришці).
  2. Для кожного внутрішнього вузла:
    якщо якийсь із його дітей не вибрано, виберіть цей вузол.

Як я можу довести, що ця жадібна стратегія дає оптимальну відповідь? Що немає кришки вершин меншого розміру, ніж та, яку виробляє вищевказаний алгоритм?


Я не думаю, що логіка 2-го кроку є правильною. Якщо ви вважаєте, що вироджене дерево з 6 вузлами йде вниз по всьому праві (позначте їх 1-6 відповідно до їх глибини). Тоді перший крок вашого алгоритму вибере вузол 5. Другий крок, можливо, вибере перший вузол (корінь), а потім другий вузол (дочірнє) АБО третій вузол. Однак це неправильно, оскільки для правильного рішення потрібно вибрати лише вузол 2 та вузол 5.
miguel.martin

@ miguel.martin Якщо кришка вершини містить лише вершини, пронумеровані 2 та 5, край між вузлами 3 та 4 не буде закритий.
Laschet Jain

Відповіді:



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.