есть базовый ряд последовательности матроидов
= (M1, ..., Mk).
Доказательство. Так как
есть базы матроидов
соответственно, то В01 + ВХ1 есть база матроида
М1. Положим
![]()
Предположим противное, т. е. (В1, . .., Bk) не есть базовый ряд для
. Пусть тогда m есть наименьший номер j такой, что множество
Вj не есть база матроида
так что j > 1. Докажем, что
m ≤ l. Предположим, что m > l, Тогда Вl — база матроида![]()
и поэтому
Но
поэтому
По условию
есть база матроида![]()
С другой стороны, так как все циклы матроида Мm лежат в А, то
есть база свободного матроида
Но тогда
![]()
— база матроида Мm - противоречие. Итак, m ≤ l. Пусть
— базовый ряд последовательности
так что
есть бала Мm.
Положим
По 7.2
поэтому
Так как по 7.1![]()
база матроида
а ввиду
— по условию
— база того же матроида, то ![]()
Таким образом, 
— противоречие.
7.6. Теорема. Пусть А — экстремальное множество системы
l, l≤k и (B1, .. ., Bk) — базовый ряд последовательности. Тогда
есть базовый ряд
последовательности матроидов
Доказательство. Положим
По 7.2
Пусть m — наименьший номер такой, что
не есть база матронда
Легко видеть, что m < l, так как при m ≥ l множество
есть база свободного матронда
Пусть
есть базовый ряд
последовательности
По 7.1
есть базо-
вый ряд для
Положим
По7.5
есть базовый ряд для
m. Поэтому
— противоречие.
1.9.8. АЛГОРИТМ ПОСТРОЕНИЯ БАЗОВОГО РЯДА ПОСЛЕДОВАТЕЛЬНОСТИ МАТРОИДОВ
8.1. Рассмотрим последовательность
матроидов на Е., Построим базовый ряд для
k следующим рекурсивным способом. Пусть уже построен базовый ряд β'=(Х1, ... ..., Xl) для
1≤ l < k, так что
![]()
есть база Мl. Опишем шаг процедуры, который дает базовый ряд для
Построим базу Xl+1 матроида
Положим![]()
и
Построим граф Гλ. Выясним,
существует ли в Гλ активный путь из
Если такого пути нет, то по теореме 3.5 λ есть базовый ряд для
Если такой путь Р найдется и он начинается с элемента
то произведем перестройку
-последовательности λ с помощью процедуры, описанной в 3.6. В результате перестройки получим новую
- последовательность
такую, что
х
Х'і+1, | X'і | =| Xi | для i = 1, ...,l и | Х'l+1| = |Хl| + 1. Повторяя процедуру, получим в конце концов базовый ряд последовательности
. В результате k шагов этой процедуры получим базовый ряд для
k.
8.2. Возникает вопрос, какова трудоемкость этого алгоритма. Оракулом независимости матроида М называется такой оракул,
который для каждого предъявленного eму подмножества X
Е определяет, является ли X независимым в М (т. е. Х
М). Если X есть независимое множество в М (т. е. Х
М), то оракул предъявляет некоторый цикл С Х. Будем считать, что каждый матроид Мi задан своим оракулом Оi, а действие алгоритма есть обращение к одному из оракулов Оi. Тогда число действий алгоритма есть общее число обращений алгоритма к оракулам О1, ... . .., Ok. Очевидно, описанный в 8.1 алгоритм построения базового ряда для
k тратит для добавления каждого нового элемента к уже построенной
-последовательности не более k ·|Е| обращений к оракулам О1, . . ., Оk (точнее, для построения графа Гλ). Поэтому указанный алгоритм обращается к оракулам О1, . .., Ok не более чем k · |Е|2 раз. Описанный алгоритм строит базовый ряд данного матроида М (а значит, заодно решает задачи упаковки и покрытия для М) за
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |


