Жадный алгоритм поиска базы минимального веса — различия между версиями
| м | Sergej (обсуждение | вклад)  | ||
| Строка 17: | Строка 17: | ||
| Алгоритм работает за <tex>O(|X| \log(|X|))</tex>. На сортировку элементов из <tex>X</tex> по возрастанию весов уходит <tex>O(|X| \log(|X|))</tex> и <tex>O(|X|)</tex> шагов цикла, каждый из которых работает <tex>O(1)</tex> времени (если считать, что проверка множества на независимость происходит за <tex>O(1)</tex>). | Алгоритм работает за <tex>O(|X| \log(|X|))</tex>. На сортировку элементов из <tex>X</tex> по возрастанию весов уходит <tex>O(|X| \log(|X|))</tex> и <tex>O(|X|)</tex> шагов цикла, каждый из которых работает <tex>O(1)</tex> времени (если считать, что проверка множества на независимость происходит за <tex>O(1)</tex>). | ||
| }} | }} | ||
| + | |||
| + | |||
| + | [[Категория:Алгоритмы и структуры данных]] | ||
| + | [[Категория:Матроиды]] | ||
Версия 13:24, 2 мая 2014
| Теорема (жадный алгоритм поиска базы минимального веса): | 
| Пусть на носителе матроида  задана весовая функция . Для любого  выполнено: . Тогда база минимального веса матроида  ищется жадно. | 
| Доказательство: | 
| Псевдокод алгоритма: // сортируем элементы по возрастанию веса for to do if Рассмотрим шаг алгоритма, когда мы пытаемся добавить элемент . Заметим, что если его можно добавить с сохранением независимости множества , то это элемент минимального веса не из , который можно добавить (при условии сохранения независимости при добавлении). В самом деле, пусть — элемент минимального веса не из , который можно добавить к с сохранением его независимости, тогда . Но тогда он уже был бы добавлен на -ом шаге алгоритма. Понятно, что все базы имеют одинаковую мощность (иначе в меньшую можно было бы добавить элемент из большей по аксиоме матроидов, что противоречит определению базы). По теореме Радо-Эдмондса множество минимального веса, имеющее мощность базы, (то есть база минимального веса) ищется последовательным добавлением в изначально пустое множество элементов минимального веса из так, чтобы после каждого добавления множество оставалось независимым.Алгоритм работает за . На сортировку элементов из по возрастанию весов уходит и шагов цикла, каждый из которых работает времени (если считать, что проверка множества на независимость происходит за ). | 
