85488 (589835), страница 4
Текст из файла (страница 4)
Пример 3.
Матроид трансверсалей. Пусть
- некоторое конечное множество, и
- некоторое семейство подмножеств этого множества. Подмножество
называется частичной трансверсалью семейства
, если
содержит не более чем по одному элементу каждого подмножества из семейства
. Частичные трансверсали над
образуют матроид на А.
Перейдем к рассмотрению жадного алгоритма. Для начала нужно сформулировать задачу, которую будем решать с его использованием.
Пусть имеются конечное множество
,
, весовая функция
и семейство
.
Рассмотрим следующую задачу: найти
, где
. Другими словами, необходимо выбрать в указанном семействе подмножество наибольшего веса.
Не ограничивая общности, можно считать, что
Рассмотрим такой алгоритм, который исходными данными имеет множество
, семейство его подмножеств
и весовую функцию
, причем множество
упорядочено в порядке убывания весов элементов. После выполнения этого алгоритма мы получим подмножество
.
Изначально искомое множество
пусто, далее просматриваем по очереди все элементы из множества
и проверяем зависимость множества
, если
- независимо, то элемент
добавляем в множество
, если же
- зависимо, то переходим к элементу
, пока все элементы из множества
не будут проверены.
Алгоритм такого типа называется «жадным». Совершенно очевидно, что по построению окончательное множество
, то есть независимо. Также очевидно, что жадный алгоритм является чрезвычайно эффективным: количество шагов составляет
, то есть жадный алгоритм является линейным. (Не считая затрат на сортировку множества
и проверку независимости
.)
Пример 4.
Пусть дана матрица
. Рассмотрим следующие задачи.
Задача 1. Выбрать по одному элементу из каждого столбца, так чтобы их сумма была максимальна.
Здесь весовая функция
ставит в соответствие элементу матрицы
его значение. Например,
.
Множество
упорядоченно следующим образом:
.
Семейство независимых подмножеств
будут образовывать такие множества, в которых все элементы из разных столбцов и пустое множество.
Наш алгоритм будет работать следующим образом:
0 шаг (нач. усл.):
;
1 шаг: поверяем для элемента
,
;
2 шаг: для
,
;
3 шаг: для
,
;
4 шаг: для
,
;
5 шаг: для
,
;
6 шаг: для
,
;
7 шаг: для
,
;
8 шаг: для
,
;
9 шаг: для
,
;
В результате получили множество
,
., полученный результат действительно является решением задачи.
Задача 2. Выбрать по одному элементу из каждой строки, так чтобы их сумма была максимальна.
Здесь функция
и множество
такие же как и в предыдущей задаче, а семейство независимых подмножеств
будут образовывать такие множества, в которых все элементы из разных строк и пустое множество.
Используя наш алгоритм получим следующее решение: множество
и
, которое так же является верным.
Задача 3. Выбрать по одному элементу из каждого столбца и из каждой строки, так чтобы их сумма была максимальной.
В этой задаче функция
и множество
остаются прежними, а семейство независимых подмножеств
будут образовывать такие множества, в которых все элементы из разных столбцов и различных строк и пустое множество.
Нетрудно видеть, что жадный алгоритм выберет следующие элементы:
и
, которые не являются решением задачи, поскольку существует лучшее решение -
и
.
Возникает вопрос, в каких же случаях жадный алгоритм действительно решает поставленную задачу? На поставленный вопрос поможет ответить теорема, сформулированная и доказанная в [4, с.75-76].
Теорема 7.
Для любой функции
жадный алгоритм находит независимое множество
с наибольшим весом, тогда и только тогда, когда
является матроидом.
Действительно, в нашем примере в задачах 1 и 2
- матроид, а в задаче 3 таковым не является, так как не выполняется аксиома М3. Если рассмотреть
, тогда
получили противоречие с независимостью хотя бы одного из множеств.
Список библиографии
-
Ван дер Варден Б.Л. Алгебра. – М.: Наука, 1976. – 648 с.
-
Кон П. Универсальная алгебра. – М.: Мир, 1968. – 352 с.
-
Курош А. Г. Курс высшей алгебры. – СПб: Лань, 2006. – 432 с.
-
Новиков Ф. А. Дискретная математика для программистов. – Спб: Питер, 2001. – 304 с.
-
Фрид Э. Элементарное введение в абстрактную алгебру. – М.: Мир, 1974. – 260 с.















