
- •Методическое пособие по дисциплине Теория сложности вычислений
- •6.080200 Прикладная математика
- •Симферополь, 2004
- •Основные понятия теории алгоритмической
- •Сложности решения дискретных задач
- •1.Алгоритм
- •2. Класс p и эффективные вычисления
- •Значение разбиения задач на классы по сложности становится понятным, если рассмотреть следующие практические соображения.
- •3. Недетерминированные алгоритмы и класс np.
- •4. Класс nр - полных задач
- •Теорема 4.1 [1].
- •5. Теорема Кука: первая nр - полная задача
- •Теорема_5.1. (Сoоk s.A., 1971).
- •Введем вспомогательную функцию
- •6. Другие nр- полные задачи.
- •7. Пример доказательства np- полноты задачи методом сведения.
- •8. Список nр- полных задач.
- •9. Матроиды и жадные алгоритмы.
- •Задача 9.2. Дана матрица с целыми неотрицательными
- •Задача 9.3. Дано конечное множество е, семейство его подмножеств ( - булеан множества е) и функция
- •Множество b j не будет содержаться во множестве s, выбранном
- •Содержание
Задача 9.3. Дано конечное множество е, семейство его подмножеств ( - булеан множества е) и функция
:
Е
R+
; (е)
будем называть: весом
элемента
е
Е . Требуется
найти подмножество S
J
с наибольшей
суммой
т. е. с наибольшим суммарным весом.
Эквивалентная формулировка задачи:
Определение 9.1. Жадным (пожирающим, GREEDY) называется следующий алгоритм решения задачи (9.4):
begin
Упорядочить е так, что
w(e[1]) >= w(е[2]) >= ... >= w(е[n]);
S:=;
for i := 1 tо n dо
if (S {e[i]}) J then S := S {е[i]};
еnd.
Замечание. Для упрощения определения GREEDY алгоритма мы, не теряя общности, считаем, что после упорядочения элементов множества Е они получили имена (и номера) е[1], е[2], ... , е[n].
Типичной иллюстрацией частного случая использования GREEDY алгоритма является стратегия «иди в ближайший» для задачи о крат-чайшем пути в графе.
Очевидно, что сложность GREEDY алгоритма определяется слож-ностью задачи сортировки n-элементного множества и может быть оце-нена как 0(n). Простота GREEDY алгоритма делает его привлекатель-ным и определяет важность постановки следующей проблемы.
Каким условиям, должно удовлетворять семейство J из задачи 9.3. чтобы GREEDY- алгоритм правильно решал эту задачу для
произвольной функции ?
Оказывается, для решения поставленной проблемы достаточно, чтобы пара <Е,J> образовывала так называемый матроид.
Определение 9.2. Матроидом называется пара М=<Е,J>, где Е - конечное множество. J 2Е - семейство его подмножеств, удовлетворяющих условиям:
М1) пустое множество принадлежит J и, если А J и В А, то B J;
М2) для любых множеств А и В таких, что А J, B J и В = А + 1 , найдется элемент е {В \ А} такой, что {А{e}} J.
Множества семейства J называются независимыми, а остальные множества из {2E \ J}- зависимыми.
Определение 9.3. Максимальным независимым подмножеством множества С Е называется такое независимое подмножество А С, что не существует независимого множества В, удовлетворяющего включениям: А В С.
Условия М1) и М2) в определении 9.2 иногда называют аксиомами матроида.
Теорема 9.1. Пусть Е - конечное множество, J 2Е и J удовлетворяет условию М1. Тогда пара М = <Е,J> является матроидом в том и только том случае, если выполняется условие:
МЗ) для произвольного подмножества С Е каждые два максимальных независимых подмножества множества С имеют одинаковую мощность.
Теорема 9.1 устанавливает эквивалентность аксиом М2 и МЗ
матроида.
Определение 9.4. Мощность максимального независимого подмножества множества Е называется рангом этого множества;
Очевидно, что подмножество С Е является максимальным независимым подмножеством тогда и только тогда, когда r(С) = C . Определение 9.5. Каждое максимальное независимое подмножество
множества Е из определения матроида М = <Е,J> называется базой этого матроида, а ранг r(E) - рангом матроида.
Следствие 9.1. Каждые две базы матроида равномощны.
Теорема 9.2. (Радо-Эдмондса) Если м = <Е,J> - матроид, то множество S, найденное GREEDY- алгоритмом при решении задачи 9.3, является независимым множеством с наибольшим весом . Если М = <Е,J> не является матроидом, то найдется такая .функция
: Е + , что множество S, найденное GREEDY- алгоритмом. не будет множеством с наибольшим весом.
Доказательство.
Пусть М =
<Е,J> -
матроид и
мно-жество, построенное GREEDY- алгоритмом.
Тогда S
- база матроида, поскольку каждый элемент
,
не включенный в S
на некотором шаге алгоритма, не может
пополнить окончательно построенное
множество S
без нарушения условия S
J
. Все базы матроида - максимальные
независимые подмножества множества Е
- равномощны, поэтому с учетом
предварительного упорядочения.
элементов множества Е
построенное множество S
будет иметь наибольший суммарный вес.
Теперь предположим, что М = <Е,J> не является матроидом. Тогда нарушается хотя бы одна из аксиом матроида М1, М2. Пусть не выполняется М1. Тогда найдутся подмножества А и В такие, что A J ,
B А и B J . Определим функцию так: