основные-сведения
Определение
Жадный алгоритм - это алгоритм, который на каждом этапе работы выбирает оптимальное решение (локально). Оптимальное решение для каждой задачи индивидуально
Жадные алгоритмы применяются в задачах оптимизации на ряду с динамическим программированием, но они либо быстрее чем ДП, либо проще в реализации, поэтому иногда выгоднее использовать именно их.
Случаи, в которых жадный алгоритм оптимален
- Если выбор локального оптимального решения не отрежет пути к глобальному оптимуму (оптимум - наилучший вариант решения задачи).
- Подзадача, возникшая после первого выбора, идентична начальной.
- Если задача имеет структуру матроида.
Матроид
Матроид - это пара , обладающая следующими свойствами:
- - непустое конечное множество.
- - непустое семейство подмножеств , где - независимые подмножества.
- .
- Если множество принадлежит , то и все его подмножества принадлежат .
- Если , и , тогда существует элемент и , такой, что, если его добавить к , получится множество (, , - множества).
Матроид называется взвешенным, если на множестве задана весовая функция, значения которой содержатся во множестве положительных чисел.
Некоторые оптимизационные задачи сводятся к нахождению во взвешенном матроиде независимого подмножества с оптимальным весом, например, задача о минимальном остовном дереве.