Text
                    Ю. А. Зуев
ПО ОКЕАНУ
ДИСКРЕТНОЙ
МАТЕМАТИКИ
От перечислительной
комбинаторики
до современной
криптографии
Том 2
ГРАФЫ
АЛГОРИТМЫ
КОДЫ, БЛОК-СХЕМЫ, ШИФРЫ
URSS
МОСКВА


ББК 22.176 Зуев Юрий Анатольевич По океану дискретной математики: От перечислительной комбинаторики до современной криптографии. Т. 2: Графы. Алгоритмы. Коды, блок-схемы, шифры. — М.: Книжный дом «ЛИБРОКОМ», 2012. — 368 с. Содержание настоящей книги охватывает вузовский курс дискретной мате¬ матики, включая перечислительную комбинаторику, булевы функции, графы, алгоритмы, помехоустойчивое кодирование и криптографию, а также ряд дополни¬ тельных тем. Принцип построения «от простого — к сложному» делает начальные разделы каждой главы доступными для старшеклассника, а заключительные — цен¬ ными для аспиранта. Для самостоятельного решения предлагается большое число задач различной сложности, снабженных ответами и указаниями. В книге рассказы¬ вается также об истории математических открытий и формулируются открытые проблемы дискретной математики. Книга состоит из двух томов. Во втором томе рассматриваются графы, алго¬ ритмы в дискретной математике и теория кодирования (в том числе задачи сжатия информации, помехоустойчивого кодирования и криптографии). Первый том, в котором даются основные идеи и понятия дискретной математики, изучаются теория и методы перечисления, булевы функции, выходит одновременно со вторым в нашем издательстве. Написанная доступным языком, в яркой форме и с многочисленными приме¬ рами, книга будет полезна широкому кругу читателей, желающих познакомиться с основами дискретной математики. Издательство «Книжный дом “ЛИБРОКОМ”». 117335, Москва, Нахимовский пр-т, 56. Формат 60*90/16. Печ. л. 23. Зак. № ЖР-26. Отпечатано в ООО «ЛЕНАНД». 117312, Москва, пр-т Шестидесятилетия Октября, 11А, стр. 11. ISBN 978-5-397-02573-7 © Книжный дом «ЛИБРОКОМ», 2012 НАУЧНАЯ И УЧЕБНАЯ ЛИТЕРАТУРА URSS E-mail: URSS@URSS.ru Каталог изданий в Интернете: http://URSS.ru Тел./факс (многоканальный): + 7(499)724-25—45 11581 ID 158430 785397 25737 Все права защищены. Никакая часть настоящей книги не может быть воспроизведена или передана в какой бы то ни было форме и какими бы то ни было средствами, будь то элек¬ тронные или механические, включая фотокопирование и запись на магнитный носитель, а также размещение в Интернете, если на то нет письменного разрешения владельца.
Оглавление Глава 3. Графы 6 3.1. Определения и примеры 6 3.2. Деревья 18 3.3. Двудольные графы 23 3.4. Графы абстрактные и помеченные. Автоморфизмы 25 3.5. Эйлеровы графы 30 3.6. Гамильтоновы графы 33 3.7. Паросочетания 40 3.8. Связность 46 3.9. Планарность 49 3.10. Раскраски 54 3.11. Теоремы Турана и Рамсея 62 3.12. Перечисление графов 67 Задачи для самостоятельного решения 76 Литература 79 Глава 4. Алгоритмы 81 4.1. Понятие алгоритма 81 4.2. Алгоритмы на графах 97 4.3. Потоки в сетях 109 4.4. Практические методы решения задач дискретной оптимизации 119 4.5. Жадные алгоритмы и матроиды 135 4.6. Теория сложности: классы Р и NP 139 4.7. Сложность приближённого решения 148 4.8. Машина Тьюринга 152 4.9. Теорема Кука 158
Оглавление 4 Задачи для самостоятельного решения 162 Литература 163 Глава 5. Коды, блок-схемы, шифры 165 5Л. Задачи кодирования 165 5.2. Экономное кодирование. Алгоритм Хаффмана 171 5.3. Принципы помехоустойчивого кодирования 177 5.4. Линейные коды. Коды Хэмминга 183 5.5. Скорость передачи и вероятность ошибки. Теорема Шеннона 189 5.6. Коды Рида—Маллера 195 5.7. Конечные поля 199 5.8. Коды БЧХ 203 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара 206 5.10. Коды Адамара. Совершенный код Голея 230 5.11.0 плотности упаковки шаров Хэмминга 236 5.12. Математические принципы современной криптографии 242 Задачи для самостоятельного решения 261 Литература 262 Дополнение 1. Упорядоченные множества 265 Определения и примеры (265); линейные продолжения (269); разбиения на цепи (272); решётки и булевы алгебры (279); модулярные и геометрические решётки (288); алгебра инцидентности (293); обращение Мёбиуса (295); свойства функции Мёбиуса (296); примеры обращения Мёбиуса (300) Задачи для самостоятельного решения 308 Литература 308 Дополнение 2. Вероятностный метод 310 Основы (310); случайные величины (316); метод математических ожиданий (321); длина д. н. ф. типичной булевой функции (323); теорема Шеннона (328); максимальная тень антицепи (332); случайные (±1)-матрицы и детерминанты (336); дальнейшие результаты и гипотезы (343)
Задачи для самостоятельного решения 346 5 Литература 347 Ответы и указания к решению задач 349 Оглавление тома 1 362 Оглавление
Глава 3 Графы1 3.1. Определения и примеры Теория графов используется для построения моделей в экономиче¬ ских, биологических и естественных науках. Помимо этого она пред¬ ставляет значительный интерес и как чисто математическая дисциплина, изучающая с определённых позиций бинарные отношения на конечном множестве. Графом G = {V,E) называется конечное множество V с заданным се¬ мейством Е его двухэлементных подмножеств. Элементы множества V называются вершинами {vertices), а элементы множества Е — рёбрами (edges). Если V|,v2 eV и {V|,v2}e£, то говорят, что вершины vl и v2 смежны. Поэтому граф можно определить также как заданное на множе¬ стве V бинарное отношение смежности. Это от¬ ношение является симметричным и иррефлексив- ным. Эпизодически появляясь в контексте различных исследований, термин «граф» окончательно утвер¬ дился в математике после выхода в 1936 году книги венгерского математика Денеша Кёнига (1884-1944) «Теория конечных и бесконечных графов», став¬ шей первой в мире монографией по теории графов. Слово «граф» в переводе с греческого означает «пишу», «черчу», «рисую». И, действительно, гра¬ фы с небольшим числом вершин удобно представ¬ лять рисунками, на которых вершинам соответствуют точки, а рёбрам — соединяющие их линии. Например (рис. 1). Здесь Рис. 1 F = {v,,v2,v3,v4,v5}, Е ~ { {V1 ’ v4 } ’ {v2 > v4 ) > {v3 > v4 } > {v2, V5 }, {v3, Vj }} . 1 Нумерация утверждений, лемм, теорем, рисунков и таблиц начинается заново в каждом разделе каждой главы. При ссылке внутри раздела указывается лишь внутренний номер, при ссылке внутри главы—номер раздела и внутренний номер, а при ссылке из другой главы— номер главы, раздела и внутренний номер.
Подобные рисунки в прикладных задачах часто верно отражают суть 7 дела, позволяя воспринимать вершины как элементы некоторой системы, а ребра — как связи между ними. Например, вершины могут быть населён¬ ными пунктами, а рёбра — соединяющими их дорогами. При этом рёбра могут рисоваться произвольными линиями, так как они свидетельствуют лишь о наличии или отсутствии дороги, не давая в отличие от карты ка¬ кой-либо информации о её изгибах. В других случаях в качестве рёбер могут выступать городские коммуникации или химические связи между элемен¬ тами в молекуле. Именно такое схватывание качественной сути и отбра¬ сывание деталей открывает перед теорией графов широкие и разнообраз¬ ные области приложений. Эту мысль хорошо выразил известный англий¬ ский математик XIX века Джеймс Сильвестр (1814-1897): Теория разветвлений — одна из теорий чистого обобщения, для неё не существенны ни размеры, ни положение объекта; в ней используются гео¬ метрические линии, но они относятся к делу не больше, чем такие же линии в генеалогических таблицах помогают объяснить законы воспроизведения. Представление графа с помощью точек и соединяющих их линий час¬ то оказывается полезным, позволяя в наглядной форме схватывать инфор¬ мацию и проводить рассуждения. Однако задание графа рисунком плохо подходит для работы с ним на компьютере. В этом случае граф может быть задан, например, перечислением множества вершин и множества рёбер или указанием для каждой вершины множества смежных с ней вершин. Распространённой стандартной формой задания п -вершинного графа является также бинарная (п х п) -матрица смежности А=\\а^ ||, где aij = = aji ~' ’ если (vi > Vj } е Е , и ац = aji = 0 , если {v,-,Vy} <£ Е . Это симметрическая матрица с нулями на главной диагонали. Матрица смежности изображенного на рис. 1 графа имеет вид: 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 Одной из трудностей при изучении графов является обилие используе¬ мой здесь терминологии, к тому же не до конца унифицированной. Исполь¬ зуемая здесь терминология следует отечественной традиции и в основном совпадает с [14] и [5]. Новые понятия и термины будут вводиться постепен¬ но, по мере необходимости, начиная с наиболее часто используемых. По хо¬ ду изложения они будут иллюстрироваться примерами и рисунками. 3.1. Определения и примеры
Глава S. Графы 8 Смежность Множество вершин, смежных с вершиной и инцидентность Ф v, называется окрестностью вершины v и обо¬ значается N(v). Так, в графе на рис. 1, например, A4vi) = {v4}, Af(v4) = {vI,v2,v3}. Если два ребра имеют общую вершину, то их также называют смежными, а ребро и принадлежащую ему вершину называют инцидентными друг другу. Если вершина v инцидентна к рёбрам, то говорят, что она имеет степень к и пи¬ шут deg v = к . Таким образом, degv=| N(v)\. Степень вершины Ф На рис. 1 deg vj = 1, deg v2 = 2, deg v4 = 3 . Вершина степени 0 называется изолированной, а степени 1 — конце¬ вой или висячей. Граф на п вершинах называется полным, если в нём присутствуют все С„ возможных рёбер, и пустым, если он не имеет ни одного ребра. Пол¬ ный п -вершинный граф принято обозначать К„ , пустой — Оп. На рис. 2 представлены графы Кп, п = 1,2,3,4,5. Графы G = (V,E) и G = (V,E^ называются дополнительными друг к другу, если их множества вершин совпадают, а ребро {v,-,Vy} присутствует в одном графе в том и только в том случае, если оно отсутствует в другом графе. Таким образом, пустой и полный графы на одном и том же множе¬ стве вершин —• это два взаимно дополнительных графа. Графы на рис. 3 также являются взаимно дополнительными. v. Рис. 3
V, v2 V, V2 SI s v4 v3 v4 v3 G G, Подграфы Ф графа G = (F,£). если V с V и £' e E. При этом, если V = V , то граф G' = (F,£') называется остовным под¬ графом. Если же каждое ребро {v2, vy} графа G такое, что vi»vy е V, присутствует и в графе G', то подграф G' называется подграфом, инду¬ цированным (порождённым) множеством вершин V . На рис. 4 граф G| является остовным подграфом графа G; G2 — это подграф графа Q индуцированный множеством вершин {V|,v2, v3}; G3 — подграф, не являющийся остовным или индуцированным; граф G4 не яв¬ ляется подграфом графа G Каждый подграф получается удалением из графа некоторого подмно¬ жества его вершин и некоторого подмножества его рёбер. При этом при удалении некоторой вершины автоматически удаляются и все инцидентные ей рёбра. Граф, получающийся из графа G - (V,E) удалением вершины v или ребра е, обозначают соответственно G-v или G-e. Если в графе удаляются только рёбра, то возникающий подграф будет остовным, а если только вершины, то индуцированным оставшимся мно¬ жеством вершин. v2 g2 g3 g4 Рис. 4 Граф G' = (V,E') называется подграфом Ф Независимые множества и клики Подмножество вершин графа называется независимым, если индуцированный ими граф является пустым, и кликой, — если полным. Наи¬ большая мощность независимого множества называется числом независи¬ мости графа, а наибольшая мощность клики — кликовым числом. В графе, представленном на рис. 5, {V|,v3,v5} — независимое множество, {V1 > v2,v6} и {v2 > v3 > v4 > v6) — клики. Число независимости у этого графа равно трём, а кликовое число — четырём. 3.1. Определения и примеры
Глава 3. Графы Рис. 6 Регулярные графы и факторы 4 Граф называется регулярным степени к, если все его вершины имеют степень к. Пол¬ ный граф на п вершинах является, таким обра¬ зом, регулярным степени п -1. Регулярный остовный подграф степени к называется к-фактором. Пред¬ ставленные на рис. 6 графы являются 2-фактором и 1-фактором графа, изображённого на рис. 5. Условие, чтобы степени всех вершин графа бы¬ ли не меньше к, не является достаточным для суще¬ ствования к-фактора. Так, 1-фактор не существует, очевидно, у графа на рис. 7, который называется цик¬ лом длины 5 и обозначается С5 . Терминология теории графов (вершины и правильных рёбра) заимствованы из геометрии мношгран- многогранников «► ников. Пять правильных многогранников в трёхмерном пространстве (Платоновых тел) — тетраэдр, куб, октаэдр, додекаэдр и икосаэдр — дают красивые примеры ре¬ гулярных графов (рис. 8). Регулярные графы степени 3 называют кубическими. Кубическими яв¬ ляются графы тетраэдра, куба и додекаэдра. Графы октаэдра и икосаэдра являются регулярными соответственно степени 4 и 5. Правильные многогранники первых трёх типов — аналоги тетраэдра, куба и октаэдра — существуют в пространстве любого числа измерений п > 3 . Как с теоретической, так и с прикладной точки зрения наиболее интересен и важен среди них п -мерный куб, являющийся регулярным графом степени п (на рис. 2.4.2. схематически представлен четырёхмер¬ ный куб). Вершины п -мерного куба находятся во взаимно однозначном
соответствии с подмножествами п -элементного множества. Смежность 11 двух вершин на языке теории множеств означает, что одно подмножество получается из другого добавлением или удалением одного элемента. Икосаэдр Рис. 8 (продолжение) 3.1. Определения и примеры
Глава S. Графы 12 Интересным Граф примером кубиче- Петерсона ского графа явля¬ ется граф Петер¬ сена (рис. 9), названный так по имени датско¬ го математика, впервые рассмотревшего его в 1898 году. Этот граф часто используется для по¬ строения контрпримеров в теории графов. Операции Объединением G=G\ uG2 двух графов G\ = над графами * =(Pj,£]) и G2 = (V2,E2) называется граф G= =(V,E), где V = Vt и V2 и Е = Ех kjE2 . Граф Петерсена можно предста¬ вить как рёберно-непересекающееся объединение 1-фактора и 2-фактора, как показано на рис. 10, но невозможно, как показал Петерсен, предста¬ вить как объединение трёх рёберно-непересекающихся 1-факторов. Рис. 10 Помимо объединения, другой важнейшей бинарной операцией над гра¬ фами является их произведение. Пусть Gj =(Fj,£'|), G2 = (V2,E2). Тогда их произведение G = G\*G2 есть такой граф G(V,E), в котором V = Pj х V2, а две вершины (v],v2) и (vf,v2) смежны в том и только в том случае, если или V] = vj и (v2,v2} & Е2, или v2 = v'2 и {V|, v{} е Ex. На рис. 11 представ¬ лен пример произведения двух графов. G, (?2 G j х Gj Рис. 11 Теперь, после введения значительного числа новых понятий и опре¬ делений, приведём один несложный результат, считающийся исторически первой теоремой в теории графов.
Утверждение 1 (Эйлер, 1736). Сумма степеней вершин 13 графа G = (F,£) равна удвоенному числу его рёбер: £degv=2|£|. veV Доказательство. Каждое ребро инцидентно двум вершинам и поэтому даёт в сумму ^ deg v вклад, равный двум. Следовательно, и вся v<=V сумма оказывается равной удвоенному числу рёбер. □ Маршрутом в графе G, соединяющим ^ „ Ф Маршруты в графах вершины v0 и vk называется чередующаяся последовательность вершин и рёбер vq^.vi, e2,—,vk-i,ek,vk такая, что ei = {v,_i,v,}, г = 1,2,...,Л. Здесь среди вершин и рёбер могут быть и оди¬ наковые. Число рёбер в маршруте называется его длиной. Так как в рас¬ сматриваемых нами графах между двумя вершинами существует не более одного ребра, то для задания маршрута достаточно указать последова¬ тельностью вершин Vo,V|,...,V^ . Маршрут называется цепью, если все его рёбра различны и простой цепью, если все его вершины (а, следовательно, и рёбра) различны. Если v0 = , то маршрут называется замкнутым. Замкнутый маршрут, у кото¬ рого все рёбра различны, называется циклом. Если первая и последняя вершины являются единственной парой совпадающих вершин, то цикл на¬ зывается простым циклом. Длина самого короткого цикла называется обхватом графа, а самого длинного простого цикла — периметром. В графе на рис. 12 Vi,V2,v5,V2,V3 — маршрут, не являющийся цепью; vi>v2>v5>v4>v2>v3 — цепь, но не простая цепь; vi,v2,v5,v4 — простая цепь; V2,v4,v5,v2 и V2,v4,v5,v3,v2 — простые циклы. Обхват равен 3, а периметр — 4. Простую цепь с и вершинами обозначают Рп , а простой п -вершин¬ ный цикл— Сп (рис. 13). "4 vs Рис. 12 3.1. Определения и примеры
Глава 5. Грофы 14 II ли Р4 С3 с4 Рис. 13 Граф называется связным, если между лю¬ быми двумя его вершинами существует соеди¬ няющий их маршрут. В качестве такого мар¬ шрута всегда может быть выбрана простая цепь. Максимальный связный подграф графа называется его компонентой связности. На рис. 14 пред¬ ставлен граф с четырьмя компонентами связности. Рис. 14 Расстояние Расстоянием d{u,v) между двумя верши- между вершинами Ф J нами и и v графа G = [V,E) называется длина кратчайшего связывающего их маршрута (он, естественно, является про¬ стой цепью). Это расстояние удовлетворяет обычным аксиомам метрики. Максимум расстояний между вершинами называется диаметром графа: diam(G) = maxd(u,v). У графа на рис. 12 диаметр равен 2. Таково расстоя- u,v еР ние между вершинами ^(v^vj) = </(V[,v4) = c/(vj, v5) = d(v3,v4) = 2. Вершина графа G называется центральной, если максимальное рас¬ стояние от неё до всех остальных вершин графа принимает минимальное зна¬ чение. Это значение называется радиусам графа: rad(G) = min max с?(и, v). U V Вершина v2 является единственной центральной в графе на рис. 12, его радиус равен 1. Простая цепь Рп имеет одну центральную вершину при нечётном и две — при чётном п . В цикле С„ все вершины являются цен¬ тральными, rad(Cn) = [n/2]. Радиус и диаметр графа связывают очевид¬ ные соотношения I Л рг р3 Связность Ф Степени графа Ф rad(G) < dim(G) < 2 rad(G). 2 Квадрат G графа G(V,E) — это граф с тем же самым множеством вершин V , а вершины и и v смежны в G тогда и только тогда, когда
d(u,v)<2 в G. Куб G3, а также степени G4, G5,... определяются анало¬ гично. Если G(V, Е) — связный граф и & > | F | -1, то Gk — полный граф. Для каждого графа G можно определить его рёберный граф L(G), вершины которого — * Рёберные графы это рёбра графа G с отношением смежности, т. е. две вершины в L(G) смежны в том и только в том случае, если соот¬ ветствующие им рёбра в G имеют общую вершину. На рис. 15 представлен граф Z,(G), где G — это граф, изображённый на рис. 1. Стоит заметить так¬ же, что граф Петерсена — это граф, дополнительный к графу ЦК5). Рассматриваемые нами до сих пор графы вида G = (F,£), где V — множе¬ ство вершин, а Е — множество рёбер, на¬ зывают также простыми графами, имея в виду также и другие виды графов. Теперь настало время упомянуть и эти другие виды. Ориентированные графы. Помимо простых графов часто рассматриваются так называе¬ мые ориентированные графы или орграфы. Орграф — это пара (К,Л), где V , как обычно, — множество вершин (verti¬ ces), а А — множество упорядоченных пар вершин, или ориентированных рёбер, которые называют также дугами (arcs,). Ориентированный граф мож¬ но рассматривать как иррефлексивное бинарное отношение на конечном множестве, т. е. в отличие от обычных графов (неориентированных) опуска¬ ется условие симметричности. Если a = (vi,v2) е А , то вершину V] называют началом, a v2 — кон¬ цом дуги а. Дуги отмечают стрелками, идущими от начала к концу. На рис. 16 представлен ориентированный граф и задающая его матрица. V25 Рис. 15 0 1 1 0 0 1 1 0 0 15 Число дуг, входящих в вершину, называется полустепенью захода вер¬ шины, а число дуг, выходящих из вершины, — полустепенью исхода вер- 5.1. Определения и примеры
Глава 3. Графы 16 шины. Пусть v 6 V . Через F(v) буцем обозначать множество таких вершин v', что (v,v') е А . Через Г 1 (v) обозначим множество вершин у" таких, что (у", у) € А . Таким образом, полустепени захода и исхода вершины v равны, соответственно (v)j и |r(v)j. Как и в обычных графах чередующаяся последовательность вершин и дуг Vg,ai,Vi,a2>—>vjt-i>a£>V/t > гДе ai = (v/—i>v/)» называется маршрутом, а если У0 = vk , то замкнутым маршрутом. Однако далее имеются некото¬ рые различия в терминологии. Маршрут называется путём, если все его вершины различны. Замкнутый маршрут, в котором первая и последняя вершины являются единственной парой совпадающих вершин, называется контуром. Если существует путь из вершины и в вершину v, то говорят, В табл. 1 приведён словарик соответст¬ вий значений терминов в графе и орграфе. Взвешенные графы. Если граф является мо¬ делью транспортной сети, в которой верши¬ нам соответствуют населённые пункты, а рёбрам — соединяющие их дороги, то впол¬ не естественно каждому ребру приписать число, выражающее расстояние между на¬ селёнными пунктами. Вообще, если рёбрам графа или дугам орграфа приписаны некото¬ рые действительные числа, как правило положительные, то их называют весами, а граф — взвешенным графом. Взвешенный граф или орграф.зада¬ ётся матрицей, подобной матрице смежности, в которой вместо соответст¬ вующих рёбрам или дугам единиц стоят веса, а нули в зависимости от зада¬ чи остаются нулями или заменяются значком «со» (бесконечность). На рис. 17 приведён пример взвешенного орграфа с соответствующей матри¬ цей, полученного из орграфа на рис. 16. что у достижима из и . Граф Орграф маршрут маршрут ребро дуга цепь путь цикл контур сте ень вершины полустепень захода (исхода) Таблица 1 5 0 5 2 оо 0 6 3 ОО 0 Рис. 17 Взвешенные графы и орграфы часто встречаются в оптимизационных задачах.
Обобщения графов. В дальнейшем, в основном, будут рассматриваться 17 только графы и орграфы, а также их взвешенные аналоги. Имеется, одна¬ ко, ряд обобщений этих понятий, которые стоит отметить. Если в графе допускаются кратные рёбра (множество рёбер является мультимножест¬ вом), то граф называется мультиграфом. А если к тому же допускаются и рёбра вида {v, v}, называемые петлями, обоими концами которых является одна и та же вершина, то граф называется псевдографом. На рис. 18 пока¬ заны примеры мультиграфа (а) и псевдографа (б). Аналогичные обобщения имеют место и для орграфа. Рис. 18 Наконец, если в качестве рёбер могут выступать подмножества, со¬ держащие более двух вершин, то подобные объекты называют гипергра¬ фами. Гиперграф, таким образом, — это конечное множество с заданной на нём системой подмножеств. Они уже весьма далеки от тех графов, ко¬ торыми будет ограничено наше внимание в данной главе. Вернёмся теперь снова к уже привычным простым графам, которые, по-прежнему, будем называть просто графами. Так как число и -вершин¬ ных графов даже при относительно малых значениях п огромно и всё множество труднообозримо, то в нём выделяют некоторые классы графов и отдельно изучают присущие им общие свойства. К важнейшим таким клас¬ сам, безусловно, относятся, деревья и двудольные графы, которые и станут предметом наших рассмотрений в двух последующих разделах. Вопросы для самопроверки 1. Степенью однородного графа называется а) число его вершин; б) число его рёбер; в) степень любой его вершины. 2. Сколько рёбер имеет 5-вершинный граф, степени вершин которого равны 2, 2, 3, 3,4? а) 6; б) 7; в) 8. 3.1. Определения и примеры
Глава 3. Графы 18 3. Граф G2 является по отношению к графу G, а) подграфом; б) остовным подграфом; в) индуцированным подграфом. 4. Чему равны обхват, периметр, радиус и диаметр графа Петерсона? а) 5, 5, 3,3; б) 5, 9, 2,3; в) 5, 9, 2, 2. Ответы: 1 — в, 2 — б, 3 — а, 4 — в. 3.2. Деревья Это простой, но важный класс графов, имеющий многочисленные приложения. Его можно определить следующим образом. Деревом называется связный граф без циклов. Единственным трёхвершинным деревом является граф Р$. На рис. 1 (а, б, в) приведены все различные деревья соответственно с 4, 5, и 6 вер¬ шинами. Читателю предлагается проверить путём некоторого перебора, что любое произвольно нарисованное четырёх-, пяти- или шестивершин¬ ное дерево всегда может быть путём отождествления вершин сведено к одному из деревьев, представленных на этом рисунке. X X б) _л Рис.1
Все изображённые на рис. 1 деревья имеют по 5 рёбер, т. е. на едини- 19 цу меньше числа вершин. Это является общим свойством деревьев, число рёбер в них всегда на единицу меньше числа вершин. Это будет показано чуть позже. Можно также сказать, что дерево — это связный граф с мини¬ мально возможным числом рёбер. Вообще, любой граф без циклов назы¬ вается ациклическим или лесом. Компонентами леса являются, таким об¬ разом, деревья. Сформулируем теперь и докажем ряд относящихся к деревьям утвер¬ ждений, устанавливающих важнейшие свойства этого класса графов. Утверждение 1. В любом дереве с не менее чем двумя вершинами имеется не менее двух висячих вершин. Доказательство. Возьмём произвольную вершину дерева v. Вы¬ берем одно из инцидентных ей рёбер и перейдём по нему в смежную вер¬ шину. Если она не является висячей, то также выберем инцидентное ей другое ребро и перейдём в следующую вершину и т. д. В данном процессе вершины не могут повторяться, так как в графе отсутствуют циклы. По¬ этому ввиду конечности множества вершин процесс должен на некотором шаге оборваться, а оборваться он может лишь в висячей вершине. Это да¬ ёт одну висячую вершину. Если исходная вершина v не была висячей, то можно выбрать другое инцидентное ей ребро и, повторив процесс, полу¬ чит другую висячую вершину. □ Утверждение 2. В дереве G = (V,E) имеет место равенст¬ во |F|-|£|=l, т. е. число вершин всегда на единицу пре¬ вышает число рёбер. Доказательство. Доказательство проведём индукцией по числу вершин. Двухвершинное дерево имеет одно ребро, и для него утвержде¬ ние справедливо. Пусть оно справедливо для всех к -вершинных деревьев. Докажем его справедливость для деревьев, имеющих к +1 вершину. Пусть G является (к + 1) -вершинным деревом. Согласно утверждению I в нём найдётся висячая вершина. Удалив её вместе с инцидентным ей реб¬ ром, получим дерево с к вершинами, для которого утверждение по пред¬ положению индукции справедливо. Поэтому оно справедливо и для ис¬ ходного дерева. □ Утверждение 3. Если граф G = {V,E) является лесом с к компонентами, то \V\-\E\ = k. Доказательство. Следует из утверждения 2. □ Утверждение 4. Для любых двух различных вершин де¬ рева существует единственная связывающая их простая цепь. 3.2. Деревья
Глава 5. Графы 20 Доказательство. Существование связывающей простой цепи сле¬ дует из определения дерева. Если бы существовала ещё одна связывающая их цепь, то в графе существовал бы и цикл, что противоречит определе¬ нию дерева. □ I Утверждение 5. Удаление любого ребра в дереве приво¬ дит к лесу с двумя компонентами. Дока зательство. Следует из утверждения 4. □ [Утверждение 6. Добавление в дереве одного ребра при¬ водит к графу, имеющему ровно один простой цикл. Доказательство. Пусть добавлено ребро {m,v} . Так как в исход¬ ном графе вершины и и v соединяла единственная простая цепь, то с до¬ бавленным ребром она даст единственный простой цикл. □ I Утверждение 7. В любом связном графе существует ос- товное дерево. Доказательство. Если граф не является деревом, то в нём сущест¬ вует цикл. Удалив в этом цикле произвольное ребро, снова получим связный граф. Продолжая процесс до тех пор, пока в графе не останется ни одного цикла, получим остовное дерево. Этот момент согласно утверждению 2 на¬ ступит, когда число рёбер будет на единицу меньшим числа вершин. □ Заметим, что заключение утверждения 4 является не только необходимым, но и дос¬ таточным, для того, чтобы граф был дере¬ вом, и поэтому может быть принято за оп¬ ределение дерева. То же самое относится и к заключению утверждения 2, дополненно¬ му условием связности графа. Корневые деревья. Одна из вершин в дереве может быть выделена. Такую вершину назы¬ вают корневой, а дерево — корневым деревом. При этом возникает взаимно однозначное соответствие между вершинами дерева и простыми цепями, со¬ единяющими их с корнем. Поэтому, считая рёбра ориентированными в на¬ правлении от корня, корневое дерево можно рассматривать и как орграф. Корневые деревья принято рисовать так, чтобы корень был вверху (рис. 2). Такой рисунок напоминает диаграмму Хассе частично упорядоченно¬ го множества, в котором корень является наибольшим элементом. И дей¬ ствительно, корневые деревья часто используются для задания иерархиче¬ ских структур. Различные иерархические структуры, с которыми часто приходится сталкиваться в жизни, описываются подобными корневыми деревьями, в которых за корень принимается старший из руководителей. Весьма важную роль такие структуры играют в армии. На рис. 3 показана принятая в российских вооружённых силах полковая иерархия.
Рис. 3 Командир полка в данном случае является корнем дерева, а команди¬ ры взводов — концевыми вершинами, которые в деревьях называют также листьями. Длина пути от корня дерева до некоторой его вершины называ¬ ется уровнем этой вершины, а максимальная из длин путей от корня дере¬ ва до его листьев — высотой дерева. Высота дерева на рис. 2 равна двум, а на рис. 3 — трём. Другим известным примером деревьев являются генеалогические де¬ ревья, которые раньше составляли гордость каждого аристократического рода, а теперь изучаются историками. За корень здесь принимают самого отдалённого известного предка. Однако в данном случае требуется опре¬ делённая осторожность, так как между дальними родственниками воз¬ можны браки, которые приводят к тому, что генеалогическое дерево пере¬ стаёт быть деревом в математическом смысле. Из генеалогических деревьев во многом заимствована и современная терминология корневых деревьев. Все вершины, находящиеся на пути от корня до вершины v, называются предками вершины v. А все вершины и , для которых вершина v является предком, называются потомками верши¬ ны v. При этом непосредственный предок называется родителем, а непо¬ средственный потомок — ребёнком. Корень является, таким образом, един¬ ственной вершиной, не имеющей предков, а листья — это вершины, не имеющие потомков. Сами же вершины в случае корневого дерева часто на¬ зывают не вершинами, а узлами (nodes), и под степенью узла подразумева¬ ют количество его детей. При этом узлы, имеющие детей, называют внут¬ ренними узлами. Используемая при описании корневых деревьев специфическая тер¬ минология оправдывается важностью той роли, которую они играют в ин¬ формационно-поисковых системах и теории алгоритмов. В алгоритмиче¬ ских задачах поиска и оптимизации на конечных множествах исследуемое множество часто разбивается на две части, затем каждая из частей в свою очередь разбивается на две части и т. д. Этот процесс может быть описан 3.2. Деревья
Глава 3. Графы 22 бинарным (двоичным) деревам. Такие корневые деревья характеризуются тем, что степень каждого узла не более двух, другими словами, каждый ро¬ дитель имеет не более двух детей, причём каждый ребёнок, независимо от их числа, идентифицируется либо как левый, либо как правый. Чтобы ак¬ центировать внимание на сказанном, заметим, что бинарные деревья, изо¬ бражённых на рис. 4а и 46, различны, так как лист 6 на рис. 4а является ле¬ вым ребёнком, а на рис. 46 — правым. Рис. 4 В качестве примера возникновения бинарного дерева рассмотрим пере¬ числение подмножеств 3-элементного множества А = {а1; а2, а$}. Свяжем с корнем дерева все 8 имеющихся у множества А подмножеств и разобьём их на два класса — подмножества, содержащие элемент а{, и подмножества, не содержащие этого элемента. Тем самым корень становится родителем двух детей: левый ребёнок задаёт семейство подмножеств, содержащих щ , а пра¬ вый — не содержащих а\. Производя аналогичным образом ветвления по элементам а2 и а3, получаем бинарное дерево, изображённое на рис. 5. Его листьями являются все 8 подмножеств исходного множества. Цифрами в вершинах узлов обозначен порядок обхода узлов дерева, наиболее часто применяемый в подобного рода задачах. Сначала идут по всем левым ветвям до самого низа. Затем поднимаются к узлу, пройден-
ному последним, и посещают его правого ребёнка. Затем поднимаются к 23 предыдущему узлу и т. д. Если в бинарном дереве степень каждого не являющегося листом узла равна двум, то оно называется полным {full), а если, к тому же, все листья имеют одинаковый уровень, как на рис. 5, то — совершенным {complete). Вопросы для самопроверки 1. Дерево с п вершинами имеет а) «рёбер; б) (и + 1) рёбер; в) {п - 1) рёбер. 2. Лес с п вершинами и к компонентами связности имеет а) (л - 1) рёбер; б) {п - к) рёбер; в) к рёбер. Ответы: 1 — в, 2 — б. 3.3. Двудольные графы Это ещё один важный и часто встречающийся в приложениях класс графов. Он определяется следующим образом. Граф G = (V,E) называется двудольным, если множество его вершин V можно разбить на 2 непересекающихся подмножества V\ и Г2 так, что в каждом ребре {v],v2}e£ одна вершина будет принадлежать Fj, а другая — Г2 . Граф, представленный на рис. 1.1, является двудольным, здесь Fj = = {V], v2, v3}, V2 = {v4, v5}. Если в графе присутствуют все возможные для двудольного графа рёбра, т. е. каждая вершина из Fj соединена рёбрами со всеми вершинами из Г2 , то такой граф называется полным двудольным. Он обозначается Ктп, где | Fj |= т , | F2 |= п, и имеет тхп рёбер. На рис. 1 представлен граф К$ 4. Так как в двудольном графе имеются лишь рёбра, связывающие вершины из разных долей, то он может быть задан бинарной матрицей размерности тхи, строки которой соответствуют вершинам одной до¬ ли, а столбцы — другой. Такое представление более компактно по сравнению со стандартным заданием с помощью матрицы смежности, имеющей размерность {т + п)х{т + п). Так, граф на рис. 1.1 может быть задан матрицей 1 0 1 1 1 1 3.3. Двудольные графы
Глава 5. Графы 24 Одна из причин важности двудольных графов заключается в том, что с их помощью может быть задана система подмножеств конечного множест¬ ва. При этом вершины одной доли — это элементы конечного множества, другой — подмножества, а ребро означает принадлежность элемента под¬ множеству. Фактически, в доказательстве утверждения 1.1 уже участвовал подобный двудольный граф, одну долю которого составляли вершины рас¬ сматриваемого в утверждении графа, а другую — его рёбра. Само же дока¬ зательство состояло в подсчёте числа рёбер этого двудольного графа двумя способами — со стороны одной и со стороны другой его доли. Этот приём является стандартным методом дискретной математики. Ранее он исполь¬ зовался при доказательстве леммы Бернсайда в разделе 1.6. Д. Кёнигом была найдена следующая характеризация двудольных графов. Теорема 1 (Кёниг, 1936). Для того, чтобы граф был дву¬ дольным, необходимо и достаточно, чтобы в нём не было циклов нечётной длины. Доказательство. Необходимость. Пусть G = (V,E') —двудоль¬ ный граф. Если в нём имеется цикл, то при движении по нему за каждым ребром, проходимым от Vj к У2, обязательно следует ребро, проходимое от V2 к К,, т. е. рёбра чередуются и при возвращении в исходную верши¬ ну число пройденных рёбер будет чётным. Достаточность. Пусть в G нет циклов нечётной длины. Будем считать граф связным, так как в противном случае разбиение на V\ и V2 выполняется отдельно для каждой компоненты. Выберем произвольную вершину v е V и отнесём её и все вершины, находящиеся от неё на чётном расстоянии, к Vi, а все вершины, находящиеся от неё на нечётном расстоянии, — к V2 . Пока¬ жем, что внутри определённых таким образом V\ и V2 не может быть рёбер. Если бы имелось ребро, между двумя вершинами, находящимися на чётном расстоянии от v, то это приводило бы к существованию цикла нечётной длины, что невозможно. В силу тех же причин не может быть и ребра между двумя вершинами, находящимися на нечётном расстоянии от v. □ В деревьях нет циклов нечётной длины, потому что там вообще нет ни¬ каких циклов. Поэтому в качестве следствия из утверждения Ю получаем Следствие 1. Каждое дерево является двудольным гра¬ фом. Класс деревьев является, таким образом, подклассом класса двудоль¬ ных графов. На рис. 2 слева представлено помеченное дерево в обычном для деревьев виде, а справа оно же, но в виде, подчёркивающем его дву- дольность.
25 vi V2 V6 V3 V4 *1 V5 Рис. 2 Вопросы для самопроверки 1. Какие из графов G\, G2 являются двудольными? a) G|; б) G2 ; с) оба графа. 2. В двудольном графе мощность одной доли т, другой — п . Все вер¬ шины первой доли имеют одинаковую степень d. Какова степень вершин второй доли, если она также одинакова у всех её вершин? a) d ; б) mn/d; с) dm/n. Ответы: 1 — с, 2 — с. 3.4. Графы абстрактные и помеченные. Автоморфизмы На некоторых из приведённых выше рисунков вершины графов поме¬ чались определёнными символами, например, vj, v2>..., на других верши¬ ны были просто точками без меток. Граф, вершины которого снабжены какими-либо метками, позволяющими различать их между собой, называ¬ ется помеченным. Для п -вершинного графа такими метками могут быть просто числа 1,2,, п . Проверить равенство между собой двух помеченных графов не пред¬ ставляет труда. Они должны иметь одинаковое число вершин, помеченных метками из одного и того же множества, и их множества рёбер должны г*2 совпадать. На множестве из п помеченных вершин можно задать 2 " различных помеченных графов, беря всевозможные подмножества из потенциально возможных рёбер. 3.4. Графы абстрактные и помеченные. Автоморфизмы
Глава 5. Графы 26 Сложнее обстоит вопрос о числе п -вершинных непомеченных графов. На рис. 1 изображены два 6-вершинных графа, внешне кажущиеся различ¬ ными. Более тщательный анализ, однако, показывает, что это по-разному нарисованный один и тот же граф 3 . Рис. 1 Если два графа имеют одинаковое число вершин и между их вершинами может быть установлено взаимно одно¬ значное соответствие, сохраняющее отношение смежно¬ сти, то графы называются изоморфными. Для того, чтобы установить это, дадим формальное определение. Изоморфизм и означает одинаковость двух непомеченных или, как говорят, абстрактных графов. Можно считать, что абстрактный граф, ко¬ торый обычно называют просто графом, получается из помеченного графа опусканием пометок. Абстрактный граф можно определить также как класс всех попарно изоморфных между собой помеченных графов. Изоморфизм между графами на рис. 1 показан с помощью цифровых меток на рис. 2. 13 5 12 3 Рис. 2 В разделе 3.2 говорилось, что на рис. 3.2.1 представлены все деревья с 6 вершинами. Теперь можно уточнить, что на нём представлены все по¬ парно неизоморфные деревья с 6 вершинами. Сколько помеченных графов можно получить путём расстановки пометок из заданного абстрактного графа? Это зависит от степени его симметрии. Для графов Кп и 0„ все п\ возможных расстановок пометок приводят к одному и тому же поме¬ ченному графу, так как любая подстановка на множестве их вершин со¬ храняет отношение смежности. Эти графы обладают наибольшей степе¬ нью симметрии. Наоборот, для графа на рис. 3 группа симметрий состоит
лишь из тождественной подстановки, и путём расстановки пометок из не- 27 го можно получить 6! помеченных графов. Подстановка на множестве вершин графа, сохраняющая отношение смежности между вершинами, называется его автоморфизмом. На рис. 4 представлено дерево, обладающее тем же свойством. Множество автоморфизмов графа G образует группу, которая обознача¬ ется AutG . Если в помеченном графе произвести перестановку вершин, яв¬ ляющуюся автоморфизмом, то получится тот же самый помеченный граф с такой же матрицей смежности. Поэтому число различных помеченных гра¬ фов равно числу классов смежности симметрической группы по подгруппе автоморфизмов, т. е. из одного п -вершинного абстрактного графа G можно получить п !/| Aut G | различных помеченных графов. Отметим этот результат. Утверждение 1. Число помеченных графов, которые можно получить из данного абстрактного и-вершинного графа G, помечая его вершины элементами множества {1,2,равно n\/\AutG\, где \AutG\ — порядок группы автоморфизмов графа G (число его симметрий). Если вернуться к графу, изображенному на рис. 1 и рис. 2, то для ис¬ следования группы его автоморфизмов можно заметить, что очевидными автоморфизмами являются перестановки вершин внутри каждой из долей и перестановка долей между собой. Так как эти автоморфизмы могут про¬ извольно комбинироваться между собой, то полное число автоморфизмов равно 31-3I-2! = 72. Поэтому из данного абстрактного графа может быть получено 61/72 = 10 помеченных графов. Этот результат может быть проверен следующим образом. Число по¬ меченных графов равно числу 3-элементных подмножеств множества {1,2, ... ,6}, выделяемых для пометок одного из подмножеств вершин графа, де¬ лённому на два, так как дополнение каждого 3-элементного подмножества приводит к тому же самому помеченному графу. Это также даёт jC6 = 10. Рис. 3 Рис. 4 Вершины, переводимые друг в друга автоморфиз¬ мами графа, называются подобными. Подобие является отношением эквивалентности, разбивающим множест¬ во вершин на классы эквивалентности — орбиты. Рис. 5 5.4. Графы абстрактные и помеченные. Автоморфизмы
Глава 5. Графы 28 Вершины графов Кп,0п, Кпп составляют одну орбиту, вершины графа на рис. 5 разбиваются на четыре орбиты: {1}, {2}, {3}, {4,5}, а вершины графов на рис. 3 и рис. 4 — соответственно на шесть и семь одновершинных орбит. Что можно сказать о группе автоморфизмов типичного п -вершинного графа? Заметим, что все графы с не более чем пятью вершинами имеют не¬ тривиальные автоморфизмы, а представленный на рис. 3 граф — это един¬ ственный шестивершинный граф, не имеющий других автоморфизмов, кро¬ ме тождественного. Представленное на рис. 4 семивершинное дерево явля¬ ется минимальным по числу вершин деревом, не имеющим нетривиальных автоморфизмов. Тем не менее, оказывается, что именно отсутствие авто¬ морфизмов оказывается типичным случаем и почти все графы не имеют нетривиальных автоморфизмов. Другими словами, отношение числа п -вер¬ шинных графов, не имеющих нетривиальных автоморфизмов, к числу всех п -вершинных графов стремится к единице с ростом п . В разделе 12 будет показано, что число абстрактных п -вершинных с2 / графов асимптотически равно 2 " /п \. Отсюда следует, что почти все гра¬ фы не имеют других автоморфизмов, кроме тождественного. Гипотеза Улама. Здесь будет уместным познакомиться с одной из самых зна¬ менитых открытых проблем теории графов. Она была поставлена польским математиком Станиславом Уламом (1909-1984) в числе других нерешённых задач из различных разделов математики и с тех пор остаётся одной из самых интригующей проблем в теории графов. Примечательно, что сам С. Улам ни¬ когда не занимался теорией графов, но, обладая широким научным кругозо¬ ром, увидел эту проблему в далёкой для себя области математики. С 1936 года С. Улам проживал в США. Он был нечужд физики и с 1944 года с перерывами был сотрудником Лос-Аламосской научной лабо¬ ратории, где в рамках «Манхеттенского проекта» принимал активное уча¬ стие в создании ядерного оружия. Здесь в 1960 году он и опубликовал свою книгу (Улам С. Нерешённые математические задачи. — М.: Наука, 1964.). Данная проблема стала самой знаменитой среди поставленных им задач. Рассмотрим помеченный граф. Удаляя по очереди каждую из его вершин, получим множество из п помеченных (л -1) -вершинных графов. Восстановить по этому множеству исходный граф при п > 2 не представ¬ ляет труда, так как вопрос о смежности двух вершин в исходном графе легко решается. А теперь возьмём абстрактный п -вершинный граф. Уда¬ ляя из него вершины, снова получим его разложение на п графов, но те¬ перь это будет мультимножество абстрактных графов, так как один и тот же (п -1) -вершинный абстрактный граф может возникнуть несколько раз. Восстанавливается ли однозначно исходный граф по этому мультимноже¬ ству? Другими словами, не могут ли два различных абстрактных графа дать в результате такого разложения одинаковые мультимножества, т. е. является ли получаемое в результате разборки отображение графа в мультимноже-
ство подграфов инъективным? В этом и состоит проблема, поставленная Уламом. В качестве примера рассмотрим граф на рис. 6. Для удобства рассуждений вершины здесь помечены, но сам граф мыслится как абстрактный. Мультимножество, полученное в результате его разло¬ жения, имеет вид, представленный на рис. 7, и может быть записано как {2Р3, К] и/С2, ^3} • Удаление вершин 1 и 2 привело к одина¬ ковым подграфам /3, и это неслучайно. Эти вершины являются подобными, так как переставляющая их транспозиция есть автоморфизм графа. Рис. 7 Ясно, что удаление подобных вершин приводит к одинаковым под¬ графам. Обратное, однако, неверно. Рассмотрим граф на рис. 8. 7 8 2 29 1 2 3 4 5 6 Рис. 8 Вершины 3 и 5 не являются, очевидно, подобными, но их удаление, как легко проверить, приводит к одному и тому же подграфу. Это свидетельст¬ вует о том, что гипотеза Улама, в предположении её справедливости, явля¬ ется весьма тонким результатом. Однозначность восстановления графа по получаемому в результате его разборки мультимножеству подграфов доказана для отдельных классов графов, в частности, для деревьев, а также проверена с помощью компью¬ тера для произвольных графов с небольшим числом вершин. В общем же виде проблема в течение уже полувека остаётся открытой. Вопросы для самопроверки 1. Сколько существует абстрактных 4-вершинных деревьев? а) 2; 6)3; в) 4. 2. Сколько различных графов представлено на рисунке? Gt G2 G3 в) 3. а) 1; 6)2; 3.4. Графы абстрактные и помеченные. Автоморфизмы
Глава 5. Грофы 30 3. Сколько различных помеченных графов можно получить из графа G, помечая его вершины элементами множества {1,2,3,4}? а) 6; б) 8; в) 10. Ответы: 1 — б, 2 — а, 3 — а. 3.5. Эйлеровы графы Хотя возраст теории графов как самостоятельной дисциплины насчи¬ тывает немногим более полувека, ряд связанных с ней задач имеет значи¬ тельно более солидную историю. Возникшие как развлекательные голово- ломки в XVIII и XIX веках, теперь они могут считаться родоначальниками важнейших направлений исследований в теории графов. Зарождение теории графов принято связывать с решением в 1736 году Эйлером задачи о кёнигсбергских мостах. Задача, занимавшая жителей прусского города Кёнигсберга (ныне Калининград Российской Федерации), состояла в следующем. По территории города протекала река Преголя и на ней был остров, около которого река разделялась на два рукава. В этом месте во времена Эйлера имелось семь мостов, расположенных как указано на рис. 1. Любивших романтические прогулки жителей Кёнигсберга вол¬ новал вопрос, который Эйлер формулирует следующим образом: И относительно этих мостов такой имеется вопрос: можно ли проложить такой путь, чтобы по каждому мосту единожды пройти, и ни разу более. Мне было сказано, что одни отрицали возможность этого, а иные сомневались, од¬ нако никто не утверждал, что может это произвести. Из этого я сформулировал следующую общую проблему в целом: каковы бы ни были очертания реки и разделения её на рукава, и каково бы ни было число мостов её, необходимо определить, можно ли по каждому мосту пройти по единожды, или же нет. Леонард Эйлер «Решение задачи до геометрии положений относящейся» (1736) С Рис.1
Математическая модель данной задачи в виде мультиграфа (рис. 2), в котором вер¬ шины соответствуют участкам суши, а рёб¬ ра — мостам, показана на рис. 2. Эйлер не только решил задачу о кёниг¬ сбергских мостах, но и получил эффек¬ тивно проверяемый общий критерий, по¬ зволяющий отвечать на вопросы подобного рода. Эйлер решил задачу о кёнигсбергских мостах, указав эффективный критерий для существования в мультиграфе таких цепей и циклов. С Рис. 2 31 Цепь в графе (мультиграфе) называется эйлеровой, если она содержит по одному разу все рёбра графа (мульти¬ графа). Цикл в графе (мультиграфе) называется эйлеровым, если он содержит по одному разу все рёбра графа (мультигра¬ фа). Граф (мультиграф) называется эйлеровым, если в нём есть эйлеров цикл. Теорема 1 (Эйлер, 1736). Связный граф (мультиграф) является эйлеровым тогда и только тогда, когда все его вершины имеют чётную степень. Доказательство. Если в графе есть эйлеров цикл, то проходя по нему, входим в каждую вершину по одному ребру, а выходим по другому, поэтому каждой вершине инцидентно чётное число рёбер. Пусть теперь в графе степени всех вершин чётные. Выйдя из произ¬ вольной вершины v, будем двигаться по рёбрам графа, каждый раз вы¬ бирая ещё не использованное ребро. Данный маршрут заканчивается, когда при попадании в некоторую вершину неиспользованных рёбер для выхода из неё не остаётся. Так как степени всех вершин чётные, то закончиться данный маршрут может только в исходной вершине v, т. е. маршрут явля¬ ется некоторым циклом С. Если полученный цикл содержит не все рёбра графа, то, удалив его рёбра из графа, получим не обязательно связный граф, все вершины кото¬ рого также имеют чётную степень. В силу связности исходного графа ка¬ ждая из полученных компонент имеет с циклом С общую вершину. Пусть для некоторой компоненты это вершина и . Выберем аналогично циклу С в этой компоненте цикл С, начинающийся и заканчивающийся в верши¬ не и . Теперь нарастим исходный цикл С, вставив цикл С внутрь цикла С следующим образом. Идём из вершины v по рёбрам цикла С до вер¬ шины и , затем проходим цикл С и из вершины и продолжаем движение 5.5. Эйлеровы графы
Глава 5. Графы 32 по рёбрам цикла С до вершины v. Повторяем операцию наращения до получения эйлерова цикла. □ Все вершины графа на рис. 2 имеют нечётную степень, это и доказы¬ вает невозможность прогулки, проходящей по одному разу через каждый мост. Замечательно, что этот результат был получен в пору бурного разви¬ тия дифференциального и интегрального исчисления — тех областей ма¬ тематики, вклад в которые самого Эйлера трудно переоценить. Это, одна¬ ко, не помешало великому математику интересоваться задачами, требую¬ щими совершенно иных подходов и методов. До конца восемнадцатого века эта работа Эйлера, развивавшая идеи Лейбница относительно гео¬ метрии положений, оставалась единственной работой в той области мате¬ матики, которую ныне называют теорией графов. Поэтому Эйлера с пол¬ ным правом считают не только создателем вариационного исчисления, но и основателем теории графов. С эйлеровыми графами тесно связана задачи о возможности рисования фигур типа графов, не отрывая карандаша от бумаги и не проходя вторично по уже проведённым линиям. Вот типичные фигуры подобного рода (рис. 3). Рис. 3 Возможность нарисовать фигуру определяется, таким образом, суще¬ ствованием в соответствующем графе эйлерова цикла или эйлеровой цепи. Критерий существования эйлерова цикла даётся теоремой 1, в качестве несложного следствия из неё получается и критерий существования эйле¬ ровой цепи. Следствие 1. Для того чтобы граф (мультиграф) содер¬ жал эйлерову цепь, необходимо и достаточно, чтобы в нём или все вершины имели чётную степень (эйлеров цикл), или было ровно две вершины нечётной степени. Доказательство. По теореме I эйлеров цикл существует в том и только в том случае, если все вершины имеют чётную степень. Если в графе имеется ровно две вершины нечётной степени, то, соединив их реб¬ ром, получим эйлеров граф. Взяв в нём эйлеров цикл и удалив из него до¬ бавленное ребро, получим эйлерову цепь. Обратно, если в графе имеется
эйлерова цепь, то ровно две вершины в нём, а именно, первая и последняя 33 имеют нечётную степень. □ Считая все точки пересечения линий на рис. 3 вершинами соответст- ^ вующих графов, видим, что фигуру на рис. 3(a) невозможно нарисовать тре- | буемым способом, так как в соответствующем графе одна вершина чётной § степени и четыре — нечётной. Фигура на рис. 3(6), напротив, может быть | нарисована, так как здесь имеются ровно две вершины нечётной степени. * Ч> Вопросы для самопроверки 1. Какое минимальное число рёбер нужно удалить в графе К5 7, чтобы он стал эйлеровым? а) 5; б) 6; в) 7. 2. Какие из приведённых ниже фигур можно вычертить, не отрывая ка¬ рандаша от бумаги? 4 1 2 а) 1; 6)1 и 2; в) 1 и 3. Ответы: 1 — в, 2 — б. 3.6. Гамильтоновы графы Мы переходим к рассмотрению другого свойства графов, интересного с теоретической точки зрения и важного в прикладном отношении. Цикл, проходящий по одному разу через каждую верши¬ ну графа (простой остовный цикл), называется гамиль¬ тоновым циклом. Цепь, проходящая по одному разу через каждую вершину, называется гамильтоновой цепью. Граф, содержащий гамильтонов цикл, называется гамиль¬ тоновым графом. В орграфе говорят соответственно о гамильтоновом контуре и гамильтоновом пути. Вершины гамильтонова графа можно представлять себе точками на окружности, некоторые из которых соединены хордами — рёбрами, не вошедшими в гамильтонов цикл (рис. 1).
Глава 3. Графы Известна следующая изящная интерпретация за¬ дачи о гамильтоновом цикле. Обед накрыт на круглом столе. Среди приглашённых некоторые находятся ме¬ жду собой в дружеских отношениях. Требуется расса¬ дить участников обеда так, чтобы соседями каждого были его друзья. Задачи построения гамильтоновых цепей и цик¬ лов возникают на практике. Автобусный маршрут, ве¬ дущий из населённого пункта А в пункт В и заходя¬ щий в другие населённые пункты, желательно проло¬ жить в виде гамильтоновой цепи, чтобы он не заходил дважды в один и тот же пункт по дороге из А в В. Если между системой населённых пунк¬ тов курсируют 2 автобуса, то при организации движения часто находят гамильтонов цикл и один автобус пускают по этому циклу в одном на¬ правлении, а другой — в другом. Если некоторое оборудование использу¬ ется для периодически повторяемых операций, то его функционирование естественно описать орграфом, вершины которого соответствуют опера¬ циям, а дуги — возможности перехода от одной операции к другой. При этом порядок выполнения операций задаётся гамильтоновым контуром. Все 5 графов правильных многогранников являются гамильтоновыми. Их гамильтоновы циклы показаны на рис. 2 (жирно выделены входящие в цикл рёбра). NZZ7I k_ZN С последним из этих графов — графом додекаэдра и связано возник¬ новение термина «гамильтонов». 150 лет назад знаменитый ирландский
математик и механик Уильям Гамильтон (1805-1865) в часы досуга при- 35 думал развлекательную игру «Кругосветное путешествие». В 20 вершинах додекаэдра просверливались отверстия, в которые вставлялись колышки, изображавшие крупнейшие города мира. Используя верёвку, требовалось обойти по одному разу все вершины по рёбрам додекаэдра и вернуться в исходный пункт. Хотя эта игра и не имела, по-видимому, коммерческого успеха, именно она дала название одному из наиболее увлекательных на¬ правлений в теории графов. Стоит, однако, отметить, что ещё в XVIII веке среди математиков была известна задача Эйлера о шахматном коне, кото¬ рый, побывав по одному разу на всех клетках шахматной доски, должен был вернуться на исходную позицию. Граф Петерсена (рис. 1.6) не является гамильтоновым, но в нём суще¬ ствует гамильтонова цепь. Найти её не составляет труда. Небольшим пе¬ ребором можно подтвердить и отсутствие гамильтонова цикла. Несмотря на внешнее сходство задач об эйлеровом и гамильтоновом циклах, эффективно проверяемого критерия гамильтоновости, подобного критерию эйлеровости (теорема 3.1), не известно. Более того, есть основа¬ ния полагать, что такого критерия и не существует, и исследование гамиль¬ тоновости всегда будет трудной задачей. Отметим также, что если для до¬ казательства гамильтоновости конкретного графа достаточно предъявить гамильтонов цикл, то доказательство негамильтоновости может потребо¬ вать исчерпывающего поиска. В ряде случаев, однако, при решении этих задач могут помочь соображения симметрии, а также ряд специальных приёмов (см. задачи 3.15, 3.16). К вопросу о сложности исследования графа на гамильтоновость мы вернёмся в следующей главе, а сейчас сформули¬ руем и докажем ряд теорем о гамильтоновых графах. Полный граф Кп , все вершины которого имеют степень п -1, явля¬ ется гамильтоновым. Естественно, возникает вопрос, какое минимальное значение степеней всех вершин некоторого графа гарантирует его гамиль¬ тоновость. Теорема 1 (Оре, 1962). Если в связном я-вершинном графе G сумма степеней любых двух несмежных между собой вершин и и v не меньше л-1, то в графе сущест¬ вует гамильтонова цепь, а если сумма степеней не мень¬ ше п , то граф гамильтонов. Доказательство. Пусть для любых двух несмежных вершин и и v имеет место deg и + deg v > п -1. Возьмём в графе G произвольное реб¬ ро и будем наращивать простую цепь, присоединяя с обоих концов новые рёбра до тех пор, пока это возможно. В результате получим максимальную простую цепь Рк (рис. 3), ни к одному из концов ко- | _ торой невозможно добавить новых звеньев, так как vi vi vt-i v* W(vi)£{v2,...,vt} и //(v*)c{v,,...,v*._,}. Рис. 3 3.6. Гамильтоновы графы
Глава 3. Графы 36 Если, к = п то Рк является гамильтоновой цепью. Пусть к<п-1. Покажем, что её можно преобразовать в цикл Ск . Если вершины vj и смежны, то цепь сразу преобразуется в цикл. Если же вершины vj и не смежны, то, если в Рк существует вершина V,- (2 < i < к - 2) такая, что V;eN(vk), a v1+1 eA^vj), то цепь Рк мож- Vk но перестроить в цикл Ск , убрав реб- Р° {vi>vi+l} и Добавив рёбра {v,,vi+l} и {v,-, v*}, как показано на рис. 4. Покажем, что при выполнении условия degvi+degv*. >и-1 такая вершина V,- всегда существует. Обозначим через N'(V|) множество, по¬ лучаемое из множества N(V]) сдвигом вершин по цепи Рк на единицу влево (вершина Vj eN(vi) переходит в вершину Vj_\ еА^И))- Имеем ^V'(v|)£{v1,...,vt_I}, N(vk) с {vj,...,}, | A'’,(vl)| + |Ar(vyt)| > «-1. По¬ этому, если к < п -1, то множества N’{v\) и N(vk) пересекаются и в ка¬ честве у,- можно взять любую вершину из их пересечения. Полученный цикл Ск при к<п-1 всегда можно преобразовать в цепь Рк+1, так как ввиду связности графа G найдётся вершина и, не принадлежащая циклу и смежная с одной из вершин vj цикла. Убирая од¬ но из двух смежных в цикле с вершиной Vj рёбер и включая ребро {u,Vj}, получаем цепь Рк+\, которую при £ + 1 < п + l снова можно пере¬ строить в цикл С £+i и т. д. Этим методом получается гамильтонова цепь Рп, а при выполнении условия degM + degv>п её можно перестроить в гамильтонов цикл. □ В качестве прямого следствия теоремы 1 получаем следующий клас¬ сический результат Дирака. Следствие 1 (Дирак, 1952). Если в я-вершинном графе степени всех вершин не меньше я/2, то граф гамильтонов. Солидную историю имеют исследования на гамильтоновость п -мер¬ ного куба и его подграфов. Приведём известные результаты и сформули¬ руем открытую проблему. I Утверждение 1. При п> 2 «-мерный куб является га¬ мильтоновым. Доказательство. Двумерный куб (квадрат) сам является циклом. Последовательность его вершин ((0,0), (1,0), (1,1), (0,1)) образует гамиль¬
тонову цепь, которая добавлением ребра {(0,1), (0,0)} превращается в цикл. Эту цепь можно записать последовательностью номеров инвертируемых в процессе движения по цепи координат как (1,2,1). Для получения гамильто¬ нова цикла в трёхмерном кубе проходим данную гамильтонову цепь в под¬ кубе х3=0: ((0,0,0), (1,0,0), (1,1,0), (0,1,0)). Дойдя до вершины (0,1,0), «поднимаемся» по ребру {(0,1,0), (0,1,1)} в подкуб х3 = 1 ив нём прохо¬ дим эту же цепь в обратном направлении. Получаем гамильтонову цепь ((0,0,0), (1,0,0), (1,1,0), (0,1,0), (0,1,1), (1,1,1), (1,0,1), (0,0,1)), 37 задаваемую последовательностью (1,2,1,3,1,2,1). «Опустившись» из вер¬ шины (0,0,1) по ребру {(0,0,1), (0,0,0)} в подкуб х3 = 0, достраиваем её до цикла ((0,0,0), (0,1,0), (1,1,0), (1,0,0), (1,0,1)(1,0,1), (1,1,1), (0,1,1), (0,0,1), (0,0,0)), который представлен на рис. 5. В общем виде утверждение доказывается индукцией по п. Если имеется гамильтонова цепь в п -мерном кубе, задаваемая по¬ следовательностью ап, то гамиль¬ тонову цепь в (п +1) -мерном ку¬ бе задаём последовательностью (ап, п +1, ап ) и достраиваем её до цикла. Гамильтонов цикл в л-мер- Рис. 5 ном кубе называется кодом Грея, по имени американского инженера, предложившего использовать подоб¬ ный код для кодирования аналоговых сигналов. При подобном кодирова¬ нии близким по величине значениям аналоговой величины соответствуют близкие в смысле метрики Хэмминга двоичные коды. Это не имеет места при обычном кодировании с помощью чисел в двоичной позиционной системе, где за кодовым набором (011...1) следует набор (100...0), от¬ стоящий от него в метрике Хэмминга на п единиц. Граф называется гамильтоново связным, если для любой пары его вершин существует гамильтонова цепь, концами которой они являются. Гамильтоново связный граф является гамильтоновым, для получения га- мильтонового цикла достаточно взять гамильтонову цепь между двумя смежными вершинами и добавить к ней соединяющее их ребро. Обратное может не иметь места, квадрат и куб, как несложно проверить, не являют¬ ся гамильтоново связными графами. 3.6. Гамильтоновы графы
Глава 3. Графы 38 Обозначим через G™ граф, вершинами которого являются вершины т -го слоя п -мерного куба, а ребро между двумя вершинами имеется в том и только в том случае, если расстояние Хэмминга между ними равно 2 (минимальное расстояние между вершинами слоя). Граф G™ — это одно¬ родный граф степени т(п -т) с С™ вершинами. Утверждение 2. Граф G™ при 3 и 1<ш^л-1 является гамильтоново связным. Доказательство. Доказательство проведём индукцией по раз¬ мерности куба п . При т = 1 или т = п-\ граф G” является графом Кп , I 1 что автоматически влечёт гамильтонову связность. Поэтому графы G3 и G3 являются гамильтоново связными. Пусть все графы G™ при \ < т < к -\ для некоторого к > 3 являются гамильтоново связными. Докажем гамиль¬ тонову связность всех графов Gk+ \ при 1 <т<к . Графы G{+| и Gk+1 являются гамильтоново связными, так как каж¬ дый из них является графом Кк+\. Пусть 2 < т < к -1. Покажем, что ме¬ жду двумя произвольными различными вершинами а = («],...,ак,ак+\) и ft = к+1) слоя т (^ +1)-мерного куба существует гамиль¬ тонова цепь. Эти вершины различаются по крайней мере в одной коор¬ динате. Не теряя общности можно считать, что а Рк+\. Пусть для определённости а А+1 = 0 , Рк+\ =1. Выберем произвольную вершину а' = (а{,...,ак,0) * а . В слое т к -мерного куба проведём гамильтонову цепь между вершинами (а^,...,ак) и (а{,...,ак). Это даст цепь между вершинами а = (а1,...,ак,0) и а' = (а{,...,ак,0) . Перейдём от вершины (а(,...,ак,0) к вершине (а",...,ак,\) веса т, отстоящей от (а{,...,ак,0) на расстоянии 2 и такой, что (а",...,ак) ф (Р1,...,рк). Соединив вершины (а",...,ак) и (Р],...,Рк) гамильтоновой цепью в (/я-1)-мслое ^-мерно¬ го куба, получим гамильтонову цепь между вершинами акр. □ Открытые проблемы. Не все задачи, связанные с гамильтоновыми циклами в гиперкубе, удалось решить. Среди нерешённых задач наиболее известной является следующая. В (2k +1) -мерном кубе рассмотрим подграф, индуци¬ рованный его средними слоями — i-ми (к +1) -м. Данный подграф является регулярным двудольным графом степени к +1, в каждой доле которого нахо¬ дится по с|^+| = С2* j 1 вершин. Является ли он гамильтоновым?
При к = 1 подграф, индуцированный слоями 1 и 2 трёхмерного куба, 39 является простым циклом Q (см. рис. 6). Однако, уже для следующего значения к = 2 нахождение гамильтонова цикла в двудольном кубическом "У i графе, в каждой доле которого имеется по С5 = С$ =10 вершин, пред¬ ставляет собой нетривиальную задачу (см. задачу 3.12, 3.15). Гамильтоновость подобных двудольных графов была провере¬ на для ряда других начальных зна¬ чений к, однако доказать её в об¬ щем случае не удалось, несмотря на усилия многих исследователей и значительное число работ, по¬ свящённых этой проблеме. Рассмотренные двудольные графы и граф Петерсона являются связными вершинно-транзитив¬ ными графами, т.е. такими, у ко¬ торых любая вершина может быть переведена в любую другую авто¬ морфизмом. Интересно, что поми¬ мо графа Петерсена известно ещё всего 3 связных вершинно-транзи¬ тивных графа, не являющихся га¬ мильтоновыми, но все они, как и граф Петерсена, содержат гамильтонову цепь. С 1969 года остаётся открытым поставленный Л.Ловасом вопрос, со¬ держит ли любой связный вершинно-транзитивный граф гамильтонову цепь. Орграфы. Обратимся теперь к орграфам и приведём один относящийся к ним классический результат. Турниром называется орграф, для каждой пары {и, v) вершин которо¬ го существует ровно одна из двух дуг (h,v) или (v,m) . Турнир можно рас¬ сматривать как полный граф, каждому ребру которого придана некоторая ориентация. Термин «турнир» объясняется тем, что такой орграф может рассматриваться как отражение результатов однокругового турнира, все встречи которого результативны. Теорема 2. В каждом турнире существует гамильтонов путь. Доказательство. Пусть уже построен простой путь, включаю¬ щий к вершин. Пусть к < п и вершина и не принадлежит пути. Пока¬ жем, как её можно включить в путь. Всего возможны четыре возможных ориентаций двух дуг, соединяющих вершину и с первой и последней вершинами пути. Для трёх из них вершина и сразу может быть включена 111 Рис. 6 3.6. Гамильтоновы графы
Глава 5. Графы 40 в путь первой или последней. Единственный случай, когда это невозмож¬ но, представлен на рис. 7. Но в этом случае среди вершин {vj,...,^} существует первая вершина v; (2 < i < к), имеющая дугу (м, у, ). Тогда предыдущая вершина имеет дугу V, v2 vfc_, vk (v;_,, и), и простым путём, включающим вершину Рис 7 и, будет путь (vj,...vl-_1,«,vf,...,vjt). С помощью таких включений новых вершин получим гамильто¬ нов путь. □ Этот результат можно проинтерпретировать следующим образом. Множество участников турнира всегда возможно упорядочить таким об¬ разом, чтобы каждый был победителем следующего за ним. Вопросы для самопроверки 1. Сколько существует попарно неизоморфных 4-вершинных гамильто¬ новых графов? а) 2; 6)3; в) 4. Ответы: 1 — б. 3.7. Паросочетания Паросочетанием в графе G = {V,E) называется любое подмножество Е'сЕ его рёбер такое, что каждой верши¬ не veV инцидентно не более одного ребра из Е'. Паросочетание называется наибольшим, если не существует паросоче¬ тания с большим числом рёбер. Наибольшее паросочетание называется со¬ вершенным, если каждой вершине графа инцидентно одно из рёбер паросо¬ четания. Таким образом, совершенное паросочетание — это употребляемый в контексте паросочетаний термин, эквивалентный 1-фактору. На рис. 1 при¬ ведён двудольный граф и совершенное паросочетание в нём, рёбра которого жирно выделены. Мы ограничимся здесь рассмотрением паросочетаний в двудольных графов, где они чаще всего и возникают. В двудольном графе G = (V,E),
где V = V\ u V2, каждое ребро паросочетания имеет одним своим концом 41 вершину из F], а другим — из К2. Поэтому совершенное паросочетание устанавливает взаимно однозначное соответствие между Vt и F2 и необ¬ ходимым условием его существования является | V\ |=| К2 |. Задача о наи¬ большем паросочетании в двудольном графе имеет многочисленные ин¬ терпретации и приложения. Приведём некоторые из них. Если V = Vt uV2 — множество юношей (Vl) и девушек (К2), же¬ лающих вступить в брак, а ребро в двудольном графе G = {V,E) выража¬ ет обоюдное согласие к вступлению в брак, то задача о наибольшем паро¬ сочетании является задачей о заключении максимального числа счастли¬ вых браков. Если при этом существует совершенное паросочетание, то все юноши и девушки могут быть связаны узами брака. Если V — множество лиц, желающих получить работу, U — множе¬ ство вакантных мест и ребро е = {v(-,и j} в двудольном графе G = (V 'и U, Е) обозначает соответствие / -го лица j -му вакантному месту, то задача о паросочетании становится задачей о трудоустройстве максимального чис¬ ла безработных. Пусть | V |= т , | U |= п . Тогда условие т<п является необходимым для того, чтобы все желающие получить работу могли трудоустроиться. Очевидно также, что оно не достаточно. Если N(vj) — множество вакантных мест, ко¬ торые может занять /' -й претендент, то необходимо, чтобы для любых к пре¬ тендентов (1 < к < п ) выполнялось условие | N(v^ )(J...kjN(v^ ) | > к — полное число доступных им вакансий было не меньше к. Замечатель¬ но, что это очевидное необходимое условие оказывается также и доста¬ точным. В рассматриваемой задаче в каждом из подмножеств W(v(), /' = 1,2, ..., т выбирался один элемент — представитель данного множества, и /' -е лицо получало соответствующую этому выбору работу. Успех трудоуст¬ ройства зависел от существования системы различных представителей для подмножеств W(v( ). Рассмотрим другой пример, иллюстрирующий задачу выбора систе¬ мы различных представителей для семейства подмножеств. В Думе име¬ ется ряд комитетов. Члены Думы могут входить в несколько комитетов, но возглавлять только один. Тогда задача выбора председателя в каждом из комитетов является задачей о системе различных представителей. Для её успешного решения необходимо и достаточно, чтобы общее число членов, входящих в любые к из комитетов было не меньше к . Доказываемый ниже результат, принадлежащий английскому матема¬ тику Филиппу Холлу (1904-1982), принято называть теоремой о сущест¬ вовании системы различных представителей. Он может формулироваться 3,7. Паросочетания
Глава S. Графы 42 как в терминах системы различных представителей для семейства под¬ множеств, так и в терминах паросочетания, покрывающего все вершины одной из долей двудольного графа G = (Fj u V2, Е). Если Fj' е V i, то че¬ рез N(V{) будем обозначать множество вершин из К2 , смежных хотя бы с одной вершиной из Fj'. Теорема 1 (Ф. Холл, 1935). Для существования в дву¬ дольном графе G = (F|UF2,£') паросочетания, покрываю¬ щего Fj, необходимо и достаточно, чтобы для любого Fi'cF] было выполнено | N(V{) \ > \ V{ \. Доказательство. Будем говорить, что для подмножества Fj'cFj выполнено свойство Холла, если | W(Fj') | > | Fj' |, и что оно выполнено для графа G = (Fj <jV2, Е), если оно выполнено для всех подмножеств мно¬ жества Fj. Необходимость свойства Холла для существования паросоче¬ тания, покрывающего Vj, очевидна. Доказательство достаточности прове¬ дём индукцией по числу т- \ V\\. При т = I единственная вершина из V\ инцидентна хотя бы одному ребру, которое и является требуемым паросочетанием. Пусть т>1 и тео¬ рема верна для всех графов с | Fj | < т . Докажем её для графа с | Fj | = т. Отдельно рассмотрим два случая: 1) для некоторого собственного подмноже¬ ства Fj' с Fj имеет место | N(V{) \ = \ Fj' | и 2) для всех собственных подмно¬ жеств Fj' с Fj имеет место строгое неравенство | N(Vj') | > | Fj' |. В первом случае по предположению индукции в подграфе, индуцированным множест¬ вом вершин Fj'u N(V{), существует совершенное паросочетание Е'. Удалим из графа G = (FjUF2,£) множество вершин V'uN(V'). В полученном подграфе, индуцированном множеством вершин (Fj \ Fj”) u (F2 \ N(V{)), свой¬ ство Холла будет выполнено, так как если бы оно не выполнялось для не¬ которого Fj" с Fj \ Fj', то оно не выполнялось бы и для множества V" u Fj' в исходном графе G. Поэтому по предположению индукции в этом под¬ графе существует паросочетание Е" , покрывающее множество V\ \ Fj'. Объединяя Е' и Е", получим паросочетание в графе G, покрывающее множество Fj. Во втором случае, взяв произвольную вершину V| е Fj, любую смеж¬ ную ей v2 е N(V\) и удалив их из графа G, получим граф, для которого свойство Холла будет, очевидно, выполнено. Взяв в нём паросочетание, покрывающее Fj \Vj, и дополнив его ребром {vj,v2}, получим требуемое паросочетание в графе G. а
43 Замечание 1. В терминах системы различных предста¬ вителей теорема 1 означает, что если на конечном мно¬ жестве задано семейство подмножеств так, что для всех к = 1,2,... объединение любых к подмножеств имеет мощ¬ ность не менее к, то для этого семейства существует система различных представителей. Представленное доказательство теоремы Холла не является единст¬ венным известным её доказательством. В разделе 4.2 она будет доказана методом чередующейся цепи, а в разделе 4.3 будет доказана теорема о спросе и предложении, из которой теорема Холла вытекает в качестве ча¬ стного случая. Следствие 1. Регулярный двудольный граф всегда имеет совершенное паросочетание. До казательство. Пусть G = (FluF2,£') —регулярный двудоль¬ ный граф степени г. Подсчитывая число его рёбер от одной и от другой доли получаем г | Fj |= г | V2 \, откуда следует, что \ Vi\ = \V2\. Покажем, что для любого V{ с Fj имеет место | N(V{) | > | V{ | Для этого подсчитаем число соединяющих V{ и N(V{) рёбер двумя способа¬ ми: от V{ и от N(Vf). Подсчёт от V{ даёт r- \ F/|, а подсчёт от N(V{) даёт число, не большее г • | N(V{) |, так как от каждой вершины множества N(Vi') отходит не более г рёбер к вершинам множества V{ . Отсюда имеем г-1 N(V|*) | > г- \V{\ и | N(V{) | >|F|'|, т. е. условие Холла выполнено. В силу теоремы I существует паросочетание, покрывающее Vt, которое является совершенным, так как | Fj | = | V2 |. □ Замечание 2. В терминах системы различных предста¬ вителей следствие 1 означает, что если на л-элементном множестве задано семейство из п г-элементных под¬ множеств так, что каждый элемент входит в г подмно¬ жеств, то для этого семейства существует система раз¬ личных представителей. Если из регулярного двудольного графа удалить рёбра совершенного паросочетания, то он останется регулярным на единицу меньшей степени. Поэтому справедлив следующий результат. Следствие 2. Регулярный двудольный граф степени г является рёберно-непересекающимся объединением 1 -факторов. Сходным с доказательством следствия 1 приёмом может быть полу¬ чен другой важный для дискретной математики результат. Речь идёт о лемме Шпернера, определяющей максимальное число попарно несравни- 3.7. Паросочетания
Глава 3. Графы 44 мых подмножеств конечного множества, т. е. таких подмножеств, ни для какой пары которых не имеет место отношение включения. Такую систему в теории частично упорядоченных множеств часто называют антицепью в отличие от цепи — линейно упорядоченной системы. Лемма 1 (Шпернер, 1928). Максимальное число попарно несравнимых подмножеств и-элементного множества равно cj”^. При п = 2к максимальная система подмно¬ жеств единственна — это система всех А:-элементных подмножеств. При п = 2к + \ максимальных систем две — система всех A-элементных подмножеств и система всех (А + 1)-элементных подмножеств. Доказательство. Пусть п-2к. Допустим, что имеется некото¬ рая система попарно несравнимых подмножеств, некоторые из которых имеют мощность, отличную от А. Покажем, что она не может быть мак¬ симальной. Пусть, например, минимальная мощность подмножеств сис¬ темы равна / < А . Для каждого подмножества мощности / рассмотрим 2А - / содержащих его подмножеств мощности / +1. Покажем, что полное число таких подмножеств больше числа имеющихся в системе подмно¬ жеств мощности /. Рассмотрим двудольный граф G = (V,E), долями которого являются рассматриваемые подмножества мощности / и / +1, F = F/ u F/+I, а рёб¬ рами являются отношения включения подмножеств. От каждой вершины доли V/ отходит 2А - / рёбер, а от каждой вершины доли Vl+] — не более / +1 рёбер. Так как 2А - / > / +1, то, подсчитывая число рёбер двумя спо¬ собами, получаем |F/+1| > |F/|. Заменяя в системе несравнимых подмножеств подмножества F; на подмножества F/+], получаем систему из большего числа несравнимых подмножеств. Таким же образом показывается, что максимальная система несравнимых подмножеств не может содержать и подмножеств мощности, большей чем А. Аналогично рассматривается случай п = 2А +1. □ Данное доказательство убедительно демонстрирует ценность теоре¬ мы Холла, однако, справедливости ради, стоит отметить, что существует и более изящное доказательство леммы Шпернера. Рассмотрим цепь из п +1 подмножеств, начинающуюся с пустого множества и заканчиваю¬ щуюся самим множеством мощности п . Каждое последующее подмноже¬ ство получается из предыдущего включением одного нового элемента. Всего имеется и! таких цепей. Если имеется некоторая антицепь, то из каждого её подмножества мощности А можно образовать А !(п - к)! таких
цепей, последовательно уменьшая и наращивая его. Эти цепи будут, оче- 45 видно, различными. Обозначив в антицепи число подмножеств мощности к через S* , имеем, таким образом, неравенство Значение теоремы Холла выходит за рамки собственно дискретной математики и находит применение в самых различных математических разделах. Для иллюстрации этого рассмотрим известную теорему Гаррет- та Биркгофа, относящуюся к дважды стохастическим матрицам. Напомним, что квадратная матрица с действительными неотрица¬ тельными элементами называется дважды стохастической, если сумма элементов в каждой её строке и в каждом её столбце равна единице. Квад¬ ратная матрица из нулей и единиц называется матрицей перестановки, ес¬ ли в каждой её строке и в каждом её столбце содержится ровно одна еди¬ ница. Линейная комбинация называется выпуклой, если её коэффициенты неотрицательны и в сумме составляют единицу. Теорема 2 (Г. Биркгоф, 1946). Каждая дважды стохас¬ тическая матрица является выпуклой линейной комбина¬ цией матриц перестановок. Доказательство. Пусть Д(лхи) —дважды стохастическая мат¬ рица. Будем считать её строки элементами п -элементного множества, а столбцы — подмножествами этого множества, причём подмножество j содержит элемент i, в том и только в том случае, если рц > 0. Покажем, что у определённых таким образом подмножеств существует система раз¬ личных представителей. Возьмём к произвольных подмножеств (столбцов) и пусть их объе¬ динение содержит т элементов (строк). Просуммировав все элементы полученной подматрицы размерности т х к, получим к , так как сумма элементов в каждом столбце равна единице. Но эта сумма не превышает т, так как сумма элементов в каждой строке не превосходит единицы. Отсюда следует, что т>к, и условие Холла выполнено. Система различных представителей определяет некоторую матрицу перестановки П(. Пусть щ = min рц. Тогда неотрицательная матрица Теперь из соотношения С* < cj”^, получаем откуда следует, что мощность антицепи не превышает CJ,' > 5.7. Паросочетания
Глава 5. Графы 46 Р-«|П| имеет одинаковую сумму элементов по всем строкам и всем столб¬ цам и содержит, по крайней мере, на один нуль больше, чем матрица Р. Если матрица P-ct\Yl\ не нулевая, то к ней применима описанная выше процедура нахождения системы различных представителей, приводящая к матрице перестановки П2, и в дальнейшем рассматривается матрица 73 — «1 ГГ[ -а2П2- Процесс продолжается до получения нулевой матрицы. В результате получаем Р = , где а,- = 1. □ / i Множество всех дважды стохастических матриц, как нетрудно пока¬ зать, выпукло, а перестановочные матрицы являются его крайними точка¬ ми. Теорема Биркгофа показывает, что других крайних точек в этом мно¬ жестве нет. Поэтому множество дважды стохастических матриц можно рассматривать как многогранник в л2-мерном пространстве, вершинами которого являются перестановочные матрицы. Вопросы для самопроверки 1. При добавлении какого из рёбер {v3, v4}, {v5, v6}, {v7, v8} в двудольном графе G появляется совершенное сочетание? v, v3 v5 v7 v9 G a){v3,v4}; 6){v5,v6}; в) {v7,vg}. Ответы: 1 — 6. 3.8. Связность Граф может быть моделью некоторой сети, для успешного функцио¬ нирования которой существенна её связность. Если в процессе её функ¬ ционирования возможны выходы из строя центров сети или связывающих их коммуникаций, то минимальное число элементов, разрушение которых приводит к нарушению связности, является показателем живучести сети. Сделанное замечание проясняет смысл следующего определения.
47 Числом вершинной связности (или просто числом связ¬ ности) k(G) графа G называется минимальное число вершин, удаление которых приводит к несвязному или одновершинному графу. Числом рёберной связности A(G) графа G называется минимальное число рёбер, удаление которых приводит к несвязному графу. Как следует из определений, для несвязного графа k(G) = A(G) = 0, для полного графа к{Кп) = А(К„) = п-1, для цикла к(Сп) = А(С„) = 2. Вершина, удаление которой приводит к несвязному графу, называется точкой сочленения, а ребро с аналогичным свойством — мостом. В дере¬ ве все рёбра являются мостами, а все неконцевые вершины — точками со¬ членения. В графе на рис. 1 вершины v5, и v6 являются точками сочлене¬ ния, а рёбра {v5,v6} и {v6,v7} —мостами. Рис. 1 Максимальный по включению подграф, не имеющий точек сочлене¬ ния, называется блоком. Пять блоков графа представленного на рис. 1 гра¬ фа показаны на рис. 2. Утверждение 1. В произвольном связном графе G(V,E) число его связности k{G), рёберной связности A(G) и минимальная из степеней его вершин 8(G) связаны нера¬ венством k(G) < A(G) < 8(G). Доказательство. Удаление всех рёбер, инцидентных вершине ми¬ нимальной степени, приводит к несвязному графу, поэтому A(G) < 8(G). Далее, пусть Е' — множество рёбер, удаление которых приводит к несвяз¬ ному графу, такое, что | Е' |= A(G). Выбрав для каждого ребра из Е' одну из двух инцидентных ему вершин, получим множество из не более чем A(G) вершин, удаление которых или части из них приводит к несвязному или одновершинному графу, поэтому k(G) < A(G). □ 5.8. Связность
Глава 3. Графы Рис. 2 Центральным результатом в теории связности является теорема Мен- гера, к формулировке которой мы теперь и перейдём. Нам потребуется ряд новых определений. Будем говорить, что некоторое множество вершин разделяет несмежные вершины и и v связного графа G, если после его удаления вершины и и v оказываются в различных компонентах связно¬ сти. Аналогично, множество рёбер называется разделяющим для двух уже не обязательно несмежных вершин и и v, если после его удаления и и v оказываются в различных компонентах связности. Две простые цепи, со¬ единяющие и и v, называются непересекающимися, если у них нет общих вершин, за исключением и и v, и рёберно-непересекающимися, если у них нет общих рёбер. Непересекающиеся цепи, очевидно, являются рёберно- непересекающимися. Ясно также, что обратное в общем случае неверно. Понятно, что наименьшее число вершин, разделяющих и и v, не меньше наибольшего числа попарно непересекающихся цепей, соеди¬ няющих и и v. Аналогично, наименьшее число рёбер, разделяющих и и v, не меньше наибольшего числа рёберно-непересекающихся цепей, со¬ единяющих и и v. Теорема Менгера утверждает, что в обоих случаях имеет место равенство. Теорема 1 (Менгер, 1927). Наименьшее число вершин, разделяющих две несмежные вершины и и v, равно наи¬ большему числу вершинно-непересекающихся цепей, со¬ единяющих и и V. Теорема Ibis. Наименьшее число рёбер, разделяющих две вершины и и v, равно наибольшему числу рёберно- непересекающихся цепей, соединяющих и и v. Наиболее простое и естественное доказательство этих утверждений основано на теории потоков в сетях, где они получаются как простые след¬
ствия основной теоремы о равенстве максимального потока минимальному 49 разрезу. Поэтому их доказательства будут отложены до раздела 4.3. Теоремы 1 и Ibis позволяют определить связность и рёберную связ¬ ность графа как минимум по всем парам его вершин из максимального числа соединяющих эти пары соответственно непересекающихся и рёбер- но-непересекающихся цепей. Вопросы для самопроверки 1. Найти число вершинной связности графа G. а) 1; 6)2; в) 3. G 2. Найти число рёберной связности графа G. а) 1; 6)2; в)3. Ответы: 1 — б, 2 — б. 3.9. Планарность Граф называется планарным, если его можно нарисовать на плоскости так, чтобы его рёбра нигде, кроме вершин, не пересекались (уложить на плоскости). Такой рисунок называется плоской укладкой планарного графа, а сам граф, представленный таким образом, — плоским графом. На практике вопросы укладки графов возникают при разработки пе¬ чатных микросхем в радиоэлектронике, где проводники не должны пере¬ секаться, планировании автомобильных и железнодорожных путей, где нежелательны переезды, и т. д„ На рис. 1(a) изображён граф ЛГ4, причём рёбра на рисунке пересекают¬ ся. Однако граф К4 является планарным. Возможность его плоской укладки а) Рис. 1 3.9. Планарность
Глава 5. Графы 50 продемонстрирована на рис. 1(6). Без доказательства заметим также, что для каждого планарного графа существует такая плоская укладка, при ко¬ торой все рёбра являются прямолинейными отрезками. Для К4 такая ук¬ ладка показана на рис. 1(в). Но граф К $ уже не является планарным. Также непланарен и граф АГ3 3. Два этих простейших непланарных графа представлены на рис. 2. Они играют фундаментальную роль в теории планарности. Рис. 2 Прежде всего, естественно, возникает вопрос, а нельзя ли каким-либо образом уложить на плоскости и эти графы? Для доказательства невоз¬ можности этого введём некоторые новые понятия. Наряду с вершинами и рёбрами для плос¬ кого графа вводится понятие грани. Грани при плоской укладке планарного графа — это связные области плоскости, на которые она распадается при её разрезах по рёбрам графа. Одна из них является неограниченной. Она на¬ зывается внешней гранью, остальные — внут¬ ренними. На рис. 3 представлен плоский граф с шестью гранями, внешняя грань которого помечена цифрой 6. Центральной в теории планарных графов является формула Эйлера, связывающая линейным соотношением число вершин, рёбер и граней связ¬ ного планарного графа. Эта формула, в частности, показывает, что число граней при плоской укладке планарного графа однозначно определяется числом его вершин и рёбер. Теорема 1 (Эйлер, 1758). Число вершин п и рёбер т связного планарного графа связано с числом его граней / при плоской укладке соотношением n-m + f = 2. (I) Доказательство. Пусть планарный граф G уложен на плоскости. Если он является деревом, то (I), очевидно, справедливо, так как дерево имеет одну грань, а числа его вершин и рёбер связаны соотношением:
п - т = 1. Если G не дерево, то, выбрав один из его циклов, удалим одно из 51 его рёбер. При этом две грани сольются в одну, и число граней также умень¬ шится на единицу. Поэтому левая часть формулы (1) не изменится. Повторив данную операцию до получения дерева, получаем утверждение теоремы. □ Теперь, имея в качестве инструмента соотношение Эйлера, уже не¬ трудно показать непланарность графов К5 и АГ3 3 . | Утверждение 1. Граф К5 непланарен. Доказательство. Граф К5 имеет 5 вершин и Ю рёбер. Если бы существовала плоская реализация графа К5, то, как следует из соотноше¬ ния Эйлера, она имела бы 7 граней. Так как граница каждой грани состоит из не менее чем 3 рёбер, то подсчёт числа инциденций ребро — грань двумя способами приводит к абсурдному неравенству 2 • 10 > 3 • 7. □ | Утверждение 2. Граф Кц непланарен. Доказательство. Граф 3 имеет 6 вершин и 9 рёбер. Если бы су¬ ществовала его плоская реализация, она имела бы 5 граней. Так как все цик¬ лы в двудольном графе АГ3 3 имеют чётную длину, то граница любой грани должна состоять из не менее чем четырёх рёбер. Поэтому подсчёт числа ин¬ циденций ребро — грань приводит к абсурдному неравенству 2 • 9 > 4 • 5 . □ С помощью стереографической проекции плоский граф может быть уложен и на сфере. При этом сфера касается плоскости в точке S (южный полюс), и любая точка плоскости проектируется на плоскость с помощью прямой, проходящей через неё и точку N (северный полюс), диаметрально противоположную точке S (рис. 4). N Данное соответствие между точками плоскости и сферы будет взаим¬ но однозначным, если считать, что северный полюс N соответствует бес¬ конечно удалённой точке плоскости. Получив укладку плоского графа на сфере, можно, переместив северный полюс N внутрь любой из граней, сделать обратную проекцию сферической укладки на плоскость. При этом 5.9. Планарность
Глава 3. Графы 52 выбранная грань станет внешней. Таким образом, любая грань плоского графа при переукладке может быть сделана внешней. Если внутри выпуклого многогранника выбрать некоторую точку, взять сферу с центром в этой точке и спроектировать многогранник на сфе¬ ру, а затем произвести стереографическую проекцию, то получим плоский граф, для которого справедлива формула (1). Тем самым доказано, что чис¬ ла вершин, рёбер и граней произвольного выпуклого многогранника связа¬ ны соотношением (1). Именно в таком виде формула (1), явившаяся пред¬ течей современной топологии, была опубликовано Эйлером в 1758 году в «Записках Петербургской академии наук». Формула Эйлера эффективно применима к анализу числа правильных многогранников. Пусть все грани выпуклого многогранника являются пра¬ вильными к -угольниками, а в каждой вершине сходится d граней. Под¬ считав число инциденций ребро — вершина двумя способами — со сторо¬ ны вершин и со стороны рёбер, имеем: d-n = 2-т . Аналогично, сосчитав двумя способами число инциденций ребро — грань, получаем: 2-т = к-f . Выражая из этих соотношений пи/ и подставляя в (1), получаем: т =2. к d Правильный многогранник 3 3 Тетраэдр 4 3 Куб 3 4 Октаэдр 5 3 Додекаэдр 3 5 Икосаэдр Это даёт в качестве необходимого условия существования правильно¬ го многогранника неравенство: что вместе с очевидными условиями d, к > 3 оставляет лишь 5 возмож- Таблица 1 ностеи, каждая из которых реализу¬ ется одним из правильных много¬ гранников, как показано в табл. 1. Выведем с помощью формулы Эйлера ещё два свойства планарных графов. Утверждение 3. Число рёбер т и вершин п связного планарного графа связаны соотношением т<3п-6 (2). Доказательство. Подсчитаем число инциденций ребро — грань двумя способами — со стороны рёбер и со стороны граней. Каждое ребро инцидентно двум граням, а каждая грань — не более чем трём рёбрам, что приводит к соотношению 2 • т > 3 ■ /. Откуда / < 2т/3 . Отсюда, исполь¬ зуя (1), получаем (2). □ Утверждение 4. В любом планарном графе существует вершина, степень которой не больше пяти.
53 Доказательство. Без потери общности граф можно считать связ¬ ным. Если в некотором планарном связном графе степени всех вершин не меньше 6, то подсчёт инциденций ребро — вершина приводит к соотноше¬ нию 2-т > 6■ п , откуда т > 3п , что находится в противоречии с (2). □ Приведём теперь критерий планарности Куратовского, доказательство которого из-за сложности здесь будет опущено. Заинтересованный читатель сможет найти его в [4] или [5]. Определим операцию подразбиения ребра графа G = (V,E) следующим образом. Берётся ’ ребро {u,v}eE и на нём ставится новая вершина 4 t степени 2, которой инцидентны рёбра {u,t} и v * {;,у}.(Рис. 5). Рис.5 Ясно, что если граф содержит подграф, изо¬ морфный какому-либо из графов К5, 3 , или подграф, который может быть получен из одного из этих графов с помощью последовательных подразбиений рёбер (рис. 6), то он не может быть планарным. Оказывает¬ ся, что условие отсутствия подобных подграфов не только необходимо, но Рис. 6 Теорема 2 (К. Куратовский, 1930). Для того чтобы граф был планарен, необходимо и достаточно, чтобы он не со¬ держал подграфов, которые могут быть получены из К5 или АГ3з подразбиениями рёбер. Докажем с помощью данного критерия непланарность графа Петерсо¬ на. На рис. 7 показано, как из графа Петерсона можно выделить подграф, изоморфный А'з з (одна доля этого полного двудольного графа помечена кружочками, а другая — квадратиками). Определим теперь операцию склеивания вершин. Две вершины графа заменяются на одну, смежную с теми и только с теми вершинами, с кото¬ рыми была смежна хотя бы одна из склеиваемых вершин. Если эта опера¬ ция применяется к двум смежным вершинам, то она называется операцией стягивания ребра. 3.9. Планарность
Глава 5. Графы 54 Стягивание ребра не нарушает планарности, а графы, полученные под¬ разбиением рёбер из К5 или Кг г, рёберно стягиваемы в К5 или ЛГ3 3. Эти замечания позволяют из критерия Куратовского получить другой кри¬ терий планарности. Рис. 7 Теорема 3 (К. Вагнер, 1937). Для того чтобы граф был планарен, необходимо и достаточно, чтобы он не содер¬ жал подграфов, рёберно стягиваемых к К5 или ЛГ33. Доказательство непланарности графа Петерсена с помощью этого кри¬ терия тривиально — для получения К5 достаточно стянуть пять рёбер, соединяющего вершины внутреннего и внешнего циклов. Вопросы для самопроверки I. Какие из графов Gy, G2 являются планарными? a) Gy; б) G2 ; в) оба графа. 2. Граф G2 содержит в качестве подграфа граф а) К5 ; б) А^3 3 ; в) оба графа. Ответы: I — а, 2 — б. 3.10. Раскраски Раскраской графа G = (V, Е) называется такое приписывание цветов его вершинам, что никакие две смежные вершины не получают одинако¬ вого цвета. Такую раскраску часто называют также правильной раскрас¬ кой, в отличие от произвольного приписывания цветов. Всюду далее под термином «раскраска» будет пониматься правильная раскраска.
Множество вершин одного цвета является независимым и называ- 55 ется цветным классом. Под к-раскраской графа понимается раскраска, использующая к цветов, или, более формально, такое отображение /: V -> {1,2,...,Л}, что, если вершины и и v смежны, то /(и) * /(v). Граф, для которого существует к -раскраска, называется к -рас¬ крашиваемым. Минимальное зна¬ чение к, для которого существует к -раскраска графа G, называет¬ ся хроматическим числом /(G) графа G, который в этом случае называется к -хроматическим. Хро¬ матическое число — это минималь¬ ное число независимых подмно¬ жеств, на которые можно разбить множество вершин графа. На рис. 1 показан 4-хроматический граф с соответствующей раскраской. (Заметим, что представленный на рисунке граф является планарным.) Граф является 1-хроматическим тогда и только тогда, когда он пустой, и 2-хроматическим, когда он двудольный и непустой. 2-хроматический граф часто называют бихроматическим. Бихроматический является, таким образом, эквивалентом непустого двудольного графа. Легко также прове¬ рить, что z(K„) = n, х{Кп~е) = п-1, /(С2л) = 2, /(С2л+1) = 3. Если G — п -вершинный граф, то, очевидно, /(G) < п. Следующее утверждение даёт уже нетривиальную верхнюю оценку для хроматическо¬ го числа. Здесь и далее Д(G) будет обозначать максимальную из степеней вершин графа G. Утверждение 1. Для любого графа G справедливо нера¬ венство /(G)<A(G) + l. Доказательство. Легко проверить справедливость утверждения для всех графов с не более чем тремя вершинами. Далее продолжим по индукции. Пусть утверждение справедливо для всех графов с не более чем п вершинами и пусть G = (V,E) — произвольный (л +1) -вершинный граф. Выбрав в нём любую вершину v, рассмотрим п -вершинный граф Я = V - v, для которого по предположению индукции справедливо нера¬ венство /(Я) < Д(Я) + 1< A(G) + 1, т. е. он является (A(G) +1)-раскра¬ шиваемым. Так как deg v < A(G) +1, то для вершины v можно из (A(G) +1) доступных цветов выбрать цвет, не использованный при раскраске смеж¬ ных ей вершин, получив тем самым (A(G) +1) -раскраску графа G. □ 1 2 1 Рис.1 3.10. Раскраски
Глава 3. Графы 56 Затратив дополнительные усилия, утверждение 1 можно было бы усилить. Оказывается, что если граф G не является полным графом Кп или циклом нечётной длины С2„+\, то для него справедливо более силь¬ ное неравенство: %{G) < A(G). Однако и такая уточнённая оценка может оказаться слишком далёкой от истины, как показывает пример графа KJ n, для которого эта оценка даёт х(К\<п) < п , в то время как х(К\,п) = 2. Что же касается нижней оценки для хроматического числа, то оче¬ видной такой оценкой является мощность максимальной клики. Однако и здесь разность между полученной таким образом нижней оценкой и ис¬ тинным значением хроматического числа графа может быть сколь угодно велика. Заметим, что графы, у которых значение хроматического числа сов¬ падает с мощностью максимальной клики, называют совершенными. Проблематика, связанная с раскраской графов, возникла в середине девятнадцатого века в связи со знаменитой проблемой четырёх красок. В 1852 году Френсис Гатри (Guthry), занимаясь раскраской графств Англии на географической карте, обнаружил, что четырёх красок достаточно, что¬ бы имеющие общую границу графства были раскрашены в разные цвета. Он сообщил об этом своему младшему брату Фредерику, студенту-матема- тику в Кембридже, а тот, в свою очередь, познакомил с задачей профессора Огастеса де Моргана (1806-1871), основателя Лондонского математического общества и его первого президента. В качестве математического фольклора задача циркулировала в английских университетских кругах до 1878 года, когда известный английский математик Артур Кэли (1821-1895) поставил её в качестве открытой проблемы на заседании Лондонского математиче¬ ского общества и опубликовал посвящённую ей заметку в Трудах Королев¬ ского географического общества в следующем году. С этого момента задача завладела умами математиков всего мира, став наряду с Великой теоремой Ферма одной из самых знаменитых математических проблем. Верно ли, что четырёх красок достаточно для раскраски любой, сколь угодно сложной карты? Простота и естественность постановки в сочетании с неожиданной трудностью решения придали этой задаче неотразимую привлекательность. Проблемой четырёх красок с одинаковым увлечением занимались и профессионалы, и дилетанты. А. Кемпе (А. Кетре), адвокат, изучавший математику под руководст¬ вом Кэли в Кембридже, в 1879 и 1880 годах в американском и английском научных журналах опубликовал доказательство этой гипотезы. Оно было с восторгом принято английскими математиками, и по предложению Кэли Кемпе был избран членом Лондонского математического общества. Лишь в 1890 году преподавателем математики П. Хивудом (Р. Heawood) в доказа¬ тельстве Кемпе была обнаружена ошибка. Однако труд Кемпе не пропал да¬ ром. Используя его идеи, Хивуд корректно доказал более слабый результат — раскрашиваемость произвольной карты пятью цветами. Заложенная Кемпе техника стала основой и для последующих продвижений в этой области.
В двадцатом веке история проблемы четырёх красок оказалась не ме- 57 нее интригующей. В результате длительной работы X. Хеешу (Н. Heesch) удалось в 1969 году показать, что проблема сводится к исследованию неко¬ торого большого, но конечного множества U так называемых «неизбежных конфигураций». Как им было показано, в любом максимальном по включе¬ нию рёбер планарном графе G найдётся такой изоморфный некоторой кон¬ фигурации из LJ подграф G', что если G' 4-раскрашиваем, то 4-рас- крашиваем и граф G. В 1976 году К. Аппелю и В. Хейкену с помощью мощного компьютера удалось явно получить такое множество U из 1482 неизбежных конфигураций и получить их 4-раскраску, что позволило считать проблему четырёх красок решённой. В связи с этим, однако, воз¬ никла общематематическая проблема об отношении к доказательству, кото¬ рое человеческий разум не в состоянии проверить без помощи компьютера. Покажем, прежде всего, что рас¬ краска карты эквивалентна раскраске некоторого планарного графа. Для ка¬ ждой карты можно построить пла¬ нарный граф следующим образом. Внутри каждой из раскрашиваемых областей берётся по одной вершине. Если две области имеют общую гра¬ ницу, то соответствующие им верши¬ ны соединяются ребром, пересекаю¬ щим общую границу двух областей так, чтобы рёбра попарно не пере¬ секались (см. рис. 2). При таком построении получается плоский граф, две вершины которо¬ го смежны тогда и только тогда, когда смежны соответствующие им облас¬ ти. Поэтому для доказательства гипотезы четырёх красок достаточно дока¬ зать, что хроматическое число планарного графа не может превысить четы¬ рёх. В такой постановке гипотеза четырёх красок на протяжении уже ста с лишним лет является мощным стимулом для развития теории графов. То, что числом красок меньшим четырёх в общем случае не обойтись, сразу видно из карты на рис. За, так как получающийся по ней плоский граф (рис. 36) оказывается графом К4. Покажем далее, что возможность раскраски планарного графа в 6 цве¬ тов сразу вытекает из полученных ранее свойств планарных графов. В са¬ мом деле, если все планарные графы с не более чем п вершинами 6-рас- крашиваемы, то в (п +1) -вершинном графе G согласно утверждению 9.4 найдётся вершина и, степень которой не превышает 5. Тогда граф G-u 6-раскрашиваем по индуктивному предположению, а вершину и можно окрасить в цвет, не использованный в вершинах N(u). Сравнительно легко 3.10. Раскраски
Глава 5. Графы 58 Рис. 3 доказать и полученный более ста лет назад более сильный результат о воз¬ можности раскраски произвольного планарного графа в 5 цветов. | Теорема 1. Каждый планарный граф 5-раскрашиваем. Доказательство. Теорема, очевидно, справедлива для планарных гра¬ фов с не более чем пятью вершинами. Пусть она справедлива для всех пла¬ нарных графов с не более чем п вершинами и пусть G — (и +1) -вершин¬ ный планарный граф. Согласно утверждению 9.4 в нём существует вершина и , для которой degw < 5 . Если deg и < 4, то 5-раскраску графа G можно получить из 5-раскраски графа G-u, раскрасив и в цвет, отсутствующий в смежных с ней вершинах. Пусть degM = 5 и пусть N(u) = {v|,v2,v3,v4,v5}. Среди вершин V],v2, v3 > v4 > v5 всегда найдётся пара несмежных вершин, так как в противном случае в графе G ими индуцировался бы подграф К5, что противоречит планарности графа G. Пусть вершины v( и v2 несмежны. Склеив в графе G - и вершины V] и v2, получим (л - 2) -вершинный планарный граф G', который по предположению индукции 5-раскрашиваем. Из 5-раскраски графа G' можно получить 5-раскраску графа G следующим образом. Вер¬ шины множества К \ {м, Vj, v2} в графе G раскрасим так же, как и в графе G'. Вершины V| и v2 раскрасим в цвет вершины Vi 2 графа G'. Вершину и окрасим цветом, отсутствующим среди цветов вершин vi,v2, уз,у4,у5 . □ Рёберная раскраска. Наряду с вершинной раскраской в теории графов рас¬ сматривается также рёберная раскраска <р: Е -> {1,2,...,/:} — такое припи¬ сывание цветов рёбрам графа, при котором никакие два смежных ребра не окрашены одним цветом. При этом рёбра одного цвета образуют, очевидно, паросочетание. Наименьшее число цветов к, достаточное для раскраски рё¬
бер графа G, называется его хроматическим индексам и обозначается 59 X’(G). Хроматический индекс х’(^) можно рассматривать как наименьшее число паросочетаний, на которые разбивается множество рёбер графа G. В качестве приложения рёберной раскраски можно указать задачу о составлении расписания игр между п командами в однокруговом турни¬ ре. Если игры протекают в определённые игровые дни недели, которые можно по порядку обозначить цифрами 1,2,3,..., то рёберную раскраску (р\Е—>{1,2,...} графа Кп можно интерпретировать как расписание игр тур¬ нира, причём %'(Кп) —это минимально возможное число игровых дней. Ясно, что хроматический индекс x'(.G) графа G не может быть мень¬ ше максимальной из степеней его вершин Д((7). Удивительно, однако, что он не может превышать Д(G) более чем на единицу. Прежде чем доказы¬ вать этот замечательный результат, принадлежащий российскому матема¬ тику В. Г. Визингу, найдём хроматический индекс некоторых графов. Нач¬ нём с полных графов. I Утверждение 2. х'{К2т) = 2т -1 = Д(К2т), х'(К2т+]) = 2т +1 = Д(Х2т+1) +1. Доказательство. Ясно, что х'(^2т)-2т~ 1 • Покажем, что х'{^2т+\)~ 2т +1 • В графе К2т+f имеется т(2т +1) рёбер. Рёбра одного цвета образуют паросочетание и их не может быть более [(2т +1)/2] = т. Поэтому для раскраски К2т+1 необходимо не менее т(2т + \)/т = 2т + \ цветов. Но рёберную раскраску графа К2т+\ с помощью 2т +1 цветов легко указать следующим образом. Пометим вершины графа К2т+j класса¬ ми вычетов {0,1,..., 2т} по модулю 2т -г 1. Будем считать эти классы вы¬ четов 2т+ 1 цветами, в которые раскрашиваются рёбра. Цвет ребра {i,j} зададим как (/ + j) (mod(2m + l)). Полученная таким образом раскраска яв¬ ляется, как легко видеть, правильной. Поэтому х’(^2т+1) = 2m +1. Теперь для раскраски рёбер графа К2т+2 в 2т +1 цветов возьмём рё¬ берную раскраску графа К2т+\ в 2m +1 цветов. При этом в каждой вер¬ шине будет отсутствовать один из цветов, т. е. его не будет у инцидентных ей рёбер. Причём один и тот же цвет не может отсутствовать у двух разных вершин, так как в противном случае соответствующее этому цвету паросо¬ четание содержало бы менее m рёбер, что противоречило бы равенству Х’(К2т+1) = 2т + \. Это позволяет присоединить к К2т+1 ещё одну вершину, раскрасив рёбра, соединяющие её с вершинами графа К2т+\, отсутствую¬ щими в них цветами. Этим доказано, что х'(^2т+2) = 2m +1. □ 3.10. Раскраски
Глава 3. Графы 60 Для дальнейшего будет полезно следующее обозначение. Пусть име¬ ется некоторая рёберная раскраска графа G - (У, Е), с,- и Cj — два из ис¬ пользованных в раскраске цветов, veV. Обозначим через G(v, q,c7) максимальный связный подграф графа G = (V, Е), содержащий вершину v и рёбра с цветами с,- и Cj. G(v, с,-, Cj) может быть тривиальным гра¬ фом, состоящим лишь из вершины v, если в графе G = (У, Е) у вершины v нет инцидентных ей рёбер с цветами с,- и cj. Если G(v, с,-, сj) не являет¬ ся тривиальным графом, то это либо простая цепь, либо простой цикл чётной длины. Заметим, что, если в подграфе G(v, с,-, Cj) переставить местами цве¬ та с,- и Cj, то полученная новая рёберная раскраска графа G = (У,Е) ос¬ танется правильной. Ясно также, что, если два подграфа G(v, q, Су) и G(v', ch Cj) имеют общую вершину, то они совпадают. Сделанные заме¬ чания будет использованы в дальнейшем. Утверждение 3 (Кёниг, 1916). Для любого двудольного графа G(F[UF2, Е) имеет место x'(G) = A(G). Доказательство. Будем раскрашивать рёбра графа G цветами из множества {q, с2,..., сд}. Пусть на некотором шаге ребро {q, v2} не¬ возможно раскрасить, так как каждый из А цветов уже имеется в вершине V| или v2. Так как ребро {vj,v2} пока не окрашено, то в каждой из вер¬ шин V], v2 отсутствует хотя бы один из используемых цветов. Пусть в вершине q отсутствует цвет q , а вершине v2 — цвет с2. Рассмотрим подграф G(V|, q, с2). Вершина q является его концевой вершиной. Ей инцидентно ребро цвета с2. Вершина v2 не может принадлежать графу G(V|, С|, с‘2), так как вершины q и v2 принадлежат различным долям и любой маршрут из q в v2 имеет нечётную длину, а цвет с2 отсутствует в вершине v2. Переставим в графе G(V[, q, с2) цвета q и с2. Теперь в вершине q также будет отсутствовать цвет с2. Это позволяет раскрасить ребро {q,v2} в цвет с2. Продолжая подобным образом, получим раскрас¬ ку графа G в A(G) цветов. □ Перейдём теперь к основному результату. I Теорема 2 (В. Г. Визинг, 1964). Для хроматического индекса произвольного графа G справедливо двойное неравенство A(G) < %’(G) < A(G) +1.
Доказательство. Левое неравенство очевидно. Доказательство 61 правого основано на тех же идеях, что и доказательство утверждения 3, хотя и несколько сложнее. Будем раскрашивать рёбра графа G цветами из множества {q, с2,..., сд, сд+|}. Пусть на некотором шаге ребро {v, V[} невозможно раскрасить, так как каждый из Д + 1 цветов уже имеется в вершине v или q. При этом, однако, в каждой из вершин v, V| отсутствует хотя бы один из А +1 цветов. Пусть в вершине v отсутствует цвет с, а вер¬ шине V] — цвет q. Рассмотрим подграф G(q, с, q ). Если v i G(q, с, q ) , то, поменяв местами цвета с и q в графе G(q, с, q), ребро {v, vj} мож¬ но окрасить в цвет с. Пусть v е G(V|, с, q). Это значит, что граф G(q, с, q) является про¬ стой цепью, соединяющей q и v, в которой ребро {v2, v} окрашено в цвет q (рис. 4а). Пусть в вершине v2 отсутствует цвет с2 . Поступаем за¬ тем следующим образом. Снимаем с ребра {v2, v} цвет q и переносим его на ребро {v, q}, оставляя ребро {v, v2} неокрашенным. Полученную таким образом простую цепь v, q,... ,v2, рёбра которой окрашены цвета¬ ми с и q , обозначим (рис. 46). (На рисунках неокрашенные рёбра по¬ казаны пунктиром, а рёбра цвета с жирно выделены) Рис. 4 Далее, имея неокрашенным ребро {v, v2} и отсутствующий в верши¬ не v2 цвет с2 Ф q , продолжаем действовать аналогичным образом. Берём подграф G(v2, с, с2) и, если v е G(v2, с, с2), то на соединяющей v2 и v цепи берём ребро {v3, v}, выделяем отсутствующий в вершине v3 цвет с3 и переносим окраску с2 с ребра {v, v3} на ребро {v, v2}, получая про¬ стую цепь Р2 с концевыми вершинами v и v3 , рёбра которой окрашены в цвета с и с2 (рис. 5). Продолжаем этот процесс, считая, что на каждом шаге i имеет ме¬ сто неблагоприятный случай ve G(q, с, q), а цвета с, q,..., q попарно различны. При этом, очевидно, попарно различными будут и вершины q,..., q, q+i. Но на некотором шаге /+ 1 цвет q+I, отсутствующий в 3.10. Раскраски
Глава 3. Графы 62 а) б) Рис. 5 вершине v!+], совпадёт с одним из цветов с, q,..., с,-. Если он совпадает с цветом с, то неокрашенное ребро {v, vI+1} окрашивается в цвет с. Пусть он совпадает с одним из цветов q,..., с,-. Не теряя общности, бу¬ дем считать, что он совпадает с цветом q . Теперь можно утверждать, что у £ G(v,+|, с, q), так как в противном случае подграф G(vI+1, с, q) сов¬ пал бы с цепью Р\, что невозможно, так как вершина vI+] отлична от вершины v2. Меняем местами цвета с и q в графе G(vi+], с, q) и ок¬ рашиваем ребро {v, vl+|} в цвет с. □ Вопросы для самопроверки 1. Чему равно хроматическое число графа G ? а) 2; б) 3; в) 4. 2. Чему ему равен хроматический индекс графа G ? а) 3; б) 4; в) 5. Ответы: 1 — б, 2 — б. 3.11. Теоремы 1урана и Рамсея Все не более чем п -вершинные графы являются подграфами полного п -вершинного графа Кп . В связи с этим можно поставить следующую экстремальную задач: какое максимально возможное число рёбер в п -вер¬ шинном графе может быть, чтобы он не содержал в качестве подграфа не¬
которого заданного графа? Данная задача, когда в качестве запрещённого 63 выбран полный ^-вершинный граф Kq , была решена венгерским матема¬ тиком Палом Тураном (1910-1976). Рассмотрим сначала простейший нетривиальный случай q = 3 , т. е. за¬ прещённым является граф — треугольник. В двудольном графе, оче¬ видно, нет треугольников. Если п = 2к , то п -вершинным двудольным гра¬ фом с максимальным количеством рёбер является полный двудольный граф Кк к, имеющий к2 рёбер. А если п = 2к +1, то таким графом будет Ккк+\ с к(к +1) рёбрами. Оказывается, что на этих графах и только на них дости¬ гается максимум числа рёбер при условии отсутствия треугольников. В общем случае запрещённого графа Kq , где q < п, следует рассмот¬ реть полный (q -1) -дольный граф на п вершинах, т. е. такой граф, мно¬ жество вершин которого разбито на (q -1) подмножеств — долей и ребро между двумя вершинами имеется в том и только в том случае, если вер¬ шины принадлежат различным долям. Ясно, что (q -1) -дольный граф на п вершинах является максимальным по включению рёбер п -вершинным графом, не содержащим Kq . Выберем мощности долей равными или настолько близкими, насколь¬ ко это возможно, т. е. отличающимися не более чем на единицу. Пусть п = k(q -1) + г , где г < q -1. Тогда г долей будут иметь мощнрсть к +1 и 2 2 q-\-г долей — мощность к , а полное число рёбер равно Сп -гСк+\ - 'у -(q-\-r)Ck . Введённый таким образом граф однозначно определяется числом вершин и числом долей, поэтому для него здесь будет использо¬ ваться обозначение K(n,q-1), а число рёбер в нём для краткости обозна¬ чим через е(п, q-Y). Ясно, что это максимально возможное число рёбер для (q -1) -дольного п -вершинного графа. Теорема 1 (Туран, 1941). Максимальное число рёбер в и-вершинном графе, не содержащем Kq в качестве под¬ графа, равно e(n,q-\), и K(n,q-1) является единственным графом, на котором этот максимум достигается. Доказательство. Зафиксировав произвольное r>q, с помощью индукции докажем утверждение теоремы для всех п > q . При п = г ут¬ верждение теоремы, очевидно, справедливо, так как если из полного гра¬ фа Кп удалить одно ребро, то получится граф К(п,п-1). Пусть теорема справедлива для всех графов с менее чем п вершинами. Докажем, что она справедлива для всех п -вершинных графов. 3.11. Теоремы Турана и Рамсея
Глава 3. Графы 64 Пусть G — п -вершинный граф с е(п, g -1) рёбрами без Kq . Так как K(n,q-1) — это максимальный по включению рёбер п -вершинный граф без К„ , то для доказательства теоремы достаточно доказать, что G — это ч граф K(n,q-l). Заметим, что если в графе K(n,q-1) удалить верши¬ ну минимальной степени, то, очевидно, возникнет граф К(п-\, q-l) с е(п-1, д-1) рёбрами. Выберем теперь в графе G вершину v, имеющую минимальную степень, и удалим её из графа. Так как в графе K(n,q-Y) степени вершин максимально выровнены, то degv не превышает мини¬ мальной степени вершины в графе K(n,q-Y). Отсюда следует, что в гра¬ фе G-v не менее е(п-1, д-1) рёбер. А так как большего количества рё¬ бер в G-v по предположению индукции быть не может, то в G-v ровно е(п-\, д-1) рёбер и G-v является графом К(п-1, д-1). Теперь остаётся лишь заметить, что при восстановлении исходного графа G добавлением вершины v в граф G-v условие отсутствия под¬ графов Kq приводит к тому, что получаемый при этом граф должен ос¬ таться (д -1) -дольным, а требование, чтобы число рёбер было равно е(п -1, д -1), ведёт к тому, что вершина v должна быть включена в наименьшую по мощности долю и соединена рёбрами со всеми не входящими в эту до¬ лю вершинами, что и приводит к графу К(п, q -1). □ Взглянем теперь на данную проблему с другой стороны. Согласно тео¬ реме 1, если в п -вершинном графе G число рёбер превышает е(п, q-l), то в графе, неизбежно появляются q -элементные клики, а если рёбер 2 меньше чем Сп - е(п, q -1), то в графе обязаны быть д -элементные неза¬ висимые множества. Интересно посмотреть, оставляют ли данные границы для числа рёбер область, где возможно отсутствие как Kq , так и Oq . Для простоты в качестве подграфов рассмотрим АГ3 и 03 и будем считать число вершин чётным: п = 2к . Тогда А"3 могут отсутствовать при п<к2,а03 — при п>С2 - к2 = к2 - к . Таким образом, остаётся «зазор» [к -к, к ], где могут отсутствовать и могут отсутствовать 03 . Могут ли одновременно отсутствовать оба подграфа? Как следует из решения за¬ дачи 0.53, при п > б хотя бы один из подграфов обязан присутствовать. Аналогичная ситуация имеет место и в общем случае Кд и Оq. Всегда существует такое N(q), что при п > N(q) в любом п -вершинном графе всегда найдётся д вершин, индуцирующих Kq или Oq .
Приводимая ниже теорема является частным случаем теоремы, дока- 65 занной английским математиком Ф. П. Рамсеем (1903-1930), чья работа 1930 года породила целый поток результатов в различных областях ма¬ тематики, объединённых общим термином «теорем рамсеевского типа». Общим для них является то, они доказывают существование фиксирован¬ ных регулярных подструктур в произвольной структуре достаточно боль¬ шого объёма. Слегка обобщим задачу и введём общепринятое в теории Рамсея обо¬ значение. Пусть R(q,p) — наименьшее натуральное число такое, что в лю¬ бом графе с числом вершин, не меньшим R(q, р), существует q -элемент¬ ная клика или р -элементное независимое множество. Ясно, что R(q, 2) = q и R(2, р) = р . Переходя от графа G к его дополнению G, получаем, что R(q,p) = R(p,q) . Кроме того, из задачи 0.53 следует, что R(3,3) = 6. Сле¬ дующая теорема доказывает существование чисел Рамсея R(q, р) для лю¬ бых натуральных q,p> 2 и позволяет указать для них верхнюю границу. Теорема 2 (Рамсей, 1930). Для любых натуральных q,р >2 существует такое наименьшее натуральное R(q,p), что в любом и-вершинном графе, где п> R(q,p), существует подграф Kq или индуцированный подграф Ор. Для чисел R(q,p) справедливо следующее рекуррентное соотношение R(q,p)< R(q-l,p) + R(q,p-l). (I) Доказательство. Так как R(q,2) = q и R(2,р) = р, то для дока¬ зательства теоремы достаточно установить (I), откуда существование чи¬ сел R(q, р) будет следовать по индукции. Пусть R(q-l,p) и R(q,p-l) существуют. Покажем, что в любом л-вершинном графе G = (V,E), где n>R(q-l,p) + R(q,p-l), всегда су¬ ществует подграф Kq или индуцированный подграф Ор. Зафиксируем в графе G вершину v s V и разобьём множество V \ v на два подмно¬ жества: Q={ueV\v: {v,u}eE} и P={ueV\v:{v,u}iE}. Так \Q\ + \P\> >R(q-\,p)+R(q,p-l)-l, то имеет место хотя бы одно из неравенств: \)\Q\>R{q-\,p) или 2) \P\>R{q,p-\). Пусть \Q \ > R(q-l,p) (другой случай рассматривается аналогично). Тогда, по индуктивному предположению, в графе, индуцированном мно¬ жеством вершин Q, существует подграф Kq_\ или подграф Ор . В случае подграфа Ор всё доказано, а в случае подграфа Kq_\ добавление к нему вершины v приводит к подграфу Kq . □ 3.11. Теоремы Турана и Рамсея
Глава 3. Графы 66 Следствие 1. Для чисел R(q,p) справедливо неравенство ч-1 Шр) * с*;'р_2. (2) Доказательство. Определим функцию F(q,p) для всех натураль¬ ных q,p>2 рекуррентным соотношением F(q,p) = F(q-l,p) + F(q,p-\) и граничными условиями F(q, 2) = q и F(2, р) = р. Покажем по индук¬ ции, что F(q,p)=C4q;'p_2=C?;lp_2. Имеем F(9,2)=Cf' и F(2,p)=C^1. Пусть F(q — l,p) = Сч~2р_з и F(q,p-\) = С*~Хр_г . Тогда F(q, р) = F(q -1 ,р) + F(q, р -1) = С^_3 + С^_3 = С^_2. (Последнее равенство основано на соотношении С™ = С™_! + .) Этим (2) доказано, так как из (1) следует, что R(q, р) < F(q, р). □ Для диагональных чисел Рамсея R(q,q) даваемая следствием 1 верх¬ няя оценка может быть ценой небольшого огрубления с помощью (1.2.5) приведена к весьма простому виду R(q,q)< 4*. (3) Чтобы иметь представление о реальных значениях величины R(q, q) , для неё необходима нижняя оценка. Её поучительно получить широко распространённым в дискретной математике мощностным методом. Утверждение 1. Для R(q,q) справедлива следующая асимптотическая нижняя оценка R(q,q)>A=q-2^2. (4) eV2 Доказательство. Будем говорить, что заданный на множестве вершин {vj,..., v„} граф является «хорошим», если он содержит q -эле¬ ментную клику или q -элементное независимое множество. Для некоторого фиксированного q -элементного множества вершин {v,t,..., } существует С2-С2 ровно 2-2 " 4 графов, у которых это множество является кликой или не¬ зависимым множеством. Так как подобное множество можно зафиксировать способами, то на множестве вершин {vj,..., vn} существует не более С2-С2 с2 С% ■ 2 ■ 2 " 4 «хороших» графов. Ясно, что, если это число меньше 2 ' — полного числа графов на п вершинах, то среди них обязательно найдутся и
67 С2—С2 с2 «плохие» графы. Поэтому условие Cq -2-2 " 4 > 2 " является необходи¬ мым для того, чтобы все графы на множестве вершин {V|,..., v„} были «хорошими». Это даёт для п соотношение 2-Cq > 2С’ . Согласно (1.7.15) Cq < г \ч еп \ Я . Поэтому / \ч пе Я ) 2<7(<И)/2 Извлекая из обеих частей неравенства корень q -й степени, получаем требуемую нижнюю оценку 1 лд/9 л—I In 1 е\[2 п >-;=q-2q/2-2~l/q !р^2?/2, e\l 2 q -¥ oo. □ Обращает на себя внимание огромный разрыв между верхней (3) и нижней (4) оценками для R(q,q). Его не удалось уменьшить, несмотря на колоссальные усилия большого числа работавших в этой области учёных. Более того, помимо Л(3,3) = 6, для диагональных чисел Рамсея известно лишь ещё одно точное значение /?(4,4) = 18. Несмотря на фантастически выросшее быстродействие современных компьютеров, они не смогли принести ощутимой пользы при определении чисел R(q,q). Заимство¬ ванный из [5.19] цикл задач, приводящих к нахождению /?(4,4), заинтере¬ сованный читатель может найти в конце данной главы. Вопросы для самопроверки 1. Каково минимальное число рёбер в 5-вершинном графе, гаранти¬ рующее существование в нём треугольника? а) 6; б) 7; в) 8. Ответы: 1 — а. 3.12. Перечисление графов Задачи перечисления графов имеют солидную историю. Ими стали заниматься со второй половины девятнадцатого века в связи с задачей оп¬ ределения числа изомеров органических соединений. При таком подходе атомы в формуле химического соединения рассматриваются в качестве S.12. Перечисление графов
Глава 3. Графы 68 вершин графа, а валентные связи между атомами — в качестве его рёбер. Валентность элемента при этом становится степенью вершины графа. Пионером в этих исследованиях был английский математик-алгебраист Артур Кэли (1821-1895). В 1937 году Д. Пойа опубликовал большую статью, в которой значительно продвинул исследования Кэли. Опираясь на лемму Бернсайда, он построил целую теорию перечисления с учётом симметрий, которая в настоящее время обычно называется теорией Пойа. В простейшей виде эта теория уже была рассмотрена нами в разделе 1.6. Много лет спустя после публикации Пойа выяснилось, однако, что многие его основанные на теории групп идеи были предвосхищены американцем Дж. Г. Редфилдом, чья единственная математическая работа 1927 года прошла незамеченной. Число помеченных объектов, как правило, находится легче, чем число непомеченных, и графы в этом отношении не составляют исключения. Чис- г2 ло всех п -вершинных помеченных графов, равное 2 " , устанавливается совершенно элементарно, но нахождение числа п -вершинных помечен¬ ных деревьев представляет уже нетривиальную задачу. Помеченные деревья. Единственным деревом с тремя вершинами явля¬ ется /3. На рис. 1 показаны три возможных способа расстановки на нём пометок. * 2 3 2 1 3 1 3 2 Рис.1 Это находится в соответствии с утверждением 1.3, согласно которому число помеченных графов, получаемых из заданного п -вершинного абст¬ рактного графа, равно п!/| Aut G |, где | Aut G \ — порядок группы его ав¬ томорфизмов. А так как Я3 имеет всего два автоморфизма — тождествен¬ ный и поворот цепи как целого вокруг средней вершины на 180°, то число способов расстановки пометок равно 3!/2 = 3. На рис. 2 показаны все 5-вершинные деревья, которых как абстракт¬ ных графов существует всего три. а) 6) в) Рис. 2 Посмотрим, сколько различных помеченных деревьев можно получить из каждого из них, используя в качестве меток числа {1,2,3,4,5}. В случае а) группа автоморфизмов состоит из двух элементов — тождественного и
поворота цепи как целого вокруг средней вершины на 180°. В случае б) 69 группа автоморфизмов изоморфна симметрической группе S4, так как ав¬ томорфизмом является любая перестановка, оставляющая среднюю вер¬ шину неподвижной, и число автоморфизмов равно 4! = 24 . И в случае в) автоморфизмов, как и в случае а), два, так как единственным нетождест¬ венным автоморфизмом является транспозиция двух правых висячих вер¬ шин дерева. Поэтому полное число помеченных 5-вершинных деревьев равно 5!/2 +5!/24+5!/2 = 125 = 53. Последнее равенство не является простым совпадением, а представ¬ ляет собой частный случай общей теоремы, которая, возможно, является самой знаменитой в перечислении графов. На это есть несколько причин. Во-первых, она даёт очень простую формулу для числа помеченных де¬ ревьев, что не так часто случается в подобного рода задачах. Во-вторых, она явилась первой перечислительной теоремой в теории графов, полу¬ ченной более 100 лет назад А. Кэли, чьё имя известно каждому изучавшему алгебру. И, в-третьих, во всей математике трудно найти теорему с большим числом известных различных доказательств. I Теорема 1 (А. Кэли, 1889). Число помеченных я-вер- „_2 шинных деревьев равно п Доказательство. Докажем сначала индукцией по числу вершин, что число помеченных л -вершинных деревьев, вершины vj, ..., v„ которых имеют соответственно степени dit... ,dn, для любого набора (с/j,..., dn), п удовлетворяющего условиям di >1, ^ dt = 2я - 2 , равно /=1 (П- 2)! (d\ -1)!... (dn -1)! При л = 1 утверждение, очевидно, справедливо. Пусть оно справедли¬ во для всех (л-1) -вершинных деревьев. В наборе (d\,... ,d„) обязатель¬ но найдётся dj = 1. Не теряя общности, будем считать, что dn = 1. Тогда удаление вершины v„ из дерева приводит к (л -1) -вершинному дереву с набором степеней вершин (d\,...,dj_\, dj -1, dj+|t..., dn_\), если верши¬ на v„ была смежной с вершиной vy в исходном дереве. А таких деревьев по предположению индукции имеется (л-3)! (</у-1)(л-3)! (4 -1)!...(й?у_1 -1)! (с/у-2)! (dj+] -1 )l..idn_x -1)! (d, -1)!... (rf„_, -1)! Поэтому число помеченных л -вершинных деревьев с набором степе¬ ней (d\,..., dn) равно 3.12. Перечисление графов
Глава 3. Графы 70 g (<*у-1Х»-3)1 (л-3)! "у1 (и~3)!(и-2) _ (л-2)! (</,-!)!...(</„_,-1)! (</,-1)!...(</„_,-1)Г Теперь для доказательства теоремы достаточно просуммировать по¬ лученную величину по всем допустимым наборам (d, d„) с помо¬ щью полиномиальной формулы (1.2.1) у (л — 2)! +.. .+с/„ =2п-2 (л-2)! к *1 ki+...+k„=n-2 h\...kn\ = (1+... + 1)"“2=л п-2 □ Абстрактные графы. Число абстрактных л -вершинных графов можно подсчитать как число различных относительно всевозможных подстановок вершин рёберных раскрасок графа Кп в два цвета — чёрный и белый, считая чёрное ребро ребром полученного графа, а белое — отсутствием реб¬ ра. В соответствии с теорией, развитой в разделе 1.6, для решения этой зада¬ чи достаточно найти цикловой индекс и сделать в него соответствующую подстановку. Трудность, однако, состоит в том, что исходной группой преоб¬ разований является группа всех л! подстановок вершин графа, т. е. симмет- л рическая группа Sn, а действует она на множестве Сп рёбер — двухэле¬ ментных подмножеств множества вершин. Исследование этого действия и составляет главную трудность задачи. Пусть подстановка л sSn имеет цикловой тип (у), у'г»• • • > Jn) и ей в цикловом индексе (1.6.2) соответствует член с^с^2... cJn". Чтобы понять, какова будет циклическая структура подстановки, порождаемой ею на множестве рёбер, рассмотрим сначала в качестве примера случай симмет¬ рической группы S4, цикловой индекс которой согласно (1.6.3) имеет вид ZSi (chc2.c3,c4) = ~(с,4 + 6с\с2 + 8с,с3 + Ъс\ + 6с4). Тождественная подстановка четырёх вершин порождает тождествен¬ ную подстановку шести рёбер графа, что может быть записано как с, —> с, . Подстановки вершин типа с, с2 порождают подстановки рёбер типа с, с2 , как показано на рис. 3.
0 1 О 2 О {1,2} ^>{1,4} "> эс: |^>4 О {2,3} cz: {3,4} ^>{2,4} Рис. 3 2 Подстановки типа qс3 порождают подстановки типа с3 (рис. 4). Рис. 4 71 «N 2 2 2 Подстановки типа с2 порождают подстановки типа q с2 (рис. 5). > О 0.3}« (1,2) О ИЛ < {3,4} *{2,4} •{2,3} Рис. 5 И, наконец, подстановки с4 порождают подстановки с2с4 (рис. 6). {1,3}С1П>{2,4} > {1,2} {1,4} {2,3} {3,4} Рис. 6 В итоге получаем, что цикловой индекс действия 54 на множестве рёбер оказывается равным
Глава 5. Графы Zc(2) (с1>с2>сЗ’с4>с5’сб) = Т7 (с\ +9q2C2 +8с| +6 С2С4). 24 Теперь для подсчёта полного числа абстрактных 4-вершинных графов достаточно вычислить значение циклового индекса при q = с2 = с3 = с4 = = с$ = с6 = 2, что даёт —(26 + 9-22 - 22 + 8-22 +6-2-2) = 11. 24 ^ Если же вместо каждой переменной с,- подставить w‘ + b‘ (белые и чёр¬ ные рёбра) и раскрыть скобки, то коэффициент при члене w6~qbq даст число графов с q рёбрами. Так как в действительности цвета здесь не играют ка¬ кой-либо роли, то вместо с,- можно подставить 1 + х1 и тогда число графов с q рёбрами даст коэффициент при xq . Сделав это, получим многочлен 1 + х + 2х2 + Зх2 + 2х4 + х^ + х^, коэффициенты которого и выражают число графов с различным числом рёбер. Все эти графы представлены на рис. 7. И П ь: ы и Рис. 7 Рассмотрев задачу на примере группы S4, перейдём к общему слу¬ чаю. Пусть подстановка п е Sn имеет цикловой тип (y'j, у2»- - • > Л) • Чис¬ ло таких подстановок даётся формулой (1.6.1). Найдём цикловой тип под¬ становки, возникающей при действии к на множестве рёбер. Возьмём ребро {i'i, г2} и посмотрим, какой длины цикл оно опишет при многократ¬ ном применении подстановки л к вершинам t) и г2. Рассмотрим сначала случай, когда ;'| и i2 принадлежат одному и тому же циклу подстановки л. На рис. 8 показаны подстановки рёбер, индуцируемые переставляющим вершины циклом длины k при & = 2,3,4,5,6.
73 Рис. 8 Обобщая данный пример, легко понять, что если к = 2/ + 1, то в рё¬ берной подстановке возникает i циклов длины 2 i +1, а если к = 2 i, то возникает /-1 циклов длины 2г и один цикл длины i. Это можно услов¬ но записать следующим образом С2М c2i+\ и с2i -* ci c2i1 > где символы слева от стрелки отражают цикловую структуру подстановки вершин, а справа — цикловую структуру соответствующей подстановки рёбер. В подстановке я имеется циклов длины к. Поэтому вклад в цикловую структуру подстановки рёбер от рёбер, концы которых лежат внутри каждого из циклов, запишется как Jim ч JJim „ fJv ч Ju c2i+\ ^ C2M и c2i ^ci c2i Пусть теперь вершины j| и г2 принадлежат различным циклам под¬ становки я, один из которых имеет длину /, а другой — т . Тогда длина орбиты ребра {/(, г2} будет равна [1,т\ — наименьшему общему кратно¬ му чисел / и т . Число же таких циклов равно 1т /[1,т] = (1,т) — наи- 3.12. Перечисление графов
Глета S. Грофы 74 большему общему делителю чисел / и т . Таким образом, вклад от цик¬ лов длины lam при / Ф т запишется как f*Jl tn С1 ст JljmO’’") С[1,т] Вклад же от различных циклов одной и той же длины к будет равен с7* Чс kCi Тем самым рассмотрены все возможные случаи положения концов ребра. Теперь, воспользовавшись формулой (1.6.2) для циклового индекса симметрической группы S„, переставляющей вершины графа Кп , можно выписать и явную формулу для действия этой группы на множестве рёбер этого графа. Теорема 2. Цикловой индекс симметрической группы подстановок вершин графа Кп, действующей на множе¬ стве его рёбер, равен ^5(2)(Cl,C2,...,Cc2) = ( -- I и! М2 Л*° |л+2л+—+иЛ=и И! [(«-1)/2] [«/ 2] п П 4ЙГ'П Ч c2i х *ЛУ/1 1=1 1=1 X П №<тйп-\ C[/,m] t"/2] П‘ k=\ kCl Хотя эта формула сложна, простой анализ позволяет получить прин¬ ципиальные выводы, относящиеся к графам с большим числом вершин. Следующий результат согласно авторитетным свидетельствам принадле¬ жит Пойа, хотя и не был им опубликован. Теорема 3. Число абстрактных л-вершинных графов при с2 / л-мо асимптотически равно 2 "/л!. Доказательство. Из результатов раздела 1.6 и вышеприведённых рассуждений следует, что это число равно 112ВД, n\~i
где Г(/г) — число циклов, возникающих при действии подстановки л е Sn вершин графа К„ на множестве его рёбер. Тождественная подстановка eeSn порождает на множестве рёбер Г(е) = С„ циклов единичной дли¬ ны. Доказательство теоремы сводится, таким образом, к доказательству того, что вклад остальных подстановок асимптотически равен нулю и справедлива асимптотика £ 2ГМ ~ 2С”, л-мо. /Г€$„ Цикловую структуру подстановки л е S„ вершин графа Кп будем записывать как (j\, у2, ••• > Л)» а цикловую структуру её действия на мно- " S жестверёбер — как (У(, У2, •••. ^с2)> X'Л =” » Х'Л’ = ■ " /=1 »=1 Рассмотрим множество Рк тех подстановок л е Sn , у которых д = П = п - к, при этом jj ^ к/2, так как = к. Имеем 1=2 75 | Рк\<Скпк\ = -^-<пк-, (п-к)\ С2 с2 с2 I-// <v,+^Z4 =-/.+}(Q2--/.)=^(C„2+-/.)- (3) 1=1 /=2 z i'=2 Далее У] = С2 + у2 = С2_* + у2, а так как у2 < к/ 2 и к < п ,то Г(л) = УУ/=У| + •Л * С2_* + ^ = С2-А:2” * 2 < С2 Теперь с помощью (3) для я- е получаем Г(я') < С2 ~к~~ ■ Остальное не составляет труда С„-к- Е 2Г"’=Х Е ^Е»** ■ 4 =2с. Z « ireS„ *=0;r€ft А=0 jt=0V2 к=0 ;г€/] А=0 / \И+1 1- 2е» — И I U(n-2)/4J ->2С", л —> 00 . 2 (”-2)/4 3.12. Перечисление графов
Глава 3. Графы 76 qL Число помеченных п -вершинных графов равно 2 " , поэтому из до¬ казанной теоремы и утверждения 4.1 непосредственно вытекает Следствие 1. Почти все графы не имеют других авто¬ морфизмов, кроме тождественного. Таким образом, говоря о почти всех графах, можно не различать аб¬ страктные и помеченные графы. Вопросы для самопроверки 1. Сколько существует попарно различных помеченных п -вершинных графов с т рёбрами? а)2ш; б) c;U/2; в)иГ 2. Сколько существует помеченных 6-вершинных деревьев? а) 1290; б) 1296; в) 1302. 3. Сколько помеченных графов можно получить из абстракт¬ ного графа G ? а) 30; б) 40; в) 60. Ответы: I — б, 2 — б, 2 — а. Задачи для самостоятельного решения 1. Доказать, что в произвольном графе число вершин нечётной степени чётно. 2. Для каких пик существуют регулярные п -вершинные графы сте¬ пени к? 3. Доказать, что в произвольном графе всегда найдутся две вершины одинаковой степени. 4. Какое максимальное число висячих вершин возможно в п -вершин¬ ном дереве? 5. Какого максимального значения может достигать сумма степеней двух смежных вершин в п -вершинном дереве? 6. Доказать, что каждое дерево имеет либо одну центральную вершину, либо две смежные центральные вершины. 7. Найти число п -вершинных бинарных деревьев. 8. Граф называется самодополнительным, если он изоморфен своему дополнению. Доказать, что число вершин п самодополнительного графа имеет вид п = 4к или п = 4к +1. 9. Доказать, что в связном графе любые две длиннейшие простые цепи имеют общую вершину. 10. Существование сколь длинного простого цикла в графе можно гаран¬ тировать, если степени всех вершин графа не меньше d (d > 2)1
11. Изоморфны ли графы G] и G2 ? 77 12. Указать группу автоморфизмов простой цепи Рп , простого цикла Сп и графа Петерсена. 13. Можно ли королём обойти шахматную доску 8x8, побывав на каж¬ дом поле по одному разу и вернувшись на исходную позицию? Тот же вопрос для доски пхп . 14. Показать, что если в графе все вершины имеют степень 2 или 3, то условие, чтобы в окрестности каждой вершины степени 3 была бы хотя бы одна другая вершина степени 3, является необходимым для гамильтоновости графа. 15. Найти гамильтонов цикл в двудольном графе, образованном средними слоями 5-мерного куба. 16. Является ли граф G гамильтоновым? Задачи для самостоятельного решения
Глава 5. Графы 78 17. Показать, что произведение гамильтонова графа и графа, содержаще¬ го остовную цепь, есть гамильтонов граф. 18. Показать, что связный граф, группа автоморфизмов которого содер¬ жит полный цикл, является гамильтоновым графом. 19. Показать, что граф ЛГ2*+1 может быть разложен в объединение п по¬ парно рёберно-непересекающихся остовных циклов. 20. В п -вершинном графе G степени вершин d\,d2,...,dn . Сколько вер¬ шин и сколько рёбер в рёберном графе 1(G) ? 21. Для графа G указать необходимые и достаточные условия для того, чтобы его рёберный граф L(G) был эйлеровым. 22. Доказать, что рёберный граф L(G) гамильтонов, если а) граф G эйлеров; б) граф G гамильтонов. 23. Докажите, что в произвольном турнире с не менее чем тремя верши¬ нами либо из каждой вершины можно попасть в любую другую, либо выполнения этого свойства можно добиться сменой ориентации од¬ ной из дуг турнира. 24. Доказать, что куб любого связного графа с не менее чем тремя вер¬ шинами является гамильтоновым графом (J. J. Karaganis, 1968). 25. Множество из п предметов нужно разложить по ящикам. Каждая пара предметов может быть совместима или несовместима. Совместимые предметы могут лежать в одном ящике, а несовместимые обязаны быть в разных. Отношение совместимости задано с помощью графа G, в котором совместимым предметам соответствуют смежные вершины. Выразить минимальное число необходимых для размещения ящиков как функцию графа G. 26. Сколько к -раскрасок существует для помеченного п -вершинного дерева? 27. Найти хроматическое число и хроматический индекс п -мерного куба. 28. С помощью формулы включения и исключения выразить число к -рас- красок графа G(V, Е) через число его остовных подграфов с / рёбрами и т компонентами связности, 0 £ / £ | £ |, 1 < m < | F |. (Н. Whitney, 1932) 29. Показать, что Л(3,4)<9, т. е. в любом 9-вершинном графе найдётся трёхэлементная клика или четырёхэлементное независимое множество. 30. Показать, что /?(3,4)>8 , т. е. существует 8 -вершинный граф, не имею¬ щий ни трёхэлементной клики или четырёхэлементного независимого множества. С учётом решения предыдущей задачи это даёт Л(3,4)=9. 31. Показать, что £(4,4) = 18.
Следующая задача, не связанная непосредственно с теорией графов, 79 является типичным утверждением рамсеевского типа. 32. Показать, что каждая последовательность попарно различных целых 2 чисел длины п +1 содержит возрастающую последовательность дли¬ ны п +1 или убывающую последовательность длины п +1. Литература 1. Баранов В. И., Стечкин Б. С. Экстремальные комбинаторные задачи и их приложения. М.: Физматлит, 2004. 2. Басакер Р, Саати I Конечные графы и сети. М.: Наука, 1974. 3. БержК. Теория графов и её применения. М.: ИЛ, 1962. 4. Дистелъ Р. Теория графов. Новосибирск: ИМ СО РАН, 2002. 5. Емеличев В. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. Лекции по теории графов. 2-е изд. М.: Книжный дом «Либрокомл/URSS, 2009. 6. Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978. 7. ЛовасЛ., Пламмер М. Прикладные задачи теории графов (Теория паросоче- таний). М.: Мир, 1998. 8. Оре О. Теория графов. 2-е изд. М.: Книжный дом «JIh6pokom»/URSS, 2009. 9. Прим Р. К. Кратчайшие связывающие сети и некоторые обобщения // Кибер¬ нетический сборник. Вып. 2. М.: Мир, 1961. С. 95-107. 10. Рингель Г. Теорема о раскраске карт. М.: Мир, 1977. 11. Свами М., Тхуласираман К. Графы, сети и алгоритмы. М.: Мир, 1984. 12. Tamm К Теория графов. М.: Мир, 1988. 13. Уилсон Р. Введение в теорию графов. М.: Мир, 1977. 14. Харари Ф. Теория графов. 4-е изд. М.: Книжный дом <JIh6pokom»/URSS, 2009. 15. Харари Ф., Палмер Э. Перечисление графов. М.: Мир, 1973. 16. ЭвнинА. Ю. Задачник по дискретной математике. М.: Книжный дом «Либро- kom»/URSS, 2010. 17. Jensen Т. R., Toft В. Graph Colouring Problems. N. Y.: John Wiley & Sons, 1995. Комментарии к литературе Монографии [3] и [8] являются признанными классическими руково¬ дствами по теории графов, оказавшими заметное влияние на развитие этой дисциплины. Читатель должен помнить, однако, что терминология в этих написанных уже около полувека назад книгах может несколько отли¬ чаться от современной. Более современное изложение можно найти в [14] и [5], а монография [4] является современным учебником углублённого типа. Небольшая книга [13] является компактным, но достаточно предста¬ вительным введением в теорию графов. Широкий обзор теоретических и прикладных проблем теории графов, представленный в весьма доступной форме, читатель найдёт в [2]. Монография [11] — обширная книга по гра¬ фам и алгоритмам на графах с приложениями к электрическим цепям, [6] целиком посвящена алгоритмическим аспектам теории графов, а [9] — ори¬ гинальная работа Прима с описанием алгоритма построения минимального Литература
Глава 3. Графы 80 остовного дерева. Монография [15] посвящена задачам перечисления, [10] — раскраскам карт на произвольных поверхностях, а [7] является подлинной энциклопедией по паросочетаниям. Книга [12], написанная учёным, внёс¬ шим существенный вклад в развитие теории графов, представит интерес для профессионалов. В [1] заинтересованный читатель сможет ознако¬ миться с оригинальной работой Эйлера, вдохновлённой кёнигсбергскими мостами. Монография [17] является авторитетным источником по вопро¬ сам раскраски графов. Большое число содержательных задач по теории графов заинтересованный читатель сможет найти в [16].
Глава 4 Алгоритмы Неформальное определение алгоритма 4.1. Понятие алгоритма Понятие алгоритма является фундаментальным в современной математи¬ ке, и его значение постоянно возрастает. Используемое пятьдесят лет назад лишь в узком кругу математиков, теперь слово «алгоритм» известно каж¬ дому школьнику. Это связано с появлением компьютеров и всё более ши¬ роким проникновением их в нашу жизнь. Огромна роль алгоритмов в дис¬ кретной математике. Если перечислительную комбинаторику можно срав¬ нить с фундаментом, то теория алгоритмов —• стержень, пронизывающий всё здание дискретной математики. Говоря неформально, алгоритм — это пред¬ писание, задающее процесс решения опреде¬ лённого класса задач. Алгоритм задаётся набо¬ ром инструкций, определяющих выполняемые в процессе решения действия в зависимости от ситуации, возникающей по ходу решения. Инструкции или команды алгоритма управляют процессом решения, состоящим в последовательном выполнении определённых эле¬ ментарных операций — шагов алгоритма. Процесс начинается с предъяв¬ ления алгоритму исходных данных, выделяющих данную индивидуальную задачу из множества решаемых алгоритмом задач, и за конечное число шагов заканчивается получением её решения. Описание задачи является, как говорят, входом алгоритма, а ответ на вопрос задачи — его выходом. Число же элементарных операций — шагов алгоритма, выполняемых при решении задачи, называют временем решения задачи или трудоёмкостью алгоритма. Благодаря наличию алгоритма решение задачи становится ме¬ ханическим вычислительным процессом, выполнение которого может быть поручено компьютеру. Разумеется, алгоритмы в широком смысле этого слова могут встре¬ чаться не только в математике. Грамотно написанная инструкция по ис¬ пользованию какой-то аппаратуры имеет черты алгоритма. Алгоритмом можно считать стратегию в некоторой игре, гарантирующую достижение определённого результата, например, способ постановки мата чёрному ко¬ ролю белой ладьёй и королём в шахматах. Но нами будут рассматриваться лишь алгоритмы решения математических задач. Примерами математических алгоритмов являются изучаемые в школе правила сложения, вычитания, умножения и деления столбиком. Здесь ис¬ ходными данными являются упорядоченные пары натуральных чисел, за-
Глава 4. Алгоритмы X Мухаммед аль-Хорезми 82 „,, , писанные в десятичной системе, а результатом — также натуральное число в десятичной сис¬ теме. Само слово «алгоритм» происходит от имени среднеазиатского математика Мухаммеда бен Муссы аль-Хорезми (Мухаммеда, сына Муссы, уроженца Хорезма), работавшего в багдадском «Доме мудрости» и давшего в 825 году правила выполнения четырёх арифметических операций в десятичной системе счисления. Мухаммед аль-Хорезми был одним из математиков арабского мира, ставших связую¬ щим звеном между античной математикой и европейской математикой эпохи Возрождения, продолжением которой является современная мате¬ матическая наука. От названия другого его математического трактата «Ки- таб аль-джебр Валь-мукабала», посвященному решению линейных и квад¬ ратных уравнений, произошло и слово «алгебра». До середины XX века слово «алгоритм» ассоциировалось в основном с алгоритмом Евклида для нахождения наибольшего общего делителя двух натуральных чисел. С появлением компьютеров понятие алгоритма вошло в математический обиход и стало ассоциировать с компьютерной программой, решающей задачи определённого класса. Алгоритм действи¬ тельно тесно связан с компьютером, и компьютерная программа является формой представления алгоритма на некотором алгоритмическом языке программирования. Однако понятие алгоритма намного глубже и тесно связано с логическими основами самой математики. Возникшая в начале XX века теория алго- Алгоритмическая разрешимость, ритмов в первую очередь занялась вопросом неразрешимость # алгоритмической разрешимости определённого класса задач. Пусть, например, требуется уста¬ новить, имеет ли целые корни данное алгебраическое уравнение с целыми коэффициентами апхп + а„_\Хп~1 +... + щх + а0 = 0 , где а0, а\,..., a„_t, ап — целые числа. Данная задача алгоритмически разрешима, так как если это уравне¬ ние имеет целый корень, то он обязан делить а0 • Поэтому для решения данной задачи достаточно найти все делители числа oq , которых конечное число, и проверить, есть ли среди них корни уравнения. А теперь рассмотрим более общую задачу. Пусть имеется полином от произвольного числа переменных с целыми коэффициентами /’(jcj , х2, , хт) и требуется установить, имеет ли он целые корни. Можно ли ука¬ зать алгоритм, дающий ответ на этот вопрос для любого полинома Р ? Это и составляет содержание знаменитой десятой проблемы Гильберта1, 1 Давид Гильберт (1862-1943) — крупнейший немецкий математик конца девятнадцатого - начала двадцатого века. Оказал значительное влияние на развитие математической логики и
поставленной им в 1900 году на II Международном математическом кон- 83 грессе в Париже. В 1970 году советским учёным Ю. В. Матиясевичем бы¬ ло доказано, что данная проблема алгоритмически неразрешима. Трудность её решения состояла в том, что¬ бы показать, что в необозримом множестве * Машина Тьюринга всех возможных алгоритмов нет алгоритма, решающего данную задачу. Для того чтобы подобный результат оказался возможным, недостаточно приведённой выше интуитивно-описательной характеристики алгоритма, а требуется математически точное определение этого понятия. Ряд подобных определений был независимо дан несколь¬ кими учёными в 30-е годы XX века. Позже была доказана их эквивалент¬ ность, что породило уверенность в правильности формализации понятия алгоритма. Возможно, что наиболее известным среди них оказалась ма¬ шина Тьюринга — гипотетическое вычислительное устройство, предло¬ женное английским логиком Аланом Тьюрингом (1912-1954) в 1936 году. Среди других определений оно обладало большей наглядностью и в опре¬ делённой степени явилось прообразом современных компьютеров. Тьюринг пришёл к нему, анализируя работу человеческого мозга в процессе выпол¬ нения вычислений. Исходным пунктом его концепции определения алго¬ ритма был следующий сформулированный им тезис: Поведение вычислителя в любой момент определяется символами, кото¬ рые он наблюдает, и «состоянием его ума» в этот момент. Алан Тьюринг (1936) Основными элементами машины Тьюринга являются: 1) потенциально бесконечная в обе стороны лента, разбитая на ячейки, в которых могут записываться соответствующие данной машине сим¬ волы,; 2) читающее устройство, позволяющее считывать находящуюся на ленте информацию, причём в каждый момент считывается лишь одна ячейка ленты, но устройство способно передвигаться по ленте; 3) множество внутренних состояний, в которых может находиться маши¬ на; одно из них является начальным, с него начинается работа машины; одно — заключительным, попав в него, машина останавливается; 4) задающая работу машины программа, которая в зависимости от теку¬ щего внутреннего состояния и читаемого символа определяет в каждом такте работы новое внутреннее состояние, записываемый в читаемую ячейку символ и возможное передвижение читающего устройства по ленте на одну ячейку влево или вправо. В начале работы в ячейках ленты записано конечное множество сим¬ волов, в кодированной форме представляющее решаемую машиной задачу, теории алгоритмов. С 1895 года работал в Гёттингенском университете, ставшим благодаря его деятельности крупнейшим мировым математическим центром. 4Л. Понятие алгоритма
Глава 4. Алгоритмы 84 машина находится в начальном внутреннем состоянии, читающее устрой¬ ство обозревает конкретную ячейку ленты. Процесс решения начинается и протекает детерминировано по тактам в соответствии с программой. В каждом такте изменяется внутреннее состояние, в читаемую ячейку за¬ писывается новый символ, а читающее устройство может передвинуться влево или вправо. Так происходит до тех пор, пока машина не достигнет заключительного состояния. Записанная в этот момент на ленте информа¬ ция представляет в кодированном виде решение задачи. Детально машина Тьюринга будет рассмотрена в разделе 7. В соответствии с общепринятым в настоящее время взглядом интуи¬ тивное понятие алгоритма отождествляется с точно определённым поняти¬ ем машины Тьюринга. Это соглашение принято называть тезисом Тьюрин¬ га. Таким образом, в соответствии с тезисом Тьюринга задача является ал¬ горитмически разрешимой в том и только в том случае, если существует машина Тьюринга, решающая данную задачу. Представление алгоритма в виде машины Трудоёмкость Тьюринга оказалось удобным и наглядным, так алгоритма * , , как напоминает функционирование физически существующего вычислительного устройства. Но с появлением реальных электронных компьютеров во второй половине XX века центр тяжести в алгоритмических исследованиях переместился от принципиальной воз¬ можности разрешимости к более практичному вопросу трудоёмкости ре¬ шения задачи. Конкретная корректно поставленная задача дискретной ма¬ тематики обычно не встречает принципиальных затруднений в смысле разрешимости. Поставленная на конечном множестве, она, как правило, может быть решена тривиальным алгоритмом переборного типа. Принци¬ пиальным, однако, является число элементарных операций, выполняемых алгоритмом в процессе решения, так как это число может превысить воз¬ можности самых мощных современных компьютеров. С практической же точки зрения нет разницы между неразрешимой задачей и задачей, для решения которой требуется время, многократно превышающее время че¬ ловеческой жизни. В вопросах оценки трудоёмкости решения машина Тьюринга также оказывается полезной, так как число тактов её работы ха¬ рактеризует трудоёмкость. Каждый класс рассматриваемых в дискретной математике задач со¬ стоит, как правило, из однотипных задач различной размерности. С ростом размерности растёт и трудоёмкость решения. Так, трудоёмкость арифме¬ тических операций зависит от величины участвующих в них чисел, а если решается некоторая задача на графе (например, исследуется его гамильто- новость), то трудоёмкость решения зависит от числа вершин графа. Однако даже для задач одинаковой размерности трудоёмкость их решения заданным алгоритмом может существенно различаться. Среди задач фиксированной размерности для данного алгоритма могут встречаться как более лёгкие, так и более трудные. Поэтому трудоёмкость алгоритма можно оценивать
как временем решения наиболее трудной задачи данной размерности, так 85 и средним временем решения по всему множеству задач данной размерно¬ сти. Анализ в среднем более практичен, однако он требует усреднения по множеству решаемых задач, которое не всегда однозначно. Современное состояние теории лучше приспособлено к исследованию труднейшего случая, и им будет ограничено наше рассмотрение. Пусть размерность задачи выражается числом п . Это могут быть, на¬ пример, п чисел ограниченной величины или п вершин графа, или ис¬ следуется число, длина десятичной записи которого равна п . Будем гово¬ рить, что трудоёмкость алгоритма есть О (/(«)) (читается «о-большое от /(и)»), если для всех задач данного класса число операций не превосхо¬ дит с • /(и), где / (и) — некоторая растущая с ростом п функция, ас — не зависящая от п константа. Если число операций есть 0(п), то говорят, что алгоритм имеет линейную трудоёмкость, если 0(п ) — то квадра¬ тичную и т. д. Разумеется, чем ниже степень к в выражении 0(пк), тем предпочтительней данный алгоритм. Здесь, однако, имеются две существенно различные возможности: 1) число операций ограничено степенной функцией / = пк , или, как го¬ ворят, полиномом степени к, где к — некоторая константа; 2) число операций растёт быстрее любой степенной функции, например 2П или как 2 . Алгоритмы, трудоёмкость которых есть * Эффективные 0(пк)), т. е. число операций ограничено поли- алгоритмы номом, называют полиномиальными или эффективными алгоритмами. Для большинства используемых эффективных алгоритмов константа к принимает небольшие значения, среди которых наиболее часто встречаю¬ щимися являются к = 1, 2, 3. Поэтому такие алгоритмы успешно решают возникающие на практике задачи. Наоборот, если число операций растёт быстрее любой степенной функции, то это существенно ограничивает размерность решаемых задач даже для самых быстродействующих компьютеров. Так, например, если задача связана с нахождением в конечном п -элементном множестве под¬ множества с заданными свойствами, то её можно решить с помощью три¬ виального алгоритма, перебирая все 2” подмножеств. Однако такой пере¬ бор осуществим лишь для небольших значений п . Если задачи некоторого класса оказываются полиномиально разреши¬ мыми, то встаёт вопрос о нахождении для них наиболее эффективного ал¬ горитма. Этот вопрос является особенно важным, если решаемая задача яв¬ ляется некоторой стандартной процедурой, к которой многократно обраща- 4.1. Понятие алгоритма
Глава 4. Алгоритмы 86 ются при решении других задач. Поистине гениальной прозорливостью обладал во многом предвосхитивший развитие современной вычисли¬ тельной техники английский математик Чарльз Бэббидж (1792-1871), на¬ писавший в 1864 году: Как только появится аналитическая машина, она, безусловно, определит дальнейший путь развития науки. Всякий раз, когда с её помощью будет най¬ ден какой-либо результат, возникнет вопрос: «Существует ли метод вычисле¬ ний, которым можно получить на этой машине тот же результат, но затратив минимум времени?» Чарльз Бэббидж (1864) Сортировка. Рассмотрим в качестве примера часто встречающуюся на практике задачу линейного упорядочивания числового массива. Пусть за¬ дано п чисел {alt а2,, ап }. Требуется найти такую их перестановку (а,- , а,- ,..., а,- ), чтобы было выполнено а() < а,2 <... < , другими сло¬ вами, переписать числа в неубывающем порядке. Такую задачу называют сортировкой массива. В качестве элементарной операции алгоритма будем рассматривать операцию сравнения двух чисел. Подобные задачи сортировки могут встретиться и в сугубо практиче¬ ской деятельности. Пусть, например, требуется упорядочить по весу п предметов с помощью минимального числа взвешиваний, используя весы с двумя чашами, позволяющие сравнивать веса двух предметов. Или пусть требуется линейно упорядочить по твёрдости имеющееся множество ме¬ таллических сплавов с помощью минимального числа попарных сравне¬ ний между ними. Тривиальный алгоритм сортировки, состоящий в генерировании всех п! перестановок и проверке условия монотонности, требует п! (л -1) сравнений в наихудшем случае и л!(и-1)/2 сравнений в среднем. Такое число элементарных операций не позволяет осуществить его уже при п > 20. Более разумным представляется нахождение минимального элемента массива и помещение его на перше место, затем нахождение минимального элемента в оставшейся части массива и помещение его на второе место и т. д. Так как при нахождении минимального элемента в массиве длины / тре¬ буется i -1 сравнений, то данный алгоритм имеет трудоёмкость (л-1) + (и-2) + ... + 1 = и(и-1)/2 = о(и2). Другим разумным подходом является метод вставок. На каждом шаге алгоритма здесь имеется линейно упорядоченное по возрастанию подмно¬ жество исходного массива, и очередной элемент вставляется в него в соот¬ ветствующее, найденное путём сравнений место. При этом, если сравнения вставляемого элемента выполнять по порядку слева направо со всеми эле¬ ментами линейно упорядоченного массива (простая вставка), то в наи¬ худшем случае это потребует его сравнения со всеми элементами массива,
и число необходимых сравнений, а следовательно, и трудоёмкость алго- 87 ритма снова окажется равной 1 + 2 + ... + (и-1) = л(и-1)/2 = о(л2). Однако вставку можно выполнять эффективнее, если вставляемый элемент сравнить со средним элементом линейного массива, а затем, в за¬ висимости от результата сравнения, перейти к его левой или правой поло¬ вине, где также производить сравнение со средним элементом (бинарная вставка). При каждом таком сравнении линейный массив, в котором ищется место для вставки, сокращается вдвое, и число необходимых срав¬ нений для вставки элемента в массив длины / методом подобной дихото¬ мии становится по порядку равным log2 i, что позволяет оценить трудо¬ ёмкость алгоритма как log2 / = 0(п log и). А вот другой интересный алгоритм, называемый сортировкой слияни¬ ем, который также решает задачу линейного упорядочивания за время 0(n\ogn). Допустим, что имеется два линейно упорядоченных подмно¬ жества исходного массива (Д|, а2,..., а^ ) и (<bj, й2,..., 6/). Покажем, как их можно объединить в один линейно упорядоченный массив с помо¬ щью не более чем k +1 -1 сравнений. Сравниваем первые элементы мас¬ сивов и между собой. Наименьший из них является первым элемен¬ том строящегося объединённого линейного массива. Забираем этот эле¬ мент из того массива, где он находился, и ставим на первое место формируемого массива. Сравнивая затем снова первые элементы двух массивов, находим второй элемент формируемого массива и т. д. Будем для простоты считать число п степенью двойки: п = 2т . Разо¬ бьём п элементов на пары и упорядочим каждую пару. Затем сольём пары в четвёрки и упорядочим каждую четвёрку. Затем четвёрки сольём в вось¬ мёрки и т. д. Каждый переход на следующий уровень требует выполнения не более чем п сравнений. Умноженное на число уровней т = log2 п, это дает 0(/Hog/j) сравнений. Сортировка слиянием может быть схематически пред¬ ставлена с помощью корневого дерева, как показано на рис. 1 для п = 8 . Использованный здесь приём, состоящий в разбиении исходной зада¬ чи на подзадачи, решении этих подзадач и получении из них решения ис¬ ходной задачи, носит достаточно общий характер и в литературе по алго¬ ритмам часто называется приёмом «разделяй и властвуй». Возникает, однако, вопрос, существует ли лучший алгоритм сортиров¬ ки со временем работы в наихудшем случае не 0(/ilog«), а, например, 0(п log log и) ? Нет, такого алгоритма не существует. И это легко показать следующим образом. Каждый алгоритм сортировки можно представить в виде бинарного дерева, узлами которого являются попарные сравнения 4.1. Понятие алгоритма
Глава 4. Алгоритмы элементов массива. Для простоты будем считать все элементы числового массива различными. Тогда двум возможным исходам сравнения будут со¬ ответствовать две ветви дерева. Сравнение двух элементов а\ и а2 будем записывать как at о а2 и считать, что при Я| < а2 выбирается левая ветвь дерева, а при aj > а2 — правая. При таком представлении алгорит¬ ма листьями дерева являются перестановки чисел {а\, а2,..., ап). На рис. 2 с помощью такого бинарного дерева представлен алгоритм сорти¬ ровки для п = 3 . Листья этого дерева изображены прямоугольниками, а все остальные узлы — овалами. Рис. 2 При таком представлении алгоритма сортировки его максимальная трудоёмкость выражается высотой дерева. Если высота бинарного дерева L равна h , то оно имеет не более 2 листьев. Число же листьев, являющих¬ ся всевозможными перестановками п чисел, равно л!. Отсюда имеем 22й > и!.
89 Логарифмируя и используя формулу Стирлинга, получаем h > log2 п! ~ п log2 п, п -> оо, что и доказывает отсутствие алгоритма, гарантирующего сортировку за время, существенно меньшее п log п. Алгоритм Евклида. В качестве другого классического примера рассмотрим алгоритм Евклида для нахождения наибольшего общего делителя двух чи¬ сел. Изложенный в «Началах» Евклида, написанных около 300 г. до н. э., этот алгоритм остаётся мощным инструментом теории чисел. Пусть даны два натуральных числа пит, где п>т. Требуется най¬ ти их наибольший общий делитель d = (п,т). Указанный Евклидом спо¬ соб решения этой задачи состоит в следующем. Разделив число п на т с остатком, получаем n = kxm + rx, где остаток гх либо 0, либо положитель¬ ное число, меньшее т : 0 < ^ < т . Если остаток г равен нулю, то это оз¬ начает, что т | п (т делит п) и, стало быть, (и, т) = т . Если же остаток не равен нулю, то повторяем операцию деления с остатком, но делимым является делитель предыдущего шага, а делителем — его остаток, и так до тех пор, пока не получится остаток, равный нулю. Последний положитель¬ ный остаток в этом процессе и является наибольшим общим делителем чи¬ сел пит. Процесс описывается следующей цепочкой равенств: п = кхт + гх; т = к2гх + г2; 'i=V2+'3; г2 = кАгг + г4; (1) гр-4 ~ ^р-2гр-Ъ + гр-2 > гр-3 — ^p-\rp-2 + rp-1 > гр-2 ~ kprp-1 • {п,т) = гр_х. Алгоритм Евклида можно представить следующей блок-схемой (рис. 3). Для обоснования алгоритма Евклида достаточно заметить, что из ра¬ венства п = кхт + гх вытекает, что каждый делитель чисел пит является делителем чисел т и гх и наоборот, следовательно (п,т) = (т,гх). По¬ этому суть алгоритма Евклида заключается в том, что он сводит задачу на¬ хождения наибольшего общего делителя двух чисел к аналогичной задаче для меньших чисел. Процесс завершается, когда одно из этих двух чисел делит другое, становясь, таким образом, ответом на вопрос задачи. 4.1. Понятие алгоритма
Глава 4. Алгоритмы вход: п, т Рис. 3 Приведём пример использования алгоритма Евклида. Пусть требует¬ ся найти наибольший общий делитель чисел 7200 и 3132. Последователь¬ ные шаги алгоритма в этом случае таковы: 7200 = 2x3132 + 936; 3132 = 3x936 + 324; 936 = 2x324 + 288; 324 = 1x288 + 36; 288 = 8x36. (7200, 3132) = 36. Из алгоритма Евклида следует также чрезвычайно важный для тео¬ рии чисел вывод о том, что наибольший общий делитель двух чисел мо¬ жет быть линейно с целыми коэффициентами через них выражен: (т,п) = sn + tm, где s и t — целые числа (одно из которых отрицательно). В самом деле, из первого равенства цепочки (1) получаем г\ = п-^т, т. е. q линейно выражается через п и т. Из второго равенства г2=т- -к2Г\, т. е. г2 линейно выражается через т и . Но /| линейно выража¬ ется через и и т, поэтому г2 также линейно выражается через пит: г2 = г-к2(п-к\т) = (к\к2 +1 )т-к2п. Продолжая движение по цепочке, окончательно получаем, что наи¬ больший общий делитель двух чисел линейно с целыми коэффициентами через них выражается. В рассмотренном примере имеем: 36 = 23x3132- -10x7200. Нахождение подобной линейной комбинации с целыми коэф¬ фициентами для наибольшего общего делителя является важной операци¬ ей в теории чисел и называется расширенным алгоритмом Евклида.
Отметим важный частный случай, когда (и, т) = 1, т. е. числа пит 91 взаимно просты. В этом случае расширенный алгоритм Евклида позволя¬ ет найти такие числа s и t, что \ = sn + tm, а это означает, что в кольце Z/nZ = {0,1,2,..., « — 1} элемент t обратим, и обратным к нему является элемент т. Рассмотрим теперь вопрос о трудоёмкости алгоритма Евклида. Цик¬ лически повторяемая операция деления с остатком является единственной операцией этого алгоритма, и число её повторений служит естественной мерой его трудоёмкости, которая зависит от величины поступающих на его вход чисел. Длина записи этих чисел в позиционной системе счисле¬ ния (десятичной, двоичной или любой другой, по соглашению) и является длиной входа для алгоритма Евклида. Для оценки трудоёмкости заметим, что в цепочке (1) справедливо со¬ отношение Г] <п/2, которое легко проверяется как для случая т < п/2 , так и для случая т > п/2. Таким образом, за каждые два шага алгоритма делимое уменьшается более чем вдвое. Поэтому число шагов алгоритма Евклида может быть оценено сверху как р <2 log2 п , те. трудоёмкость алгоритма есть «О-большое» от длины входа, так как длина записи числа п в позиционной системе счисления пропорциональна log2 п. Алгоритм Евклида — это очень эффективный алгоритм. Намного более трудоёмким является нахождение наибольшего общего делителя с помощью разложе¬ ния чисел п и т на простые множители. Алгоритм Евклида можно применять также для нахождения наиболь¬ шего общего делителя двух многочленов (многочлена наибольшей степени, делящего каждый из многочленов), а также для нахождения общей меры двух соизмеримых отрезков (отрезка, укладывающегося целое число раз в каждом из отрезков). Если отрезки несоизмеримы, т. е. отношение их длин выражается иррациональным числом как, например, у стороны квадрата и его диагонали, то алгоритм Евклида приводит к бесконечному процессу. Хотя быстродействие компьютеров непрерывно растёт, позволяя вы¬ полнять в единицу времени всё большее число операций, это незначитель¬ но влияет на рост размерностей задач, решаемых алгоритмами сверхполи¬ номиальной трудоёмкости. Поэтому для встречающихся на практике задач важно располагать эффективными алгоритмами решения. Для некоторых задач такие алгоритмы были найдены. Для других полиномиальных алго¬ ритмов найти не удалось, и есть основания полагать, что их и не существу¬ ет, т. е. решение этих задач всегда будет представлять трудность. Строго показать это, правда, пока не удалось, и проблема алгоритмической слож¬ ности остаётся одной из актуальнейших задач современной математики. Для того чтобы понять возникающие здесь трудности, следует отчётли¬ во понимать разницу между трудоёмкостью алгоритма и сложностью класса задачи. Для конкретного алгоритма оценка числа его операций, как правило, 4.1. Понятие алгоритма
Глава 4. Алгоритмы 92 не вызывает принципиальных затруднений. Некоторый же класс задач явля¬ ется сложным, если среди всего необозримого множества возможных алго¬ ритмов нет алгоритма, решающего задачи этого класса эффективно. Задачи распознавания и оптимизации. Среди алгоритмических задач дис¬ кретной математики два класса задач являются особенно важными —■ это задачи распознавания и задачи оптимизации. Задачи распознавания — это задачи, которые требуют ответа «да» или «нет». К ним относятся, напри¬ мер, такие задачи как «является ли натуральное число простым?» или «яв¬ ляется ли граф гамильтоновым?». В теоретическом же отношении среди подобных задач особенно важная роль принадлежит так называемой «про¬ блеме выполнимости». Выполнимость: по заданной конъюнктивной нормаль¬ ной форме определить, существует ли такой набор зна¬ чений переменных, при котором она принимает значе¬ ние «истина». Типичная же задача дискретной оптимизации может быть сформулиро¬ вана как задача нахождения в конечном множестве подмножества, обладаю¬ щего определёнными заданными свойствами и доставляющего экстремум некоторому заданному на подмножествах функционалу, характеризующему качество решения. Любое подмножество, обладающее требуемыми свой¬ ствами, называется допустимым решением. Задача состоит, таким образом, в том, чтобы среди допустимых решений найти экстремальное по значе¬ нию функционала качества. В качестве примера рассмотрим две известные задачи оптимизации на графе. В обеих задачах допустимое подмножество с экстремальным свой¬ ством выбирается из множества рёбер графа. Минимальное остовное дерево. Практическая задача связывания множества населённых пунктов коммуникационной сетью минимальной стоимости привела к постановке математической задачи о нахождении во взвешенном графе с положительными весами рёбер связного остовного подграфа с минимальной суммой весов входящих в него рёбер. Подграф, доставляющий решение данной задачи, необходимо является деревом. По¬ этому данную задачу называют задачей о минимальном остовном дереве. В краткой форме она может быть сформулирована следующим образом: в заданном взвешенном графе найти остовное дерево минимального веса. В качестве весов здесь могут выступать расстояния между населёнными пунктами или стоимость прокладки коммуникаций между ними. Допусти- ,мым решением является любое подмножество рёбер, образующее дерево. Для п -вершинного графа мощность такого подмножества всегда равна п -1.
Задача коммивояжёра. 93 Рассмотрим другую задачу. В заданном взвешенном гра¬ фе найти гамильтонов цикл минимальной длины (с ми¬ нимальной суммой весов входящих в него рёбер). Происхождение названия связано со следующей интерпретацией этой задачи. Коммивояжёр (бродячий торговец) желает посетить ряд городов, побывав в каждом из них ровно по одному разу, и вернуться в исходный город, минимизируя при этом суммарную длину маршрута (или стоимость переездов). Чтобы не возиться с проблемой гамильтоновости, взвешенный граф в задаче коммивояжёра обычно считают полным. При необходимости недостающим рёбрам всегда можно приписать бесконечно большие веса. Допустимым подмножеством является любое подмножество рёбер, обра¬ зующее гамильтонов цикл. Если в качестве весов используются реальные расстояния между го¬ родами, то они удовлетворяют неравенству треугольника: для любых трёх вершин графа и, v, w справедливо соотношение d{u,v) + d{v,w) > d(u,w). Задачи коммивояжёра подобного вида называют метрическими. Однако на практике могут возникать и неметрические задачи коммивояжёра. Более того, в общем случае весовая функция на рёбрах графа не обязана быть даже симметричной функцией вершин. Пусть, например, имеется станок, способ¬ ный выполнять несколько операций. Его перенастройка с одной операции на другую требует определённых затрат. Требуется использовать станок в цик¬ лическом режиме, минимизируя суммарные затраты на перенастройку. В данной задаче перенастройка с одной операции на другую и обратная перенастройка могут требовать, вообще говоря, различных затрат. Поэтому в общем случае в задаче коммивояжера рассматривается взвешенный ориенти¬ рованный граф, дуги которого в прямом и обратном направлении могут иметь различные веса. Задача состоит в нахождении гамильтонова контура мини¬ мальной длины. Таким образом, в качестве задачи коммивояжёра может быть, в зависимости от постановки, рассматриваться либо метрическая задача, ли¬ бо задача с симметричной функцией весов на рёбрах, но не предполагающая выполнения неравенства треугольника, либо общая задача нахождения крат¬ чайшего гамильтонова контура во взвешенном ориентированном графе. С каждой задачей дискретной оптимизации можно связать задачу рас¬ познавания, задав некоторое пороговое значение для функционала качества. Так, например, для задачи коммивояжёра соответствующей задачей распо¬ знавания является следующая задача: «существует ли гамильтонов цикл, вес которого не превышает заданной величины?» Данная связь между задачами распознавания и задачами оптимизации позволяет, в принципе, с помощью дихотомии сводить решение задач опти- 4.1. Понятие алгоритма
Глава 4. Алгоритмы 94 мизации к решению задач распознавания. Интервал возможных значений оптимизируемой величины разбивается некоторым средним значением на две по возможности равные части и ставится задача распознавания: «явля¬ ется ли оптимум меньше данной величины?» После того, как определено, в какой из двух частей находится оптимум, эта часть также подвергается ди¬ хотомии и т. д. Стягивающаяся со скоростью геометрической прогрессии система вложенных отрезков позволяет быстро находить оптимальное зна¬ чение, которое в задачах дискретной математики всегда можно считать це¬ лым числом. Таким образом, обладание эффективным алгоритмом для ре¬ шения соответствующей задачи распознавания позволяет эффективно ре¬ шать и исходную задачу оптимизации. Задачи распознавания удобнее исследовать формально-логическими методами, поэтому именно они стали центром внимания в теории сложности, причём исходной точкой этих ис¬ следований стала «проблема выполнимости». Задачи линейного булева программирования. Во многих задачах дис¬ кретной оптимизации область допустимых решений задаётся линейными неравенствами, а функционал качества также является линейной функцией. Подобные задачи называются задачами линейного программирования. Но в отличие от обычных задач линейного программирования, в которых пере¬ менные непрерывны, здесь переменные принимают всего два значения: О и 1. Поэтому их называют задачами линейного булева программирования. Приведём два примера подобных задач. Покрытие множествами. На конечном множестве задана покрываю¬ щая его система подмножеств, т. е. каждый элемент множества принадле¬ жит, по крайней мере, одному из подмножеств. Требуется найти мини¬ мальную по мощности покрывающую подсистему. Во взвешенном варианте задачи на подмножествах заданы веса — положительные числа и требуется найти покрывающую подсистему минимального веса. Если рассмотреть матрицу инциденций элементов покрываемого множества покрывающим его подмножествам, то задача о покрытии может быть сформулирована как задача покрытия строк этой булевой матрицы её столбцами. Задача о покрытии уже встречалась в разделе 2.2 при построении кратчайшей и минимальной д. н. ф. булевой функции, когда множество единичных вершин функции покрывалось простыми импликантами. Эта задача часто возникает и на практике. Пусть, например, требуется связать ряд компактно расположенных населённых пунктов системой сотовой те¬ лефонной связи, построив в некоторых из них ретрансляционные вышки так, чтобы область их действия охватывала все населённые пункты. Здесь и покрываемым и покрывающим множеством является множество насе¬ лённых пунктов и требуется выбрать минимальное подмножество, покры¬ вающее всё множество. Такую задачу о покрытии частного вида удобно представить на графе как задачу покрытия всех вершин графа минималь¬ ным подмножеством вершин, где каждая взятая в покрытие вершина по¬ крывает себя и множество смежных с ней вершин.
Дадим математическую формулировку задачи. Пусть задано конечное 95 т -элементное множество Е = {е{,..., ет} и семейство его подмножеств S = {Sj,, 5Я}, причём Е = . Каждому подмножеству Sj при¬ писан вес p(Sj) = Pj > 0. Подсемейство Е'сЕ называется покрытием множества Е, если Е = (Js е vSj . Множество покрытий является здесь множеством допустимых решений. Функционал качества, называемый ве¬ сом покрытия, задаётся как Д(Е') = g_,p(Sy). Требуется найти по¬ крытие минимального веса. Для задания допустимой области системой линейных неравенств вве¬ дём (0,1 )-матрицу А(тхп) инциденций элементов е,- подмножествам Sj: J 1, е,- £ Sj [О, et eSj. С каждым подсемейством Е'сЕ свяжем его характеристический вектор х(Е') = (Х| хп). Тогда условие того, что Е' является покрыти¬ ем, выражается системой т линейных неравенств Я]l*l +ai2*2 +--- + а\пхп ^ 1 (2) ат\х\ +ат2х2+... + атпхп >1 , где i -е неравенство определяет покрытие элемента е,-. Теперь задача о покрытии может быть сформулирована как Задача о покрытии. П ^ PjXj -> min при условии (2), где Xj € {0,1}, j = 1,2,..., п . 7=1 Рюкзак. Представим себя на минуту на месте Али-Бабы, нашедшего в Пещере Сорока разбойников несметные сокровища. В пещере имеется п драгоценных предметов стоимостью q, с2,..., сп и весом соответственно Р\, р2,..., рп- Али-Баба стремится забрать с собой набор предметов макси¬ мальной суммарной стоимости, но способен унести лишь набор, вес которого не превышает Р . Такая ситуация и приводит к постановке задачи о рюкзаке: Задача о рюкзаке. п п ^ CjXj -» max при условии ^ pjXjр < Р, где Xj е {0,1}, j=1,2,..., п . 7=1 7=1 4.1. Понятие алгоритма
Глава 4. Алгоритмы 96 Здесь (х|,..., ) — характеристический вектор подмножества вы¬ бранных предметов. Множество допустимых решений задачи о рюкзаке является, таким образом, множеством нулей монотонной пороговой буле¬ вой функции, задаваемой неравенством р^ + р2х2+... + рпхп < Р. Сказочная интерпретация задачи увлекательна, но не проясняет её прикладного значения. Более реалистичной является следующая экономи¬ ческая модель. Пусть некоторый банк располагает свободным капиталом в количестве Р денежных единиц, который он может вложить в финанси¬ рование некоторых из п проектов, стоимости которых р\, р2, • • •, рп, а приносимые от их реализации доходы соответственно q, с2,..., сп. Тогда задача выбора подмножества проектов, обеспечивающих максимальную прибыль, является задачей о рюкзаке. Непрерывные задачи линейного программирования. Если в задаче о покрытии и в задаче о рюкзаке условие Xj е {0,1} заменить на условие О < xj < 1, т. е. выбирать переменные из непрерывного множества, то эти задачи оптимизации с линейными ограничениями и линейным функцио¬ налом качества станут обычными непрерывными задачами линейного программирования. Однако полученное в этом случае решение будет, как правило, содержать дробные компоненты, и не будет решением исходной задачи с булевыми переменными. Тем не менее, значение функционала ка¬ чества полученного решения непрерывной задачи может в ряде случаев служить полезной оценкой для функционала качества исходной задачи. Хотя в обычных задачах линейного программирования переменные непрерывны, эти задачи также можно отнести к предмету дискретной ма¬ тематики, так как экстремум целевой функции достигается в вершинах многогранной области допустимых решений п -мерного пространства, т. е. там, где п независимых неравенств обращаются в равенства. Число же вершин, хотя и велико, но конечно и заведомо не превышает С£, где к — полное число ограничений. Симплекс-метод, предложенный в 1947 году американским учёным Дж. Данцигом (1914-2005) и до настоящего времени широко используе¬ мый для решения задач линейного программирования, перебирает эти вершины в направлении улучшения функционала качества. В практиче¬ ском отношении симплекс-метод является достаточно эффективным алго¬ ритмом, хотя для него и были искусственно построены примеры, требую¬ щие экспоненциального времени решения. В 1979 году советский учёный Л. Г. Хачиян (1952-2005) показал, что задача линейного программирова¬ ния всегда может быть решена за полиномиальное от размера входа время. Однако подобного алгоритма неизвестно для задач линейного булева про¬ граммирования, и, как в настоящее время склонно считать большинство учёных, его и не существует. Таким образом, задачи линейного булева про-
граммирования оказались труднее аналогичных непрерывных задач. Под- 97 робнее эти вопросы будут рассмотрены в разделе 6. Сложность решения. Среди рассмотренных выше задач дискретной математики задача распознавания простого числа является, как было не¬ давно показано группой индийских математиков, полиномиально разре¬ шимой. Полиномиально разрешима также рассматриваемая в следующем разделе задача о минимальном остовном дереве. Для задачи выполнимо¬ сти, задачи о гамильтоновом цикле, задачи коммивояжёра, задачи о покры¬ тии и задачи о рюкзаке эффективных алгоритмов решения неизвестно. Од¬ нако, как следует из современной теории сложности, если бы эффективный алгоритм удалось найти хотя бы для одной из этих задач, то остальные, а также многие другие задачи дискретной оптимизации также получили бы эффективные алгоритмы решения. Это, фактически, и является главным аргументом в пользу того, что эффективного алгоритма для решения ука¬ занных задач не существует, поскольку каждая из этих задач в отдельности была предметом длительных и напряжённых исследований многих учёных. Вопросы для самопроверки 1. Алгоритм считается эффективным, если он а) всегда за конечное число шагов приводит к решению; б) может быть реализован на компьютере; в) имеет полиномиальную от длины входа трудоёмкость. Ответы: 1 — в. 4.2. Алгоритмы на графах Теория графов даёт массу дискретных экстремальных задач, решени¬ ем которых уже более полувека интенсивно занимаются математики. Для некоторых из этих задач достаточно быстро удалось найти эффективные алгоритмы решения. К таким задачам относятся, в частности, рассматри¬ ваемые ниже задачи о наибольшем паросочетании, минимальном остов¬ ном дереве и кратчайшем пути между двумя вершинами. Теперь, полвека спустя, эти алгоритмы можно считать классическими. Для других задач, в частности, задачи коммивояжера, несмотря на значительные усилия, эф¬ фективных алгоритмов найти не удалось. Паросочетание. Напомним, что подмножество E'czE рёбер графа G = =(V,E) называется паросочетанием, если никакие два ребра из Е' не име¬ ют общей вершины. Паросочетание называется наибольшим, если оно со¬ держит максимально возможное число рёбер. Если наибольшее паросочета¬ ние покрывает все вершины графа, то оно называется совершенным. Задача о паросочетании состоит в нахождении наибольшего паросочетания. 4.2. Алгоритмы на графах
Глава 4. Алгоритмы 98 Универсальный подход, позволяющий эффективно строить максималь¬ ные паросочетания, основан на восходящей к Петерсену идее чередующейся цепи. Пусть в графе имеется некоторое паросочетание. Если непокрытым осталось не более одной вершины графа, то паросочетание является, оче¬ видно, наибольшим. Пусть непокрыто не менее двух вершин. Тогда, если удаётся найти цепь, связывающую две непокрытые паросочетанием верши¬ ны, причём рёбра цепи чередуются, попеременно то не входя, то входя в па¬ росочетание, то мощность паросочетания можно нарастить на единицу. Для этого достаточно все рёбра, не входящие в паросочетание, включить в него, а все входящие в паросочетание ребра — исключить из паросочетания. Рисунок 1, где жирно отмеченные ребра принадлежат паросочетанию, иллюстрирует принцип чередующейся цепи. • "1 •— V2 • • "4 • VS • "6 "1 V2 "з "4 "5 "б Рис.1 Замечательно, что верно и обратное. Если паросочетание не является наибольшим, то всегда найдётся чередующаяся цепь, позволяющая его нарастить. Пусть Е' — не наибольшее паросочетание, т. е. существует паросочетание Е" такое, что \Е"\ > |£”|. Рассмотрим подграф G' графа G, образованный рёбрами симметрической разности двух паросочетаний, т. е. входящими ровно в одно из паросочетаний Е' или Е". Степень лю¬ бой вершины графа G' не превышает двух. Поэтому каждая компонента связности является циклом или цепью, в которых чередуются рёбра двух паросочетаний. Поэтому все циклы имеют чётную длину и содержат оди¬ наковые число рёбер каждого из паросочетаний. А так как |£'"| > \Е'\, то должна найтись чередующаяся цепь, имеющая больше рёбер из паросоче¬ тания Е", которая и позволяет нарастить паросочетание Е'. Как и в разделе 3.7, наше внимание будет ограничено двудольными графами. Для них чередующаяся цепь находится особенно просто. Рассмот¬ рим метод чередующейся цепи на примере двудольного графа на рис. 2. щ щ v5 щ I/, |/,i Рис. 2
Непокрытыми паросочетанием остались две вершины: v2 и v3 . Они 99 не соединены ребром, поэтому данное паросочетание является макси¬ мальным по включению, к нему нельзя добавить ни одного ребра. Являет¬ ся ли оно наибольшим? Попытаемся найти чередующуюся цепь из v3 в v2 . Такой цепью является, например, v3,v12,v9,vg,v!,v2. Инвертируя при¬ надлежность рёбер паросочетанию на этой цепи, получаем паросочетание, имеющее на одно ребро больше. Оно является совершенным и поэтому наибольшим (рис. 3). и5 и7 I/, 1/„ Чтобы оценить трудоёмкость нахождения максимального паросочета- ния методом чередующейся цепи, детализируем работу алгоритма. Будем считать, что вершины верхней доли, в которых начинается чередующаяся цепь, могут находиться в одном из трёх состояний: приоткрытом, от¬ крытом или закрытом. Вершины же нижней доли, в которых заканчива¬ ется чередующаяся цепь, могут быть непомеченными или помеченными номерами смежных им вершин верхней доли. В начальный момент поиска чередующейся цепи все вершины верхней доли приоткрыты, а все верши¬ ны нижней — непомечены. Алгоритм начинает работу с того, что открывает все непокрытые паро¬ сочетанием вершины верхней доли. Затем их номерами помечаются смеж¬ ные им вершины в нижней доле. Если какая-либо вершина нижней доли смежна с более чем одной открытой вершиной верхней доли, то она поме¬ чается номером любой из них. После этого открытые вершины верхней до¬ ли закрываются и далее в процессе поиска чередующейся цепи не участву¬ ют, а для каждой получившей метку вершины нижней доли открывается смежная ей по ребру паросочетания вершина верхней доли. Затем снова из каждой открытой вершины верхней доли помечаются смежные ей по не входящим в паросочетание рёбрам непомеченные вершины нижней доли, после чего открытые вершины верхней доли закрываются, и т. д. Каждый шаг алгоритма состоит, таким образом, в пометке непомечен¬ ных вершин нижней доли из открытых вершин верхней доли, закрытии этих вершин и открытии новых вершин, смежных с вновь помеченными по рёбрам паросочетания. Процесс заканчивается либо пометкой непокрытой паросочетанием вершины нижней доли, либо закрытием всех вершин верх- 4.2. Алгоритмы на графах
Глава 4. Алгоритмы 100 ней доли. В первом случае получаем восстанавливаемую с помощью поме¬ ток чередующуюся цепь, связывающую две непокрытые паросочетанием вершины, которая позволяет нарастить паросочетание. Во втором случае та¬ кой цепи нет, и имеющееся паросочетание является наибольшим. Такое детализированное описание работы алгоритма на примере пе¬ рехода от паросочетания на рис. 2 к паросочетанию на рис. 3 представлено в табл. 1, в которой полуоткрытые вершины верхней доли отмечены знач¬ ком «-», открытые — значком «+», закрытые — пробелом. Вершины Шаги алгоритма Верхняя доля Нижняя доля 1 3 5 7 9 И 2 4 6 8 10 12 0 - + - - - - 1 - + - + - 3 3 2 + + + 5 9 9 3 1 Таблица 1 В результате работы алгоритма удалось пометить непокрытую паро¬ сочетанием вершину нижней доли v2. Она была помечена из вершины V], открытой из вершины vg . Вершина v8 была, в свою очередь, помечена из вершины v9, открытой из вершины v)2. А вершина v]2 помечалась из ис¬ ходно выбранной вершины v3 . Это даёт чередующуюся цепь г3,Г|2, vg, v8 > V1 ’ v2 • При пометке вершин нижней доли из открытой вершины верхней доли верхней доли выполняется просмотров, которые естественно и при¬ нять за элементарные операции. Так как для каждой вершины верхней доли такой просмотр при поиске чередующейся цепи может выполняться не более одного раза, то число операций при построении чередующейся цепи можно оценить как °(ИМИ) = °(И2)- Операция нахождения чередующейся цепи и наращивания паросочетания повторяется 0(|к|) раз. Поэтому тру¬ доёмкость алгоритма можно оценить как 0(| V |)0(| V |)2 =о||т|3 j. Покажем теперь, как с помощью алгоритма чередующейся цепи может быть доказана теорема Холла о системе различных представителей (тео¬ рема 3.7.1). Согласно этой теореме для существования в двудольном графе G = {V\ uV2, Е) паросочетания, покрывающего , необходимо и доста¬ точно, чтобы для любого V{ с: V было выполнено | N(Vf) \ > |F/|. Необ-
ходимость очевидна. Покажем, что достаточность следует из приведённо¬ го выше алгоритма построения чередующейся цепи. Считаем Vt верхней долей, а У2 — нижней долей. Будем строить па- росочетание, последовательно беря вершины из V\, находя им пары в V2 и проводя соответствующие рёбра. Пусть на некотором шаге все смежные некоторой вершине v е Vt вершины оказались уже покрыты паросочета- нием, и непосредственно указать ей пару в нижней доле невозможно. То¬ гда ищем чередующуюся цепь, соединяющую вершину v с непокрытой паросочетанием вершиной нижней доли, с помощью описанного выше ал¬ горитма. Если такую цепь удаётся найти, то пара этой вершине находится инвертированием на цепи принадлежности рёбер паросочетанию. Допустим теперь, что алгоритм заканчивает работу, не найдя такой цепи. Рассмотрим множество V2 вершин нижней доли, помеченных в ре¬ зультате работы алгоритма. Ему соответствует множество V{ вершин верхней доли, находящееся с ним во взаимно од¬ нозначном соответствии, задаваемом рёбрами па- росочетания, | | =| Г2 |. Множество V{ —это множество всех вершин, открывавшихся в про¬ цессе работы алгоритма, за исключением исход¬ ной вершины v. Так как N{V{) = V2 и N(v) с V2 , то Вди{у})= V2 и |tf(r,'u{v})| < |K,'u{v}|, что противоречит условию Холла (рис. 4). Рис. 4 101 Минимальное остовное дерево. Прямо перед нами, в южном углу, мы увидели полусгнивший остов раз¬ битого корабля. Р. Л. Стивенсон «Остров сокровищ» Задача о минимальном остовном дереве (МОД) уже была сформули¬ рована в разделе 4.1. Напомним её постановку. Задан взвешенный п -вер¬ шинный граф G = (V,E), с весами на рёбрах w(e) > 0 . Для графа G тре¬ буется найти остовное дерево минимального веса, т. е. с минимальной суммой весов входящих в него рёбер. Помимо практической важности, МОД в качестве подзадачи исполь¬ зуется рядом других алгоритмов дискретной оптимизации. Граф G всегда можно считать полным, если договориться приписывать отсутствующим рёбрам бесконечные веса. Опишем два известных эффективных алгорит¬ ма для решения этой задачи: жадный алгоритм и алгоритм ближайшего соседа. Жадный алгоритм (Kruskal, 1956). Упорядочим рёбра графа в поряд¬ ке неубывания весов и будем включать в подграф рёбра по порядку, начи- 4.2. Алгоритмы на графах
Глава 4. Алгоритмы 102 ная с ребра наименьшего веса, следя за тем, чтобы включение очередного ребра не привело к появлению цикла. Если включение некоторого ребра приводит к появлению цикла, то оно пропускается и рассматривается сле¬ дующее по порядку ребро. Алгоритм начинает работу с пустого графа на п вершинах и на всех этапах имеет дело с лесом. При включении очередного ребра происходит слияние двух компонент связности и общее число компонент уменьшается на единицу. При включении (л-1)-го ребра в результате слияния двух компонент леса возникает дерево, имеющее минимально возможный вес. Рассмотрим работу алгоритма на приме¬ ре. Пусть требуется найти МОД для полного 5-вершинного взвешенного графа на рис. 5. Рёбра могут быть упорядочены по неубы¬ ванию весов, например, следующим образом: {^1,V2>, {v,,v5} , {v2,v5}, {v3,v4}, {v2,v4}, {Vi,V3}, {v,,v2}, {v2,v3}, {v3,v5}, {v4,v5}. Алгоритм включит в подграф ребро {v3, v2}, потом ребро {v],v5}. Ребро {v2,v5} будет пропущено, так как его включение приводит к появлению цикла v1,v2,v5,v1. Затем будут включены рёбра {v3,v4} и {v2,v4}. Четыре включённых ребра дают остовное дерево ве¬ са 9. (Рис. 6). Докажем, что жадный алгоритм всегда строит остовное дерево минимального веса. Пусть жадный алгоритм, включив рёбра в\, е2,...,еп-\ > получил остовное дерево Tg. До¬ пустим противное, что имеются остовные де¬ ревья меньшего веса. Для каждого такого де¬ рева имеется некоторое значение к такое, что рёбра ei,..., ек входят в это дерево, а ребро ек+\ не входит (0 < к < п - 2). То есть множество его рёбер имеет вид { еи ..., ек, е'к+1,..., е'п_\}, где среди рёбер е*+1>..., е'пА нет ребра ек+[. Выберем среди этих деревьев дерево с максимальным значением к и добавим к нему ребро ек+\. Согласно утверждению 3.2.6 это приведёт к появлению цикла, в который войдёт хотя бы одно из рёбер е£+1,, е'п_\. Имеем w(e£+)) < w(ek+1),..., w(e'n_j). Поэтому, удалив одно из рёбер ек+\,..., е'п_\ из цикла, получим остовное дерево также с меньшим, чем у Tg весом, но с большей длиной начального отрезка совпадающих с Tg рё¬ бер. А это противоречит сделанному предположению о максимальности к . Рис. 5 V2
Оценим теперь трудоёмкость жадного алгоритма. Наилучшему алго- 103 л ритму сортировки рёбер по весу потребуется 0{\ Е | log | Е |) = 0{пlog и) операций для их предварительного линейного упорядочивания. Если в процессе построения дерева помечать вершины номером компоненты связности, в которую они входят, то вопрос о появлении цикла решается просто: включение ребра приводит к возникновению цикла в том и только в том случае, если его концы принадлежат одной и той же компоненте связности. Но в этом случае после включения очередного ребра, ведущего к слиянию двух компонент связности, требуется изменение соответст¬ вующих пометок, на что уходит О(п) операций. Поэтому включение п -1 л рёбер займёт 0(п ) операций. Таким образом, трудоёмкость жадного ал¬ горитма определяется трудоёмкостью предварительного упорядочивания рёбер по весу и равна О (л log и). Алгоритм ближайшего соседа (Prim, 1957). Этот алгоритм начинает работу с одновершинного дерева и постепенно наращивает его до остов- ного, присоединяя всё новые вершины. Сначала произвольно выбираем одну из вершин графа G, затем берём ближайшую к ней и включаем обе вершины вместе с соединяющим их ребром в строящееся дерево. Далее находим вершину, ближайшую к множеству из двух уже взятых вершин, и включим её вместе с соответствующим ребром в строящееся дерево, кото¬ рое будет содержать уже 3 вершины и два ребра. (Если ближайшими ока¬ зываются несколько вершин, то включаем любую из них). Продолжаем действовать подобным образом, всякий раз присоединяя к строящемуся дереву ближайшую вершину вместе с соответствующим ребром до тех пор, пока не получим остовного дерева. Рассмотрим работу алгоритма ближайшего соседа также на примере графа на рис. 5. Пусть в качестве начальной выбрана, например, вершина v4. Ближайшей к ней является вершина v3 , и алгоритм включит в строя¬ щееся дерево ребро {v3, v4}. Ближайшей к множеству из этих двух вер¬ шин является вершина v2, находящаяся на расстоянии 4 от v4. Поэтому алгоритм присоединит к дереву эту вершину ребром {v2,v4}. Ближайшей к множеству вершин {v2, v3, v4} является вершина vt, и алгоритм включит ребро {V[, v2}. Наконец, кратчайшим ребром, связывающим последнюю оставшуюся вершину v5 с множеством {vj, v2, v3, v4}, является {V], v5}, после включения которого алгоритм закончит работу. Докажем оптимальность алгоритма ближайшего соседа. Пусть методом ближайшего соседа были последовательно включены рёбра et, е2,, еп_у и получено остовное дерево Тп. Действуя как и в случае жадного алгорит¬ ма, допустим противное, что имеются остовные деревья меньшего веса. 4.2. Алгоритмы на графах
Глава 4. Алгоритмы 104 Для каждого такого дерева имеется некоторое значение к такое, что рёбра е^,... ,ек входят в это дерево, а ребро ек+\ не входит (0<к<п-2). Вы¬ берем среди этих деревьев дерево с максимальным значением к и доба¬ вим к нему ребро ек+\. Это приведёт к появлению цикла. Пусть V —множество вершин, связанных рёбрами в\,...,ек, V \ V — его дополнение. Тогда ребро ek+t связывает множества V и V \ V. Ясно, что в цикле должно присутствовать ещё хотя бы одно ребро е е {е'к+\ е'п_\}, связывающее множества V и VW и имеющее не меньший вес, чем ребро ek+i. Поэтому, удалив его из цикла, получим остовное дерево также с меньшим, чем у Тп весом, но с большей длиной начального отрез¬ ка совпадающих с Тп рёбер. А это противоречит сделанному предположе¬ нию о максимальности к. Оценим трудоёмкость алгоритма ближайшего соседа. Нахождение вершины, ближайшей к множеству из к вершин, требует к(п-к) элемен¬ тарных операций, что при к, близком к п/2, даст о{п2^ операций. Поэто¬ му (п -1) — кратное повторение данной процедуры, осуществляемое при построении минимального остовного дерева по методу ближайшего соседа займёт j операций. Эту оценку, однако, можно понизить, если хранить список расстояний до строящегося дерева для всех не входящих в него вер¬ шин, а при каждом включении в дерево новой вершины обновлять список, просматривая лишь те не входящие в дерево вершины, которые смежны с вновь включённой. Такой просмотр требует 0(п) операций и общая трудо¬ ёмкость алгоритма становится О^п2 j. Таким образом, алгоритм ближайше¬ го соседа оказывается несколько эффективнее жадного алгоритма. Два приведённых выше алгоритма построения минимального остовно¬ го дерева имеют между собой много общего. На каждом шаге этих алгорит¬ мов в строящееся дерево включается одно ребро, которое является крат¬ чайшим из некоторого множества рёбер. В случае жадного алгоритма — это множество рёбер, включение которых не приводит к появлению цикла, а в случае алгоритма ближайшего соседа — это множество рёбер, присоеди¬ няющих к строящемуся дереву новую вершину. В этом смысле оба алго¬ ритма являются «жадными» (greedy algorithms). Подобный принцип «жадности», состоящий в использовании локально¬ оптимальной стратегии на каждом шаге алгоритма, может быть, в прин¬ ципе, использован и при решении других задач дискретной оптимизации. Однако далеко не всегда он приводит к алгоритмам, гарантирующим по¬ лучение оптимального решения. Если бы этот принцип оказался универ-
сальным, то все задачи дискретной оптимизации получили бы эффективные 105 алгоритмы. Остовные деревья в графе обладают важным специфическим свойством. Одно остовное дерево можно перевести в другое за конечное число шагов, на каждом шаге убирая одно из рёбер и включая другое так, что после каждого шага граф остаётся деревом. Это обменное свойство и было использовано при обосновании обоих алгоритмов. Структуры, наде¬ лённые подобными свойствами, называются матроидами. Подробнее они будут рассмотрены в разделе 5. Кратчайший путь между двумя вершинами. Каждому, по-видимому, при¬ ходилось в жизни сталкиваться с задачей об оптимальном переезде из од¬ ного пункта в другой, следуя транзитом через промежуточные пункты. На карте автомобильных дорог даётся расстояние между соседними пункта¬ ми. Однако при большом числе промежуточных пунктов выбор кратчай¬ шего маршрута может представить трудность. Подобная задача представ¬ лена во Вводной главе на рис. 37. Разумеется, длина маршрута не является единственным возможным критерием оптимальности. На практике в качестве такого критерия может выступать время или стоимость маршрута. Для математической постанов¬ ки задачи это не существенно. Важно лишь, чтобы стоимость маршрута складывалась из стоимости передвижения между соседними пунктами. Задача о кратчайшем пути между двумя вершинами ставится следую¬ щим образом. Задан взвешенный ориентированный граф G = (F,/4), неот¬ рицательные веса d (v|, v2) на дугах которого будем интерпретировать как расстояние от вершины V] до вершины v2. Длиной пути называется сумма длин составляющих путь дуг. Задача состоит в нахождении кратчайшего пу¬ ти из вершины х е V в вершину yeV. При этом не требуется, чтобы вы¬ полнялось (i (V|, v2) = й' (v2, V|) (стоимости билетов в прямом и обратном направлениях могут различаться!). Среди предложенных эффективных ал¬ горитмов для решения этой задачи наиболее известен алгоритм Дейкстры. Алгоритм Дейкстры для нахождения кратчайшего пути (Е. W. Dijk- stra, 1959). В процессе работы алгоритма каждая вершина v е V имеет метку, которая может быть временной /(v) или постоянной /*(v). Вре¬ менная метка /(v) есть длина некоторого пути из х в v, возможно не оптимального. В процессе работы алгоритма временные метки могут из¬ меняться, уменьшаясь, когда удаётся найти более короткий путь. На каж¬ дом шаге алгоритма вершина v, имеющая минимальную временную метку /(v) получает постоянную метку /* (v) = /(v). Постоянная метка f* (v) есть длина кратчайшего пути из вершины х в вершину v, в дальнейшем она не меняется. 4.2. Алгоритмы на графах
Глава 4. Алгоритмы 106 В начальный момент вершина х имеет постоянную метку /* (х) = 0, а все остальные вершины орграфа — временные метки /(v) = со. Это соответствует тому, что в орграфе могут быть вершины, недостижимые из х. На первом шаге алгоритма каждая вершина v, для которой существу¬ ет дуга (х, у) , получает временную метку /(v) = d(х, v) (помечается из вершины х). Затем вершина , для которой f(v^) имеет минимальное значение, получает постоянную метку /*(v^) = f(v^) (если минимум достигается на нескольких вершинах, то берётся любая из них). Кратчай¬ ший путь из х в проходит по ребру (x,v^). На втором шаге алгоритма для каждой вершины v, которая имеет временную метку и для которой существует дуга (v^,v), вычисляется сумма /*(v^^) + c/(v^\v) и, если эта сумма меньше /(v), то вершина v получает новую временную метку /(v) = /*(v^) + d(v^, v) (помечается OK из вершины vv '). Затем среди всех вершин, имеющих временные метки, выбирается вершина с минимальным значением и её временная метка делается её постоянной меткой / (v^2^) = /(v^). Если вершин с мини- (2) мальным значением временной метки несколько, то в качестве v' ' мо¬ жет быть взята любая из них. На этом второй шаг алгоритма заканчи¬ вается. Пусть — вершина, получившая на (£-1)-м шаге постоян¬ ную метку /V*“'b ■ Тогда на к -м шаге алгоритма для каждой верши¬ ны v с временной меткой /(у), для которой существует дуга (v^ ^,v), вычисляется сумма /*(v^_I^) + t/(v^_l^, у) и, если эта сумма меньше чем /(у), то вершина у получает новую временную метку /(v) = / (v^ *Ь + +^(у(*~'),у) (помечается из вершины у^-1^). Затем среди всех вершин, имеющих временные метки, выбирается вершина с минимальной временной меткой и полагается /*(v^) = /(v^). Этим завершается к-й шаг алгоритма.
Алгоритм заканчивает работу, когда вершина у получает постоянную 107 метку /* (у). Эта метка равна длине кратчайшего пути из х в у. Чтобы восстановить этот путь, нужно найти вершину, из которой была помечена вершина у , затем вершину, из которой была помечена та вершина, и т. д., пока не дойдём до вершины х . Тогда последовательность этих же вершин в обратном порядке и определит искомый кратчайший путь. Рассмотрим работу алгоритма на примере орграфа, представленного на рис. 7. 10 Рис. 7 Работу алгоритма представим в виде таблицы (табл. 2), элемент на пересечении / -й строки и j -го столбца которой есть метка j -й вершины после i -го шага. В скобках около метки каждой вершины указано, из ка¬ кой вершины она была помечена. X ч v2 v3 v4 v5 У 0 0* 00 00 00 00 00 00 1 0* 7(х) 2*(x) 00 00 00 00 2 0* 5*(v2) 2*(x) 10(v2) ?(v2) 00 00 3 0* 5*(v2) 2*(x) 10(v2) 6*(v,) 00 15(4) 4 0* 5*(v2) 2*(x) 9*(v4) 6*(v,) 13(v4) 15(v,) 5 0* 5*(v2) 2*(x) 9*(v4) 6*(v,) ll*(v3) 13(v3) 6 0* 5*(v2) 2*(x) 9*(v4) 6*(v,) ll*(v3) 12*(v5) Таблица 2 Длина кратчайшего пути из х в у равна 12. Выписывая по порядку вершины, из которых помечалась вершина у и предшествующие ей вер¬ шины, получаем у, v5, v3, v4,4, v2, х. Инвертируя данную последователь¬ ность, получаем кратчайший путь из х в у: х, v2, vt, v4, v3, v5, у. 4.2. Алгоритмы на графах
Глава 4. Алгоритмы 108 Докажем корректность алгоритма Дейкстры индукцией по числу ша¬ гов к . Для вершины постоянная метка f*(v^) = f(x, v^) есть, оче¬ видно, длина кратчайшего пути из х в . Пусть после (&-1 )-го шага множество вершин, имеющих постоянные метки, есть Vk_\ = jx, и длины кратчайших путей от х до этих вершин совпадают с их постоянными метками /* (х), /’(v^), /*(v^2^), /*(v^-1)). Пусть на к-м шаге вершина получает постоянную метку /*(v^) = /(v^). Покажем, что /*(v^) есть длина кратчайшего пути из х в . Допустим противное, что длина кратчайшего пути из х в меньше, чем /*(v^). Тогда кратчайший путь не может проходить только через вершины множества Vk_\, так как в этом случае метка вершины была бы в момент присвоения ей постоянной метки меньше f(y^). С другой стороны, этот путь не может проходить и через вершины, не принадлежа¬ щие Vk_i, так как первая такая вершина на кратчайшем пути в момент присвоения постоянной метки на к-м шаге имела бы временную метку, меньшую f(y№). Поэтому длина кратчайшего пути из х в обязана быть равной /V*b • Число шагов к, через которое вершина у получает постоянную мет¬ ку f* (у) не может, разумеется, превысить |f| , и на каждом шаге число просматриваемых вершин также не превышает |F|. Поэтому число опера¬ ций алгоритма Дейкстры есть o||f|2 j . Вопросы для самопроверки 1. Что называется чередующейся цепью? а) цепь, содержащая хотя бы одно ребро паросочетания; б) цепь, содержащая попеременно рёбра, входящие и не входящие в паросочетание; в) цепь, начинающаяся и заканчивающаяся вершинами, не покры¬ тыми паросочетанием, и содержащая попеременно рёбра, входя¬ щие и не входящие в паросочетание.
2. Трудоёмкость решения задачи о паросочетании в двудольном графе 109 равна: а) 0(|К|2); б)о(|и|3); в)о(|р|4). 3. Какие из алгоритмов нахождения минимального остовного дерева яв¬ ляются эффективными? а) только жадный алгоритм; б) только алгоритм ближайшего соседа; в) оба алгоритма. 4. Алгоритм построения минимального остовного дерева методом бли¬ жайшего соседа имеет трудоёмкость: а)О(я); б )0(п2)- в)о(«3). 5. Трудоёмкость алгоритма Дейкстры равна: a) 0(|F|); б)о(|к|2); b)o(|f|3). 6. В алгоритме Дейкстры вершины получают постоянные метки в по¬ рядке а) неубывания расстояния от х ; б) невозрастания расстояния от х; в) порядок не является монотонным относительно расстояния. Ответы: 1 — в, 2 — б, 3 — в, 4 — б, 5 — б, 6 — а. 4.3. Потоки в сетях Рассматриваемые в этом разделе сети первоначально возникли как математические модели реальных коммуникационных и транспортных се¬ тей. Их можно представлять себе как системы, транспортирующие опре¬ делённый продукт из одной точки в другую и имеющие ограничения на пропускные способности. Подобными сетями являются нефте- и газопро¬ воды, железнодорожные и автомобильные сети. Возникнув из практиче¬ ских задач расчёта грузоперевозок, исследования, связанные с потоками в сетях, вскоре вылились в самостоятельную математическую теорию, по¬ зволяющую находить эффективные алгоритмы и доказывать теоремы. Ос¬ новная заслуга в создании этой теории в пятидесятые годы прошлого века принадлежит американским учёным Л. Р. Форду (р. 1927) и Д. Р. Фалкер- сону (1924-1976). Математическую модель сети зададим следующим образом. Имеется взвешенный ориентированный граф G = (V,A), веса с(а) на дугах кото¬ рого будем считать целыми положительными числами и называть пропу¬ скными способностями дуг. В графе выделены две вершины: s eF, имеющая лишь выходящие из неё дуги и называемая источником, и t е V , имеющая лишь входящие в неё дуги и называемая стоком. Допус- 4.3. Потоки в сетях
Глава 4. Алгоритмы 110 тимым потоком из s в / величины F называется заданная на дугах гра¬ фа неотрицательная функция /(а), удовлетворяющая следующим усло¬ виям: X f(a) ae(v, У) F, v = s X /(«) = • ае(У, v) 0, V*S,t ~F, V = t И /(a)<c(a) для всех аеЛ. Говоря неформально, поток рождается в вершине s и исчезает в вер¬ шине t, а во всех остальных вершинах сети количество входящего потока равно количеству выходящего. Кроме того, на каждой дуге поток не пре¬ восходит её пропускной способности. Так как нулевой на каждой дуге по¬ ток является допустимым, вопроса о существовании допустимого потока не возникает. Основной же задачей является нахождение максимального допустимого потока. Понятие разреза является важнейшим в развиваемой далее теории. Пусть, X с. V, s еХ , t <£ X, X = V\X. Разрезом [х,Х^, отделяющим источник s от стока t, называется множество дуг, идущих из X в X. Пропускная способность разреза с[Х,XI определяется как с(х,х)= X Ф)- а Рассмотрим в качестве примера сеть, изображенную на рис. 1, где числа около дуг обозначают их пропускные способности. Пусть X = {s,V]}. Тогда «{(s,v2),(v,,v2),(v|,/)}, t с{х,х)= 3 + 1 + 3 = 7 . Определим поток через разрез f{X,X} как разность между суммой потоков по ду¬ гам из I в Т и суммой пото¬ ков по дугам из X в X Рис.1
111 f{X,X)= X_/H- S f(a). a<={X,X) ae(X,X) Следующий результат интуитивно понятен. Лемма. Поток через любой разрез (Х,Х), отделяющий s от t, равен величине потока в сети f{X,X} = F. Доказательство. Утверждение, очевидно, справедливо, если X={■?}• Допустим, что оно верно для некоторого разреза (х,ху Дока¬ жем его справедливость для разреза [Х\,Х\}, в котором Xi =/ujv}, Xi = Ar\{v}, где v — произвольная несовпадающая с t вершина. Т. е. разрез {Х\,Х\} получен из разреза (Х,Х} перенесением вершины v из X в X (рис. 2). Рис. 2 Имеем f(XhXl)-f(X,X) = ( > ( \ Z_ АаУ Z Аа) ^a€(v,A'|) ae(*i,v) } - Z /(«)- Z f(a) 4ae(A",v) ae(v, X) , f \ ( \ Z_ Aa)+ Z f(a) ^aeCVjA'i) ae(v,X) , Z Aa)+ Z Aa) 4ae( Xuv) ae(X,v) , = Z f(a)~ Z Аа)=°- a e(v,K) ae(H,v) О Так как 0 < /(a) < с(а), то в качестве следствия получаем, что мак¬ симальная величина потока не превосходит минимальной пропускной способности разреза, отделяющего s и t. Оказывается, что здесь, на са¬ мом деле, всегда имеет место равенство, т. е. минимальный разрез может рассматриваться как «узкое место» сети, определяющее величину макси¬ мального потока. 4.3. Потоки в сетях
Глава 4. Алгоритмы 112 Теорема 1. (Ford, Fulkerson, 1956). Максимальная ве¬ личина потока в сети равна минимальной пропускной способности разреза, отделяющего источник от стока. Доказательство. Доказательство проведем конструктивно, т. е. укажем алгоритм, который за конечное число шагов строит допус¬ тимый поток, равный по величине пропускной способности некоторого разреза. Выберем в качестве начального допустимого потока нулевой по всем дугам поток и будем его последовательно наращивать, увеличивая величину потока на каждом шаге на Д > 1 единиц. За конечное число шагов будет, таким образом, построен максимальный допустимый поток. Наращивание потока будет осуществляться следующим образом. Пусть задан некоторый допустимый поток. Покажем, как можно его увеличить или указать разрез, пропускная способность которого равна величине потока. Ищем путь из s в t, при котором дуги могут проходиться как в пря¬ мом, так и в обратном направлении. Но при этом дуги, проходимые в пря¬ мом направлении, должны быть ненасыщены (/(а)<с(а)), а дуги, про¬ ходимые в обратном направлении, должны быть нагружены (/(а)>0). Если такой путь найден, то ищем минимум по всем его дугам из множест¬ ва величин с (a)- f{a) для дуг, проходимых в прямом направлении, и ве¬ личин /(а) для дуг, проходимых в обратном направлении. Пусть этот минимум равен Д > 1. Строим новый поток, увеличивая поток по дугам в прямом направлении на Д и уменьшая поток по дугам в обратном направ¬ лении на ту же величину. (Потоки по дугам, не принадлежащим пути, ос¬ таются без изменения). Новый поток будет, как легко понять, допустимым и иметь величину на Д единиц больше прежней. Если же вершина t оказывается недости¬ жимой подобным образом из s, то это значит, что существует множество вершин X, достижимых из s, и множество вершин X = V \ X , недости¬ жимых из s, причём seX , t еХ. Так как из множества X нельзя перей¬ ти в множество X определенным выше образом, то все рёбра из из X в X насыщены, а все рёбра X в X ненагружены. Поэтому поток f(x,xj через разрез (Х,Х^, равный, по доказанной лемме, величие потока в сети, равен пропускной способности разреза (X, Х^. □ Проиллюстрируем процесс наращивания потока на примере (рис. 3). Первая цифра в скобках над каждой дугой обозначает пропускную спо¬ собность, вторая — поток по дуге.
113 Увеличивающим поток путём является ,s,v2,v3,vi,v4,;. Приращение потока на этом пути Д = тш{ 9-4, 6-0,7, 4-1, 8-5} = 3 , и новый по¬ ток примет вид (рис. 4) Попробуем снова найти увеличивающий поток путь. Из s можно по¬ пасть в v2, из v2 — в v3 , из v3 — в V]. Никаких других вершин сети из s достичь не удаётся. Поэтому Ar = {j,v1,v2,v3}, X = {t,v4] и ^Х,Х^= = {(v|,v4),(v2,v4),(v3,/)} — разрез с пропускной способностью 4 + 4 + + 7= 15, равной величине потока в сети. Следовательно, разрез (Х,Х) является минимальным, а полученный поток — максимальным. При поиске увеличивающего поток пути вершину, которой удаётся достичь, помечают номером вершины, из которой в неё попали. Это позво¬ ляет при достижении вершины t легко восстановить увеличивающий поток путь. Поэтому данный алгоритм для нахождения максимального потока часто называют алгоритмом расстановки пометок Форда и Фалкерсона. В процессе поиска увеличивающего пути из каждой вновь помечен¬ ной вершины просматриваются все инцидентные ей дуги. Таких вершин 0(|F|), а дуг, инцидентных каждой вершине, также 0(|к|). Поэтому тру- 4.3. Потоки в сетях
Глава 4. Алгоритмы 114 доёмкость поиска увеличивающего пути есть 0(|F|) 0(|f|) = o||F|2 j. Для получения трудоёмкости алгоритма в целом это число следует умножить на число итераций, которое заведомо не превосходит величины макси¬ мального потока. Если пропускные способности дуг ограничены некото¬ рой константой, то Fmax = 0(\ V |), и трудоёмкость алгоритма пометок есть OllFl3). Заметим, однако, что и без предположения об ограниченно¬ сти пропускных способностей, но за счёт более тщательной реализации алгоритма также удаётся достичь трудоёмкости Теорема Форда—Фалкерсона о максимальном потоке и минималь¬ ном разрезе может быть использована для получения ряда результатов, относящихся к математическим моделям спроса и предложения. Пусть имеется множество S = {sj,...,^} поставщиков некоторого товара и множество Т = {/],... ,tm} его потребителей. Для каждого поставщика .?,■ известно количество товара а ($,■), которое он в состоянии поставить на рынок, а также то подмножество потребителей, которым он может его направить. Для каждого потребителя tj задано необходимое ему количе¬ ство товара b{tj). Спрашивается, при каких условиях может быть удов¬ летворен спрос всех потребителей? Ответ на этот вопрос даётся следую¬ щей теоремой. Теорема 2 (о спросе и предложении). Для удовлетво¬ рения спроса необходимо и достаточно, чтобы для каж¬ дого подмножества потребителей ТсГ было выполнено условие Е6Ы- Z Ч 6 г *,ег-'(г) где Г-1 (Г') — множество поставщиков, поставляющих товар хотя бы одному потребителю из подмножества Т'. Доказательство. Ясно, что условие теоремы является необходи¬ мым. Покажем его достаточность. Рассмотрим двудольный орграф G = = (F,i4), где V = S<uT, S = , Т = {f, tm}, а дуга (shtj) e А в том и только в том случае, если поставщик 5,- может направлять товар по¬ требителю tj . Преобразуем орграф G в сеть, добавив источник s и сток t и проведя дуги от s ко всем 5,- и от всех tj к /, как показано на рис. 5.
115 Дугам (s,Sj) припишем пропускные спо¬ собности a(s,), /=1,2,..., к. Дугам при¬ пишем пропускные способности b [tj ), j-1, 2,...,т . Пропускные способности дуг (■?,•>{/) будем считать бесконечными. Тогда любой ми¬ нимальный разрез может содержать только ду¬ ги с конечными пропускными способностями, т. е. дуги вида и . Условие удовлетворения спроса всех потребителей эквивалентно тому, т что величина максимального допустимого потока в сети Fmax = Х^(//). j=I Для доказательства достаточности условия теоремы покажем, что если т Fmax < ]Гб(/у), то найдётся такое подмножество потребителей Г', для 7=1 ♦ которого не выполнено (1). т Пусть Fmax < X*(f/) • Тогда сУще‘ 7=1 ствует разрез (X, X) с пропускной спо¬ собностью Fmax . Если множество X состоит из единственной вершины s, к т то ^ а (.?,•) < Х^(/у)- Поэтому множе- <=1 7=1 ство X минимального разреза (Х,Х) обязано содержать как вершины множества S, так и вершины множества Т. Пусть X = {sJUiSj и 7], где Sx с. S, ТхаТ, тогда X = {/}u5| u7j, где 5] =S\SX, 7j = Т\7] (рис. 6). Тогда в минимальный разрез входят дуги вида (s, 5]) и (7], /), а дуг ви¬ да (5|, Г]) в сети вообще нет. Пропускная способность разреза (X, X) равна m Х_ а^+ Z b{tj)<YJb{,tj)= х b(tj)+ х bitj) ■ j,e5| tjETi 7=1 tjeT, ljzTx £«(*)< X[b(tj). S/eS | /ys7j Поэтому 4.3. Потоки о сетях
Глава 4. Алгоритмы 116 Но так в Г] входят лишь дуги, выходящие из S\ , то это означает, что для подмножества потребителей Г[ не выполнено (1). □ Заметим что теорема Холла о системе различных представителей (теорема 3.7.1) является частным случаем теоремы о спросе и предложении, получаемым из неё при a(s,) = 1, г = 1, 2,..., к и b(tj) = 1, j -1,2,..., т. Здесь мы впервые столкнулись с комбинаторным приложением теории по¬ токов в сетях. В самом деле, как следует из алгоритма расстановки поме¬ ток, всегда существует целочисленный максимальный поток, т. е. такой поток, при котором значения потока на каждой дуге являются целыми числами. Поэтому, если все дуги имеют единичные пропускные спо¬ собности, то существует максимальный поток, на каждой дуге равный нулю или единице ((0-1 )-поток). Это замечание и лежит в основе при¬ менения потоковых алгоритмов к решению комбинаторных задач. Рас¬ смотрим, в частности, как с помощью потокового алгоритма решается за¬ дача нахождения наибольшего паросочетания в двудольном графе. Пусть задан двудольный граф G = (V,E), где V = Vt и V2, и в нём требуется найти наи¬ большее паросочетание. Преобразуем граф в сеть, введя две дополнительные вершины s и t. От вершины s проведём дуги ко всем вершинам множества Р}, а из всех вершин множества V2 проведём дуги к t. Рёбра графа сделаем дугами, придав им направление от Pj к V2 . Пропускные способности дуг вида (.?, Р,) и (V2, t) положим рав¬ ными единице, а пропускные способности дуг вида (PJ, V2) — бесконеч¬ ности (рис. 7). Существует взаимно однозначное соответствие между паросочета- ниями в графе и (0 -1 )-потоками в сети, устанавливаемое тем, что поток пускается по рёбрам паросочетания. При этом число рёбер в паросочета- нии равно величине потока в сети. Поэтому максимальному (0 -1) -потоку соответствует наибольшее паросочетание. Потоковый алгоритм, решаю¬ щий эту задачу имеет трудоёмкость 0(|Р|3 ], т. е. он имеет примерно ту же эффективность, что и метод чередующейся цепи. Минимальный разрез в этой сети состоит из дуг вида (s, Pj) и (V2, t). Вершины v е V\ u V2 исходного двудольного графа G, входящие в эти ду¬ ги, образуют множество, обладающее тем свойством, что каждое ребро графа инцидентно хотя бы одной вершине из данного множества, и это наименьшее множество, обладающее этим свойством.
117 Подмножество вершин графа называется его вершинным покрытием, если каждое ребро графа инцидентно хотя бы одной вершине из данного подмножества. Минималь¬ ная мощность вершинного покрытия называется числом вершинного покрытия графа. Предыдущими рассуждениями установлен, таким образом, следую¬ щий результат. Теорема 3 (Кёниг,1931). В двудольном графе мощность наибольшего паросочетания совпадает с числом вершин¬ ного покрытия. Данную теорему можно наглядно проиллюстрировать, дав её матрич¬ ный аналог. Рассмотрим прямоугольную матрицу из нулей и единиц. Бу¬ дем называть её строки и столбцы «рядами». Подмножество единиц назо¬ вём «независимым», если никакие две единицы не стоят в одном ряду. По¬ ставим вопрос, какое наименьшее число рядов нужно зачеркнуть, чтобы все единицы были вычеркнуты? Ясно, что это число не меньше наиболь¬ шего числа независимых единиц. Оказывается, что в действительности всегда имеет место случай равенства. Для доказательства достаточно связать с матрицей двудольный граф, одна доля которого соответствует строкам, а другая — столбцам матрицы. Тогда наибольшее число независимых единиц есть наибольшее паросочета- ние в этом графе, а наименьшее число рядов — число вершинного покрытия. В качестве примера рассмотрим (5x5 ^матри¬ цу, четыре независимые единицы которой отмечены звездочками (табл. 1). Все её единицы будут вычеркнуты, если вы¬ черкнуть 4 ряда: первую и третью строки и второй и четвертый столбцы. Поэтому 4 — это максимально возможное для данной матрицы число независимых единиц. Докажем теперь, используя теорию потоков в сетях, теоремы Менгера, приведённые в разделе 3.8 без доказательства. Напомним их. Теорема 3.8.1. Наименьшее число вершин, разделяющих две несмежные вершины и и у, равно наибольшему чис¬ лу вершинно-непересекающихся цепей, соединяющих и и V. Теорема 3.8.1 bis. Наименьшее число рёбер, разделяю¬ щих две вершины и иг, равно наибольшему числу рё- берно-непересекающихся цепей, соединяющих и и v. 1* 1 1 1 1* 1 1 1 1 1* 1* 1 1 Таблица 1 4.S. Потоки в сетях
Глава 4. Алгоритмы 118 Рассмотрим сначала теорему 3.8.Ibis. Преобразуем граф в сеть, счи¬ тая и истоком, a v — стоком. Все рёбра вида {и, V} ориентируем в дуги (и, V), все рёбра {V,v} — в дуги (У, v). Будем считать, что остальные рёбра пропускают поток в любом направлении. Пропускные способности всех дуг положим равными единице. Теорема 3.8.Ibis будет непосредственно вытекать из теоремы о мак¬ симальном потоке и минимальном разрезе после доказательства следую¬ щих двух утверждений относительно полученной сети. Утверждение 2. Наименьшее число рёбер, разделяющих две вершины и и v, является некоторым минимальным разрезом (Х,Х), отделяющим и от v. Доказательство. Каждый разрез является, очевидно, разделяющим множеством. Покажем, что каждое разделяющее множество содержит не¬ который разрез. Пусть D — множество рёбер, разделяющее и и v. Опре¬ делим множество X следующим образом: 1) иеХ; 2) если х е X ив сети имеется дуга (х,у) £ D, то у е X . Тогда ясно, что veX и (Х,Х) с: D. Поэтому, если D — минимальное разделяющее множество, то (X, X) = D . □ Утверждение 3. Величина максимального потока равна наибольшему числу рёберно-непересекающихся цепей, I соединяющих и и v. Доказательство. Для каждого множества рёберно-непересекаю¬ щихся цепей, соединяющих и и v, существует, очевидно, поток, равный числу цепей. Напротив, если задан некоторый максимальный целочислен¬ ный поток, то, пройдя по нагруженным дугам из и в v, получим соеди¬ няющую и и v цепь. Обнулим поток на дугах этой цепи. Если величина оставшегося потока будет ненулевой, то снова пройдя по нагруженным дугам из и в v, получим другую цепь, соединяющую и и v и рёберно- непересекающуюся с первой и т. д. Число полученных таким образом це¬ пей будет равно величине потока. □ <Этим теорема 3.8.Ibis доказана, так как максимальный поток в нашей сети равен максимальному числу рёберно- непересекающихся цепей, а наименьшее число разделяющих вершины и и v рёбер — её минимальному разрезу. Чтобы доказать теорему 3.8.1, достаточно теперь каждую вершину полученной сети заменить двумя вершинами с соединяющей их дугой единичной пропускной способности как показано на рис. 8. Пропускные
способности всех дуг, не возникших в результате разделения вершин, по- 119 лагаются равными бесконечности. Теперь теорема 3.8.1 следует из теоре¬ мы 3.8.Ibis. Вопросы для самопроверки 1. Какова трудоёмкость нахождения увеличивающего поток пути в алго¬ ритме пометок? a)0(|F|); 6)0(|F|2); в)о(|Г|3). 2. Какова трудоёмкость потокового алгоритма? a)0(|K|); б)0(|К|2); в)о(|Г|3). 3. Максимальный поток а) всегда является целочисленным; б) всегда может быть выбран целочисленным; в) может оказаться невозмож¬ ным выбрать целочисленным. Ответы: 1 — б, 2 — в, 3 — б. 4.4. Практические методы решения задач дискретной оптимизации Так как для большинства задач дискретной оптимизации эффектив¬ ных алгоритмов найти не удалось, и надежды на их открытие практически нет, заслуживает внимания рассмотрение основных подходов и методов, накопленных за более чем полувековой опыт практического решения по¬ добных задач с помощью компьютеров. Эти подходы можно разбить на два основных класса: 1) методы получения допустимых решений, приме¬ нимые к задачам любой размерности, но не гарантирующие оптимально¬ сти, и 2) методы получения оптимальных допустимых решений, приме¬ нимые лишь к задачам ограниченной размерности. Среди методов приближённого решения наиболее универсальными являются методы, основанные на «жадной стратегии», и методы, исполь¬ зующие принцип локального улучшения имеющегося допустимого решения. К известным методам получения точных решений относятся динамиче¬ ское программирование, метод ветвей и границ, отсечения Гомори. Здесь будут рассмотрены первые два подхода. С методом отсечений Гомори, ос¬ нованным на решении непрерывной задачи линейного программирования и введении дополнительных линейных ограничений, обеспечивающих его целочисленность, можно ознакомиться по [14] или [10]. Начнём с анализа «жадной стратегии». Жадная стратегия. Под «жадной стратегией», понимается широкая со¬ вокупность методов, в которых локально-оптимальное решение прини- 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 120 мается на каждом шаге алгоритма. Подобная стратегия оказалась ус¬ пешной в задаче о минимальном остовном дереве. С различным успе¬ хом она может быть использована и в других задачах дискретной опти¬ мизации. Коммивояжёр. Попробуем применить жадную стратегию, подобную алгоритму Краскала для построения минимального остовного дерева, к решению задачи коммивояжёра для взвешенного неориентированного графа, не предполагая выполнимости неравенства треугольника. Здесь этот принцип может быть применён следующим образом. Упорядочиваем рёбра по неубыванию весов и включаем их последова¬ тельно в строящийся гамильтонов цикл, пропуская рёбра, приводящие к появлению вершин степени 3, и рёбра, приводящие к возникновению нега¬ мильтоновых циклов. «Близорукость» такого метода получения кратчайшего гамильтонова цикла наглядно демонстрирует граф на рис. 1. Рис. 1 Жадный алгоритм прежде всего включит в цикл ребро (vj,V4), как имеющее минимальный вес. Включение этого ребра, как непосредственно легко проверить, необходимо ведет к гамильтонову циклу V|,V4,V3,V2,v5, v6,vj веса29. Оптимальный же гамильтонов цикл vi,v2,v3,v4,v5,v6 имеет вес 12. Этот пример показывает, что «жадный алгоритм» не только не га¬ рантирует получения оптимального решения в задаче коммивояжёра, но полученное с помощью него решение может в сколь угодно большое число раз превышать длину оптимального цикла. Тем не менее, он мо¬ жет быть использован на практике в качестве полезной эвристики, в по¬ давляющем большинстве случаев дающей решение, по качеству близкое к оптимальному. Рассмотренный же пример является скорее исключе¬ нием, чем правилом. Это подтверждается как теоретическими исследо¬ ваниями результатов работы алгоритма при вероятностном моделирова-
нии задач, так и имеющимся вычислительным опытом решения практи- 121 ческих задач. Рюкзак. К решению задачи о рюкзаке жадная стратегия может быть применена следующим образом. Упорядочим предметы по невозрастанию удельной ценности с,- /pt и будем последовательно включать их в набор, проверяя на каждом шаге, что включение очередного предмета не приводит к превышению общим весом величины Р. Если же включение очередного предмета приводит к такому превышению, то пропускаем данный предмет и переходим к рас¬ смотрению следующего. Продолжаем так вплоть до исчерпания списка предметов. В качестве простейшего контрпримера к использованию жадной стратегии в этом случае рассмотрим следующую задачу о рюкзаке с двумя предметами: р\ =1, р2= z, Р = г и q = 2, с2 = z , где z > 2 . Тогда жад¬ ный алгоритм включит в набор первый предмет и пропустит второй, по¬ лучив решение с качеством 2, тогда как оптимальное решение, вклю¬ чающее второй предмет и пропускающее первый, имеет качество z > 2 . При этом отношение качества решения, полученного жадным алгоритмом, к качеству оптимального решения, равное 2/z , может быть сколь угодно малой величиной. Покрытие множествами. Жадная стратегия естественным образом может быть использована для нахождения приближённого решения задачи о покрытии. Если все подмножества имеют единичные веса и задача со¬ стоит в покрытии минимальным числом подмножеств, то вполне естест¬ венным выглядит включение на каждом шаге в покрытие подмножества, покрывающего максимальное число ещё не покрытых элементов. Обоб¬ щением данной стратегии в случае различных весов является следующее правило отбора подмножеств в покрытие. Пусть — множество элементов, оставшихся непокрытыми по¬ сле к шагов (Е^ С-Е, Е0 = Е). Для каждого подмножества Sj вычис- k лим величину pj = (стоимость покрытия каждого из покры- \SjnEf. | ваемых множеством Sj элементов) и на (k +1) -ом шаге включим в по¬ крытие подмножество с минимальным значением этой величины. Оценка наихудшего результата жадной стратегии в задаче о покрытии оказывается менее пессимистичной. 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 122 Утверждение 1. Вес полученного в результате жадной стратегии покрытия т-элементного множества не более , 1 1 1 чем в 1 + —+ — + ...н— раз превышает вес минимального 2 3 т покрытия ^жад <1 + —+ - + -— Inт, от-»оо, (1) Кип 2 3 т р при этом отношение жад- может быть сколь угодно Кин X , 1 1 1 близким к 1+ —+ — + ... + —. 2 3 т Доказательство. Выпишем элементы множества £' = {е1,..., ет} в порядке их покрытия жадным алгоритмом, записывая элементы, покрываемые на одном и том же шаге алгоритма, в произвольном порядке: е,- , е(-2,..., . Если некоторый элемент е,; (1 <1 <т) покрывается на (& + 1)-м шаге жадного алгоритма, то пусть р(е,-) = min рк: (стоимость ' J покрытия элемента et/). Имеем р(е[м) > рЦ) и Ржад = ™, р{ец). По¬ кажем, что р(е{) < Рмт /{т -1 +1), откуда и будет следовать (1). Перед покрытием элемента eif число непокрытых элементов составляет не менее т -1 +1. Вес их оптимального покрытия заведомо не превышает Рмин . Покрывая их с помощью жадного алгоритма, работающего на семей¬ стве подмножеств из их оптимального покрытия, имеем (е/,)-Кш» откуда р* (е(/) < Рмин /(т -1 + 1). Но так как теперь жадный алгоритм от¬ бирает в покрытие подмножества из более узкого семейства, то p(etj)< < р (е,;), откуда и вытекает, что р(ец )<РМинКт-1 + \). Точность данной оценки показывает пример покрытия т -элемент¬ ного множества {е^ е2,..., ет} системой из т +1 подмножеств — т од- 1 1 ноэлементных с весами —, ,..., 1 и одного т -элементного с весом т т-1 1 + s, где £ — произвольно малое положительное число (рис. 2). □ Неизвестно эффективного приближённого алгоритма для решения за¬ дачи о покрытии с существенно лучшей чем (1) оценкой, и есть основания ожидать, что его и не существует. Хотя оценка (1) и выглядит достаточно
пессимистической, на практике жадный алгоритм часто приводит к прак- 123 тически удовлетворительным решениям. Как показывает вычислительный опыт, небольшая модификация жад¬ ного алгоритма делает его, как правило, ещё более точным. Для этого на (А: + 1)-м шаге алгоритма нужно сначала среди непокрытых элементов найти элемент, покрываемый минимальным числом подмножеств, а затем уже из семейства покрывающих этот элемент подмножеств выбрать под- множество с минимальным значением pj и включить его в покрытие. Ра¬ зумность такой модификации жадного алгоритма можно пояснить тем, что если некоторый элемент покрывается единственным подмножеством, то это подмножество присутствует в минимальном покрытии независимо от к значения его pj . Локальные улучшения. Если в задаче дискретной оптимизации имеется полученное тем или иным способом допустимое решение (удовлетво¬ ряющее всем ограничениям задачи), то можно попытаться поискать в его окрестности решения с лучшим значением функционала качества. Такой поиск в окрестности ограниченного радиуса эффективно реализуем и прак¬ тически используется. Вопрос о том, в какой метрике оценивать близость решений зависит от конкретной задачи, но можно дать и общие рекомен¬ дации. Если допустимыми решениями являются булевы наборы постоянной длины, как в задачах о покрытии и о рюкзаке, то в качестве метрики есте¬ ственно использовать расстояние Хэмминга. Рассмотрим, к примеру, задачу о покрытии и будем для простоты счи¬ тать все веса единичными. Тогда допустимое решение можно улучшить, ес¬ ли два входящих в покрытие подмножества удастся заменить одним, до этого в покрытие не входившим, так, что вновь полученное семейство подмно¬ жеств останется покрытием. Исследуемую окрестность можно расширить, заменяя три подмножества на два. Разумеется, с расширением окрестности возрастёт и трудоёмкость такого поиска. Выбор величины окрестности, просматриваемой в поиске локального улучшения, может зависеть как от задачи, так и от мощности используемого компьютера. Если в некоторой окрестности имевшегося допустимого решения уда¬ лось найти решение лучшего качества, то локальный поиск может быть про¬ должен с использованием вновь полученного решения. Если же ничего луч- 1 /т \/(т—\) Рис. 2 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 124 шего в окрестности данного решения обнаружить не удаётся, то к имеюще¬ муся решению можно относиться как к локальному оптимуму, что даёт до¬ полнительные гарантии его качества. В случае необходимости можно про¬ должить локальный поиск с новым допустимым решением, которое может быть получено, например, с использованием датчика случайных чисел. Идея локального поиска может быть изящно реализована в задаче коммивояжёра. Для простоты рассмотрим симметричную задачу комми¬ вояжёра. Пусть получен некоторый гамильтонов цикл, в который входят рёбра {u, v} и {s,t}, где и, v, s,t — четыре различные вершины взвешен¬ ного графа (рис. 3). t Рис. 3 Если d(u,t) + d(s,t) < d(u,v) + d(s,t), то включаем в цикл рёбра {и,/} и {у, j} . Полученный новый гамильтонов цикл имеет меньшую длину. Динамическое программирование является распространённым подходом к оптимизации многоэтапных процессов принятия решений. В ряде случаев этот метод даже позволяет получать эффективные алгоритмы. Динамиче¬ ское программирование имеет широкое эвристическое значение и приме¬ нимо в самых различных оптимизационных задачах, как дискретных, так и непрерывных. В его основе лежит принцип оптимальности, сформулиро¬ ванный американским математиком Ричардом Веллманом (1920-1984) в его книге «Динамическое программирование» следующим образом: Оптимальное поведение обладает тем свойством, что, каковы бы ни были первоначальное состояние и решение в начальный момент, последующие ре¬ шения должны составлять оптимальное поведение относительно состояния, получающегося в результате первого решения. Применение этого принципа в задачах дискретной оптимизации можно разъяснить следующим образом. Пусть при решении некоторой задачи дис¬ кретной оптимизации последовательно принимаются частичные решения Du £>2, ..., D„. Тогда, если эта последовательность ведёт к оптимальному решению, то последние к частичных решений £>„_*+1> Д>-*+2> •••, А, также должны быть оптимальными. При принятии этих заключительных решений приходится решать определённые подзадачи. Если при этом каждая такая подзадача возникает при различных первоначальных действиях, то эти под¬ задачи имеет смысл решать заранее, начиная с конца. В качестве простей¬ шего примера, иллюстрирующего идею метода динамического программи¬ рования, приведём задачу нахождения кратчайшего пути в слоистой цепи.
Рассмотрим слоистую сеть на рис. 4, в которой требуется найти крат- 125 чайший путь из s в t. s t слой 1 слой 2 слой гг—1 слойп Рис. 4 На каждом слое находятся по две вершины. Взвешенные дуги ведут из каждой вершины i -го слоя во все вершины (/ +1) -го слоя. Полное чис¬ ло возможных путей из s в t равно 2”. Однако принцип динамического программирования сразу подсказывает эффективный метод решения, со¬ стоящий в последовательном вычислении кратчайших путей из вершин каждого слоя в s, начиная со слоя п и заканчивая первым слоем. Если длины кратчайших путей из вершин i -го слоя уже известны, то для нахо¬ ждения кратчайшего пути из вершины (/' -1) -го слоя достаточно сравнить между собой длины двух путей, получаемых начальным переходом в каж¬ дую из двух вершин i -го слоя, подразумевая, что дальнейшее движение происходит уже по оптимальному маршруту. Данный алгоритм требует всего лишь 0(п) операций. Применение динамического программирования к решению комбина¬ торных задач оптимизации по существу означает использование принципа декомпозиции: сначала решаются подзадачи небольшой размерности, за¬ тем они используются для решения подзадач большей размерности. За¬ ключительным шагом процесса является решение исходной задачи. При этом часто используются понижающие размерность рекуррентные соот¬ ношения. В качестве примера рассмотрим задачу о рюкзаке: п п W = ^с,х, —э max при условии ^p/Xj < Р, где Xj е {0,1}, pt и /=1 «=1 Р — целые, i = 1,2,..., п. Подзадачи здесь будут характеризоваться меньшим числом уклады¬ ваемых предметов и меньшим значением ёмкости рюкзака. Пусть к к W(k,q) = max ^ с,х,- при условии ^ р{х{ < q , где \ <к <п , q —це- /=1 1=1 лое 0 <q<P. 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 126 W(k,q) — это решение задачи о рюкзаке с к первыми предметами и ёмкостью, равной q. Имеем, таким образом, W = W(n,P), а значения W{k,q) будем находить, начиная с малых значений к и р, с помощью рекуррентных соотношений. Предмет с номером к не может быть взят в рюкзак, если его вес пре¬ вышает ёмкость рюкзака. Если же его вес не превышает ёмкости рюкзака, то должны быть проанализированы на оптимальность как вариант вклю¬ чения к -го предмета, так и вариант заполнения рюкзака без него. Поэто¬ му рекуррентные соотношения, задающие связь между решениями подза¬ дач большей и меньшей размерностей, могут быть записаны следующим образом: W{k,q) max { W(k-1, q), ck +W(k-1, q~Pk)}> если pk <q, W(k-1, q), если Pk > q. Начальные же условия задаются как W(k,0) = W(0,q) = 0. (3) С помощью рекуррентных соотношений (2) и начальных условий (3) уже не составляет труда заполнить прямоугольную таблицу значений вели¬ чины W(i,j) для всех 0 < /' < и и 0 < у < Р подобно тому, как треугольник Паскаля строился с помощью рекуррентного соотношения Cj = C'j_\ + Cyl*. Значение W(n,P) даст оптимальную загрузку рюкзака в исходной задаче. По таблице легко восстановить и оптимальное подмножество включаемых предметов. В качестве примера рассмотрим задачу о рюкзаке с четырьмя предме¬ тами, задаваемую таблицей 1. Ёмкость рюкзака положим равной 5. Предмет Вес Стоимость 1 2 6 2 1 5 3 3 10 4 2 7 Таблица 1 ёмкость рюкзака 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 0 6 6 6 6 2 0 5 6 11 11 11 3 0 5 6 11 15 15 4 0 5 7 12 15 18 Таблица 2 Построчным заполнением с помощью (1) и (3) получаем таблицу зна¬ чений W(i,j) (табл. 2). Максимальная стоимость загрузки рюкзака равна 18. Чтобы вос¬ становить множество предметов, входящих в эту загрузку, замечаем, что
W(4,5) Ф IF(3,5), поэтому четвёртый предмет входит в оптимальную за- 127 грузку. Вычитая из ёмкости рюкзака,' равной 5, вес четвёртого предмета, получаем, что подмножество из трёх первых предметов помещалось в рюкзак ёмкости 3. Поэтому обращаем внимание на элемент W(3,3). Из W(3,3) = W(2,3) следует, что третий предмет не входит в оптимальную за¬ грузку. Далее, W(2,3) ф W(\,3), поэтому второй предмет входит в опти¬ мальную загрузку. И, наконец, W(\,2) Ф fV(0,2), поэтому первый предмет также входит в оптимальную загрузку. Окончательно получаем, что опти¬ мальная загрузка состоит из предметов 1, 2 и 4. Заполняемая таблица содержит пР ячеек и требует для своего запол¬ нения 0(пР) операций. Поэтому на первый взгляд может показаться, что данный алгоритм эффективно решает задачу о рюкзаке. Однако это не так, потому что длина записи числа Р в позиционной системе счисления про¬ порциональна log Р, а число операций нашего алгоритма экспоненциаль¬ но зависит от этой величины. Метод ветвей и границ. Широкий класс методов нахождения точных ре¬ шений путём сокращённого перебора объединён под общим названием метода ветвей и границ (branch and bound). Типичная задача дискретной оптимизации состоит в нахождении подмножества конечного множества, удовлетворяющего заданным ограничениям и доставляющего экстремум некоторому функционалу. Причём этот функционал, как правило, линеен, т. е. представляет собой взвешенную сумму элементов подмножества. Суть же метода ветвей и границ сводится к следующему. В исходном п -элементном множестве выбирается один из элементов а,- и относитель¬ но него производится ветвление: множество допустимых решений разби¬ вается на два подмножества — решения, включающие я,-, и решения, не включающие я,-. Затем в каждом из полученных подмножеств также вы¬ бирается элемент для ветвления и т. д. Таких последовательных ветвлений может быть сделано не более чем п , так как п последовательных ветвле¬ ний однозначно определяют некоторое подмножество исходного п -эле¬ ментного множества. Схематически это можно представить в виде корне¬ вого дерева, корнем которого является исходная задача, узлами-потомка- ми — подзадачи, возникающие в результате ветвления, а листьями — допустимые решения. Среди полного числа генерируемых таким образом допустимых ре¬ шений выбирается оптимальное по функционалу качества. Смысл метода «ветвей и границ» состоит, однако, в том, чтобы не просматривать все до¬ пустимые решения, а отсекать большинство ветвей на возможно более раннем этапе. Для этого с помощью эвристических соображений старают¬ ся сразу пойти по ветви, ведущей к решению, близкому по качеству к оп¬ тимальному. После этого многие ветви удаётся отсечь, показав с помощью 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 128 оценки функционала качества, что никакое их продолжение не может при¬ вести к допустимому решению с лучшим функционалом качества, чем уже имеющееся. Работу алгоритма ветвей и границ можно образно сравнить с работой шахматного гроссмейстера, просчитывающего дерево вариантов при ана¬ лизе позиции. Если оценка позиции при движении по некоторой ветви становится неблагоприятной, то ветвь обрывается. Более точные оценки функционала качества позволяют отсекать бес¬ перспективные ветви на более раннем этапе, что существенно для сокра¬ щения перебора и успеха метода. В определённой степени это и составля¬ ет индивидуальную особенность применения метода к конкретной задаче. Однако в тех случаях, когда задача сформулирована как задача линейного булева программирования, универсальным способом получения таких границ может служить решение соответствующей непрерывной задачи. Покрытие множествами. Рассмотрим метод ветвей и границ на примере задачи о покрытии множествами. Если т -элементное множество покрыто системой из п подмножеств с весами ри ..., рп , то задача вы¬ бора покрывающей подсистемы минимального веса может быть сформу¬ лирована как задача линейного булева программирования: П X PiXi —•► m>n при условии А X > 1т , Xj £ {0,1} , (=1 где матрица А является матрицей инциденций элементов (строки) под- Т т множествам (столбцы), х = (х^,... ,х„) , 1те = (1,... ,1) . Желая с самого начала получить покрытие, близкое к оптимальному, при выборе включаемого в покрытие столбца будем руководствоваться следующим вариантом жадной стратегией. Разделив вес каждого столбца Pj на число единиц в нём, получим величины pj, которые можно трак¬ товать как удельные веса подмножеств. Выбираем строку, покрываемую минимальным числом столбцов, а затем среди покрывающих её столбцов для ветвления берём столбец с минимальным значением pj. Если таких столбцов оказывается несколько, то берём из них столбец с максимальным числом единиц. Наконец, если и это оставляет неопределённость, то из оставшегося множества просто выбираем первый по порядку столбец. Вместо решения задачи линейного программирования воспользуемся менее точной, но более простой и наглядной нижней оценкой для веса оп¬ тимального покрытия. Для каждой строки i, выбрав среди величин pj покрывающих её столбцов минимальную, получим величину г;• — мини¬ мальный из удельных весов покрывающих эту строку столбцов. Тогда Be¬ rn личина является, очевидно, нижней оценкой для веса минимального /=1
покрытия. Данная оценка является точной в том и только в том случае, ее- 129 ли оказывается возможным покрыть все строки столбцами минимального удельного веса так, чтобы они не перекрывались. Рассмотрим изложенную схему решения задачи о покрытии на при¬ мере. Пусть т = 6, п = 7, вектор весов р = (3,3,3,3,3,2,2), а матрица ин- циденций элементов подмножествам '10 10 10 0' 0 10 110 1 10 0 10 10 А = 1 1 0 0 0 0 1 0 110 10 0 ,0011010, Чтобы задача столь малой размерности не оказалась слишком про¬ стой и была бы достаточно поучительной, веса столбцов в рассматривае¬ мом примере выбраны пропорциональными числу содержащихся в них единиц, т. е. в начальный момент все столбцы имеют одинаковый удельный вес. Такой выбор весов уравнивает покрывающие способности столбцов с различным числом единиц. Это увеличивает число покрытий, близких по весу к минимальному, что затрудняет их отсечение на раннем этапе рабо¬ ты алгоритма и удлиняет процесс решения. Имеем 6 р = (1,1,1,1,1,1,1), г = (1,1,1,1,1,1) и £>=6. (=1 Выбранным для ветвления оказывается первый столбец, покрывающий 3 строки. Включаем его в покрытие. После этого остаются непокрытыми 3 строки. Задача свелась к решению задачи о покрытии для матрицы (3x6): '1 0 1 1 0 Г 110 10 0. ,011010, Вычисляя для данной матрицы нижнюю оценку, получаем 5 р = (2/3, 2/3, 2/3, 2/3, 2, 2), г = (3/2, 3/2, 3/2) и = 9/2. /=1 Так как веса всех столбцов являются целыми числами, то в качестве нижней оценки для веса минимального покрытия можно взять ближайшее к 9/2 целое число справа (надцелую часть), что даёт для нижней оценки значение 5. Так как в покрытие уже включён столбец веса 3, то полной нижней оценкой для всех покрытий, получаемых продолжением данной ветви, является значение 3 + 5 = 8. 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 130 Схематически представляя выполненные операции с помощью корневого дерева, в узлах которого записа¬ ны соответствующие нижние оценки, имеем (рис. 5). Продолжаем двигаться по включающим столбцы ветвям до тех пор, пока не будут покрыты все строки Рис. 5 матрицы. Лист дерева, соответствующий такому покры¬ тию, состоящему из столбцов 1, 2, 6 и имеющему вес, равный 8, обозначен прямоугольником с номерами взятых в покрытие столб- Как непосредственно видно из де¬ рева решения, единственными перспек¬ тивным направлением поиска лучшего покрытия является движение из корня дерева по правой ветви, исключающей первый столбец, так как все остальные узлы в качестве нижней оценки уже имеют значение 8. Поэтому двигаемся теперь из корня по правой ветви. При этом вся идущая из корня и уже иссле¬ дованная левая ветвь может быть без ущерба удалена из памяти компьютера. Она как бы «засыхает». От неё сохра¬ няется только полученное покрытие веса 8. Новый «росток» теперь идёт от корня по правой ветви. Продолжаем таким образом выполнение алгоритма, при ветвлении двигаясь по включающей столбец левой ветви, а при возвращении назад к ближайшему узлу с лучшей оценкой — от этого узла по исключающей столбец правой ветви. При такой реализации алгоритма в памяти компью¬ тера хранится только ветвь, связывающая текущий узел с корнем дерева, а также наилучшее из полученных к данному моменту покрытий. Каждый раз при получении меньшего по весу покрытия оно занимает место хра¬ нившегося до этого в памяти. Таким образом, алгоритм оказывается весь¬ ма экономным с точки зрения использования компьютерной памяти. Ал¬ горитм заканчивает работу, когда с помощью нижних границ показано, что продолжение ни одной из ветвей не может привести к получению покры¬ тия, меньшего по весу, чем уже имеющееся. В нашем примере оптимальное покрытие образовано столбцами 3, 7 и 6 и имеет вес, равный 7, а полное дерево решения представлено на рис. 7. Узел, полученный удалением столбцов 1, 2, 3 и 5, отмечен символом оо, означающим, что соответствующая ему матрица не может быть покрыта, так как она содержит нулевую строку. цов и весом покрытия (рис. 6). Отметим принципиальную разницу между эффективными алгорит¬ мами и рассмотренным методом типа ветвей и границ. Если взять, к при-
меру, любой из приведённых в разделе 2 двух алгоритмов построения 131 минимального остовного дерева, то в этих алгоритмах включаемое в ос- товное дерево ребро далее в процессе работы алгоритма уже не исключа¬ лось и входило в минимальное остовное дерево. В данном же алгоритме поиска минимального покрытия методом ветвей и границ столбцы могли включаться, а затем удаляться из покрытия. Такое движение по ветвям дерева решения туда и обратно называют также поиском с возвращением (,backtracking). Рис. 7 Алгоритмы такого рода являются алгоритмами переборного типа. Чис¬ ло выполняемых ими операций не может быть ограничено полиномом от размерности задачи, и они применимы лишь для задач ограниченной раз¬ мерности. Объём перебора в значительной мере зависит от того, насколько точной является используемая алгоритмом оценка функционала. Отметим, что при исчерпании ресурсов машинного времени описанная схема реали¬ зации метода ветвей и границ позволяет получать приближённое решение с гарантированной оценкой качества. Задача коммивояжёра. В качестве ещё одного примера рассмотрим решение методом ветвей и границ задачи коммивояжёра. Эта задача является одной из наиболее известных трудных задач дис¬ кретной оптимизации, которой посвящено огромное число исследований как теоретических, так и экспериментально-вычислительных. Ещё в пяти¬ десятые годы прошлого века американскими учёными Дж. Данцигом, Д. Фалкерсоном и С. Джонсоном был найден кратчайший гамильтонов цикл, соединяющий столицы американских штатов (которых тогда было 48). 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 132 Будем рассматривать самую общую задачу коммивояжёра, состоящую в нахождении кратчайшего гамильтонова контура во взвешенном орграфе. Задача на п -вершинном графе задаётся квадратной не обязательно сим¬ метричной матрицей А(пхп), неотрицательный элемент а,-у которой яв¬ ляются весом (длиной) дуги (i,j). Если некоторая дуга в графе отсутству¬ ет, то соответствующий элемент матрицы полагается равным со. Так как существует л-1 дуг, ведущих из фиксированной вершины в другие вершины, то решение задачи полным перебором приводит к необ¬ ходимости рассмотрения (л-1)! гамильтоновых контуров. Метод ветвей и границ позволяет сократить число просматриваемых вариантов. Ветвление будем производить по дугам орграфа, рассматривая на левой ветви гамильтоновы контуры, включающие данную дугу, а на правой — не включающие. Основные изложенные выше принципы метода ветвей и границ здесь сохраняются. Нужно лишь указать способ получения нижних границ для задачи коммивояжёра. Снова в дидактических целях будет ис¬ пользован не слишком точный, но весьма простой способ. Заметим, что если длины всех дуг, входящих в некоторую вершину, уменьшить на одно и то же число, то длины всех гамильтоновых контуров уменьшатся на это же число. Поэтому длина оптимального гамильтонова контура также уменьшится на это же число. То же самое относится и к множеству выходящих дуг. Сделанное замечание позволяет предложить следующий метод оценки снизу длины кратчайшего гамильтонова контура. Будем последовательно вычитать из строк и столбцов матрицы расстояний положительные числа, равные минимальному элементу соответствующей строки или столбца. При этом все элементы вновь полученной матрицы расстояний будут неот¬ рицательными. Так как длина оптимального гамильтонова контура для гра¬ фа с неотрицательной матрицей расстояний также неотрицательна, то сумма вычтенных количеств будет нижней границей для длины оптимального контура исходного графа. Рассмотрим пример. Пусть взвешенный орграф G (рис. 8) за¬ дан матрицей расстояний (табл. 3). I 2 3 4 5 1 СО 1 5 4 3 2 1 СО 2 3 3 3 5 2 00 1 3 4 4 3 1 00 2 5 3 3 3 2 00 Таблица 3 Рис. 8
Символы «оо» на диагонали квадратной матрицы соответствуют от- 133 сутствию в графе петель — дуг, ведущих из вершины в эту же вершину. Найдём, прежде всего, нижнюю границу для длины кратчайшего га¬ мильтонова контура данного орграфа. Из первой, второй, третьей и четвёр¬ той строк можно вычесть по единице, из пятой строки — два, а из пятого столбца можно вычесть ещё единицу. Это даёт нижнюю границу 7, а мат¬ рица расстояний приобретает вид (табл. 4). Теперь выберем дугу для ветвления, т. е. разобьём множество гамиль¬ тоновых циклов на два подмножества: включающих и не включающих эту дугу. Мы хотим, чтобы данная дуга входила в оптимальный или близкий к оптимальному контур. Поэтому при выборе дуги будем руководствоваться следующим эвристическим правилом: из множества дуг нулевой длины выбирать ту, исключение которой ведет к максимальному росту нижней оценки. В нашем случае такой дугой является дуга (1,2). Запрещение этой дуги приводит к матрице (табл. 5), из первой строки и второго столбца ко¬ торой можно вычесть по единице, что увеличивает нижнюю границу на 2 и делает её равной 9. 1 2 3 4 5 1 00 0 4 3 1 2 0 СО 1 2 1 3 4 1 00 0 1 4 3 2 0 00 0 5 1 1 1 0 00 1 2 3 4 5 1 00 00 4 3 1 2 0 00 1 2 1 3 4 1 00 0 1 4 3 2 0 00 0 5 1 1 1 0 00 Таблица 4 Таблица 5 Включение же дуги (1,2) приводит к тому, что исключаются все ос¬ тальные дуги, ведущие в вершину 2, и все остальные дуги, выходящие из вершины 1. Поэтому первую строку и второй столбец матрицы можно да¬ лее не рассматривать, и они вычеркиваются из матрицы. Кроме того, ис¬ ключается дуга (2,1). Матрица принимает вид (табл. 6). Из её первой строки и первого столбца можно вычесть по единице, что приводит к матрице (табл. 7). 1 3 4 5 2 00 1 2 1 3 4 00 0 1 4 3 0 00 0 5 1 1 0 00 Таблица 6 1 3 4 5 2 00 0 1 0 3 3 00 0 1 4 2 0 00 0 5 0 1 0 00 Таблица 7 Нижняя оценка здесь возрастает на 2 и также становится равной 9. 4.4. Практические методы решения задач дискретной оптимизации
Глава 4. Алгоритмы 134 Продолжая и далее двигаться по включающей дуги ветви, включаем в контур дугу (3,4). Это приводит к вычеркиванию соответствующей строки и столбца из матрицы и исключению дуги (4,3). Матрица принимает вид (табл. 8). В составе каждой строки и каждого столбца здесь имеются нули. По¬ этому вычесть ничего нельзя, и нижняя оценка длины оптимального кон¬ тура остается неизменной. Далее, в соответствии с принятой стратегией, включаем в контур дугу (5,1). Из матрицы удаляются строка 1 и столбец 5. Строящийся гамильто¬ нов контур принимает вид (рис. 9). I 3 5 2 СО 0 0 4 2 СО 0 5 0 1 СО Таблица 8 4 -•3 Рис. 9 Дуга (2,5) теперь должна быть запрещена, как ведущая к появлению негамильтонова контура, и матрица принимает вид (табл. 9). Нижняя оценка длины гамильтонова контура остается равной 9. Включая далее в произвольном порядке дуги (2,3) и (4,5) получаем гамильтонов контур длины 9 (рис. 10). Схематически представим проведённый анализ в виде дерева, где в кружочках стоят нижние оценки длины гамильтонова цикла (рис. 11). 3 5 Рис. 10 Рис. 11
Взглянув на это дерево, непосредственно убеждаемся, что полученный 135 гамильтонов контур является кратчайшим. Вопросы для самопроверки 1. Для каких из перечисленных ниже четырёх задач дискретной оптими¬ зации точное решение может быть найдено с помощью жадного алго¬ ритма: 1) «минимальное остовное дерево», 2) «коммивояжёр», 3) «по¬ крытие множествами», 4) «рюкзак»? а) 1) и 3); 6)1) и 4); в) 1). 2. Является ли описанный метод ветвей и границ для решения задачи коммивояжера эффективным алгоритмом её решения? а) да; б) нет; в) неизвестно. 3. Существует ли эффективный алгоритм для решения задачи комми¬ вояжера? а) да; б) нет; в) неизвестно. Ответы: 1 — в, 2 — б, 3 — в. 4.5. Жадные алгоритмы и матроиды Жадный алгоритм Краскала решает задачу о минимальном остовном дереве. Однако попытки использовать этот же принцип для решения зада¬ чи коммивояжёра оказались безуспешными. Почему так происходит? Ка¬ кая структура задачи обеспечивает успех жадного алгоритма? Ответ на этот вопрос даёт теория матроидов. Понятие матроида было введено в 1935 году американским математи¬ ком Хаслером Уитни (1907-1989) в результате предпринятого им аксиома¬ тического исследования свойств линейной зависимости векторов. Позднее это понятие оказалось весьма плодотворным в теории графов, а также в ряде вопросов дискретной оптимизации. Матроидом М = (S, Е) называется конечное множество 5 вместе с заданным на нём семейством S подмножеств, называемых независимыми множествами, если выполне¬ ны следующие два свойства: 1) из А еН и BczA следует Be 2, (свойство наследст¬ венности); 2) если Ае S, ВеЕ и \А\<\В\, то существует такой элемент хеВ\А, что Аи{*}бН (свойство пополнения). Максимальные по включению независимые множества матроида на¬ зываются базами. Как непосредственно вытекает из свойства пополнения, все базы матроида имеют одинаковую мощность. 4.5. Жадные алгоритмы и матроиды
Глава 4. Алгоритмы 136 Рассмотрим три ставших уже классическими примера матроидов. 1. Векторный матроид. Множество S -— это конечное множество век¬ торов, а 5 — семейство его линейно независимых подмножеств. Свойства 1) и 2) являются здесь элементарными свойствами векторных пространств, а базы — это подмножества, образующие базис в натянутом на S подпро¬ странстве. 2. Графический матроид. Множество S — это множество рёбер не¬ которого графа, а семейство S состоит из всех его подмножеств, не обра¬ зующих циклов, т. е. таких, что образуемый ими остовный подграф является лесом. Если исходный граф связен, то базами матроида будут подмноже¬ ства рёбер, образующие остовные деревья. Свойство 1) здесь выполняется очевидным образом. Покажем выполнимость свойства 2). Заметим, прежде всего, что число компонент связности (деревьев) в п -вершинном лесе с к рёбрами, где к <п, равно п — к. В самом деле, если число рёбер равно нулю, то имеется п компонент связности, а до¬ бавление каждого ребра, соединяя вершины различных компонент, умень¬ шает число компонент на единицу. Поэтому, если лес В содержит больше рёбер, чем лес А , то лес А имеет больше компонент. Это значит, что в лесе В найдётся компонента, не лежащая целиком ни в одной из компо¬ нент леса А . Но тогда в этой компоненте леса В найдётся ребро, соеди¬ няющее две различные компоненты леса А . Добавление этого ребра к ле¬ су А не приведёт, очевидно, к появлению цикла. 33. Трансверсальный матроид. Пусть на множестве S задано неко¬ торое семейство подмножеств . Подмножество AcS на¬ зывается трансверсалью этого семейства, если | А | = к и из А можно вы¬ брать систему различных представителей для всех подмножеств семейст¬ ва. Подмножество AqS называется частичной трансверсалью, если \А\ = I <к и существует / подмножеств семейства таких, что в А для них можно выбрать систему различных представителей. Если, как обычно, рассмотреть двудольный граф инциденций, верхнюю долю которого со¬ ставляют элементы множества S , а нижнюю — подмножества семейства, то некоторое подмножество вершин верхней доли является частичной трансверсалью в том и только в том случае, если в графе существует паро- сочетание, покрывающее все вершины этого подмножества. Трансверсальный матроид — это множество S с частичными транс- версалями в качестве независимых подмножеств и трансверсалями в каче¬ стве баз. Свойство 1) выполняется очевидным образом. Покажем выполни¬ мость свойства 2). Пусть Ах — некоторая частичная трансверсаль, А2 — другая частичная трансверсаль и | At | < | А2 |. По определению, в соответ-
137 ствующем двудольном графе существуют паросочетание Е\ мощности | Aj |, покрывающее все вершины множества At, и паросочетание Е2 мощности | А2 |, покрывающее все вершины множества А2 . Рассмотрим в этом двудольном графе максимальные цепи, начинающиеся в вершинах множества А2\Ау и состоящие попеременно из рёбер паросочетаний Е2 и Е\. Такие цепи не имеют общих вершин, и, если цепь заканчивается ребром паросочетания Е\, то последняя вершина в ней принадлежит множеству А1 \ А2. Поэтому, в силу \A2\Ai\>\Al\A2\, найдётся цепь, заканчивающаяся ребром паросочетания Е2. Исключая из паросочетания £| все принадлежащие ему рёбра этой цепи и включая в него все рёбра цепи, принадлежащие паросочетанию Е2, наращиваем частичную транс- версаль А] элементом из А2 \ Ау, с которого начиналась цепь. Жадный алгоритм Краскала находит минимальное остовное дерево, являющееся базой графического матроида. Аналогичным образом может быть найдена база минимального веса в произвольном матроиде. В общем виде такая задача ставится следующим образом. Пусть М = (S, £) — матроид, каждому элементу s е S которо¬ го приписан неотрицательный вес vv(s). Вес W(A) подмножества А с: S определяется как сумма весов его элементов: W(А) = = У w(.s). Требуется найти базу минимального веса. Жадный алгоритм для решения этой задачи определяется следующим образом. Жадный алгоритм начинает работу с пустого множества и на ка¬ ждом шаге включает в А элемент минимального веса среди тех, добав¬ ление которых сохраняет А независимым. Если выбор неоднозначен, то он включает любой из элементов минимального веса. Алгоритм заканчи¬ вает работу, когда он не может включить в А ни одного нового элемен¬ та, т. е. когда А становится базой. I Теорема 1. Жадный алгоритм строит базу минимального веса. Доказательство. Пусть А = {dj, а2,... , ап} —построенная жад¬ ным алгоритмом база, где элементы ау, а2,, а„ перечислены в порядке их включения жадным алгоритмом, w(ay) < w(a2) < ... < w(an). Пусть В = {by, ..., bn} — произвольная база, где элементы также перечисле- 4.5. Жадные алгоритмы и матроиды
Глава 4. Алгоритмы 138 ны в порядке неубывания весов: w(b\) < w(b2)<... < w(bn). Покажем что и<а,)<и</>,), / = 1,2,..., п. Допустим противное, и пусть к — первый номер, для которого имеет место w{ak) > МЬк). Рассмотрим два независимых множества А' = {щ, а2, , ак_]} и В' = {Ь\, Ь2,..., Ьк_\, Ьк}. Так как | А' | < | В' |, то в соответст¬ вии со свойством пополнения в В' существует не принадлежащий А’ элемент, добавление которого в А' приводит к независимому множеству. Но это противоречит способу построения А с помощью жадного алго¬ ритма, так как веса всех элементов в В’ меньше веса элемента ак . а Тесную связь матроидов с жадным алгоритмом демонстрирует также следующий результат. Теорема 2. Пусть система подмножеств Е некоторого множества S удовлетворяет наследственному свойст¬ ву 1). Тогда для того, чтобы жадный алгоритм, ищущий максимальное по весу подмножество из семейства И, при любых неотрицательных весах элементов находил его, необходимо, чтобы система удовлетворяла также и свойству замены 2), т. е. была матроидом. Доказательство. В самом деле, допустим противное. Пусть А, В е S, \ А\=к, \В\=1, к<1, \АглВ\-т и не существует элемента s е В\ А такого, что А и {.?} е Е . Пусть все элементы множества А имеют единичные веса, все элементы множества В \ А имеют веса, равные w, где 1-т а веса всех остальных элементов множества S равны нулю. Тогда жадный алгоритм, ищущий максимальное по весу множество в Е, построит мно¬ жество А с весом к, тогда как W(В) = m + (l- m)w > к . □ Если на взвешенном матроиде ставится задача нахождения максималь¬ ного по весу независимого множества, то она также может быть решена с помощью жадного алгоритма. Теперь жадный алгоритм на каждом шаге выбирает максимальный по весу элемент, включение которого сохраняет множество независимым. В качестве решения здесь также возникает одна из баз матроида. Доказательство оптимальности полученного решения можно получить, практически без изменения повторив вышеприведённое доказательство. Другой способ доказательства — это ввести новые веса w’(s) = fV- w(s), где W — произвольное достаточно большое число. В качестве примера, показывающего, как может быть использована теорема 1, рассмотрим следующую задачу. В п -мерном евклидовом про-
странстве задано конечное множество векторов. Требуется найти линейно 139 независимое подмножество векторов с максимальной суммой их длин. Эта задача может быть решена жадным алгоритмом, который на каждом шаге выбирает самый длинный вектор среди тех, которые линейно независимы от уже включённых в строящееся множество векторов. А вот пример экономического содержания, показывающий, что матрои- ды могут возникать и в прикладных задачах дискретной оптимизации. Пусть у предпринимателя имеется множество рабочих точек S = {sj sn}, каж¬ дая из которых обслуживается одним человеком, и он располагает к на¬ ёмными сотрудниками, для каждого из которых известно подмножество Sj с S, i = 1,2,..., к рабочих точек, которые он может обслуживать. Доход предпринимателя от функционирования рабочей точки Sj равен w{sj), j = 1,2,, п. Задача предпринимателя состоит в извлечении максималь¬ ного суммарного дохода путём расстановки людей по рабочим точкам. На языке матроидов — это задача построения максимальной по весу трансверсали вместе с соответствующим паросочетанием. Она решается с помощью жадного алгоритма, который наращивает частичную трансвер- саль, проверяя рабочие точки на возможность включения их в трансверсаль, начиная с наиболее доходных. Алгоритм проверки и построение соответст¬ вующего паросочетания могут выполняться методом чередующейся цепи. Вопросы для самопроверки 1. Сколько баз у графического матроида, задаваемого графом С4 ? а) 4; б) 5; в) 6. Ответы: 1 — а. 4.6. Теория сложности: классы Ри NP В предыдущих разделах было рассмотрено значительное число задач и алгоритмов их решения. Для ряда алгоритмов было показано, что число операций, необходимых им для решения задачи размерности п, не пре- К восходит п , где к — некоторая константа. Разумеется, чем меньше кон¬ станта к, тем эффективнее алгоритм. Однако любой такой алгоритм с по¬ линомиальной оценкой временной сложности принято считать и называть эффективным. В противовес этому, алгоритм, число операций которого растёт с размерностью задачи быстрее любой степенной функции, напри¬ мер как 2" или 2^" , считается неэффективным. Скорость роста трудоём¬ кости решения задачи таким алгоритмом такова, что решение с его помо¬ щью реальных, практически возникающих задач может оказаться невоз¬ можным выполнить в приемлемое время даже с использованием самого быстродействующего компьютера. Время же решения, исчисляемое тысяче- 4.6. Теория сложности: классы Р и NP
Глава 4. Алгоритмы 140 летиями, на практике эквивалентно невозможности решения задачи дан¬ ным алгоритмом. Для ряда задач были найдены эффективные алгоритмы решения, для многих других интересных и практически значимых задач эффективных алгоритмов найти не удалось. Но быть может это временная неудача, и та¬ кие алгоритмы будут открыты в дальнейшем? Хотя ответ на этот вопрос и остаётся открытым, мало кто в настоящее время верит в то, что эффектив¬ ные алгоритмы для решения этих задач существуют. Нынешнее состояние теории сложности, не давая здесь прямого ответа, всё же повлияло на мне¬ ние научного сообщества в этом вопросе. Доказательство трудности некоторой комбинаторной задачи подразу¬ мевает доказательство отсутствия эффективного алгоритма для её реше¬ ния, а это намного более сложная задача, чем анализ эффективности кон¬ кретного алгоритма. Тем не менее, в начале семидесятых годов прошлого века были получены важные теоретические результаты, относящиеся к вопросам классификации задач по сложности. Были введены классы Р и NP, и с ними полезно ознакомиться каждому, серьёзно занимающемуся дискретной математикой. В этом разделе будут рассматриваться лишь задачи распознавания, т. е. такие, решением которых является ответ «да» или «нет». Сюда отно¬ сятся и оптимизационные задачи типа коммивояжёра, покрытия множест¬ вами или рюкзака, рассматриваемые в варианте распознавания, когда во¬ прос ставится соответственно следующим образом: существует ли в графе гамильтонов цикл, длина которого не превышает заданной величины; су¬ ществует ли покрытие, не более чем заданного веса; существует ли допус¬ тимый по весу набор предметов, стоимость которого не меньше заданной величины. Умение отвечать на подобные вопросы позволило бы с помо¬ щью дихотомии эффективно решать и соответствующие оптимизацион¬ ные задачи. В этом смысле замена оптимизационной задачи соответст¬ вующей задачей распознавания сохраняет её суть. Вместо «размерности задачи» будем пользоваться стандартным тер¬ мином «длина входа», подразумевая под этим компактную запись условий задачи. В частности, все фигурирующие в условии задачи целые числа должны быть записаны в позиционной системе счисления. Класс Р — это класс тех задач распознавания, для кото¬ рых существуют эффективные, т. е. полиномиальные от длины входа алгоритмы решения. К этому классу относятся, в частности, рассмотренные выше задачи о минимальном остовном дереве, кратчайшем пути между вершинами, мак¬ симальном паросочетании и т. д. В то же время для задачи распознавания гамильтоновости графа, неизвестно эффективного алгоритма решения, но также и не доказано его отсутствие. Поэтому вопрос о принадлежности этой задачи к классу Р остаётся открытым. Однако если граф является
гамильтоновым, то подтвердить это можно, предъявив сам гамильтонов 141 цикл. Проверка корректности предъявленного подтверждения не пред¬ ставляет труда, а выражаясь точнее, эффективно выполнима. В дальней¬ шем подобное подтверждение будем называть сертификатом. Класс NP — это множество тех задач распознавания, для которых в случае правильного ответа «да» существуют: а) полиномиальный от длины входа задачи сертификат для подтверждения этого ответа; б) эффективный алгоритм проверки этого сертификата. В задаче определения гамильтоновости графа сам гамильтонов цикл и является требуемым эффективно проверяемым сертификатом, удостове¬ ряющим гамильтоновость графа. Поэтому данная задача заведомо при¬ надлежит классу NP. Аналогичным образом обстоят дела со многими другими задачами, для решения которых не удалось найти эффективного алгоритма, однако в случае положительного ответа существует подтверждение этого ответа в виде эффективно проверяемого сертификата. Такими задачами, в частности, являются «выполнимость», а также рассматриваемые в варианте распознава¬ ния «коммивояжёр», «покрытие множествами» и «рюкзак». Для решения этих задач неизвестно эффективного алгоритма, но проверка, например, для задачи «выполнимость» того, что, в результате присваивания участвующим в задаче переменным конкретных значений конъюнктивная нормальная форма получает значение «истина», не представляет труда. Подобные же сертифи¬ каты в случае положительного решения очевидным образом существуют и для задач «покрытие множествами» и «рюкзак». Поэтому вопрос о принад¬ лежности этих задач классу Р остаётся открытым, но все они принадлежат классу NP. Разумеется, любая задача, принадлежащая классу Р, принадле¬ жит классу NP. Эффективный алгоритм, решающий данную задачу, без вся¬ кого дополнительного сертификата способен подтвердить положительный ответ. В этом случае говорят также о проверке с пустым сертификатом. В большинстве разумно поставленных комбинаторных задач ответ «да» соответствует существованию решения, которое может быть кратко записано и эффективно проверено, т. е. оно может служить необходимым сертификатом, подтверждающим положительный ответ. Это объясняет, почему класс NP достаточно широк и интересен. Отметим неожиданное свойство класса NP. Он, возможно, несимметричен относительно инвер¬ тирования вопроса задачи. Так для задачи «является ли граф негамильто¬ новым?» в случае положительного ответа неизвестно подтверждающего этот ответ эффективно проверяемого сертификата. Поэтому нельзя утвер¬ ждать, что эта задача принадлежит NP. Как уже указывалось, имеет место включение Р с NP . Естественно ожидать, что класс NP обширнее класса Р , и данное включение является 4.6. Теория сложности: классы Р и NP
Глава 4. Алгоритмы 142 собственным. Хотя строго показать это пока не уцалось, к этому подталки¬ вает общий математический опыт, подсказывающий, что найти решение задачи обычно значительно труднее, чем проверить уже предложенное. Однако здесь есть и более веские аргументы. В классе NP были обнаружены задачи, для которых существование эффективного алгоритма решения позволило бы эффективно решать все задачи из класса NP. К этим, так называемым NP -полнъш задачам отно¬ сится огромное число содержательных задач из различных разделов мате¬ матики. К ним, в частности, относятся и уже многократно упоминавшиеся ранее «гамильтонов цикл», «выполнимость», «коммивояжёр», «покрытие множествами», «рюкзак». Эти задачи на протяжении десятилетий были предметом интенсивных исследований, но, несмотря на огромные затра¬ ченные усилия, для них не удалось найти эффективных алгоритмов реше¬ ния, что подталкивает к мысли об их непринадлежности классу Р . Центральным в излагаемой далее теории является понятие полиноми¬ альной сводимости задач одного класса к задачам другого класса. При этом для каждой задачи из одного класса возможно сконструировать зада¬ чу из другого класса, имеющую ответ «да» в том и только в том случае, если исходная задача имеет ответ «да», причём возможный рост длины входа при таком преобразовании одной задачи в другую ограничен поли¬ номом от длины входа исходной задачи. Давая точное определение, будем считать, что задача А задаётся бито¬ вой строкой хА , длину которой | х^ | и будем считать длиной входа. Все задающие задачу А целые числа записаны в этой строке в двоичной сис¬ теме счисления. Задача А полиномиально сводится к задаче В, если по строке х^, задающей задачу А, за полиномиальное от¬ носительно |х^| время можно построить строку хя, за¬ дающую задачу В, которая имеет ответ «да» в том и только в том случае, если исходная задача А имеет ответ «да». Будем обозначать такую сводимость как А->В. В качестве элементарного примера укажем следующую почти очевид¬ ную полиномиальную сводимость: «гамильтонов цикл» —> «коммивояжёр». Пусть по заданному матрицей смежности п -вершинному графу требуется определить, является ли он гамильтоновым. На полном графе с теми же вершинами, в котором имеющимся в исходном графе рёбрам приписана длина 1, а отсутствующим — длина 2, рассмотрим задачу коммивояжёра в варианте распознавания, в которой требуется определить, существует ли гамильтонов цикл длины не более чем п . Задача коммивояжёра имеет от¬ вет «да» в том и только в том случае, если исходный граф гамильтонов. Этим и доказывается полиномиальная сводимость «гамильтонов цикл» —» «коммивояжёр».
Полиномиальная сводимость А—> В позволяет при наличии алго- 143 ритма, эффективно решающего задачу В , эффективно решать и задачу А . | Утверждение 1. Если А-*В и ВеР, то АеР. Почти очевидная транзитивность оказывается важной в дальнейшем. I Утверждение 2. Отношение полиномиальной сводимости транзитивно: если А-+В и В—>С, то А—>С. Доказательство. Задача С имеет ответ «да» в том и только в том случае, если задача А имеет ответ «да». Кроме того, из \хв\<\хА\т и \хс\й\хв\п вытекает, что | хс |< | хА \тп . □ Задача распознавания AeNP называется А^Р-полной, ес¬ ли любая задача из NP полиномиально сводится к А. Существование NP -полных задач является далеко не очевидным фактом, и с их открытием теория сложности сделала важный качественный скачок. Можно сказать, что NP -полные задачи — это задачи одинаковой трудности, которые являются самыми трудными в классе NP. Существо¬ вание эффективного алгоритма для решения любой NP -полной задачи ав¬ томатически привело бы к возможности эффективного решения всех задач класса NP. В практическом же отношении установление NP -полноты некоторой задачи делает бесперспективными попытки найти для неё эф¬ фективный алгоритм решения. В силу утверждения 2 для доказательства NP -полноты некоторой за¬ дачи достаточно показать, что к ней сводится какая-либо из задач, NP -пол¬ нота которой уже доказана. Первой задачей, NP -полнота которой была доказана, была задача «выполнимость». Затем NP -полнота всех других задач класса NP, NP -полноту которых удалось установить, была выведе¬ на с помощью транзитивных цепочек полиномиальных сводимостей, на¬ чинающихся с задачи «выполнимость». Доказательство NP -полноты задачи «выполнимость» требует строгого определения понятия алгоритма, которое обычно даётся в терминах машины Тьюринга. В то же время для установления полиномиальных сводимостей не нужно существенно новых понятий, а требуется лишь определённая техническая изобретательность. Поэтому, прежде чем доказывать АТ3-пол¬ ноту задачи «выполнимость», продемонстрируем технику доказательства по¬ линомиальной сводимости на примере сводимости «выполнимость» —> «по¬ крытие множествами». Для этого введём ещё две задачи из класса NP: «клика» и «вершин¬ ное покрытие». 4.6. Теория сложности: классы Р и NP
Глава 4. Алгоритмы «Клика»: существует ли в заданном графе G клика (полный под¬ граф) мощности к, где к —произвольное натуральное число? «Вершинное покрытие»: существует ли в заданном графе G вер¬ шинное покрытие мощности I, т. е. такие I вершин, что каждое ребро графа инцидентно хотя бы одной из этих I вершин? Полиномиальная сводимость «выполнимость» -> «покрытие множе¬ ствами» будет следовать из следующей цепочки сводимостей: «выполнимость» —> «клика» —> -> «вершинное покрытие» —> «покрытие множествами». I Утверждение 3. Имеет место полиномиальная своди¬ мость «выполнимость» -» «клика». Доказательство. По заданной конъюнктивной нормальной форме строим граф G = (V, Е) следующим образом. Каждому литералу (пере¬ менная с отрицанием или без отрицания) в каждой элементарной дизъ¬ юнкции ставим в соответствие одну из вершин v е V графа G. Две вер¬ шины смежны в том и только в том случае, если одновременно выполнены два условия: 1) соответствующие им литералы находятся в различных элементарных дизъюнкциях и 2) один литерал не является отрицанием другого. Таким образом, рёбра соединяют такие пары литералов в различ¬ ных элементарных дизъюнкциях, которым можно одновременно придать значение «истина». Поэтому конъюнктивная нормальная форма выполни¬ ма в том и только в том случае, если в графе существует клика мощности к, где к — число элементарных дизъюнкций в конъюнктивной нормаль¬ ной форме. □ I Утверждение 4. Имеет место полиномиальная своди¬ мость «клика» -> «вершинное покрытие» Доказательство. По заданному графу G строим дополнитель¬ ный ему граф G. Как легко проверить, некоторое подмножество вершин является кликой в графе G в том и только в том случае, если дополнение этого подмножества является вершинным покрытием в графе G. Поэтому к -вершинная клика существует в п -вершинном графе G в том и только в том случае, если в графе G существует (л - к) -вершинное покрытие. □ И, наконец, для доказательства сводимости «вершинное покрытие» -» -* «покрытие множествами» достаточно заметить, что «вершинное по¬ крытие» есть частный случай задачи «покрытие множествами».
Следствие 1. «Покрытие множествами» является NP-non- 145 ной задачей. Несложный приём, использованный на последнем шаге цепочки, и состоящий в сведении частной задачи к более общей, часто используется при доказательстве NP -полноты. Его часто называют сужением. Пусть, например, требуется доказать NP -полноту задачи «изоморфизм подгра¬ фу», которая формулируется следующим образом. Заданы два произволь¬ ных графа G и G'. Спрашивается, существует лив G подграф, изоморф¬ ный G'. Здесь метод сужения выглядит следующим образом. Задача «клика» является частным случаем задачи «изоморфизм подграфу», когда в качестве G' взят полный граф. Поэтому из NP -полноты задачи «клика» следует NP -полнота задачи «изоморфизм подграфу». Полученные сводимости можно представить в виде дерева на рис. 1. Рис.1 Подобным же образом, продлевая ведущие из корня дерева ветви, можно показать NP -полноту задач «гамильтонов цикл», «коммивояжёр», и «рюкзак». На примере сужения задачи «выполнимость» интересно проследить грань между полиномиально разрешимыми и NP -полными задачами. 2-выполнимость и 3-выполнимость. Определим задачу «^-выполнимость» как распознавание выполнимости к. н. ф., в которой каждая элементарная дизъюнкция содержит не более к литералов. Нашей целью является доказа¬ тельство того, что «2-выполнимость» принадлежит классу Р, а «3-выпо¬ лнимость» является NP -полной задачей. 4.6. Теория сложности: классы PuNP
Глава 4. Алгоритмы 146 | Утверждение 5. «2-выполнимость» принадлежит классу Р. Доказательство. Укажем эффективный алгоритм решения задачи «2-выполнимость» с помощью процедуры последовательного исключения переменных, являющейся двойственным аналогом процедуры Дэвиса— Патнема для проверки тавтологичное™ д. н. ф. (см. задачу 2.24). Пусть С = Dl &D2 D) — к. н. ф., в которой каждая элементар¬ ная дизъюнкция £>!, £)2,... ,Dj содержит, как можно не теряя общности считать, ровно два литерала. Сгруппировав вместе дизъюнкции, содержа¬ щие хп и воспользовавшись законом дистрибутивности дизъюнкции по отношению к конъюнкции, запишем конъюнкцию этих дизъюнкций в виду хп v А , где А — элементарная конъюнкция от переменных Х\, х2,..., хп_\. Аналогичным образом записав конъюнкцию дизъюнкций, содержащих хп , преобразуем к. н. ф. С к виду С = (хп v А) & (х„ v В) & С , где А и В — элементарные конъюнкции от переменных Х\, х2,..., хп_\, а С' — к. н. ф., образованная теми элементарными дизъюнкциями из С, в которые не вхо¬ дит переменная хп . Тогда к. н. ф. С выполнима в том и только в том слу¬ чае, если выполнима формула (A v В) & С', зависящая от п -1 переменной. В самом деле, пусть формула (Av В)&С' выполнима. Тогда при вы¬ полняющем её наборе значений переменных Х\,, х„_|, по крайней ме¬ ре, одна из элементарных конъюнкций А или В истинна. Если истинна А , то (хп v А) & (хп v В) & С истинна при том же самом наборе значений переменных Х\,..., хп_\ и значении «ложь» переменной хп . Если истин¬ на В , то (хп v А) & (х„ v В) & С истинна при том же самом наборе значе¬ ний переменных Х],..., и значении «истина» переменной хп . Пусть теперь формула (хп v А) & (хп v В) & С выполнима. Тогда при выпол¬ няющем её наборе значений переменных ,..., хп_\, хп , по крайней ме¬ ре, одна из элементарных конъюнкций А или В должна быть истинна, а следовательно, будет истинна и формула (Av В) & С'. Далее, используя дистрибутивность дизъюнкции по отношению к конъюнкции, преобразуем дизъюнкцию двух конъюнкций Av В в к. н. ф. от п -1 переменных, каждая элементарная дизъюнкция которой содержит не более двух литералов. Дизъюнкций длины 2, построенных из п пере- 2 менных, существует заведомо не больше С2п- Поэтому сложность полу¬ чаемых в результате подобных преобразований к. н. ф. всегда ограничена полиномом от сложности исходной к. н. ф. Последовательно исключая по¬ добным образом переменные, приходим к тривиальной задаче о выполни¬ мости к. н. ф. от одной переменной, что и доказывает полиномиальную разрешимость задачи «2-выполнимость». □
Утверждение 6. «3-выполнимость» является WP-полной 147 задачей. Доказательство. Покажем, что «выполнимость» полиномиаль¬ но сводится к «3-выполнимость». Пусть задана произвольная к. н. ф. С = = &D2 &...&£>/, где D\, D2,... , D/ — элементарные дизъюнкции про¬ извольной длины. Покажем, как, вводя дополнительные переменные, за полиномиальное относительно длины С время выписать к. н. ф., каждая элементарная дизъюнкция которой содержит не более трёх литералов и ко¬ торая выполнима в том и только в том случае, если выполнима к. н. ф. С . Пусть Z>! =Ц v L2 v... v Ьк , где 1ц, L2, ... , Lk —литералы (пере¬ менные с отрицанием или без отрицания) и к > 3 . Заменяем дизъюнк¬ цию D\ на конъюнкцию двух элементарных дизъюнкций (L\ v Lj v z) & &(Аз v... v Lk v z), где z — новая переменная. Если к > 3 , то применяем указанную операцию к дизъюнкции L$ v... v Lk v z и так до тех пор, пока дизъюнкция D] не будет заменена конъюнкцией элементарных дизъюнкций, каждая из которых содержит не более трёх литералов. При каждом таком преобразовании, как легко проверить, новая к. н. ф., получаемая из С заме¬ ной дизъюнкции D\ на соответствующую конъюнкцию, выполнима в том и только в том случае, если выполнима к. н. ф. С . Выполнив подобные замены для каждой элементарной дизъюнкции D\, D2,... ,Dt, получим требуемую к. н. ф. Тем самым доказана NP -полнота задачи «3-выполнимость». □ Сужение не является сугубо теоретическим приёмом. Возможность сужения следует иметь в виду и при решении практических задач. Столк¬ нувшись с NP -полной задачей на практике, можно попытаться сузить за¬ дачу так, чтобы, сохранив практическую ценность, она стала бы полино¬ миально разрешимой. Например, задача «клика» является NP -полной. Может оказаться, однако, что рассматриваемый граф является планарным. Тогда согласно теореме Куратовского мощность клики не может превышать четырёх и задача полиномиально разрешима тривиальным перебором. Хотя все усилия многочисленных исследователей доказать, что Р * * NP на протяжении уже четырёх десятилетий и остаются тщетными, абсо¬ лютное большинство учёных убеждены в справедливости этого факта. При этом класс NP может быть условно представлен, как показано на рис. 2. При таком представлении считается, что ближе к центру круга распо¬ лагаются более лёгкие задачи, а дальше от центра — более трудные. Так как до сих пор нам встречались лишь задачи класса Р и NP -полные за¬ дачи, то, глядя на этот рисунок, естественно задать вопрос о том, что представляют собой задачи класса NP, не входящие в класс Р, но не яв¬ ляющиеся NP -полными. Не является ли это множество задач пустым, а 4.6. Теория сложности: классы Ри NP
Глава 4. Алгоритмы каждая задача класса NP, не принадлежа¬ щая классу Р, NP -полной? Можно пока¬ зать, что если Р Ф NP, то это множество не пусто. Известным претендентом на место в нём является задача «изоморфизм графов», являющаяся сужением задачи «изоморфизм подграфу». Она формулируется следующим образом. Даны два графа, требуется устано¬ вить, изоморфны ли они. Для этой задачи не удалось ни найти эффективного алгоритма решения, ни доказать её NP -полноту. Вопросы для самопроверки 1. К какому из классов сложности принадлежит задача «покрытие мно¬ жествами» в её варианте распознавания? а) Р ; б) NP; в) Р и NP. 2. К какому из классов сложности принадлежит задача «минимальное остовное дерево» в её варианте распознавания? а) Р ; б) NP; в) Р и NP. 3. Может ли NP -полная задача принадлежать классу Р ? а) да; б) нет; в) в том и только в том случае, если Р = NP. Ответы: 1 — б, 2 — в, 3 — в. 4.7. Сложность приближённого решения Если для некоторой задача дискретной оптимизации не удаётся найти эффективного алгоритма решения, то, столкнувшись на практике с такой задачей, естественно, пожертвовав точностью решения, попытаться найти эффективный алгоритм, гарантирующий получение допустимого решения с качеством, не более чем в R раз хуже оптимума, где R — некоторая константа, 1 < R < оо. Будем называть такое решение R -оптимальным. Для задачи коммивояжёра — это гамильтонов цикл, не более чем в R раз длиннее оптимального, а для задачи о рюкзаке — набор предметов, вес ко¬ торых не более чем в R раз меньше веса оптимального набора. Для анализа трудности получения R -оптимальных решений задач дис¬ кретной оптимизации удобно использовать понятие NP -трудной задачи. За¬ дача А называется NP -трудной, если к ней полиномиально сводится любая задача из NP. При этом сама задача А может и не принадлежать NP. Бу¬ дем допускать в класс NP -трудных задач не только задачи распознавания, но и задачи оптимизации. Таким образом, если задача дискретной оптимизации в варианте распознавания является NP -полной, то в своём исходном опта-
мизационном варианте она будет NP -трудной. Так, задача коммивояжёра в 149 варианте распознавания является NP -полной, а в оптимизационном вариан¬ те, когда требуется найти кратчайший гамильтонов цикл, — NP -трудной. Оказывается, что в смысле получения R -оптимального решения раз¬ личные NP -трудные задачи оптимизации ведут себя существенно различ¬ ным образом. Некоторые из них допускают эффективные алгоритмы реше¬ ния для произвольного, сколь угодно близкого к единице R . Другие оста¬ ются NP -трудными для сколь угодно большого R . Для третьих, по-види¬ мому, существует некоторое критическое значение R, при пересечении которого задача из NP -трудной становится полиномиально разрешимой. Коммивояжёр. Начнём с задачи коммивояжёра. Возможно ли для неё эф¬ фективное получение R -оптимальных решений? Жадный алгоритм, как было показано в разделе 4, ни при каком R такого решения не даёт. Ока¬ зывается, что если не выполнено неравенство треугольника, то существо¬ вание подобного алгоритма для любой, сколь угодно большой константы R , маловероятно ввиду следующего результата. Утверждение 1. Для общей задачи коммивояжёра нахож¬ дение R-оптимального решения остаётся Л^Р-трудной задачей для любого, сколь угодно большого R . Доказательство. Покажем сводимость к данной задаче NP-пол¬ ной задачи «гамильтонов цикл». По заданному п -вершинному графу, га- мильтоновость которого исследуется, строим полный взвешенный граф, в котором веса рёбер имеющихся в исходном графе полагаются равными еди¬ нице, а веса остальных рёбер — R п . Тогда, как нетрудно понять, алгоритм, получающий R -оптимальное решение для задачи коммивояжёра, выдаст в качестве ответа цикл длины п в том и только в том случае, если исходный граф гамильтонов. □ Однако для метрических задач коммивояжёра эффективные алгорит¬ мы, гарантирующие качество решения, не более чем в константу раз хуже оптимального, существуют. Утверждение 2. Для метрической задачи коммивояжёра существует эффективный алгоритм получения 2-оптималь¬ ного решения. Доказательство. Зададим требуемый алгоритм следующим об¬ разом. 1) с помощью одного из алгоритмов раздела 2 находим в данном взве¬ шенном графе минимальное остовное дерево и, выделяя в нём произ¬ вольную вершину в качестве корня, превращаем его в корневое дерево; 2) начиная с корня, совершаем полный обход вершин дерева, как на рис. 3.2.5, выписывая посещаемые вершины в последовательность в порядке их прохождения и возвращаясь в корень из последней посе¬ щённой вершины; 4.7. Сложность приближённого решения
Глава 4. Алгоритмы 150 3) удаляя в полученном замкнутом маршруте повторяющиеся вершины, получаем гамильтонов цикл, который не более чем вдвое длиннее оп¬ тимального. Проиллюстрируем инструкции 2) и 3) данного ал¬ горитм на примере. Пусть в результате выполнения ин¬ струкции 1) получено корневое остовное дерево (рис. 1). Обход вершин данного дерева приводит к следую¬ щему маршруту: v0 ’ V1 > v2 > V1 > v3 > V1 ’ v4 > V1 > v0 > v5 > v6 > v5 > v7 > v5 > v0 • Каждое ребро дерева при этом проходится дважды, поэтому длина полученного замкнутого маршрута равна удвоенной длине минимального остовного дерева. Выбросив теперь соглас¬ но инструкции 3) повторяющиеся вершины, получим гамильтонов цикл: v0>vl >v2’v3’v4> v5’v6»v7> v0 • При подобном выбрасывании каждая ломанная заменяется прямой и вследствие неравенства треугольника длина полученного уже гамильтоно¬ ва цикла не превышает длины исходного замкнутого маршрута, т. е. не бо¬ лее чем вдвое превышает длину минимального остовного дерева. Теперь остаётся лишь заметить, что при удалении из произвольного гамильтонова цикла одного из рёбер всегда возникает остовное дерево. Поэтому длина минимального остовного дерева всегда меньше длины кратчайшего га¬ мильтонова цикла. Отсюда и следует, что длина полученного гамильтоно¬ ва цикла не более чем вдвое превышает длину оптимального цикла. □ Возможно ли для метрической задачи коммивояжёра эффективно по¬ лучать R -оптимальные решения для R < 2 ? В 1976 году Кристофидесом был указан эффективный алгоритм получения 1.5 -оптимального решения (см. [10]). В качестве подзадачи этот алгоритм также использует мини¬ мальное остовное дерево, но он сложнее. С тех пор этот результат не был улучшен, и вопрос о существовании алгоритма с лучшим гарантирован¬ ным результатом остаётся открытым. Рюкзак. Жадный алгоритм, применённый к задаче о рюкзаке, как было по¬ казано в разделе 4, может дать решение, в сколь угодно большое число раз худшее оптимального. Однако, используя ограниченный перебор, предва¬ ряющий применение жадного алгоритма и оставляющий трудоёмкость ал¬ горитма в пределах полиномиальности, можно гарантировать любую за¬ данную близость этого отношения к единице. Но рост гарантированной точности решения при этом достигается ценой роста степени полинома трудоёмкости. Утверждение 3. Для любого Л > 1 существует полиноми¬ альный алгоритм получения Л-оптимального решения задачи о рюкзаке.
Доказательство. Модифицируем описанный в разделе 4 жадный 151 алгоритм для решения задачи о рюкзаке следующим образом. Рассматриваем все не более чем к -элементные подмножества множе¬ ства предметов. Для каждого такого подмножества проверяем, что его вес не превосходит установленного предела, и затем дополняем его свободное пространство оставшимися предметами с помощью жадного алгоритма. Из всех полученных таким образом решений отбираем лучшее по качеству. Назовём такую модификацию жадного алгоритма к -жадным алгорит¬ ме мом. Трудоёмкость такого алгоритма можно оценить как ^С‘п<кС% <пк, /=1 что при фиксированном к является полиномом степени к от п. Пока¬ жем, что отношение качества решения, полученного с помощью к -жадного алгоритма, к качеству оптимального решения составляет не менее к/(к +1). Пусть оптимальным решением является группа предметов с номера¬ ми /], /2 im . Тогда, если т < к , то с помощью к -жадного алгоритма будет получено оптимальное решение. Если т > к, то выделим в опти¬ мальном решении к наиболее ценных предметов. Тогда на некотором шаге к -жадного алгоритма данный набор предметов будет стартовым набором при инициализации жадного алгоритма, а ценность любого предмета из оп¬ тимального набора, не входящего в число этих к , составит не более 1/к от суммарной ценности этой группы и, следовательно, не больше 1/(к +1) от ценности оптимального набора. Упорядочив т-к оставшихся предмета оптимального набора по невозрастанию удельной ценности ci/pi , получим последовательность ценностей: с*, с\,..., с*т_^ . Другая последовательность ценностей возни¬ кает в результате работы жадного алгоритма: cf, с^,..., cf. Если жадное решение хуже оптимального, то существует такой первый номер i, что с* /р* > cf /pf или / > /. В этот момент свободного пространства у жад¬ ного алгоритма имеется меньше р*. Следовательно, качество его решения не может быть более чем на с* хуже оптимального, что и гарантирует тре¬ буемое отношение качеств к -жадного и оптимального алгоритмов. □ Покрытие множествами. Исследования, проведённые для задачи о покры¬ тии множествами, показали, что для любого, сколь угодно большого R за¬ дача получения R -оптимального решения остаётся УР-трудной. Чтобы продемонстрировать те неожиданности, с которыми можно встретиться при анализе сложности получения R -оптимальных решений задач дис- 4.7. Сложность приближённого решения
Глава 4. Алгоритмы 152 кретной оптимизации, рассмотрим две задачи: задачу о покрытии множе¬ ствами и задачу о вершинном покрытии. С точки зрения точного решения обе эти задачи одинаково трудны, они являются NP -полными в варианте распознавания и NP -трудными — как оптимизационные задачи. Однако с точки зрения приближённого решения их поведения оказывается существен¬ но различными. Если R -оптимальное решение задачи о покрытии множест¬ вами остаётся NP -трудной задачей для любого, сколь угодно большого R , то задача о вершинном покрытии допускает эффективное R -оптимальное решение по крайней мере для R > 2 . Утверждение 4. Для задачи о вершинном покрытии су¬ ществует полиномиальный алгоритм получения 2-опти¬ мального решения. Доказательство. Покрытие, вес которого не более чем вдвое пре¬ восходит оптимальный, может быть получено следующим элементарным методом. Берём произвольное ребро графа и покрываем его обеими инци¬ дентными ему вершинами. Тем самым могут быть покрыты также и неко¬ торые другие рёбра графа. После этого из множества непокрытых рёбер выбираем произвольное ребро и также покрываем его двумя инцидентны¬ ми ему вершинами. Продолжаем действовать подобным образом до тех пор, пока все рёбра графа не будут покрыты. Полученное в результате вер¬ шинное покрытие не более чем вдвое превышает оптимальное. В самом деле, выбираемые в процессе покрытия рёбра образуют паросочетание, и для его покрытия требуется не меньшее число вершин, чем его мощность, а взятое в покрытие число вершин вдвое превышает эту мощность. □ Вопросы для самопроверки 1. Задача нахождения гамильтоновою цикла, не более чем в 1,4 раза пре¬ вышающего по длине оптимальный, во взвешенном графе, не удовле¬ творяющем неравенству треугольника, является а) эффективно решаемой; б) NP -трудной; в) неизвестно. Ответы: 1 — в. 4.8. Машина Тьюринга Достижения теории алгоритмов, относящиеся как к вопросам алго¬ ритмической разрешимости, так и к вопросам трудоёмкости решения за¬ дач, связаны с уточнения самого понятия алгоритма. В первой половине XX века было предложено несколько определений алгоритма, впоследст¬ вии оказавшихся эквивалентными. В 1936 году английским математиком Тьюрингом было рассмотрено гипотетическое вычислительное устройст¬ во, которое в определённой мере явилось прообразом современных ЭВМ и в настоящее время продолжает использоваться в качестве основной моде¬ ли алгоритма. Теперь его называют машиной Тьюринга (МТ).
МТ имеет конечное множество внутренних состояний <2 = {%, q\, ■■■, 153 qm}, где q\ считается начальным, а ^ — конечным состояниями, а также внешнюю память в виде ленты, состоящей из конечного числа ячеек, в ко¬ торых записаны символы из внешнего алфавита А = {а0, ait..., ап}, при¬ чём символ а0 считается пустым. При этом в процессе работы МТ к суще¬ ствующим ячейкам могут пристраиваться новые пустые ячейки (рис. 1). В каждый из дискретных моментов времени (тактов) МТ находится в одном из своих внутренних состояний и обозревает одну из ячеек ленты, воспринимая записанный в ней символ. В зависимости от внутреннего со¬ стояния и воспринимаемого символа МТ переходит в следующий момент в новое внутреннее состояние (возможно, то же самое), записывает новый символ в обозреваемую ячейку (возможно, тот же самый) и начинает обо¬ зревать соседнюю ячейку слева, либо ту же самую ячейку, либо соседнюю ячейку справа. Можно считать, что эти операции с содержимым обозревае¬ мой ячейки выполняются с помощью читающей и пишущей головки, кото¬ рая, двигаясь по ленте, в каждом такте переходит к соседней ячейке слева или 'справа, или остаётся на месте. Таким образом, функционирование МТ задаётся тремя функциями переходов: G: QxA->Q; F: QxA^A; (1) D\ Qx A—> {L,C,R} (L — влево, C — на месте, R — вправо). •*— лента —► Управляющее устройство с конечным числом состояний Рис. 1 Решение задач на МТ осуществляется следующим образом. Условия задачи в кодированном виде с помощью внешнего алфавита записываются на ленте, и работа МТ начинается. Проработав определённое число тактов, МТ попадает в заключительное состояние q0, после чего МТ прекращает работу, её состояние, содержимое ячеек ленты и положение головки в по¬ следующие моменты остаются неизменными. При этом записанное на ленте слово в кодированном виде содержит ответ на вопрос задачи. По определе¬ нию, задача считается алгоритмически разрешимой, если существует ре¬ шающая её МТ. 4.8. Машина Тьюринга
Глава 4. Алгоритмы 154 Так как функции переходов G, F и D имеют одну и ту же область определения Q х А , то их удобно задавать с помощью конечного множест¬ ва команд, имеющих вид: 4i aj -» Як al sp. гае Як = G(qhaj), а, = F(qhaj), sp = D{qhaj). Такое множество команд называется программой для МТ. МТ полно¬ стью определяется своей программой. Заметим, что в отличие от про¬ грамм для реальных вычислительных машин порядок команд в программе для МТ безразличен. В каждый дискретный момент времени МТ характеризуется своим мгновенным описанием, состоящим из внутреннего состояния qt, содер¬ жимого ячеек ленты aj ,aj ,..., а^ и номера к обозреваемой ячейки. Такое описание полностью определяет дальнейшее функционирование МТ, осуществляемое в соответствии с программой, и называется конфигурацией. Конфигурация записывается как а^ aj2 ... ajk (qi ajk a jk+i ■ ■ ■ ajt, т. e. внут¬ реннее состояние qj пишется слева от обозреваемого головкой символа. Конфигурации, получающиеся из данной приписыванием слева или спра¬ ва произвольного числа пустых ячеек, считаются эквивалентными. В процессе работы МТ происходит последовательная смена конфигу¬ раций. Если начальная конфигурация задана, то все последующие конфи¬ гурации определяются программой. Если к тому же условиться считать, что в начальный момент МТ находится в состоянии qx, обозревает самую левую ячейку ленты, и начиная с этой ячейки записаны условия задачи, то начальная конфигурация полностью задаётся начальным словом — набо¬ ром записанных в ячейках ленты символов. Несмотря на кажущийся примитивизм, МТ может делать всё, что вы¬ полняет обычный компьютер. Более того, она не имеет ограничений по памяти, неизбежных для каждого реального компьютера. Поэтому нет ог¬ раничений и на размерность решаемых ею задач. Все команды реального компьютера, в частности, все арифметические операции, которые в реаль¬ ных компьютерах выполняются с числами фиксированной разрядности, можно смоделировать с помощью МТ. При этом решение задачи на МТ займёт большее число тактов работы, чем у обычного компьютера, но это будет, как можно показать, замедлением не более чем в полином от входа раз, даже если считать, что все арифметические операции с целыми чис¬ лами ограниченной величины компьютер выполняет за один такт. Поэто¬ му определение классов сложности Р и NP не зависит от того, измеряет¬ ся время решения задачи в тактах МТ или в тактах работы реального ком¬ пьютера. Это и позволяет использовать МТ для анализа этих классов. Определив алгоритм как МТ, мы можем теперь уточнить определения классов Р и NP, указав, что фигурирующее в них время решения есть число тактов соответствующей МТ.
В качестве примера рассмотрим решение МТ одной несложной зада- 155 чи распознавания. Пусть требуется решить, является ли данное двоичное слово палиндромом, т. е. одинаково читаемым в прямом и в обратном по¬ рядке как, например, 10100100101. Входом МТ является распознаваемое слово, а выход должен быть Y или N, в зависимости от того, является сло¬ во палиндромом или нет. Данная задача может быть решена МТ со сле¬ дующей программой: 1. Я\ ао Яо Y С; 2. Я\0 -> <72 «о Я ; 3. 0 —^ ^2 0 Л 1 4. Я2i ?21 Я; 5. 42 а0 Яг а0 L 1 6. Яг о Я4 ао l ; 7. <74 0 —> <74 0 L ; 8. Яа 1 —► 941 l ; 9. Ял а0 Я\ ао Я> 10. Яг 1 Яг ао l ; 11. Я5 1 Я5 а0 L > 12. Яг 0 -* Яб ао L! 13. я5 ао яо м с; 14. Я\ 1 Яь а0 R > 15. Я 6 о Я 6 о ^; 16. я в 1 я 61 ^; 17. Яб ао~^Япао^\ 18. Я11 Я А а0 ^ 1 19. Яп 0 Я5 а0 L 1 20. Яг ао Яо Y С > 21. Я1 ао Яо Y С • Дадим поясняющие комментарии к работе данной МТ. Идея алгорит¬ ма состоит в том, чтобы при совпадении первого и последнего символов слова стирать их, уменьшая таким образом длину слова, а при несовпаде¬ нии — сразу дать отрицательный ответ. Команда 1 сразу переводит МТ в заключительное состояние q0 и печатает Y, если слово является пустым. Команды с 2 по 13 обрабатывают ситуацию, когда слово начинается с ну¬ левого символа. Этот первый нуль стирается, на его месте остаётся пустой символ а0 , МТ переходит в состояние <72 (2), и головка движется вправо (3, 4) вплоть до конца слова (5). Если заключительным символом слова также является нуль, то этот нуль тоже стирается (6), головка движется влево к началу слова (7, 8), при его достижении МТ переходит в начальное состояние qi (9), и процесс проверки на палиндром продолжается. Если же заключительным символом слова является единица, то она стирается (10), головка движется влево к началу слова, стирает все его символы (11, 12) и МТ, напечатав N, останавливается (13). Команды 14-19 аналогичным образом обрабатывают ситуацию, когда слово начинается с единицы. Здесь также возникают два возможных случая, когда заключительным символом слова является единица (18) и нуль (19). В первом случае МТ переходит в состояние q4, и процесс проверки на палиндром продолжается, а во втором машина переходит в состояние q$ , стирает все оставшиеся символы слова, печатает N и останавливается. 4.8. Машина Тьюринга
Глава 4. Алгоритмы 156 Последние две команды 20, 21 обрабатывают ситуации, когда в па¬ линдроме остался всего один символ: команда 20 — когда он состоит из одного нуля, 21 — из одной единицы. Пусть входом алгоритма является слово 010. Тогда при работе МТ последовательно возникают конфигурации: ^010, a0q2lO, a0lq20, a0lOq2a0, а0 1 Яъ 0 а0 > а0 Я4 1 а0 а0 ’ Я 4 а0 1 а0 а0 ’ а0 9, 1а0а0, «о ао Яб а0 а0 > а0 Яп ао ао а0 > а0 Яо Y ао ао ■ Заключительная конфигурация говорит о том, что МТ распознала входное слово как палиндром. Если же в качестве входного слова предло¬ жить 110 , то возникнут конфигурации: Я\ 1Ю , а0 q610 , а01 q6 0 , а0\0q6 а0 , а01 q7 0 а0 , а0 Я5 1 а0 а0 »а0 45 1 а0 а0 > Я5 «0 % а0 а0 > Яо ^ а0 а0 а0 > и слово будет распознано как не палиндром. ' На языке МТ можно сформулировать и содержательные алгоритмиче¬ ски неразрешимые проблемы. Начав работу с некоторого начального слова Р , МТ либо остановится через конечное число тактов, либо никогда не остановится. В первом случае говорят, что МТ применима к слову Р, а во втором — что неприменима. Пусть, например, МТ задаётся программой 1. q\0 —^ 9,OP i 2. 9, 1 —> q2OP i 3. q2l—> qxOP \ 4. 92^—^ яо^С • Тогда, если начальное слово Р = 11101, то при работе МТ последова¬ тельно возникают конфигурации: 9, 11101, 09211001, 009,101, 000<jr201, 000<7о 11. После 4 тактов работы МТ переходит в заключительное состоя¬ ние и останавливается, т. е. МТ применима к данному слову. Пусть теперь начальное слово Р = 1111. Тогда последовательными конфигурациями будут: 9,1111, 0^2111, 00^11, 000921, 00009,0 , 000009,0 , 0000009,0 , .... Теперь МТ никогда не остановится, т. е. она неприменима к данному слову. Рассмотрим теперь алгоритмическую проблему самоприменимости, состоящую в следующем. Всех МТ, как нетрудно понять, счётное число. Поэтому множество всех МТ можно закодировать, присвоив каждой МТ в качестве идентифицирующего кода натуральное число и(МТ). При этом всё множество МТ разобьётся на 2 класса: МТ, применимых к собствен-
ному номеру, т. е. к слову Р = 1...1 (число единиц равно номеру МТ), и 157 неприменимых. Назовём МТ первого класса самоприменимыми, а второ¬ го — несамоприменимыми. Проблема самоприменимости состоит в распознавании, является дан¬ ная МТ самоприменимой. Некоторая МТ решает проблему самопримени¬ мости, если по коду произвольной МТ она определяет, самоприменима она или нет. Докажем, что такой МТ не существует. Допустим противное. Пусть такая МТ имеется и на коде самоприме¬ нимой машины она завершает работу в конфигурации ...<701..., а на коде несамоприменимой — ...q00.... Тогда, сделав незначительные изменения в программе, легко добиться того, чтобы МТ останавливалась на кодах не- самоприменимых машин и не останавливалась на кодах самоприменимых машин. Для этого считаем, что состояние qg не конечное состояние, а в качестве конечного введём новое состояние q'g и добавим в программу МТ две новые команды: 1. <701—^ qg 1С и 2. <7оО—tqgOC . Зададимся теперь вопросом, является данная МТ самоприменимой или несамоприменимой. Если она самоприменима, то она останавливается на коде самоприменимой машины, что невозможно. А если несамоприменима, то она не останавливается на коде несамоприменимой машины, что также невозможно. Полученное противоречие и является доказательством алго¬ ритмической неразрешимости проблемы самоприменимости. Проблема самоприменимости выглядит всё же несколько искусствен¬ ной. Но вот уже вполне естественная алгоритмическая задача. Пусть тре¬ буется для любой машины и любого слова определять, применима ли эта машина к данному слову. Допустим, что существует МТ, которая по коду любой машины и слову Р решает, применима ли эта машина к слову Р . Но тогда, если в качестве слова Р взять код этой же машины, то наша МТ будет решать проблему самоприменимости, а это невозможно. Поэтому данная проблема также оказывается алгоритмически неразрешимой. В центре нашего внимания, однако, находится не проблема алгорит¬ мической разрешимости, а классификация задач дискретной математики по сложности. Основные алгоритмические задачи дискретной математики принадлежат классу NP, и нашей целью является доказательство сущест¬ вования в этом классе NP -полных задач. Открытие эффективного алго¬ ритма для любой такой задачи позволило бы эффективно решать все зада¬ чи класса NP. Практически же NP -полнота некоторой задачи в настоя¬ щее время означает бесперспективность попыток найти для неё эффективный алгоритм решения. МТ была использована для доказатель¬ ства NP -полноты задачи «выполнимость», которой принадлежит честь быть первой открытой NP -полной задачей. 4.8. Машина Тьюринга
Глава 4. Алгоритмы 158 4.9. Теорема Кука Дав формальное определение алгоритма как МТ, мы готовы к доказа¬ тельству теоремы о Л^-полноте задачи «выполнимость». Доказанная в 1971 году американским учёным Стивеном Куком, эта теорема дала первый пример NP -полной задачи, став важнейшим достижением современной теории сложности. Теорема 1 [8]. Задача «выполнимость» является NP-non- ной, т. е. к ней полиномиально сводится любая задача из класса NP. Доказательство. Пусть задача A&NP задаётся битовой строкой а, длина которой | а | определяется размерностью задачи. Тогда в случае от¬ вета еда», по определению, существуют сертификат с(а), также являющийся некоторой битовой строкой, и существует МТ, которая, получив в качестве входа строку а Ос(а), не более чем за р(| а |) шагов выполняет проверку этого сертификата. Здесь р — некоторый фиксированный для всех задач данного типа полином, не зависящий от размерности задачи, а символ О выполняет роль разделителя, отделяющего во входном слове описание за¬ дачи от проверяемого сертификата. Проверяющая сертификат МТ имеет множество внутренних состояний Q = {q§, внешний алфавит А = {а0, ai> > ап), среди символов {щ,..., ап} которого имеется также и символ 0 . Функционирование МТ определяется функциями переходов (8.1). Рассмотрим в качестве примера задачу проверки гамильтоновости графа. В качестве входа для МТ, ре¬ шающей эту задачу может быть взята строка, начи¬ нающаяся с десятичного числа, указывающего число вершин в исследуемом графе, и продолжающаяся после запятой построчной записью его матрицы смежности. Затем после знака 0 идёт через запятую перечисление вершин графа в порядке предъявленного гамильтоново- го цикла. Например, для графа на рис. 1 входное слово аОс(а) имело бы вид 100,011110011001111001,10,100,11,1. Получив в ка¬ честве входа такое слово, соответствующая МТ выполняет проверку сле¬ дующего после знака 0 сертификата подобно тому, как в предыдущем разделе осуществлялась проверка на палиндром. Для произвольной задачи А е NP покажем, как с помощью прове¬ ряющей её сертификат МТ построить моделирующую эту проверку к. н. ф. К = К(а, МТ), полное число литералов которой ограничено поли¬ номом от | а | и которая выполнима в том и только в том случае, когда про¬ верка завершается успешно, т. е. ответом на задачу А является еда». Тем са¬ мым будет показано, что произвольная задача из класса NP полиномиаль- 1 2
но сводится к задаче «выполнимость», которая, таким образом, является 159 NP- полной. Опишем входящие в к. н. ф. булевы переменные. Их число, хотя и будет весьма велико, всё же ограничено полиномом от | а |. Занумеруем ячейки ленты целыми числами, считая нулевой ячейку, у которой стоит головка в начальный момент, и нумеруя вправо положительными, а вле¬ во — отрицательными числами. Ячейки нумеруются до р(| а |) вправо и до -р(| а |) влево. Дальнейшая нумерация не потребуется, так как за вре¬ мя р(| а |) головка не может передвинуться дальше, чем на р(| а |) ячеек от начального положения. Булевы переменные разбиваются на три типа xjj, ук , г\. Переменной x\j соответствует утверждение, что в момент времени t ячейка с номером i содержит символ aj (0</<р(|а|), — р(|а|)</<р(|а|), О < j <п). Этих переменных (р(| а |) + 1) (2р(| а |) + 1)(л+ 1) = о(р2(| а |)j. Переменной у‘к соответствует утверждение, что в момент времени t МТ находится в состоянии qk (0<г <р(|а|)), 0 <к<т). Таких пере¬ менных 0(р(|а|)). Переменной z\ соответствует утверждение, что в момент времени / головка обозревает ячейку с номером /' (0</<р(|а|), -р(| а |) < i < р(| а |). Таких переменных о|р2(|а|)|. Смена конфигураций МТ при проверке сертификата происходит в соответствии с её программой и заканчивается подтверждением серти¬ фиката в том и только в том случае, если выполнена конъюнкция из 7 ус¬ ловий К = С] & С2 & С3 & С4 & С5 & С6 & С7, где условия Q - С7 озна¬ чают: 1) С| — в каждый момент времени в каждой ячейке ленты содержится ровно один символ внешнего алфавита; 2) Сг — в каждый момент времени МТ находится ровно в одном внут¬ реннем состоянии; 3) С3 — в каждый момент времени головка обозревает ровно одну ячей¬ ку ленты; 4) С4 — в следующий момент времени может измениться только содер¬ жимое ячейки, обозреваемой головкой; 5) С5 — изменение внутреннего состояния, содержимого читаемой ячей¬ ки и положения головки происходит в соответствии с функциями пе¬ реходов G, F, D; 4.9. Теорема Кука
Глава 4. Алгоритмы 160 6) С6 — выполнены начальные условия: в момент времени t = О МТ нахо¬ дится в состоянии <7|; головка читает нулевую ячейку; начиная с которой на ленте записаны строка а и символ 0 (задающие сертификат по¬ следующие символы остаются свободными, что соответствует воз¬ можности подбора выдерживающего проверку сертификата); 7) С7 — не позднее, чем через р(| а |) шагов МТ достигает заключитель¬ ного состояния <70 > в котором принимает сертификат (будем считать, что принятие сертификата выражается в том, что в момент остановки головка МТ останавливается около ячейки с номером -1, в которой за¬ писан символ Y). Каждое из этих 7 условий может быть записано в виде к. н. ф. от вве¬ дённых булевых переменных. 1) С] = &С|П, где С[‘ есть условие того, что в момент времени t в t,i ячейке i содержится ровно один символ: С{‘ = (x‘Qvx‘nv...vx‘m) & (х'Л v х\к). b<h<h±n 2) С2 =&С‘2 , где С2 есть условие того, что в момент времени t МТ находится ровно в одном состоянии: С[ = (Уд vy[ v...vy‘m) & (у‘ vy‘). О <к{<к2йт 3) С3 = &С2 , где С3 есть условие того, что в момент времени t голов¬ ка обозревает ровно одну ячейку ленты: С3 =(z{ vz\ v...zf) & (z‘ vzh. l<i)<i2<p(l x\) 4) C4 = & C‘4 , где C4 есть условие того, что, если ячейка i в момент t времени t не обозревается головкой, то в следующий момент време¬ ни / +1 её содержимое остаётся прежним: 5) С5 = & Cj , где С3 есть условие того, что, если в момент времени t машина находится в состоянии qk и обозревает ячейку i, в которой
содержится символ aj, то в следующий момент времени t +1 маши- 161 на будет находиться в состоянии qk<, обозревать ячейку Г,ав ячейке i будет содержаться символ а у , где qk', i', ау определяются функ¬ циями переходов (8.1): С‘5 = О//wy[ v zi v A/) & (x‘ij vy‘k v A v УеХ) & (Aj vyi v Z(- v z/-+l) 6) C6=y,0z0° OC i Лба-, V '=0 i+1 4 ( r0 *|a| №0 J -I & V'=-p(l«l) ro xi 0 где Л^О и NsaM обозначают номера во внешнем алфавите МТ, соот¬ ветственно, символа 0 и (i + 1)-го символа набора а. ' Р(\а\) V(l«l) 7) С1= \/ у‘0 Si (Уо^2-1х-\льу) = ч t=1 ) t=1 ' р(\а\) "ЫМ)/,— — ч\ = VУо & \{ybvz-i)(ybvx-i№r)J- \ t=1 У <=1 Этим завершается построение требуемой к. н. ф. К и доказательство теоремы. Если К выполнима, то существует выдерживающий проверку сертификат, и решением задачи является ответ «да». Обратно, если задача имеет ответ «да», то К выполнима. □ После 1971 года на основе результата Кука с помощью полиноми¬ альной сводимости была установлена АТ5-полнота тысяч задач, и сего¬ дня можно сказать, что подавляющее число практически важных и ин¬ тересных задач дискретного анализа и комбинаторной оптимизации яв¬ ляются NP -полными. Практическое значение NP -полноты состоит в том, что можно не тратить времени на поиски эффективного алгоритма для задачи, NP -полнота которой доказана, если, конечно, Вы не обла¬ даете экстраординарными амбициями. Но в этом случае перспективнее была бы попытка доказать, что Р * NP. Не исключено, однако, что в будущем может что-то измениться и в самом нашем понимании про- блемы P-NP. Среди нерешённых математических задач эта проблема занимает сегодня одно из центральных мест. В 2000 году за её решение была предложена награда в один миллион долларов, но это не принесло ощутимых результатов. 4.9. Теорема Кука
Глава 4. Алгоритмы 162 Задачи для самостоятельного решения 1. Как возвести число а в степень с натуральным показателем п (вы¬ числить ап ), сделав не более 2[log2 п] умножений? (результаты про¬ межуточных вычислений можно запоминать) 2. Указать эффективный алгоритм нахождения наименьшего общего кратного двух натуральных чисел. 3. В кольце Z/64Z обратить элемент 17. 4. Указать критерий разрешимости уравнения ах + Ьу = с в целых чис¬ лах (а,Ь,с —целые). 5. Вершины графа являются точками плоскости, а веса рёбер — рас¬ стояния между ними. Могут ли пересекаться соответствующие неко¬ торому подмножеству рёбер прямолинейные отрезки, если: а) подмножество рёбер образует минимальное остовное дерево; б) подмножество рёбер образует кратчайший гамильтонов цикл. 6. Как решить задачу нахождения гамильтонова цикла максимальной дли¬ ны, если в распоряжении имеется программа для решения задачи ком¬ мивояжёра? 7. Показать, что в алгоритмах Краскала, Прима и Дейкстры, используя различные варианты выбора в случаях неоднозначности, можно по¬ лучить все оптимальные решения. 8. Частичная (не всюду определённая) булева функция / задана множе¬ ством {«|,..., ак} своих нулевых наборов и множеством {Д,..., Д} своих единичных наборов. Указать эффективный алгоритм получения в виде д. н. ф. или к. н. ф. монотонной (всюду определённой) булевой функции ф, наилучшим образом приближающей / , т. е. доставляю¬ щей минимум функционала Zt,№)-/(“')! • (Ю. А. Зуев, 1978). 9. Подмножество рёбер простого связного графа назовём неразделяю¬ щим, если его удаление оставляет граф связным. Показать, что множе¬ ство рёбер вместе с семейством его неразделяющих подмножеств в ка¬ честве независимых множеств образует матроид (матроид разрезов). 10. Задача «независимое множество» формулируется следующим образом: для заданного графа установить, существует ли в нём независимое множество мощности, не меньшей к. Доказать, что «независимое множество» является УР-полной задачей. 11. Показать, что распознавание существенности переменной в булевой функции, заданной с помощью д. н. ф., является УР-полной задачей.
12. Рассмотрим на графе три алгоритмические задачи распознавания: 163 1) Является ли граф гамильтоновым? 2) Существует ли гамильтонова цепь между заданной парой вершин? 3) Существует ли в графе гамильтонова цепь? Доказать, что три задачи полиномиально эквивалентны, т. е. каждая из них полиномиально сводится к любой другой. Литература 1. АхоА., ХопкрофтДж., УльманДж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979. 2. Гаврилов Г. П., Сапоженко А. А. Задачи и упражнения по курсу дискретной математики. М.: Наука, 2004. 3. ГэриМ., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982. 4. Карп Р. М. Сводимость комбинаторных проблем // Кибернетический сборник (новая серия). Вып. 12. С. 16-38. М.: Мир, 1975. 5. КнутД. Э. Искусство программирования. Том I, II, III. М.: Вильямс, 2000. 6. Кормен I, ЛейзерсонЧ., Ривест Р. Алгоритмы. Построение и анализ. М.: МЦНМО, 1990. 7. КузюринН. Н., Фомин С. А, Эффективные алгоритмы и сложность вычисле¬ ний. М.: МФТИ, 2007. 8. Кук С. А. Сложность процедур вывода теорем // Кибернетический сборник (новая серия). Вып. 12. С. 5-15. М.: Мир, 1975. 9. ЛипскийВ. Комбинаторика для программистов. М.: Мир, 1988. 10. ПападимитриуХ., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, 1985. 11. Прим Р. К. Кратчайшие связывающие сети и некоторые обобщения // Кибер¬ нетический сборник. Вып. 2. С. 95-107. М.: ИЛ, 1961. 12. Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторная оптимизация. Теория и практика. М.: Мир, 1980. 13. Форд Л. Р, Фалкерсон Д. Р. Потоки в сетях. М.: Мир, 1966. 14. Ху Т. Целочисленное программирование и потоки в сетях. М.: Мир, 1974. Комментарии к литературе Монография [1] уже в течение тридцати с лишним лет пользуется во всём мире заслуженной репутацией авторитетнейшего руководства по тео¬ рии алгоритмов и сложности вычислений. Более элементарной, но также хорошо написанной книгой является [12]. Читатель должен быть, однако, предупреждён, что в этих двух книгах, как и во всей ранней литературе по теории сложности, класс NP определяется с помощью недетерминирован¬ ной машины Тьюринга, что, впрочем, не должно создать читателю значи¬ тельных неудобств. В более современной монографии [10] теория удачно сочетается с практическими рекомендациями по решению дискретных экс¬ тремальных задач. В ориентированной на программистов книге [9] приве¬ дены алгоритмы на графах с текстами соответствующих программ на Пас- Литература
Глава 4. Алгоритмы 164 кале. С оригинальными работами С. Кука и Р. Карпа, заложившими основы теории NP -полноты, можно ознакомиться в [8] и [4]. Блестяще написанная основателями теории потоков в сетях моногра¬ фия [13] продолжает оставаться классическим руководством в этой облас¬ ти. Статья [11] — оригинальное исследование Прима по минимальным ос- товным деревьям. Хотя вышедший несколько десятилетий назад фунда¬ ментальный труд [5] и не содержит результатов, связанных с NP -полно¬ той, написанный с большим вкусом и основательностью, он и сегодня представляет собой уникальное явление в мировой математической литера¬ туре, являясь кладезем премудрости по комбинаторному анализу и теории алгоритмов. Глубже познакомиться с машиной Тьюринга можно по [2]. Мо¬ нография [3] — известное справочное руководство по NP -полным зада¬ чам. Ознакомиться с курсом теории алгоритмов, созданным для такого элитного высшего учебного заведения США как Массачусетский техноло¬ гический институт, можно по [6]. Ряд последних результатов по теории сложности и, в частности, найденный индийскими учёными эффективный алгоритм распознавания простоты числа представлены в [7].
Глава 5 Коды, блок-схемы, шифры 5.1. Задачи кодирования Человечество издревле разрабатывало специальные сигналы и симво¬ лы для передачи сообщений на расстояния, превышающие возможности человеческого голоса. Индейцы Северной Аме¬ рики пользовались для этого поднимавшимся * пРедтечи современных от костра дымом, которым искусно управляли, кодов размахивая одеялом. В условиях североамери¬ канских прерий такие дымовые сигналы были видны на значительном расстоянии. Аборигены же центральной Африки в условиях непроходи¬ мых, не пропускающих даже солнечных лучей тропических лесов переда¬ вали свои сообщения барабанным боем. Корабли в море для подачи сигналов также могут использовать визу¬ альный канал связи, вывешивая на реях определённые флаги. Кроме того, находясь в условиях прямой видимости, они могут сообщаться друг с дру¬ гом с помощью сигнальщиков, передающих сообщения побуквенно от¬ машками флажков с использованием специальной семафорной азбуки. Разработка специальных азбук или, как теперь говорят, кодов для пе¬ редачи сообщений стала весьма актуальной задачей после появления элек¬ трического телеграфа, а затем и радио. При этом теория кодирования стала оформляться как самостоятельная научная дисциплина, важная в при¬ кладном отношении и содержательная с точки зрения используемых мате¬ матических методов. Задача быстрой и надёжной передачи информации не обязательно связана с её передачей на значительные расстояния. При работе компью¬ тера, например, происходит постоянный обмен информацией между его различными устройствами, и для эффективной работы компьютера необ¬ ходимо, чтобы этот обмен был быстрым и надёжным. Под кодированием понимается запись информации с помощью специ¬ альных символов в некоторой стандартной форме, в которой её можно хранить, передавать по линиям связи и обрабатывать в компьютере. Под декодированием понимается обратная задача восстановления исходной информации по её записи в кодированной форме. В современных информационно-компьютерных технологиях задачам кодирования принадлежит исключительно важная роль. Но сама задача кодирования возникла значительно раньше, чем появился компьютер. Уже само представление натуральных чисел в десятичной позиционной системе
Глава 5. Коды, блок-схемы, шифры 166 счисления может считаться задачей кодирования, успешно решённой ин¬ дийскими математиками в первых веках нашей эры. Другая кодировка — римские цифры — значительно менее удобна для выполнения арифмети¬ ческих операций. Задачи кодирования чрезвычайно разнооб- Задачи разны по своим постановкам. Связанная с ними кодирования Ф проблематика включает следующие основные аспекты: 1) представление данных произвольной природы, в частности звуковых и зрительных образов, в стандартном виде, пригодном для хранения и обработки в компьютере; 2) сжатие информации в базах данных с помощью специальной переко¬ дировки; 3) помехоустойчивое кодирование, достигаемое введением избыточно¬ сти, позволяющей восстанавливать информацию при небольшом её искажении; 4) криптографическое кодирование или шифрование, целью которого является защита информации от несанкционированного доступа. В задачах пункта 1) центр тяжести лежит в области инженерно-техни¬ ческих решений, связанных с дискретизацией непрерывных физических величин для их представления в символьном виде. Здесь будут рассматри¬ ваться лишь математические задачи, возникающие в 2) - 4), где исходная информация уже предполагается заданной в символьном виде. Будем считать, что кодируемая информация является последователь¬ ностью символов а,- из некоторого заданного множества A = {aiy..., а„}, „ называемого алфавитом. Подобный алфавит Двоичное _ алфавитное может состоять, например, из русских букв, кодирование ф десятичных цифр, других символов. Все сим¬ волы ai будем называть в дальнейшем буква¬ ми. Каждая буква будет кодироваться некоторым набором из нулей и еди¬ ниц, который будем называть кодовым словом. Такое побуквенное кодиро¬ вание сообщения двоичными кодовыми словами называется двоичным алфавитным кодированием. Оно является наиболее важным и им в даль¬ нейшем будет ограничено наше внимание. При двоичном алфавитном кодировании информационная буквенная последовательность становится двоичной кодовой последовательностью, и задача декодирования заключается в восстановлении по ней исходной буквенной последовательности. Для однозначного декодирования необхо¬ димо, чтобы различные буквенные последовательности не могли при ко¬ дировании перейти в одну и ту же двоичную последовательность. А такое может случиться даже в том случае, если различные буквы кодируются различными кодовыми словами. Пусть, например, десятичные цифры кодируются их представлениями в двоичной системе счисления: 0—>0, 1—>1, 2 —> 10, 3—>11, 4—>100,
167 5 ->101, 6->110, 7 ->111, 8->1000, 9-> 1001. Тогда последователь¬ ность десятичных цифр 23 будет закодирована как 1011, но также будут закодированы и последовательности десятичных цифр 103 и 51. Это де¬ лает невозможным по полученной кодовой последовательности 1011 од¬ нозначно восстановить исходный информационную последовательность, состоящую из десятичных цифр. ¥ Блоковое кодирование Простейший способ добиться однозначно¬ сти декодирования без использования специаль¬ ных разделителей состоит в том, чтобы кодиро¬ вать все буквы алфавита кодовыми словами одинаковой длины, т. е. выбрать некоторое фиксированное к ив качестве кодирующего отображения (1) использовать отображение А—>{0,1}*. Такое кодирование называется равномерным или блоковым. При этом, чтобы все буквы п -символьного алфавита А получили различные коды, число к должно удовлетворять неравенству к > ] log2 п [. В примере с кодированием десятичных цифр блоковый код с к = 4 можно получить, дополнив двоичные представления цифр спереди нулями до четырёх цифр: 0 -> 0000, 1 —> 0001, 2 —> 0010, 3->0011, 4 —>0100, 5 —>0101, 6->0110, 7->0111 7->0111, 8-> -> 1000 , 9 —> 1001. Теперь при декодировании достаточно последователь¬ но отсчитывать по четыре двоичных символа и выписывать соответст¬ вующую каждой такой четвёрке десятичную цифру. Очевидным недостатком равномерного кодирования является его не¬ экономичность в смысле длины получающейся кодовой записи. Для более экономного кодирования часто встречающиеся буквы следует кодировать более короткими ко¬ довыми словами, а редко встречающиеся — бо¬ лее длинными. Если использовать подобное неравномерное кодирование, то простейший способ добиться однозначного декодирования — это сделать так, чтобы никакое кодовое слово не было началом другого кодового слова. При соблюдении этого принципа, имея дело с последовательностью кодо¬ вых слов, всегда есть возможность установить, где кончается одно кодовое слово и начинается другое. Такое кодирование называется префиксным. Отметим, что сам принцип алфавитного кодирования не является чрезмерно стеснительным и может быть использован весьма гибко. При необходимости можно кодировать не отдельные буквы исходного текста, а целые куски текста, которые при этом становятся буквами алфавита. ■ Префиксное кодирование ¥ Азбука Морзе Исторически первой и, по-видимому, са¬ мой известной системой двоичного алфавитно¬ го кодирования была азбука Морзе (1838 г.), ко¬ довые слова которой состояли из точек и тире. Американский художник Сэмюэл Морзе (1791-1872) бросил живопись, загоревшись идеей созда- 5.1. Задачи кодирования
Глава 5. Коды, блок-схемы, шифры Современное кодирование, работы Шеннона Ф 168 ния электрического телеграфного аппарата. Разработанная им система ко¬ дирования английского алфавита не была равномерной. Часто встречаю¬ щиеся буквы в ней имели более короткие коды, а редко встречающиеся — более длинные. В частности, наиболее употребительная в английском языке буква «е» кодировалась одной точкой, а редко встречающаяся «q» как « ». Однако в азбуке Морзе кодирование не было и пре¬ фиксным. Разделение кодовых слов в ней достигалось небольшой времен¬ ной паузой между кодовыми словами. Поэтому работа телеграфиста, по¬ сылавшего сигналы телеграфным ключом, была здесь искусством. Более удобный для технической реализации на телетайпе блоковый принцип построения кодовых слов был впервые реализован в телеграф¬ ном коде Боде (1877 г.). Длина каждого его ко¬ дового слова равна 5. При этом число кодовых слов 25 = 32 оказывается достаточным для ко¬ дирования алфавитов европейских языков. За¬ метим здесь, что широко используемый в современных компьютерах для представления символьной информации двоичный блоковый код ASCII (American Standard Code for Information Interchange) является 8-битовым. В середине XX века методы создания подобных кодов для наиболее эф¬ фективного использования каналов связи стали предметом специального исследования замечательного американского учёного, математика и инже¬ нера Клода Шеннона (1916-2001). Опубликованная им в 1948 году работа «Математическая теория связи» (см. [20]) заложила фундамент математи¬ ческой теории передачи информации и стимулировала дальнейшие иссле¬ дования в этой области. Современные успехи в создании систем связи, хранения и передачи информации были бы невозможны без теоретической базы, заложенной этими исследованиями. Свои основополагающие результаты Шен¬ нон получил в значительной мере эвристически¬ ми приёмами с помощью введённой им меры количества информации. Безошибочная интуиция позволила ему получить удивительные результаты, но их строгое доказательство потребовало ещё значительных усилий многих математиков. Хотя современные исследования в области кодирования в большей степени используют конструктивные комбинаторно-алгебраические мето¬ ды, чем первоначальный теоретико-вероятностный подход Шеннона, по¬ лученные им результаты уже более полувека являются путеводными мая¬ ками в этих исследованиях. Чтобы понять аргументацию Шеннона при определении количества информации, рассмотрим следующий пример. Пусть в урне имеются в значительных и равных количествах шары четырёх цветов: красного, си¬ него, жёлтого и зелёного, а интересующая нас информация заключается в цвете вытянутого из урны шара. Закодировав цвета шаров двоичными на¬ борами длины 2: красный — (00), синий — (01), жёлтый — (10) и зелё- Энтропия и информация
ный — (11), получаем, что при каждом вытягивании шара информация о 169 цвете задаётся двумя двоичными цифрами. Поэтому она полагается равной двум битам (сокращение от английского «binary digit» — двоичная цифра). Определённое таким образом количество информации оказывается рав¬ ным двоичному логарифму числа возможностей: log2 4 = 2. С другой стороны, так как вероятность появления каждого цвета равна 1/4, то же самое количество информации получается, если опреде¬ лить его через вероятность как - log2 р, = 2, где />, = 1/4 — вероятность появления i -го цвета. Это определение и кладётся в основу количествен¬ ного определения понятия информации. Количество информации в битах, получаемой при наступлении некоторого события, определяется через логарифм его априорной информации. При таком определении, чем более редким является некоторое событие, тем информативнее оказывается факт его наступления. Это согласуется и с нашими интуитивными пред¬ ставлениями. При равновероятных исходах в опыте с шарами разных цветов сред¬ нее количество информации, получаемой при вытягивании шара, также оказывается равным pi log2 pl = 2 . Смысл такого усреднения про¬ ясняется при рассмотрении случая различных вероятностей. Пусть количества шаров разного цвета в урне относятся как 4:2:1:1. Тогда р\ = 1/2, р2 = 1/4 , /?з = р4 = 1/8 и, выражая информацию через соответствующие вероятности, получаем, что количество информации при вытягивании шаров различного цвета равно соответственно 1, 2, 3, 3, а средняя информация оказывается равной ^ pj log2 = 7/4 . Имеют ли смысл произведённые вычисления? Оказывается, что да. Закодировав красный цвет набором (0), синий — набором (10), жёлтый — (ПО) и зелёный — (П1), получаем префиксный код, в котором длина каждого кодового слова оказывается равной информативности кодируемого им цвета. Средняя же длина двоичной записи результатов испытаний при данной системе кодирования, отнесённая к числу опытов, также оказы¬ вается равной 7/4 . Новая неравномерная кодировка, основанная на оп¬ ределении понятия количества информации, не просто позволила сокра¬ тить среднее число двоичных символов, приходящихся на один опыт, но дала минимальное значение этой величины для всех возможных коди¬ ровок! Энтропию физической системы как термодинамическую величину в статистической механике впервые определил в 1872 году австрийский физик Людвиг Больцман (1844-1906). Если физическая система с вероятностью pi может находиться в одном из п состояний (i = 1,2,..., п, р\ +... + р„ = 1), то в качестве меры неопределённое™ её состояния рассматривается величина 5.1. Задачи кодирования
Глава 5. Коды, блок-схемы, шифры 170 Н{р\ ,...,рп) = Pi log Pi > называемая энтропией системы. Шеннон использовал понятие энтропии в информатике, и его подход оказался весьма плодотворным. Энтропия Н(р\,...,рп) принимает минимальное значение, равное ну¬ лю, когда одна из вероятностей равна единице, а все остальные нулевые. Любое изменение вероятностей в сто¬ рону их выравнивания увеличива¬ ет Н. Своё максимальное значение, равное log п , энтропия достигает при Р\=Р2=... = р„ = Уп. В теории ин¬ формации логарифмы, как правило, берутся по основанию 2. График функции H2(p) = -p\og2p-{\-p)\og1{\-p) приведён на рис. 1. Если на выходе некоторого ис¬ точника сообщений последовательно и независимо возникают символы из п -символьного алфавита с вероятно¬ стями р],..., рп , то энтропия источника Н(р^,..., рп), согласно Шеннону, выражает собой скорость создания информации источником, т. е. среднее количество информации, заключающееся в одном символе источника. Один из основополагающих результатов Шеннона в теории информации состоит в том, что среднее число битов, затрачиваемых на один символ ис¬ точника, при наилучшей кодировке оказывается равным энтропии источни¬ ка. Точнее, к этой величине можно сколь угодно близко подойти, если коди¬ ровать не отдельные символы источника сообщений, а достаточно длинные последовательности таких символов. Полученные Шенноном с помощью понятия энтропии теоретические результаты оказали сильнейшее влияние на развитие теории и практики кодирования. Они будут ещё неоднократно упоминаться в этой главе. Вопросы для самопроверки 1. Какой код называют двоичным блоковым кодом? а) код, состоящий из двоичных наборов; б) код, состоящий из двоичных наборов фиксированной длины. 2. Является ли азбука Морзе блоковым кодом? а) да; б) нет. 3. Какова длина телеграфного кода? а) 4; б) 5; в) 6. Ответы: 1 — б, 2 — б, 3 — б.
5.2. Экономное кодирование. Алгоритм Хаффмана 171 Самый простой и наглядный способ получения префиксного кода со¬ стоит в том, чтобы строить его с помощью бинарного дерева (см. раз¬ дел 3.2). Исходящее из каждой вершины левое ребро помечается нулём, а правое — единицей. Каждому листу такого дерева соответствуют кодовое слово, которые получаются выписыванием пометок рёбер, составляющих путь от корня дерева к листу. На рис. 1 показано такое дерево, которому со¬ ответствует код из 5 кодовых слов: (00), (01), (10), (1100), (1101), (10). Существует очевидное взаимно однозначное соответствие между пре¬ фиксными двоичными кодами и подобными бинарными деревьями, кото¬ рые в дальнейшем будем называть кодовыми деревьями. Условие префикса эквивалентно тому, что никакому внутреннему узлу дерева не сопоставля¬ ется кодовое слово. Задача оптимального кодирования ставится следующим образом. Пусть буквы алфавита А = {а\,..., ап} имеют относительные частоты встречае¬ мости f\,, fn (f + ...+/„= 1), и а,- кодируется кодовым словом длины /,•. Тогда среднее число битов, затраченных на кодирование одной буквы, оказывается равным величине / = Х”_, ./}/,• * К0Т0Рая называется ценой ко¬ дирования. Задача оптимального кодирования состоит в построении кода с минимальной ценой кодирования. Минимизация цены кодирования важна как при записи информации в базах данных, так как экономит память ком¬ пьютера, так и при передаче сообщений по каналу связи, так как экономит время передачи и повышает эффективность использования канала. Сформулируем, прежде всего, простое необходимое условие опти¬ мальности. (Утверждение 1. Кодовое дерево, порождающее опти¬ мальный код, должно быть полным. 5.2. Экономное кодирование. Алгоритм Хаффмана
Глава 5. Коды, блок-схемы, шифры 172 Доказательство. Если бы какой-то внутренний узел дерева, за¬ дающего оптимальное кодирование, имел лишь одного ребёнка (рис. 2а), то стягиванием соответствующего ему непарного ребра можно было бы уменьшить цену кодирования (рис. 26). □ Рис. 2 Теорема 1 (неравенство Крафта—Макмиллана). Для существования префиксного кода мощности п с длинами слов необходимо и достаточно, чтобы эти дли¬ ны удовлетворяли неравенству Я 1 <1. (1) Доказательство. Для доказательства необходимости заметим, прежде всего, что если кодовое дерево является полным, то длины его ко¬ довых слов удовлетворяют соотношению \/lli . Его справедливость легко показать индукцией по числу кодовых слов — листьев дерева. При отбрасывании двух листьев, имеющих общего родителя, два кодовых сло¬ ва заменяются одним, имеющим на единицу меньшую длину. При этом левая часть доказываемого соотношения остаётся без изменения. По ин¬ дуктивному предположению она равна единице. Поэтому соотношение оказывается справедливым и для исходного кода. Если же кодовое дерево не является полным, то его можно сделать поным стягиванием соответствующих рёбер, как было показано на рис. 2. При этом длины некоторых кодовых слов уменьшаются. Для полученного полного дерева в соотношении (1) имеет место равенство. Поэтому для исходного дерева имеет место строгое неравенство. В любом случае соот¬ ношение (1) оказывается выполненным. Достаточность условия теоремы докажем конструктивно, т. е. укажем алгоритм, строящий префиксный код с заданными длинами слов, удовле¬ творяющими соотношению (1). Строим полное кодовое дерево, начиная с узла нулевого уровня — корня и последовательно переходя на i -м шаге от
узлов (/ — 1) -го уровня к узлам г-го уровня. При этом, если kj кодовых 173 слов должны иметь длину i, то произвольные к,■ листьев i -го уровня ос¬ тавляем листьями и назначаем кодовыми словами, а остальные листья i -го уровня делаем родителями листьев следующего (/ +1) -го уровня. На каж¬ дом шаге для множества всех листьев дерева соотношение (1) выполнено как равенство вследствие полноты дерева. Поэтому число листьев на /' -м уровне не меньше , и такой выбор всегда возможен. Продолжаем так до исчерпания списка слов. При этом если в соотношении (1) имеет место равенство, то все листья последнего уровня становятся кодовыми словами, а если в (1) имеет место строгое неравенство, то кодовыми словами стано¬ вится лишь часть этих листьев. □ На рис. 3 показано построение кодового дерева для кода мощности 8 с длинами слов {2,3,3,3,3,4,4,4}. В данном случае = 15/16 < 1, поэтому последнем четвёртом уровне один из листьев не используется в качестве кодового слова. Полнота кодового дерева является необходимым, но не достаточным условием оптимальности кода. Пусть кодируемый алфавит состоит из 4 букв с частотами ^. Оба представленных на рис. 4 дерева кодиру¬ ют четырёхбуквенный алфавит и являются полными, но имеют различные цены кодирования. Цена равномерного кодирования на рис. 4а равна длине кодовых слов, т. е. 2. В неравномерном кодировании на рис. 46 цена кодирования мень¬ ше: 2'-^ + 3~ + 3~ + 1-^ = 1,7 . Код на рис. 46, в котором чаще встре¬ чающиеся буквы закодированы более короткими кодовыми словами, а реже 5.2. Экономное кодирование. Алгоритм Хаффмана
Глава 5. Коды, блок-схемы, шифры 174 О 1 О 1 а) |010| 2/20 I loill 3/20 I 6) Рис. 4 встречающиеся — более длинными, в действительности является опти¬ мальным. Для столь малого алфавита в этом легко убедиться, перебрав все возможности. Однако как получать оптимальные кодировки для алфави¬ тов, содержащих тысячи букв? Существует ли здесь эффективный алго¬ ритм или нужно ограничиваться приближённым решением задачи? Замечательно, что эффективный алгоритм, точно решающий задачу оптимального кодирования, существует. Он был открыт в 1952 году Дэви¬ дом Хаффманом (1925-1999), в ту пору аспирантом Массачусетского тех¬ нологического института. Найденный им алгоритм стал основным мето¬ дом сжатия информации, вытеснив более ранние подходы, дававшие при¬ ближённые решения. Алгоритм Хаффмана является процедурой рекурсивного типа. По¬ добно вычислению факториала по формуле и! = «• (« — 1)!, он сводит зада¬ чу оптимального кодирования некоторого алфавита к оптимальному коди¬ рованию алфавита, имеющему на один символ меньше. Алгоритм Хаффмана. Выбираются две буквы кодируемого п -буквенного алфавита, имеющие наименьшие частоты, и объединяются в одну букву, частота которой полагается равной сумме частот сливаемых букв. К полученному (п -1) -буквенному алфавиту снова применяется процедура слияния и так до тех пор, пока в алфавите не останется единственная буква, полученная слиянием всех букв алфавита. Эта буква принимается за корень кодового дерева. Листья кодового дерева — это буквы исходно¬ го алфавита, а промежуточные узлы — буквы, полученные в результате их слияния. При этом буква, полученная слиянием двух букв, является их родителем в кодовом дереве. Полученное кодовое дерево задаёт опти¬ мальное кодирование исходного алфавита. Рассмотрим алгоритм Хаффмана на примере. Пусть требуется найти оптимальное кодирование для шестибуквенного алфавита «10/ю), а20/ю), а30/ю), <24(2/10), а5(2/10), а6(з/ю), где после каждой буквы в скобках указана её частота.
175 На первом шаге выбираем произвольную пару из имеющих минималь¬ ную частоту первых трёх букв, например П| и Д2 ■ Полученный пятибуквен¬ ный алфавит принимает вид a3(i/io), 04(2/10), а5(2/ю), а6(з/ш). Затем для слияния могут быть выбраны, например, буквы а3 и • Алфа¬ вит примет вид 04(2/10), 05(2/10), 0^205(3/10), о6(з/ю). Выполняя далее слия¬ ние букв о4 и о5 , получаем трёхбуквенный алфавит о^а^з/ю), а6(з/ю), 0405(4/10). В нём пара для слияния также определена однозначно — это а]а2а3 и а6, что даёт 0405(4/10), о^а^^б/ю). Слияние двух оставших¬ ся букв даёт корень o^o^o^Oo/io) кодового дерева. Оно представле¬ но на рис. 5. Теперь, пометив левые ребра нулём, а правые — еди¬ ницей, получаем для букв сле¬ дующие кодировки: о, ->(1000), о2 ->(1001), о3 -> (101), 04 —> (00), а5 (01), «6 (10 ■ При этом цена кодирования оказывается равной 1x3.1 4 • — + 4 • — + 10 10 3._!_ + 2.-1 + 10 10 +2--2- + 2--2- = 2 5 10 10 При равномерном кодировании она была бы равна 3. Доказательство. До¬ казательство оптимальности алгоритма Хаффмана проведём индукцией по числу букв кодируемого ал¬ фавита. Пусть алгоритм всегда строит оптимальный код для (п -1) -бук¬ венных алфавитов. Покажем, что построенный им код для п -буквенного алфавита также будет оптимален. Пусть задан алфавит А = {а{,..., ап} вместе с частотами {/j,/2, ...,/„} входящих в него букв, где /j и /2 — две минимальные частоты. Задающее его оптимальную кодировку кодовое дерево является полным. Кроме того, из оптимальности кода следует, что среди его наиболее уда¬ лённых от корня листьев найдутся два листа с частотами Д и /2, имею¬ щие общего родителя, или же этого можно добиться перестановкой букв на одинаково удалённых от корня листьях, что не меняет цены кодирова¬ ния. Отбросим эти два листа. Теперь их прежний родитель будет листом с частотой /| + /2 • Соответствующее ему кодовое слово имеет на единицу меньшую длину, чем кодовые слова отброшенных листьев. Поэтому полу- 5.2. Экономное кодирование. Алгоритм Хаффмана
Глава 5. Коды, блок-схемы, шифры 176 ченный {/| +/2, /з,..., /„}-код имеет цену, на fx + /2 меньшую цены оптимального {/i,/2, •••, /„} -кода. Тем самым доказано, что цена оптимального {/i,/2,-кодиро¬ вания не менее чем на fx + /2 превышает цену оптимального {/j + /2, /3,..., /„} -кодирования. Алгоритм Хаффмана, осуществляя рекурсивную процедуру, переходит от задачи построения {/j, /2,..., /„} -кода к задаче построения {/,+/2, /3,...,/и}-кода, для которой по индуктивному предположению находит оптимальное решение. При этом построенный алгоритмом {/|, /2 } -код имеет на /, + /2 большую цену. Поэтому этот {/],/2 /„} -код также оптимален. □ Цена оптимального кодирования / , получаемая в результате работы алгоритма Хаффмана, определяется частотами {/i,/2, •••,/„} • Следую¬ щее утверждение содержит достаточно точную оценку этой цены. Теорема 2. Цена оптимального кодирования / удовле¬ творяет следующему двойному неравенству -tfMifi * т <-£//iog2//+i. 1=1 1=1 Доказательство. Имеем -t.fi log2 fi-l =tfi(~li ->°82 fi)=tffi °g2 2_/'-log2 /,)= 1=1 1=1 (=1 2~1‘ 2~1‘ =E/< l°g2—=Zy;. In—log2 (=1 Л' ;=1 /( 1=1 где было использовано неравенство (1.7.26). Л --1 log2 е, Далее получаем / _/ N 2' -1 tfi ~г~1 Хо^е = Z(2 li-fi)l°z2е = Z2 /(_1 1=1 л у /=1 41=1 /■=1 я log2 е. Но согласно (1) имеем ^2_/| -1 < 0 . Поэтому log2 ft < l . 1=1 i=l Для доказательства верхней оценки теоремы по данному множеству частот символов _/) выберем длины соответствующих кодовых слов рав- П Я ными // = —[log2 У/] - Так как ^2,og2-/i = £./J = 1, то согласно теореме 1 /=1 j=l
177 существует префиксный код с такими длинами слов. Цена такого кодиро¬ вания есть I =£/</, =-£/< [iog2/,]*-£/, oog2 л -d= i=i 1=1 л 1=1 п п /=1 /=1 1=1 л Заметим, что величина log2 fj есть статистический аналог эн- i=i П тропии Н = pj log2 pi . Поэтому теорему 2 можно рассматривать как 1=1 дискретный аналог теоремы Шеннона об оптимальном кодировании. Алгоритм Хаффмана может быть эффективно использован для сжатия текстовых файлов в памяти компьютера. Но для достижения существенно¬ го эффекта сжатия архивирующие программы должны кодировать не от¬ дельные буквы и даже не наборы букв, а целые лингвистические единицы исходного текста, т. е. слова естественного языка, на котором написан текст. Эти слова становятся буквами, кодируемыми алгоритмом Хаффмана с использованием частот их встречаемости. Такое кодирование позволяет в несколько раз сокращать длину записей по сравнению с равномерным побуквенным кодированием. Вопросы для самопроверки 1. Указать оптимальное кодирование для алфавита {a,b,с, d) с частота¬ ми символов /(я) = 1/2 , /(/>) = 1/4, /(с) = 1/8, f(d) = 1/8 . а) а ->(00), 6-» (01), с ->(10), </->(11); б) а->(0),/>->(10), с->(110), </->(111); в) а -> (000), />->(10), с ->(110), </->(111). 2. Чему равна цена оптимального кодирования в предыдущем примере? а) 1,5; 6)1,75; в) 2. Ответы: 1 — б, 2 — б. 5.3. Принципы помехоустойчивого кодирования Помехоустойчивое кодирование является средством надёжной пере¬ дачи информации по ненадёжному каналу связи. Будем считать, что пере¬ даваемая по каналу информация уже закодирована некоторым стандарт- 5.5. Принципы помехоустойчивого кодирования
Глава S. Коды, блок-схемы, шифры 178 ным образом с помощью рассмотренных в предыдущих разделах методов в виде двоичной последовательности и в каждом такте передачи по каналу передаётся один бит этой последовательности. При этом если посылает¬ ся 0, то принимается, как правило, также 0, а если 1 — то 1. Однако ино¬ гда вследствие случайных помех в канале посланный 0 может быть принят как 1, а 1 — как 0. Будем предполагать, что существует не зависящая от значения бита вероятность р его ошибочной передачи и вероятность 1 - р его правильной передачи в канале, причём ошибки при передаче после¬ довательности битов независимы. Подобная модель канала называется двоич¬ ным симметричным каналом (рис. 1). Она является основной моделью в теорети¬ ческих исследованиях, связанных с пе¬ редачей информации. Если к передаваемой двоичной по¬ следовательности не применить допол¬ нительного помехоустойчивого кодиро¬ вания, то ошибка в одном её бите может привести к существенному искажению передаваемой информации. Чтобы наглядно продемонстрировать возмож¬ ные последствия отсутствия помехоустойчивого кодирования, допустим, что при передаче используется 5-битовый телеграфный код Боде, а веро¬ ятность ошибки при передаче бита в канале р = 0,2 . В коде Боде каждый 5-битовый двоичный набор является кодом для некоторой буквы, поэтому ошибка в одном бите приводит к появлению другой буквы. В нашем, каза¬ лось бы ещё не катастрофически плохом канале, вероятность безошибоч¬ ной передачи буквы оказывается равной всего (1 — 0,2)5 «0,33 , тогда как вероятность того, что принятая буква будет отличаться от посланной, — 0,67 . Вряд ли возможно понять смысл сообщения, в котором неправиль¬ ных букв вдвое больше, чем правильных! Конечно, в реальной телеграф¬ ной связи вероятность ошибки в канале значительно меньше 0,2, что и позволяет успешно функционировать телеграфу, но в дальней космиче¬ ской связи, например, вероятность ошибки р = 0,2 может оказаться впол¬ не реальной. Искажения информации в канале можно уменьшить, если перед посыл¬ кой по каналу двоичной информационной последовательности произвести её перекодировку, введя определённую избыточность. Разобьём эту последова¬ тельности на блоки одинаковой длины по к битов каждый, которые будем называть информационными блоками и применять к ним помехоустойчивое кодирование. Если каждый информационный блок й = (щ,... ,ик) длины к заменить кодовъш словом v=(v],... ,v„) длины п : (щ,..., uk) —> (vj,... ,v„), где п > к , то в качестве кодовых слов будут использованы не все 2” дво¬ ичных наборов длины п , а только 2к из них. Если при этом кодовые слова Рис.1
удаётся разнести друг от друга на достаточно большое расстояние Хэм- 179 минга, то ошибка в небольшом числе битов при передаче кодового слова по каналу связи не может привести к возникновению другого кодового слова. Это и позволяет контролировать ошибки в канале. Схема такой пе¬ редачи показана на рис. 2. Шум Рис. 2 Кодер заменяет информационный блок й = (щ,, щ) кодовым сло¬ вом v = (vj,..., v„), которое затем передаётся по каналу связи. Декодер по принятому набору v' = (v{,..., v'n) сначала восстанавливает (возможно с ошибкой) переданное кодовое слово v = (vj,..., v„), а затем находит со¬ ответствующий ему информационный блок. Множество кодовых слов v = (V|,..., v„), используемых для кодирования информационных блоков, называется блоковым кодом длины п. О блоковом коде, имеющем длину п и мощность М , будем говорить как о (п,М) -коде. Простейший способ добиться того, чтобы одна ошибка в кодовом сло¬ ве не могло превратить его в другое кодовое слово, заключается в припи¬ сывании к информационному блоку одного дополнительного разряда, со¬ держимое которого выбирается таким образом, чтобы кодовое слово длины п = к + \ всегда содержало чётное число единиц. При таком способе коди¬ рования одна ошибка в кодовом слове приводит к тому, что число единиц в нём становится нечётным, что и сигнализирует об ошибке. В этом случае кодовое слово может быть, например, передано по каналу повторно. По¬ добное кодирование называется кодом с проверкой на чётность. Пусть, например, к = 2 , т. е. имеются четыре информационных блока (00), (01), (10), (11). Тогда четыре кодовых слова с проверкой на чётность примут вид (000), (011), (101), (110). В случае использования кода с проверкой на чётность расстояние Хэм¬ минга между различными кодовыми словами становится не меньше 2, вследствие чего изменение одной координаты кодового слова не может пере¬ вести его в другое кодовое слово. Подобный принцип может быть успешно развит и далее. При этом возникает возможность не только обнаруживать, но и корректировать ошибки в канале, не производя повторной передачи. В рассмотренном примере с четырьмя кодовыми словами присоеди¬ ним к двум информационным три дополнительных бита, увеличив длину кода до пяти. Пусть значения дополнительных битов выбраны так, что ко¬ довыми словами являются (00000), (01011), (10110), (11101). Теперь рас- 5.3. Принципы помехоустойчивого кодирования
Глава 5. Коды, блок-схемы, шифры 180 стояние Хэмминга между различными кодовыми словами уже не мень¬ ше 3, и если в одном из кодовых слов произошла одна ошибка, то декодер имеет возможность по принятому набору восстановить переданное кодо¬ вое слово. Для этого ему нужно лишь найти то единственное кодовое сло¬ во, которое находится на расстоянии 1 от принятого набора. Три добав¬ ленных бита, не увеличивая мощности кода, позволяют исправлять одну ошибку в кодовом слове. Разумеется, информационные блоки можно отображать в кодовые слова и без сохранения значений информационных битов, но такое сохра¬ нение часто оказывается удобным, и коды, в которых оно имеет место, имеют специальное название. Кодирование, при котором первые к битов любого кодо¬ вого слова v = (V],..., v„) совпадают с битами соответст¬ вующего информационного блока й = (щ,..., ик), называ¬ ется систематическим. Первые к координат системати¬ ческого кода называются информационными, а последние п-к — проверочными. Чтобы от рассмотрения частных примеров перейти к изучению обще¬ го случая, введём ещё одно определение. Минимальное из расстояний Хэмминга между двумя раз¬ личными кодовыми словами называется кодовым рас¬ стоянием. О блоковом коде, имеющем длину п, мощность М и кодовое рас¬ стояние d , будем говорить как о (и, М, d) -коде. Пусть кодовые слова выбраны таким образом, что кодовое расстоя¬ ние не меньше d = 2/ +1. Геометри¬ чески это означает, что шары Хэм¬ минга с радиуса t с центрами в ко¬ довых словах не пересекаются, что наглядно демонстрируется на рис. 3. Если число ошибок при пере¬ даче кодового слова v(- не превы¬ шает t, то принятый декодером набор v' лежит внутри шара радиуса t с центром в кодовом слове v(-, которое и является ближайшим к v' кодовым словом. Поэтому у декодера появляется возможность восстанавливать ис¬ ходное кодовое слово, искажённое в канале, если число неправильных би¬ тов не превышает t. Стратегия декодера при этом такова: принятое слово декодируется в ближайшее кодовое слово. Поэтому код с кодовым рас¬ стоянием d - It +1 способен исправлять t ошибок, а код с кодовым Рис.3
181 расстоянием d = 2t способен исправлять t-\ ошибку и сигнализиро¬ вать о t ошибках. Если кодовые слова в процессе передачи возникают с равной вероят¬ ностью, то декодирование в ближайшее кодовое слово является оптималь¬ ным статистическим решением, минимизирующим среднюю вероятность ошибки. В самом деле, вероятность того, что при передаче кодового слова длины п ошибки произойдут в i фиксированных позициях, а остальные n-i битов будут переданы правильно, равна р‘ (1 -р)п~‘, и эта величина при р < 1/2 монотонно убывает с ростом i. Поэтому наиболее вероятным переданным словом является ближайшее кодовое слово, которое и выби¬ рается декодером. Когда несколько кодовых слов оказываются ближайши¬ ми к принятому слову, то декодер в праве взять любое из них либо отка¬ заться от декодирования. При разработке декодера помимо минимизации вероятности ошибки имеют значение также такие технические факторы как простота реализации, надёжность, быстрота функционирования и т. д. В общем случае, если име¬ ется М кодовых слов V],..., vM и декодер не может отказываться от реше¬ ния, то для задания декодера множество двоичных наборов {0,1}” должно м быть разбито на М подмножеств (U^0-1}”’ Yi^Vj=0)~ i=1 окрестностей каждого кодового слова. При этом если принят набор v'eVt, то он отображается декодером в соответствующее данной окрест¬ ности кодовое слово V,-. Данное разбиение задаёт, как говорят, таблицу де¬ кодирования. Вернёмся к рассмотренному примеру (5,4,3) -кода с кодовыми словами (00000), (01011), (10110), (11101). Так как расстояние между кодовыми словами не меньше 3, то код в состоянии исправлять одну ошибку. Однако если взять шары Хэмминга радиуса 1 с центрами в кодовых словах, то они не покроют всё множество {0,1}5, так как 4 • (С® + с]) = 24 < 25 = 32 . Таким образом, найдутся наборы, находящиеся на расстоя¬ нии более 1 от каждого из кодовых слов. Более того, здесь имеются наборы, находя¬ щиеся на одинаковом расстоянии 2 от двух кодовых слов, т. е. принцип ближайшего ко¬ дового слова оказывается недостаточным для однозначного декодирования. В этом случае таблица декодирования может быть задана, например, следующим образом (табл. 1). 00000 01011 10110 11101 10000 поп 00110 01101 01000 00011 НПО 10101 00100 они 10010 11001 00010 01001 10100 11111 00001 01010 10111 11100 10001 01110 пою 11000 00101 10011 00111 01111 Таблица 1 5.3. Принципы помехоустойчивого кодирования
Глава 5. Коды, блок-схемы, шифры 182 В первой строке этой таблицы стоят четыре кодовых слова, под каж¬ дым из которых выписана соответствующая ему окрестность. Само кодовое слово и пять наборов, отстоящих на расстоянии 1 от него, включены в окре¬ стность по принципу близости. Для наборов, стоящих в двух последних строках, в выборе окрестности имелся определённый произвол, так каждый из них находится на одинаковом расстоянии 2 от двух кодовых слов. Так на¬ бор (10001), занесённый в окрестность кодового слова (00000), мог бы быть с равным успехом быть занесён и в окрестность слова (11101). Декодирование в соответствии с этой таблицей исправляет все одиноч¬ ные ошибки и некоторые двойные. Так, если при передаче кодового слова (00000) в результате двух ошибок в канале был получен набор (10001), то декодер правильно восстановит переданное слово. Если же в результате двух ошибок возник набор (11000), то декодер совершит ошибку, посчи¬ тав, что передавалось кодовое слово (11101). Алгебраическая задача построения хорошего помехоустойчивого кода состоит в том, чтобы при заданной длине кода п и для заданного кодового расстояния d = 2f +1 построить код, содержащий максимально возможное число M(n,d) кодовых слов. Подобный код способен исправлять t оши¬ бок и, если его мощность достаточна, он может быть использован для ко¬ дирования используемого в сообщениях алфавита. Для решения этой за¬ дачи было предложено множество подходов. Важным понятием, сыграв¬ шим значительную роль в развитии всей теории, явилось понятие совершенного кода. Код длины п с кодовым расстоянием d = 2t + l называется совершенным, если семейство шаров Хэмминга радиуса t с центрами в кодовых словах является разбиением множества К = {0,1}”, т. е. шары не пересекаются и по¬ крывают множество К = {0,1}". Для сокращения дальнейших записей будем обозначать через %(п, г) мощность шара Хэмминга радиуса г: Z(n,r) = '£jC‘n . i=0 Совершенный код является идеальным решением задачи кодирования. Он представляет собой плотную упаковку шаров Хэмминга в пространст¬ ве V = {0,1}" . Естественной окрестностью каждого кодового слова являет¬ ся шар Хэмминга радиуса t. Подобный код способен исправлять любые t или меньшее число ошибок, но никакие t +1 или большее число ошибок. Совершенные коды обладают массой достоинств. Они имеют максималь-
ную мощность среди всех кодов с заданной длиной л и кодовым расстоя- 183 нием d = 2/ +1. Эта мощность равна М (л, 2/ +1) = —у—г • (1) хЫ) Кроме того, прост их декодер, так как принцип «идти в ближайшее кодовое слово» оказывается достаточным для однозначного декодирования при поступлении на вход декодера любого двоичного набора. Как непосредственно следует из формулы (1), для существования со¬ вершенного кода необходимо, чтобы %{n,t) делило 2" нацело, т. е. было степенью двойки. Если / = 1, п = 2' -1, то х(п>0 = 1 + п = 2‘, т. е. необхо¬ димое условие оказывается выполненным. Действительно, при данных значениях ли/ всегда существуют совершенный код. Таким кодом явля¬ ется код Хэмминга, рассматриваемый в следующем разделе. Данное необходимое условие, однако, не является достаточным. Если не считать тривиальных совершенных кодов, которые имеют длину л = 2/ +1 и состоят из двух слов — (00...0) и (11...1), то единственным совершен¬ ным двоичным кодом с отличными от кодов Хэмминга параметрами явля- I о ется исправляющий 3 ошибки (23, 2 ,7) -код Голея с кодовым расстояни¬ ем 7. Необходимое условие здесь также оказывается выполненным, так как 1 + с\з + с\з + с|з = 211. Совершенный код Голея будет рассмотрен в разделе 8. Других совершенных двоичных кодов, как было выяснено в ре¬ зультате многолетнего кропотливого труда многих учёных, нет. Поэтому в практических задачах помехоустойчивого кодирования в большинстве случаев приходится использовать коды, не являющиеся совершенными. Вопросы для самопроверки 1. Сколько ошибок способен исправить код с кодовым расстоянием 7? а) 2; 6)3; в) 4. 2. Сколько ошибок способен исправить код с кодовым расстоянием 8? а) 2; 6)3; в) 4. Ответы: 1 — б, 2 — б. 5.4. Линейные коды. Коды Хэмминга Важнейший подход к построению помехоустойчиивых кодов основан на том, что множество V = {0,1}" двоичных блоков длины л рассматривается как множество л -мерных векторов над полем GF(2), т. е. считается вектор¬ ным пространством. Всего в нашем пространстве имеется 2" векторов. 5.4. Линейные коды. Коды Хэмминга
Глава 5. Коды, блок-схемы, шифры 184 Сложение векторов осуществляется их покоординатным сложением, причем 0 + 0 = 0, 0 + 1 = 1, 1 + 1 = 0, т. е. сложение выполняется по модулю2. Если х=(10101), у=(00101), то х+у=(10000). Так в GF(2) для каждого из двух элементов имеет место равенство -а = а (противоположный элемент совпа¬ дает с исходным), то операция вычитания совпадает с операцией сложения. Векторы можно также умножать на числа, которых в GF(2) всего два — 0 и 1. При этом умножение на 1 оставляет вектор без изменения, а умно¬ жение на 0 делает его нуль-вектором. Скалярное произведение двух векторов есть сумма их покоординат¬ ных произведений, приведённая по модулю 2. Таким образом, скалярное произведение также равно 0 или 1. В нашем примере (х,у) = 1- 0 + 0- 0 + 1-1 + 0- 0 + 1Т = 0. Если скалярное произведение двух векторов равно 0, то говорят, что они ортогональны. Помимо конечности, важным отличием нашего про¬ странства от евклидового является то, что скалярный квадрат вектора, имеющего чётное число единиц, оказывается равным нулю, т. е. вектор оказывается ортогональным самому себе. Поэтому из ортогональности системы векторов не следует их линейной независимости, как это имеет место в евклидовом пространстве. Если в определённом таким образом векторном пространстве V = {0,1}” выбрано некоторое подпространство L, то множество векторов, ортого¬ нальных ко всем векторам подпространства, также является векторным подпространством, которое называется подпространством, ортогональным к подпространству L , и обозначается L1. Ввиду отмеченного различия в свойствах скалярного произведения пространство V может не быть прямой суммой L и L1, как это всегда имеет место в евклидовом случае. Однако соотношение, связывающее размерности подпространства L и ортогонального ему подпространства &, сохраняется: dim L + dimZ,1 = п . Важный класс кодов, называемых линейными, определяется тем, что в векторном пространстве V выбирается некоторое подпространство и его векторы объявляются кодовыми словами. Для построения кодового под¬ пространства размерности к < п достаточно выбрать к линейно незави¬ симых векторов gj,..., gk и принять их за базис. Тогда любой вектор g кодового подпространства может быть выражен как линейная комбинация базисных векторов: g = M1g1+... + I/^gjt, и,- €{0,1}. Так как каждый коэффициент и,- линейной комбинации равен 0 или 1, то всего существует 2к различных линейных комбинаций, т. е. код имеет
185 2к кодовых слов. О линейном коде имеющим длину п, размерность к и ко¬ довое расстояние d,будем говорить как о [n,k,d] -коде, используя для ли¬ нейного кода квадратные скобки и оставляя круглые для кода, не обязательно являющегося линейным. Линейный [п, k, d] -код является (п, 2к, d) -кодом. Составим из базисных векторов gj,..., [к х п) -матрицу G , стро¬ ками которой являются векторы gj,..., gk . Она называется порождающей матрицей линейного кода. Если размерность к кодового подпространства выбрать равной длине информационного блока, то представленный на рис. 3.2 процесс кодирования информационного блока и = (И],..., ик) ко¬ довым словом v = (v),... ,v„) для линейного кода может быть записан как матричное умножение вектора-строки и на матрицу G : v = uG . (1) Рассмотренные в разделе 3 коды с проверкой на чётность, имеющие ко¬ довое расстояние 2, являются линейными кодами, так как сумма двух век¬ торов с чётным числом единиц также имеет чётное число единиц. В кон¬ кретном случае рассмотренного в этом разделе кода из четырёх кодовых слов в качестве базиса могут быть выбраны любые два ненулевых кодовых слова. Так, если выбраны векторы (011) и (101), то порождающая матрица примет вид: "01Г ,Ю1, (2) Рассмотренный в разделе 3 код из четырёх кодовых слов с кодовым рас¬ стоянием 3 также является линейным, так как сумма двух любых кодовых слов также является кодовым словом. Любые два ненулевых вектора здесь также образуют базис, и если выбрать (01011) и (10110), то порождающая матрица примет вид: G = Г 01011^ 10110 (3) Базисные векторы gj gk удобно выбирать таким образом, чтобы у вектора g, i -я координата была единичной, а остальные первые к ко¬ ординат — нулевыми. При этом порождающая матрица G принимает вид G = [I*|A], (4) где 1^ — единичная матрица порядка к, а А — матрица размера (кх(п-к)). При таком выборе базисных векторов обеспечивается их линейная независимость, и задаваемый соотношением (1) код будет систематиче¬ ским. Если изначально матрица G не обладает этим свойством, то её лег- 5.4. Линейные коды. Коды Хэмминга
Глава 5. Коды, блок-схемы, шифры 186 ко привести к этому виду обычной для линейной алгебры процедурой, ко¬ торая в данном случае сводится к сложениям строк и их перестановкам. Число единиц в векторе х будем, как и в разделе 2.6, называть весом вектора и обозначать | х |. Отметим, что расстояние Хэмминга между дву¬ мя векторами равно, как легко видеть, весу их суммы J(x,y)=|x + y|. (5) Нулевой вектор (0,... ,0) всегда является кодовым словом линейного кода. Если взять некоторое кодовое слово и прибавить его ко всем кодовым словам, то этим осуществится некоторая подстановка на множестве кодо¬ вых слов, сохраняющая расстояние Хэмминга между ними, причём вы¬ бранное кодовое слово перейдёт в нулевое. Отсюда следует, что кодовые слова в линейном коде полностью равноправны, их окрестности устроены одинаково и для получения кодового расстояния достаточно найти кодовое слово, ближайшее к нулевому. Отсюда непосредственно вытекает следую¬ щий важный результат. I Утверждение 1. Кодовое расстояние линейного кода равно минимальному из весов ненулевых кодовых слов. Согласно утверждению I для построения кодов с гарантированным кодовым расстоянием достаточно уметь строить линейные подпростран¬ ства с гарантированным минимальным весом ненулевых кодовых слов. Для решения этой последней задачи удобно задавать подпространство не с помощью порождающей матрицы G , а с помощью так называемой прове¬ рочной матрицы Н, являющейся порождающей матрицей ортогонально¬ го подпространства. Матрица Н имеет размер ((л-А)хи). Её строками являются п-к векторов ht,..., h„_£ , каждый из которых ортогонален ко всем векторам gj,..., gk : (h,-, gj) = 0, / = l,2,..., n-k, j = l,2,..., k, что в матричной форме может быть выражено также как HGr = О, где G — матрица, транспонированная к матрице G, а О — матрица размера ((л - к) х к), целиком состоящая из нулей. Имея проверочную матрицу Н , кодовое пространство можно опреде¬ лить как множество вектор-столбцов х , удовлетворяющих соотношению Нх = 0, (6) где 0 — вектор-столбец высоты п - к, состоящий из нулей. Если порождающая матрица G задана в форме (4), то проверочную матрицу Н легко выписать в явном виде:
H=[A7’|I„_*]> T где \п_к — единичная матрица порядка п-к, а А матрица, транс¬ понированная к А. В самом деле, умножение i -й строки матрицы Н на j -ю строку матрицы G даёт + а^ = 0, т. е. строки ортогональны. Проверочная матрица кода с проверкой на чётность состоит из одной строки, заполненной единицами. В частности, проверочная матрица кода с порождающей матрицей (2) есть Н = (111). Найдём теперь проверочную матрицу для кода с порождающей матри¬ цей (3). Матрица G здесь не задана в стандартном виде (4), однако приве¬ дение к стандартному виду в данном случае достигается простой переста¬ новкой строк. Переставив строки и используя (7), получаем: Читателю предоставляется возможность проверить, что каждый из четырёх векторов кода удовлетворяет условию (6). Важность проверочной матрицы Н для построения линейных кодов объясняется следующим непосредственно вытекающим из утверждения 1 следствием. Следствие 1. Пусть в проверочной матрице Н сущест¬ вует d линейно зависимых столбцов, а любые d-1 столбцов линейно независимы. Тогда кодовое расстояние линейного кода равно d . Согласно следствию I, для того чтобы кодовое расстояние линейного кода было равно d , необходимо и достаточно, чтобы сумма некоторых d столбцов давала нулевой вектор-столбец, а сумма меньшего числа столб¬ цов никогда не давала нулевого вектор-столбца. Для того, чтобы кодовое расстояние было не меньше 3 и код мог исправлять одну ошибку доста¬ точно, таким образом, чтобы проверочная матрица не содержала нулевых вектор-столбцов и двух одинаковых вектор-столбцов. Это и даёт ключ к построению кодов Хэмминга. Выберем некоторое натуральное число г и сформируем матрицу Н(гхл) так, чтобы все её п столбцов были ненулевыми и попарно раз¬ личными, что всегда возможно при п < 2r -1. Тогда в соответствии с вы¬ шеизложенным линейный код с проверочной матрицей Н будет иметь ко¬ довое расстояние не менее 3. В самом деле, так как в матрице Н нет ну- 'ЮЮО' н = ПОЮ ,0Ю01у 5.4. Линейные коды. Коды Хэмминга
Глава 5. Коды, блок-схемы, шифры 188 левых столбцов, то полученный линейный код не может содержать слов веса 1. А так как в матрице Н нет одинаковых столбцов, то код не может содержать и слов веса 2. Поэтому минимальный вес ненулевых слов будет не меньше 3 и в соответствии с утверждением 1 кодовое расстояние кода также будет не меньше 3. Тем самым построенный линейный код спосо¬ бен исправлять, как минимум, одну ошибку. Особенно изящной данная конструкция оказывается при п = 2Г -1, когда используются все ненулевые столбцы. Процедура декодирования оказывается в этом случае особенно простой. Пусть на вход декодера по¬ ступает некоторый вектор х . Декодер вычисляет вектор у = Н х (назы¬ ваемый синдромом). Если у = 0 , то х является кодовым словом, и деко¬ дер воспроизводит его без изменения. Если же у * 0, то у совпадает с одним из столбцов матрицы Н , например j -м. Тогда, инвертировав j -ю координату вектора х, декодер, исправляя одну ошибку, получает кодовое слово. Описанный алгоритм декодирования показывает, что шары единич¬ ного радиуса с центрами в кодовых словах не только не пересекаются, но и покрывают всё линейное пространство F={0,1}” , т. е. полученный [2r-l, 2г-г-\, 3]-код является совершенным. Он называется совершен¬ ным кодом Хэмминга. Факт покрытия единичными шарами всех векторов множества V можно подтвердить и мощностными соображениями. В шаре Хэмминга г г 1Г—Г—1 единичного радиуса содержится п +1 = 2 -1 + 1 = 2 векторов, и 2 шаров содержат 2r -2Z ~r~ =2Z ~ =2” наборов, что совпадает с полным числом наборов множества V . Пусть, в качестве примера, г = 3, я = 2Г -1 = 7 . Тогда проверочная матрица может быть выписана, например, как Н = '110 110 0' 10 110 10. v0 1 1 1 О О 1, Совершенный [7,4,3]-код Хэмминга длины 7 с проверочной матри¬ цей Н содержит 24 = 16 кодовых слов. Для задания систематического ко¬ дера, используя (4) и (7), получаем порождающую матрицу в виде '1 0 0 0 1 1 0' 0 10 0 10 1 G = 0 0 10 0 1 1 J) 0 0 1 1 1 1,
Допустим, что на вход декодера поступил набор х = (0111010)/ . Вы¬ числяя синдром, получаем fO'' 1 ЦоопоГ 1 т 0101011 1 = 1 * 0 ^0010111у 0 ,0, А 189 Таким образом, х не является кодовым словом. Столбец (110)' явля¬ ется четвёртым столбцом матрицы Н . Инвертируя четвёртую координату вектора х, декодер выдаст на выходе кодовое слово (0110010)^ . Вопросы для самопроверки 1. Сколько имеется кодовых слов в линейном коде с проверочной мат¬ рицей Н(р х п) ? а) 2Р; б) 2" ; в) 2п~р . 2. Что можно сказать о кодовом расстоянии d линейного кода, если его проверочная матрица не содержит нулевого столбца и не имеет двух одинаковых столбцов? в) d = 3\ 6) d >3 ; в) d>3. 3. Сколько кодовых слов содержит совершенный код длины 15 и кодо¬ вым расстоянием 3? а) 512; 6) 1024; в) 2048. Ответы: 1 — в, 2 — в, 3 — в. 5.5. Скорость передачи и вероятность ошибки. Теорема Шеннона Прежде чем переходить к рассмотрению алгебраических систем ко¬ дирования, позволяющих исправлять в кодовых словах более одной ошиб¬ ки, рассмотрим возможности помехоустойчивого кодирования для двоич¬ ного симметричного канала в целом. Целью помехоустойчивого кодирова¬ ния является максимально возможное уменьшение вероятности ошибки при передаче кодовых слов. Однако это уменьшение должно достигаться введением не слишком большой избыточности. 5.5. Скорость передачи и вероятность ошибки. Теорема Шеннона
Глава 5. Коды, блок-схемы, шифры 190 Вероятностью Ре ошибки кода с заданной таблицей де¬ кодирования называется вероятность неправильного вос¬ становления декодером случайного кодового слова, пере¬ данного по двоичному симметричному каналу, имеющему вероятность ошибки р, при условии, что все кодовые слова передаются с равной вероятностью. Вероятность того, что при передаче по двоичному симметричному каналу в кодовом слове произойдёт i ошибок, равна С‘„р‘ (I- р)п~'. У рас¬ смотренного в разделе 3 кода из четырёх кодовых слов с таблицей декоди¬ рования 3.1 окрестности каждого слова имеют одинаковый вид. Они со¬ стоят из всех векторов, находящихся на расстоянии не более 1 от кодового слова, и двух векторов на расстоянии 2. Поэтому вероятность правильного декодирования для данного кода есть вероятность того, что произошло не больше одной ошибки, плюс вероятность того, что произошли две задан¬ ные ошибки: 1 - Ре = £ Ф' ( 1 - Р)54 + 2Р2 (1 - Р)2 • /=о В общем случае, если кодовое расстояние не меньше d = 2t +1, для вероятности ошибки при разумном выборе окрестностей кодовых слов справедлива следующая оценка ?е < 1-£с>'(1-рГ'' = £ с‘пР‘о-р)п-‘, (о /=о /=/+1 которая показывает, что чем на большее расстояние удаётся разнести ко¬ довые слова при заданной фиксированной длине кода п , тем меньше ве¬ роятность ошибки кода. Вопрос о кодировании со сколь угодно малой вероятностью ошибки для двоичного симметричного канала в принципе может быть решён триви¬ ально. Для этого в исходном информационном блоке длины к каждый бит информации достаточно продублировать 2t +1 раз. При таком способе ко¬ дирования декодер будет восстанавливать каждый бит информации с помо¬ щью мажоритарного принципа, заменяя каждые 2t +1 битов кодового слова нулём или единицей, в зависимости от того, каких символов в (21 +1) -бито¬ вом наборе больше. Увеличивая t, можно добиться сколь угодно малой вероятности ошибки при восстановлении информационного бита и, сле¬ довательно, сколь угодно малой вероятности ошибки декодирования ин¬ формационного блока. Однако при таком кодировании длина кодовых слов становится равной п = {2t + \)k, т. е. также увеличивается в 2м-1 раз, что существенно замедляет скорость передачи информации по каналу.
191 Скоростью систематического кода называется отношение R = k/n длины информационного блока к длине кодового слова. В общем случае для (п,М)-кода скорость кода оп¬ ределяется как 7? = log2A///j. Скорость кода является важной характеристикой эффективности кода. Она может варьироваться в пределах 0 < R < 1. Задачу построения хорошего помехоустойчивого кода можно опреде¬ лить теперь как задачу получения высокоскоростного кода с малой вероят¬ ностью ошибки. На первый взгляд, эти требования кажутся противоречи¬ выми. Представляется почти очевидным, что за уменьшение вероятности ошибки, достигаемое увеличением избыточности, неизбежно приходится расплачиваться снижением скорости кода. Оказывается, что это не так. Шенноном был получен удивительный результат, согласно которому, ис¬ пользуя коды достаточно большой длины п , можно добиться сколь угодно малой вероятности ошибки, не снижая скорости передачи ниже фиксиро¬ ванного предела, определяемого вероятностью ошибки в канале р и на¬ зываемого пропускной способностью канала. Пропускной способностью двоичного симметричного ка¬ нала с вероятностью ошибки р называется величина С{р) = 1 + рlog2 р + О-р)log2(l-p) = l-H2(p). Величина С{р) заключена в пределах 0 < С(р) < 1. График функции С(р) представлен на рис. 1. При нулевой вероятности ошибки в канале пропускная способность равна единице. Она уменьшается с ростом р и обращается в нуль при р = 1/2 , когда все последовательности на выходе канала становятся независящими от входа и рав¬ новероятными, что делает невозможным передачу информации. При р> 1/2 про¬ пускная способность снова возрастает, так как нули теперь можно интерпретировать как единицы, а единицы — как нули. Теорема Шеннона для канала с шумом, утверждающая существование хороших помехоустойчивых кодов, явилась фундаментом для всей теории помехоустойчивого кодирования и на десятилетия вперёд определила на¬ правление исследований, которые проводились, в основном, уже конст¬ руктивными алгебраическими методами. 5.5. Скорость передачи и вероятность ошибки. Теорема Шеннона
Глава 5. Коды, блок-схемы, шифры 192 Теорема 1 (Шеннон, 1948). Пусть вероятность ошибки двоичного симметричного канала равна р, С(р) — его пропускная способность. Тогда для любых сколь угодно малых £>0 и S>0 при достаточно большом п существу¬ ет код длины п со скоростью R, заключённой в пределах C(p)~S < R <С(р), и вероятностью ошибки, не превы¬ шающей е. При скорости передачи не меньшей С(р) + А, где Д>0, вероятность ошибки не может быть сделана меньше определённой величины, а с ростом п она стре¬ мится к единице. Доказательство теоремы Шеннона представлено в Дополнении 2. Как и все известные до настоящего времени доказательства этой знаменитой теоремы данное доказательство неконструктивно. Требуемый код не стро¬ ится в явном виде, а лишь доказывается его существование. А именно, по¬ казывается, что случайным образом выбранный код заданной мощности с отличной от нуля вероятностью будет обладать требуемой надёжностью. Это и доказывает, что множество требуемых кодов не пусто. В сущности, теорема Шеннона является следствием закона больших чисел — фунда¬ ментального утверждения теории вероятности, согласно которому с рос¬ том числа испытаний относительная частота наступления события стре¬ мится к его вероятности. Однако потребовалась прозорливость Шеннона, чтобы увидеть этот неожиданный результат, явившийся стимулом для все¬ го дальнейшего развития теории кодирования. Получим теперь ряд результатов, связанных с теоремой Шеннона, ко¬ торые интересны сами по себе и будут использованы при доказательстве теоремы в Дополнении 2. Оценим, прежде всего, снизу вероятность ошибки любого (п,М) -кода. С этой целью введём полезное определение. Для (л,М)-кода определим приведённый радиус г* = r*(n,M) = mm{r: М ■ %(п, г) > 2п}, другим словами, М-%(п,г*)> 2", а М-%{п, r*-l) < 2" . Утверждение 1. Вероятность ошибки Ре любого {п,М) - кода удовлетворяет неравенству ре > У с‘пр‘(1-р)”~‘+ i=r*+\ ( 2"Л Z(n,r*)- — М рг\\-р)п-г . (2)
193 До казательство. Вероятность ошибки (п,М) -кода с заданными окрестностями Vj кодовых слов Vy, по определению, равна , м Ре= —У е Д Л ми 1- У P(v|Vy) veV, где P(v|v() —вероятность того, что кодовое слово Vy в результате оши¬ бок в канале перейдёт в вектор v. Вероятность P(v|Vy) = p ) J’ при p < 1/2 является монотонно убывающей функцией от расстояния Хэмминга </(v,v,). Пусть /у = min {г: %(n,r)> \ Vj |}. Тогда вероятность £vef,P(v|vy) правильного декодирования слова Vy при заданной мощности | Vj | его окрестности максимальна, если окрестность занимает шар радиуса гу -1 и часть сферы радиуса Гу, т. е. наиболее компактно и плотно группируется вокруг кодового слова Vy. Поэтому вероятность ошибки l-£v6r.p(v|vy) для слова Vy удовлетворяет неравенству 1-Zp(v|vy) ^ I Скпрк(\-рГк + (ж Гу)-|Ку|)/>(1 veK, i=rj+1 а для вероятности ошибки кода справедлива оценка Р* > , м -У IA t-l м j=1 Z С У (1 - р)яЧ + (*(и, Гу)-1 Гу |)/> (1 - р)”- vi=0+l • (3) Если значения Гу, у = 1,2 М для окрестностей различных слов не все одинаковы, то выравнивание величин | Vj | с сохранением условия У ^1 Р/1 = 2” , при котором все значения rh i = 1,2 Л/ становятся одинаковыми, не увеличивает суммы в правой части (3). Но эти выров¬ ненные значения г;- становятся равными приведённому радиусу = г*, i = 1,2,..., М , что и доказывает (2). □ Для совершенного кода с кодовым расстоянием d = 2t +1 число t яв¬ ляется его приведённым радиусом t = г*. На совершенных кодах нижняя оценка (2) для ошибки достигается, совпадая с верхней оценкой (1). Одна¬ ко нижняя оценка (2) достигается не только на совершенных кодах. 5.5. Скорость передачи и вероятность ошибки. Теорема Шеннона
Глава 5. Коды, блок-схемы, шифры 194 Код называется квазисовершенным, если существует та¬ кое натуральное t, что шары радиуса г-1 с центром в кодовых словах не пересекаются, а шары радиуса t по¬ крывают множество К = {0,1}”, возможно пересекаясь. Разумеется, такое t, если оно существует, является приведённым ра¬ диусом кода г* . Таблицу декодирования для квазисовершенного кода естественно со¬ ставить так, чтобы окрестность каждого кодового слова содержала шар Хэмминга радиуса / -1, а наборы, находящиеся на расстоянии t от не¬ скольких кодовых слов можно занести в окрестность любого из них. Та¬ ким образом, принцип «идти в ближайшее кодовое слово» для квазисо¬ вершенного кода сохраняется. Квазисовершенный код способен исправ¬ лять любые t -1 или меньшее число ошибок и некоторые из t ошибок, но не может исправить никакие t +1 или большее число ошибок. Совершен¬ ный код является частным случаем квазисовершенного. Из рассуждений, использованных при доказательстве утверждения 1, непосредственно вытекает следующее экстремальное свойство квазисо¬ вершенного кода. Утверждение 2. На квазисовершенных кодах и только на них достигается нижняя оценка (2) для вероятности ошибки Ре. Поэтому квазисовершенный код, если он су¬ ществует, имеет наименьшую среди всех (п,М) -кодов ве¬ роятность ошибки. Код, задаваемый таблицей 3.1, является квазисовершенным и поэтому имеет минимально возможную вероятность ошибки среди всех (5,4) -кодов. Хотя квазисовершенных кодов значительно больше, чем совершен¬ ных, они также существуют не для всех значений п и d . Более того, как будет следовать из оценок раздела 9, для любого а > 1 при достаточно большом п не существует квазисовершенных кодов длины п с кодовым расстоянием d , заключённом в интервале ап < d < п . Теорема Шеннона устанавливает асимптотические пределы качества ко¬ дирования и гарантирует возможность их достижения. Практическая же зада¬ ча кодирования может рассматриваться как задача построения кода заданной мощности, с вероятностью ошибки, не превышающей заданной величины, и имеющего среди подобных кодов наименьшую длину. Кроме того, предло¬ женный код должен обладать эффективными процедурами кодирования и декодирования. В столь многокритериальной постановке задача кодирова¬ ния, разумеется, является сложной. Были, однако, разработаны алгебраиче¬ ские методы построения кодов с гарантированным кодовым расстоянием, для которых вероятность ошибки может быть оценена сверху с помощью (1).
В дальнейших разделах этой главы будет рассматриваться именно за- 195 дача построения кода с гарантированным кодовым расстоянием. Об этой задаче будем говорить как о задаче кодирования в алгебраической поста¬ новке, в отличие от статистической или шенноновской постановки, не предусматривающей при минимизации ошибки какой-либо регулярности в расположении кодовых слов. Вопросы для самопроверки 1. Какое минимальное расстояние между кодовыми словами позволяет исправлять t ошибок? a) t; б) 2t; в) 2t +1. 2. Какой код с минимальным расстоянием 2t + \ называется совершенным? а) шары радиуса t не пересекаются; б) шары радиуса t покрывают кодовое пространство; в) шары радиуса 2/ +1 покрывают кодовое пространство. Ответы: 1 — в, 2 — б. 5.6. Коды Рида-Маллера Коды с проверкой на чётность и коды Хэмминга хороши для каналов с малой вероятностью ошибки, например, при обмене информацией меж¬ ду различными устройствами одного и того же компьютера. Для сильно зашумлённых каналов нужны коды с большим кодовым расстоянием. Во второй половине XX века было найдено значительное число таких кодов, некоторые из которых будут рассмотрены далее в этой главе. Мы начнём с кодов Рида—Маллера. Эти коды являются самым старым после кодов Хэмминга семейством кодов. Они названы по имени двух американских учёных: предложившего их Маллера (D. Е. Muller, 1953) и нашедшего для них удобную схему ма¬ жоритарного декодирования Рида (I. S. Reed, 1954). Вследствие удобства реализации это семейство кодов нашло широкое практическое применение. Построение кодов Рида—Маллера опирается на свойства булевых функций и использует их представление с помощью полиномов Жегалки- на (раздел 2.6). Каждую булеву функцию f(x\,...,xm) от т переменных /: {0,1}т —> {0,1} будем отождествлять с бинарным 2Ш -мерным векто¬ ром, компонентами которого являются значения функции на 2т бинарных наборах длины т, упорядоченных в лексикографическом порядке. Кодом Рида—Маллера RM(r,m) порядка г называется код длины 2т, кодовыми словами которого является векторы булевых функций от т переменных, полиномы Жегалкина которых имеют степень не выше г. 5.6. Коды Рида-Маллера
Глава S. Коды, блок-схемы, шифры 196 Сложению полиномов Жегалкина соответствует сложение соответст¬ вующих векторов над полем GF(2). Поэтому определённый таким образом Уг С' код является линейным и имеет мощность 2^'=0 т , т. е. его размерность равна к = ^Г_0С^, . Естественными базисными векторами этого линейно¬ го кода являются векторы, соответствующие всевозможным мономам сте¬ пеней от 0 до г: \,xu...,xm,xix2,...,xm_ixm,...,x]...xr xw_r+1 ...хт . Утверждение 3. Кодовое расстояние кода Рида—Малле- ра RM (г, т) равно 2т~г, т. е. код RM (г, т) является г.Еис.г-ькодом. Доказательство. Покажем, что вектор значений булевой функ¬ ции, задаваемой непустым полиномом Жегалкина степени не более чем г, содержит не менее 2т~г единиц, причём существует полином степени г, вектор значений которого содержит ровно 2т~г единиц. Тогда доказывае¬ мое утверждение будет следствием утверждения 4.1. В полиноме Жегалкина степени s, где s<r, выберем произвольную конъюнкцию ранга s. Фиксация любого набора значений для т - s пере¬ менных, не входящим в выбранную конъюнкцию, выделяет в т -мерном кубе s -мерный подкуб. Имеется 2m~s таких попарно непересекающихся подкубов. После фиксации m-s переменных полином Жегалкина стано¬ вится полиномом от s переменных. Этот полином задаёт в 5-мерном подкубе некоторую булеву функцию, не равную тождественно нулю, так как выбранная конъюнкция остаётся в полиноме без изменения. Тем са¬ мым доказано, что исходная булева функция имеет не менее 2m~s > 2т~г единичных значений. Остаётся заметить, что ровно 2т~г единичных зна¬ чений имеет булева функция / = Х\... хг. □ Коды Рида—Маллера небольших порядков обладают большим кодо¬ вым расстоянием, поэтому они нашли практическое применение для сильно зашумлённых каналов. В частности, код RM (1,5) использовался в 1972 году американской межпланетной космической станцией «Маринер- 9» при передаче фотографий поверхности Марса. 64 градации уровня яр¬ кости каждой точки такой фотографии кодировались двоичными словами длины 32. Широкое распространение кодов Рида—Маллера для сильно зашумлённых каналов во многом связано также с существованием для них удобных схем декодирования. В качестве примера рассмотрим код RM (1,3), являющийся линейным [8, 4, 4] -кодом. Кодовыми словами будут векторы, соответствующие всем линейным функциям от 3 переменных (табл. 1).
197 0 <=> (0 0 0 0 0 0 0 0) *1 <=> (0 0 0 0 1 1 1 1) *2 <=> (0 0 1 1 0 0 1 1) *3 (0 1 0 1 0 1 0 1) Xl + Х2 <=> (0 0 1 1 1 1 0 0) *1+*3 <=> (0 1 0 1 1 0 1 0) Х2+Х3 О (0 1 1 0 0 1 1 0) *1 + х2 + *3 <=> (0 1 1 0 1 0 0 1) 1 <=> (1 1 1 1 1 1 1 1) 1 + <=> (1 1 1 1 0 0 0 0) 1 + Х2 <=> (1 1 0 0 1 1 0 0) 1 + ДГ3 о (1 0 1 0 1 0 1 0) 1 + Х\ + х2 <=> (1 1 0 0 0 0 1 1) 1 + ^1 + <=> (1 0 1 0 0 1 0 1) 1 + х2+х3 (1 0 0 1 1 0 0 1) 1 + Aj + %2 + <=> (1 0 0 1 0 1 1 0) Таблица 1 Приняв векторы функций 1, Х\, х2, х3 за базис, получим порождаю¬ щую матрицу линейного кода (несистематического) в виде (\ 1 1 1 1 1 1 1Л 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 ,01010101, G = Кодовый вектор v = (vj,... ,v8) получается из информационного бло¬ ка (и0> Щ, и2, мз) как линейная комбинация базисных векторов: V '0> '0> V v2 1 0 0 1 v3 1 0 1 0 v4 1 0 1 1 v5 = «0 1 + Щ 1 + u2 0 + W3 0 v6 1 1 0 1 v7 1 1 1 0 Vv8, Л ,1, Л Л (1) Рассмотрим теперь для кода RM (1,3) алгоритм его мажоритарного декодирования. Так как RM (1,3) имеет кодовое расстояние d = 4, то деко- 5.6. Коды Рида—Моллера
Глава 5. Коды, блок-схемы, шифры 198 дер должен исправлять одну и сообщать о двух ошибках. Покажем, как в случае не более чем одной ошибки компоненты информационного блока могут быть восстановлены с помощью мажоритарного принципа. Складывая две первые строки в (1), получаем соотношение w3 = vj + v2 . Складывая аналогичным образом третью и четвёртую, пятую и шестую, седьмую и восьмую строки, получаем 4 соотношения: И3 = Vj + v2 и3 =v3+v4 и3 =v5+v6 и3 = v7 + vg . (2) Если теперь при передаче кодового слова v = (v(,... ,v8) произошла одна ошибка, то одно из равенств (2) станет неверным, а три оставшихся сохранятся. Поэтому компонента информационного блока и3 может быть восстановлена из этих равенств по большинству голосов. Получение же при вычислении правых частей равенств (2) двух единиц и двух нулей свидетельствует о более чем одной ошибке в кодовом слове. Аналогичным образом с помощью мажоритарного принципа компо¬ ненты и2 и щ восстанавливаются из равенств ц2 = v, + v3 и2 = v2 + v4 w2 ” v5 v7 И «2 = v6 + v8 Щ = V] + v5 Щ = V2 + V6 Щ = V3 + Vy Щ =v4+v8. Теперь, когда щ,и2, и3 найдены, не составляет труда и определение Uq . Из (1) получаем Это векторное равенство даёт восемь соотношений для нахождения и0, ив случае наличия в векторе v одной ошибки и0 может быть найде¬ но с помощью мажоритарного принципа.
199 Вопросы для самопроверки 1. Каково кодовое расстояние кода ЯМ (1,5)? а) 3; 6)5; в) 16. Ответы: 1 — в. 5.7. Конечные поля Для дальнейшего продвижения в алгебраической теории кодирования необходимо глубже изучить конечные поля, играющие важную роль во многих разделах дискретной математики. Предварительное знакомство с ними уже состоялось во Вводной главе. Для любого натурального т и простого р существует единственное с точностью до изоморфизма поле, содержащее рт элементов, обозна¬ чаемое как GF(pm). Если т = 1, то элементы поля GF(p) = {0,1,... ,р-\) можно считать классами вычетом по простому модулю р. Такое поле не имеет собственных подполей и называется простым полем характери¬ стики р. Если же т > 1, то элементы поля можно считать классами вы¬ четов по неприводимому многочлену степени т над простым полем ха- k /t-l рактеристики р, т. е. многочленами вида akx +а^_\Х +... + а^х + а^, где к < т-1, а,- eGF(/?). Такое поле также называется полем характери¬ стики р. В качестве подполя оно содержит простое поле GF(p). Неприводимые многочлены над GF(p) существуют для любого т . Поля GF(рт), построенные как классы вычетов по различным неприво¬ димым многочленам степени т , изоморфны. Если а — произвольный элемент поля характеристики р, то а + ... + а = 0. р раз В частности 1 +... +1 = 0 . (1) Р раз Минимальное значение р, для которого выполнено (1), обязано су¬ ществовать в любом конечном поле и быть простым числом. В самом де¬ ле, если р = т ■ п, то (1 +... +1) • (1 +,., +1) = 0, т. е. произведение двух He¬ rn раз п раз нулевых элементов поля обращается в нуль, что невозможно. Задаваемое с помощью соотношения (1) значение р принимается за определение характеристики произвольного поля. При этом характеристи¬ ки числовых полей — поля рациональных чисел (простого), а также поля действительных чисел и поля комплексных чисел и их подполей, в каждом 5.7. Конечные поля
Глава 5. Коды, блок-схемы, шифры 200 из которых соотношение (1) не выполняется ни при каком натуральном р, полагаются равными нулю. Тождество а + ... + а = 0 приводит в поле характеристики р к важ- Р раз ному соотношению при возведении сумм в р-ю степень. Утверждение 1. В поле характеристики р для любых t элементов имеет место равенство («] +... + а,)р =af +... + aj>. (2) Доказательство. Согласно полиномиальной формуле 1.2.1 имеем (a, +... + at)p = £ . Р' , а{1 ...а). (3) /„..^>0 *1 Но р — простое число. Поэтому, если ни одно из чисел ц !,..., /,! не р\ равно р, то —- кратно р. Вследствие этого и ввиду (1) в правой части (3) остаётся лишь сумма ар +... + ар . □ Замечательным свойством всех конечных полей является то, что их мультипликативные группы являются циклическими. Другими словами, в любом конечном поле GF(рт) существует элемент а , степени «° =1, а, а2,...,ар ~2 которого порождают все рт -1 ненулевых элементов по¬ ля. Такой элемент а называется примитивным корнем. Число примитив¬ ных корней как порождающих элементов циклической группы порядка рт -1 равно, конечно, <р(рт -1), где <р — функция Эйлера. Прежде чем привести доказательство этого важнейшего свойства ко¬ нечных полей, проиллюстрируем его на простейших примерах. В поле GF(5) примитивными корнями являются элементы 2 и 3, так как 2° = 1, 21 = 2, 22 = 4, 23 = 3 и 3° = 1, З1 = 3, З2 = 4, З3 = 2. В рассмотренном во л Вводной главе поле GF(2 ) такими элементами являются х и х +1, так как х° = 1, х1 = х, х2 = х +1 и (х +1)° = 1, (х +1)1 = х +1, (х +1)2 = х . I Теорема 1. Мультипликативная группа конечного поля является циклической. * Доказательство. Обозначим через F мультипликативную груп¬ пу конечного поля GF(pm), т. е. множество его ненулевых элементов с
201 операцией умножения. Пусть а е F* — элемент максимального порядка в мультипликативной группе и этот порядок равен г. Наша цель — пока¬ зать, что г = рт -1. Покажем, прежде всего, что порядок любого элемен- таа eF делит г. Пусть а' е F* имеет порядок г'. Пусть некоторое простое число q входит в разложение на простые множители числа г в степени i > 1, а в разложении г' — в степени i', т. е. г = q'k, где (q, к) = 1 и г' -q‘ к', где (q, к') = 1. Наша первая цель будет достигнута, если удастся показать, что Г <, i. Порядок элемента а4 равен к, а порядок элемента (сс')к равен q‘ . Их порядки взаимно просты, поэтому порядок их произведения aq (а')к равен произведению порядков, т. е. q' к (см. задачу 0.36). По условию этот порядок не может превышать г, откуда и следует, что /' < i. В силу доказанного для каждого элемента /3eF* имеет место соот¬ ношение pr = 1, т. е. каждый элемент мультипликативной группы является корнем многочлена хг -1, который, таким образом, делится на произведе- ние Y\peF* (*-/?). Поэтому г> рт -1, откуда следует, что г = рт -1. □ Следствие 1. Пусть а — примитивный корень мультип¬ ликативной группы конечного поля GF(pm). Тогда для каж¬ дого ненулевого элемента поля /} существует единствен¬ ное натуральное число к, 0< к < рт-2, такое что ак = р . Рассмотрим теперь важное отображение множества элементов конеч¬ ного поля в себя, являющееся его автоморфизмом, т. е. изоморфным ото¬ бражением в себя. Утверждение 2. Пусть xeG¥(pm). Отображение F:x^x^ является автоморфизмом поля Галуа GF(pm), оставляю¬ щим неподвижными элементы его подполя GF(/?). Доказательство. Отображение F сохраняет операции, так как (х + у)р = хр + ур и (ху)р = хрур, и оставляет элементы подполя GF(p) неподвижными. Осталось показать его биективность. Пусть а — прими¬ 5.7. Конечные поля
Глава 5. Коды, блок-схемы, шифры тивный корень поля GF(рт). Тогда множество его ненулевых элементов может быть записано как {а =1, a', от,..., ар ~*}. Если (а,[)р=(а'* 2)р , то рц = pi2 |mod(pm-l)j. Отсюда следует, что p{ix — /2)=0 |rnod(pm-l)j. А так как р — простое и р не делит рт -1, то j'j -i2=0 |mod(p'” -l)j, откуда и следует, что /] -i2. □ Следствие 2. В поле Галуа характеристики р каждый элемент имеет единственный корень степени р. В силу следствия 2 в поле GF(2m) каждый элемент является квадра¬ том некоторого элемента. Рассмотрим теперь, сколько элементов является квадратами в поле Галуа с отличной от 2 характеристикой. В поле GF(рт), где рФ 2, отличный от нуля элемент а называется квадратичным вычетом, если для него суще- ствует элемент b такой, что Ъ =а. Ненулевые элементы поля, не являющиеся вычетами, называются невычетами. Например, в поле GF(7) элемент 2 является квадратичным вычетом, так как 3 = 2, а элемент 3 — квадратичным невычетом, так как уравне- 2 ние х =3 решений в этом поле не имеет. Вычеты в этом поле — это {1,2,4}, а невычеты — {3,5,6}. Утверждение 3. В поле GF(jt/”), где рФ 2, (рт -1)/2 эле¬ ментов являются квадратичными вычетами и (рт - 1)Д элементов являются квадратичными невычетами, причём если рт = 1 (mod4), то -1 — квадратичный вычет, а если рт =3(mod4), то -1 — квадратичный невычет. Кроме то¬ го, справедливы правила умножения: вычет ■ вычет = вычет; невычет • невычет = вычет', вычет ■ невычет = невычет . Доказательство. Пусть а —примитивный корень поля GF(/?m), 2 2 pm~l а, а , ..., ар , а =1 —все его ненулевые элементы. Тогда квад¬ ратичными вычетами являются те и только те из этих элементов, которые
задаются чётными степенями примитивного корня. Поэтому имеется 203 (рт -1)/2 вычетов и столько же невычетов. При этом очевидным образом выполняются и правила умножения. Пусть -1 — квадратичный вычет. Тогда для некоторого к имеем (ак)2 = а2к =-1 и а4к =1. А это означает, что 4к = рт -1. Поэтому -1 —вычет, если рт = l(mod4), и невычет, если рт =3(mod4). о Заметим, что рт= 3(mod4) в том и только в том случае, если р = =3(mod4) и т —нечётное. Вопросы для самопроверки 1. Сколько примитивных корней в поле GF(23)? а) 1; б) 6; в) 7. Ответы: 1 — б. 5.8. Коды БЧХ Наиболее близкими по идеологии к кодам Хэмминга являются коды БЧХ, названые так по имени независимо открывших их учёных Р. К. Боуза и Д. К. Роя-Чоудхури (Bose R. К., Ray-Chaudhuri D. С., 1960) и А. Хоквин- гема (A. Hocquenghem, 1959). Познакомившись с конечными полями, мож¬ но приступать к их изучению. Согласно следствию 4.1, если любые d-1 столбцов проверочной матрицы Н линейно независимы, то кодовое расстояние линейного кода не меньше d . Для построения подобной проверочной матрицы нам по¬ требуется известный из линейной алгебры определитель Вандермонда: 1 1 ... 1 Х\ х2 ... хк 2 2 2 х, х2 ... Хк v*-1 „*-1 к- Х\ х2 ... хк где jcj, ..., хк — элементы произвольного поля. Как следует из (1) опре¬ делитель Вандермонда отличен от нуля тогда и только тогда, когда элемен¬ ты *i,..., хк попарно различны. Следовательно, условие попарного раз¬ личия элементов х\, ... , хк необходимо и достаточно и для линейной не¬ зависимости столбцов определителя. Эти наблюдения и дают ключ к построению проверочной матрицы Н, гарантирующей заданное кодовое расстояние d для линейного кода. = П (*<■-*/)> (о 1< j<i<k 5.8. Коды БЧХ
Глава 5. Коды, блок-схемы, шифры ^ В поле Галуа GF(2m) выберем п произвольных ненулевых и попарно различных элементов щ,, ап, где и < 2Ш -1, и образуем матрицу раз¬ мера (d-\)xn (подразумевая, что d-1 < п ): (2) Любые d -1 столбцов этой матрицы линейно независимы над полем GF(2m), так как построенный на этих столбцах определитель сводится к определителю Вандермонда: а, а2 ■ •• ап 2 2 2 «1 а2 ■ .. а„ 3 3 2 «1 а2 • .. ап Д-1 d-1 d-\ а 1 а2 ■ •• «л а,2 1 а2 '1 а2 12 .. а2 ld-\ а}. ‘\ < .. а3 ld-1 = ai ai • 1, /2 - а2 ‘i ad-x '1 ad~' . '2 .. а?-' ld-1 ad~2 h 1 «/2 а2 12 1 а} '7-1 а d-2 а d-2 ~‘d-\ Таким образом, сумма никаких не более чем d -1 столбцов матрицы (1) не может дать нулевого столбца. Но согласно утверждению 7.1 имеем а2к +а2к +... + а2к ={ак. +ак +... + ак)2 . А 72 А 4 А 72 А Поэтому, если в матрице (1) оставить лишь строки с нечётными но¬ мерами, то это последнее свойство сохранится: «1 «2 af а\ а\ «2 V. «я al (3) ... J Преобразуем теперь матрицу (3), состоящую из элементов поля GF(2'”), в бинарную матрицу Н , которая и будет проверочной матрицей кода с га¬ рантированным кодовым расстояние d. Как уже отмечалось, элементы т 2 1 поля GF(2 ) можно считать многочленами а0 Aa^x + ajX + ... + а[Х сте-
205 пень которых не превосходит т -1, а коэффициенты а,- берутся из GF(2). Дополняя отсутствующие коэффициенты нулями и выписывая их в поряд¬ ке возрастания степеней, каждому такому многочлену можно поставить во взаимно однозначное соответствие т -мерный вектор-столбец над полем GF(2). Установленное взаимно однозначное соответствие между элемен¬ тами поля GF(2m) и т -мерными векторами над GF(2) сохраняется при операции сложения — сумме элементов GF(2OT) соответствует сумма век¬ торов, т. е. поле GF(2m) с операцией сложения и линейное т -мерное пространство являются изоморфными системами. Заменив теперь в матрице (3) каждый её элемент т -мерным вектором- столбцом, получим бинарную матрицу с числом строк, в т раз большим чем у матрицы (3). Примем эту бинарную матрицу за проверочную матрицу Н . Согласно вышеизложенному сумма любых не более чем d-1 её столб¬ цов не может дать нулевого столбца. Поэтому линейный код с проверочной матрицей Н будет иметь кодовое расстояние, не меньшее d . Вычёркива¬ ние в матрице (2) строк с чётными номерами позволяет увеличить гаранти¬ рованную размерность получаю¬ щегося линейного кода. В качестве примера рассмот¬ рим приведённое в [1] построение кода длины п = 15 с гарантирован¬ ным кодовым расстоянием d = 7. Выберем, прежде всего, неприво¬ димый многочлен степени 4. Как нетрудно непосредственно прове¬ рить, многочлен / (х) = 1 + х + х4 неприводим, а элемент а = х яв¬ ляется примитивным корнем поля GF(24), элементами которого яв¬ ляются классы вычетов по модулю / (х). Составим таблицу степеней примитивного корня а , записан¬ ных как вычеты и как векторы ли¬ нейного пространства размерно¬ сти 4 над полем GF(2) (табл. 1). При перечислении ненулевых элементов поля GF(24) в порядке возрастания степеней примитив¬ ного корня от 0 до 14 матрица (3) принимает вид: S3 о II 1 <-» (1000) а1 = X <Г-> (0100) а2 = х2 (0010) а3 = х3 <-> (0001) и «3 1 + X <г> (1100) а5 = 2 *+ X <-» (ОНО) а6 = 2 3 X + X* (ООП) оР = \ + X + х3 <-> (1101) as = 1 +х2 (1010) а9 = X +х3 <-> (0101) а10 = 1 + х + х2 <-> (1110) а}1 = 2 3 х + х +х (0111) и <ч 1+х + х2+х3 (1111) а13 = 1 + х2 + X3 (1011) а14 = 1 +х3 <-> (1001) Таблица 1 5.8. Коды БЧХ
Глава 5. Коды, блок-схемы, шифры (а 1 2 3 4 5 6 7 8 9 10 и 2 13 14) а а а а а а а а а а а а а а а 0 3 6 12 0 3 9 12 3 6 9 12 а а а а а а а а а а а а а а а о „5 10 0 5 10 0 5 10 0 5 10 0 5 10 а а а а а а а а а а а а а а а \ У матрица Н оказывается равной: '1 0 0 0 1 0 0 1 1 0 1 0 1 1 г 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 Н = 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 ,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, Линейный код с проверочной матрицей Н имеет кодовое расстояние не менее 7 и размерность не менее 15-12 = 3. Однако, как легко заметить, последняя строка этой матрицы — нулевая, а две ей предшествующие — одинаковые. Если убрать нулевую строку и ей предшествующую, то полу¬ ченная (10x15)-матрица будет задавать тот же самый код, что и матрица Н . Эту матрицу естественно и принять за проверочную матрицу кода. Можно показать, что теперь все строки проверочной матрицы будут ли¬ нейно независимы, и размерность кода оказывается равной 15-10 = 5. Полученный код является, таким образом, линейным [15, 5, 7] -кодом. Алгоритмы декодирования кодов БЧХ сложны, и мы не будем здесь касаться этого вопроса, отсылая читателя к списку литературы в конце этой главы. Отметим лишь, что, как можно показать, исправляющие две ошибки коды БЧХ длины 2т -1 являются квазисовершенными, т. е. име¬ ют оптимальное соотношение вероятности ошибки и скорости передачи. 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара Линейные коды весьма удобны во многих отношениях с практиче¬ ской точки зрения. Просты их кодеры, а алгоритмы декодирования подчас также оказываются не слишком сложными. Однако если ставить задачу
получения кода максимальной мощности, имеющего заданную длину и 207 исправляющего заданное число ошибок, то в классе линейных кодов опти¬ мальное решение может отсутствовать. Так, например, если задача состоит в получении максимального кода длины 11, исправляющего две ошибки, то известно, что линейный код максимальной мощности содержит в данном случае всего 16 кодовых слов, в то время как имеется нелинейный код (код Адамара), содержащий 24 кодовых слова. Отказавшись от линейности, мы нуждаемся в аппарате комбинатор¬ ного анализа, изучающем такие комбинаторные конфигурации как латин¬ ские квадраты, блок-схемы и матрицы Адамара. К рассмотрению этих комбинаторных систем, являющихся классическими объектами комбина¬ торного анализа, мы теперь и переходим. Они появились, изучались, а за¬ тем и использовались в планировании эксперимента задолго до того, как возникла современная теория кодирования, но в ней они также нашли од¬ но из своих важных применений. Латинские квадраты. Латинским квадратом порядка п называется квад¬ ратная таблица п х п , заполненная п символами так, что каждая строка и каждый столбец содержат все символы. В качестве заполняющих таблицу п символов будем использовать натуральные числа {1, 2,...,«}. Как ука¬ зывалось во Вводной главе, таблица Кэли конечной группы образует ла¬ тинский квадрат. В качестве примера приведём также пару латинских квадратов четвёртого порядка: '1 2 3 4^ '1 2 3 4n 3 4 1 2 4 3 2 1 L, = , L2 = 4 3 2 1 2 1 4 3 ,2 1 4 з, 13 4 1 2, Заметим, прежде всего, что латинский квадрат можно строить, запол¬ няя матрицу построчно. Для г < п назовём таблицу г х п латинским пря¬ моугольником, если каждая из п цифр появляется один раз в каждой строке и не более одного раза в каждом столбце. Утверждение 1. При г<п любой (гхп)-латинский пря¬ моугольник может быть достроен до ((г + 1)хл)-латинско- го прямоугольника. Доказательство. На множестве S = {1, 2,..., п} рассмотрим се¬ мейство из п подмножеств ..., Sn, где Sj состоит из тех элементов множества S, которые отсутствуют в j -м столбце (г х п) -латинского пря¬ моугольника. Имеем \ Sj\=n — r и каждый элемент множества S принад¬ лежит п-r подмножествам. Поэтому в соответствии с замечанием 3.7.2 для данного семейства подмножеств существует система различных пред¬ ставителей, которыми и заполняется (г +1) -я строка. □ 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 208 Если из двух латинских квадратов (1) образовать таблицу 4x4, запи¬ сав в каждой её ячейке в виде упорядоченной пары содержимое соответ¬ ствующих ячеек Lj и Ь2 , то получим '0,1) (2,2) (3,3) (4,4)' (3,4) (4,3) (1,2) (2,1) (4,2) (3,1) (2,4) (1,3) .(2,3) (1,4) (4,1) (3,2), л Глядя на эту таблицу, можно заметить, что каждая из 4 =16 упоря¬ доченных пар, составленных из чисел 1,2,3,4, появляется в этой таблице ровно один раз. Два латинских квадрата, обладающих подобным свойст¬ вом, называются ортогональными. Два латинских квадрата порядка гг. А = {ау) и В = (Ьу) со¬ ставляют ортогональную пару, если их содержимое обра- л зует п различных упорядоченных пар (ау,Ьу). Множест¬ во латинских квадратов называется ортогональным, если каждые два различных квадрата в нём являются ортого¬ нальной парой. Заметим, что, если в одном из квадратов ортогонального множества произвести произвольную подстановку на множестве {1,2,..., п} обра¬ зующих его элементов, то отношения ортогональности не нарушатся и множество квадратов останется ортогональным. Поэтому первую строку в каждом латинском квадрате ортогонального множества всегда можно по¬ ложить равной (1,2,..., п). Добавив к ортогональной паре (1) квадрат ''1 2 3 4'' 2 14 3 3 4 12 .4 3 2 1; L3 = получим ортогональное множество из трёх латинских квадратов. Однако добавить к нему с сохранением условия ортогональности ещё хотя бы один квадрат уже не удастся. I Утверждение 2. Существует не более л-1 ортогональ¬ ных латинских квадратов порядка п. Доказательство. Пусть имеется множество из t латинских квадра¬ тов порядка л , первую строку в которых будем считать равной (1,2 л). Сосредоточим внимание на элементах, стоящих в первом столбце второй строки этих квадратов. Они не равны 1 и, как следует из соотношений орто-
тональности, в разных квадратах они различны. Отсюда вытекает, что 209 Множество из п - 1 ортогональных латинских квадратов порядка п называется полным ортогональным множеством. Как мы далее увидим, не для каждого п существует полное ортого¬ нальное множество латинских квадратов. Однако оно всегда существует, если п является степенью простого числа. Теорема 1, Для каждого п = рт , где р — простое, суще¬ ствует полное ортогональное множество из л-1 латин¬ ских квадратов порядка л. Доказательство. В качестве л символов, заполняющих латин¬ ские квадраты, выберем элементы поля GF(/>m), которые обозначим как а0 =0, О] =1, а2, ... , а„_]. Определим л-1 матриц Ак =(aj^) поряд¬ ка л следующим образом: а\Р = akai +Oj,rде i, j = 0,1, 2,..., л-1, к = 1, 2,..., л-1. Элементарно проверяется, что каждая из матриц является латинским квадратом. Покажем, что это множество латинских квадратов является ор¬ тогональным. Пусть (ajj\ a-j *) = (с№), afj)) , где к Ф к'. Тогда акС1[ + dj = a^a,' + ау и ak’at + aj = ak<a? + ay. Из первого уравнения имеем ak(at -а?) = aj - ay, а из второго — ak> (a,- - af) = fly - ay, откуда получаем ak (а,- - a,-) = ak< (a,- - a,-). А так как к Ф к', то i = Т и j = /. о Отметим, что в настоящее время весьма правдоподобной представля¬ ется гипотеза, согласно которой числами вида л = рт исчерпывается множество тех порядков л, для которых существуют полные ортогональ¬ ные системы латинских квадратов. Гипотеза Эйлера. В 1779 году крупнейший математик XVIII века, внёс¬ ший огромный вклад в развитие дифференциального и интегрального ис¬ числения, российский академик Леонард Эйлер занялся на склоне лет про¬ блемой, которая в ту пору могла показаться чудачеством великого учёного. Весьма любопытный вопрос, который привлекал в течение некоторого времени внимание лучших умов мира, заставил меня выполнить исследова¬ ния, которые, как кажется, открыли новое направление в анализе и, в частно¬ сти, в комбинаторике. Этот вопрос относится к команде из 36 офицеров шести 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 210 разных званий, взятых из 6 различных полков, которых нужно построить в ка¬ ре (квадрат) таким образом, чтобы в каждом ряду как по горизонтали, так и по вертикали находились 6 офицеров различных званий и из разных полков. Од¬ нако после всех трудов, затраченных на решение этой задачи, я был вынужден признать, что такое расположение абсолютно невозможно, хотя и не удалось дать этому строгого доказательства. Леонард Эйлер (1779) Эйлер занимался, таким образом, поиском ортогональной пары ла¬ тинских квадратов шестого порядка. Лишь в 1900 году французский мате¬ матик Тарри путём полного перебора подтвердил отсутствие такой пары. Вообще, метод полного перебора подобно штыковой атаке является по¬ следним средством в комбинаторных задачах подобного рода. Он остаётся таковым и поныне с той лишь разницей, что теперь осуществляется с ис¬ пользованием компьютера. Предположение Эйлера о важности проводимого им исследования также подтвердилось. Изучение ортогональных латинских квадратов ин¬ тенсивно продолжилось в XX веке. Это изучение удобно проводить в тер¬ минах ортогональных таблиц. л Прямоугольная (п *к)-матрица, заполненная числами 1,2, так, что в строках любых двух столбцов пред- л ставлены все л упорядоченных пар (/,_/'), где /,у'е{1, 2, л ..., п}, называется ортогональной (п *к) -таблицей. I Утверждение 3. Ортогональное множество из t латинских квадратов порядка п существует в том и только в том слу- л чае, если существует ортогональная [п х(/ +2)]-таблица. Доказательство. По ортогональному множеству латинских квад- ратов Aj, А2,..., А, ортогональная [(л х (/+ 2)]-таблица строится сле¬ дующим образом. Первые два столбца таблицы заполняются построчно все¬ ми упорядоченными парами элементов из {1, 2,, п}, взятыми в лексико¬ графическом порядке: (1,1), (1,2),..., (1, л), (2,1),..., (2, л),..., (л, 1),..., (л, л). А каждый последующий (2 + к) -й столбец, к-1,2,...,/, является построч¬ ной развёрткой к -го латинского квадрата. Элемент, стоящий в (2 -t- Аг) -м столбце таблицы и в строке, у которой содержимое первых двух столбцах образует набор (/',у), является, таким образом, элементом a)j латинского квадрата А* . Требуемое ортогональное свойство построенной таблицы вы¬ текает из ортогональности множества латинских квадратов А], А2,..., А,.
211 •у Наоборот, по заданной ортогональной [п х (f + 2)] -таблице одно¬ значно восстанавливается ортогональное множество из t латинских квад¬ ратов. Для этого перестановкой строк два первых столбца приводятся к стандартному виду, после чего последующие столбцы дают развёртку ла¬ тинских квадратов. о В качестве примера рассмотрим полное ортогональное множество ла¬ тинских квадратов третьего порядка: '1 2 3' (1 2 3' 2 3 1 И 3 1 2 1 2, ,2 3 К Соответствующая ему ортогональная таблица примет вид '1 1 1 Г 1 2 2 2 1 3 3 3 2 1 2 3 2 2 3 1 2 3 1 2 3 1 3 2 3 2 1 3 ,з 3 2 К Теперь мы в состоянии доказать следующую теорему. Теорема 2 (MacNeish, 1922). Если существует ортого¬ нальное множество из t латинских квадратов порядка щ и ортогональное множество из t латинских квадратов порядка п2 > то существует и ортогональное множество из t латинских квадратов порядка пхп2. Доказательство. Возьмём ортогональную [Л] х(/ + 2)]-таблицу Л первого множества латинских квадратов и ортогональную [л2 х (/+2)] -таб¬ лицу второго множества и построим по ним ортогональную [fa^2)2x х(;+2)]-таблицу следующим образом. Каждой упорядоченной паре строк (ai,a2,...,a/+2) и А+2), взятых соответственно из первой и вто¬ рой таблиц, поставим в соответствие строку ((а|,Ь|), (а2,й2) (а,+2, bt+2)J . Полученными щп2 строками и заполним в произвольном поряд- 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 212 ке [(/7| «2 )2 х(г + 2)] -таблицу. Её ортогональность следует из ортогональ¬ ности образующих её таблиц. □ Теорема 3. Если натуральное число п разлагается в произведение степеней простых чисел п- р™1 р™2 ■ ■•P^N и t — min (of1' — 1), то существует ортогональное множество 1 <i<N из t латинских квадратов порядка п. Доказательство. Вытекает из теорем 1 и 2. □ Следствие 1. Для всех п, не представимых в виде п = = 2(2k + l), существует ортогональная пара латинских квад¬ ратов порядка п. Первыми натуральными числами вида п = 2(2k +1) являются 2 и 6 . Для п = 2 отсутствие ортогональной пары устанавливается уже утвер¬ ждением 2, а для п = 6 отсутствие было установлено путём исчерпываю¬ щего перебора. Существуют ли вообще ортогональные пары такого вида? Эйлер в 1782 году предположил отсутствие ортогональных пар порядка п для всех п = 2(2к +1). Я не колеблясь готов утверждать, что невозможно построить какой-либо полный квадрат из 36 элементов, и эта невозможность распространяется на все случаи п = 10 , п = 14 и вообще для всех нечётно-чётных чисел. Леонард Эйлер (J 782) Этот случай показывает, насколько опасна эмпирическая индукция в ма¬ тематике, а также свидетельствует о том, что ошибаться могут даже великие математики. В 1922 году Макнейшу, установившему теорему 2, казалось, удалось подтвердить и предположение Эйлера, но его доказательство оказа¬ лось ошибочным. Тем не менее, предположение продолжало считаться весь¬ ма правдоподобным. Но вот в 1959-1960 годах группой учёных (Bose R. С., Parker Е. Т., Shrikhande S. S.) было сделано сенсационное открытие. Они показали, что п = 2 и п = 6 являются единственными значениями п, для которых не существует пары ортогональных латинских квадратов порядка п . А для всех остальных п вида п = 2(2к +1), как и любого другого вида, такие пары существуют! Таким образом, предположение Эйлера было опро¬ вергнуто спустя 177 лет после того, как оно было высказано. С доказательст¬ вом этого замечательного результата можно ознакомиться в [19]. В качестве антитезы отметим, что существуют латинские квадраты сколь угодно большого порядка, не имеющие ортогональной пары. Блок-схемы. Эти комбинаторные объекты впервые возникли в биологиче¬ ских и агротехнических экспериментах. Поэтому начнём с истоков. Пусть
поставлена задача сравнения эффективности воздействия v стимуляторов 213 роста на Ь сельскохозяйственных культур. В целях экономии затрат на эксперимент каждый стимулятор предполагается использовать на г < Ъ культурах, а каждую культуру подвергнуть воздействию к < v стимулято¬ ров. С этой целью на имеющихся в распоряжении сельскохозяйственных угодьях выделяется b полей, отдаваемых под каждую из культур. При этом каждое поле разбивается на к участков, на каждом из которых ис¬ пользуется один из стимуляторов. Необходимым и достаточным условием осуществимости данного эксперимента является соотношение bk = vr. (2) План эксперимента можно задать в виде двудольного графа, одна до¬ ля которого соответствует стимуляторам, а другая — культурам, либо в эквивалентной форме представить бинарной матрицей А размера (bxv), в которой строки соответствуют культурам, а столбцы — стимуляторам, так что равенство а,у = 1 означает, что j -й стимулятор используется на i -й культуре. При составлении матрицы А её можно заполнять построчно, ставя в каждой строке к единиц и следя за тем, чтобы ни в одном из столбцов число единиц в процессе заполнения не превысило г. Однако для объективного сравнения между собой качества различных стимуляторов хотелось бы, чтобы каждая их пара встречалась на одной и той же культуре одинаковое число раз. Это число принято обозначать бук¬ вой Я . Для матрицы А это означает, для каждой пары столбцов в образо¬ ванной ими (Ъ х 2) -подматрице ровно Я строк являются единичными. От¬ вечающая матрице А комбинаторная конфигурация называется уравнове¬ шенной неполной блок-схемой. Неполной, поскольку каждый стимулятор проверяется не на всех культурах, и уравновешенной, поскольку произво¬ дится одинаковое число сравнений между каждыми двумя стимуляторами. Появление параметра Я приводит к ещё одному необходимому для осуществления эксперимента математическому условию. Первый стимулятор используется на г полях с к -1 другими стимуляторами на каждом поле. По¬ этому полное число встречающихся на одном поле пар стимуляторов типа {1, /}, I = 2, 3,..., v равно г(к-\). С другой стороны, первый стимулятор встречается в паре с каждым из v -1 других стимуляторов на Я полях. По¬ этому полное число пар также равно Я(у -1). Это приводит к соотношению г(*-1) = Я(у-1). (3) В математической теории блок-схем строки (b х v) -матрицы А рас¬ сматриваются как характеристические векторы к -элементных подмно¬ жеств v-элементного множества. Эти b подмножеств принято называть блоками, а матрицу А — матрицей инцидентности блок-схемы. Соот- 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 214 ношениями (2) и (3) параметры Ь, г однозначно определяются через зна¬ чения v, к, Я , поэтому блок-схему с параметрами Ь,\>,г,к,Я обозначают просто как (v, к, Я) -схему. Условия (2) и (3) необходимы, но не достаточны для существования блок-схемы с параметрами b,v,r,k,X . Задача определения тех значений параметров v, к, Я, для которых блок-схемы существуют, является цен¬ тральной в теории блок-схем. После такого неформального введения дадим точные определения. Уравновешенной неполной блок-схемой с параметрами Ь,у,г,к,Я или просто (у, к,Я) -схемой называется семейст¬ во из b А:-элементных подмножеств v-элементного мно¬ жества, называемых блоками, такое что каждый элемент принадлежит г блокам, а каждая пара элементов появля¬ ется в Я блоках. В качестве простейшего примера рассмотрим широко известную (7, 3,1) -схему, которая нам ещё неоднократно встретится в дальнейшем. Трёхэлементные блоки этой схемы будем называть просто тройками. Вот эти тройки: {1,2,3}, {1,4,5}, (1,6,7}, {2,4,6}, {2,5,7}, {3,4,7}, {3,5,6}. А вот соответствующая матрица инцидентности: О 1 1 0 0 0 0^ 10 0 110 0 1 0 0 0 0 1 1 А= 0 1 0 1 0 1 0 0 10 0 10 1 0 0 1 1 0 0 1 ч0 0 1 0 1 1 0у Число элементов в этой схеме равно числу блоков, и матрица инци¬ дентности оказывается квадратной. Блок-схемы, у которых v = b , называ¬ ются симметричными. Это название связано не симметричностью матри¬ цы инцидентности, которая может и не иметь места, а с тем, что транспо¬ нированная матрица, как будет позже показано, также задаёт (у,к,Я)- схему, которая называется двойственной к исходной. Тройки Штейнера. Любая (у, 3,1) -схема называется системой троек Штейнера порядка v в честь Якоба Штейнера, рассматривавшего подоб¬ ные системы в 1853 году. В системе троек Штейнера каждый блок содер¬ жит 3 элемента, и каждая пара элементов встречается ровно в одном бло¬ ке. Рассматриваемая схема является системой троек Штейнера порядка 7.
215 1 Рис.1 А вот красивое геометрическое представление этой же схемы (рис. 1): Элементы схемы здесь представлены точками, являющимися верши¬ нами, серединами сторон и центром равностороннего треугольника. А бло¬ ки являются сторонами, медианами и вписанной окружностью. К этому геометрическому представлению мы ещё вернёмся при рассмотрении ко¬ нечных проективных плоскостей, а пока заметим лишь, что (7, 3,1) -схема, как можно показать, единственна с точностью до изоморфизма. При этом изоморфными называются схемы, которые могут быть получены друг из друга перестановкой блоков и подстановкой на множестве элементов, т. е. перестановкой строк и столбцов матрицы инцидентности. В качестве ещё одного примера блок-схем укажем (6,3,2)-схему, за¬ даваемую системой из 10 блоков: {1,2,3}, {1,2,4}, {1,3,5}, {1,4,6}, {1,5,6}, {2,3,6}, {2,4,5}, {2,5,6}, {3,4,5}, {3,4,6}. Если в произвольной (v, к, Л) -схеме заменить каждый блок на его дополнение, то получится также некоторая блок-схема, которая называет¬ ся дополнительной к исходной. Так дополнительной к рассмотренной вы¬ ше (6, 3, 2) -схеме является также (6, 3, 2) -схема, состоящая из блоков: {4,5,6}, {3,5,6}, {2,4,6}, {2,3,5}, {2,3,4}, {1,4,5}, {1,3,6}, {1,3,4}, {1,2,6}, {1,2,5}. Дополнительная схема оказалась в данном случае изоморфной исходной, так как (6, 3, 2) -схема вообще единственна с точностью до изоморфизма. "1 2 3 4 5 6N _ ^4 5 6 1 2 3;~ Изоморфизм в данном случае устанавливается подстановкой = (14X25X36). 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 216 Следующее утверждение связывает в общем случае параметры ис¬ ходной и дополнительной схем. Утверждение 4. Блок-схема, дополнительная к (v,k,A)- схеме, является (v, v-k, 6-2г + Л)-схемой. Доказательство. Каждый блок дополнительной схемы содержит v-k элементов, а каждый элемент принадлежит Ь-r блокам. Покажем, что любая пара элементов входит в Ь-2г + А блоков. Число блоков до¬ полнительной схемы, в которые входят элементы хну, равно числу бло¬ ков исходной схемы, в которые не входит ни х, нн у . А это последнее в соответствии с формулой включения и исключения есть b - {число блоков,содержащих х} - {число блоков,содержащих у) + +{числоблоков, содержащих х и y}=b-r-r + A=b-2r + A. □ Приступая к изучению трудной и не до конца разработанной теории блок-схем, рассмотрим сначала условия существования троек Штейнера как наиболее простых и хорошо изученных объектов. Теорема 4. Для существования системы троек Штейнера порядка v необходимо и достаточно, чтобы имело место одно из двух сравнений v = l(mod6) или v = 3(mod6). Доказательство. Ограничимся доказательством необходимости. Соотношения (2) и (3) дают откуда получаем 3b = vr и 2r = v -1, v — 1 г = 2 и й=ф-1) 6 Теперь из условия целочисленности г и b вытекает необходимость выполнения одного из сравнений теоремы. Таким образом, условия (2) и (3), являющиеся необходимыми для существования блок-схемы, оказа¬ лись в данном случае и достаточными. С доказательством достаточности можно ознакомиться в [19]. □ Отказавшись от доказательства достаточности в теореме 4, дадим всё же представление об используемых здесь методах на примере доказатель¬ ства следующего утверждения. I Утверждение 5. Если существуют системы троек Штей¬ нера порядка V| и порядка v2, то существует и система троек Штейнера порядка viv2.
217 Доказательство. Пусть A = {aiti=1,2,...,vj} и B={bj,j =1,2,..., V2} — множества элементов в системах Штейнера порядка vj и v2. В ка¬ честве множества элементов системы Штейнера порядка V]V2 возьмём прямое произведение С = А*В этих множеств: С = {(ahbj), j' = 1,2,...,vj, У = l,2,...,v2}, и образуем тройки, руководствуясь следующим правилом. Множество {(а^,Ь^), (cij2,bj2), из трёх различных элементов образует тройку в том и только в том случае, если выполнено одно из сле¬ дующих трёх условий: 1) j\~ h = h и Ц > % > %} — тройка системы 5,; 2) /[ =i2 =/3 и {bj ,bj ,bj } —тройка системы S2; 3) {e(|, д,-2, а,з} — тройка системы порядка vj и {b^ ,bj2 ,bj}} — тройка системы порядка v2. Непосредственной проверкой легко убедиться, что полученная систе¬ ма троек является штейнеровой. □ Заметим, что, как показали проведённые с помощью компьютера ис¬ следования, система троек Штейнера порядка 9 также единственна с точ¬ ностью до изоморфизма. Но существует 2 различных системы порядка 13 и 80 систем порядка 15. Для порядков, больших 15, число различных сис¬ тем Штейнера неизвестно. Следующим результатом устанавливается связь между тройками Штей¬ нера и совершенным кодом Хэмминга. Утверждение 6. Множество кодовых слов веса 3 совер¬ шенного [2r-1, 2Г-г-1, 3]-кода Хэмминга, рассматривае¬ мых как трёхэлементные блоки, образует систему троек Штейнера порядка 2г-1. Доказательство. Для любого столбца проверочной матрицы Н (г х п), где п = 2Г -1, совершенного кода Хэмминга существует два дру¬ гих столбца, дающих в сумме с заданным нулевой вектор. Один из этих двух столбцов может быть выбран произвольно, а другой при этом опре¬ делён однозначно. Поэтому такую пару можно выбрать («-1)/2 способа¬ ми. Это означает, что каждый элемент входит ровно в (п-1)/2 блоков, об¬ разованных кодовыми словами веса 3. Далее, для каждых двух столбцов матрицы Н существует единствен¬ ный столбец, дающий в сумме с ними нулевой вектор. Поэтому каждая пара элементов встречается ровно в одной тройке. о 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 218 В своей заметке 1853 года, благодаря которой (v,3,1) -схемы получи¬ ли своё название, Я. Штейнер поставил вопрос, является ли необходимое условие v = 1 (mod6) или v = 3(mod6) достаточным для существования (v, 3,1) -схемы. Положительный ответ на него был дан М. Райссом (М. Reiss) в 1859 году. Ни Штейнер, ни Райсс не знали, что эта задача была постав¬ лена и решена в 1847 году Томасом Киркманом (Т. R. Kirkman), опублико¬ вавшим свою работу в Кембриджском и Дублинском математическом журнале (Cambridge and Dublin Mathematical Journal). Однако она получила широкую известность лишь во второй половине двадцатого века. Скром¬ ный сельский священник, занимавшийся комбинаторикой в свободное от основной работы время, Киркман не уделял достаточного внимания про¬ паганде своих научных результатов. Однако в 1850 году в том же журнале Киркман поставил в качестве открытой проблемы родственную задачу, принёсшую и ему заслуженную известность: Пятнадцать юных школьниц выходят на прогулку по трое в ряд в течение семи дней. Требуется ежедневно выстраивать их так, чтобы никакие двое не побывали в одном ряду дважды. Т. П. Киркман (1850) Всего за 7 дней прогулок возникает 5x7 = 35 различных троек. В ка¬ ждой из троек имеется с| = 3 пар. По условию задачи, все они должны быть различными. Поэтому полное число возникающих в тройках различ¬ ных пар есть 35x3 = 105, что как раз равно полному числу всевозмож¬ ных пар С,25 = 105 . Таким образом, каждая пара должна встретиться ров¬ но один раз в одной из троек. Поэтому задача сводится к построению сис¬ темы Штейнера порядка 15 с дополнительным условием, чтобы тройки в ней можно было разбить на 7 групп по 5 троек в каждой так, чтобы каж¬ дый элемент присутствовал в каждой группе ровно один раз. Другими словами, тройки в каждой группе должны представлять собой разбиение множества элементов. Вообще, схема с параметрами b,v,r,k,A называется разрешимой, ес¬ ли множество её блоков может быть разбито на г групп так, чтобы каждая группа блоков была разбиением множества элементов схемы. Условие k | v является, разумеется, необходимым для разрешимости. Поэтому в задаче Киркмана требуется найти разрешимую тройку Штейнера и выполнить требуемое разбиение блоков на группы. Благодаря ставшей знаменитой за¬ даче о школьницах тройки Штейнера с дополнительным условием разре¬ шимости называют теперь тройками Киркмана. Задача о тройках Киркмана оказалась значительно труднее. Даже решение его первоначальной задачи для v = 15 было найдено лишь в XX веке:
219 {1,2,5} {1,3,9} {1,4,15} {1,6,11} {1,8,10} {1,7,14} {1,12,13} {3,14,15} {2,8,15} {2,9,11} {2,7,12} {2,13,14} {2,4,10} {2,3,6} {4,6,12} {4,11,13} {3,10,12} {3,8,13} {3,4,7} {3,5,11} {4,5,8} {7,8,11} {5,12,14} {5,7,13} {4,9,14} {5,6,9} {6,13,15} {7,9,15} {9,10,13} {6,7,10} {6,8,14} {5,10,15} {11,12,15} {8,9,12} {10,11,14}. Достаточность же условия v = 3(mod6) для существования тройки Киркмана в общем случае удалось установить лишь во второй половине XX века [26]. Матрицы инертности. Ряд важных результатов, относящихся к блок- схемам, можно получить с помощью матричной алгебры, рассматривая их матрицы инцидентности. Пусть А — матрица инцидентности (у, к, Л) - схемы. Как непосредственно следует из определения схемы, она удовле¬ творяет следующему основному соотношению: АГА = fr Я ... /О Л г ... Л Л Л ... г = (г-я)1+;иг, (4) где I — единичная матрица порядка v, a J — (vxy) -матрица, целиком состоящая из единиц. С помощью (4) можно вывести важное соотношение между параметрами схемы, принадлежайшее знаменитому английскому статистику Рональду Фишеру (1890-1962) — создателю теории планиро¬ вания эксперимента. I Теорема 5 (Р. А. Фишер, 1940). Для любой (уД,Я)-схе¬ мы с k<v имеет место соотношение b>v. т Доказательство. Вычислим определитель |А А|. Для этого сначала вычтем первую строку из всех остальных строк, а затем к первому столбцу прибавим все остальные столбцы. Имеем г Л л .. . я г Л Л г я .. . я Л-r г — Л л г . я = Л-г 0 л л л . г Я 0 (V- 1 )Л л Я ... Я 0 г —Л 0 ... 0 0 0 г — Я ... 0 0 0 0 ... г-Л Л ... Я 0 ... 0 г-Л ... 0 0 ... г-Л г + (у-1)Л)(г-ЛУ~'=гк(г-ЛУ~\ 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 220 так как согласно (3) r + (y-l)A = r+r(lc-l) = rk . По условию теоремы к < v, т поэтому согласно (3) имеем г > Я . Поэтому (А А |* 0, а значит ранг т (v х у) -матрицы А А равен у. Но ранг матрицы А не превышает числа её строк b, а ранг произведения матриц не может превышать ранга со¬ множителя: v = rang^ A^Aj < rang А < Ь, откуда и следует, что b>v. □ Заметим, что набор параметров (Ь, у, г, к, Я) = (20,25,8,10,3) удовле¬ творяет основным соотношениям (2) и (3), но блок-схемы с такими пара¬ метрами не существует ввиду теоремы 5. В связи с теоремой 5 можно сказать, что симметричные схемы явля¬ ются экстремальным подклассом в классе блок-схем. Они обладают рядом интересных свойств, которые можно вывести из следующей теоремы. Теорема 6. Если А — матрица инцидентности симмет- т т ричной блок-схемы, то АА =А А. Доказательство. Так как AJ = kJ и JA = rJ, а в симметричной схеме к = г, то матрицы А и J коммутируют. Поэтому коммутируют т матрицы А и (г - Л)1 + AJ = А А. Отсюда получаем ААГ = (ААГ)(АА-1) = А(АГА)А-1 = (АГА)(АА_1)= АГА. □ Следствие 2. В симметричной (у,к,Л) -схеме любая пара блоков пересекается по Л элементам. Следствие 3. Если А — матрица инцидентности сим- т метричной блок-схемы, то матрица А также является матрицей инцидентности симметричной блок-схемы с теми же параметрами, которая называется двойственной к исходной. Проективные плоскости. Обратимся теперь к симметричным схе¬ мам специального вида, которые называются конечными проективными плоскостями. Конечной проективной плоскостью порядка п называет- Л ся (п +п + 1, л + 1,1)-схема. Её блоки называются прямыми, а элементы — точками.
Отметим важнейшие свойства этих схем: 221 2 2 1) схема содержит л + л + 1 точек и л + л + 1 прямых, т. е. является симметричной (v = b = n + л +1, как следует из (2) и (3)); 2) каждая прямая содержит л +1 точек, а через каждую точку проходит л +1 прямых; 3) через каждые две различные точки проходит единственная прямая (по определению блок-схемы), а каждые две прямые пересекаются в единственной точке (по следствию 2); 4) между точками и прямыми существует полная симметрия и, если точки принять за прямые, а прямые — за точки с сохранением отно¬ шения инцидентности, то получится также конечная проективная плоскость (по следствию 3). Здесь стоит ещё раз взглянуть на рис. 1, представленная на котором система троек Штейнера порядка 7 одновременно является и конечной проективной плоскостью порядка 2. Чтобы облегчить восприятие излагаемых комбинаторных конструкций, напомним, что проективная плоскость (не конечная) получается пополнени¬ ем обычной евклидовой плоскости идеальными элементами — бесконечно удалёнными точками и бесконечно удалённой прямой. Этим достигается, что любые две прямые пересекаются в единственной точке. Для параллель¬ ных прямых эта точка является бесконечно удалённой. Следующая теорема устанавливает связь между конечными проектив¬ ными плоскостями и полными ортогональными множествами латинских квадратов. Теорема 7. Конечная проективная плоскость порядка л существует в том и только в том случае, если существует полное ортогональное множество из л-1 латинских квадратов порядка л. Доказательство. Пусть задана конечная проективная плоскость п порядка л. Пусть L — некоторая прямая плоскости л-, а ••• > Рп+1 — точки на этой прямой. Остальные л точек, не лежащих на пря¬ мой L , обозначим Q\, Q2, > Qn2. Через каждую точку Ру, j = 1,2,..., л +1 проходят л прямых, не считая прямой L , причём для различных Pj эти множества прямых не пересекаются и каждое из них содержит все точки Q\, Qj, ■■■, Qn2 ■ Для каждой точки Pj занумеруем л проходящих через неё прямых числами от 1 до л произвольным образом. Пусть пря¬ мая QjPj занумерована числом а,у . Покажем, что матрица А = (а,у), j =1,2,..., л2, j-1,2 л + 1 S.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 222 2 является ортогональной [л х (л +1)]-таблицей. Тогда отсюда согласно ут¬ верждению 3 будет следовать существование полного множества латинских квадратов. Для этого достаточно показать, что в произвольных двух различ¬ ных столбцах j и к все упорядоченные пары элементов (а,у, од) различ¬ ны. Допустим противное, пусть а,у = а,-у и од = а?к , где i * /'. Из первого равенства вытекает, что точки Q, Q,>, Pj лежат на одной прямой, а из второ¬ го — что на одной прямой лежат точки Q, Qf, Рк . Но эти прямые совпада¬ ют, так как каждая из них содержит пару точек Qt и Qf. А так как на этой же прямой лежит и пара точек Ру и Рк , то эта прямая обязана совпасть с пря¬ мой L . Но это невозможно, так как точки Q, и Qf не лежат на прямой L . Обратно, пусть задана ортогональная [л х (л +1)] -таблица А . Со- поставим каждой её строке i точку Qt, / = 1,2,..., л («обычные» точки), а каждому столбцу j точку Pj, j = 1,2,..., п + \ («бесконечно удалённые» точки). «Обычная» прямая Lkj проходит через Pj и те точки Qt, для ко¬ торых cijj = к. «Бесконечно удалённая» прямая L проходит через точки 2 2 P\>Pi> ••• > P„+i . Всего задано, таким образом, п + п +1 точек ил + л +1 прямых, причём каждая прямая содержит л +1 точек, а через каждую точ¬ ку проходит л + 1 прямых. Покажем теперь, каждые две прямые пересе¬ каются в единственной точке. Единственной общей точкой двух прямых Lkj и Lkj' при к * к', j * / является та точка Qi, для которой а,у = к и а,у = к'. При j = / прямые пересекаются в точке Pj («параллельные прямые»). Наконец, прямая Lkj пересекается с прямой L в точке Ру . Тем самым, ввиду следствия 3, показано, что полученная система из точек и прямых является (л + л +1, л +1, 1) -схемой. □ В качестве следствия из теорем 1 и 6 получаем Следствие 4. Конечная проективная плоскость порядка л существует для всех л вида л = рт, где р — простое. Как уже указывалось, для л = 6 не существует ортогональной пары латинских квадратов, поэтому не существует и конечной проективной плоскости шестого порядка. В конце XX века с помощью компьютера было установлено и отсутствие проективной плоскости десятого порядка. Никому также не удалось построить проективной плоскости для л, не яв¬ ляющегося степенью простого числа. Это и породило гипотезу, что уело-
223 вие п = рт является не только достаточным, но также и необходимым для существования конечной проективной плоскости порядка п . Вопрос о её справедливости остаётся открытым. Матрицы Адамара. Мы переходим к рассмотрению матриц Адамара, иг¬ рающих одинаково важную роль в линейной алгебре, планировании экс¬ перимента, теории связи и дискретной математике. Квадратная матрица Н„ порядка п, составленная +1 и -1, называется матрицей Адамара, если НХ=«1П, (5) Т где Н' — матрица, транспонированная к Н„, а 1л — единичная матрица порядка п. Другими словами, евклидово скалярное произведение любых двух различных строк матрицы Н„ равно нулю, т. е. строки между собой по¬ парно ортогональны. Скалярный же квадрат каждой строки, состоящей из +1 и -1, разумеется, равен п. Вот примеры матриц Адамара порядков 2,4 и 8: (\ 1 1 г (\ п „ 1 -1 1 -1 д -ij’ Н4 1 1 -1 -1 ь -1 -1 и 1111 1 1 1 п 1-1 1-1 1 -1 1 -1 1 1-1-1 1 1 -1 -1 1-1-1 1 1 -1 -1 1 1111 -1 -1 -1 -1 1-1 1-1 -1 1 -1 1 1 1-1-1 -1 -1 1 1 1-1-1 1 -1 1 1 -и Легко видеть, что умножение любой строки или столбца матрицы Н„ на -1 переводит Н„ в другую матрицу Адамара. Любая перестановка строк или столбцов также оставляет матрицу адамаровой. Две матрицы называ¬ ются эквивалентными, если они могут быть переведены одна в другую указанными операциями. Для каждой матрицы Адамара всегда существует эквивалентная ей матрица, у которой первая строка и первый столбец со¬ стоят целиком из +1. Такая матрица называется нормализованной. Матри¬ цы в приведённых выше примерах были нормализованными. 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры I Утверждение 7. Если Н„ — матрица Адамара, то Н^НЯ = = п\п, что означает, что столбцы матрицы Н„ также по¬ парно ортогональны и при транспонировании матрица остаётся адамаровой. Доказательство. Из соотношения (5) имеем Н~’=(1/л)Н^, и утверждение следует из перестановочности матриц Н„ и Н~'. о Простейший способ построения матриц Адамара основан на исполь¬ зовании операции над матрицами, которая называется прямым или кроне- керовым произведением матриц. Пусть А —матрица размера тхп, В —матрица размера kxl. Прямым или кронекеровым произведением АхВ матриц А и В называется матрица размера mkxnl, оп¬ ределяемая как АхВ = 'Щ\ В «12В ••• «1тВ' а2]В Я22В ••• а2тВ ча/и1В й/и2В ••• flraB; В приведённом выше примере Н4=Н2хН2 , Н8 =Н4хН2 =Н2хН4. Теорема 8. Прямое произведение двух матриц Адамара является матрицей Адамара. Доказательство. Если А и В две матрицы Адамара, то матрица АхВ будет состоять из +1 и -1. Остаётся проверить свойство (5). Пока¬ жем, что две различные строки матрицы АхВ ортогональны. Если они по¬ рождены различными строками матрицы В , то их ортогональность следует из ортогональности строк матрицы В . А если порождающие их строки матрицы В одинаковы, то различны порождающие их строки матрицы А , и ортогональность следует из ортогональности строк матрицы А . □ Теорема 8 позволяет последовательно строить матрицы Н4 =Н2 хН2 , Н8=Н4хН2, Н16=Н8хН2 ит.д. Приведённые выше матрицы Н4 и Н8 и были получены из матрицы Н2 указанным способом. Следствие 5. Для всех п вида п = 2т, где т — натураль¬ ное число, существуют матрицы Адамара порядка п. Степени двойки — не единственные порядки, для которых существуют матрицы Адамара. Но при п > 2 для существования матрицы Адамара по-
рядка п необходимо, как было показано в 1893 году известным французским 225 математиком Жаком Адамаром (1865-1963), чтобы п было кратно четырём. Теорема 9 (Ж. Адамар, 1893.) Если п — порядок мат¬ рицы Адамара и и>2, то и = 0 (mod 4). Доказательство. Нормализованную матрицу Адамара переста¬ новкой столбцов можно привести к форме, когда первые три строки при¬ мут вид: l I... I l I... I l I... I l I... I l I... I l I... I -1-1...-1 -1-1...-1. I I... I -1-1...-1 l 1... 1 -1-1...-1 i J v i J к 1 Имеем i + j + k + l = n. (6) Ортогональность первой и второй строк влечёт равенство i + j-k-l = 0, (7) ортогональность первой и третьей — равенство i-j + k-l = 0, (8) а ортогональность второй и третьей — равенство i-j-k + l = 0. (9) Складывая (7) и (8), получаем / = /. Складывая (8) и (9), получаем i-j. Складывая (7) и (9), получаем / = к. Поэтому i = j = 1 = к, и из (6) выте¬ кает, что п кратно четырём. □ Впервые матрицы, называемые в настоящее время матрицами Адама¬ ра, были рассмотрены известным английским математиком, одним из соз¬ дателей линейной алгебры Джеймсом Сильвестром (1814-1897) в 1867 го¬ ду в работе, имевшей, возможно, одно из самых курьёзных для математи¬ ческих работ названий (J. J. Sylvester. Thoughts on Inverse Ortogonal Matri¬ ces, simultaneous Sign-successions, and Tessellated Pavements in two or more colours, with applications to Newton’s Rule, Ornamental Tile-work, and the Theory of Numbers // The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science. 1867. Vol. 34. Ser. 4. № 232. P. 461-475). В ней он пока¬ зал, что существуют матрицы Адамара всех порядков, являющихся степе¬ нями двойки. Спустя 26 лет после работы Сильвестра к этим матрицам обратился Адамар (Hadamard). Он рассматривал вопрос о максимальном по модулю значении определителя | det А | матрицы А , элементы ац которой удов¬ летворяют неравенству -1 < < 1. Если А = Н„ является матрицей Ада- 5.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 226 мара, то (detH„)2 =detH„-detH^ =det(H„H^) = det(/?I) = л" , так что оп¬ ределитель матрицы Н„ равен ±пп^2. Знаменитое неравенство Адамара утверждает, что я"/2 и есть максимально возможное значение абсолютной величины определителя, которое достигается на матрицах Адамара и только на них. Неравенство Адамара имеет прозрачную геометрическую интерпретацию: объём я -мерного параллелепипеда с заданными длинами образующих максимален, если он прямоугольный. Адамар поставил также вопрос о том, для каких я максимальное значение я”/2 достигается. Из работы Сильвестра он уже знал, что усло¬ вие я = 2т является достаточным, а в качестве необходимого при я > 2 условия Адамар получил я = 0 (mod 4). Далее, Адамар построил матрицы Н|2 и Н20, показав тем самым, что я может и не быть степенью двойки. Сформулировав свой вопрос в качестве открытой проблемы, он не решил¬ ся, однако, предположить, что условие я = 0 (mod 4) является не только необходимым, но и достаточным для существования Н„. Эта гипотеза возникла позже, когда различными методами удалось построить матрицы Адамара для многих значений я , кратных четырём, и ни для одного тако¬ го значения не было показано отсутствие матрицы Адамара. Вопрос о том, является ли условие я = 0 (mod 4) достаточным для существования мат¬ рицы Адамара Н„, является одной из важнейших и интереснейших задач современной дискретной математики. Установим теперь связь между матрицами Адамара и блок-схемами. Утверждение 8. Существование матрицы Адамара по¬ рядка 41 эквивалентно существованию симметричной (4г — 1, 2t-\, /-1) -схемы. Дока зательство. Пусть существует матрица Адамара порядка 41. Приведём её к нормализованному виду. При этом, как видно из доказатель¬ ства теоремы 8, каждая строка, за исключением первой, и каждый столбец, за исключением первого, имеют по 2/ единиц. Кроме того, в каждой паре строк и в каждой паре столбцов, за тем же исключением, единицы появля¬ ются вместе в / позициях. Поэтому, если удалить первую строку и первый столбец и в оставшейся матрице заменить -1 на 0, то возникнет матрица инцидентности симметричной (41 — 1, 2т — 1, / — 1) -схемы. Обратно, если существует (41-1, 2t-\,t-\)-схема, которая обязана в силу (2) и (3) быть симметричной, то, взяв её матрицу инцидентности, за¬ менив в ней 0 на -1 и добавив единичную строку и столбец, получим нормализованную матрицу Адамара порядка 4/. □
Ввиду утверждения 8 (4; — 1, 2/ — 1, / — 1) -схема называется адамаровой 227 схемой. Заметим, что (7, 3, 1) -схема, представленная на рис. 1 и являющаяся одновременно системой троек Штейнера и конечной проективной плоско¬ стью, является также адамаровой схемой. Эта схема является единствен¬ ным случаем подобного рода единства в трёх лицах. Разностные множества. Введём теперь понятие разностного множе¬ ства, позволяющее во многих случаях строить симметричные блок-схемы. &-элементное подмножество D = {d\, dj,..., dk) множества элементов конечного поля GF(/?m) называется (рт,к,Я) -раз¬ ностным множеством, если для каждого ненулевого эле¬ мента aeGF(/?m) существует в точности Я упорядоченных пар (dj,dj) таких, что a = di-dj . Для каждого /3eGF(pm) множество {c/j +/?, d2 +Р,..., d^ +/?} (также (рт,к,Л) -разност¬ ное множество) называется Д-сдвигом множества D. Связь между разностными множествами и блок-схемами даётся сле¬ дующим утверждением. Утверждение 9. Если D = {d{,d2,...,dk} — (рт,к,Л) -разно¬ стное множество конечного поля GF(/?m), то все рт его сдвигов, взятых в качестве блоков на множестве элементов конечного поля, образуют симметричную (рт,к,Я)-схему. Доказательство. Каждый блок содержит к элементов, и каждый элемент принадлежит к блокам. Пусть х,у е GF(pm). Тогда существует ровно Я упорядоченных пар (dj, dj) таких, что dj-dj = х-у , и для каж¬ дой такой пары существует единственный Д -сдвиг такой, что х=Д- + Д и y=dj+p. Поэтому каждая пара элементов х, у появляется в Я блоках. □ Многие симметричные блок-схемы могут быть реализованы как сдвиги разностных множеств. В частности, можно показать, что все про¬ ективные плоскости порядка рт могут быть реализованы подобным об¬ разом. Для простого поля GF(/?) строки и столбцы матрицы инцидент¬ ности удобно нумеровать элементами поля 0,1,2,..., р -1. Тогда строка /6 {0,1,2,..., р-\} матрицы инцидентности получается /-сдвигом раз¬ ностного множества. (Подобные матрицы называются циркулянтами). 5.9. Латинские квадраты, блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 228 Так, в качестве матрицы инцидентности уже неоднократно упоминавшей¬ ся (7, 3,1) -схемы может быть взят циркулянт А = '\ 1 0 1 0 0 0' 0 110 10 0 0 0 110 10 0 0 0 1 10 1 1 0 0 0 1 10 0 1 0 0 0 1 1 ,1 0 1 0 0 0 1, образованный циклическим сдвигом разностного множества {0,1,3}. Разностные множества играют важную роль при построении адама- ровых схем, а, следовательно, и матриц Адамара. Важный способ по¬ строения разностных множеств основан на следующем утверждении. Утверждение 10. Пусть pm=3(mod4). Тогда (рт -1)/2 квадратичных вычетов в поле GF^"1) образуют (рт -\)/2,(рт -3)/4)-р азностное множество. Доказательство. Согласно утверждению 7.3 элемент -I являет¬ ся квадратичным невычетом. Поэтому для любых двух различных вычетов 2 2 „ 2 2 2 2 х и у ровно одно из выражении х -у или у —х является, как следу- 2 2 2 ет из утверждения 7.3, квадратичным вычетом. Пусть х - у = z — квад¬ ратичный вычет. Тогда единицу можно представить в виде разности квадра- тичных вычетов как 1 = (z х) -{г у) . Домножая это равенство на про- „ 2 извольныи квадратичный вычет и , получаем его представление в виде 2 —12 —1 2 разности квадратичных вычетов и = {uz х) - (uz у) . Поэтому для всех квадратичных вычетов число их представлений в виде разности квадратич¬ ных вычетов одинаково, так как совпадает с числом представлений единицы. Умножением на -1 устанавливается взаимно однозначное соответст¬ вие между квадратичными вычетами и невычетами, а также между их представлениями: -и2 = (uz~lу)2 - (uz~lх)2. Поэтому все ненулевые эле¬ менты поля имеют одинаковое число представлений в виде разности квад¬ ратичных вычетов, и квадратичные вычеты образуют, таким образом, раз¬ ностное множество. Параметр Я разностного множества находится как Мр--.>/2/('’"-1) = ('’"-3)/4' □
В качестве следствия из утверждений 8, 9 и 10 получаем 229 Следствие 6. Если р — простое и рт =Ъ (mod4), то су¬ ществует матрица Адамара Н„ порядка п-рт +1. В качестве примера построим матрицу Н]2. Кратное четырём число 12 не является степенью двойки, и метод Сильвестра здесь не применим. Одна¬ ко, 12 = 111 +1, и матрица Адамара может быть построена с помощью квад¬ ратичных вычетов поля GF(11). Имеем I2 = 1, 22 = 4, З2 = 9, 42 = 5, 52 = 3, поэтому {1, 3, 4, 5, 9} — множество квадратичных вычетов в GF(11). Циклические сдвиги этого множества порождают циркулянт 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 0 Заменяя 0 на -1 и добавляя единичную строку и единичный столбец, по¬ лучаем матрицу Адамара Н,2 - 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 1 -1 -1 S.9. Латинские квадраты. Блок-схемы. Матрицы Адамара
Глава 5. Коды, блок-схемы, шифры 230 С помощью следствий 5 и 6 получаем следующую теорему. Теорема 10. Матрицы Н„ существуют для всех п вида п = 2к (рт +1), где р — простое и рт +1 кратно четырём. Способ, которым была построена матрица #)2, был в 1933 году опуб¬ ликован английским математиком Раймондом Пейли (R. Е. А. С. Paley). Этот приём в сочетании с методом Сильвестра позволяет строить матрицы Адамара для всех п , кратных четырём, вплоть до п = 32 . Работа Пейли послужила толчком к созданию других многочисленных алгебраических приёмов построения матриц Адамара. С достаточно полным обзором этих методов, предложенных до 1967 года, можно ознакомиться в [19]. С тех пор минимальный кратный четырём порядок, для которого мат¬ рица Адамара ещё не построена, непрерывно растёт. На 2006 год этот ми¬ нимальный порядок был равен п - 668. Подобные результаты свидетель¬ ствуют в пользу гипотезы, что матрицы Адамара существуют для всех п , кратных четырём. Но доказать это пока не удаётся. Что же касается числа классов эквивалентности матриц Адамара, то известно, что для порядков п = 2,4, 8,12,16, 20, 24, 28 числа классов эквивалентности равны соот¬ ветственно 1,1,1,1, 5, 3, 60, 487 . Вопросы для самопроверки 1. Какова максимально возможная мощность множества попарно орто¬ гональных латинских квадратов порядка п ? а) п ; б) п -1; в) п - 2 . 2. Сколько блоков имеет (9,3,1)-схема? а) 10; 6)11; в) 12. 3. Существует ли матрица Адамара порядка п = 1024? а) существует; б) не существует; в) неизвестно. Ответы: 1 — б, 2 — в, 3 — а. 5.10. Коды Адамара. Совершенный код Голея Коды Адамара. Матрицы Адамара позволяют строить коды, которые назы¬ ваются кодами Адамара. Пусть дана нормализованная матрица Адамара Н„. Заменив в матрице Н„ все -1 на 0, получим матрицу А„. Любые две строки матрицы А„ совпадают в л/2 позициях и различаются также в п/ 2 позициях. Расстояние Хэмминга между ними равно л/2.
231 Матрица А„ позволяет построить следующие три кода Адамара: 1) удалив в матрице А„ первый столбец и рассматривая строки полу¬ чившейся матрицы как кодовые слова, имеем (п -1, п, п/2) -код, кото¬ рый будем обозначать CL ; **п 2) добавив к множеству слов кода cL их дополнения, получим (и -1, 2п, **п п/2-1) -код, который будем обозначать cj, ; ** Я 3) взяв в качестве кодовых слов строки матрицы А„ и их дополнения, получим (л, 2 п, п/2) -код, который обозначим с\ . ** п В качестве примера возьмём матрицу Л 1 1 1 -1 1 н4 = 4 1 1 -1 -1 -1 Тогда три кода Адамара примут вид: С' ={(111),(010),(100),(001)}, сI = {(111), (010), (100), (001), (000), (101), (011), (110)}, 4 С* = {(1111), (1010), (1100), (1001), (0000), (0101), (0011), (0110)}. **4 Каждый из них являются максимальным в том смысле, что среди ко¬ дов такой же длины и с тем же кодовым расстоянием не существует кодов большей мощности. Докажем это, получив по ходу ряд важных соотноше¬ ний между длиной кода, кодовым расстоянием и его мощностью. Определим пересечение векторов х=(дг(,..., лг2) и у=(_у],..., уп) над полем GF(2) как вектор х *у = {х\у\,..., хпуп), имеющий единицы в тех позициях, в которых их имеют оба вектора. Например, (11001) *(10111) = = (10001). Тогда, как нетрудно видеть, для веса суммы двух векторов, яв¬ ляющегося расстоянием Хэмминга между ними, справедливо следующее очевидное соотношение. </(х,у)=|х + у|=|х| + |у|-2|х*у|. (1) Будем далее обозначать через M(n,d) максимально возможную мощность кода длины п с кодовым расстоянием d . Утверждение 1. Имеет место соотношение М{п, 2г-\) = М(п + \, 2г). Г -I -I К (2) 5.10. Коды Адамара. Совершенный код Голея
Глава 5. Коды, блок-схемы, шифры 232 Доказательство. Для произвольного (я,М,2г-1)-кода увеличим его длину на единицу, добавив 0 в конце каждого слова чётного веса и 1 — в конце каждого слова нечётного веса. Теперь, когда все кодовые сло¬ ва имеют чётный вес, кодовое расстояние, в силу (1), также станет чётным и, стало быть, равным 2г . Тем самым получен (п +1, М, 2г) -код и, сле¬ довательно, показано, что М(п +1, 2г) > М(п, 2г -1). Обратно, удаление одной из координат в (я + 1, М, 2г) -коде приводит к (я, М, d) -коду, где d>2r-\, так что М(я, 2г -1) > М(п +1, 2г). □ I Утверждение 2. Справедливо соотношение М(п, d) < 2М{п -\,d). (3) До казательство. В (n,M,d)-коде разобьём кодовые слова на два класса, отнеся в один класс слова, начинающиеся с нуля, а в другой — начинающиеся с единицы. По крайней мере, один из классов содержит не менее половины кодовых слов. Взяв этот класс в качестве кода и удалив первую координату, получим (я — 1, ]М/2[, d) -код, что и доказывает ут¬ верждение. □ I Теорема 1 (граница Плоткина). Если 2d >п, то M(n,d)<2[d/(2d-n)]. (4) Доказательство. Для (я,M,d)-кода оценим сумму S = ^d(\,у) расстояний по всем М(М -1) упорядоченным парам кодовых слов двумя способами. Во-первых, S > М(М -\)d , так как расстояние Хэмминга ме¬ жду кодовыми словами не меньше d . С другой стороны, пусть А будет (М х я) -матрицей, строками которой являются кодовые слова. Предполо¬ жим, что i -й столбец матрицы А содержит mi единиц и М -mi нулей. Тогда вклад этого столбца в S равен 2 (М - nij), и поэтому S = 2'Yjni=\mi{M-mi). Если М — чётное, то максимум этого выражения достигается, если nij = М/2 для всех i, и поэтому S < яЛ/2/2 . Это даёт М(М -\)d < яМ2/2 , откуда М < 2d/(2d-ri). Но так как М — чётное, то М < 2[d/(2d-n)].
233 Если М — нечётное, то S < п(М -1 ){М +1)/2, что даёт M(M-\)d<n(M-\)(M + \)/2 и М < n/(2d -п) = 2d/(2d - п) -1 < [2d/(2d - «)] -1 < 2[d/(2d - «)], так как [2а] -1 < 2[а] для любого а е R . □ Теорема 2 (уточнение границы Плоткина): а) если d — чётное и n<2d,io M(n,d) < 2[d/(2d - л)]; б) если d — чётное и n = 2d,io M(2d,d)<4d; в) если d — нечётное и n<2d + l, то М(п, d) < 2[(d +1)/(2d - п +1)]; г) если d — нечётное и n=-2d + \,io M(2d + l,d) < 4d + 4 . Доказательство. Случай а) есть (4). В случае б) для d = 2к , используя (3) и (4), получаем M(2d, d) = М(4к, 2к) < 2М(4к -1,2к) < Ы . В случае в), используя (2) и (4), получаем М(п, d) = M(n + \,d + \)< 2[(d +1)/(2d-п +1)]. В случае г), используя (2) и б), получаем M(2d + \,d) = M(2d + 2,d + X)<4d + 4. □ В качестве следствия из теоремы 2 получаем 1 л 1 Следствие 1. Коды Адамар а СЯл, СЯл, Сн являются максимальными по мощности кодами. Совершенный код Голея. Мы переходим к рассмотрению линейного совер¬ шенного [23,12,7] -кода, который называется двоичным совершенным кодом Голея. Будем обозначать его G23. Он был открыт Голеем (М. J. Е. Golay (1902-1989)) в 1949 году. Спустя четверть века было установлено, что это единственный нетривиальный совершенный двоичный код с кодовым рас¬ стоянием, большим трёх. Код Голея — не только теоретически интересная конструкция, но и практически ценное средство помехоустойчивого коди¬ рования. Интересно отметить, что Голеем в 1949 году фактически были найдены все совершенные коды. Рассмотренные ранее совершенные коды Хэмминга были также независимо получены Голеем. Голеем был также открыт не рассматриваемый здесь троичный совершенный код. 5.10. Коды Адамара. Совершенный код Голея
Глава 5. Коды, блок-схемы, шифры 234 Марсель Голей, швейцарец по происхождению, после окончания в 1924 году Швейцарского федерального технического института в Цюрихе по специальности «электротехника» переехал в США, где сначала поступил на работу в Bell Laboratories, а затем в течение почти четверти века был свя¬ зан с военным ведомством США. Выйдя в отставку, он вернулся на родину, где, несмотря на уже солидный возраст, успешно продолжил научные ис¬ следования. Голей представлял собой чрезвычайно редкий в настоящее вре¬ мя тип универсального учёного, физика, химика и математика в одном лице. Потрясающая интуиция позволила ему помимо открытия всех имеющихся в природе совершенных кодов добиться ряда выдающихся достижений в ра¬ диосвязи, фильтрации сигналов, спектроскопии и хроматографии. При построении кода Голея с23 будет удобно построить сначала [24,12,8]-код, который называется расширенным кодом Голея G24 и из которого выкалыванием одной координаты (любой!) получается код G23. Для построения G24 возьмём матрицу Адамара Н12, приведённую в кон¬ це предыдущего раздела, удалим из неё первую строку и первый столбец и в оставшейся матрице одиннадцатого порядка заменим -1 на 1, а 1 — на О . В результате получим матрицу инцидентности (11,6,3)-схемы, допол¬ нительной к (11,5,2) -схеме Адамара. С помощью этой матрицы, которую обозначим Ац, построим порождающую (12x24)-матрицу G для кода G24 по следующей схеме 1.1 I.. 0.1 Ап 0 Оп 1 if. где 1ц —единичная матрица одиннадцатого порядка, 1ц —столбец из т т единиц высоты 11, Оц —столбец из нулей высоты 11, а 1ц и Оц —стро¬ ки длины 11 соответственно из единиц и нулей. В развёрнутом виде мат¬ рица G имеет вид '1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
Покажем, во-первых, что строки матрицы линейно независимы над 235 GF(2). Одиннадцать первых строк матрицы G линейно независимы в си¬ лу того, что G содержит матрицу 1( ], а двенадцатая строка, как легко ви¬ деть, линейно независима от первых одиннадцати. Поэтому матрица G действительно порождает код объёмом 2 = 4096 кодовых слов. Доказательство того, что порождаемый матрицей G код G24 имеет кодовое расстояние, равное 8, может состоять в прямом построении этого кода и проверке того, что вес каждого из 4095 его ненулевых слов не меньше 8. Вручную это, хотя и осуществимо, но достаточно утомительно. Такую проверку можно поручить компьютеру. В любом случае, однако, подобное доказательство оставит чувство некоторой неудовлетворённо¬ сти, так как не выявляет причин столь значительного кодового расстояния. Цепочка следующих не слишком утомительных рассуждений показывает, что кодовое расстояние действительно равно 8. Покажем, прежде всего, что все кодовые слова имеют вес, кратный четырём. Вес каждой строки матрицы G кратен четырём. Кроме того, каждая строка ортогональна каждой строке, включая и саму себя. Отно¬ шение ортогональности сохраняется для линейных комбинаций, поэтому каждое кодовое слово ортогонально ко всем кодовым словам. Но если два слова х и у ортогональны, то | х * у | — чётное число. Если при этом их веса кратны четырём, то, в силу (1), вес их суммы | х -г у | также кратен че¬ тырём. Поэтому кратность веса четырём также сохраняется для линейных комбинаций, и все кодовые слова имеют вес, кратный четырём. Теперь осталось лишь показать, что в коде G24 нет слов веса 4. Для кодового слова х через | xL | будем обозначать вес его левой половины, состоящей из 12 первых разрядов кодового слова, а через |хЛ | — пра¬ вой, состоящей из 12 последних разрядов. Для любого кодового слова | xL \ является чётным числом. Поэтому достаточно показать, что ни для ка¬ кого кодового слова х невозможен ни один из следующих трёх случаев: 1) (К И** |) = (0,4), 2) (|х£ |,|хЛ |) = (2,2) иЗ) (I xL |,|хЛ |) = (4,0). 1) Если | х^ |= 0, то либо х = 0, либо х — последняя строка матрицы G . Но в первом случае | хЛ |= 0, а во втором | хЛ |= 12 . 2) Если | х^ |=2, то х — либо одна из первых одиннадцати строк матри¬ цы G , либо сумма двух таких строк с возможным добавлением в каж¬ дом из случаев последней строки. Но во всех этих случаях | хд | = 6 . 3) Если (|х^ |, |хЛ |) = (4,0), то кодовое слово х должно быть суммой трёх или четырёх строк из первых одиннадцати строк матрицы G . Если х — сумма трёх строк, то пусть у — любая строка из первых одинна¬ 5.10. Коды Адамара. Совершенный код Голея
Глава 5. Коды, блок-схемы, шифры 236 дцати, отличная от этих трёх. Тогда | х^ +у^ |= 4, а |хЛ+ул|=6, так как | хд |= 0. Но в этом случае было бы | х + у |= 10 , что невозможно, так как по доказанному ранее вес должен быть кратен четырём. Если же х — сумма четырёх строк, то пусть z — одна из этих четырёх строк. Тогда x + z есть сумма трёх строк и I X/, +zL |= 4 , а | хЛ +zR |= 6, так как | хЛ |= 0. Поэтому снова | х + z |= 10. Так как веса всех кодовых слов кратны четырём, а слов веса 4 в ко¬ де С?24 нет, то минимальный вес ненулевого кодового слова равен 8 и кодовое расстояние также равно 8. Выкалывание любой из координат ко¬ да G24 не может уменьшить кодовое расстояние больше, чем на единицу и поэтому приводит к коду с кодовым расстоянием 7. То, что получен¬ ный код G23 является совершенным, может быть сразу установлено из мощностных соображений. Шар Хэмминга радиуса 3 содержит 1 + С\ 3 + 9 1 11 91 11 19 +С23 + С2з = 2 двоичных наборов 2 =2 -2 . Поэтому шары с цен¬ трами в кодовых словах, не пересекаясь, покрывают всё множество двоичных наборов. Вопросы для самопроверки 19 1 1. Для каких значений п существуют коды Адамара С,. , СИ и Сн а) для всех натуральных значений п ; б) для значений п , кратных четырём; в) для тех значений п , для которых существуют матрицы Адамара. 2. Сколько ошибок исправляет совершенный код Голея? а) 2; 6)3; в) 4. Ответы: 1 — в, 2 — б. 5.11. О плотности упаковки шаров Хэмминга Рассмотрим теперь вопрос о том, какое максимальное число М{п, (I) кодовых слов возможно для кода длины п с кодовым расстоянием d. Этот вопрос уже затрагивался в предыдущем разделе в связи с границей Плоткина. Теперь его рассмотрение будет более систематическим и осно¬ вательным. Помимо важности этого вопроса для кодирования, наработан¬ ная здесь многочисленными исследованиями техника представляет цен¬ ность и для дискретной математики в целом. В дальнейшем (n,M,d)-код, в котором М =М(п, d), будем называть максимальным (n,M,d) -кодом.
Даваемая теоремой 1 верхняя оценка носит название верхней грани- 237 цы Хэмминга или границы сферической упаковки. Как и прежде, %{п,г) обозначает мощность шара Хэмминга радиуса г. Теорема 1 (Верхняя граница Хэмминга). Для M{n,d), где d = 2t + \, справедлива следующая верхняя оценка M(n,d) < 2п X(n,t) (О Доказательство. Шары радиуса t с центрами в кодовых словах не пересекаются, поэтому M(n,d) %(n,t) < 2п . □ Знак равенства в (1) достигается на совершенных кодах и только на них. В случае n<2d уточнением оценки (1) является граница Плоткина M(n,d) < 2[dj{2d-и)], достигаемая на кодах Адамара. Оценим теперь максимальную мощность кода снизу. Следующая нижняя оценка носит название нижней границы Гилберта. Теорема 2. Для M(n,d), где d = 2t + l, справедлива сле¬ дующая нижняя оценка M(n,d) > 2" X(n,2t) (2) До казательство. Доказательство состоит в конструктивном по¬ строении кода требуемой мощности. Выбираем произвольную точку из {0,1}” и делаем её кодовым словом. Затем строим вокруг выбранной точки шар радиуса 2t и в качестве следующего кодового слова выбираем произ¬ вольную точку вне этого шара. Она будет находиться на расстоянии не меньшем 21 + 1 от первой. Вторую точку также окружаем шаром радиуса 21 и в качестве третьего кодового слова выбираем произвольную точку вне пер¬ вых двух шаров. Так как после выбора к кодовых слов покрываемое шарами множество содержит не более к ■ ^(л,2/) наборов, то данный процесс гаран¬ тирует возможность получения не менее 2п /х(п, 21) кодовых слов. □ Современные системы помехоустойчивого кодирования используют коды, длины которых составляют десятки битов. При этом величина ис¬ пользуемого отношения p = d/n , характеризующего помехоустойчивость кода, определяется вероятностью ошибки в канале р. Требование, чтобы кодовое расстояние росло пропорционально длине кода, является естест¬ венным, так как среднее число ошибок в кодовом слове равно рп . Интерес, 5.11.0 плотности упаковки шаров Хэмминга
Главе 5. Коды, блок-схемы, шифры 238 поэтому представляет оценка асимптотического значения максимально возможной скорости передачи R = log2 M(n,d)/n при п—>оо и d = pn, где р — константа. Асимптотические границы для R удобно выражаются через p = d/n. Согласно (1.7.24) log2 Z(n, рп) ~ пН2 (/>), п -» оо . Поэтому из (1) и (2) получаем следующие асимптотические границы для скорости передачи \-H2(p)<R(p)<l-H2(p/2), п-+ со. Граница же Плоткина означает, что при р > 1/2 скорость передачи становится асимптотически равной нулю. Эти асимптотические границы представлены на рис. 1, где задаваемая ограничениями область выделена. Как видно из рисунка, существует зна¬ чительный разрыв между верхней границей Хэмминга и нижней границей Гилберта. Возникает естественный вопрос, какая из двух границ ближе к действительному значению максимально возможной скорости передачи? Этому вопросу и будет посвящена оставшаяся часть данного раздела. Рис.1 Обозначим через M(n,d,w) максимальное число наборов веса w, на¬ ходящихся друг от друга на расстоянии не меньшем d (мощность макси¬ мального равновесного кода длины п и веса w с кодовым расстоянием d ). Напомним, что расстояние Хэмминга между двумя наборами одинакового веса является, как следует из (10.1), чётным числом. Следующий вспомо¬ гательный результат представляет самостоятельный интерес.
239 Лемма 1. Величины М(п,28) и M(n,28,w) для любого w связаны соотношением М(п,28) ^ M(n,28,w) ■)П г W ' ' ’ Доказательство. Для максимального (л,М,28) -кода рассмотрим двудольный граф, одну долю V которого составляет множество всех 2” двоичных набора длины п , а другую долю U — множество кодовых слов. Ребро между вершинами v е V и u е U проводится в том и только в том случае, если расстояние Хэмминга d(v,u) = w. Подсчитаем число рёбер в этом графе двумя способами — со стороны доли V и со стороны доли U . Для каждого кодового слова и имеется С™ наборов, находящихся на рас¬ стоянии w от него, поэтому число рёбер равно С„ -М(п,28). С другой стороны, множество кодовых слов, находящихся на расстоянии w от v, сложением с вектором v преобразуется в равновесный код в слое w, мощность которого не превышает М(п, 25, w). Это даёт 2" -M(n,28,w)>C^ -М(п,25). □ Оценим теперь сверху величину M(n,28,w). Теорема 3 (S. М. Johnson, 1962). Справедливо неравен¬ ство M(n,25,w) < 8п _wl -wn + 8п. при условии что w2-wn + 5n> 0. (4) Доказательство. Для максимального равновесного (п,М,28)-ж>т веса w рассмотрим (М х п) -матрицу А = (а,у), строки которой являются кодовыми словами. Подсчитаем двумя способами сумму евклидовых ска¬ лярных произведений всех упорядоченных пар различных строк: М п S = Yj Yaikajk ■ i,j=l k=\ i*j Так как расстояние между любыми двумя строками не меньше 28, то, как следует из 10.1, их скалярное произведение не превышает w-8. Отсюда получаем, что S<M(M-\)(w-8). 5.11. О плотности упаковки шаров Хэмминга
Глава 5. Коды, блок-схемы, шифры 240 С другой стороны, п М S = ^ 23 aikajk > k=] i,j=1 i*j и если lk — число единиц в Ьм столбце матрицы А , то вклад этого столбца в сумму равен lk (!k -1). Следовательно, j^lk(lk-l)<M(M-\)(w-5). k=1 Но lk = Mw, так как каждая строка содержит w единиц, а сум¬ ма принимает минимальное значение, равное M2w2 /п , если все lk одинаковы и равны Mw/п . Следовательно, M2w2 Mw<M(M-l)(w-8). п Решая это неравенство относительно М , получаем (4). □ Теорема 4 (Верхняя граница Элайеса). Для скорости всех кодов длины п с кодовым расстоянием d = pn при л-»оо справедливо асимптотическое неравенство Л<1-Я2(1-1ТГ^). (5) До казател ьство. Согласно (10.2) М{п-\, 28-\) = М{п, 25), а в силу (3) для любого w Положим 2" М(п,28)< M(n,2S,w). w = vv0 п_п 2 2 п (6) Тогда из (4) получаем M(n,2S,w0) < Теперь (6) даёт 5п Щ -WQii + Sn 2 п8 <8.
241 Отсюда, используя (1.7.22), получаем R= ^og2M(n, рп)<\-Н2[\-^-2р)- D Уточнённая с помощью границы Элайеса область возможных значе¬ ний максимальной скорости передачи показана на рис. 2. Рис. 2 Как видно из рисунка, максимальная скорость оказывается асимптоти¬ чески весьма близкой к границе Гилберта. Более точные (и сложные) асим¬ птотические оценки отодвигают скорость ещё ближе к этой границе. Кроме того, ни одно построенное до сих пор семейство двоичных кодов не дало скорости передачи, асимптотически лучшей границы Гилберта. Так что нельзя исключать возможность того, что граница Гилберта является точной асимптотикой для максимальной скорости передачи двоичного кода. Асимптотическая недостижимость верхней границы Хэмминга сви¬ детельствует об отсутствии совершенных и квазисовершенных кодов с большими кодовыми расстояниями. Сам же результат об асимптотической недостижимости границы Хэмминга в свете теоремы Шеннона может по¬ казаться в определённой степени неожиданным. Ведь согласно теореме Шеннона при вероятности ошибки в канале р можно передавать со ско¬ ростью R = (1-Я2(р))(1-о(1)), одновременно устремляя к нулю вероят¬ ность ошибки кода. Число ошибок в кодовом слове с вероятностью, стре¬ мящейся к единице, лежит в интервале п(р±о(1)), и для типичного кодо¬ вого слова доля вершин сферы Хэмминга вокруг него радиуса г = рп, для которых это слово не является ближайшим кодовым словом, должна стре- 5.11.0 плотности упаковки шаров Хэмминга
Глава 5. Коды, блок-схемы, шифры 242 миться к нулю. Казалось бы, взяв чуть меньший радиус г' = г(1-о(1)), можно добиться того, чтобы таких вершин в типичном случае не было вовсе, и шары Хэмминга радиуса г' с центрами в кодовых словах не пересекались. Это привело бы к коду с кодовым расстоянием d ~ 2рп. Но скорость пере¬ дачи такого кода для p = d/n = 2p была бы R(p) = (1-Я2(р/2))(1-о(1)), т. е. лежала бы на границе Хэмминга, что по доказанному выше невозмож¬ но. Значит в кодах, удовлетворяющих теореме Шеннона, шары радиуса крп с центрами в кодовых словах при коэффициенте к, достаточно близ¬ ком к единице, обязаны иметь небольшие пересечения. Так что статистиче¬ ская и алгебраическая постановки задачи кодирования — это две различ¬ ные постановки! Вопросы для самопроверки 1. Является ли верхняя граница Хэмминга асимптотически точной при п —»оо ? а) да; б) нет; в) неизвестно. 2. Является ли нижняя граница Гилберта асимптотически точной при П —► GO ? а) да; б) нет; в) неизвестно Ответ: 1 — б, 2 — в. 5.12. Математические принципы современной криптографии Из истории криптографии. Во все времена эксклюзивное владение ин¬ формацией и контролируемое её распространение давали важные пре¬ имущества, а утечка информации могла стать причиной серьёзных непри¬ ятностей. Криптография (тайнопись) — это наука о методах преобразова¬ ния информации с целью защиты её от несанкционированного доступа. Название возникло в средние века и образовано с помощью греческих слов «криптос» — секрет и «графа» — писать. Сам же метод преобразо¬ вания называется шифрованием от арабского «сафар» — нумеровать. С древнейших времён криптографией пользовались дипломаты, воен¬ ные, разведчики и ... влюблённые (Камасутра относит тайнопись к одному из искусств, которым должна владеть девушка). Что же касается древней¬ ших дошедших до нас способов шифрования, то, как сообщает Светоний в «Жизни двенадцати цезарей», Юлий Цезарь, когда хотел сохранить содер¬ жание письма в тайне, зашифровывал его с помощью циклического сдвига каждой буквы текста на 3 алфавитные позиции. В русском варианте вместо «а» следовало бы писать «г», вместо «б» — «д» и т. д., а вместо «я» — «в». Ещё раньше в V веке до нашей эры в греческой Спарте эфоры, отправ¬ ляя полководца с войском в поход, вручали ему цилиндрическую палочку —
сциталу, а точную копию такой же палочки хранили у себя. Для отправле- 243 ния полководцу письменного приказа ремень наматывался плотно приле¬ гающими друг к другу витками по длине сциталы, и на этом ремне вдоль сциталы писался текст. Затем ремень снимался со сциталы, и подпоясанный им гонец отправлялся в путь. При этом буквы оказывались разбросанными в беспорядке, и для прочтения послания ремень было необходимо намотать на цилиндрическую палочку такого же диаметра. Можно сказать, что сцита- ла была первым известным в истории шифровальным устройством. С математической точки зрения шифрование можно рассматривать как отображение открытого текста М в шифртекст или криптограмму С. Это отображение выбирается из некоторого заданного множества отобра¬ жений. Причём само это множество, как правило, не является секретом. Секретным является выбор конкретного отображения из этого множества. Множество используемых для шифрования отображений традицион¬ но рассматривается как некоторое параметрическое семейство, элементы которого задаются с помощью свободно выбираемого параметра, который называется ключом (К). Определяемое ключом К шифрующее отобра¬ жение Ef' преобразует открытый текст М в шифртекст С: ЕК(М) = С. Для однозначной расшифровки используемые отображения должны быть инъективными. При этом исходный текст восстанавливается по крип¬ тограмме с помощью обратного отображения DK = Е~^ : DK(C) = M. Ключ — это сменный элемент шифра. Секретность поддерживается .периодическим изменением ключа. В шифре Цезаря ключом является ве¬ личина сдвига 3, так как фактически сдвиг может быть любым числом от 1 до N-1, где N —длина используемого алфавита. Такой шифр, однако, не является надёжным из-за малого числа потенциально возможных клю¬ чей, что позволяет произвести расшифровку полным перебором всех воз¬ можных сдвигов до появления из криптограммы осмысленного текста. При шифровании с помощью сциталы можно считать, что ключом яв¬ ляется диаметр используемой сциталы. Разумеется, этот шифр также не яв¬ ляется стойким. С древности известен способ установления диаметра ис¬ пользуемой сциталы. Ремень с текстом наматывается на конус и ловится момент, когда из букв складывается осмысленная часть текста. Диаметр ок¬ ружности конуса в этом месте и есть диаметр используемой сциталы. Восстановление исходного текста по криптограмме без предваритель¬ ного знания ключа называется вскрытием или взломом шифра, а метод достижения этого — криптоанализом. Теоретическую криптографию в це¬ лом, называют также криптологией. Отметим ещё, что скрытие самого факта сообщения, например, использование симпатических чернил, назы¬ вается стеганографией. 5.12. Математические принципы современной криптографии
Глава S. Коды, блок-схемы, шифры 244 Достаточно большая мощность множества возможных ключей являет¬ ся необходимым условием секретности, так как в противном случае ис¬ пользуемый ключ может быть найден путём перебора по всему этому мно¬ жеству до появления из криптограммы осмысленного текста. Разумеется, с появлением компьютеров требования к мощности множества ключей су¬ щественно выросли. Однако значительная мощность множества ключей ещё не является гарантией криптостойкости шифра. Развивая идею шифра Цезаря, можно было бы попытаться использо¬ вать в качестве ключа произвольную подстановку на множестве букв ал¬ фавита. Для алфавита с N буквами число подстановок равно N1. Так как в европейских языках число букв в алфавите близко к 30, то число ключей оказывается достаточным, чтобы обеспечить невозможность вскрытия шифра путём полного перебора возможных ключей. Шифр простой подстановки действительно был широко распространён на заре криптографии. Кажется, что из-за обилия возможных ключей он яв¬ ляется вполне надёжным шифром. Такой шифр в случае его надёжности был бы весьма удобен и в практическом использовании, так как обратная подстановка позволяет легко восстанавливать исходный текст по его крип¬ тограмме. Однако в действительности криптостойкость шифра простой подстановки невелика, и он легко поддаётся взлому. Арабскими учёными в IX веке впервые был найден эффективный способ взлома подобных шиф¬ ров, основанный не на переборе всех возможных подстановок, а на анализе частоты встречаемости различных символов криптограммы. Открытый ара¬ бами метод был первым значительным достижением криптоанализа. Для каждого языка могут быть найдены частоты встречаемости раз¬ личных букв алфавита. Арабы определяли эти частоты по текстам Корана. Если криптограмма достаточно длинная, то она также позволяет с доста¬ точной точностью найти частоты различных используемых в ней символов и установить, таким образом, какие буквы представляют те или иные сим¬ волы криптограммы. Для интересующихся приведём относительные часто¬ ты встречаемости букв русского алфавита, включая пробел «-» между сло¬ вами (табл. 1). Как видно из таблицы, частота пробела значительно превышает час¬ тоту любой из букв. Это позволяет легко установить его символ в шиф- ртексте, а тем самым и разбить криптограмму на слова, что существенно облегчает дальнейшее вскрытие шифра. Поэтому, как правило, в крипто¬ грамме слова идут без пробелов. С примером классического частотного криптоанализа в доступной фор¬ ме можно познакомиться по известному рассказу классика детективного жанра американского писателя Эдгара По «Золотой жук», ставшему чрезвы¬ чайно популярным в Америке в середине XIX века и возбудившему там ши¬ рокий интерес к криптографии. Герою рассказа Вильяму Леграну, обеднев¬ шему потомку старинного гугенотского рода, незаурядной личности, прозя¬ бающей, однако, в бедности и безвестности, попадает в руки криптограмма с описанием местонахождения пиратского клада. Благодаря экстраординарным
№ Буква Частота № Буква Частота № Буква Частота 1 а 0,062 12 Л 0,035 23 Ч 0,004 2 б 0,014 13 м 0,026 24 ч 0,012 3 в 0,038 14 н 0,053 25 ш 0,006 4 г 0,013 15 о 0,090 26 щ 0,003 5 д 0,025 16 п 0,023 27 ы 0,016 6 е,ё 0,072 17 р 0,040 28 ъ,ь 0,014 7 ж 0,007 18 с 0,045 29 э 0,003 8 3 0,016 19 т 0,053 30 ю 0,006 9 и 0,062 20 У 0,021 31 я 0,018 10 й 0,010 21 Ф 0,002 32 0,175 11 к 0,028 22 X 0,009 Таблица 1 способностям в криптоанализе ему удаётся найти пиратский клад и снова разбогатеть. Такая фабула в сочетании с литературным мастерством автора не могла не заинтриговать читателя. Сообщаемые в рассказе реальные сведения по криптоанализу придают ему дополнительные достоинства. Неизвестно, где Эдгар По впервые познакомился с криптографией, но, начиная с 1839 года, он на протяжении ряда лет вёл в филадельфийских га¬ зетах рубрику, в которой предлагал читателям присылать ему криптограм¬ мы, зашифрованные шифром простой подстановки, в которых буквы алфа¬ вита заменялись бы любыми выбранными читателями символами, и брался наряду с присланной криптограммой публиковать её открытый текст. Ог¬ ромное число предлагаемых для расшифровки криптограмм посыпалось сначала из Филадельфии, а затем и со всей Америки, и в подавляющем большинстве случаев Эдгару По действительно удавалась их расшифровка. С этого началась американская, а затем и мировая слава писателя. Хотя элементарного частотного анализа в сочетании с определённым опытом и дедуктивными способностями достаточно для взлома крипто¬ грамм, зашифрованных подобным образом, По стяжал себе славу вели¬ чайшего криптоаналитика. Читатели умоляли его раскрыть свой секрет, но По тянул время, обещая, а затем откладывая выполнение обещания. Можно сказать, что своё обещание он выполнил, опубликовав в 1843 году рассказ «Золотой жук». Свои принципиальные взгляды на криптоанализ По изло¬ жил устами Вильяма Леграна: Я стал заниматься подобными головоломками благодаря обстоятельствам моей жизни и особым природным склонностям и пришёл к заключению, что едва ли разуму человека дано загадать такую загадку, которую разум другого его собрата, направленный должным образом, не смог бы раскрыть. Прямо скажу, если текст зашифрован без грубых ошибок и документ в приличной сохранности, я больше ни в чём не нуждаюсь; последующие трудности для меня просто не существуют. 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры 246 При исследовании стойкости шифра обычно предполагается, что про¬ тивнику известно о шифре всё, кроме ключа. Основными видами атак, кото¬ рые должен выдерживать шифр, в возрастающем по силе порядке являются: 1) противник располагает только шифртекстом; 2) противник располагает открытым текстом и соответствующим шиф¬ ртекстом; 3) противник сам имеет возможность создавать открытый текст и полу¬ чать соответствующий шифртекст (подсовывать информацию, кото¬ рая шифруется и передаётся). В идеале шифр должен выдерживать все три вида нападения. Шифр же простой подстановки не выдерживает даже слабейшей атаки. Намного более стоек шифр Виженера, названный так в честь Блеза де Виженера (1523-1596) — французского дипломата, бывшего на протяжении ряда лет посланником в Ватикане. Вращаясь среди папской курии, он почерпнул массу сведений по криптографии, которые позже вместе с собственными разработками изложил в опубликованной им в 1586 году книге. В шифре Виженера осуществляются сдвиги алфавита на различное число позиций с помощью ключевого слова. Для этого номера букв открытого текста скла¬ дываются по модулю N с номерами букв ключевого слова, которое пе¬ риодически повторяется (см. задачу 10). Дальнейшее развитие идея подобного переменного сдвига получила в роторных шифровальных машинах двадцатого века. На каждом вращаю¬ щемся диске подобной машины нанесена некоторая перестановка букв алфавита. Положение дисков относительно друг друга определяет исполь¬ зуемую в каждом такте замену буквы открытого текста буквой криптотек¬ ста. Изменяющееся в процессе шифрования при наборе каждого символа открытого текста взаимное положение дисков приводит к изменениям и в выполняемой замене. Самой известной подобной шифровальной машиной была немецкая «Энигма», широко использовавшаяся Германией в годы Второй мировой войны и ставшая настоящей головной болью для криптоаналитиков всего мира. Даже на заре своего развития криптография использовала математику. Неудивительно поэтому, что ряд выдающихся математиков прошлого бы¬ ли также выдающимися криптологами. Среди массы вещей, занимавших ум Джироламо Кардано, были и во¬ просы, связанные со стеганографией и криптографией. «Решётка Кардано» использовалась в дипломатической переписке XVI-XVII веков и навсегда осталась в истории криптографии. Отец алгебры Франсуа Виет (1540-1603), формула которого для корней квадратного уравнения изучается в школе, среди своих современников про¬ славился однако не этой формулой, а тем, что, будучи советником француз¬ ских королей Генриха III и Генриха IV Наварского, вскрыл шифр испанского
короля Филиппа, которым тот пользовался для переписки с лидерами Ка- 247 толической лиги. Узнав об этом, потрясённый король воскликнул: «Воис¬ тину, этот человек связан с дьяволом», и даже попытался привлечь Виета к суду инквизиции, правда, безуспешно. В 1743-1744 годах в царствование Елизаветы Петровны, незамужней дочери Петра I, французский посол в России маркиз де ла Шетарди ак¬ тивно пытался влиять на внешнеполитический курс России в выгодном для Франции направлении, используя для этого весь арсенал средств, включая и подкуп влиятельных, лиц. Однако вице-канцлер, сенатор и ди¬ ректор почт А. П. Бестужев-Рюмин имел собственные взгляды на то, какой должна быть внешняя политика России. Их интересы схлестнулись. Вице- канцлеру пришлось нелегко под огнём интриг опытного дипломата, посла мощной и уважаемой европейской державы. Вскоре, однако, посол осту¬ пился, дав в руки противника сильнейший козырь. В одном из писем он позволил себе неуважительные высказывания в адрес императрицы, назвав её довольно «фривольной и распущенной женщиной», «находящейся в плену своих прихотей». Шетарди знал, конечно, что дипломатическая поч¬ та в России перлюстрируется, но твёрдо верил в стойкость своего шифра, не вполне представляя себе, сколь мощные силы привлечены в России к взлому дипломатических шифров. Знаменитая и нерешённая полностью до сих пор проблема Гольдбаха в теории чисел состоит в возможности представления любого чётного числа в виде суммы двух простых чисел, например: 4 = 2 + 2, 6 = 3 + 3, 8 = 5 + 3 ит. д. Христиан Гольдбах (1690-1764), немец, уроженец Кёнигс¬ берга, в 1725 году был приглашён в Россию в качестве академика по отде¬ лению математики в только что созданную Российскую академию наук. Привлечённый Бестужевым-Рюминым в 1742 году в Коллегию иностран¬ ных дел в качестве криптоаналитика, он успешно вскрыл множество ди¬ пломатических шифров, за что в 1760 году был пожалован в тайные совет¬ ники с ежегодным окладом 4500 рублей — огромной по тем временам суммы. Это было одно из самых высоких званий в российском государстве, и награждались им дворяне за особые заслуги перед отечеством. К этому можно добавить, что на просьбы Эйлера сделать его тайным советником Елизавета Петровна дипломатично отвечала, что тайных советников у неё много, а Эйлер один. Создатель российской криптографической службы Алексей Петрович Бестужев-Рюмин (1693-1767) и сам был незаурядной личностью. Дитя пет¬ ровских реформ, получивший образование за границей и прекрасно разби¬ равшийся в европейской политике, за свои заслуги возведённый в 1742 го¬ ду в графское достоинство, он хорошо понимал значение перлюстрации и криптоанализа в сборе политической информации. Его бурная политическая карьера началась в царствование Петра I и продолжалась вплоть до царст¬ вования Екатерины II с короткими перерывами, во время которых его само¬ го дважды приговаривали к смертной казни. В 1734-1740 годах, находясь в качестве резидента в Копенгагене, Бестужев-Рюмин изобрёл популярное 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры 248 в XVTII-XIX веках в Европе снадобье от похмелья — знаменитые Капли датского короля, или Бестужевские капли. Воистину, внешняя разведка России была в это время на высоте. Факт вскрытия шифра французского посла, конечно же, целесообразнее было не раскрывать, продолжая чтение дипломатической корреспонден¬ ции, но оскорблённая Елизавета Петровна не руководствовалась сообра¬ жениями целесообразности. 17 июня 1744 года, на следующий день, после того как императрица была ознакомлена с содержанием расшифрованных писем, послу была вручена нота, в соответствии с которой он должен был в 24 часа покинуть пределы России. Когда посол попытался протестовать, ему стали зачитывать выдержки из его же писем. Шетарди быстро прервал чтение, сказав: «Довольно», и, выполняя предписание, отправился на роди¬ ну, к вящему удовлетворению вице-канцлера. В том же году ставший канц¬ лером, Бестужев-Рюмин дал своему криптоаналитику отменную характери¬ стику: «Всему, что в письмах написано, искусством господина Гольдбаха ключ имеется». Обессмертивший своё имя созданием машины Тьюринга, знаменитый английский логик Алан Тьюринг с началом Второй мировой войны полу¬ чил предложение работать криптоаналитиком в Правительственном ин¬ ституте кодов и шифров — организации, специально созданной англий¬ ским правительством для взлома германских шифров, использующих «Энигму». Лишь тридцать с лишним лет спустя, когда гриф секретности с этих работ был снят, стало известным, что Тьюринг занимался здесь про¬ ектированием реальных электромеханических логических машин — свое¬ образных специализированных компьютеров, с помощью которых удава¬ лось взламывать германские шифры. Классическими в области криптографии являются работы американ¬ ского математика Клода Шеннона. Написанные первоначально в форме рабочих отчётов в годы войны, они были опубликованы в 1948 году, после того как с них также был снят гриф секретности. Криптография и криптоанализ сыграли важную роль в ряде ключевых эпизодов Первой и Второй мировых войн и в определённой степени по¬ влияли на ход мировой истории. В августе 1914 года 1-я и 2-я русские армии двумя клешнями вторглись в Восточную Пруссию, сминая оставленную для её защиты 8-ю германскую армию. Это наступление спасло Париж, оттянув от него часть германских войск, а в случае своего успешного развития могло привести и к быстрому окончанию всей войны. Перед германским командованием встал нелёгкий вопрос об эвакуации Восточной Пруссии и отступлении за Вислу. Однако, начав по просьбе французского правительства спешное наступ¬ ление, наше командование не успело распространить ключи нового военного шифра и, не располагая достаточным количеством телефонных прово¬ дов, вынуждено было отдавать приказы войскам открытым текстом по радио.
Радиоперехваты этих приказов позволили германскому штабу узнать плани- 249 руемое передвижение русских армий и принять ответственное решение. Ос¬ тавив незначительный заслон перед фронтом стоявшей на месте 1-й армии, немцы бросили все силы на 2-ю. Положение 2-й армии усугублялось посто¬ янно следовавшими из штаба фронта приказами продолжать наступление, чтобы отрезать противника, находившегося, как предполагалось, перед фронтом 1-й армии. Выполняя приказ, 2-я армия под командованием Самсо¬ нова сама вошла в приготовленный ей противником мешок и, несмотря на отчаянное сопротивление, прекратила существование как боевая единица. В сентябре ключи военного шифра в русской армии были распростране¬ ны, и приказы стали передаваться в зашифрованном виде. Русский военный шифр не создавал, однако, непреодолимых трудностей для австрийских и германских криптоаналитиков, а при неквалифицированном использовании, когда шифртекстами была передана часть приказов, уже передававшихся ра¬ нее открытым текстом, и в одной радиограмме могли чередоваться открытая и зашифрованная части, его взлом и вовсе не составил труда. Последовали новые военные неудачи, и как итог — сотни тысяч погибших и попавших в плен русских солдат, огромные территории, уступленные противнику. Русское командование понимало, что его военные планы становятся известны противнику, но так и не смогло найти причину постоянной утеч¬ ки информации. Поползли слухи, что императрица-немка выдаёт Германии наши планы. Престиж власти падал, революция приближалась. А теперь, перепрыгнув через почти три десятилетия, обратимся уже к эпизоду из истории Второй мировой войны. Совершив в декабре 1941 года успешное нападение на американскую военно-морскую базу на Гавайях Пёрл-Харбор, Япония существенно осла¬ била военно-морские силы США и завладела стратегической инициативой на тихоокеанском театре военных действий. Последовало стремительное расширение Империи Восходящего солнца по акватории Тихого океана. Рассчитывая развить достигнутый успех и утвердить японское господство в регионе, главнокомандующий военно-морскими силами Японии Исороку Ямамото — 58-летний боевой адмирал, потерявший два пальца правой ру¬ ки ещё в Цусиме, планирует нанести новый удар в июне 1942 года. На этот раз целью является захват занимающего важное стратегическое положение атолла Мидуэй — северо-западной оконечности Гавайского архипелага. Японский шифр планировалось обновить за два месяца до атаки, что, вероятно, позволило бы сохранить готовящуюся операцию в тайне. Но воз¬ росшие размеры империи затрудняли распространение ключей, и обновле¬ ние задержалось. Это, по-видимому, не слишком обеспокоило японское ко¬ мандование, не подозревавшее, что используемый ими шифр уже взломан американцами. Адмирал Нимиц блестяще использовал полученную от криптоаналити¬ ков информацию. Взлетевшие с авианосцев для уничтожения американской авиации на атолле японские самолёты бомбардировали пустые ангары, а поднявшиеся с американских авианосцев торпедоносцы и пикирующие бом- 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры 250 бардировщики нанесли удар по японским авианосцам. Начав атаку, которая должна была принести ей победу, Япония потеряла четыре своих больших авианосца, и на тихоокеанском театре военный действий наступил перелом. А через год, когда американцы перехватили радиограмму с точным расписанием инспекционной поездки адмирала Ямамото по Соломоновым островам, упал в джунглях и перехваченный американскими истребителя¬ ми японский бомбардировщик «Мицубиси Бетти», на борту которого на¬ ходился Ямамото. Приведённые исторические примеры свидетельствуют о победах, одержанных критоаналитиками над криптографами в их извечной борьбе между собой, что может считаться подтверждением тезиса Эдгара По. Сле¬ дует, однако, учитывать, что приведённые примеры относились к докомпь¬ ютерной криптографии, когда шифрование осуществлялось вручную или с помощью механических устройств, что ограничивало сложность исполь¬ зуемых шифров. Существует ли абсолютно стойкий шифр, способный выдержать лю¬ бую атаку криптоаналитиков? Ответ положителен. Таким будет шифр Ви- женера, если в качестве ключа использовать случайную последователь¬ ность букв алфавита, длина которой совпадает с длиной кодируемого со¬ общения, причём эта последовательность используется однократно. При таком способе шифрования все порождаемые криптограммы становятся равновероятными, что делает бесполезным криптоанализ при любом виде атаки. Эту систему шифрования называют часто шифром Вернама, по име¬ ни запатентовавшего её в 1918 году американского радиоинженера Гиль¬ берта Вернама. Другие названия для этой системы шифрования — лента однократного использования или одноразовый блокнот (one-time pad). При аресте в 1957 советского резидента в Америке Рудольфа Абеля (на¬ стоящее имя Вильям Фишер) у него был обнаружен миниатюрный блокнотик, каждая страничка которого содержала ключ для одной шифровки, после от¬ правки шторой страничка уничтожалась. В имевшейся в Москве точной ко¬ пии этого блокнота соответствующая страничка уничтожалась после дешиф¬ ровки. Таким образом, завладение блокнотом не позволило американцам расшифровать ни одной переданной советским разведчиком радиограммы. Подобный шифр обеспечивает абсолютную секретность, но требует предварительного обмена длинным набором ключей (копиями блокнотов в случае Абеля), а это существенно ограничивает возможности его исполь¬ зования. Вот что пишет о трудностях использования подобного шифра в военное время классик историко-криптографического жанра американский исследователь Дэвид Кан в своей знаменитой книге [24]: Почему же тогда этот окончательный рецепт шифрования не используется повсеместно? Из-за колоссального числа необходимых для него ключей. Проблема создания, регистрации, распространения и отмены ключей может показаться не слишком сложной тому, кто не имеет опыта передачи сообще¬ ний по каналам военной связи, но в военное время объём передаваемых со-
общений ставит в тупик даже профессиональных связистов. За сутки могут 251 быть зашифрованы сотни тысяч слов. Даже простое создание миллионов ключевых знаков было бы связано с огромными финансовыми и временными затратами. Так как каждое сообщение должно иметь свой собственный непо¬ вторимый ключ, применение подобной идеальной системы потребовало бы создание однократной ленты длиной, по меньшей мере, равной полному объ¬ ёму военных сообщений. В действительности, однако, должно быть создано значительное число дополнительных ключей. Группа подразделений может обладать некоторой общей лентой для внутригрупповых сообщений, но если какое-то подразделение использует некоторый ключ ленты, все остальные должны отменить соответствующий ключ на своих лентах. На практике, именно этот шаг и вызывает наибольшие трудности. В пылу сражения факти¬ чески невозможно отслеживать сообщения дюжины других подразделений, чтобы определять, какие ключи они использовали. Дэвид Кан (1967) В наше время круг пользователей криптографическими системами зна¬ чительно расширился. Помимо военных и государственных тайн появились коммерческая, юридическая, врачебная, а также личная тайна. Необычно выросло число каналов связи, к которым за последние годы добавились электронная почта и мобильный телефон. В новых условиях необходимость предварительного обмена ключами стала серьёзным препятствием для ши¬ рокого распространения криптографии в общественной жизни. Это, а так¬ же возросшие возможности современных компьютеров, в конце концов, привели к качественным изменениям и в самой криптографии. В современных схемах шифрования открытый текст представлен по¬ следовательностью битов. Преобразование текста на естественном языке в битовую последовательность осуществляется с помощью некоторой стан¬ дартной кодировки, в качестве которой может быть, например, использо¬ ван 8-битовый ASCII (American Standard Code for Information Interchange). Представляющая открытый текст битовая последовательность разбивается на блоки. В процессе шифрования каждый из этих блоков преобразуется в некоторый двоичный набор такой же длины. Так как это отображение инъ¬ ективно, то процедуру зашифровывания можно рассматривать как подста¬ новку, действующую на множестве блоков. При этом если длина блоков взята достаточно большой, то количество потенциально возможных блоков огромно и они имеют столь малые вероятности появлений, что любой час¬ тотный анализ оказывается бесполезным. Именно так работает разработанная Национальным бюро стандартов США в 1977 году криптосистема DES (Data Encryption Standard) — первая в мире криптосистема, алгоритм функционирования которой был полно¬ стью опубликован в открытой печати. Система использует 64-битовые бло¬ ки. Секретность зашифрованной информации гарантируется задаваемым пользователем 56-битовым ключом. Вскрытие шифра прямым перебором 256 ключей слишком трудоёмко, а существенно более эффективных спосо¬ бов вскрытия за время эксплуатации системы найдено не было. Но, как 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры 252 обычно, необходимость предварительного распространения ключа огра¬ ничивала круг пользователей системы. Новые идеи в криптографии. В течение столетий весьма неудобная, но ка¬ завшаяся неизбежной процедура предварительного распространения клю¬ ча была сдерживающим фактором в развитии криптографии и сужала круг её пользователей. В течение столетий в качестве непреложной истины принималось также, что задание шифрующего ключа автоматически зада¬ ёт и дешифрующий ключ. В семидесятые годы прошлого века в крипто¬ графии произошли события, перевернувшие вековые представления. В годы Холодной войны криптологи США и Великобритании уси¬ ленно искали возможность избежать весьма неудобной процедуры обмена секретным ключом, хотя многими эти попытки и расценивались как бес¬ перспективные. Но революция в криптографии произошла, и то, что мно¬ гим казалось невозможным, было достигнуто. Современная криптогра¬ фия, ограничиваясь практической секретностью, не позволяющей вскрыть шифр в разумное время, даёт возможность избежать процедуры предвари¬ тельного распространения ключа. Замечательно, что отсутствие для ряда задач эффективных алгоритмов, ставшее непреодолимым барьером в дис¬ кретной оптимизации, в криптографии позволило совершить этот фанта¬ стический прорыв. Математической основой для революционных изменений в крипто¬ графии стала алгоритмическая теория чисел. На протяжении двух с поло¬ виной тысяч лет, начиная с древнегреческой математики, теория чисел бы¬ ла ярко выраженным разделом «чистой математики», не имевшим какого- либо прикладного значения. Казалось, что такое положение будет сохра¬ няться вечно. Вот что писал о статусе теории чисел известный английский математик Г. Г. Харди (1877-1947) в своей книге «Апология математика»: Можно оправдать Гаусса и других математиков в их радости по поводу того, что уж, во всяком случае, их наука (теория чисел) вследствие своей от¬ странённости от обыденной человеческой деятельности останется благород¬ ной и чистой. Годфри Харди (1940) Однако, «никто не пророк в своём отечестве», и всего несколько деся¬ тилетий спустя после того, как были написаны эти строки, положение кар¬ динальным образом изменилось. Новые методы, совершившие переворот в криптографии и необозримо расширившие круг её пользователей, основа¬ ны именно на теории чисел и современном состоянии теории сложности вычислений. Первыми новые горизонты в криптографии открыли, как сравнительно недавно стало известным, английские криптологи. Но они работали в за¬ крытых правительственных организациях, и результаты их исследований были засекречены. Первой же открытой публикацией, возвестившей о на¬ ступлении новой эры в криптографии, стала появившаяся в 1976 году статья
американских университетских учёных У. Диффи и М. Э. Хеллмана [22]. 253 В ней были сформулированы идеи и принципы, составившие сущность многочисленных дальнейших разработок в этой области. Новым фундаментальным понятием, с возникновением которого связан переворот в криптографии, стало понятие односторонней функции. Будем говорить, что функция легко вычислима для данного значения аргумента, ес¬ ли она вычислимая за полиномиальное от длины его записи время, и трудно вычислима — в противном случае. Легко вычислимые значения могут быст¬ ро находиться компьютером для аргументов значительной длины. Трудно вычислимые значения для аргументов значительной длины невозможно по¬ лучить в приемлемое время даже при наличии мощного компьютера. Биекция /: Л—> В называется односторонней функцией, если она: 1) легко вычислима для всех а е А; 2) обратная к ней функция /-1 :В —> А трудно вычислима для почти всех be В. Прежде всего здесь следует указать, что не доказано, что хотя бы одна односторонняя функция существует, а есть лишь кандидаты на это место, т. е. эффективно вычислимые функции, для обратных к которым эффек¬ тивных алгоритмов вычисления найти не удалось. Известным таким кан¬ дидатом является экспонента в конечном поле. Пусть а — примитивный корень поля GF(/?) -Z / pZ — поля классов вычетов по простому модулю р. Согласно следствию 7.1 функция / = = ах, определённая на начальном отрезке целых неотрицательных чисел [0;р-2] = {0,1, 2, , р-2}, осуществляет биективное отображение этого отрезка во множество F* ненулевых элементов поля /: [0; р - 2] —> F*. Это позволяет определить обратную функцию /-1 : F* -»[0; р - 2], вычис¬ ляющую степень к, в которую нужно возвести примитивный корень а , чтобы получить ненулевой элемент поля (3 . Функция /: [0; р - 2] -» F* называется дискретной экспонентой, а функция /-1 : F* -> [0; р - 2] — дискретным логарифмом. Для дискретного логарифма пока нет общепри¬ нятого обозначения. Будем обозначать его как LodaP. В качестве примера возьмём поле GF(11) и рассмотрим в нём степе¬ ни элемента а = 2 (табл. 1). В нижней строке таблицы стоят все ненулевые элементы поля, таким образом, выбранный элемент поля а = 2 является примитивным корнем. Таблица 1 позволяет составить таблицу значений для дискретного логариф¬ ма (табл. 2). 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры к 0 1 2 3 4 5 6 7 8 9 2к 1 2 4 8 5 10 9 7 3 6 Таблица 1 X 1 2 3 4 5 6 7 8 9 10 Lodjx 0 1 8 2 4 9 7 3 6 5 Таблица 2 Между двумя функциями, дискретной экспонентой и дискретным ло¬ гарифмом, с вычислительной точки зрения есть, однако, существенная раз¬ ница. Для вычисления ак достаточно сделать не более 2 log2 к умноже¬ ний, т. е. вычислительная трудоёмкость пропорциональна длине записи числа к в позиционной системе счисления. Эффективный алгоритм, осу¬ ществляющий такое вычисление, легче всего объяснить на примере. Пусть, например, требуется вычислить а53. Вместо того чтобы делать 52 умно¬ жения, поступим следующим образом. Представим число 53 в двоичной записи 53 = 25 + 24 + 22 + 1 и возведём в степень по формуле Вычисление первой скобки требует 5 умножений. В процессе её вычисления вычисляются также вторая и третья скобки, значения которых запоминаются. Перемножение четырёх сомножителей требует ещё трёх умножений. Таким образом, всего требуется лишь 5 + 3 = 8 умножений (см. также задачу 4.1). Для дискретного логарифма подобного эффективного приёма не из¬ вестно, и его вычисление представляет собой трудную задачу, которая ока¬ зывается не под силу даже современным компьютерам, если р — число с более чем 200 десятичными знаками. Рассмотрим, теперь предложенную Диффи и Хеллманом систему с от¬ крытым распространением ключа, в которой два корреспондента вырабаты¬ вают общий секретный ключ, пользуясь открытым каналом связи. При этом третье лицо, перехватывая все посылаемые этой парой друг другу сообще¬ ния, тем не менее, что похоже почти на чудо, не в состоянии заполучить этот ключ. Предложенный для достижения этого Диффи и Хеллманом метод, ос¬ нован на алгоритмической сложности вычисления дискретного логарифма. Прежде всего желающая обмениваться конфиденциальной информа¬ цией группа будущих пользователей системы помещает в открытый файл простой модуль р (очень большое число) и примитивный корень а поля Z IpZ . Затем каждый пользователь / выбирает число х,- е { 0,2,..., р-2},
которое хранит в секрете, вычисляет у,- = ах‘ и помещает у, в открытый файл. Если пользователи / и j хотят обменяться сообщениями, они исполь¬ зуют в качестве ключа Ку = ax‘Xj. Пользователь i берёт у у из открытого файла и вычисляет Ку по формуле Ку = ух‘ . Пользователь j берёт у,- из открытого файла и вычисляет Ку по формуле Ку = у,- 1. Теперь оба пользователя располагают одним и тем же элементом Ку е F* конечного поля Z / pZ, который может быть отождествлён с числом из множества {1, 2, , р-1}. Двоичная запись этого числа, яв¬ ляющаяся длинной последовательностью из нулей и единиц, использу¬ ется ими для шифрования и расшифровки побитовым сложением соот¬ ветственно с открытым текстом и с криптограммой. Перехватчик, зная у,- и у у, в принципе, может, конечно, вычислив дискретный логарифм, найти X/ или Ху и получить ключ Ку, но алгоритмическая трудность вычисления дискретного логарифма не позволяет ему сделать это в при¬ емлемое время. Здесь следует ещё раз отметить, что трудность нахождения дискрет¬ ного логарифма не является математически доказанным фактом, по-види- мому, эта задача не является даже УР-полной. Убеждённость в трудновы- числимости дискретного логарифма основана лишь на том, что ни в одной из огромного числа посвящённых этой проблеме работ не было указано эффективного алгоритма его вычисления. Если же эффективный алгоритм для вычисления дискретного логарифма всё же будет найден, то рухнет и вся описанная выше криптографическая система. В то же время не факт, что найденный кем-либо эффективный алгоритм будет опубликован в от¬ крытой печати. Мы являемся свидетелями исторического момента, когда достижения в алгоритмической теории чисел могут составить предмет коммерческой и государственной тайны. Второй революционный принцип, высказанный Диффи и Хеллменом в их работе, заключался в идее асимметричной криптосистемы с двумя различными ключами для шифрования и расшифровки сообщений, при¬ чём ключ, используемый для шифрования, открыто распространяется или, как говорят, является открытым ключом. На протяжении всей предыдущей многовековой истории криптогра¬ фии непреложной истиной считалось, что задание шифрующего преобра¬ зования Ек автоматически задаёт и обратное к нему дешифрующее пре¬ образование DK , и обе функции задаются одним и тем же ключом К . В самом деле, если в качестве ключа используется битовая лента, то при шифровании она складывается с открытым текстом, а при расшифровке та же самая лента складывается с шифртекстом. Если же используется под- 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры 256 становка на множестве блоков открытого текста, то обратная подстановка является дешифрующим оператором. Здесь, однако, не всё так просто. Ес¬ ли блоки имеют достаточно большую длину, то ввиду огромности их чис¬ ла подстановка не может быть задана в явном виде. Задание же подста¬ новки некоторым другим образом оставляет, вообще говоря, возможность того, что нахождение обратной подстановки является трудной задачей. В системе с открытым ключом шифрующий ключ Ке (encryption key) и дешифрующий ключ Kd (decryption key) — это два различных ключа. Каждый пользователь системы с открытым ключом помещает в открытый файл свой собственный шифрующий ключ Ке, задающий алгоритм шиф¬ рования ЕКе. Корреспондент, желающий послать данному пользователю сообщение М, с помощью ключа Ке преобразует его в криптограмму С = Еке(М). Соответствующий алгоритм дешифровки , задаваемый ключом Kd, пользователь хранит в секрете и использует для получения открытого текста М = (С). Выполняющие шифрование и расшифровку операторы Еке и DKd - это два взаимообратных оператора, и задание одного из них, в принципе, определяет и другой. Понятно, однако, что если ЕКе является односторон¬ ней функцией, то эффективная реализация невозможна. Но тогда возни¬ кает вопрос, как сам пользователь находит эффективную реализацию опера¬ тора DKd ? Здесь речь идёт о так называемой односторонней функции с сек¬ ретам. Пользователь владеет секретом — некоторой дополнительной информацией, которая и позволяет ему эффективно обращать оператор Екв. Системы с открытым ключом, наряду с несомненным удобством для пользователей, обладают, на первый взгляд, и существенным недостатком. А именно, каждый может воспользоваться открытым ключом определен¬ ного лица и от его имени послать зашифрованное сообщение. Если банк получает по электронной почте от своего клиента зашифрованное сооб¬ щение с распоряжением, касающимся управления финансовым вкладом клиента, то для осуществления с вкладом требуемых операций он должен быть уверен в подлинности авторства сообщения. В случае письменного распоряжения его аутентичность подтверждается личной подписью кли¬ ента. Подобное подтверждение в случае распоряжения, посланного по электронному каналу связи, называется электронной подписью. В системе с открытым ключом проблема электронной подписи в принципе может быть решена просто. Пусть Ке — открытый шифрующий ключ банка, К'е — открытый шифрующий ключ клиента, a Kd и K'd — их секретные дешифрующие ключи. Для доказательства аутентичности клиенту достаточно зашифровать посылаемое им сообщение М своим
257 секретным оператором и послать банку криптограмму С = (М). С помощью открытого ключа клиента Ебанк восстанавливает сообщение Ек'^К'д(М) = М , так как Е^ и взаимно обратные операторы. Дока¬ зательством аутентичности сообщения является то, что оно было зашифро¬ вано с помощью оператора DK<d , являющегося личным секретом клиента. Если же клиент хочет сохранить конфиденциальность передаваемого в банк сообщения, то он также может легко достичь этого, последователь¬ но в любом порядке применяя к нему операторы DK^ и Ек^. Пусть, на¬ пример, сначала применяется оператор , а затем оператор Ек^. Это приводит к следующему шифртексту: C = EKDK.(M). Теперь банку для расшифровки следует воспользоваться сначала опе¬ ратором DKd , а затем оператором Е^ . Так как D%d и Ек^, а также Djc и Ек>е — пары взаимно обратных операторов, то Этим приемом в системе с открытым ключом может быть обеспечена как секретность, так и аутентичность. Система RSA. Детально разработав в своей основополагающей статье идеологию криптосистемы с открытым ключом, Диффи и Хеллмен не на¬ шли, однако, конкретного способа её реализации. В своей работе им не уда¬ лось явно указать ни одной односторонней функции с секретом. Но пробле¬ ма была поставлена, и уже год спустя тремя американскими учёными Р. Ри- вестом, А. Шамиром и Л. Адлеманом [25] была предложена конкретная криптосистема с открытым ключом. Эта система шифрования, получившая в дальнейшем по первым буквам имён авторов название RSA, явилась не только важным теоретическим результатом, но оказалась для запатентовав¬ ших её авторов также удачным коммерческим продуктом, найдя широкое практическое применение. Система основана на известной трудной задаче разложения составно¬ го натурального числа на множители. Если заданы два натуральных числа, то их перемножение столбиком не составляет труда независимо от длины их записи в десятичной системе счисления. Всё, что может быть записано, может быть и перемножено. Однако обратная задача разложения на мно¬ жители не решается столь же просто. Эффективных алгоритмов для неё неизвестно, и это несмотря на то, что задача распознавания простоты на¬ турального числа эффективно решается. На этой асимметрии задач умно¬ жения и разложения на множители и основан алгоритм RSA. 5.12.
Глава 5. Коды, блок-схемы, шифры 258 Каждый пользователь системы RSA выбирает два больших простых числа р и q , которые хранит в секрете, и находит их произведение п = = pq , которое делает достоянием гласности. Множество классов вычетов Z / nZ = {0,1,..., п -1} и будет тем кодирующим блоки исходного текста алфавитом, некоторой подстановкой на множестве букв которого осущест¬ вляется шифрование. Практически, для того чтобы числа р и q нельзя было найти, разложив п на множители с помощью самых мощных совре¬ менных компьютеров, каждое из чисел р и q должно иметь не менее двухсот десятичных знаков. Исходный открытый текст, представляющий собой бинарную после¬ довательность, разбивается на блоки длины 1М . Для того чтобы вскрытие шифра невозможно было осуществить путём частотного анализа, эта дли¬ на должна быть достаточно большой и составлять десятки битов. Длина блоков не составляет секрета и известна всем пользователям системы. Записанному в блоке двоичному набору, рассматриваемому как число в двоичной системе счисления, ставится в соответствие класс выче¬ тов. Таким образом, для того, чтобы любой блок мог быть представлен как элемент множества классов вычетов Z / nZ = {0,1,..., п -1}, должно вы¬ полняться неравенство п > 2>м . Криптосистема работает как перестановка на множестве классов вычетов. В процессе шифрования может возникнуть любой вычет от 0 до п -1, поэтому длина Iq представляющего его в двоичной системе счисления блока шифртекста должна удовлетворять со¬ отношению 21с >п , т. е. блоки шифртекста длиннее блоков открытого текста. Длина 1С блоков шифртекста также должна быть общеизвестна, ли¬ бо по договорённости можно считать, что Iq — первое натуральное число такое, что 21с >п. Затем пользователь вычисляет т = (р-1 )(q -1), выбирает число е, вза¬ имно простое с т (в качестве е достаточно взять простое число) и находит ему обратное по модулю т, т. е. такое d , что de = l + km . Число d эффек¬ тивно находится с помощью алгоритма Евклида из соотношения (т, е) = 1 (см. раздел 4.1). Теперь система шифрования с открытым ключом полностью построе¬ на. Шифрующий ключ Ке=(п,е) пользователь помещает в открытый файл. Этот ключ будет использоваться корреспондентами пользователя для посылки ему шифрованных сообщений. Если М е { 0,1,..., п -1} — класс вычетов, соответствующий блоку открытого текста, то он заменяется клас¬ сом вычетов С е { 0,1,..., п -1}, определяемым как C = EKe(M) = Me(modn). (1)
Секретный дешифрующий ключ Kd имеет вид Kd = (n,d). Исход- 259 ный блок открытого текста восстанавливается по блоку шифртекста как M = DKd (С) = Cd(шобл). (2) Покажем, что (1) и (2) действительно задают прямую и обратную подстановки на множестве классов вычетов Z / nZ = {0,1,..., п -1}, т. е. DKd ЕКе (М) = {ме = Med = М (modп). Для доказательства равенства Med = М (mod л) сравним Med и М по модулю р и по модулю q. Равенство двух сравнений докажет их ра¬ венство по модулю п- pq (задача 0.25). Имеем Med =МХ^Р-^-Х)=М.{мГ-Х)Щ~Х) . Если М = 0 (mod р), то равенство Med = М (mod р), очевидно, спра¬ ведливо. Если же М Ф 0 (mod р), то на основании Малой теоремы Ферма имеем Мр~х = 1 (mod р). Поэтому равенство Med = М (mod р) также спра¬ ведливо. Аналогичным образом доказывается и справедливость равенства Med - = М (mod q). Из этих двух равенств и вытекает, что Med = М (mod п). Факт существования обратного преобразования доказывает его биек- тивность. Таким образом, шифрующее преобразование действительно яв¬ ляется подстановкой на множестве классов вычетов Z / nZ, обратной к которой является дешифрующее преобразование. Перехвативший шифртекст, не будучи в состоянии в приемлемое время разложить число п на множители, не в состоянии найти и входящее в дешифрующий ключ число d , необходимое для восстановления откры¬ того текста с помощью (2). Здесь, правда, возникает сразу несколько вопросов. Во-первых, в про¬ цессе построения системы RSA требуется неоднократно выбирать большие по величине простые числа. Если выбранное число является секретом, то его выбор должен осуществляться некоторым случайным образом. Как эф¬ фективно организовать такой выбор? Для этого достаточно, выбрав слу¬ чайным образом некоторое большое натуральное число п , последователь¬ но проверять на простоту числа п, п +1, п + 2,... с помощью существую¬ щих эффективных тестов. Так как частота появления простых чисел вблизи числа п приближается к 1/1п п, такая процедура для нахождения простого числа в типичном случае требует порядка In п проверок, т. е. пропорцио¬ нальна длине его десятичной записи и может считаться эффективной. 5.12. Математические принципы современной криптографии
Глава 5. Коды, блок-схемы, шифры 260 Во-вторых, на чём, собственно, основано критическое для RSA до¬ пущение об алгоритмической трудности разложения натуральных чисел на множители? Ведь открытие эффективного алгоритма для такого раз¬ ложения явилось бы одновременно и «закрытием» системы RSA. Здесь сразу следует сказать, что серьёзных теоретических аргументов в пользу трудности этой задачи наука в настоящее время не имеет, и единственным основанием для этого допущения является многовековой опыт человече¬ ства в арифметике. Это в равной степени относится и к другим предложенным к настоя¬ щему времени криптографическим системам с открытым ключом. Уве¬ ренность в стойкости подобных систем опирается, главным образом, на отсутствие сообщений об их успешных взломах. Теоретически их крипто¬ стойкость остаётся недоказанной, хотя в этом направлении и сконцентри¬ рованы в настоящее время значительные усилия. Положение здесь напо¬ минает ситуацию в теории сложности с классами Р и Р* NP, которые изучаются в предположении, что Р * NP, хотя это и не доказано. Стоит ещё раз отметить, что в отличие от общей теории сложности адекватной мерой сложности в криптографии является не сложность труднейших за¬ дач в некотором классе, а типичная сложность задач данного класса, так как выбор ключа осуществляется случайным образом. В заключение отметим особенность электронной подписи в системе RSA. Рассмотренная ранее в общем виде электронная подпись в сочетании с секретностью в системах с открытым ключом осуществлялась любой после¬ довательностью операторов С = ЕКе DK'd Ш) или С = DK. ЕКе (М). В при¬ ложении к системе RSA здесь должно быть сделано одно уточнение. Так как модули п и и', классы вычетов по которым являются алфавитами банка и клиента, не совпадают, последовательность операторов и DK^ в элек¬ тронной подписи строго определённая. А именно, сначала должен приме¬ няться оператор с меньшим значением модуля, а потом — с большим. В про¬ тивном случае при переходе от большего модуля к меньшему нарушится инъ¬ ективность отображения, что сделает невозможным обратное преобразование. Вопросы для самопроверки 1. Что такое «ключ»? а) алгоритм шифрования; б) алгоритм расшифровки; в) сменный элемент шифра, обеспечивающий поддержание секрет¬ ности. 2. Совпадают ли шифрующий и дешифрующий ключи? а) совпадают; б) не совпадают; в) не совпадают в системе с открытым ключом.
3. Что обуславливает криптографическую стойкость системы RSA? 261 а) трудность нахождения дискретного логарифма; б) трудность раз¬ ложения на множители; в) трудность нахождения обратного элемента в мультипликативной группе кольца Z / nZ . 4. Почему в современных криптографических системах невозможно вскрытие шифра с помощью частотного анализа? а) из-за объёма необ¬ ходимых вычислений; б) из-за трудностей программирования; в) из-за большой длины шифруемых блоков. Ответы: 1 — в, 2 — в, 3 — б, 4 — в. Задачи для самостоятельного решения 1. С помощью алгоритма Хаффмана найти оптимальное кодирова¬ ние для ансамбля из пяти сообщений {щ,и2,щ,и4,и5} с заданными вероятностями р(щ) = 0,3, р(и2) = 0,25, р(иъ) = 0,2, р(щ) = 0,15 , р(и5) = 0,1. Определить его цену. 2. Для ансамбля из семи сообщений с вероятностями 0,3; 0,2; 0,2; 0,1; 0,1; 0,05; 0,05 найти два оптимальных кода с наборами длин 2,2,2,3, 4,5,5 и 2,2,3,3,3,4,4. 3. Пусть заданы (n,M\,d{)-код С] и {n,M2,d2)-код С2. Из них строит¬ ся новый код С3, слова которого образуются по схеме (и | и + v), где и е Q, v е С2, т. е. к слову и приписывается справа слово u + v . По¬ казать, что код С3 будет (2л, М\М2, d)-кодом, где d = mm{2d\, d2). 4. Показать, что в линейном коде либо i -я координата всех кодовых слов равна нулю, либо она равна нулю точно у половины кодовых слов, а у другой половины равна единице. 5. Показать, что в линейном коде либо все слова имеют чётный вес, ли¬ бо ровно половина слов имеет чётный вес и половина — нечётный. 6. Пусть G],G2 —порождающие матрицы соответственно для [n^,k,d{\- и [л2, к, <?2] -кодов. Что можно сказать о параметрах кода с порождаю¬ щей матрицей a) G = ^G, 0 ,б) G = (G,|G2)? G2> 7. Показать, что параметры [лД,с?]-кода удовлетворяют соотношению к < n-d + \. d-2 8. Доказать, что, если выполняется неравенство 2п~к > ^ СД_| , то су- /=о ществует линейный [п,к] -код с кодовым расстоянием, не меньшим d . (Р. Р. Варшамов, 1957). Задачи для самостоятельного решения
Глава 5. Коды, блок-схемы, шифры 262 9. Доказать, что максимальная мощность M=M(n,4,i) равновесного кода с кодовым расстоянием 4 в слое В" удовлетворяет двойному не¬ равенству С‘п/п<М < С‘п /{т +1), где т = шах {/, п - /'}. 10. Перехвачены два шифртекста: БЦКНКВСФНТХБЦЫЫЕМЛ и ФЩРИОЯЫЩЮЧЗНЧЯКШЦИ. Известно, что оба они зашифрованы шифром Виженера с помощью одного и того же ключа. Буквы русско¬ го алфавита представлены классами вычетом по модулю 30: АБВГДЕЖЗИКЛМН О П 0 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 букв со¬ общения с соответствующими буквами неизвестного ключа. Прочи¬ тать шифровки, если известно, что обе они содержат слово ЭСКАДРА, и найти ключ. 11. Некто объявил своими наследниками п человек и составил завещание, точный текст которого желает сохранить в секрете, поместив его в сейф, открываемый с помощью устанавливаемого it-значного десятичного кода. Завещатель хочет быть уверенным в том, что в момент вскрытия сейфа будут присутствовать все п наследников. Как, снабдив каждого наследника индивидуальным к -значным десятичным кодом, проще всего добиться того, чтобы, встретившись вместе, п наследников могли легко восстановить код сейфа, а любое их меньшее число, объединив свои коды, не получали бы никакой информации о гаде сейфа? Литература 1. БоузР. С., Рой-ЧоудхуриД. К. Об одном классе двоичных групповых кодов с исправлением ошибок // Кибернетический сборник. Вып. 2. С. 83-94. М.: ИЛ, 1961. 2. Василенко О. Н. Теоретико-числовые алгоритмы в криптографии. М: МЦНМО, 2003. 3. Введение в криптографию / Под общ. ред. В. В. Ященко. М.: МЦНМО, 1998. 4. Галлагер Р. Теория информации и надёжная связь. М.: Советское радио, 1974. 5. Горский В. Г., Бродский В. 3. О симплекс-планах первого порядка и связанных с ними планах второго порядка // В сб. Новые идеи в планировании экспери¬ мента. М.: Наука, 1969. С. 59-117. 6. Диффи У., Хэллман М. Э. Защищённость и имитостойкость: Введение в крип¬ тографию // ТИИЭР. Т. 67. № 3, март 1979. С. 71-109. 7. Журавлёв Ю. И., Флёров Ю. А., Вялый М. Н. Дискретный анализ. Основы высшей алгебры. М.: М3 Пресс, 2006. 8. Коблиц Н. Курс теории чисел и криптографии. М.: ТВП, 2001.
9. Коутинхо С. Введение в теорию чисел. Алгоритм RSA. М.: Постмаркет, 2001. 263 10. Лидл Р., Нидеррайтер Г. Конечные поля. Т. 1,2. М.: Мир, 1988. И. Мак-Вильямс Ф.Дж., Слоэн Н. Дж. А. Теория кодов, исправляющих ошибки. М.: Связь, 1979. 12. Питерсон У. Коды, исправляющие ошибки. М.: Мир, 1964. 13. РайзерГ.Дж. Комбинаторная математика. М.: Мир, 1966. 14. Смарт Н. Криптография. М.: Техносфера, 2005. 15. Соболева I А. Тайнопись в истории России. М.: Международные отношения, 1994. 16. Соболева Т. А. История шифровального дела в России. М.: ОЛМА-ПРЕСС, 2002. 17. Фано Р. Передача информации. Статистическая теория связи. М.: Мир, 1965. 18. ХаффманД. А. Метод построения кодов с минимальной избыточностью// Кибернетический сборник. Вып. 3. С. 19-Ю. М.: ИЛ, 1961. 19. Холл М. Комбинаторика. М.: Мир, 1970. 20. Шеннон К. Работы по теории информации и кибернетики. М.: ИЛ, 1963. 21. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тек¬ сты на языке Си. М.: Триумф, 2003. 22. Diffie W. and Heilman М. Е.. New Directions in Criptography // IEEE Transactions on Information Theory. 1976. V. IT-22, № 6. P. 644-654. 23. Horadam K. J. Hadamard matrices and their applications — Princeton, N. J.; Woodstock: Princeton University Press, 2007. 24. Kahn D. The Codebreakers. The Story of Secret Writing. Simon & Schuster Inc., 1967,1996. 25. Rivest R. L.y Shamir A., AdlemanL. A method for obtaining digital signatures// Commun. ACM. 1978. Vol. 21, № 2. P. 120-126. 26. Ray-Chaudhuri D. K., Wilson R. M. On the existence of resolvable balanced in¬ complete block-designs // Combinatorial structures and their applications. N. Y., 1970. P.331-341. Комментарии к литературе Работы Шеннона по кодированию и криптографии [20] являются клас¬ сическими и сохраняют непреходящий интерес. Монографии [17] и [4] на¬ писаны под влиянием идей Шеннона, причём [17] носит хорошо проду¬ манный учебный характер, а [4] перегружена техническими деталями. [1] и [18] — оригинальные работы Боуза и Рой-Чоудхури и Хаффмана. Монография [12] — первая книга, целиком посвящённая алгебраиче¬ ской теории кодирования и оказавшая мощное влияние на развитие теории. Монография [11] продолжает оставаться одним из наиболее обстоятель¬ ных современных математических руководств по алгебраической теории кодирования. Из [11] и [12] читатель может также почерпнуть необходимые сведения по теории конечных полей. Монография [10] — энциклопедически полное издание по теории конечных полей, а учебное пособие [7] — сис¬ тематический курс по используемым в дискретной математике элементам алгебры. Монографии [13] и [19] продолжают оставаться основными русско¬ язычными изданиями, излагающими теорию блок-схем, конечных геомет- Литература
Глава 5. Коды, блок-схемы, шифры 264 рий и матриц Адамара, причём [13] служит прекрасным введением в эти вопросы, а [19] содержит обширный материал, в частности, большое вни¬ мание уделено методам построения матриц Адамара. В [5] можно узнать о применении матриц Адамара в планировании эксперимента, а [23] — со¬ временный обзор по матрицам Адамара и их обобщениям. Современные проблемы криптографии обсуждаются в обзорной статье Диффи и Хэллмана [6]. В [3] приведены многочисленные приложения одно¬ сторонних функций в криптографии и смежных областях. Монографии [8] и [9] посвящены теории чисел и её применению в современной криптогра¬ фии, причём [9] настолько элементарна, что доступна даже школьникам, а написанная с большим мастерством известным специалистом в области теории чисел [8] является уже серьёзным руководством в этой области. Мо¬ нография [2] — основательный курс по алгоритмической теории чисел. Книга [21] является одной из самых читаемых в мире по криптографии. В качестве основательного учебника, отражающего последние достижения в мире криптографии, можно рекомендовать также [14]. [24] — уникальный по объёму собранного материала труд по истории криптографии. С истори¬ ей шифровального дела в России можно ознакомиться по [15] или [16].
Дополнение 1 Упорядоченные множества Отношение порядка играет существенную роль во многих разделах математики, в дискретной математике эта роль огромна. Опираясь только на три определяющих отношение свойства — рефлексивность, антисим¬ метричность и транзитивность, можно получить много красивых и важ¬ ных результатов. Начнём с простейших из них. Определения и примеры. Множество X с заданным на нём отношением частичного порядка « < » будем обозначать как Р = < X, < >, и называть у-множеством, называя при этом само множество X носителем отноше¬ ния порядка. Любое подмножество носителя само образует у-мно- жество Р' = < Y, < > , отношение порядка в котором является сужением исходного отношения на Y. В соответствии с концепцией дискретной ма¬ тематики наше рассмотрение будет, в основном, ограничено случаями ко¬ нечных у-множеств. Запись а -< b , где а,ЬеХ, будет означать, что Ъ покрывает а, т. е. а < b и не существует элемента с, такого что а <с<Ь . Интервалом [а,Ь] для а <Ь называется множество всех элементов х е X таких, что а<х<b. У-множество называется локально конечным, если любой его интервал является конечным множеством. Так, бесконечное у-множество натуральных чисел с отношением делимости Р = < N, | > является, очевидно, локально конечным, например [3,18] = {3,6,9,18}. По¬ средством (а,А], [а,Ь) и (а,Ь) будем обозначать соответственно множе¬ ства а<х<Ь,а<х<Ь и а<х<Ь. Линейно упорядоченное подмножество носителя называется цепью. Длина 1(C) цепи С, по определению, есть /(С)=|С|-1. Цепь С: xt< <,Xj <... < X/ называется насыщенной, если xt -< Х2 -<...-< X/, т. е. каждый последующий элемент покрывает предыдущий. Длиной /(Р) у-множества Р называется длина его самой длинной цепи, а высотой h(Р) — мощность этой цепи, А(Р) = /(Р) +1. Длина интервала [а,Ь~\ обозначается как 1(а, Ь). Два элемента а и b называются несравнимыми, если не выполнено ни а < Ъ, ни Ь< а . Подмножество носителя, любые два элемента которо¬ го несравнимы называется антицепью или шпернеровым семейством.
Дополнение 1. Упорядоченные множества 266 Шириной w(P) у-множества Р называется максимальная мощность его антицепи. У представленного на рис. 1 диаграммой Хассе у-множества 1(Р) = 3, й(Р) = 4, w(P) = 3. У-множество на рис. 1 можно рассматривать как се¬ мейство всех подмножеств трёхэлементного множества, упорядоченных по включению. Ясно, что в общем случае для системы подмножеств п -элементного множества или, что то же самое, для рассматривавшегося в разделе 2.6 булева куба В" с обычным отношением порядка имеем 1(Вп) = п, Н(Вп) = п + 1 и w(Bn) = Cсогласно лемме Шпернера. Элемент аеХ называется минимальным, если из Ь < а следует Ь = а, и наименьшим, если а < Ъ для всех Ъ £ X. Аналогично определяются максимальный и наи¬ больший элементы. В любом конечном у-множестве обязательно имеются минимальные и максимальные элементы, но может не быть наименьшего или наибольшего. В то же время, если наименьший элемент, который обо¬ значают 0 и называют нулём, существует, то он является единственным минимальным элементом. Аналогично, если существует наибольший эле- Рис. 1 мент, обозначаемый 1 и называемый единицей, то он является единствен¬ ным максимальным элементом. Множество минимальных элементов и множество максимальных элементов являются антицепями. В у-множестве с нулём покрывающие нуль элементы называются атомами. В у-множестве с единицей элементы, покрываемые единицей, называются коатомами. Подмножество / czX называется порядковым идеалом у-множества Р = < X, < > , если из xj el и х2 < Л) следует х2 е/ • Существует взаим¬ но однозначное соответствие между антицепями и порядковыми идеалами. Именно, множество максимальных элементов идеала / есть антицепь А , а антицепи А соответствует порядковый идеал / , определяемый как / = {х: За е А х < а}. В данном случае говорят, что антицепь А порождает идеал / . Если идеал порождается единственным элементом, т. е. А = {а}, I = {х : х < а}, то он называется главным порядковым идеалом. Аналогично, подмножество /с! называется двойственным поряд¬ ковым идеалом, если из х] е I и дг2 > Х| следует х2 е / , и двойственным главным порядковым идеалом, если I = {х : х > а}. Антицепь образует множество минимальных элементов двойственного порядкового идеала. Множество нулей монотонной булевой функции является примером порядкового идеала, а множество её единиц — двойственного порядкового идеала. При этом соответствующими антицепями являются множества верхних нулей и нижних единиц (см. раздел 2.6).
267 Пусть Pi=<Ar,<> и Р2 = <У, <> — два у-множества. Функция /: X —> Y называется изотонной, если из Х| <х2 в ^ следует f(xl)^f(x2) в Р2. Функция /: X—>Y называется антитонной, если из xi<x2 следует /(*,)>/(х2). Два у-множества Pj = < А', <t > и Р2 = < Y, <2 > называются изоморфными ( Pj = Р2 ), если существует изотонная биек¬ ция /: X —>Y такая, что ЛГ) < лг2 <=> f(xx)< f(x2). Два у-множества Р) = <ЛГ, <> и Р2 = < Y, < > называются дуально изоморфными, если существует антитонная би¬ екция /: X -» У такая, что лг( < jc2 <=> f(xx) > f(x2). Отношение «>», обратное отношению «<» на у-множестве Р = = < X, < > , также является частичным порядком, в котором максималь¬ ные элементы становятся минимальными и наоборот. Пусть Р — произвольное у-множество. У-множество, за¬ данное на том же носителе с обратным отношением по¬ рядка, называется двойственным для Р и обозначается Р*. Ясно, что отношение двойственности является взаимным: Р** = Р, и у-множества по признаку двойственности разбиваются на пары, элементы которой изоморфны в случае самодвойственности. У-множество Р = <Х, <> называется самодвойствен¬ ным, если Р* = Р, т. е. существует антитонная биекция /: X -> X такая, что хх <х2 <=> f(xx) > f(x2)>. Диаграмма Хассе двойственного у-множества получается переворачи¬ ванием диаграммы Хассе исходного множества, причём диаграмма Хассе самодвойственного множества при таком перевороте не изменяется. Приме¬ ром самодвойственного у-множества является упорядоченное по включению семейство подмножеств п -элементного множества. Антитонная биекцией / в этом случае сопоставляет каждому подмножеству его дополнение. Принцип двойственности. Каждое утверждеие об у-множествах имеет двойственный аналог, являющийся формулировкой этого же ут¬ верждения для двойственного множества. Если некоторая теорема справедлива для всех у-множеств, то также всегда справедливой будет и двойственная теорема. Определения и примеры
Дополнение 1. Упорядоченные 268 Примером подобной пары двойственных утверждений являются «ка¬ ждое конечное у-множество имеет минимальный элемент» и «каждое ко- S нечное у-множество имеет максимальный элемент». На рис. 2 диаграммами Хассе представлены все 16 попарно неизо¬ морфных четырёхэлементных у-множеств. Восемь из них (1, 2, 3, 6, 7, 8, И и 16) являются самодвойственными. 2) 1 1 з) Л 4) V. • N 5) V 6) I 7) У 9) Л 10) \> И) А. А А м 12) 13) 14) 15) Рис. 2 16) У-множество Р = <Х, < > с 0 называется ранжированным, если определена ранговая функция г: X -» {0,1,..., 1(Р)} такая что: 1) г(0) = 0; 2) г(у) = г(х) + 1, если х<у. Ясно, что если ранговая функция существует, то она единственна, так как ранг г(х) каждого элемента х необходимо равен г(х) = 1(0, х). Отсю¬ да следует критерий ранжируемости, который часто называют условием Жордана—Дедекинда. Критерий ранжируемости. Для того чтобы у-множество с 0 было ранжируемо необходимо и достаточно, чтобы все насыщенные цепи ме¬ жду любыми двумя его элементами имели одинаковую конечную длину.
269 В булевом кубе Вп ранг вершины — это номер слоя, в котором лежит вершина. Ранг атома в любом ранжированном у-множестве, по определе¬ нию, равен единице. Длину интервала в ранжированном множестве можно выразить как /(а, Ь) = гф) - г(а). Из заданных у-множеств по определённым правилам можно строить новые у-множества. Наиболее часто встречающейся операцией здесь яв¬ ляется прямое или декартово произведение у-множеств. Пусть Р] = = < X, <х >, Р2=< Y, < у >. Тогда прямое произведение Pj х Р2 = < А- х У, < >, где Oj, ) - (х2 > У2) <=> *1 —х х2 &У1 -у У2 ■ Единичный п -мерный куб Вп с обычным отношением порядка на вершинах является, таким образом, п -й декартовой степенью двухэлементной цепи {0,1}. Линейные продолжения. На конечном у-множестве любой частичный по¬ рядок, не являющийся линейным, всегда можно продолжить до линейно¬ го, доопределяя его отношение на несравнимых элементах. Этот факт и связанная с ним проблематика и станут теперь предметом нашего рас¬ смотрения. Все рассматриваемые в этом разделе у-множества предпола¬ гаются конечными. Если два частичных порядка «<]» и «<2», заданные на одном и том же носителе X таковы, что из Х\ <] х2 следу¬ ет jcj <2 дс2, т0 порядок «<2» называется продолжением порядка «<]». Если «<2» является линейным порядком, то продолжение называется линейным продолжением. Изучение продолжений удобно проводить на языке ориентированных графов. Напомним, что маршрутом из вершины v0 в вершину v* в оргра¬ фе G(V,A) называется чередующаяся последовательность вершин и дуг Vo,a1,v1,a2.—>vk-\’ak’vk > где ai =(vi-i>v/)- Маршрут называется замкну¬ тым, если он содержит хотя бы две дуги и его первая и последняя верши¬ ны совпадают. Будем говорить, что орграф GP=(X,A) задаёт у-мно- жество Р = <ЛГ,<>, если множество его вершин совпада¬ ет с носителем X частичного порядка, а каждая пара элементов xi,x2eX находится в отношении частичного порядка jcj < jc2 в том и только в том случае, если в GP существует маршрут из вершины Х\ в вершину х2 ■ Линейные продолжения
Дополнение 1. Упорядоченные множества Рис. 3 270 Заметим, что граф GP, задающий у-множество Р = < X, < > , опреде¬ лён неоднозначно, т. е. существует целое семейство графов GP, задающих Р . Граф Gp можно получить непосредственно из диаграммы Хассе, ори¬ ентируя её отрезки стрелками вверх. При этом каждой паре элементов х\,х2 е X таких, что х1-<х2, ставится в соответствие дуга (х\,х2) и это соответствие взаимно од¬ нозначное. На рис. 3 представлен полученный таким об¬ разом граф частичного порядка, заданного на рис. 1 диа¬ граммой Хассе. Обозначим такой полученный по диаграмме Хассе задающий у-множество Р = < X, < > граф как . Лю¬ бой другой граф Gp получается из Gp добавлением не¬ которого множества дуг по правилу транзитивности: если существует маршрут из х1 в х2 и существует маршрут из х2 в х3, то можно добавить дугу (xi,x2). Отсутствие замкнутых маршрутов является характеристическим свойством орграфов, задающих у-множества. Утверждение 1. Для того чтобы орграф G = (X,A) задавал у-множество, необходимо и достаточно, чтобы в G не было замкнутых маршрутов. Доказательство. Сразу вытекает из свойства антисимметрично¬ сти частичного порядка. □ Следующий несложный результат важен для дальнейшего. Утверждение 2. Если элементы х( и х2 несравнимы в P = <JT, <>, то для частичного порядка «<» существует как продолжение «<1», в котором xl <| х2, так и продол¬ жение « <2 », в котором Х2<2Х\. Доказательство. Ввиду несравнимости Х\ и х2 в Р в орграфе GP нет ни пути из х1 в х2 , ни пути из х2 в Х]. Поэтому добавление лю¬ бой из дуг (xt,x2) или (х2,Х!) не может привести к появлению замкну¬ того маршрута, а значит согласно утверждению 1 возможны оба продол¬ жения. D В качестве непосредственного следствия из утверждения 2 получаем несложный, но принципиальный результат. Следствие 1. Любой частичный порядок, заданный на ко¬ нечном множестве, может быть продолжен до линейного.
271 Если на множестве X заданы два частичных порядка «<1» и «<2», то частичный порядок «<» такой, что *1 ^ х2 <=> (*1 ^1 х2) & (*1 —2 х2) • называется пересечением частичных порядков «<(» и « <2 ». Если для каждой пары несравнимых элементов у-множества рассмот¬ реть оба возможных продолжения, то пересечение всех полученных таким образом порядков совпадёт с исходным. Поэтому в качестве еще одного следствия утверждения 2 получаем Следствие 2. Для любого конечного у-множества Р = <Х,<> существут множество линейных продолжений, пересечение которых совпадает с <<<». Понятие размерности частично упорядоченного множества, введён¬ ное в 1941 году американскими математиками Душником и Миллером (В. Dushnik, Е. W. Miller), породило большое число связанных с ним ис¬ следований. Размерностью конечного у-множества Р = <ЛГ, <> назы¬ вается минимальное число линейных продолжений, пере¬ сечение которых совпадает с «<». На рис. 4 представлено четырёхэлементное у-множество и все 5 его возможных линейных продолжений. Исходное множество не является це¬ пью, поэтому его размерность не меньше двух. С другой стороны, пересе¬ чение двух последних линейных продолжений даёт исходное множесто, размерность которого, таким образом, оказывается равной двум. а Ь 1 а * bi Г 6 1 а 1 Ь 1 а 1 О 1 С 1 d < С ' d 6. ' С | d. » с > Рис. 4 Размерность конечного у-множества, как показали Душник и Миллер, может принимать любые натуральные значения. Доказательство этого фак¬ та основано на рассмотрении одного специального семейства у-множеств. На рис. 5 показана диаграмма Хассе у-множества, образованного всеми од- Линейные продолжения
Дополнение 1. Упорядоченные множества {2,3,4} {1,3,4} {1,2,4} {1,2,3} Рис. 5 Утверждение 3. 272 ноэлементными и трёхэлементными подмножествами четырёхэлементного множества, упорядоченными по включению, представляющая собой дву¬ дольный граф. В общем случае л -элементного мно¬ жества диаграмма Хассе подобного у-мно- жества также представляет собой двудоль¬ ный граф, нижнюю долю {а,} которого образуют одноэлементные подмножества, а верхнюю долю {£>, } — (л -1)-элемент¬ ные. Этот граф получается из полного дву¬ дольного графа Кп „ удалением рёбер {а,i = 1,2,...,«. Размерность у-множества, образованно¬ го всеми одноэлементными и (л-1)-элементными под¬ множествами л-элементного множества, упорядоченны¬ ми по включению, при л>3 равна л. Доказательство. Для / = 1,2, ...,л определим г-е линейное про¬ должение как а\ а,_ 1 -< ам ап <bj <at <b\ ■<...< £,-_j -< bM <...<bn. Тогда, как нетрудно проверить, рассматриваемый частичный порядок яв¬ ляется пересечением данных л линейных продолжений, и его размер¬ ность, таким образом, не превышает л . Покажем, что она и не меньше л . Пусть имеется к линейных продол¬ жений, пересечение которых совпадает с рассматриваемым частичным порядком. За¬ дадим функцию /: {1, 2 л} —> {1, 2 к}, определив /(/) как номер одного из тех обязательно присутствующих линей¬ ных продолжений, в которых bj < л,-, и до¬ кажем её инъективность. Допустим про¬ тивное, пусть /(у) = /(/) для некоторого j * i. Это означает, что в одном из линейных продолжений одновременно имеет место bi < а,- и bj < aj , что невозможно, так как приводит к замк¬ нутому маршруту в соответствующем орграфе (рис. 6). □ Рис. 6 Разбиение на цепи. Ясно, что любое конечное у-множество всегда может быть разбито на конечное число цепей. Нетривиальной, однако, является задача разбиения на минимальное число цепей. Если имеется некоторое разбиение на цепи и S — произвольная антицепь, то каждый элемент S
входит ровно в одну из цепей. Поэтому минимальное число цепей не 273 меньше ширины у-множества. Оказывается, что в действительности всегда имеет место случай равенства. Этот факт, открытый американским матема¬ тиком Робертом Дилуорсом (R. Р. Dilworth (1914-1993)), является цен¬ тральным в теории частично упорядоченных множеств. Напомним, что числом независимости a(G) графа G называется максимально возможное число попарно несмежных между собой вершин, а числом вершинного покрытия r(G) — минимальное число вершин та¬ ких, что каждое ребро инцидентно хотя бы одной из них. Лемма 1. Для любого графа G = (V,E) число независимо¬ сти a(G) связано с числом его вершинного покрытия r(G) соотношением a(G) + r(G)= \V\. Доказательство. Если V'cV есть вершинное покрытие, то VW — независимое множество и наоборот. Поэтому дополнением наи¬ меньшего вершинного покрытия является наибольшее независимое мно¬ жество. □ Напомним также, что согласно теореме 4.3.3 для любого двудольного графа G мощность /(G) его наибольшего паросочетания совпадает с его числом вершинного покрытия r(G). Докажем теперь теорему Дилуорса. Теорема 1 (R. Р. Dilworth, 1950). Наименьшее число цепей, на которые можно разбить конечное у-множество, равно его ширине. Доказательство. Достаточно показать, что наименьшее число цепей не превосходит мощности наибольшей антицепи. С этой целью по заданному конечному частично упорядоченному множеству Р = < X, < > строим двудольный граф G(P)=(F, Е) с равномощными долями X' и X', V = X' и X", |Х'\ = |Л"| = |Х\. Для этого из каждого элемента х е X образуем две несмежные вершины в разных долях х' е X' и х" е X”. Ребро {x'j,Xj} проводится в графе G в том и только в том случае, если Xj < Xj . На рис. 7 пятиэлементное у-множество Р , заданное диаграммой Хассе, и соответствующий ему двудольный граф G(P). В данном случае w(P) = 2 , и имеются две наибольшие антицепи: {х2,х4} и {х3,}. Вот иллюстри¬ рующие теорему четыре различных способа разбиения этого у-множества на две цепи: {xl,x2,x3,x5}u{x4}, {х,,х2,х3}}и{х4,х5}, {х2,х3,х5}и{х1,х4} и {х,,х4,х5}и{х2,х3}. Разбиение на цепи
Дополнение 1. Упорядоченные множества 274 Рис. 7 Каждой цепи <...<xi/ в Р поставим в соответствие паросо- четание { Ц ,*£}, Ц , Ц_,»■}} в G(P), мощность которого на единицу меньше мощности цепи. Поэтому разбиение X на к цепей поро¬ ждает паросочетание мощности у =| X | -к , Обратно, паросочетание мощ¬ ности у в графе G(P) позволяет, как нетрудно понять, разбить множество X на \Х \-у цепей. Отсюда минимальное число цепей fcmjn = | X | -y(G), где y(G) — мощность наибольшего паросочетания в G(P). Используя тео¬ рему 4.3.3, получаем *min =1Л-Г(С). (1) Выберем в графе G(P) независимое множество вершин мощности ar(G). Дополнительное к нему множество согласно лемме 1 будет иметь мощность r(G). Рассмотрим теперь сюръекцию V -» X , при которой каждая вершина графа переходит в тот элемент частично упорядоченного множества, из которого она возникла. Любое независимое множество при этом переходит в антицепь. Поэтому и<Р) + г(С)>т. (2) Из (1) и (2) получаем, что &min < w(P). □ Теорема Дилуорса является мощным средством исследования у-мно- жеств. Получим с её помощью соотношение между высотой Л(Р), ши¬ риной w(P) и мощностью | X | произвольного конечного у-множества P=<*,<>. Утверждение 4. Для любого конечного у-множества Р = <Х,<> справедливо соотношение w(P) • й(Р) > | X |.
Доказательство. В силу теоремы Дилуорса для у-множества 275 Р = <X, <> существует разбиение на цени X = С| U...UQ , где к = w(P). к Имеем | X |= С,-1, и из | С,-1< h(Р) следует, что | X \ < и<Р) - А(Р). а 1=1 В качестве примера использования утверждения 4 рассмотрим снова задачу 3.32, в которой требуется показать, что из произвольной последо- вательности л +1 действительных чисел (xj, ...,х2 j) всегда можно вы¬ брать невозрастающую или неубывающую подпоследовательность длины л + 1. 2 2 Введём на множестве из л +1 элементов х,-, г = 1,2, ...,п +1 от¬ ношение частичного порядка «<» следующим образом: х,- <xj в том и только в том случае, если одновременно Имеет место i < j и х,- < Ху как действительные числа. Число элементов в нашем частично упорядочен- ном множестве равно л +1. Поэтому согласно предыдущему утвержде¬ нию в нём должна существовать цепь длины л + 1 или антицепь длины л +1. В первом случае имеем монотонно неубывающую подпоследова¬ тельность длины л +1, а во втором — монотонно убывающую. Системе подмножеств л -элементного множества, изоморфной л -мер¬ ному кубу Вп, в дискретной математике принадлежит исключительная роль. Поэтому интерес представляет приложение теоремы Дилуорса к этому упорядоченному по включению у-множеству. Его ширина cj”^, так что в соответствии с теоремой это множество должно разбиваться на С^2^ це¬ пей. В 1966 году такое разбиение было конструктивно выполнено француз¬ ским учёным Жоржем Анселем (G Hansel). Теорема 2 [1]. Единичный л-мерный куб Вп с обычным отношением порядка может быть разбит на насы¬ щенных цепей со следующими свойствами: 1) для каждого к, 0<к<[п/2], имеется цепей длины п-2к + \, начинающихся набором веса к и закан¬ чивающихся набором веса п-к; 2) для любых трёх идущих подряд элементов а<р<у це¬ пи длины л-2А:+1 относительное дополнение Р' элемента Р на [а,Р) (а<Р'<у) принадлежит цепи длины п-2к-\. Разбиение на цепи
Дополнение 1. Упорядоченные множества 276 Доказательство. 2 это разбиение для В . (И) Проведём индукцией по п. На рис. 8 показано (10) (01) в (10) (00) Рис. 8 Набор (10) и является здесь относительным дополнением набора (01) на [(00), (11)]. 2 2 А теперь, используя разбиение для В , разобьём на цепи В . На -1 рис. 9а представлен куб В . Разобьём его по третьей координате на два подкуба Bq и В\ (рис. 96). Каждый подкуб разобьём на цепи так же, как на рис. 8 (рис. 9в-9г). Затем нарастим каждую цепь в В0 , добавив к ней в качестве последнего элемента максимальный набор из изоморфной ей це¬ пи в S2 (рис. 9д). Удовлетворяющее условиям теоремы разбиение 53 на три цепи, показано на рис. 9е. г) д) е) Рис 9
Относительным дополнением набора (100) на [(000), (110)] являет- 277 ся набор (010), а относительным дополнением набора (110) на [(100), (111)] —набор (101). Совершенно так же делается индуктивный шаг и в общем случае. Куб В" разбиваем по п -й координате на два подкуба Bqи В"~1, для каждо¬ го из которых по индуктивному предположению существуют удовлетво¬ ряющие условиям теоремы изоморфные разбиения на цепей. Удлиняем каждую цепь из Bq, присоединяя к ней максимальный набор из изоморфной ей цепи в £”-1. В полученном таким образом разбиении Вп на цепи число цепей длины п-2к + 1 складывается из Ск_\ - CkZ\ удли¬ нённых цепей из Bq, имевших первоначальную длину (п-\)-2к + \, и С*!,1 -CknZ\ укороченных цепей из S”-1, имевших первоначальную дли¬ ну (п -1) - 2(к -1) +1, что даёт //^к /^к—1 \ , //^к—1 sik—2\ /s~ik . s-'k-'X\ (r'k—X , r'k-2\ /~>к /~*к—1 " УСп-) + Сл-1 ) “ УСп-1 + сп-\ )~Ln ~Ln * Осталось проверить свойство 2). Если три набора а< Р <у в Вп по¬ сле разбиения Вп на цепи лежат на цепи длины п-2к + \, полученной укорочением некоторой цепи длины (п -1) - 2{к -1) +1 из В" , то набор Р' лежит на цепи длины п-2к-\, полученной укорочением соответст- и—I вующей цепи длины (п -1) - 2(к -1) -1 из В" . Если три набора а<Р<у лежат на цепи длины п - 2к +1, получен- и—1 ной удлинением некоторой цепи длины (и -1) - 2к +1 из Bq , и набор у не является максимальным в цепи длины п — 2к +1, то Р' лежит на цепи длины п-2к-\, полученной удлинением соответствующей цепи длины (л-1)-2*-1 из В%~{. Если же набор у является максимальным в удлинённой цепи, то р' является максимальным элементом в цепи из В\ , из которой был взят удлиняющую данную цепь набор. □ Ряд интересных свойств монотонных булевых функций был полу¬ чен Анселем с помощью данного разбиения на основе следующего на¬ блюдения. Разбиение на цепи
Дополнение 1. Упорядоченные множества 278 Если значения монотонной булевой функции f(x\ хп) полно¬ стью известны на всех цепях длины n-2k-l, то на каждой цепи длины п-2к + 1 имеется не более двух (соседних) вершин, значения функции в которых остаются неопределёнными. Смысл данного замечания иллюстрируется на рис. 10. Рис. 10 Пусть Д' — первый по порядку элемент цепи длины п-2к + \ такой, что на дополнении fS{ к нему = 1. Если на дополнении Д2 к сле¬ дующему элементу Д2 этой цепи /(Д2) = 1, то неопределёнными остают¬ ся значения функции на двух наборах цепи (рис. 10а). А если /(Д2)= 0, то значения функции заданы на всех элементах цепи (рис. 106). Сделанное замечание позволяет полностью решить вопрос о мини¬ мальном числе вопросов, достаточном для полного определения любой монотонной функции. Для полного определения произвольной булевой функции от п переменных необходимо выяснить её значения на 2” набо¬ рах. Однако для монотонной функции требуется меньшее число вопросов, так как единичное значение на некотором наборе распростаняется на все большие наборы, а нулевое — на все меньшие. Следствие 1. Минимальное число вопросов, достаточное для распознавания любой монотонной булевой функции от п переменных, равно + C^”^+I. Доказательство. Для полного определения монотонной функции, равной нулю в слое [и/2] (верхние нули) и — единице в слое [л/2] + 1, любому алгоритму распознавания требуется не меньше С^2^ + С^2^1"1 вопросов, так как значения в этих слоях не могут быть определены по моно¬ тонности из значений на наборах, не принадлежащих этим слоям. С другой
стороны, из сделанного замечания вытекает, что при последовательном 279 переходе от цепей длины п-2к-1 к цепям длины п-2к + \ для каждой цепи длины п - 2к +1 требуется не более двух вопросов. При чётном п кратчайшими являются цепи единичной длины, тре¬ бующие одного вопроса. Поэтому число вопросов не превышает Cf - Cf~x + 2 (C„"/2_1 - Cf~2)+ + 2 {CnJ2~2 - CnJ2~3)+...+2 C°n= dn"/2]+d„"/2]+1. При нечётном и кратчайшими являются цепи длины 2, и число во¬ просов не превышает 2(С^”-1^2 - С^"-1^2-1)+2(С*‘Л-1^2-1 - С^”-1^2-2 )+...+ + 2С°=2 С("“|)/2=d”/2]+d"/2]+1. □ В Главе 2 было установлено, что число монотонных функций от п пе- ременных превышает 2 л . Сделанное замечание позволяет оценить это число сверху. Следствие 2. Число монотонных булевых функций от п сЧл/2] переменных не превышает 3 п Доказательство. Разобьём Вп на цепи как в теореме 2, упорядо¬ чим их по неубыванию длины и будем задавать значения монотонной функции на цепях, двигаясь от коротких цепей к длинным. При этом на каждой новой цепи имеется не более двух наборов, на которых функция неопределена. Возможны три комбинации значений функции на этих на¬ борах: (0,0), (0,1), (1,1), и задание функции сводится к выбору одной из них. Поэтому всего можно задать не более 3d"/2i функций. □ Более тщательный анализ задания значений функции на цепях позво¬ лил Д. Клейтмену [7] установить, что число монотонных функций есть ^ПЦ\+о(\л\ 2 " v '. Асимптотика же самого числа монотонных функций была получена А. Д. Коршуновым уже на другом пути (см. раздел 2.6). Решётки и булевы алгебры. У-множества специального типа, называемые решётками, играют важную роль во многих разделах математики. В у-множестве Р = < X, < > элемент z называется верхней гранью элементов х и у, если x<z и y<z. Элемент z на¬ зывается точной верхней гранью хну, если для любого t, такого что x<t и y<t, имеет место z<t. Двойственным образом определяются нижняя грань и точная нижняя грань. и булевы алгебры
Дополнение 1. Упорядоченные множества 280 Точная верхняя грань, если она существует, очевидно, единственна. Она обозначается как х v у и называется также объединением х и у или супремумом хну. Единственная точная нижняя грань в случае её суще¬ ствования обозначается как хлу («пересечение хну» или тнфимум х и у »). У-множество Р = <Х, <> называется решёткой7, если лю¬ бые два элемента имеют точную верхнюю и точную ниж¬ нюю грани. Бинарные операции v и л обладают следующими очевидными ал¬ гебраическими свойствами: I. xvх = х, хлх = х (идемпотентность); II. xvy = yvx, х л у = у л д: (коммутативность); III. (xvy)vz = xv(yvz), (хлу)лг = хл(уaz) (ассоциативность); IV. ха (xvy) = x, х v (х л у) = х (поглощение). V. Если решётка имеет 0 и 1 , то для всех х справедливо также Ovx=x, 0лх = 0 и 1 vлг = 1, \ ах = х (универсальные границы). VI. Связь между отношением « < » и операциями « v », « л » выражается ус¬ ловием: неравенство х < у эквивалентно каждому из условий xv у = у и х а у = х (совместимость). Тождества I—IV полностью характеризуют решётки. Их можно было бы положить в определение решётки, определив отношение порядка х < у с помощью одного из соотношений VI. Поэтому решётку можно рассматривать как алгебраическую систему L = <A';v,a> с двумя би¬ нарными операциями v и л. Отметим, также, что в конечных решётках любое подмножество носителя имеет точную верхнюю и нижнюю грани, поэтому 6 и Т обязательно имеются. Операции v и л, а также элементы б и Т в решётке L = <Ar;v,A,6,l> двойственны, т. е. меняются места¬ ми при переходе к двойственному у-множеству, также являющемуся ре¬ шёткой. Подмножество элементов решётки, замкнутое относительно операций v и л, т. е. содержащее с каждыми двумя элементами их точные верх¬ нюю и нижнюю грани, называется подрешёткой. Любой интервал [х,у] решётки является подрешёткой, в которой х является нулём, а у — еди¬ ницей. Первоначально в отечественной литературе использовался термин структура.
Иногда в конечном у-множестве Р очевидно, например, существова- 281 ние пересечения для любых двух элементов, а существование объедине¬ ния не является столь же очевидным. В этом случае, однако, если Р имеет !■ Т , то сразу можно утверждать, что Р — решётка. § Если в у-множестве Р любые два элемента имеют пере- J, сечение (соответственно объединение), то Р называется нижней полурешёткой или л-полурешёткой (соответст¬ венно верхней полурешёткой или v -полурешёткой). Утверждение 5. Если Р=<АГ,<> — конечная нижняя по- лурешётка с I, то Р — решётка (двойственным образом, если Р — верхняя полурешётка с 0, то Р — решётка). Доказательство. Пусть Р — нижняя полурешётка с 1 . Пока¬ жем, что для любых х, у е X определён их супремум х v у. В самом деле, множество S = {z е X: z > х, z > у} непусто, так как 1 е S . Поэтому, как нетрудно проверить, х v у = A z. а zeS В качестве примера применения утверждения 5 можно привести множество подгрупп произвольной группы G, упорядоченное по включе¬ нию. Тогда I = G, 0 = {е} и, если G\, G2 с G, то Gl л G2 = Gx r\ G2 . По¬ этому множество подгрупп — нижняя полурешётка и согласно утвержде¬ нию 5 — решётка. Условия существования точных граней накладывают на у-множества жёсткие ограничения, и из 16 представленных на рис. 2 четырёхэлемент¬ ных у-множеств лишь два 11) и 16) являются решётками. Все попарно не¬ изоморфные пятиэлементные решётки представлены на рис. 11. 1) 2) 3) 4) 5) Рис. 11 Решётки и
Дополнение 1. Упорядоченные множества 282 Решётки 1)-3) самодвойственны, а 4) и 5) образуют двойственную пару. Все решётки, кроме 3), ранжируемы. Приведём наиболее известные примеры решёток из различных разде¬ лов математики. Пример 1. Каждое линейно упорядоченное множество, конечное или бесконечное, является решёткой. Таковыми являются множество действи¬ тельных чисел с обычным отношением порядка. Здесь avb = max{a,b}, алЬ = min{a,b}. Множество целых чисел и множество натуральных чи¬ сел — его подрешётки. Последняя из подрешёток ранжируема, г(п) = п -1. Пример 2. Семейство всех упорядоченных по включению подмно¬ жеств некоторого множества U , конечного или бесконечного, является решёткой. Если A, B^U, то Av В = Ли В и А л В = А п В. Наименьшим элементом здесь является пустое множество, а наибольшим — само мно¬ жество U . Атомы этой решётки — одноэлементные подмножества. Если U — конечное множество, то эта решётка ранжируема, г(А) =| А |. Пример 3. Множество натуральных чисел, упорядоченных по дели¬ мости: т < п о т | п. Супремумом здесь является наименьшее общее кратное, а инфинумом — наибольший общий делитель. Простые числа являются атомами этой решётки. Элементом 0 в этой решётке является число 1, а элемента 1 в этой решётке нет. Решётка ранжируема. Рангом натурального числа в ней является число его простых делителей с учётом их кратностей. Пример 4. Множество всех подпространств векторного пространства, упорядоченных по включению. Инфимумом двух подпространств является их пересечение (подпространство), а супремумом — их сумма, т. е. подпо- странство, образованное суммами всевозможных пар векторов, один из ко¬ торых взят из одного подпространства, а другой — из другого. Решётка яв¬ ляется конечной или бесконечной в зависимости от поля, над которым бе¬ рётся векторное пространство. В любом случае это ранжируемая решётка, в которой рангом подпространства является его размерность. Атомами решётки являются одномерные подпространства. Пример 5. Множество всех разбиений п -элементного множества, упорядоченных по измельчению, образует решётку, которая называется симметрической решёткой разбиений. Одно разбиение покрывает другое, если оно получается объединением некоторых двух его классов в один. Нуль в этой решётке — разбиение на одноэлементные подмножества, а еди¬ ница — само п -элементное множество. Число элементов решётки равно числу Белла В{п). Инфимумом двух разбиений является разбиение, в ко-
тором каждая пара элементов лежит в одном классе в том и только в том 283 случае, если они лежат в одном классе в обоих разбиениях. В соответствие с утверждением 5 определён и супремум, который в данном случае можно определить как пересечение всех разбиений, содержащих оба разбиения. Это ранжируемая решётка, в которой рангом разбиения является разность между п и числом классов в разбиении. Атомами решётки являются раз¬ биения, имеющие один двухэлементный класс и п -1 одноэлементных. Решётка 2) на рис. 11 изоморфна симметрической решётки разбиений трёхэлементного множества. Симметрическая решётка разбиений четы¬ рёхэлементного множества представлена на рис. 12. abed Используя лишь общие свойства I—VI, можно получить ряд содержа¬ тельных результатов о решётках. Утверждение 6. В любой решётке операции объединения и пересечения изотонны: если y<z, то xvy<xvz и хлу<хлг. Доказательство. Если y<z,mo х v у = (л: v х) v (у v z) = (х v у) v (х v z), откуда х v у < х v z вследствие совместимости. Второе неравенство сле¬ дует из двойственности. □ Утверждение 7. В любой решётке имеют место неравен¬ ства дистрибутивности X Л (у V z) > (х Л у) V (х Л z), х v (у л z) < (я v у) л (л: v z). (3) (4) Решётки и булевы алгебры
Дополнение 1. Упорядоченные множества 284 Доказательство. Имеем хл.у<х и XAy£y<yvz , откуда хлу< <хл(yvz). Аналогично, хлг<х и хаz<z<yvz , откуда xAz<xA(yvz). Поэтому х а (у v z) является верхней гранью для хАу и х л z, следова¬ тельно, справедливо (3). Неравенство (4) следует из (3) по принципу двой¬ ственности. о Следствие 3. В любой решётке имеет место неравенство модулярности: если x<z, то XV(yAz)<(xV y)AZ . (5) Утверждение 8. В любой решётке тождества (6) и (7) равносильны XA(yVZ) = (XAy)v(XAz) ДЛЯ Любых X, у, Z\ (6) хv(ул z) = (х vу)л (х vz) для любых х, у, Z. (7) Доказательство. Покажем, что из (6) вытекает (7). Обратная им¬ пликация будет следовать в силу принципа двойственности. Для любых х, у, z имеем: (х v у) а (х v z) = [С* V ) Л х] V [(х V у) A z] ~ = XV[(xvy)Az]~ = XV[(xAz)v(yA Z)] = = [X V (х A z)] V (j> A z) = = X V (у A z). (используя (6)) (используя поглощение) (используя (6)) (используя ассоциативность) (используя поглощение) Решётка, в которой для любых х, у, z выполняются тож¬ дества (6) и (7) (которые могут выполняться только од¬ новременно!), называется дистрибутивной. Любая цепь, как легко проверить, является дистрибутивной решёткой. Из представленных на рис. 11 всех пятиэлементных решёток не являются дистрибутивными лишь решётки 2) и 3). Можно показать, что произволь¬ ная решётка является дистрибутивной в том и только в том случае, если она не содержит подрешёток вида 2) и 3). Решётки в примерах 1 и 2, очевидно, являются дистрибутивными. Решётка в примере 3 также дистрибутивна. I Утверждение 9. Решётка натуральных чисел, упорядо¬ ченных отношением делимости, дистрибутивна. Доказательство. Числа х,у, z можно записать как произведения в; П Pj степеней всех простых pt, встречающихся в разложениях x,y,z на
простые множители с целыми неотрицательными показателями. Тогда лy)=min{ej(x),ej(y)}, е,(xv у)-шах{е,-(х),е,-(у)}, и дистрибутивность этой решётки следует из дистрибутивности трёхэлементной цепи. □ Дополнением элемента хеХ в решётке L = < Х\ v,a,0,1 > называется такой элемент х'еХ, что xvx' = l и дглд:' = 0. Если каждый элемент решётки имеет дополнение, то ре¬ шётка называется решёткой с дополнениями. Дополнение элемента в примере 2 — это обычное теоретико-мно¬ жественное дополнение подмножества. В примере 4, если векторное про¬ странство евклидово, решётка также является решёткой с дополнением, в которой дополнением подпространства является его ортогональное до¬ полнение. I Утверждение 10. В дистрибутивной решётке каждый элемент имеет не более одного дополнения. Доказательство. Пусть xva = 1, хла = 0 и xvb= 1, хлЬ = 0 . Имеем а = а л \ = ал(Ь\/х) = алЬ = (avх)лЬ =1 лЬ = b . □ Дистрибутивная решётка с дополнениями называется бу¬ левой алгеброй. Решётка в примере 2 является, очевидно, булевой алгеброй. Существование единственного дополнения в булевой алгебре позво¬ ляет рассматривать её как алгебраическую систему В = <Х; v,a,^,0,1,> с тремя операциями, бинарными v и л и унарной /, и двумя выделен¬ ными элементами 0 и 1 . При этом операции v и л, а также элементы О и 1 двойственны, а операция дополнения — самодвойственна. Утверждение 11. Операция дополнения в булевой алгеб¬ ре обладает следующими свойствами: а) (х')' = х (инволютивность); б) отображение х-*х' взаимно однозначно и антитонно: из х<у следует х'>у'\ в) справедливы законы де Моргана: (х v у)'= У л у' и (х л у)' = x'vy'. Доказательство. Инволютивность вытекает из того, что х и х’ в определение дополнения входят симметрично. Взаимная однозначность следует из существования обратного отображения.
Дополнение 1. Упорядоченные множества 286 Докажем антитонность. С этой целью покажем сначала, что х й у «> х л у' = 6. (8) В силу изотонности (утверждение 6) имеем х < у => х л у' < у л У => х л у' = 0. Обратно, в силу изотонности и дистрибутивности X /\у' = 0=> (х Ay')v у = у=> XV у = у^> х< у . Теперь, используя (8), получаем х < у ■£> х л у' = 0 о х' > у'. Законы де Моргана вытекают из принципа двойственности: xvу = (х'лу')' и xAy = (x'vу')'. □ Отмеченные в утверждении 13 свойства булевой алгебры весьма на¬ поминают свойства решётки подмножеств. И это сходство не случайно. Фундаментальная теорема американского математика Стоуна (М. Н. Stone (1903-1989)) о представлении булевых алгебр в случае конечной булевой алгебры формулируется следующим образом. Теорема 3 (М. Н. Stone, 1936). Каждая конечная булева алгебра изоморфна булевой алгебре всех подмножеств л-элементного множества и содержит 2” элементов, п = 1,2 Доказательство. Пусть B = <X\v,aJ> — конечная булева алгебра, Q = {q\,..., qn} — множество её атомов. Рассмотрим отображе¬ ние /: 2^ —► X подмножеств множества Q в элементы булевой алгебры В , которое каждому подмножеству А с Q множества атомов ставит в со¬ ответствие элемент х= V qi булевой алгебры В . Отображение / инъ- q,eA ективно, так как из V 4i = V следует, что А\ = А2 . В самом деле, 9ieA 9/6^2 если бы некоторый атом qj входил бы в А\ и не входил бы в А2, то из этого равенства следовало бы ( \ V* Aqj = ( \ U6/,i J U'e/,2 ) л qj, откуда сле¬ довало бы qj = 0, что невозможно. Покажем, что отображение / сюръективно. Для этого достаточно показать, что для любого элемента хеХ булевой алгебры В имеет место
287 х = V q,-. Пусть V qt = у. Очевидно, что у < х. Покажем, что у-х. q,ix а,<х Имеем х = х л (у v у') = (х л у) v (х л у') = у v (х л у'). Допустим, что (х л у') * 0 . Вследствие конечности алгебры В в ней существует атом qm такой, что qm < (х л у'). Из qm < х и определения у вытекает, что qm < у . Отсюда имеем Чт=Чт Л<7т ^ (*Л/) лу = * Л (/Л у) = 0 , что невозможно. Поэтому (х л у') = 6 и х = у = V qt. q<x Покажем теперь, что инъекция /: 2^ —> X переводит операции бу¬ левой алгебры Вп = < 2^; и,п,- > в операции булевой алгебры В . Нуж¬ но показать, что для А\, А2 £ б справедливы соотношения: /(4uH2) = /(4)v/(H2), ДА1пА2) = ДА1)аДА2), (9) ДА) = (ДА))'. Первое из соотношений (9) является следствием закона ассоциатив¬ ности ( \ f Л * = У A4i = q,<=A,vA2 J V *, \4ie/i2 У Второе вытекает из закона дистрибутивности ( \ ( . . \ л q,eA,nA2 V „, yq^Ai у v*, U'M у/ Третье следует из соотношений \= ДО) = f{A{KjAx) =/(H,)v/a,) O = f(0) = f(AlnAl)=f(Al)vf(Al) и единственности дополнения в булевой алгебре. о Таким образом, булева алгебра, содержащая 2” элементов, как абст¬ рактная алгебраическая система для каждого п существует в единствен¬ ном числе. Помимо алгебры подмножеств укажем ещё два содержательных уп примера булевых алгебр. Булевой алгеброй с 2 элементами является мно¬ жество всех булевых функций от п переменных с операциями дизъюнкции, Решётки и булевы алгебры
Дополнение 1. Упорядоченные множества 288 конънкции и отрицания, где функции, тождественно равные нулю и единице, являются соответственно нулевым и единичным элементами. Другой при¬ мер даёт интервал [1,N] множества натуральных чисел, упорядоченного отношением делимости, если N = p\Pi ■■■Р„ , где Р\,Р2, ..., рп — по¬ парно различные простые числа. Модулярные и геометрические решётки. Многие возникающие в различ¬ ных разделах математики решётки не являются дистрибутивными. Так не¬ дистрибутивны решётки в примерах 4 и 5. Важнейшими свойствами в этих случаях становятся модулярность и полумодулярность. Решётка называется модулярной, если для любых трёх её элементов а,Ь,с таких, что а <Ь, справедливо соотноше¬ ние flv (b ас) = Ь л(ау с). Ясно, что любая дистрибутивная решётка является модулярной. Одна¬ ко класс модулярных решёток шире класса дистрибутивных. Из представ¬ ленных на рис. 11 всех пятиэлементных решёток не является модулярной лишь решётка 3, которую для краткости в дальнейшем будем называть Пентагоном. Оказывается, что отсутствие подрешётки, изоморфной Пента¬ гону, и является критерием модулярности. Утверждение 12. Для модулярности решётки необходимо и достаточно, чтобы она не содержала подрешётки, изо¬ морфной Пентагону. aVc Рис. 13 Доказательство. Ясно, что Пентагон не- модулярен. Покажем, что любая немодулярная ре¬ шётка содержит Пентагон. Пусть L — немодуляр¬ ная решётка. Тогда в ней существуют элементы а,Ь,с, где а <Ь, такие что ачфлс)*Ьл(ачс). Ввиду (4) имеем a v (b а с) < b a (a v с). Покажем, что пять элементов с, avc, Ьас, аv(6ac), Ьл(а vc) по¬ парно различны и образуют Пентагон (рис. 13). Имеем Ьлс<а\/флс)<Ь/\{а\/с)<а\/с, отку¬ да b ас Ф а у с . Равенство b ас = av (Ъ ас) невоз¬ можно, так как тогда было бы а < Ь и а<с, от¬ куда (b л с) = b л (a v с). Двойственно, b A(av с)* av с. Далее имеем [bA(avс)]ас = [av(bас)\ас = bас и двойственно, и элемент с не совпадает ни с одним из четырёх остальных. □ Одним из основных свойств модулярных решёток является следую¬ щий «принцип транспозиции».
Утверждение 13. Если а и Ъ — элементы модулярной 289 решётки, то интервалы [алЬ,д] и [b,avb\ изоморфны. Изоморфизм устанавливается взаимно обратными ото¬ бражениями <p(x) = xvb (алЬ<х<а), у/(у) = у a a (b<y<avb). Доказательство. Следует из изотонности операций v и л (ут¬ верждение 6). □ Следствие 4. В модулярной решётке из алЬ-<а и алЬ<Ь следует а<а\/Ь и b-<avb. Двойственно, из a<awb и b-<avb следует алЬ<а и алЬ<Ь. Решётка, в которой из алЬ^а и алЬ<Ь следует a<avb и b-<avb, называется полумодулярной сверху или просто полумодулярной. Решётка, в которой из a^avb и b<avb следует алЬ-<а и алЬ^Ь, называется полумодулярной снизу. Отметим, прежде всего, следующее свойство полумодулярных решё¬ ток конечной длины. Утверждение 14. Если в полумодулярной решётке ко¬ нечной длины а^Ь, то для любого элемента с выполне¬ но либо awc-<bvc, либо avc = bvc. Двойственно, если в полумодулярной снизу решётке ко¬ нечной длины Ь<а, то для любого с либо Ьлс^алс, ли¬ бо b лс = а лс. Доказательство. Если avc = =а , то bvc = b и av с ■< bvc. Если a<avc и b*avc, то bvc=bv(avc) и a v с -< bv с в силу полумодулярно¬ сти. Пусть теперь /(а,av с) = к> 2 и а = а0 <в\ <ак =avc —насы¬ щенная цепь, соединяющая а и avc. Если а\ =Ь, то avc-bvc. В противном случае, используя полумодулярность, последовательно получаем a^bva^, a2<bv а2 , ..., ак -<b\/c (рис. 14). bVc Рис. 14 □ Модулярные и геометрические решётки
Дополнение 1. Упорядоченные множества 290 Утверждение 15. Для полумодулярности решётки конеч¬ ной длины с 0 необходимо и достаточно, чтобы она была ранжируемой и её ранговая функция удовлетворяла соот¬ ношению г(х) + г(у) > г(х л у) + r(x v у). (Ю) Двойственно, для полумодулярности снизу решётки ко¬ нечной длины с 0 необходимо и достаточно, чтобы она была ранжируемой и её ранговая функция удовлетворяла соотношению г(х) + г(у) < г(х а у) + r(x v у). Доказательство. Пусть решётка L ранжируема и её ранговая функция удовлетворяет соотношению (Ю). Тогда, если х/\у<х и хлу-< у, то г(х) = г{хлу) +1 и г{у)=г{хлу) + \. Поэтому r(x vу) = r(x) +1 = г(у) +1, откуда х~< xv у и у < xv у ,т. с. L полумодулярна. Обратно, пусть L полумодулярна. Докажем, что L ранжируема. Допустим противное. Тогда существует интервал [х,у] такой, что между х и у имеются насыщенные цепи различной длины. Пусть [х,у] — интервал минимальной длины с этим свойством. Пусть х < щ < и2... -< us -< у и х -< V) -<v2...<vt < у две насыщенные цепи различной длины. Из и х < V] следует, что И| ч Н| v V] и У| ч Hj v V|, а отсюда вытека¬ ет, что в одном из интервалов [щ,у] или [vj,y] длины 1(х,у)~ 1 имеются насыщенные цепи различной длины (рис. 15). Осталось показать (10). Пусть м0 = х л у -<щ ч ...ч ик_\ ч ик = х — на¬ сыщенная цепь, соединяющая хлу и х, и пусть v; = у v и,-, i = 0,1,2,, к . В силу утверждения 14 для г = 1,2,... ,к либо vf_j 4v,-, либо v,_! =v,-. Поэтому l(xAy,x")>l(y,xv у), т. е. г(х) - г{х л у) > r{x v у) - г(у), откуда следует (10). □ Обобщая предыдущие результаты, можно дать четыре характериза¬ ции для модулярных решёток конечной длины. Теорема 4. В решётках конечной длины следующие че¬ тыре условия равносильны, и каждое из них определяет модулярную решётку: У
291 1) для любых трёх элементов а,Ь,с решётки та! а <Ь, выполнено av(bAc) = bA(avc); 2) в решётке отсутствует подрешётка, изоморфн тагону; 3) решётка полумодулярна сверху и снизу; 4) решётка ранжируема, и её ранговая функция творяет условию г(х) + г(у) = г(х а у) + r(x v у). Доказательство. В утверждении 12 показано, что 1) <=> 2). Согласно следствию 4 имеем 1) => 3), а согласно ут- у верждению 15 3) <=> 4). Для завершения доказательства по- кажем, что 4) => 2). Допустив существование подрешётки, изоморфной Пентагону (рис. 16), из 4) имеем r(y) + r(z) = =/•(*)+r(z)=г (0)+г(1), что невозможно, так как г(у)>г(х). □ В решётке векторных подпространств (пример 4) усло¬ вие 4) — это известное в линейной алгебре соотношение между размер¬ ностями подпространств. Отсюда вытекает Следствие 5. Решётка подпространств векторного про¬ странства модулярна. Симметрическая решётка разбиений в общем случае, как можно уви¬ деть из рис. 12, не является модулярной. Однако решётка на рис. 12 явля¬ ется полумодулярной (сверху). Это верно и в общем случае. Утверждение 16. Симметрическая решётка разбиений полумодулярна. Доказательство. Пусть для разбиений х и у справедливо ХАу<х и хАу< у ,и разбиение х а у содержит классы а,р,у,8 . Тогда разбиение х получается из х а у слиянием двух классов, например а и Д, а разбиение у также получается из х а у слиянием двух классов, причём возможны два случая: 1) сливаются Д и у или 2) сливаются у и 8 . В пер¬ вом случае разбиение xv у получается из ха у слиянием в один класс а , р и у, а во втором в хvу возникают классы аиД и yuS. В обо¬ их случаях x<xvyuy~<xvy. □ Решётка L называется атомарной, если каждый элемент L можно представить как объединение атомов. Модулярные и
Дополнение 1. Упорядоченные множества Геометрической решёткой называется атомарная полумо- дулярная решётка конечной высоты. Конечные геометрические решётки — часто встречающийся объект в дискретной математике. В качестве простейшего примера можно привести решётку остовных подграфов графа G = (V,E), упорядоченных по вклю¬ чению рёбер. Нулевым элементом здесь является пустой подграф, единич¬ ным — сам граф G, а атомы решётки — это однорёберные подграфы, единственное ребро которых е е Е. Решётка в примере 4 — это модулярная геометрическая решётка, так как каждое подпространство порождается одномерными подпространст¬ вами. Решётка в примере 5 — полумодулярная геометрическая решётка, её атомарность также легко проверяется. Обратимся теперь к рассматривавшейся в разделе 2.8 системе из ко¬ нечного множества гиперплоскостей в евклидовом пространстве Еп. За¬ дадим на этой системе решётку, элементами которой будут аффинные подпространства-пересечения гиперплоскостей. Чтобы решётка была ато¬ марной, упорядочим подпространства обратно включению: s <t <=> 5 □ /, так что нулевой элемент решётки — само подпространство Еп, а гиперп¬ лоскости — атомы этой решётки. Утверждение 17. Решётка аффинных подпространств- пересечений конечного множества гиперплоскостей в Еп является полумодулярной геометрической решёткой. Доказательство. Если гиперплоскости центрированы, то любые их пересечения являются векторными подпространствами, и svt = snt. Элемент SAt решётки определяется как пересечение множества гиперп¬ лоскостей, содержащих как s, так и t. Если таких гиперплоскостей нет, то в качестве s At берётся Еп. Таким образом, размерности подпространств SAt и л-1 связаны соотношением dim(5 -И) < dim(5 л t). Если 5 и t — два подпространства-пересечения, то размерности их подпространств пе¬ ресечения 5П/ и суммы 5 +1 связывает известное из линейной алгебры соотношение dim 5 + dim t = dim(5 n t) + dim(5 + t). Отсюда, определив ранг подпространства-пересечения как r(s)=n- -dim5, получаем r(s) + r(t) > r(s v t) + r(s a t), (ll) и согласно утверждению 15 решётка полумодулярна. В случае нецентрированного расположения гиперплоскостей аффин¬ ные подространства-пересечения могут и не пересекаться между собой, так что операция s v / не определена. Сделать эту полурешётку решёткой
можно, пополнив её единичным элементом, в качестве которого берётся 293 «пустое аффинное подпространство». Показать, что в полученной таким образом решётке справедливо (11), и она является геометрической, можно, сведя этот случай к центрированному следующим образом. Увеличим раз¬ мерность исходного пространства на единицу и возьмём в En+l точку вне прежнего пространства Еп (которое является в En+i гиперплоскостью). Увеличив размерность гиперплоскостей также на единицу, сделаем так, чтобы все они проходили через эту точку. В аналитической форме этот процесс выражается в том, что уравнение каждой гиперплоскости Я]*] + ... + апхп =Ь преобразуется к виду «1*1 +... + апхп -Ьхп+1 = 0, что и задаёт в En+l гиперплоскость, проходящую через начало координат. Проходящие через начало координат в En+i гиперплоскости рассматри¬ ваются теперь как элементы решётки, единичным элементом которой яв¬ ляется начало координат. □ Алгебра инцидентности. Мы переходим к изучению обращения Мёбиуса на у-множествах. Хотя его корни уходят почти на двести лет в прошлое, бурное развитие этой теории началось лишь после работы американского учёного Джан-Карло Роты (1932-2000) [12], существенно повлиявшей на развитие комбинаторного анализа. В этом и последующих разделах наше внимание будет ограничено локально конечными у-множествами, на кото¬ рых будут рассматриваться функции инцидентности. Функцией инцидентности f(x,y) локально конечного 'У у-множества Р=<Х, <> называется функция f:X —»R такая, что f(x,y) = 0, если не выполнено х<у. Таким образом, функция инцидентности фактически является функ¬ цией интервалов /([х, у]), но записывается как /(х, у). Операции сложе¬ ния и умножения на число, задающие структуру векторного пространства, на множестве функций инцидентности определяются обычным образом: (/+ g)(x,у) = f(x,у)+g{x,у) и (c-f)(x,y)=c-f(x,y). Кроме того, на мно¬ жестве функций инцидентности вводится операция умножения (свёртки), превращающая векторное пространство в алгебру (f-g)(x,y)= Y, Ах’гШ2’У) ■ x<z<y Множество функций инцидентности с определёнными на нём опера¬ циями называется алгеброй инцидентности у-множества. Умножение ас¬ социативно и имеет единицу, в качестве которой выступает дельта-функция Алгебра инцидентности
Дополнение 1. Упорядоченные множества 294 S(x,y) = 1, если х = у; С(х,у) = 10, если х * у. Другой важнейшей функцией алгебры инцидентности является дзе¬ та-функция Г1, еслих<у\ [О - в противном случае. Для функции инцидентности / существует обратная функция /-1, т. е. такая что //"' = /-1/ = 8, в том и только в том случае, если /(х, х) Ф О для всех х е X . Функция, обратная дзета-функции, называется функцией Мёбиуса и обозначается £~1(х,у) = р(х,у). Таким образом, по определе¬ нию имеем (12) Эти результаты можно вывести и непосредственно. Однако, ограни¬ чившись случаем конечного у-множества, в их справедливости можно сра¬ зу убедиться с помощью матричного представления алгебры инцидентно¬ сти. Продолжив частичный порядок до линейного (следствие 1) и перену¬ меровав в соответствии с ним элементы у-множества X = {xj, х2,..., х„}, каждой функции / алгебры инцидентности поставим в соответствие матрицу Ау =(а,у), где ау = /(х,-,ху), которая в силу определения функ¬ ции инцидентности будет верхней треугольной матрицей. Теперь все вышеперечисленные результаты являются следствием из¬ вестных свойств алгебры матриц и очевидного изоморфизма между алгеб¬ рой инцидентности и алгеброй матриц, при котором дельте-функции соот¬ ветствует единичная матрица. Отметим также, что ввиду локальной ко¬ нечности сделанное ограничение не является существенным. Найдём степени произвольного элемента / в алгебре инцидентности. Имеем f2(x,y)= X /(^^)/(z,,y);. x<z^y f(x,y) = X f{x,z{)f(z\,z2)f(z2,y)\ X<Z| <z2 <y fk(x,y)= X f(x,zl)f(zbz2)...f(zk_l,y). x<zl<...<zk_i<y Положим теперь / = £-8 . Тогда Г1, если х<у; (£-8)(х,у) = О, если х = у,
а 295 (£-S)k(x,y)= X (C-S)(x,zl)(t-S)(zl,z2)...(C-S)(zk_l,y), X<Z\<...<Zk^<y и мы получаем Утверждение 18. (£-5)к(х,у) есть число цепей длины к между х и у. Обращение Мёбиуса. В конечном линейно упорядоченном множестве Р = = < X, < >, где Х\ < *2 х„, нередко приходится находить неизвест¬ ную числовую функцию F: X -> R, по известной функции G(x), связан¬ ной с F(x) соотношением (i3) Задача решается просто: F(xi) = G(xi)-G(xi_l). (14) И обратно, из (14) следует (13). Вот типичный пример. Игральная кость бросается к раз. Пусть Y — максимальный результат среди к бросаний. Требуется найти вероятности P{Y=г'}, г = 1,2,...,6 . Вероятность Pk{Y <i} находится легко: Pk{Y < /} = = (i/6)k . Отсюда, следуя вышеприведённой методике, получаем Рк {Y = 1} = Pk{Y< i} -Pk{Y < г -1} = (i/6)k -(i/6)k~'. Обращение Мёбиуса представляет собой обобщение данного метода на произвольные локально конечные у-множества. По заданной на таком у-множестве P = <Z, <> функции G(x) = ^jz<xF(z) с помощью обра¬ щения Мёбиуса находится функция F(x) . Теорема 5 (формула обращения Мёбиуса). Пусть Р = =<Х, <> — локально конечное у-множество с б, F:X->R и G.X-+R — две заданные на нём вещественнозначные функции, связанные соотношением G(x)= £ F(y). (15) У€[0,Х] Тогда F(x)= ]£ G{y)/j(y,x), (16) уф,х] и обратно, из (16) следует (15). Обращ ение Мёбиуса
Дополнение 1. Упорядоченные множества 296 Доказательство. Определим функцию инцидентности f(x,y) со¬ отношением f(x,y) = F(y), если х < у, и функцию инцидентности g(x,y), которую зададим соотношением g = f<- (17) Тогда g(x,y) будет связана с G(y) соотношением G(y) = g(0,y). Помножив обе части равенства (17) справа на р , получаем Далее имеем g'F-f- F(x) = ДО,*) = (gp) (0,x) = Y g(0,y)M (y,x) = Y G(y)M O',*) ■ y<x y< X □ Из принципа двойственности получаем другой результат. Теорема 5bis. Пусть Р=<А',<> — локально конечное у-множество с 1, F:X->R и G:X->R — две заданные на нём вещественнозначные функции, связанные соот¬ ношением gw= Y р(у)- о») Тогда F(x)= £ G(y)M*,y), (19) уФ, i] и обратно, из (19) следует (18). Свойства функции Мёбиуса. Из (12) непосредственно следует р(х,х) = 1 для всех хеХ , Y F(z, У) - 0 для любого интервала [х, у]. гф,у] Y p(x,z) = 0 для любого интервала [х,у], *Ф,У] Ввиду теорем 5 и 5bis важное значение приобретает умение вычислять функцию Мёбиуса для различных типов у-множеств. В принципе эта задача решается с помощью соотношений (20)-(22). В частности, если х -< у , то р(х,у) = -1. Если же 1(х,у) > 2 , то р(х,у) может находиться последова¬ тельным удлинением цепей, двигаясь либо от х к у , с помощью вытекаю¬ щего из (21) рекуррентного соотношения (20) (21) (22)
(23) Р(х,у) = - Z M(z,y), гф.у] либо двигаясь от у к Jt,c помощью вытекающего из (22) соотношения М(х,у) = ~ X (24) гф.у) Воспользовавшись одним из этих двух спо¬ собов, читатель найдёт, к примеру, что в у-мно- жестве, заданном диаграммой Хассе на рис. 17, М(х,у) = 4. Для линейно упорядоченного множества Р= = < X, < > , где х1 -<х2 хп, из соотношений (23), (24) получаем У Рис. 17 M(Xi,Xj) = 1, если j = i -1, если j = i+1 О-в противном случае, (25) и формулы (18)—(19) становятся привычными соотношениями (13)—(14). Приведём теперь некоторые общие результаты, относящиеся к функ¬ ции Мёбиуса в у-множествах различного типа. Утверждение 19. Пусть Р)=<ЛГ,<> и Р2 = < Y, < > — два у-множества с функциями Мёбиуса соответственно и Рр2 , Р = Р,хР2 — их прямое произведение. Функция Мё¬ биуса Рцхр2 их прямого произведения есть MptxP2 ((х,, Л),(*2,.У2)) = /Vх! ’х2)^2 O'!>У2) • Доказательство. Для (xj,у^) <, (х2,у2) проверим (20), (22). Z MptxP2((X]>yMu,v))= (дг1,^|)<(ы,у)<(дг2,у2) = Z Mpt(,xbu)jjp2(jbv) = (AT|,y,)<(u,v)<(jc2,>>2) / V ^ Z Мр^и) {.Xt<U<X2 Z Vp2(y\,v) \yt<v<y2 =8(xl,x2)S(y{,y2) = S((xl,yi),(x2,y2)]. □
1. Упорядоченные множества 298 В качестве непосредственного следствия получаем Следствие в. В конечной булевой алгебре 2Л с обычным порядком по включению для Ах,А2сА и AxczA2 имеем МА,,А2)*(-1)1^1. (26) Утверждение 20 (Ph. Hall, 1936). В у-множестве с 0 и I (6*1) /лф,\) = -сх +с2-с3 + ... + (-1)”с„, где ск — число цепей длины к между 6 и 1, а п — длина длиннейшей такой цепи. Доказательство. С помощью утверждения 18 получаем рфА)={8+(<;-8)ухф,\)=(д-(<;-8)+((;-5)2-(.<;-8)ъ+..л +(-1)л(С-^)л)(бД)=-с1+с2-с3+... + (-1)"сл. □ Утверждение 21 (PH. Hall, 1936). Если в конечной ре¬ шётке с 6*1 единица не есть объединение атомов, то /Дб,!) = 0. Двойственно, если 6 не есть пересечение коа¬ томов, то //(6,1) = 0. Доказательство. Доказательство проведём индукцией по длине решётки /(6,1). Если /(б,Т) = 1, то //(6, Т) = -1. Пусть утверждение верно для всех решёток с /(6,1) < и -1. Пусть теперь 1 не есть объединение ато¬ мов и /(6,1) = п . Тогда, если ах, а2,..., ак — атомы решётки и z = ах v va2 v...vak, то rd.B силу предположения индукции, применённого к решётке [0,х], где х < 1 , имеем //(6,х) = 0 для х г [6,z], т. е. не являю¬ щихся объединением атомов. Имеем 0=2>(б,х) = д(б,1)+£мб,*) = X Х<1 Л)+ Z мб,х)+ £ мб,*)=мб,Т). □ *40,г] дт<1 *40,z] Утверждение 22 (L. Welsner, 1935). В конечной решётке с 6*1 для любого фиксированного а*6 справедливо Z Мб,х) = 0. *: xva=l
299 Двойственно, для любого а*1 справедливо X _ М*Л) = о. х:дсла=О Доказательство. Доказательство проведём индукцией по длине решётки /(0,1). Если /(0,1) = 1, то необходимо а = 1 и ^ т_т//(0>*) = =д(0,0)+д(б,1)=0. Пусть X*-jtva=T М0,х)=0 для всех решёток с /(0,1) < •; С < п -1. Докажем его справедливость для решёток с 1(0, у) = п . Имеем Х_ X А(0,^)= х а<_у<1 x:xva=y = X м(0,х)+ X. X м(0,х)= £ //(б.дг), jc:^va=l a^ycl jc:jcva=y x:xva=l так как по индуктивному предположению м(0,х) = 0. □ *: xva=y Из утверждения 22 вытекают формулы, удобные для вычисления функ¬ ции Мёбиуса в полумодулярных решётках. Следствие 7. Пусть а — атом полумодулярной решётки с 0*1, Y — множество её коатомов. Тогда а(оД)=- X мФ,х). хеУ _ jcva=l Двойственно, если а — коатом, Y — множество атомов, то А(бД) = - X М*Л)- хе У __ хла=0 Доказательство. Если a — атом, х* 1 и xva = 1, то гла = 0. Тогда из условия полумодулярности г(х) + г(а) > г(х л а) + r(x v а) следу¬ ет, что х является коатомом, и доказываемые формулы вытекают из утвер¬ ждения 22. □ Из следствия 7 индукцией по длине решётки получаем Следствие 8 [12]. Для функции Мёбиуса полумодуляр¬ ной решётки справедливо: а) fx(x,y)* 0, если х<у; б) если z-<y, то /л(х,у) и ц(х,г) имеют противоположные знаки. функции Мёбиуса
Дополнение 1. Упорядоченные множества 300 Примеры обращения Мёбиуса. Приведём несколько примеров, демонстри¬ рующих широту применимости обращения Мёбиуса в комбинаторном анализе. 1. Формула решета. Нашей целью является обобщение результа¬ тов раздела 1.3. Пусть на конечном множестве U определена функция т : U -»[0,оо). Для каждого подмножества t/'сС/ определим величину т(1/') = ^,иец'т(и) > которую будем называть мерой множества U'. Две наиболее часто встречающиеся меры — это мощностная и вероятностная. Если т(и) = 1 для всех и е U , то мера подмножества совпадает с его мощностью. А если т(и) = 1, то мера называется вероятностным распределением, и меры подмножеств являются вероятностями соответст¬ вующих событий. Пусть на множестве U задана система подмножеств Y={£/], £/2, ••• > у U„}. В булевой алгебре 2 подмножеств множества Y с обычным по¬ рядком по включению подмножеств для Y'cY определим функцию и функцию G<v'>HfW4 Функция F(Y') есть, таким образом, мера множества элементов, принад¬ лежащих всем подмножествам из Y' и только им. А функция G(Y') — мера множества элементов, принадлежащих подмножествам из Y' и, воз¬ можно, некоторым другим подмножествам. Из определения функций F и G имеем G(Y')= X W- Y'aY' Отсюда, используя (19) и (26), получаем F(Y')= X G(Y*)ju(Y',Y’) = Y'aY' z g(y")(-i)|y’hy'i = x (-i)|Y'HY4n„.6Y"4 y'3Y' Y'aY' v Найдём теперь меру m/ множества элементов, принадлежащих в точ¬ ности / из п подмножеств. Имеем
301 ™/=EF(Y'>=£ Z G(Y')(-\f"^=Y, E G(Y')(-lf'l-' = |YW |Y'|=/ Y’aY' |Y'|>/ |Y'H Y’cY' =Z Z Z G(Y')(-1)7W = Z Z CljG(Y')(-l)j-l = j=l |Y'|=j |Y'N H |Y’N Y'cY' =t(-iг1с) z g(y*)= Zc-d^c} z *(f| j=l |Y'|=j j=l |Y'|=y V t/,sY Мера же множества элементов, не принадлежащих ни одному из под¬ множеств, есть -0 = ZH)7 Z /n(fVeY*t/') • Полученные формулы часто называют формулами решета. Они обоб¬ щают формулы включения и исключения (1.3.6), (1.3.8), так как, если т — мощностная мера, то Z|Y’|=ym(ri[/.eY't/') = Sj ■ 2. Биномиальное обращение. Пусть А — конечное множество мощ¬ ности т. Рассмотрим булеву алгебру 2Л с обычным порядком по включению. Пусть на её элементах A'qA задана функция F(A') = F{\A'\), зависящая лишь от мощности подмножества А', и положим F(A') = at, если \A'\ = i. Далее, как обычно, определим функцию G(^')=Z/4'C/i'F^"^ • Тогда G(A') также зависит лишь от мощности А', и пусть G(A')-bj, если \A'\ = i. В этом случае (6) и (26) дают важную формулу биномиального обращения. Теорема 6 (формула биномиального обращения). Если числовая последовательность Ь0, Ь\, Ъ±,..., Ьт,... связана с последовательностью а0, ах, а2,..., ат,... соотношениями т ът =Y<Cmai’ т = 0,1,2,..., (27) 1=0 то последовательность а0>а1>а2 ат>••• связана с по¬ следовательностью Ь0, 6|, Ь2,..., Ьт,... соотношениями т «m=ZН)М~'Ф), т - 0.1,2,..., 1=0 и обратно, из (28) вытекает(27). (28) Примеры обращения Мёбиуса
Дополнение 1. Упорядоченные множества 302 Соотношения (27) и (28) называются взаимно обратными биномиаль¬ ными соотношениями. В качестве примера использования их в комбина¬ торике выведем из (1.1.12) формулу Стирлинга (1.1.5). Перепишем (1.1.12) в виде т тп=ХС^‘„П /=0 и будем рассматривать это тождество как условия (27) теоремы 6, где а,- = 5' j!, bm = тп, а п — некоторая константа. Тогда (28) даёт 1 т s; mlSo 3. Теория чисел. Обратимся теперь к теории чисел и рассмотрим у- множество Р = < N, \ > — множество натуральных чисел с отношением делимости. Функцию Мёбиуса ju(l,n) в этом у-множестве по принятой в теории чисел традиции принято записывать как pin). Тогда ввиду оче¬ видного изоморфизма между интервалами [1,и] = [t,tn\ функция Мёбиуса произвольного интервала p(d,n), где d \ п , запишется как p(n/d). Пусть п = р\хр*2 •••Рш” • Найдём pin). У-множество, образованное степенями простого числа 1,р,р2,..., рк , является в Р = < N, \ > цепью, которую будем обозначать как [1 ,...,рк]. Интервал [1, л] в P = <N, |> можно рассматривать как прямое произведение т таких цепей [1,«] = [1,...,/?1А:,]х[1,...,/>22]х...х[1,...,/>*«]. Теперь с помощью (25) и утверждения 19 для функции Мёбиуса по¬ лучаем 10, если п не свободно от квадратов; (-1)т, если п — произведение т различныхпростыхчисел. Теорема обращения принимает вид Если G(n) = ^F(d), то Fin) = ^Gid)pin/d). d\n d\n Используя тождество для функции Эйлера <р{п) (см. Вводную главу) !>(*)=», d\n можно с помощью обращения Мёбиуса выразить (pin) через делители числа п как
<p(n) = ^d/i(n/d). 303 d\n В таком виде обращение Мёбиуса и было впервые введено в 1832 го¬ ду немецким математиком и астрономом, профессором Лейпцигского уни¬ верситета Августом Фердинандом Мёбиусом (1790-1868). Сто лет спустя Ф. Холлом и Л. Вейснером обращение Мёбиуса было распространено на произвольные у-множества, и, наконец, после работы Дж.-К. Рота [12] оно заняло постоянное место в техническом арсенале современной перечисли¬ тельной комбинаторики. Помимо теории чисел Мёбиус плодотворно рабо¬ тал в области проективной геометрии, где ввёл однородные и барицентри¬ ческие координаты, а также бесконечно удалённые элементы. Но самым известным открытием немецкого профессора остаётся его знаменитая од¬ носторонняя поверхность — лист Мёбиуса. 4. Векторные пространства над конечными полями. Читатель, впер¬ вые сталкивающийся с векторными пространствами над конечными поля¬ ми, в качестве модели л -мерного векторного пространства Vп над полем Галуа F = GF(q), где q = рк , может представлять себе множество набо¬ ров длины л с компонентами из GF(q), наделённое обычными вектор¬ ными операциями поэлементного сложения наборов и поэлементного ум¬ ножения набора на элементы поля. Векторное пространство Vя над полем из q элементов содержит q" векторов. Для нахождения числа подпро¬ странств заданной размерности нам потребуются многочлены Гаусса. Многочленом Гаусса (х), где пит неотрицательные целые числа и п>т, называется выражение (*) = (*) = (х” -l)(x"_1 -l)...(x”_m+I -1) (xm-l)(xm“'-l)...(x-l) при этом полагается (х) = 1 и (х) = 0 , если т > п Легко проверяются следующие свойства многочленов Гаусса: м= п п — т М; «= л-1 т (х) + х" л-1 т-1 (х). (29) Из (29), в частности, следует, что (х) действительно является мно¬ гочленом, который имеет степень т(п - т). Примеры обращения Мёбиуса
Дополнение 1. Упорядоченные множества 304 Отмеченные свойства многочленов Гаусса напоминают свойства биномиальных коэффициентов, сходство с которыми дополняется равен¬ ством lim X—>1 М = С. Теперь мы готовы к рассмотрению решётки подпостранств простран¬ ства Vn. Утверждение 23. Число подпространств размерности т в векторном пространстве Vn над полем из q элементов п равно т (я)- Доказательство. Выбрать в Vn упорядоченный набор из т ли¬ нейно независимых векторов можно (qn-l)(qn-q)(qn~q )...{qn-qn~m+ ) способами. А выбрать подобный набор в подпространстве размерности т можно (qm-\)(qm-q)(qm-q2)---(qm~qm i) способами, причём каждый та¬ кой набор однозначно определяет подпространство, так как является его ба¬ зисом. Поэтому в V" существует (qn-1 ){qn-q)(qn-q2)... (qn~ qn~m+l) (qm-l)(qm-q)(qm-q*)...(q--q (q) подпространств размерности m . m-\ ) Нашей следующей задачей будет нахождение функции Мёбиуса в решётке векторных подпространств, упорядоченных по включению. Раз¬ мерность подпространства FcF" будем обозначать dim V. Утверждение 24. Пусть F'cTcF", тогда p(y",V') = (-l)*qCk , где к = dimV'-dimV . Доказательство. Интервал [У,У] изоморфен решётке подпро¬ странств факторпространства V'/V", так что [У,У]=[0,Ук], где к=dimV- -dim К”. Поэтому достаточно показать, что цп = ju(0,V ) = (-1) q " . Вос¬ пользуемся следствием 7, выбрав в качестве а одномерное подпространство. Тогда в качестве х должно быть выбрано не содержащее его (и -1) -мерное я 1, . Гл-1 л-1 1 подпространство. Таких подпространств (q) = qn ', что —1 п С2 даёт /лп = -q" /лп-\ ■ Вместе с условием /Jq = 1 это даёт /лп = (-1) q ". □
В качестве примера использования этого результата рассмотрим зада- 305 чу нахождения вероятности того, что линейная оболочка к случайно вы¬ бранных в Vn различных ненулевых векторов совпадёт с V" . Для её ре¬ шения найдём в Vn число подмножеств мощности к>п, которые не со¬ держат нулевого вектора и линейные оболочки которых совпадают с V". Для подпространства V с: Vn обозначим через F(V) число не содержа¬ щих нулевого вектора подмножеств векторов из V мощности к, линейная оболочка которых совпадает с V . Через G(V) обозначим число таких же подмножеств, линейная оболочка которых содержится в V . Тогда имеем СкЛтУ =G(V)= X F(V). 4 V'cV Применение к этому соотношению обращения Мёбиуса даёт F(V)= X G(V')m(V',V)= X Ck&mV u(V',V). V'<zV V'qV 4 Полагаем теперь V = Vn и с помощью утверждений 23 и 24, учиты¬ вая, что СкЛтУ ^ = 0 если dimF < log9(& + l), получаем F{Vn)= £ (-1 f~m "i=]Iogm(A+l)[ Ck aCn~m V-i9 Теперь искомая вероятность находится как F{Vn)jckn ( . 5. Симметрическая решётка разбиений. Пусть П„ — симметрическая решётка разбиений л-элементного множества. Для нахождения //(0,1) = = /ип воспользуемся следствием 7, взяв в качестве коатома а разбиение {1,2,...,л-1}и{л}. Тогда атом х, удовлетворяющий условию хл а = 0, будет одним из тех п -1 атомов, единственный двухэлементный блок ко¬ торых имеет вид {i,n}, i = 1,2,...,л-1. Интервал [х, 1 ] в этом случае изо¬ морфен решётке разбиений (л -1) -элементного множества. Поэтому /лп = = -(л - , откуда по индукции получаем /лп = (-1)"-1 (л -1)!. Если теперь а, Р е П„ и а < (5, то /3 получается из а слиянием не¬ которых из классов разбиения. Поэтому /7 можно рассматривать как раз¬ биение на множестве классов разбиения а . Интервал [«,/?] является пря¬ мым произведением решёток, соответствующих каждому такому слиянию. Если разбиение а содержит / классов, то Р можно охарактеризовать стан- Примеры обращения Мёбиуса
Дополнение 1. Упорядоченные множества 306 дартным набором (y'i,72» ••• >-//)> задающим тип разбиения (^! (/,•=/). Тогда [а,Я = п/'хП^х...хП/', и используя утверждение 19, можно записать И(а,Р) = Пм!‘ = П((-1)М0'-1)!)Л = Н)й-|(Л_1)П((/-1)!)Л . (30) /=1 /=1 1=1 Рассмотрим приложение полученных результатов в теории графов. На п помеченных вершинах может быть задано 2 " различных графов. Сложнее ответить на вопрос, сколько из них окажутся связными. Обращение Мёбиуса на решётке разбиений даёт подход к решению этой проблемы. Пусть П„ — симметрическая решётка разбиений п -элементного множества, являющего¬ ся множеством вершин. Для /3 е П„, пусть F(/3) — число графов, для ко¬ торых классы разбиения р являются компонентами связности, a G(P) — число графов, у которых компоненты связности образуют разбиение а , яв¬ ляющееся измельчением разбиения р, т. е. а < р . Тогда, очевидно, имеем G(p)= ^F(a), а<р и применяя к этому равенству обращение Мёбиуса, получаем F(p)= X G(a)M(a,P). а<.р I Jtf Если разбиение а имеет тип (Д,^, ... >jn). т° G(a) = 2'-‘ .По¬ этому, полагая Р = 1 и используя (30) и (1.1.1), получаем, что число связ¬ ных помеченных п -вершинных графов равно Vп ; гЛ h л го П"=|(,'!>/'ГГ=1Л! ly,+...+iy„=/i 2SmV/C/ (_i)S”=i(yi—1)J^[^=1 ((/-1)!)7' = =«! h h>- о Пм'Л П!1,Л lj\+...+nj„=n /.I 6. Решётка пересечений гиперплоскостей. Рассмотрим теперь гео¬ метрическую решётку аффинных подпространств-пересечений конечного множества гиперплоскостей в евклидовом пространстве, фигурировавшую в утверждении 17. Задача о числе областей разбиения евклидова простран¬ ства гиперплоскостями также может быть атакована с помощью обраще¬
ния Мёбиуса, если в качестве обращаемого соотношения, использовать 307 эйлерову характеристику. В результате пересечений гиперплоскостей воз¬ никают области различной размерности: точки, отрезки прямых, двумер¬ ные области, трёхмерные области и т. д. вплоть до п -мерных областей. Подобные области в топологии называют клетками. Соотношение, извест¬ ное в топологии как эйлерова характеристика, связывает числа а,- клеток различных размерностей / = 0, 1,.... и в знакопеременную сумму, значение которой зависит только от размерности пространства Z н)Ч=(-i)". /=0 Это соотношение аналогично формуле Эйлера для многогранников, чем и объясняется его название. Чтобы воспользоваться этим соотноше¬ нием для нахождения числа областей разбиения пространства, перепишем сумму по элементам решётки, в качестве которых здесь выступают под¬ пространства-пересечения. Каждое подпространство-пересечение s раз¬ бивается гиперплоскостями, отличными от тех, которые его образуют, на c(s) областей. Взяв знакопеременную сумму числа подобных областей по всем вложенным в s подпространствам, получаем X (-l)dim'c(0 = (-l)dim*. l: fes Применяя к этому равенству обращение Мёбиуса в двойственной форме, получаем (-l)dimic(s)= X (-l)dim'M*,0. t: l>s Полагая s = En = 0, для числа областей, на которые пространство Еп разбивается гиперплоскостями, получаем (-l)',c(£") = X(-l)dimV(6,0. t Отсюда, учитывая, что согласно следствию 86 sgnp(0,t) = (-l)”~dim<, выводим, что число областей разбиения равно сЮ=Х>(б,о|. I Эта формула была получена Томасом Заславским [13]. Точный подсчёт суммы в правой части равенства может оказаться затруднительным. Однако, используя следствие 8а, получаем, что число областей, на которые простран¬ ство разбивается гиперплоскостями, не меньше числа подпространств- пересесений, т. е. утверждение теоремы 2.8.8. Эти соображения и были ис¬ пользованы в [6] при установлении асимптотики логарифма числа порого¬ вых функций. Примеры обращения Мёбиуса
Дополнение 1. Упорядоченные множества 308 Задачи для самостоятельного решения 1. Найти размерность представленного на рисунке у-множества. 2 4 6 2к—4 2к-2 2к 2. Показать, что в любой решётке для произвольных a,b,c,d справед¬ ливо (a v Ь) л (с v d) > (а л с) v ф л d). 3. Показать, что в дистрибутивной решётке из avb=avc и алЬ=алс следует Ъ-с. 4. Представить с помощью диаграммы Хассе семиэлементную полумо- дулярную решётку, не являющуюся модулярной. 5. Доказать, что множество нормальных подгрупп произвольной груп¬ пы, упорядоченное по включению, образует модулярную решётку. 6. Вычислить //(0,1) для Пентагона (рис. 16). 7. Используя формулу биномиального обращения, найти число булевых функций от п переменных, существенно зависящих от всех своих переменных. 8. Используя обращение Мёбиуса, доказать тождество «! = £(-1Г''Ф". j=l 9. Используя обращение Мёбиуса, доказать тождество 1(-Г'"С^2й-'=1. i-m 10. В и-мерном векторном пространстве Vn над GF(q) задано щ-мерное подпространство Vm с Vn. Найти в Vn число к -мерных подпро¬ странств, пересечение которых с Vm имеет размерность /. Литература 1. Ансель Ж. О числе монотонных булевых функций п переменных // Киберне¬ тический сборник. Новая серия. Вып. 5. М.: Мир, 1968. С. 53-57. 2. Биркгоф Г. Теория структур. М: ИЛ, 1952. 3. Биркгоф Г. Теория решёток. М.: Наука, 1984.
4. Биркгоф Г., Барти Т. Современная прикладная алгебра. М: Мир, 1976. 309 5. Гретцер Дж. Общая теория решёток. М: Мир, 1982. 6. Зуев Ю. А. Асимптотика логарифма числа пороговых функций алгебры логи¬ ки //Докл. АН СССР. 1989. Т. 306. № з. с. 528-530. 7. КлейтменД. О проблеме Дедекинда: число монотонных булевых функций// Кибернетический сборник. Новая серия. Вып. 7. М: Мир, 1970. С. 43-52. 8. ЛидлР., ПильцГ. Прикладная абстрактная алгебра. Екатеринбург: Изд-во Урал, ун-та, 1996. 9. Рыбников К. А. Введение в комбинаторный анализ. М.: Изд-во Моек, ун-та, 1985. 10. Скорняков Л. А. Элементы теории структур. М.: Наука, 1982. 11. Стенли Р. Перечислительная комбинаторика. Т. 1. М: Мир, 1990. 12. Rota G-C. On the Foundation of Combinatorial Theory I. Theory of Mobius Func¬ tions // Z. Wahrscheinlichkeitstheorie und verw. Geb. 1964. Bd. 2. № 4. S. 340-368. 13. Zaslavsky Th. Facing up to Arrangement: Face-Count Formulaas for Partions of Space by Hyperplanes // Memoirs of the Amer. Math. Society. 1975. Vol. 1. № 154. P. 1-102. Комментарии к литературе Два издания книги Гарриетта Биркгофа [2, 3], составили целую эпоху в изучении решёток и упорядоченных множеств. Написанная в весьма эмо¬ циональной манере [2], долгие годы была настоящим математическим бест¬ селлером, а [3] и поныне остаётся наиболее полным обзором связей теории решёток с различными областями математики. Много сведений о решётках можно почерпнуть также в [4]. Стиль Биркгофа, однако, не отличается по¬ следовательностью и методичностью изложения, и для первого знакомства с теорией решёток можно рекомендовать, например, [10]. В [8] наряду с тео¬ рией изложены также прикладные аспекты решёток и булевых алгебр. С со¬ временным состоянием теории можно ознакомиться по [5]. Частично упо¬ рядоченные множества и обращение Мёбиуса рассматриваются также в [9], а наиболее полное рассмотрение вопросов, связанных с использованием об¬ ращения Мёбиуса в комбинаторике, можно найти в [11]. Литература
Дополнение 2 Вероятностный метод Основы. Если ранее в этой книге с помощью комбинаторики решались за¬ дачи теории вероятностей, то теперь методами теории вероятностей будут решаться задачи комбинаторного анализа. В широком смысле «вероятностными методами» называют использо¬ вание теории вероятности в задачах, в постановках которых вероятностные понятия непосредственно не участвуют. В узком смысле под «вероятност¬ ным методом» понимается доказательство существования некоторого ком¬ бинаторного объекта с использованием теории вероятностей без предъяв¬ ления его в явном виде, так называемое неконструктивное доказательство. В последние четверть века подобный неконструктивный приём стал важным самостоятельным разделом дискретной математики. В значительной мере это заслуга венгерского математика Пауля Эрдёша (Paul Erdos (1913-1996)), интенсивно его разрабатывавшего и пропагандировавшего. Теоремы сущест¬ вования, перед которыми оказываются бессильными традиционные конст¬ руктивные подходы, подчас удаётся легко доказать вероятностным методом. Суть метода сводится к следующему. На множестве изучаемых объек¬ тов вводится некоторое вероятностное распределение, в простейших слу¬ чаях равномерное, т. е., выражаясь языком теории вероятностей, задаётся конечное вероятностное пространство. Затем доказывается, что вероят¬ ность объекта с заданными свойствами в этом вероятностном пространст¬ ве отлична от нуля. Это и является доказательством существования тре¬ буемого объекта, конструктивное построение которого может быть сопря¬ жено со значительными трудностями. В простейших случаях доказательство отличия от нуля требуемой ве¬ роятности часто бывает основано на неравенстве (1.4.1), согласно которому вероятность объединения событий не превосходит суммы их вероятностей. В этом случае вероятностный метод доказательства близок к мощностно- му подходу, но обычно воспринимается как более естественный и логиче¬ ски ясный. Наряду с доказательством существования комбинаторных объектов с экстремальными характеристиками вероятностный метод используется для изучения типичных значений этих характеристик. В этом случае на множестве объектов задаётся равномерное распределение, изучаемые ха¬ рактеристики становятся случайными величинами и исследуются метода¬ ми теории вероятностей. Существенно, что во многих случаях имеется простая схема порож¬ дения такого распределения. Так, для графов с помеченными вершинами
равномерное на множестве всех графов распределение возникает при не- 311 зависимом включении каждого ребра в граф с вероятностью 1/2 . В случае же булевых функций равномерное на множестве всех функций распреде- 1 ление можно получить, независимо и равновероятно задавая в каждой S вершине куба значение 0 или 1. Равномерное на множестве всех ±1 -мат¬ риц распределение возникает при независимом и равновероятном выборе для каждого элемента значения 0 или 1. При этом часто оказывается удоб¬ ным работать именно со схемой порождения, а не с точками вероятност¬ ного пространства. В качестве простейшего примера неконструктивного доказательства с помощью вероятностного метода рассмотрим утверждение 3.11.1, которое в Главе 3 было доказано мощностным методом. Напомним, что число Рам¬ сея R(q,q) — это такое минимальное число, что в графе с не менее чем R(q,q) вершинами обязательно найдётся q -вершинная клика или g-вер¬ шинное независимое множество. Утверждение 1 (3.11.1). Для R(q,q) справедлива сле¬ дующая асимптотическая нижняя оценка R(q,q)>-^q-2^2. ev2 Доказательство. Воспользуемся стандартной вероятностной схе¬ мой порождения графов на заданном множестве вершин V = {vj,..., v„}, при которой каждая из С2 пар вершин независимо с вероятностью 1/2 ста¬ новится ребром графа. При этом на каждом подмножестве вершин мощно- / с2 С2 сти q возникают с одинаковой вероятностью 1/2 4 все 2 4 различных помеченных графов на этих вершинах. В частности, любое q -элементное / С2 подмножество множества V с вероятностью 1/ 2 4 становится кликой и с такой же вероятностью — независимым множеством. Два этих события несовместны, поэтому вероятность, что произойдёт хотя бы одно из них, / с2 равна 2/ 2 9 . Таких q -элементных подмножеств существует , и веро¬ ятность того, что хотя бы одно из них является кликой или независимым / С2 множеством, согласно (1.4.1), не превышает 2С%/2 q . Поэтому при / С2 2 С** / 2 4 <\ вероятность того, что в графе не окажется ни q -элементных клик, ни q -элементных независимых множеств, отлична от нуля, т. е. та¬ кие графы существуют. Далее, действуя также как в Главе 3, получаем ут¬ верждение теоремы. □
Дополнение 2. Вероятностный метод 312 Рассмотрим теперь задачу, связанную с изучавшейся в Главе 4 пробле¬ мой выполнимости конъюнктивной нормальной формы (к. н. ф.), которая состоит в нахождении набора значений переменных, обращающего к. н. ф. в «истину», или доказательстве отсутствия такого набора. В Главе 4 была до¬ казана её jVP-полнота, т. е. задача является в вычислительном отношении трудной. Следующий результат, однако, показывает, что если все входящие в к. н. ф. элементарные дизъюнкции имеют большое число литералов, а число элементарных дизъюнкций не слишком велико, то выполнимость можно гарантировать, не прибегая к сложным вычислениям. К. н. ф. будем записывать в виде D\ л £>2 л... л Dk , где Dj, D2,..., Dk — элементарные дизъюнкции. Через | £>,-1 будем обозначать число литералов в дизъюнкции Dh / = 1,2,... ,к . Утверждение 2. Если для к. н. ф. Dl aD2 л...лОт имеет т _|£>. I место £ 2 1 < 1, то к. н. ф. выполнима. i = l Доказательство. Будем считать входящие в к. н. ф. переменные независимыми случайными величинами, принимающими с вероятностью 1/2 значение 1 и вероятностью 1/2 значение 0 . Тогда р{£>. =0} = 2_)D'I И W I T-v | Р {Я, л D2 а ... л Dm = 0} < £ рр, = 0} = X:2 I'^. /=1 (=1 Поэтому, если /=1 < 1, то Р{£>, л Z>2 л... л Dm = 1} > 0, и к. н. ф. выполнима. □ А вот как в данном случае выглядит не использующее концепции ве¬ роятности мощностное доказательство. Обозначив через Nц множество наборов, обращающих в нуль дизъюнкцию имеем | Ад |=2” ^, и справедливость утверждения вытекает из равносильности неравенств < 2" о £2~^1 < 1. 1=1 «•=1
313 Из утверждения 2 непосредственно следует Следствие 1. Если все дизъюнкции в к. н. ф. содержат одинаковое число литералов |£), | = /, i = 1,2,, т , а число элементарных дизъюнкций т<21, то к. н. ф. выполнима. Заметим, что даваемая следствием 1 граница для числа элементарных дизъюнкций является точной, так как если из / переменных образовать все возможные 21 элементарных дизъюнкций длины / и включить их в к. н. ф., то полученная к. н. ф. не будет, очевидно, выполнимой. Из следствия 1 вытекает также следующий любопытный результат. Следствие 2. Если для некоторого фиксированного 0<?<1 рассмотреть подкласс задач о выполнимости, в котором в к. н. ф. на п переменных каждая элементарная дизъюнк¬ ция имеет не менее tn литералов, то все задачи этого класса будут эффективно разрешимы, т. е. решаемы в по¬ линомиальное от длины записи задачи время. Доказательство. Если число элементарных дизъюнкций в к. н. ф. меньше чем 2tn , то на основании следствия 1 сразу можно сделать вывод, что данная к. н. ф. выполнима. Если же число элементарных дизъюнкций превышает 2tn , то задача решается с помощью полной проверки всех 2” наборов значений переменных, и эта проверка занимает полином опера¬ ций от длины входа, так как 2" = (21п) ^ . □ Первоначальное знакомство с вероятностным методом завершим рас¬ смотрением задачи, решение которой было одним из ранних триумфов под¬ хода Эрдёша. Будут рассматриваться турниры, такие соревнования, в ко¬ торых каждая пара участников проводит между собой по одной встрече, оканчивающейся победой одного из участников. Подобное соревнование с п участниками описывается ориентированным п -вершинным графом Tn=(V,A), также называемым турниром, для каждой пары [u,v\ вершин которого либо (ti,v)eA, либо (v,u)eA (см. раздел 3.6). При этом (u,v)eA интерпретируется как победа участника и над участником v. Мысленно проранжировав участников по силе, легко представить себе турнир, когда занявший первое место победил всех остальных участников, занявший второе место выиграл у всех кроме победителя и т. д., т. е. занявший i -е место выиграл у занявших места с i +1 до п и проиграл занявшим места с 1 до i -1. Однако спорт есть спорт, и может случиться, что ни один из уча¬ стников не прошёл турнир без поражений, т. е. для каждого участника суще¬ ствует победивший его игрок. Таков турнир с 3 участниками = (V, А), где А = {(1,2), (2,3), (3,1)}. Более общим вопросом является следующий. Пусть Основы
Дополнение 2. Вероятностный метод 314 к — произвольное натуральное число. Существует ли турнир, в котором для любых к участников найдётся участник турнира, победивший их всех? Этот вопрос был поставлен перед Эрдёшем в 1962 году профессором Шютге (К. Schutte), и вскоре Эрдёш дал на него положительный ответ. Утверждение 3 (Эрдёш, 1963). Для каждого натурально¬ го к существует турнир Тп, в котором для любых к уча¬ стников найдётся участник, победивший их всех. Доказательство. На множестве турниров Тп зададим равномерное распределение, независимо для каждой пары вершин {и, v} включая в А ду¬ гу (u,v) или (у,и) с одинаковой вероятностью 1/2. В случайном турнире вероятность того, что ни один участник не выиграет у всех из заданного подмножества к участников, равна (1 - 2~к )п~к . Поэтому вероятность того, что есть такое подмножество из к участников, для которого не найдётся по¬ бедителя, не превышает Ск (1 - 2~к )п~к . Но Ск (1 - 2~к )п~к —> 0, л -> <ю. Поэтому, начиная с некоторого л будет выполнено Ск (1 - 2~к )п~к < 1, а это означает, что с отличной от нуля вероятностью, для каждого подмножества из к участников найдётся победивший их участник турнира. □ С помощью вероятностного подхода существование требуемого тур¬ нира было показано совершенно элементарно. Можно продолжить иссле¬ дование, оценив значение л = п(к), гарантирующее существование тур¬ нира Тп с требуемым свойством. Для этого достаточно, чтобы л = п(к) удовлетворяло условию Ск (1 - 2~к )п~к < 1. (1) пк Используя очевидное неравенство Ск <— и вытекающее из (1.7.25) к\ —к неравенство (1-2 )<е , получаем, что (1) будет выполнено, если Ц_-{п-к)2-к <х к\ (2) к2-К £ Так как < 1 при к> 2,(2) будет выполнено, если к! -к пк <еп2 о л" < ё In л л-1 ^ Xх 2~* _ In л 1 п к2‘ к (3) Функция монотонно убывает при х > 3 . Поэтому последнее со- л отношение в (3) для каждого к определяет значение л = п(к), начиная с
которого гарантировано существование турнира Тп с требуемым свойст- 315 вом. При больших значениях к асимптотическая граница для п(к) может быть выражена из (3) как л(*)> In2 к2 2*. к —►оо. Эта граница является достаточно точной, потому что, как было пока¬ зано другими методами, при п < (к + 2) 2*-1 -1 турнира Тп с требуемым свойством не существует. Хотя из доказательства утверждения 3 следует, что для любого к почти все турниры обладают требуемым свойством, конструктивно задать такой турнир непросто даже для к = 2 . Известен, однако, следующий при¬ ём. Пусть р — простое и ps3(mod4). Определим турнир Тр = (V, А), где V = {0,1,..., р — Ц — множество классов вычетов по модулю р и (/, у) е A (i побеждает у) в том и только в том случае, если i- у являет¬ ся квадратичным вычетом. Если /-у квадратичный вычет, то j-i —не¬ вычет, и наоборот, так как -1 является квадратичным невычетом (см. раз¬ дел 5.7). Поэтому турнир определён корректно. Легко проверить, что любой подоб¬ ный турнир Тр обладает требуемым свой¬ ством для к = 2 . В самом деле, вычеты образуют разностное множество (см. раз¬ дел 5.9). Поэтому для произвольных i, jeV существуют такие квадратичные вычеты /',/ е V, что /'-/ = j-i, а значит, Т + +/ = у" + у побеждает как /, так и у . Для к = 2 минимальным турниром с рассматриваемым свойством является Г7. Этот турнир, реализованный на множе¬ стве классов вычетов по модулю 7, пред¬ ставлен на рис. 1. Подобным образом, выбирая р достаточно большим, можно строить требуемые турниры для любых значений к [16]. Таким образом, квадра¬ тичные вычеты по простому модулю хорошо моделируют случайное рас¬ пределение. В своих более серьёзных приложениях вероятностный метод исполь¬ зует понятие математического ожидания и ряд тонких теорем теории ве¬ роятностей. Поэтому для дальнейшего продвижения необходимо попол¬ нить багаж знаний по теории вероятностей. О
Дополнение 2. Вероятностный метод 316 Случайные величины. Если в конечном вероятностном пространстве с множеством элементарных исходов Q = {а^, ... ,соп} каждому элементар¬ ному исходу (Oj приписано некоторое действительное число xt, другими словами на множестве элементарных исходов задана вещественнозначная функция X: Q -» R , то говорят, что задана случайная величина X. В ряде случаев случайные величины возникают естественным образом. Так с ка¬ ждой гранью игральной кости связано одно из чисел 1 -ь 6. Если же под¬ брасывается монета, то «орёл» можно пометить, например, единицей, а «решку» — нулём. Важнейшей числовой характеристикой случайной величины X явля¬ ется её средневзвешенное значение М(Х), называемое её математиче¬ ским ожиданием и определяемое как М(Х)= X х1?{щ). (4) цеП С исходом случайного эксперимента может быть связано несколько чи¬ словых величин, т. е. могут быть заданы случайные величины Xj,..., X* . С помощью арифметических действий над ними могут быть образованы новые случайные величины. Так, складывая их значения на каждом эле¬ ментарном исходе, получаем случайную величину Xj + ... + Х^. Ясно, что определённое формулой (4) математическое ожидание обладает свой¬ ствами линейности М(Х] + ... +Х*) = М(Х,)+ ... +М(Х*), М(сХ) = сМ(Х). При рассмотрении случайных величин от первоначального пространст¬ ва элементарных исходов переходят к числовым значениям и говорят о чис¬ лах как об исходах испытаний, другими словами, эти числовые значения и принимаются за элементарные исходы. Если случайная величина X прини¬ мает п различных значений Xj, х2 > ■ • •, х„, то вероятности этих значений Р(х,) = Р{Х=х,} = X p(a>j), i = 1,2,-..,п eOj\X{a>j)=Xj задают распределение случайной величины X. При этом очевидным обра- П зом выполнено условие нормировки ^ Р(х,-) = 1. /=1 Теперь формула (4) для математического ожидания может быть пере¬ писана как М(Х) = £х,Р(х,). ;=1
Математическое ожидание является важнейшей числовой характери- 317 стикой случайной величины, знание которой может оказаться достаточ¬ ным для принятия решения. Пусть, например, некто предлагает Вам сыг¬ рать в следующую игру. Вы платите некоторую сумму за участие в игре, затем бросаете 5 игральных костей и получаете обратно сумму денег, рав¬ ную суммарному числу выпавших очков. Спрашивается, при каком на¬ чальном взносе имеет смысл принять участие в такой игре? Ответ на этот вопрос состоит в подсчёте математического ожидания суммарного числа выпавших очков, которое является суммой 5 случайных величин. Математическое ожидание числа очков, выпавших на одной кости, равно 1--^ + 2~ + 3-^ + 4~ + 6~ + 6~ = 3,5, а математическое ожидание суммы в соответствии со свойством линейности находится как 3,5 х 5 = 17,5. Если начальный взнос меньше этой суммы, то играть выгодно, и при мно¬ гократном участии в игре Вы неизбежно окажетесь в выигрыше, а если больше — то невыгодно. Если же начальный взнос равен в точности 17,5, и Вы многократно играете, то периодически будете оказываться то в выиг¬ рыше, то в проигрыше, причём размеры их будут нарастать, и конечный результат зависит от Вашего умения вовремя остановиться. Две случайные величины X и Y называются независимыми, если знание значения одной случайной величины не меняет распределения дру¬ гой. Представление о таких величинах дают количества очков, выброшен¬ ных на двух игральных костях. Аналогично, п случайных величин неза¬ висимы, если знание значений любых п -1 из них не меняет распределе¬ ния неизвестной величины. Для независимых X и Y имеем ?{X = xi,Y = yj}=P{X = xi}-P{Y = yj}. Отсюда для математического ожидания произведения независимых величин имеем M(XY) =2>,ууР{Х Y =Уу}=2>,ууР{Х=*/}' P{Y =yj) = и и ( \ ■■ 2>,р{х=*,} • 2>,-P{Y = yy} 'ч J = М(Х) • M(Y), т. е. математическое ожидание произведения независимых величин равно произведению математических ожиданий, и этот результат распространя¬ ется на любое число независимых величин. Величина М(Х*) называется моментом порядка к случайной вели¬ чины X. Таким образом, математическое ожидание М(Х) — это момент первого порядка. Если М(Х) = то величина М(Х-//) называется цен- Случайные величины
Дополнение 2. Вероятностный метод 318 тральным моментом порядка к. После математического ожидания осо¬ бенно важным в теории распределений является центральный момент вто¬ рого порядка М(Х-/г)2, характеризующий разброс случайной величины X вокруг её среднего значения р . Он называется дисперсией случайной величины X и обозначается D(X) D(X) = M(X-p)2. Используя линейность математического ожидания, эту формулу мож¬ но преобразовать к виду, который часто оказывается более удобным D(X)=М (X - р)2=м(х2 - 2рХ + р2) = = М(Х2)-2рМ(Х)+р2=М(Х2)-2р2 + р2 = = М(Х2 )■- р2 = М(Х2) - (М (X))2. Эта формула может быть прочитана следующим образом: дисперсия есть разность между средним квадратом и квадратом среднего. Дисперсия является неотрицательной величиной, поэтому средний квадрат всегда не меньше квадрата среднего. Математическое ожидание и дисперсия могут быть проиллюстрированы с помощью механической аналогии. Пусть на невесомом стержне, играющем роль числовой оси, в точках с координатами х\, х2,, хп помещены то¬ чечные массы, величины которых соответственно Р(Х|), Р(х2),..., Р(х„). Тогда математическое ожидание — это координата центра тяжести такой системы, а дисперсия — её момент инерции. Если с — произвольная константа, то D(cX) = с D(X). Пусть теперь X и Y — независимые случайные величины, М(Х) = р\, M(Y) = pi. Случайные величины Х-р\ и Y-р^ также независимы между собой, а их математические ожидания равны нулю. Поэтому для диспер¬ сии суммы имеем D(X + Y) = М(Х + Y-pi-p2)2 = = М(Х - рх )2 + 2 М(Х- рх) М(Х - р2) + М(Х - р2 )2 = = М(Х-р, )2 + М(Х-р2 )2 = D(X) + D(Y), т. е. дисперсия суммы независимых величин равна сумме их дисперсий, и этот результат распространяется на любое число попарно независимых величин. Математическое ожидание и дисперсия могут быть использованы для оценки вероятностей принятия случайной величиной больших или сильно
уклоняющихся от среднего значений. Теоремы 1 и 2 связаны с именем 319 крупнейшего русского математика и механика, академика Пафнутия Льво¬ вича Чебышева (1821-1894), хотя теорему 1 часто называют неравенством | Маркова — по имени другого выдающегося русского математика, акаде- 1 мика Андрея Андреевича Маркова (1856-1922), ученика П. Л. Чебышева. Теорема 1. Пусть X — неотрицательная случайная ве¬ личина, />0. Тогда для вероятности Р{Х>/} справедлива оценка Р{Х>/} < . Доказательство. Имеем М(Х) =]>\,-Р(х;) = ]Г xip(xi) + X xip(xi)* i i:Xj<t iiXjZt > x *,p(*/) ^ t x p(*,) = fP{x>t}, i:x, i:Xjtl откуда и следует утверждение теоремы. □ Теорема 2. Пусть X — произвольная случайная величи¬ на, M(X) = iu, t> 0. Тогда для вероятности Р{| X — // )> /} справедлива оценка P{|X-//|>f} < —. Г Доказательство. Ввиду \x-ju\>t о (X-M)2>t2 , имеем Р{ I х—//1 >*} =Р{(Х-/Ц)2>/2}. о Но (X - //) — это неотрицательная случайная величина, и к ней приме¬ нима теорема I Р{(Х-//)2 > t2} < м((Х-//)2) 2 t Ш1 2 t □ Теперь мы можем сформулировать Закон больших чисел — важней¬ ший принцип теории вероятностей, связывающий теоретические резуль¬ таты с практикой. В простейшем своём виде он утверждает, что с ростом числа одинаковых и независимых испытаний относительная частота на¬ ступления связанного с испытанием события стремится к его вероятности. В таком виде этот принцип на рубеже XVII и XVIII веков был открыт Яко¬ бом Бернулли. Дальнейшие обобщения этого принципа связаны с именами С. Пуассона, П. Л. Чебышева, А. А. Маркова. В более общих формах этот принцип выражает сходимость среднего арифметического случайных ве- Случайные
Дополнение 2. Вероятностный метод 320 личин к их математическому ожиданию. Приведём здесь достаточно об¬ щую формулировку этого принципа, принадлежащую советскому матема¬ тику А. Я. Хинчину (1894-1959). Теорема 3 (Закон больших чисел). Пусть {Х^} — по¬ следовательность независимых одинаково распределён¬ ных случайных величин. Если математическое ожидание // = М(Х;-) существует, то для любого сколь угодно малого £>0 справедливо Р{| х1+х2 + ...+х„ п -ц\> £•} -»0, и—>оо. Сформулированная теорема утверждает, что среднее арифметическое независимых одинаково распределённых случайных величин с ростом их числа стремится к их математическому ожиданию /и или, как говорят, сходится по вероятности к /и . Для того чтобы получить отсюда формули¬ ровку закона больших чисел в форме Бернулли, достаточно в серии испы¬ таний приписать значение 1 исходу, при котором осуществилось событие А , и значение 0 — исходу, при котором А не осуществилось. Тем самым с i -м испытанием связывается случайная величина Хг-, принимающая значение 1 с вероятностью р и 0 — с вероятностью q = \-р, которая на¬ зывается индикатором соответствующего события, её математическое ожидание М(Х, ) = 1 • р + 0 • (1 - р) = р . Тогда число успехов к в п незави¬ симых испытаниях становится равным сумме п независимых случайных величин — индикаторов событий, и закон больших чисел приобретает тот вид, который ему впервые придал Я. Бернулли: вероятность того, что от¬ носительная частота успехов к/п окажется в интервале р - е <к/п < р + е для любого сколь угодно малого е стремится к 1 с ростом п : ?{\t-p\<£) = X С„У<Г*^1, п-*со. (6) к\ \к/п-р\йе Доказательство закона больших чисел. В конечном веро¬ ятностном пространстве, которым ограничено наше рассмотрение, любая случайная величина имеет математическое ожидание и дисперсию. По¬ этому, ограничившись этим случаем, закон легко доказать, используя тео¬ рему 2. Пусть D(Xt) = D . Имеем м гх +х2 +. ,.+х„ V п j-M, Df X, + Х2 + .. • +X„Nj D п J п
321 И с помощью теоремы 2 получаем > е I < -Цт- -> 0, п -> оо. □ ) пе1 Метод математических ожиданий. Когда рассматриваемые события не являются независимыми, и задача нахождения вероятностей их совмест¬ ного осуществления является сложной, эти вероятности можно оценить с помощью математического ожидания, вычисление которого основано на свойстве линейности (5), где в роли случайных величин Xi,...,X„ высту¬ пают индикаторы событий. Математическое ожидание может позволить сделать вывод о положи¬ тельной вероятности рассматриваемого события. В простейшем случае этот вывод выглядит следующим образом. Если М(Х) = ц, то Р{Х > //} > 0 и Р {X < //} > 0 , т. е. существуют объекты как с неменьшим, так и с небольшим математического ожидания значением рассматриваемой характеристики. Рассмотрим этот приём на примерах. Согласно теореме 3.6.2 в каждом турнире есть гамильтонов путь. Как много таких путей может быть в турнире? Метод математических ожида¬ ний позволяет получить достаточно точную оценку этого числа. Следую¬ щий результат является одним из первых применений вероятностного ме¬ тода в комбинаторике. Утверждение 4 (Т. Szele, 1943). Существует я-вершин- ный турнир, имеющий не менее и!2_^”_|^ гамильтоновых путей. Доказательство. Как и при доказательстве утверждения 3 на множестве турниров задаём равномерное распределение. Тогда каждая пе¬ рестановка на множестве вершин турнира порождает гамильтонов путь с вероятностью Поэтому математическое ожидание числа гамиль¬ тоновых путей равно и!2^л_|^. □ Полученную столь элементарным приёмом нижнюю оценку можно считать вполне удовлетворительной, так как максимально возможное чис¬ ло гамильтоновых путей в турнире, как было показано Н. Алоном, есть 0(л3/2л!2“(”_,)) (см.[1]). Рассмотрим теперь с помощью метода математических ожиданий во¬ прос о мощности независимого множества в графе G = (V,E), где | V |= п, | Е |= т . Как известно, ответ на вопрос, существует ли в графе независимое множество заданной мощности, в общем случае является NP-полной и, следовательно, вычислительно трудной задачей. Однако наличие незави- х1+х2 + ...+х„ ~ М Метод математических ожиданий
2. Вероятностный метяё 322 симого множества определённой мощности можно гарантировать. Приво¬ димые ниже результаты тесно связаны с теоремой Турана (см. раздел 3.11). Если т < п/2 , то, удаляя по одной вершине из каждого ребра, полу¬ чаем независимое множество мощности не менее п-т,и это лучшее, что можно гарантировать. Поэтому будем считать, что т > л/2 . Утверждение 5. Если /и>л/2, то в G существует незави¬ симое множество с не менее чем и2/фл вершинами. 3 Доказательстве. Пусть S с V — подмножество, получаемое I из V независимым включением каждой вершины в S с вероятностью р, Д где параметр р будет определён позднее. Пусть А" = | 51 и Y — число 'у рёбер в индуцированном S подграфе. Имеем М(Х) = пр, M(Y) = тр , так как ребро графа G включается в индуцированный подграф в том и только в том случае, если в S включаются обе его вершины. Отсюда, ис¬ пользуя линейность математического ожидания, получаем M(X-Y) = пр-тр2. (7) Положив теперь р = п/2т, получаем, что М(Х-Y) = п2/\т . Это озна¬ чает, что найдётся подмножество S , в котором число вершин не менее чем на п2/Лт превышает число рёбер. Удалив в этом множестве по одной вершине из каждого ребра, получим независимое множество мощности п2/Ат . □ А вот другое решение этой же задачи. Утверждение 6 (Y. Care, V. Wei). В графе G=(V,E) суще¬ ствует независимое множество с не менее чем V wv degv + 1 вершинами. Доказательство. Строим независимое множество А с помощью случайной процедуры следующим образом. На множестве V вершин графа G берём случайную перестановку и включаем вершину v во мно¬ жество А в том и только в том случае, если в этой перестановке v пред¬ шествует всем вершинам множества N(v) (всем смежным с v вершинам). Ясно, что индуцированный множеством А подграф будет пустым, т. е. А будет независимым множеством. Найдём математическое ожидание числа вершин, попавших в А . В случайной перестановке среди degv + 1 вершин множества Y(v)u{v} вершина v с равной вероятностью занимает одно из deg V +1 мест, и ве¬ роятность, что она будет первой равна l/(deg v +1). Поэтому
1 323 M(MI)=Z-——-. vey de8 v +1 А это означает, что в графе G найдётся независимое множество такой мощности. □ Оценка утверждения 6 точнее оценки утверждения 5. Следствие 3. В графе G = (V,E), где \V\=n, \Е\=т, ствует независимое множество с не менее чем вершинами. суще- 2 т + п % П Доказательство. ^ deg v=2m, а при фиксированной сумме J'jdj veV i=1 п i величина У——- принимает минимальное значение при di = <?2 = ••• = dn. Подстановка degv = 2т/п даёт нужную оценку. □ Длина д.н.ф. типичной булевой функции. Применение вероятностных методов для изучения типичных значений будет рассмотрено на примере булевых функций. Длины кратчайших д. н. ф. булевых функций от п пе- ременных могут варьироваться от 1 до 2 (теорема 2.4.3). При столь значительном разбросе естественным образом возникает вопрос, распре- делена эта характеристика достаточно равномерно на отрезке [1; 2 ] или её значения концентрируются около некоторого значения? Советским учё¬ ным Р. Г. Нигматуллиным было установлено, что почти все булевы функ¬ ции имеют асимптотически одинаковую длину кратчайшей д. н. ф. Впо¬ следствии, в результате напряжённой работы многих исследователей уда¬ лось найти порядок этой величины. Эти результаты будут здесь рассмотрены в рамках вероятностного под¬ хода. Булева функция / от п переменных будет рассматриваться как слу¬ чайный 2” -мерный вектор, компоненты которого с равной вероятностью 1/2 принимают значения 0 или 1. Геометрически булеву функцию удобно ин¬ терпретировать как случайно выбранную вершину 2” -мерного единичного куба. При такой интерпретации из утверждения 2.6.1 сразу вытекает, что для почти всех булевых функций / число единиц | Nj- | заключено в интервале 2п~х-п2"12 < Nf < 2"_1+л2”/2, (8) откуда следует, что для почти всех булевых функций длина совершенной л—1 д. н. ф. асимптотически равна 2 Длина д. н. ф. типичной
Дополнение 2. Вероятностный метод 324 Продолжим изучение характеристик типичной булевой функции ве¬ роятностными методами. Утверждение 7. Математическое ожидание числа /*(л) допустимых интервалов размерности к равно (9) Доказательство. Число интервалов размерности к равно Ск 2” к. Мощность к -мерного интервала есть 2 , поэтому вероятность для него быть допустимым равна 2 , откуда и вытекает (9). □ Следствие 4. Почти все функции из Р2” не имеют допус¬ тимых интервалов размерности большей [log2w] + l. Доказательство. Подставив в (9) к = [log2 л] + 2 , для математи¬ ческого ожидания числа допустимых интервалов размерности [log2 я]+2, получаем £.[log2 п]+2 2«~[l°g2 «]-2 wlog2 ЛЧ-2 2Л_10g2 Л—1 2Л+*°ё2 л—l°g2 л+* — < = > 0 и —> ОО 22l'og2 л]+2 - 22'°82"+1 22" ’ Отсюда, воспользовавшись неравенством теоремы 1 при t = 1, выво¬ дим, что вероятность для случайной булевой функции иметь хотя бы один допустимый интервал размерности к = [log2 л] + 2 стремится к нулю с ростом л . Поэтому почти все булевы функции не имеют допустимых ин¬ тервалов размерности к = [log2 л] + 2, а, следовательно, и всех больших размерностей. □ Утверждение 8. Математическое ожидание числа /*(л) максимальных допустимых интервалов размерности к равно Доказательство. Интервал размерности к является подынтерва¬ лом л - к интервалов размерности к +1, конъюнкции которых получаются из конъюнкции исходного интервала опусканием одной буквы. Пересече¬ ние любых двух таких интервалов размерности к +1 совпадает с исходным интервалом размерности к. Поэтому вероятность для каждого интервала размерности к +1 не быть допустимым при условии допустимости исход- (10)
ного интервала размерности к равна 1 - 2 2 , а вероятность того, что все п-к интервалов размерности к +1 не являются допустимыми, равна 1-2 -2 п-к как вероятность независимых событий. Следовательно, ве¬ роятность для данного интервала размерности к быть максимальным до- 1 пустимым интервалом равна —т- 1-2 -2" , откуда и вытекает (10). о Следствие 5. Математическое ожидание длины сокра¬ щённой д. н. ф. /с(/) равно м(/сШ) = 2- .«С1 + 0(1>)l0g2 l0g2« . (П) Доказательство. Используя утверждение 8, имеем *=о v ' к=о 22 v J (12) В доказательстве нуждается лишь последнее равенство в (12). Найдём, при каком к математическое ожидание М^/*(л)| максимально. С этой целью рассмотрим отношение ,* \п-к-\ м(/*+1(л)) («-*)( 1 + 22*) (#(«)) 2(/с + 1)|22* -lj М Для достаточно больших л это отношение больше единицы при к< < log2 log2 л -1 и меньше единицы при к > log2 log2 л . Поэтому максимум М {lk (л)j достигается либо при к = [log2 log2 л] = kQ , либо при к = к0 +1. Если кт — значение, при котором достигается максимум (л)|, то имеем шах м(/*т(л)) < М(/с(/)) < (л + 1) max м(/*т (л)); 0 <к<,п ' ' 0<к<п ' > Qkо 7*о+| 1-2' -7*0+1 п-кп 0 <к<п 2п~к<> <м(/с(/))<(J _2*о+1 у*о 2 4 ' 2 2" .л(1+°(1))1о821оё2п < М(/с(/)) < 2”-л(1+о(|))1об2|°82". 325 Длина д. н. ф. типичной булевой функции
Дополнение 2. Вероятностный метод 326 Рассмотрев дисперсию, можно показать, что для почти всех булевых функций длина сокращённой д. н. ф. есть 2”1082,082 ” (см.[3]). Таким образом, длина сокращённой д. н. ф. булевой функции в типичном случае, как и указывалось в разделе 2.4, действительно существенно пре¬ восходит длину её совершенной д. н. ф. Обратимся теперь к кратчайшей д. н. ф., которая получается из сокра¬ щённой удалением некоторых из конъюнкций и является наиболее компакт¬ ным представлением булевой функции в виде д. н. ф. Полученные здесь оценки могут служить критерием того, насколько вообще эффективна про¬ цедура минимизации д. н. ф. в типичном случае. Покажем, прежде всего, что почти все булевы функции имеют асимптотически одинаковую длину кратчайшей д. н. ф. Этому доказательству предпошлём следующую лемму. Лемма 1 (Р. Г. Нигматуллин, 1967). Пусть Ф„ с Pj" — подмножество булевых функций, не имеющих допусти¬ мых интервалов размерности большей [log2 я] +1. Пусть /, geO„ и функции / и g различаются лишь на наборе a : f(a) = 0, g(a) = l, а на остальных наборах их значения совпадают, т. е. / и g являются соседними вершинами 2”-мерного гиперкуба. Тогда |/c(/)-/c(g)| ^ „1оё2л+2 Доказательство. Д. н. ф. для g может быть получена из д. н. ф. для / добавлением одной элементарной конъюнкции. Поэтому /c(g) < < /с(/)+1. Д. н. ф. для / можно получить из д. н. ф. для g, убрав все элемен¬ тарные конъюнкции, покрывающие вершину а , и добавив по элементар¬ ной конъюнкции для каждой отличной от а вершины, в которой значение функции при этом изменилось с единицы на нуль. Так как g е Ф„, верши¬ ны, для которых необходимо добавлять конъюнкции, не могут отстоять от а дальше, чем на [log2 п] +1. Поэтому таких вершин не более [log, и]+1 £ С‘ < ([log2«] + l)n[,082"]+1 < И[1082Л]+2, /=1 следовательно, lc(f) < /c(g) + ^,082”^+2 . □ Теорема 4 (Р. Г. Нигматуллин, 1967). Существует функ¬ ция Цп), с которой при и-»оо асимптотически совпадают длины кратчайших д. н. ф. /*(/) почти всех булевых функций f от п переменных.
327 Доказательство. Пусть Ч^с—подмножество булевых функ¬ ций /, не имеющих допустимых интервалов размерности большей [log2 п] а +1 и таких, что | Nj-1 > (1 - 3)2 , где 0 < 3 < 1. Из (8) и следствия 4 вы- текает, что множество Ч'„ содержит почти все булевы функции. Упорядо- | чим множество по неубыванию длины кратчайшей д. н. ф. Выделим в упорядоченном таким образом множестве Ч/я подмножество Р(п) первых | 2»-i_„2"/2 2"“‘-n2"/2 I ^ С'„ функций и подмножество Q(n) последних ]Г С'„ /=о 2 1=0 2 функций. Тогда во множестве Ч2), =Ч/Л \(P(n)uQ(n)), по-прежнему, бу¬ дут лежать почти все булевы функции. Расстояние же между множествами Р(п) и Q(n) в 2” -мерном кубе согласно теореме 2.6.3 будет не больше 2л2л/2, т. е. из некоторой функции fP е Р(п) можно перейти в некоторую функцию fg е Q(n) по рёбрам гиперкуба, пройдя не более 2п2п^ рёбер. Теперь из леммы 1 следует, что ^ 2п2^г п°ё2"+2, и в силу нашего построения для любых /|,/2 е 4хя имеем |/*(/|)-/*(/2)| ^ < 2п2"/2 /2log2n+2 для завершения доказательства осталось показать, что для любой /еЧ/л справедливо 2 л 2”/2 и|о82”+2 = о(/*(/)). Но у функ¬ ций из T'J, асимптотически 2Л_| единичных вершин и нет допустимых интервалов размерности большей [log2 и] +1. Поэтому длина их кратчай¬ ших д. н. ф. не меньше 2л-2/я. □ В процессе доказательства теоремы 4 для асимптотики Цп) была так¬ же получена нижняя граница Цп) >2л-2/л . Уточним теперь эту границу. Теорема 5 (В. В. Глаголев, 1967). Для асимптотики Цп) длины кратчайшей д. н. ф. типичной булевой функции справедлива оценка ол-1 Цп)> - . (13) ' log2 п log2 log2 п Доказательство. Для произвольного £>0 оценим сверху мате¬ матическое ожидание числа вершин, покрываемых допустимыми интерва¬ лами размерностей от ке = log2 ((1 + £,)(log2 п log2 log2 п)) до [log2 л] + 1. Согласно (9) оно не превосходит Длина д. н. ф.
Дополнение 2. Вероятностный метод 328 I кс<к£{ log2 и]+1 С* 2п~к2к < 2”f[log2 л] + 1) шах ке<,к<,[\оЪгп]+\ (И) к / 2к Величина п /2 в интервале изменения к от ке до [log2w] + l не к 2*г превышает п е / 2 , как это видно из рассмотрения отношения соседних членов п п 1 i^i -рГ = -ТГ<1’ ПРИ 22 22 Заменяя в правой части (14) шах - на —, получаем, A£^^[!og2 л)+1 22 22 г что рассматриваемое математическое ожидание не превышает пк° 2” ([l°g2 п~\ +1) —~j— = o(2n). 22 £ Это означает, что для почти всех булевых функций доля единичных вершин, покрываемых допустимыми интервалами размерностей больших чем ке = log2 ((1 + е)(log2 п log2 log2 и)), стремится к нулю. Поэтому для почти всех булевых функций длина кратчайшей д. н. ф. асимптотически не меньше чем 2'I_1/(log2 п log2 log2 п). п Отметим, что, как следует из [5], [2] и [22], правая часть (13) даёт по¬ рядок роста L(n). Теорема Шеннона. Докажем теперь вероятностным методом теорему 5.5.1, которая в главе 5 была приведена без доказательства. Теорема в (Шеннон, 1948). Пусть вероятность ошибки двоичного симметричного канала равна р(0<р<\/2), С(р) — его пропускная способность. Тогда для любых сколь угодно малых £>0 и д> 0 при достаточно боль¬ шом п существует код длины п со скоростью R, заклю¬ чённой в пределах C(p)-S<R<C(p), и вероятностью ошибки, не превышающей е. При скорости передачи большей С(р) + Д, где Д — произвольная положительная постоянная, вероятность ошибки не может быть сделана меньше определённой величины, а с ростом п она неиз¬ бежно стремится к единице.
Доказательство. Обе части теоремы будут получены как следет- 329 вие закона больших чисел, согласно которому с ростом числа испытаний относительная частота наступления события стремится к его вероятности. Докажем сначала вторую, негативную часть теоремы. Рассматриваем последовательность кодов растущей длины я и мощности М = М{п) со скоростью передачи R = R(n) > С + Д, где А > 0. Это означает, что мощ¬ ность кода равна М=2пК> 2«(С+Д) = 2л(1_Я2^)+А) , и, следовательно, 2^ <2п{Н2(р)-А) М (15) По определению (см. раздел 5.5), для приведённого радиуса кода г* имеем 2" Z(n,r*~ 1) < М (16) Но, согласно (1.7.24) я(Н2((г*-1)/я) + 0(1)) X{n,r*-\) = 2 v ‘v' " ' ' я-юо. (17) Из (15), (16) и (17) получаем, что для достаточно больших я и неко¬ торого А], такого что 0 < А] < А , справедливо Я2((г*-1)/я) <Н2(р)~Aj. Отсюда следует, что существует такое Д2 > 0, для которого при всех достаточно больших я выполнено неравенство р> 1- Д2. я Согласно утверждению 5.5.2 для вероятности ошибки Ре имеем (18) Ре> X С‘пр‘(1-р)п-‘. (19) »=Г*+1 Но согласно (6) правая часть (19) при выполнении условия (18) стре¬ мится к единице с ростом я . Следовательно, к единице стремиться и ве¬ роятность ошибки кода. □ Обратимся теперь к доказательству существования семейства хороших кодов, гарантируемого теоремой Шеннона. Все известные до настоящего времени доказательства этой знаменитой теоремы являются неконструк¬ тивными. Они не строят в явном виде требуемого кода, а лишь доказыва¬ ют его существование. Точнее говоря, они показывают, что случайным об- Теорема Шеннона
Дополнение 2. Вероятностный метод 330 разом выбранный код заданной мощности с отличной от нуля вероятно¬ стью будет обладать требуемой надёжностью. Это и доказывает, что мно¬ жество требуемых кодов не пусто. Выберем М кодовых слов длины п последовательно с помощью случайного равномерного на множестве наборов {0,1}” незави¬ симого выбора, при котором каждый набор длины п становится кодовым словом с вероятностью 2-” . Вероятностная схема осуществления такого выбора состоит в том, что каждая компонента кодового слова независимо и равновероятно полагается равной нулю или единице. Можно считать, что выбор осуществляется с помощью бросания монетки. Легко видеть, что М полученных таким образом кодовых слов с вероятностью, стре¬ мящейся с ростом п к единице, будут различными, и код будет обладать требуемой скоростью. Покажем, что при этом имеется положительная ве¬ роятность того, что полученный код будет требуемого качества, если п достаточно велико. Пусть по каналу передаётся кодовое слово v = (vj,..., v„), а на выхо¬ де канала возникает слово v' = (v(,..., v'n). Среднее число ошибок в нём будет равно р п. Согласно закону больших чисел вероятность того, что число ошибок превысит (р + в)п, для любого сколь угодно малого в > 0 стремится к нулю с ростом п . Поэтому, если взять шар Хэмминга радиуса ](/? + #) л [ с центром в v', то кодовое слово v с вероятностью сколь угодно близкой к единице окажется внутри этого шара. Покажем, что с ве¬ роятностью, также стремящейся к единице, в этом шаре не будет других кодовых слов, и, следовательно, декодер, выбирающий ближайшее кодо¬ вое слово, не совершит ошибки. В самом деле, вероятность этого благоприятного для процедуры де¬ кодирования события в силу независимого и равномерного на множестве {0,1}" выбора кодовых слов равна \ ХМ , 2"J 2" 2” где х = х(п> ](р + в)п[) — 2п^г^р+^+0^ —мощность шара Хэмминга радиуса ](р + в)п[. Далее имеем Xм _ 2~п(1-Н2(р+в)-С(р)+д+о(\)) _ 2" = 2~п(С(р+в)-С(р)+<5+°( 1)) = 2~п( 5ЮЩ _^ 0 если п—> со и в достаточно мало. □
При доказательстве теоремы было не просто показано существование 331 хорошего кода. Как следует из доказательства, случайно выбранный код почти наверняка будет обладать требуемым качеством. В связи с этим мо¬ жет возникнуть вопрос, зачем, в таком случае, нужны ещё специальные алгебраические методы построения кодов, если случайная процедура с большой вероятностью даёт такой код? Ответ состоит в том, регулярная структура кода позволяет эффективно организовать процедуру кодирова- 5 ния и декодирования, что невозможно при случайном кодировании. Замечательно, однако, что скорость передачи, гарантируемая теоремой Шеннона, может быть достигнута и в классе линейных кодов. Доказатель¬ ство этого близко в идейном отношении к предыдущему, однако теперь кодовые слова, являющиеся линейными комбинациями строк порождаю¬ щей матрицы, уже нельзя считать независимыми, и оценку вероятности следует производить с помощью математического ожидания. Теорема 7. Пусть вероятность ошибки двоичного сим¬ метричного канала равна /? (О</? < 1/2), С(р) — его про¬ пускная способность. Тогда для любых сколь угодно ма¬ лых е>0 и 8> 0 при достаточно большом п существует линейный код длины п со скоростью R, заключённой в пределах C(p)-8<R<C(p), и вероятностью ошибки, не превышающей е. Доказательство. Возьмём к =] (С(р)-8) п [ и сформируем по¬ рождающую матрицу G(k х п) линейного кода случайным образом, незави¬ симо полагая каждый из кп элементов матрицы равным нулю или единице с вероятностью 1/2 . Покажем, что с отличной от нуля вероятностью матри¬ ца G будет порождать линейный код с требуемыми параметрами. Фактиче¬ ски же будет показано, что почти всегда возникает код требуемого качества. Докажем, прежде всего, что с вероятностью, стремящейся к единице с ростом п , к строк матрицы G будут линейно независимыми над полем GF(2), т. е. никакое непустое подмножество строк, сложенных по моду¬ лю 2, не даст нулевого вектора. Сумма любого числа случайных строк яв¬ ляется двоичной строкой, компоненты которой независимо и равноверо¬ ятно принимают значения 0 или 1. Поэтому вероятность того, что эта сум¬ ма будет нулевым вектором, равна \/2” . Рассмотрим случайную величину X, равную числу сумм по всем 2* -1 непустым подмножествам строк слу¬ чайной матрицы G, дающих нулевой вектор. Её математическое ожидание М(Х) = (2* -1)/2” -> 0, при п -> оо . По теореме 1 имеем Р{Х > 1} < М(Х), т. е. Р{Х > 1} -► 0, п —► оо . Но это и означает, что с вероятностью, стремя¬ щейся к единице с ростом п, ни одна сумма не даст нулевого вектора. Шеннона
Дополнение 2. Вероятностный метод 332 Покажем теперь, что, увеличивая п, можно добиться сколь угодно малой вероятности ошибки. В линейном коде окрестности всех кодовых слов устроены одинаково. Поэтому достаточно рассмотреть случай, когда по каналу передаётся нулевое кодовое слово v = (00...0), а на выходе ка¬ нала возникает слово v' = (vj\..., v'), число единичных координат в кото¬ ром с вероятностью, стремящейся к единице с ростом п, не превышает (р + в)п для любого 9>0. Покажем, что с вероятностью, также стремя¬ щейся к единице, в шаре радиуса ]{р + 9)п[ с центром в v' не будет дру¬ гих кодовых слов, которые, по определению линейного кода, являются не¬ пустыми суммами строк матрицы G. Вероятность для суммы любого фиксированного подмножества строк матрицы G дать вектор, попадающий в этот шар, есть X - + +в)п[)/2п , так как эта сумма равномерно распределена на {0,1}л . Рас¬ смотрим случайную величину Y, равную числу сумм, попадающих в этот шар. Её математическое ожидание M(Y) = х (2* -1)/2” -» 0 , при п -> °о , если в достаточно мало. Отсюда получаем, что с вероятностью, стремя¬ щейся к единице с ростом п , в шаре не будет ненулевых кодовых слов. □ Максимальная тень антицепи. В дискретной математике нередки случаи, когда точное построение некоторой экстремальной комбинаторной конфи¬ гурации сопряжено со значительными трудностями. В то же время харак¬ теристики конфигураций, построенных по простым нежёстким правилам, часто близки к экстремальным. В подобных случаях вероятностный метод может оказаться весьма эффективным для получения нижних оценок экс¬ тремальных характеристик. Какое максимальное количество вершин единичного п -мерного куба можно покрыть шарами Хэмминга единичного радиуса с попарно несрав¬ нимыми центрами? Такая задача была поставлена автором в [4]. Если цен¬ тры шаров полностью занимают средний слой куба, то они образуют анти¬ цепь и шары покрывают три средних слоя, т. е. асимптотически 3 = вершин? Коспанову [7] удалось сконструировать красивый пример, в ко- шего по порядку покрытия конструктивными методами получить не уда¬ лось, и вопрос о его максимальном порядке оставался открытым, пока в 1988 году не стало известно о результате Фюреди, Кана и Клейтмена, по¬ лучивших с помощью вероятностного метода покрытие, мощность кото¬ рого по порядку равна 2”. Рассмотрим эту конструкцию, позднее опубли¬ кованную авторами в [15]. вершин. Можно ли покрыть существенно большее число тором число покрываемых вершин по порядку было равно
Пусть А — антицепь. Тогда покрытие единичными шарами с цен- 333 трами в А разбивается на собственно множество А , тень дА антицепи А — множество тех вершин р, для которых существует вершина а е А такая, что р < а, т. е. Р может быть получена из а заменой одной из её единичных координат на нулевую, и тень вверх д~х А антицепи А — мно¬ жество тех вершин у, для которых существует вершина а е А такая, что а < у , т. е. у может быть получена из а заменой одной из её нулевых ко¬ ординат на единичную. Поэтому максимальная мощность покрытия шара¬ ми по порядку совпадает с максимальной мощностью тени антицепи дА. Теорема 8 [15]. Максимальная мощность тени антицепи в единичном л-мерном кубе для достаточно больших п превышает 0.05-2”. Доказательство. Пусть t = [л/и/2], s = [л/2-1/2]. Антицепь тре¬ буемой мощности будет выбрана из t средних слоёв куба, а именно слоёв В"+\,В"+2,...,5”+(. При этом тень такой антицепи будет лежать в слоях в;, В”+1,..., 3"+(_| • Суммарная мощность этих слоёв согласно (1.7.18) есть 5+/-1 £ С' ~2<d(i/V2)-2”*0,52-2”. (20) i=s С каждой вершиной t -го слоя 8 е В, свяжем случайную величину Xg. Случайные величины X^ независимы и одинаково распределены на множестве {0,1,2,..., /} согласно закону: Р{Xj = к) =р, к = 1,2,..., f, Р{Х^ =0} =\-tp. Значение р определим соотношением ^ Р Cs+t — Л , где параметр Л будет выбран позднее. Множество тех вершин 8 е В? , для которых Xg=j, обозначим че¬ рез Tj. Для вершины а , лежащей в одном из слоёв В"+1,В"+2Д£+/. через Т(а) будем обозначать множество тех вершин 8 е В” , для которых 8 < а . Множество Т(а) можно воспринимать как тень, отбрасываемую вершиной а на слой t. Максимальная тень антицепи
Дополнение 2. Вероятностный метод 334 Строим теперь антицепь А следующим об¬ разом. Для каждого слоя B"+i, i=1,2,..., t вклю¬ чаем в А те и только те вершины а е B"+i, для которых одновременно выполнено Т(а) П U7) = 0 и Т(а)Г\Т!*0. , и=' ; Множество включённых в А вершин слоя B"+i обозначим через А,-. Таким образом, имеем A=(jAi. /=1 Легко видеть, что построенное таким обра¬ зом множество А действительно является ан¬ тицепью. Конструкцию иллюстрирует рис. 2. Покажем, что для любой вершины Д е В” и и5”+| и... иВ"+(_| вероятность Р{Де дА} по¬ пасть в тень множества А превышает 0,1. С учё¬ том (20) это означает, что математическое ожидание мощности тени пре¬ вышает 0,05 •2”. Для вершины ДеД”+(_1 имеем Р{ДедЛ,} = Р{Зае0-|{/?}: аеА,}. Будем оценивать снизу не вероятность Р{ДесЦ}, а меньшую по величи¬ не вероятность одновременного осуществления события Д е сЦ и собы- / тия T(f3) П (J Tj = 0, которое для краткости обозначим через Нр . У=1 Р{ДеЗЛ,} > Р{я^пДеЗЛ,} = ?{Нр) • Pj Де5Л,|Я^} . Такой метод оценивания вероятности Р{ДеЗЛ,} оказывается продук¬ тивным в силу следующего обстоятельства. Если а, а' е 3-1 {Д} и а * а', то Т(а)глТ(а') = Г(Д). Поэтому при осуществлении события Нр, события d е Aj и а' е Л,- являются независимыми. Во всех последующих выклад¬
335 ках Р е B"+i-1 — произвольная вершина слоя s + i-1, i = 1,2,... ,t. В си¬ лу отмеченной независимости имеем Р{Де(Ц.|Яд} =1-(1-р{ае4|ае5-1{>5}&Яу3}),,“'"'+1> >1-ехр|-(л-5-/ + 1)-р|ае/4/|ае5~|{у9}&Я>д||, где в последней оценке используется (1.7.27). Таким образом, для вероятности Р{/?есЦ} получаем оценку Р{ДеЗЛ(}>Р(Яд)^1-ехр|-(и-.5-/+1)-р|агеЛ||й'€сГ1{Д}&Яд|^. (21) Далее оцениваем по отдельности каждую из двух вероятностей в пра¬ вой части (21): Р (Яд) = (1 - ip)C*+i~l > (1-tp)C*+< e'tpC^‘ = е~Х, п-> ж, где было использовано (1.7.29). Для второй вероятности в силу | Т(а)\Т(Р) | = С]+}_[ имеем р{аеЛ,-|аед-1{Д}&Яд} = =Р r^croUU^^oU U 7)|аеЗ_1{Д}&Яд 1= 1 j=i j=i+\ J £/-l r>t~ I =(l-(/-l)p)^-' -(1 -ipf- =((1 -ip) + pf£-' -(1 >pC‘~l\ (1 -ipf^, -'s+i-l = -./-l Ct-\ где последняя оценка вытекает из бинома Ньютона. Но (1 - ip) ,+м —> 1, так как О-ipf»" ^-ipC‘slU > 1 - tpCl^t_x=l-tPCtsH . Поэтому р[аеД,|аб5"1{Д}&Яд}>рС';|_1=^С'+,_1 = так как биномиальный коэффициент С£+,_] может быть оценен как Cj+f_( > > C‘s+te~‘ Is~C‘s+t/e (см. задачу 1.32). Максимальная тень антицепи
Дополнение 2. Вероятностный метод (22) Окончательно для Р{fiedA;} из (21) получаем Р{ДесЦ-}> е-Л(\-е~Я/е). Величина е~Л{\-е~^е) достигает максимального значения при Л = 1+-|«0,85. Подставляя Я = 0,85 в(22), получаем е) Р{Д е сЦ-} « 0,11. □ Позднее Чухров [12] также вероятностными методами получил в качест¬ ве нижней оценки для тени антицепи 0,2 • 2” , а Косточке [8] впервые удалось получить верхние оценки, асимптотически отличные от 2” — 0,724-2” для мощности тени и 0,9987 -2” для покрытия шарами. Случайные (±1) -матрицы и детерминанты. Матрицы из +1 и -1 свя¬ заны с самыми различными комбинаторными конструкциями и являются предметом математических исследований со второй половины XIX века, начиная с работ Дж. Сильвестра и Ж. Адамара. Исследовался, в частности, детерминант такой матрицы. Гипотеза, что максимальное по модулю значе¬ ние детерминанта, равное я”/2, достигается для всех п , кратных четырём, уже более ста лет занимает умы математиков. С середины XX века детерминант таких матриц стал изучаться как случайная величина. Ясно, что вследствие симметрии математическое ожидание M(det А(я,я)) = 0, и также равны нулю все остальные момен¬ ты нечётного порядка. Далее, в полное разложение det А(я,я) входят я! членов, которые для случайной (±1)-матрицы принимают значения +1 и -1 и попарно независимы. Поэтому дисперсия D(det А(я,я)) = я!. Одна¬ ко, вычисление чётных моментов более высокого порядка связано уже со значительными техническими трудностями (см.[20]). Далее, возникает ес¬ тественный вопрос, верно ли, что det A(n,n)/Vn] ~ N(0,1), я -»со, т. е. что детерминант распределён асимптотически нормально? Ответ на этот во¬ прос неизвестен. Утверждение же, что P{det А(я,я) = 0}-»0 при я —»со, представля¬ ется почти тривиальным. Однако строгое доказательство этого факта ока¬ залось отнюдь не простым. В середине шестидесятых годов прошлого века оценкой вероятности вырождения случайной (±1)-матрицы занялся венгер¬ ский учёный Янош Комлош (J. Koml6s). Разработанная им для этого тех¬ ника основана на известном в дискретной математике результате, который носит название леммы Литлвуца—Оффорда.
337 Лемма 2 (J. Е. Littlewood, А. С. Offord, 1943). Для лю¬ бого заданного набора (Д,Д2,---. Д) отличных от нуля действительных чисел существует не более с|^ наборов (У\,У2, ■■■ ’У/)€ {-1> 1}*. удовлетворяющих равенству Р\У\ + Р2У2 +••• + Р1У1 =Р- (23) Доказательство. Ясно, что лемму достаточно доказать для Д, Д>, ...,Д> 0. При этом условии наборы (у],у2, ,У/), удовлетворяющие условию (23), попарно несравнимы, и утверждение следует из леммы Шпернера (3.7.1). о Непосредственно из леммы 2 вытекает Следствие 6. Если значения +1 или -1 для каждой ком¬ поненты набора {у\,У2, ••• ,у/)е {-1.1}* выбираются равнове¬ роятно и независимо, то вероятность выполнения равен¬ ства (23) не превышает g/=c}/^/2/. Вероятностям Qt, 1 = 2,3,... принадлежит ведущая роль в дальней¬ ших рассуждениях. Поэтому исследуем их свойства. Последовательность Qj, / = 2,3,... монотонно не возрастает и удов¬ летворяет следующим соотношениям (?2Ы ~ 62/ - ' . 62/+I; Ъ + 1 Й2 = 1/2, Оз = 3/8, &, = 3/8, ..., /->«>; 4—JL* < а < -4=. 72 77+1 77+2 й±2 < ! L < е-1/(/+3) а /+з (24) (25) (26) (27) Соотношение (24) проверяется непосредственно. Соотношение (25) вытекает из формулы Стирлинга. Соотношение (26) является следствием неравенства Л<С" - Г 27п 2п Тз^+Т (см. задачу 1.15). Случайные (±1)-матрицы и детерминанты
Дополнение 2. Вероятностный метод 338 И, наконец, (27) следует из (24). Для дальнейшего будет удобно следующее определение. Для матрицы А(т,п) её сильным рангом по столбцам р(А) называется такое неотрицательное целое число р, что любые р её столбцов линейно независимы и либо в А существует р +1 линейно зависимых столбцов, либо р = п. Аналогично определяется сильный ранг по строкам р'(А). Лемма 3. Для случайной (±1)-матрицы А(т,п) при к<т и к<п справедливо Р{р(А) = к} <(n-k)C^(Qk + l)m~k, (28) Р{р'(А) = Л:} <{m-k)CkmCkn(Qk + l)n~k . (28') Доказательство. Если р(А) = к , то в матрице А существуют к линейно независимых столбцов ,... ,а^ , и столбец а^+[ , являющийся их линейной комбинацией ЯЛ + ••• + як\ ~ \+! = о. где Ли...,Як * 0. В столбцах ау),...,ajk можно выделить базисный кхк- минор, однозначно определяющий коэффициенты Я^...,Як . Обозначим через / = 1,2,..., (п-к)С^ С* , событие, что некото¬ рый к х к -минор отличен от нуля и имеется столбец матрицы А , являю¬ щийся линейной комбинацией столбцов минора. Ввиду следствия 6 имеем Р(£/)<(а+1 )т к. Как установлено предыдущими рассуждениями, {/?(А) = =*>=Ц .Ej . Отсюда, используя (1.4.1), получаем Р {р(А) = к) < £ Р(Ег) <(П-к) Скт Ск (Qk+] )т~к . □ i Следствие 7. Для случайной (±1)-матрицы А(т,п), где т = [п/2], при л-»оо для любого, сколь угодно малого е > 0 имеет место а) Р(р(А) > л/4} = 1 -о(2_(1 ~£)т); б) Строки матрицы А линейно независимы с вероятно¬ стью 1-о(2-^* 1-^").
До казательство. а) Используя (28) и (25), получаем 339 [л/4] l*UB2«J Р{р(А)<л/4}=£ Р{р(А) = А:} = £ Р{р(А)=к} [log, л] к=1 к=1 + [£] P{p(A)=fc}<ndog2wVog2%,og2")-[- *=[log2 л]+1 ' ^ m—log2 л + И2-2ОТ-2”' Vl°g2 п т/4 =о(2_(1_е)"1 )• б) Для матрицы А (л, л) аналогично предыдущему легко получить, что Р{р'(А)>[л/2]} = 1-о(2_^1-^"), после чего достаточно заметить, что с уменьшением числа строк сильный ранг по строкам не уменьшается. □ Теперь мы готовы к доказательству результата Комлоша. Теорема 9 (J. Komlos). Для случайного (±1)-детерми¬ нанта detA(m,w) справедливо P{detA(n,«) = 0} = o(l/V«j, л->со. Доказательство. Воспользовавшись следствием 7, выберем сле¬ дующую вероятностную схему порождения случайной (±1)-матрицы А(л,л). Берём случайную (±1)-матрицу А(т,п), где т = [п/2]. Затем за п-т шагов достраиваем матрицу А(т,п) до матрицы А(п,п), на каждом шаге приписывая снизу случайную (±1)-строку длины п . Заметим, что в процессе увеличения числа строк сильный ранг по столбцам не уменьша¬ ется, оставаясь не меньшим [л/4]. Пусть Ек — событие, заключающееся в том, что строки матрицы А(т + +к-\,п) линейно независимы, а столбцы матрицы А(т + к,п) линейно зависимы, к = 1,2,..., и - т . Тогда вероятность получить после п-т ша¬ гов вырожденную матрицу не превышает £” " Р(Ек). Оценим сверху вероятность Р(Ек). Не теряя в данном случае общности, будем для определённости счи¬ тать, что базисный минор порядка т + к -1 в матрице А(т + к -1, п), на¬ ходится в её первых т + к-1 столбцах. Тогда существует линейная ком¬ бинация первых п + к столбцов матрицы А(т + к-\,п) с коэффициентами Случайные (*1)-матрицы и детерминанты
Дополнение 2. Вероятностный метод 340 А > А> ■■■ , А+к-1,-1, дающая нуль-вектор, не менее [ти/4] коэффициен¬ тов в которой отличны от нуля. В силу того, что (т + к) -я строка матрицы А(т + к,п) является линейной комбинацией её первых т + к-1 строк, эта же линейная комбинация обязана обратиться в нуль и на элементах (т + к) -й строки Далее, рассматривая п + k-l первых столбцов и (л + £ + 1)-й столбец в матрице А(т + к,п), имеем аналогичное линейное соотношение для эле¬ ментов (п + к) -й строки, куда вместо ап+кп+к войдёт элемент ап+к п+к+\ Но элемент ап+/с „+к+[ принимает одно из двух значений — +1 или -1, поэтому вероятность выполнения этого соотношения не превышает 1/2 . Это же справедливо и для последующих строк. Следовательно Поэтому вероятность того, что после п-т шагов получится вырож¬ денная матрица А(п, п), не превышает Результат Я. Комлоша означает, что строки случайной (±1)-матрицы А(п,п), рассматриваемые как векторы в евклидовом п -мерном простран¬ стве, с вероятностью, стремящейся к единице с ростом п , образуют базис в этом пространстве, и их линейная оболочка содержит все векторы этого пространства и, в частности, все (±1)-векторы. Американский учёный Андрей Одлыжко (А. М. Odlyzko), занимаясь задачей, возникшей в теории нейронных сетей, получил результат, в опре¬ делённом смысле дополняющий результат Комлоша. Используя развитую Комлошем технику, он установил, что в случайной (±1)-матрице А(т,п) число строк т может лишь незначительно уступать числу её столбцов, так что т~п, п—»оо, но при этом в линейной оболочке её строк с вероят¬ ностью, стремящейся к единице, не будет ни одного (±1)-вектора, отлич¬ ного от строк матрицы А(т, п) и им противоположных. о Аап+к,\ +Аап+к,2 + ••• + Ai-¥k-\an+ktn+k-\ ~ап+к,п+к • а вероятность этого события согласно следствию 6 и (26) есть □
341 Теорема 10 [21]. Существует такая бесконечно малая а(я) = о(1), п—>оо, что вероятность того, что в линейной оболочке строк случайной (±1)-матрицы А(т,п), где т = = п(1-а(п)), содержится ещё хотя бы один (±1)-вектор, отличный от строк матрицы А(т,п) и им противополож¬ ных, стремится к нулю с ростом п. Связь между результатами Я. Комлоша и А. Одлыжко можно качест¬ венно продемонстрировать, перейдя от дискретной модели к непрерыв¬ ной. Пусть компоненты п -мерного вектора равномерно и независимо рас¬ пределены на отрезке [-1,1]. Тогда, взяв из такого распределения произ¬ вольное конечное число К > п векторов, с вероятностью 1 имеем, что любые п из них линейно независимы, а в линейной оболочке каждых и-1 не содержится ни одного из оставшихся К-п +1. Таким образом, результаты Я. Комлоша и А. Одлыжко свидетельствуют фактически о том, что с ростом п свойства случайных (±1)-векторов приближаются к свой¬ ствам векторов, выбранных из непрерывного распределения. Доказательство теоремы 10 будет проведено по схеме, предложенной И. П. Чухровым. Обозначим через Ек(т,п) событие, состоящее в том, что в случайной матрице А(т,п) найдутся к строк, линейная комбинация которых даёт (±1)-вектор, отличный от строк матрицы А(т,п) и им про¬ тивоположных, и не существует меньшего числа строк с такими свойст¬ вами. Как следует из определения, при осуществлении события Ек(т, и) задающие (+1) -вектор к строк матрицы должны быть линейно независи¬ мы, а все коэффициенты их линейной комбинации отличны от нуля. и Лемма 4. Для вероятности события Ек(т,п) справедлива оценка ?(Ek(m,n)) <2nCkmCkn(Qkrk. (29) Доказательство. При осуществлении события Ек(т,п) в матри¬ це А(т, п) необходимо существует отличный от нуля минор порядка к, линейная комбинация строк которого с отличными от нуля коэффициен¬ тами даёт (±1)-вектор. Таких миноров существует С*С*, а различных (±1)-векторов — 2”. Если положение минора выбрано, то к отличных от нуля коэффициентов линейной комбинации однозначно определяются значениями координат (±1)-вектора, соответствующих столбцам минора. При этом вероятность совпадения значений (±1)-вектора и линейной ком¬ бинации в остальных п-к координатах есть (Qk)п~к . □ Случайные (±1)-матрицы и детерминанты
Дополнение 2. Вероятностный метод 342 Доказательство теоремы 10. Как легко непосредственно про¬ верить, никакая линейная комбинация двух (±1)-векторов не может дать (±1)-вектор, отличный от них и им противоположных. Поэтому рассмат¬ ривать вероятности Р(£’^(т>п)) нужно, начиная с к = 3 . Докажем теоре¬ му, показав, что [n-8n/log2 п] ]Г ?{Ек(т,п))^0, л-»а>. к=Ъ В силу (29) и (25) имеем Р(Е3(т,я)) = о{п6(ъ/4)” J ->0, л-»оо; P(i?4(/n,/j)) = 0^л8(з/4)яj-»0, л-»оо. Рассмотрим сначала значения А: в диапазоне 3 < А < [л/61п л]. Для удобства обозначим 2п C^CkQk~k = Zk(n,m). Покажем, что в этом диапа¬ зоне значений А имеет место соотношение Zk+2 (n,m)/Zk (л, т) < 1/л . Zk+2M = скт+2скп+2 1 с£с* I Qk ) Ql+2' Имеем cj+2Ck+2 (лг-А)(т-А-1)(л-А)(л-А-1) ^ (п СктСк ~ (А + 1)2(А + 2)2 ~ U а из (27) и (26) заключаем Qk+2 V Qk \п-к < е-{п-к)Кк+3) . г < 2(А + 3). (&+2)2 Это даёт Z*+2(W-»W)- S2(/t + 3) W4^n-^+3) (30) При 3 < к < [л/6 In л] для достаточно больших л имеет место нера¬ венство л-А > 5 In л. А + 3
Поэтому 343 е~(п~к)/(к+3) < я-5 Теперь из (30) получаем Zft+2(n,m) < 2(Лг + 3) 1 < _1_ Zk(n,m) к4 п п’ при к> 3 Как следует из (33), [я/61пя] X P(^(w,«)) = o(Z3(w,»j) + Z4(«,/m)) ыг Рассмотрим теперь значения к в диапазоне [л/6 In п] < к < [п - 8«/log2 п]. (31) Так как Qk монотонно не возрастает, при таких ограничениях на к спра¬ ведливы неравенства (вкГк< (0>/61пл]) 8/i/log2 л 8n/log2 п •у/и/61п п где й(я) = log2 log2 я/log2 л, h(n) -» 0 при п -> со . Теперь с помощью (29) получаем [«-8n/log2 п] [n-8«/log2 я] X Р(£*(«,и)) £ Z 2 пСктСкпОГк< _2~4 n+0{nh(n)) А=[л/61пл] А=[н/б1пл] < [л-8л/1с^2 я] . у' 2я22л2_4л+°^лА^”^ £=[л/61пл] _2-л(1-о(1)) Тем самым показано, что [л-8я/log2я] ^ Р(£14(/и,л)) -»0, я—»со. о к=3 Дальнейшие результаты и гипотезы. Коснёмся некоторых гипотез и пред¬ положений, связанных с теоремами 9 и 10. Группой известных математи¬ ков в составе Дж. Кана, Я. Комлоша и Е. Семереди в технически весьма трудном исследовании [18] первоначальные результаты Я. Комлоша и А. Одлыжко были усилены. Было показано, что существует такое е > О, что вероятность обращения в нуль детерминанта случайной (±1) -матрицы Р {| А(я, л) | = 0} < (1 - е)”, в частности, это было доказано для £ = 0,001. В то же время существует широко известная недоказанная гипотеза, со¬ гласно которой вероятность вырождения случайной (±1)-матрицы асим- Дальнейшие результаты и гипотезы
Дополнение 2. Вероятностный метод 344 птотически совпадает с вероятностью присутствия в матрице двух одина¬ ковых или противоположных строк или столбцов, что даёт Р{| А(л,л)|=0} ~ 2-2-С%-2-п~2п22-п, л-юо. В [18] также показано, что утверждение теоремы 10 справедливо для а{п) > с/л , где с — некоторая константа, т. е. для матриц вида А(л - с, л). В своём исследовании эти учёные предположили также, что лемма спра¬ ведлива и для с = 1, т. е. для матриц, в которых число строк лишь на еди¬ ницу уступает числу столбцов. Покажем, что в предположении справедли¬ вости этой гипотезы асимптотика числа пороговых функций совпадает с верхней асимптотической границей в (2.8.11). Утверждение 9. Если верно, что в линейной оболочке строк случайной (±1)-матрицы А(л-1,л) почти всегда не содержится других (±1)-векторов, кроме строк матрицы А(л-1,л) и им противоположных, то для числа пороговых „2 2” функций справедлива асимптотика Nn~2 . л! Доказательство. Прямое применение (2.8.14) при подстановке т = л даёт что вдвое меньше того, что утверждается. Это связано с тем, общее цен¬ трированное расположение гиперплоскостей не является квазиобщим, ко¬ гда в теореме 2.8.8 имеет место случай равенства. Избавиться от «систе¬ матической» погрешности метода, связанной с центрированным располо¬ жением гиперплоскостей, можно с помощью следующего приёма в духе проективной геометрии, заимствованного автором из [23]. В л -мерном евклидовом пространстве Rn = < Oq, щ, ..., а„ > с сис¬ темой гиперплоскостей (2.8.10) добавим гиперплоскость Hq : а0 =0. При #14-1 этом число конусов в R , равное Nn , возрастёт на число областей, на которые эта гиперплоскость рассекается остальными гиперплоскостями. Но число этих областей равно числу самодвойственных пороговых функ¬ ций от л переменных, которое согласно утверждению 2.8.6 равно числу пороговых функций от л-1 переменных. Таким образом, полное число конусов будет теперь равно N„ + N„_i = Nn (l + o(l)). Введём в рассмотрение ещё две гиперплоскости Я_ (: ац = -1 и #*4-1 Я|: а0 =1. Каждый из Nn + Nn_\ конусов в R пересекается ровно од¬ ной из гиперплоскостей Н_1 или Я]. При этом в гиперплоскости выреза-
ется п -мерный кусок (конечный или бесконечный), и сумма кусков в Н_1 345 и Я] равна полному числу конусов. Оценим число этих кусков, вырезае¬ мых в каждой из гиперплоскостей семейством гиперплоскостей (2.8.10), с § помощью теоремы 2.8.8. I Почти все случайные (±1)-матрицы А(л,я + 1), имеют в силу теоре¬ мы 9 ранг и. Поэтому типичным подпространством пересечения п ги¬ перплоскостей из семейства (2.8.10) является подпространство размерно¬ сти 1, т. е. прямая, которая не лежит в гиперплоскости Я0 и поэтому пе¬ ресекается с каждой из плоскостей Я_] и Н\ по пространству нулевой размерности (точке). При условии справедливости сформулированной ги¬ потезы число различных прямых асимптотически равно С”„ ~2п /п\. Со¬ гласно теореме 2.8.8 число кусков в каждой из гиперплоскостей не меньше числа этих точек, т. е. асимптотически не меньше 2” /п\. Поэтому сум¬ марное число кусков в двух гиперплоскостях асимптотически не меньше „2 2” 2 . Данную конструкцию схематически иллюстрирует рис. 2, где пол- л! ное число конусов равно 16, а число точек — 12. □ В шестидесятые годы прошлого века были разработаны методы пере¬ числения пороговых функций, и их число было подсчитано вплоть до 8 переменных. Вместе с утверждением 10 это позволяет эксперименталь¬ но проверить гипотезу Кана, Комлоша и Семереди. Приводимая ниже табл. 1 взята из авторитетного источника по пороговой логике [19]. Стоящие Рис. 2 Дальнейшие результаты и
Дополнение 2. Вероятностный метод 346 в правом столбце этой таблице отношения Nni 2Zci. V /=о 2" —1 ОТНОСЯТ чис¬ ло пороговых функций от и переменных к числу конусов, на которые Rn+i рассекается 2" гиперплоскостями, находящимися в общем центри- п рованном положении. Напомним, что 2 ^Гс'п (~ 2 1=0 2" П! п log iNjn1 1 4 2 1 2 14 0,95183 1 3 104 0,74449 0,81250 4 1882 0,67987 0,48480 5 94 574 0,66116 0,22913 6 15 028 134 0,66225 0,09938 7 8 378 070 864 0,67273 0,04419 8 17 561 539 552 946 0,68740 0,02141 Хотя никакие экс¬ периментальные иссле¬ дования подобного ро¬ да и не могут служить окончательным вердик¬ том в вопросе справед¬ ливости гипотезы, эти результаты заставляют скорее усомниться в ги¬ потезе, чем поверить в её справедливость. В лю¬ бом случае, однако, слу¬ чайные (±1)-матрицы Таблица 1 представляют собой ог¬ ромное поле для плодо¬ творных теоретических исследований, в процессе которых новые, более эффективные методы позволят ответить на этот и другие вопросы. Задачи для самостоятельного решения 1. В случайной подстановке степени п найти математическое ожидание а) числа неподвижных элементов; б) числа циклов длины к (1 < к < п ); в) общего числа циклов (В. Л. Гончаров, 1943). 2. Показать, что почти все графы являются связными. 3. Показать, что у почти всех графов радиус и диаметр совпадают и равны 2. 4. Указать асимптотику для числа простых помеченных п -вершинных эйлеровых графов при п -»<ю . 5. Показать, что почти все графы гамильтоновы. 6. Пусть Qe{0,1}” —произвольное подмножество вершин «-мерного куба, Н — множество покрывающих куб шаров радиуса г. Тогда су¬ ществует покрытие куба шарами радиуса г такое, что в множестве Q лежат не более \H\-\Q \/ln центров шаров (Ю. А. Зуев — Г. А. Каба- тянский, 1988).
347 7. Пусть Q €{0,1}" —произвольное подмножество вершин л-мерного куба, Н — множество непересекающихся шаров радиуса г. Тогда существует непересекающееся множество шаров радиуса г такое, что в множестве Q лежат не менее | Н | • | Q |/2” центров шаров. 8. Если рп — вероятность обращения в нуль детерминанта случайной (±1)-матрицы порядка л, то чему равна вероятность обращения в нуль детерминанта случайной (0,1) -матрицы порядка л ? 9. Пусть в л-мерном евклидовом пространстве берётся т точек (an,ai2, ...,ain), i = 1,2,, т , координаты которых формируются случайным образом, независимо выбираясь из непрерывного симметричного от¬ носительно нуля распределения (например, равномерного на [-1,1] или нормального с нулевым математическим ожиданием). Найти ве¬ роятность того, что выпуклая оболочка этих точек содержит начало координат? (J. G. Wendel, 1962) 10. Из множества вершин л -мерного куба {-1,1}” случайно и независи¬ мо выбираются /л(л) вершин. Указать такое число с0, что для любо¬ го £ > 0 выпуклая оболочка более чем (с0 + s)n вершин с вероятно¬ стью, стремящейся с ростом л к единице, будет содержать начало ко¬ ординат, а для менее чем (с0 - е)п вершин эта вероятность стремится к нулю (Z. Furedi, 1986). Литература 1. АлонН., Спенсер Дж. Вероятностный метод. М.: БИНОМ. Лаборатория зна¬ ний, 2007. 2. Андреев А. Е. Об одной модификации градиентного алгоритма// Вестник МГУ. Сер. 1. Математика. Механика. 1985. № 3. С. 29-35. 3. Васильев Ю. Л., Глаголев В. В. Метрические свойства дизъюнктивных нор¬ мальных форм // Дискретная математика и математические вопросы киберне¬ тики / Под ред. С. В. Яблонского и О. Б. Лупанова. М.: Наука, 1974. 4. Зуев Ю. А. О представлении булевых функций системами линейных нера¬ венств // Кибернетика. 1985. № 5. С. 7-9,40. 5. Коршунов А. Д. О сложности кратчайших дизъюнктивных нормальных форм случайных булевых функций // Методы дискретного анализа в оптимизации управляющих систем. Вып. 40. Новосибирск: ИМ СО АН СССР, 1983. С. 25-53. 6. Коршунов А. Д. Основные свойства случайных графов с большим числом вершин и рёбер // Успехи математических наук. 1985. Т. 40. Вып. 1. С. 107-173. 7. Коспанов Э. Ш. О покрытии шарами единичного радиуса, центры которых несравнимы // Методы дискретного анализа в синтезе управляющих систем. Вып. 44. Новосибирск: ИМ СО АН СССР, 1986. С. 54-57. 8. Косточка А. В. Верхняя оценка мощности границы антицепи в л -мерном кубе // Дискретная математика. 1989. Т. 1. Вып. 3. С. 53-61. 9. Нигматуллин Р. Г. Сложность булевых функций. М.: Наука, 1991. Литература
Дополнение 2. Вероятностный метод 348 10. Рыбников К. А. Введение в комбинаторный анализ. М.: Изд-во Моек, ун-та, 1985. 11. Сачков В. Н. Введение в комбинаторные методы дискретной математики. М.: МЦНМО, 2004. 12. ЧухровИ. П. О максимальной мощности тени антицепи// Дискретная мате¬ матика. 1989. Т. 3. Вып. 4. С. 78-85. 13. Эрдёш П., Спенсер Дж. Вероятностные методы в комбинаторике. М.: Мир, 1976. 14. AlonN., VanH. VU. Anti-Hadamard Matrices, Coin Weighing, Threshold Gates, and Indecomposable Hypergraphs // Journal of Combinatorial Theory, Series A. 1997. Vol. 79. P. 133-160. 15. Fiiredi Z., Kahn J., Kleitman D. J. Sphere covering of the hypercube with incom¬ parable centers // Discrete Mathematics. 1990. Vol. 83. № 1. P. 129-134. 16. Graham R. L., Spencer J. H. A constructive solution to a tournament problem// Canadian Mathematical Bulletin. 1971. Vol. 14. № 1. P. 45-48. 17. Hastad J. On the size of weights for threshold gates // SIAM J. Discrete Mathemat¬ ics. 1994. Vol. 7. P. 484-492. 18. KahnJ., KomlosJ., Szemeredi E. On the probability that a random ±1 -matrix is singular // J. Amer. Math. Soc. 1995. Vol. 8. № 1. P. 223-240. 19. Muroga S. Threshold Logic and its Application. N. Y.: Wiley, 1971. 20. Niquist H., Rice S. O., Riordan J. The distribution of random determinants // Quar¬ terly of Applied Mathematics. 1954. Vol. 12. № 2. P. 97-104. 21. OdlyzkoA.M. On Subspaces Spanned by Random Selections of ±1 Vectors // Journal of Combinatorial Theory, Series A. 1988. Vol. 47. .№ l.P. 124-133. 22. Pippenger N. The shortest disjunctive normal form of a random Boolean func¬ tion // Random Structures & Algorithms. 2003. Vol. 22. Issue 2. P. 161-186. 23. WinderR. O. Partitions of N-space by hyperplanes// SIAM J. Appl. Math. 1966. Vol. 14. № 4. P. 811-818. Комментарии к литературе Хотя вероятностный метод в различных своих модификациях к на¬ стоящему времени использовался уже в огромном числе работ, в мировой литературе известны всего две целиком посвящённых ему монографии, обе они переведены на русский язык. В [13] метод представлен на началь¬ ном этапе своего развития, в [1] отражены результаты, полученные в по¬ следующие годы. В монографиях [10,11] вероятностным методам посвя¬ щены отдельные главы. В [7] представлен обзор результатов по случай¬ ным графам, полученным до 1985 года. Посвящённая случайным детерминантам ранняя работа [21] отражает возникшие здесь трудности, которые не преодолены и поныне. В [17] и [14] исследуются (±1)-матрицы и величины весов пороговых функций при их целочисленных реализациях. Изучение чрезвычайно трудной в техниче¬ ском отношении работы [18] потребует напряжённого труда даже от ис¬ кушённого математика. Современное изложение на вероятностном языке результатов, относящихся к длине кратчайшей д. н. ф. типичной булевой функции, можно найти в [22].
Ответы и указания к решению задач Глава 3 3.1. Следует из утверждения 3.1.1. 3.2. При п чётном регулярные п -вершинные графы степени к сущест¬ вуют для всех к в диапазоне 0 < к < п -1. При п нечётном регу¬ лярные п -вершинные графы степени к существуют лишь для всех чётных к в диапазоне 0 < к < п -1. Отсутствие регулярных графов при нечётном п и нечётном к является прямым следствием утвер¬ ждения 3.1.1. Существование регулярных графов в остальных случа¬ ях легко показать, пометив вершины графа классами вычетов по мо¬ дулю п и соединив каждую вершину i (0 < г < л -1) рёбрами с вер¬ шинами /Ч1, / -1, / + 2, / - 2 i + k/2, i + k/2 в случае чётного к и с вершинами г + 1, /-1, i + 2, i-2,..., i + [k/2], i + [k/2], i + n/2 в слу¬ чае нечётного к . 3.3. В произвольной связной компоненте мощности к > 2 вершины имеют степени от 1 до к-1. Поэтому в ней присутствуют две вер¬ шины одинаковой степени. 3.4. п -1. Столько висячих вершин имеет граф (звезда). 3.5. п. 3.6. Висячая вершина не может быть центральной в дереве G = (V, Е), ес¬ ли | V | > 2 , а длиннейшая цепь, начинающаяся в любой фиксирован¬ ной вершине, обязана заканчиваться в висячей вершине дерева. Поэто¬ му при удалении всех висячих вершин центральные вершины прежнего дерева сохранятся и останутся таковыми в новом дереве. Повторяя процесс удаления висячих вершин, приходим к графу К\ или К2. 3.7. Если в бинарном дереве убрать корень, то возникнет упорядоченная пара бинарных деревьев с суммарным числом вершин, равным п -1. Обозначив число п -вершинных бинарных деревьев через Т(п), имеем, таким образом, рекуррентное соотношение T(n) = ^in.=^T(i)T(n-i-\), совпадающее с (1.5.6) и (1.5.9). Поэтому Т(п) = С2"„/(л + 1).
Ответы и указания к решению задач 350 3.8. Число рёбер самодополнительного графа равно числу рёбер его до¬ полнения, а в сумме они дают п(п-1)/2 . Поэтому п(п-1)/2 — чёт¬ ное число. Следовательно, п = 0(mod4) или п = l(mod4). 3.9. В противном случае существовала бы простая цепь, связывающая вер¬ шину одной цепи с вершиной другой цепи. С помощью этой цепи можно было бы получить простую цепь большей длины. ЗЛО. d +1. 3.11. а) не изоморфны, так в G\ расстояние между двумя вершинами сте¬ пени 2 равно трём, а в G2 — двум; б) изоморфны. 3.12. S2,D„,S5. 3.13. Можно обойти для любого п. 3.14. Допустив гамильтоновость и удалив входящие в гамильтонов цикл рёбра, при невыполнении условия получаем одновершинное ребро. 3.15. Гамильтонов цикл легче всего получить из пою 01110 цепи на рисунке четырёхкратным цикличе¬ ским сдвигом координат (12345), при ко¬ тором вершина (11000) переходит в вер¬ шину (01100). 3.16. Нет. Показать это, избежав перебора, можно различными способами. 1). Граф G является, как несложно проверить, двудольным, поэтому в нём нет цикла нечётной длины. 2). Шесть вершин 1, 3, 5, 7, 8, 10 попар¬ но не смежны, а в цикле длиной 11 может быть не более 5 таких вер¬ шин. 3). Для того чтобы все вершины получили степень 2, необходимо удалить по два ребра, инцидентных вершинам 2, 6 и 9, и по одному ребру, инцидентным вершинам4 и 11. Оставшихся 18-6-2 = 10<11 рёбер недостаточно для образования гамильтонова цикла. Заметим, что G является, как было в 1970 году установлено Д. Барнеттом и Е. Юко- вичем, негамильтоновым планарным 3-связным графом, имеющим среди графов с этими свойствами минимальное число вершин. 3.17. На рисунке показан гамильтонов цикл в произведении цикла и Р5. 3.18. Пусть Г — циклический автоморфизм связного графа G = (V,E). Для а е Г через Га обозначим циклическую группу, порожденную 11000 01010 01100
подстановкой а . Зафиксируем некоторую вершину v е V . Если а е Г 351 такая подстановка порядка т, что {v,a(v)} е Е, то |v,a(v),a2(v),..., •*> ат' ■‘(V)) — цикл в графе G. Пусть теперь а — подстановка макси- 1 мального порядка такая, что подграф Ga, индуцированный множе¬ ством вершин V(a) = | v,a(v),a2(v),...,a,”~1(v)j , гамильтонов. По¬ кажем, что тогда а является образующей группы Г и т =| V |. До¬ пустим противное. Тогда ввиду связности графа G в нём существует ребро {v!,v2} такое, что V\eV(a), v2£V(a), т. е. v, =a'(v), v2 =j3a‘(v), где ft <tTa . Пусть к — наименьшее целое, такое что рк еГа. Тогда граф Ga p, индуцированный вершинами вида alpJ(v), в качестве остовного подграфа содержит произведение Ст х Ск и согласно ут¬ верждению предыдущей задачи является гамильтоновым. Противо¬ речие. 3.19. Удаляем одну вершину из К2п+\ и в графе К2п выбираем п га¬ мильтоновых цепей следующим образом. Нумеруем вершины клас¬ сами вычетов по модулю 2п, берём вершину i (/ = 0,1,2 п -1) и строим гамильтонову цепь /,г' + 1,/-1,г + 2,/-2,г' + 3,...,г'-л + 1,/' + л. Соединив концевые вершины каждой цепи с удалённой вершиной, получаем п циклов. 3.20. Число вершин ^” ^, ^2, число рёбер . 3.21. Граф G должен быть связным, а степени его вершин должны быть вида degv = 0(mod4) или degv = 1 (mod4). 3.22. а) Эйлеров цикл в графе G является гамильтоновым в графе L(G). б) Используя гамильтонов цикл в G, можно обойти рёбра графа G как показано на рисунке, получив тем самым гамильтонов цикл в L(G). граф G с гамильтоновым обход его рёбер циклом по рёбрам (1 36789 10) (12345678910) 1 гамильтонов цикл в рёберном графе L(G)
и указания к решению задач 352 3.23. Индукция по числу вершин турнира. 3.24. Утверждение достаточно доказать для дерева. Докажем, что в про- извольном дереве G для каждого его ребра в G существует прохо¬ дящий через это ребро гамильтонов цикл. Непосредственной про¬ веркой убеждаемся, что это верно для всех деревьев с 3 или 4 вер¬ шинами. Допустим, что существуют деревья, для которых это не выполняется. Выберем среди них дерево G(V,E) с минимальным числом вершин, и пусть через ребро {а,Ь} еЕ в G3 не проходит ни один гамильтонов цикл. При удалении ребра {a, b), G распадается на два дерева G, = {VX,EX}, а е Vx и G2 = {V2,E2}, b е V2, в одном из которых, например в Gx, не менее трёх вершин. При этом в G2 мо¬ жет быть либо также не менее 3 вершин, либо 2 вершины, либо одна вершина. Рассмотрим первый случай. Пусть {а,х} е Ех, {Ь, у) е Е2 . Тогда в Gx существует гамильтонов цикл, проходящий через {а,х}, а в G2 — гамильтонов цикл, проходящий через {Ь,у}. Эти циклы, лишённые рёбер {а, х} и {Ь, у} и пополненные рёбрами {а,Ь} и {х,у}, образуют гамильтонов цикл в G3, что противоречит сделан¬ ному допущению. Аналогично рассматриваются два других случая. 3.25. X{G). 3.26. it(jt-l)"-1. 3.27. z = 2, z' = п. 3.28. Пусть U — множество всех к -раскрасок графа G, правильных и не¬ правильных, S0=l^l=^^> Ц —множество раскрасок, приписываю¬ щих одинаковые цвета вершинам ребра е,-. Для нахождения правиль¬ ных раскрасок воспользуемся формулой (1.3.6). Пусть BG(m,j) — число остовных подграфов с j рёбрами и т компонентами связно¬ сти. Имеем sl -2,а,ад1 U^Uhn...nU,t | = ад»,У*", так как в раскраске из множества r>Uj2 n...n[/^ каждая из т компонент соответствующего j -рёберного остовного подграфа должна быть одноцветной. Поэтому число правильных раскрасок равно •
3.29. Согласно задаче 3.1 в любом 9-вершинном графе G = (У,Е) найдётся 353 вершина v, степень которой отлична от 3. Если deg v < 3 , то подграф, ^ индуцированный множеством вершин V \ N(y), содержит трёхэле- | ментную клику или четырёхэлементное независимое множество, так * как R(3,3) = 6. Если же degv>3, то данным свойством обладает подграф, индуцированный множеством вершин vuN(v). 3.30. Рассмотрим регулярный 8-вершинный граф степени 3, вершины которо¬ го помечены вычетами по модулю 8, а ребро между вершинами / и j существует в том и только в том случае, если i -j (mod 8)=1,4,7 (mod 8). В этом графе нет ни трёхэлементной клики, ни четырёхэлементного независимого множества. 3.31. Из теоремы 3.11.2 и решения предыдущей задачи следует, что /?(4,4)< <18. Чтобы показать, что Л(4,4)>18, рассмотрим самодополни- тельный регулярный 17 -вершинный граф степени 8, вершины кото¬ рого помечены вычетами по модулю 17, а ребро между вершинами (' и j существует в том и только в том случае, если i-j= ±1,±2, ±4, ±8 (mod 17). В нём нет ни четырёхэлементной клики, ни четы¬ рёхэлементного независимого множества. 3.32. Допустим, что последовательность Я],а2 ’an2+i не содержит возрас¬ тающей подпоследовательности длины л +1. Для элемента ак, к = 1,2, ... ,п +1, пусть ik — максимальная длина возрастающей подпос¬ ледовательности, начинающейся с ак . Ввиду 1 < ik < п, среди чисел ik найдутся п +1 одинаковых. Соответствующие элементы после¬ довательности образуют убывающую подпоследовательность. 4.2. Находим (т,п) с помощью алгоритма Евклида и вычисляем [т, п] как [т,п] = тп/(т,п) (см. задачу 0.22). Глава 4 4.1. Представляем л в двоичной системе счисления л=/?0 + /?, • 2+Д2 • 22 + +... + Рт -2т, где Pi € {0,1}, т = [log2 л]. Затем с помощью т ум¬ ножений вычисляем и с помощью не более чем т умножений вычисляем ап как ап -
Ответы и указания к 354 4.3. 49. С помощью расширенного алгоритма Евклида получаем 1 = = 4.64-15-17. Откуда (-15)-17 = l(mod64). Но (-15)*49(mod64). I I 4.4. (a,b) | с . Следует из расширенного алгоритма Евклида. 4.5. а) нет, ввиду неравенства треугольника; б) нет, ввиду неравенства треугольника. 4.6. Достаточно решить задачу коммивояжёра для графа, получаемого из исходного заменой для дуги (i,j) её веса atj на вес М-ау, где достаточно большое число. 4.7. Чтобы показать, что произвольное оптимальное решение может быть получено, уменьшим веса всех входящих в него рёбер на ма¬ лую величину £. Тогда данное решение станет единственным опти¬ мальным решением, и в качестве такового будет получено алгорит¬ мом. Но это означает, что оно было возможным результатом работы алгоритма в исходной задаче. 4.8. Если не существует пары наборов at, Pj такой, что а,- > pj (про¬ тиворечивая пара), то возможно безошибочное приближение. Доста¬ точно принять наборы {Д,..., Д} за нижние единицы или наборы {сс\,, а^} за верхние нули функции ф. В общем же случае задача сводится к удалению из двух множеств минимального суммарного числа наборов так, чтобы в оставшихся множествах не было проти¬ воречивых пар. Сопоставим множествам {а, } и \Pj} (0-1)-матрицу C(kxl), строки которой соответствуют наборам {а, }, столбцы — наборам {Pj} а с,у = 1 в том и только в том случае, если ai > Pj. Тогда задача сводится к вычёркиванию всех единиц минимальным числом линий (см. раздел 4.3). 4.9. Свойство наследственности выполняется очевидным образом. Свой¬ ство пополнения легко вывести из того, что дополнения максималь¬ ных неразделяющих множеств образуют остовные деревья. 4.10. jVP-полная задача «клика» сводится к задаче «независимое множест¬ во» заменой графа на его дополнение. 4.11. Переменная х„+) в функции f{x\,...,xn)\/xn+\ существенна в том и только в том случае, если существует набор значений переменных Х|,..., хп, обращающих функцию / в нуль. 4.12. Для графа G = {V,E} сводимость 1)-»2) достигается проверкой существования гамильтоновой цепи между произвольно выбранной фиксированной вершиной а е V и вершинами Ъ е N(a). Сводимость 2)—>3) для заданной пары вершин а,Ъ е V достигается удалением
ребра {a,b}, если {a,b} е Е , и проверками существования гамильто- 355 новой цепи в графах, полученных из G удалением всех кроме одного рёбер, инцидентных а, и всех кроме одного рёбер, инцидентных b | (не более deg a- deg b проверок). Сводимость 3)->1) достигается £ проверкой гамильтоновости графа, полученного из G добавлением вершины, смежной со всеми вершинами графа G. Глава 5 5.1. И] -¥ (00), и2 -» (01), м3 -»(10), м4 —> (110), м5 —► (111). Цена оп¬ тимального кодирования равна 2,25. 5.2. (10), (00), (01), (110), (1110), (11110), (11111) и (10), (00), (110), (010), (011), (1110), (1111). 5.3. Пусть Х| =(ui jUj + Vj), X2=(u2|u2 + v2) —два различных слова ко¬ да С3 . Если Vi =v2, то d(Xi,x2) = 2<i(U|,ii2)S2fi?1. Если же vf *v2 ,то £/(x1,x2)=|u1+u2|+|(u1 + U2)+(v1 + V2)|^ ^ |Ul + u21 + | V, + v2 |-|u, + u21 = | V, + v2 |>t/2, где был использован результат задачи 2.12. 5.4. Если множество слов с нулевой / -й координатой не совпадает с мно¬ жеством кодовых слов, то оно является его аддитивной подгруппой, а кодовые слова с единичной i -й координатой образуют смежный класс по этой подгруппе, мощность которого равна мощности подгруппы. 5.5. Слова чётного веса образуют подгруппу, а слова нечётного веса — смежный класс по этой подгруппе. 5.6. а) [л[ +л2. 2&, d] -код, где d = min{d|, d2}, б) [л, +п2, к, d] -код, где d ^ + d2 . 5.7. Для ранга проверочной матрицы справедливо d -1 < rank(H) = п~к . 5.8. Строим проверочную матрицу Н((л-£)хл), любые d -1 столбцов которой линейно независимы, следующим образом. Начинаем с про¬ извольного ненулевого столбца высоты п-к и последовательно при¬ писываем к нему столбцы, доводя их число до п . При этом выбираем очередной j -й столбец так, чтобы он не был линейной комбинацией никаких d-2 столбцов матрицы Н((л-£)х(у'-1)). Такой выбор всегда возможен, так как число линейных комбинаций ?Cj_j при j < п, по условию, не превышает полного числа столбцов длины п—к п-к у равного 2
Ответы и указания к решению задач 356 Граница Варшамова в ряде случаев способна улучшать ниж¬ нюю границу Гилберта, однако асимптотически они совпадают. 5.9. Отобразим множество наборов / -го слоя во множество классов вы¬ четов по модулю л : (jcj ,...,дгл) -> -1) (mod л). Наборы, по¬ павшие в один и тот же класс j, j = 0,1,..., я -1, отстоят друг от друга на расстоянии, не меньшем 4, т. е. образуют требуемый код. Так как сумма мощностей этих я кодов равна С', существует код мощности не менее С‘п/п. Рассмотрим двудольный граф, одну долю которого составляют кодовые слова, а другую — наборы слоя В", не являющиеся кодо¬ выми словами. Ребро соединяет две вершины из различных долей в том и только в том случае, если они находятся на расстоянии 2. Тогда подсчёт числа рёбер, инцидентных одной и другой доли, приводит к соотношению М i (л - /) > (С}, -М) min {/, л - /} (см. задачу 2.16). 5.10. Если положение слова ЭСКАДРА известно в одном из сообщений, то это позволяет восстановить в этих позициях буквы другого сооб¬ щения. Не зная положения слова ЭСКАДРА, можно перемещать его до появления осмысленного текста в другом сообщении. Таким обра¬ зом можно вывести, что первое сообщение заканчивается словом ЭСКАДРА, а второе с него начинается. Оставшиеся части сообщений легко восстанавливаются по смыслу: КОГДАУХОДИТЭСКАДРА, ЭСКАДРАУХОДИТНОЧЬЮ. Любое из расшифрованных сообщений позволяет найти ключ: ЧИЖИКПЫЖИКГДЕТЫБЫЛ. 5.11. Завещатель генерирует случайным образом л десятичных к -знач- ных наборов и раздаёт их наследникам в качестве их индивидуаль¬ ных кодов, а код сейфа формирует с помощью поразрядных сумм по модулю 10 этих наборов. Дополнение 1 Д1.1. Если взять два линейных порядка (1,3,2,5,4,7,6,9,8 2к - 5,2к - 6,2к - 3,2к - 4,2к -1,2к - 2,2к) и (1,2*-1,2*, 2*-3,2*-2,2*-5,2*-4,.. .,5,6,3,4,2), то их пересечение будет расширением исходного у-множества, в ко¬ тором будут присутствовать дополнительные отношения, связанные с элементом 1. Чтобы их убрать, достаточно взять пересечение с од¬ ним из линейных порядков (3,5,4,7,6,9,8,..., 2*-5,2*-6,2*-3,2*-4,2*-1,2*-2,1,2*, 2)
или 357 (2k - \,2к-Ъ,2к — 2,2к — 5,2к — 4,...,5,6,Ъ, 4,1,2k, 2). Размерность исходного у-множества равна 3. Д1.2. Используя (Д1.4), получаем (a v Ь) л (с v d) > ((a v Ъ) л с) v ((а v b) л d) > > (а л с) v (Ъ л с) v (а л d) v (b л с/) > (а л с) v (fc л d). Д1.3. b = b л (a v Ь) = Ъ л (а v с) = (а л 6) v (b л с) = = (а л с) v (Ь л с) = (а v b) л с = (a v с) л с = с. Д1.4. Единственная такая решётка имеет вид Д1.5. В решётке подгрупп X aY = X nY, ав решётке нормальных под¬ групп, кроме того, X v Y = XY = YX. Пусть X,Y,Z — нормальные подгруппы, причём IcZ, х,у, z — элементы из этих подгрупп. Ввиду (Д1.5) для доказательства модулярности достаточно показать, что (AT)AZcAf(ZnZ). Пусть g £ (АТ) л Z , тогда xy = g = z и у = x~lz . Отсюда, ввиду AfcZ , получаем, что yeZ и ysYr\Z . Поэтому g = лгу е X(YnZ). Этим и доказывается требуемое включение (AT) aZ с X(YnZ). Д1.6. //(0,1) = 1. Д1.7. Обозначив число булевых функций, существенно зависящих в точно¬ сти от /' переменных через а,-, имеем 22 =2”-о^ла' • ОтсюДа> ис¬ пользуя биномиальное обращение, получаем ап = ^”_0(-1)л_,С^22 . Д1.8. Рассмотрим множество отображений /: U->V , где \U\=\V\=n . Для WcV пусть F{W) есть множество функций / таких что f(JJ)=W, a G(W)—множество функций / таких что f{U)^W . Тогда G(W) =
Ответы и указания к решению задач 358 = F(£)=|W',|". Применяя к этому соотношению обращение Мёбиуса, получаем л! = F(V) = Z^K(-irFI I w Г = z;=1 (-!)""'■ С' /" . ДЬ9. На элементах булевой алгебры Л' е 2Л подмножеств п -элементного множества А зададим функцию F(A'), тождественно равную едини¬ це. Определим функцию G(A') как G(A') = £a,_iA,F(A’) = 2п~1/1К Полагая | А' |= т и применяя к этому равенству обращение Мёбиу¬ са, получаем Сп-т2П~‘ = 1 • Д1.10. Пусть V1 — фиксированное подпространство размерности I в подпространстве Vm : Vlc Vmc: Vn. Для подпространства V, Vcz Vm, обозначим через F(V) число подпространств размер¬ ности к, пересекающихся с Vm по подпространству V, а через G(V) — число подпространств размерности к, пересечение кото- , F(V). Применяя у'сУсУ рых с Ут содержит V . Имеем G(V) = ^ к этому соотношению обращение Мёбиуса, получаем F(V') = XylQyGymG(VMVl,V). Число подпространств V , Vlcz V с Vm, dim V = i, равно m-l i-l (9), G(V) = n-i k-i / i—1 (P (q), jj(V ,V) = (-1) q . Число же различных под- / т пространств V в подпространстве V равно (q). Отсюда по¬ лучаем, что искомое число подпространств равно G(V)■ (9>Z i=l L m-l i-l (9) n-i k-i (9)(-l)M9C/- Дополнение 2 Д2.1. а)-Вероятность для фиксированного элемента остаться неподвиж- (л-1)! 1 п ным есть = —. Поэтому математическое ожидание числа не- п\ п подвижных элементов есть \/п = 1.
б) Вероятность того, что фиксированный элемент принадлежит циклу 359 длины к, есть С*!,1 (*-!)!(*-*)! 1 я! =— (не зависит от к). Поэтому мате- л магическое числа элементов, принадлежащих циклам длины к, есть 1, а математическое ожидание числа циклов длины к есть 1/к. в) Математическое ожидание общего числа циклов есть 1 + 1/2 + 1/3 + ... + 1/я ~ In и, я—>оо. Д2.2. В полном я -вершинном графе существует я-2 цепей длины 2, свя¬ зывающих две произвольные вершины. Считая, что рёбра возникают независимо с вероятностью 1/2, получаем, что вероятность отсутст¬ вия соединяющей две вершины цепи не превышает (3/4)”~2. Веро¬ ятность же присутствия в графе двух не связанных цепью вершин не превышает С2 (3/4)” 2 -> 0, я -> оо . Д2.3. В случайном графе с вероятностью, стремящейся к 1, найдётся пара несмежных вершин. Поэтому диаметр не меньше 2. С другой сторо¬ ны, как следует из решения предыдущей задачи, он и не превышает 2. Д2.4. Согласно теореме 3.5.1 для эйлеровости графа необходимо и доста¬ точно, чтобы он был связным, а все вершины имели чётную степень. Равномерное распределение на множестве я -вершинных графов с чётными степенями вершин можно задать следующим образом. Вы¬ деляем одну из вершин графа. На оставшихся л -1 вершинах задаём равномерное на множестве всех 2 графов распределение, а за¬ тем соединяем выделенную вершину с вершинами нечётной степе¬ ни. При этом, как следует из решения предыдущей задачи, почти все полученные графы будут связными. Отсюда получаем, что число £-2 эйлеровых графов асимптотически равно 2 пЧ . Д2.5. Этот результат кажется естественным, так как математическое ожи¬ дание степени каждой вершин в случайном графе я -вершинном графе равно (я -1)/2, что асимптотически совпадает с классической границей Дирака, гарантирующей гамильтоновость. Однако аккурат¬ ное доказательство этого факта впервые было представлено лишь в 1970 году В. А. Перепелицей. Доказательство конструктивно, алго¬ ритм строит гамильтонов цикл, последовательно включая в текущий цикл новые вершины. Процесс завершается построением гамильто¬ нова цикла с вероятностью, стремящейся с ростом л к единице. Пусть G(V, Е) — случайный я -вершинный граф, каждое ребро в котором возникает с вероятностью 1/2, л достаточно велико. Поло¬ жим к = [6 log2 л] и выделим в V к попарно непересекающихся под¬ множеств мощности к. Затем строим гамильтонов цикл в 3 этапа. На
Ответы и указания к решению задач 360 первом этапе строим цикл длины k +1. Для этого в первом из выде¬ ленных подмножеств берём произвольное ребро, а во втором множест¬ ве ищем вершину, смежную с обоими концами этого ребра. Эти дейст¬ вия, осуществимые с вероятностью j-^l-(3/4)* j, дадут цикл длины 3. Затем наращиваем этот цикл до длины к +1, последова¬ тельно вставляя в него по одной вершине из каждого последующего множества. При этом каждый раз для фиксированного ребра цикла в соответствующем подмножестве ищется вершина, смежная с обоими концами этого ребра. Вероятность каждой такой успешной вставки есть 1 — (з/4)* . Вероятность успешного построения цикла длины к +1 есть, таким образом, |l-2_A^-1^2 j^l-(3/4)* j -Я прия->оо. На втором этапе наращиваем полученный цикл до длины (к +1) + 2 +(п-к ), вставляя в него вершины, не вошедшие в к выделенных подмножеств. Для этого последовательно для каждой из п-к вершин находим в цикле ребро, с обоими концами которого данная вершина смежна. Вероятность успешной вставки одной вершины не меньше 1_(з/4)*/2 , и с вероятностью, не меньшей |l- (з/4)*/2)" -»1, все они будут вставлены. На третьем этапе завершаем построение цик- ла, вставляя в него те к -(& + 1) вершин из выделенных подмно¬ жеств, которые не попали в построенный на первом этапе цикл. Эти вершины вставляются между п-к вершинами, вошедшими в цикл на втором этапе. Вероятность успешного завершения третьего этапа также стремится с ростом п к единице. Д2.6. Рассмотрим 2" случайных сдвигов центров шаров на все векторы из {0,1}” . При любом сдвиге покрытие переходит в покрытие, а вероят¬ ность для заданного центра попасть во множество Q равна | Q |/2” . Поэтому математическое ожидание числа попавших в Q центров рав¬ но | # | • | (21/2 . Д2.7. См. решение предыдущей задачи. Д2.8. Умножением строк и столбцов на -1 можно добиться того, чтобы первая строка (±1)-матрицы целиком состояла из единиц, а первый столбец за исключением первого элемента — из -1. Прибавляя пер¬ вую строку к остальным строкам, можно добиться того, чтобы все элементы первого столбца кроме первого обратились в нуль. Допол- нительный к этому элементу минор есть 2 , умноженное на де-
терминант (0,1)-матрицы. Поэтому вероятность обращения в нуль 361 детерминанта случайной (0,1) -матрицы порядка и равна рп+]. Д2.9. С каждой из точек свяжем вектор а,- ={ai\,ai2,...,ain), /=1,2,...,га , и пусть а = («1, а2,..., ап) — произвольный вектор, не ортогональный ни одному из векторов а,-. Рассмотрим (±1)-вектор z(a)=(zl,z2,...,zm), где z; = sgn(a,a, ). Будем говорить, что га-мерный (±1)-вектор у реализуется на заданном множестве точек, если существует такой вектор а , что z(a) = у. Тогда попадание начала координат в выпуклую оболочку эквивалентно тому, что вектор у = (1,1,..., 1) не реализуется на заданном множестве точек. Вследствие непрерывности распреде¬ ления векторы а,-, /' = 1,2,...,га , с вероятностью единица находятся в общем положении. Поэтому по теореме Штейнера—Шлефли 2.8.6bis может быть реализовано 2Cm-1 из 2”1 векторов у . Вследст¬ вие симметрии распределения относительно начала координат веро¬ ятности реализации для всех векторов у одинаковы. Поэтому иско- 1 л-1 мая вероятность равна 1—С1т_\ . Искомая вероятность ока- 2Ш |=о залась, таким образом, равной вероятности того, что при га-1 бросаниях симметричной монеты «орёл» выпадет не менее п раз, хотя этому факту и трудно найти объяснение. Д2.Ю. Как следует из решения предыдущей задачи, при выборе точек из непрерывного распределения имеем Cq = 2. Покажем, что это значе¬ ние сохраняется и в том случае, когда точки выбираются из множества {-1,1}” . С помощью следствия 2.8.4 заключаем, что вероятность непо¬ падания начала координат в выпуклую оболочку множества Н(2+£)„ из (2 + е)п вершин не меньше (Х"=~о С(2+*)«-1 ~ n(H(2+f)«))j2(2+ф~' . Согласно теореме Д2.9 для математического ожидания величины п(н(2+*)л) имеем м(П(Н(2+£)л))=о(Х”=0С(2+£)„/^) • Заметим, 4X0 Е,"=оС(2+*)л =0(Е”="о С(2+ф-\)- Поэтому М(П(Н(2+£)„))= =°(Е"=оС(2+*)л-.), и связанный с вырожденностью член П(Н(2+£)„) не изменяет значения с0. К дополнению 2
Оглавление тома 1 Предисловие 7 Глава 0. Вводная 15 Множества (15); перестановки (16); подмножества (16); счётные множества (18); континуум (20); операции над множествами (22); прямое произведение (24); вероятность (26); теория чисел (36); векторы (44); отношения (49); функции (54); подстановки (57); группы (59); подгруппы и факторгруппы (68); кольца и поля (71); расширения полей (77); изоморфизм (80); графы (84); доказательства от противного (88); математическая индукция (89); необходимые и достаточные условия (93) Задачи для самостоятельного решения 93 Литература 100 Глава 1. Методы перечисления 101 1.1. Комбинаторные числа 101 1.2. Биномиальные коэффициенты 116 1.3. Формула «включения и исключения» 121 1.4. Приложения к теории вероятностей 129 1.5. Производящие функции и рекуррентные соотношения 135 1.6. Перечисление классов эквивалентности. Теория Пойа 153 1.7. Асимптотические оценки. Формула Стирлинга 165 Задачи для самостоятельного решения 176 Литература 179 Глава 2. Булевы функции 181 2.1. Булевы функции и логические связки 181 2.2. Формулы и преобразования 188 2.3. Булевы функции и схемы 194 2.4. Дизъюнктивная и конъюнктивная нормальные формы 198 2.5. Двойственность 209 2.6. Геометрия единичного «-мерного куба 212
2.7. Полные системы функций. Теорема Поста 220 2.8. Пороговая логика 228 Задачи для самостоятельного решения 254 Литература 257 Ответы и указания к решению задач 259 Оглавление тома 2 272
Завершение путешествия Конец — делу венец. Русская пословица Самое важное в человеческих делах — определить, на чём следует кончить предпринятое дело. Джироламо Кардано Ну вот и завершилось плавание «Но океану дискретной ма¬ тематики», и если (Вы, уважаемый читатель, прошли весь мар¬ шрут, то монете заслуженно считать себя морским волком. Это не означает, конечно, что пройден весь океан. ‘Его исследо¬ ванная часть обширнее, но маршруты новъос плаваний (Вам при¬ дётся прокладывать уже самостоятельно. Приобретённые зна¬ ния и опыт помогут (Вам в этом. (Во время плавания (Ваш корабль не раз приближался когра¬ ницам неведомого. Поэтому, бороздя океан, помните о том, что на карте имеется масса белых пятен, и зорко всматривайтесь в линию горизонта. (Ведь открыть и нанести на карту новые, до¬ селе неведомые зелии — заветная мечта каждого настоящего моряка. (Расставаясь, остаётся лишь пожелать (Вам удачи в новых плаваниях, попутного ветра и семи футов под килем!
Другие книги нашего издательства: Математическое моделирование Тарасевич Ю. Ю. Математическое и компьютерное моделирование. Тарасевич Ю. Ю. Перколяция: теория, приложения, алгоритмы. Мышкис А.Д. Элементы теории математических моделей. URSS Блехман И. Я, Мышкис А.Д., Пановко Я. Г. Прикладная математика. Плохотников К. Э. Математическое моделирование и вычислительный эксперимент. Морозов В. В. и др. Исследование операций в задачах и упражнениях. Сухарев А. Г. Минимаксные алгоритмы в задачах численного анализа. Малинецкий Г. Г., Коротаев А. В. (ред.) Проблемы математической истории. Калман Р., Фалб П., Арбиб М. Очерки по математической теории систем. Вайдлих В. Социодинамика: системный подход к математическому моделированию социальных наук. Оптимизация Понтрягин Л. С. Принцип максимума в оптимальном управлении. Зеликин М. И. Оптимальное управление и вариационное исчисление. Габасов Р., Киримова Ф. М. Принцип максимума в теории оптимального управления. Галеев Э. М. Оптимизация: теория, примеры, задачи. Софиева Ю. Я., Цирлин А. М. Введение в задачи и методы условной оптимизации. Ковалев М. М. Дискретная оптимизация (целочисленное программирование). Ковалев М. М. Матроцды в дискретной оптимизации. Балакришнан А. Введение в теорию оптимизации в гильбертовом пространстве. Программирование Габасов Р.. Кириллова Ф. М. Методы линейного программирования. Кн. 1-3. Юдин Д. Б., Гольштейн Е. Г. Задачи и методы линейного программирования. Кн. 1-3. Юдин Д. Б., Гольштейн Е. Г. Линейное программирование. Гольштейн Е. Г., Юдин Д. Б. Специальные направления в линейном программировании. Гольштейн Е. Г. Выпуклое программирование: Элементы теории. Юдин Д. Б. Математические методы управления в условиях неполной информации. Юдин Д. Б. Задачи и методы стохастического программирования. Юдин Д. Б. Вычислительные методы теории принятия решений. Дикин И. И. Метод внутренних точек в линейном и нелинейном программировании. Теория игр Шикин Е. В. От игр к играм. Математическое введение. Оуэн Г. Теория игр. Колесник Г. В. Теория игр. Петров Н. Н. Математические игры. Жуковский В. И. Введение в дифференциальные игры при неопределенности. Кн. 1-3. Жуковский В. И. Риски при конфликтных ситуациях. Жуковский В. И. Кооперативные игры при неопределенности и их приложения. Жуковский В. Я, Кудрявцев К. Н. Уравновешивание конфликтов и приложения. Смольяков Э. Р. Теория конфликтных равновесий. Смольяков Э. Р. Теория антагонизмов и дифференциальные игры.
Другие книги нашего издательства: Серия «НАУКУ — ВСЕМ! Шедевры научно-популярной литературы» Колмогоров А. И. Математика — наука и профессия. Гнеденко Б. В. Беседы о теории массового обслуживания. Гнеденко Б. В. Беседы о математической статистике. Гнеденко Б. В., Хитин А. Я. Элементарное введение в теорию вероятностей. Босс В. Интуиция и математика. Мизес Р. Вероятность и статистика. Вильямс Дж.Д. Совершенный стратег, или Букварь по теории стратегических игр. Юдин Д. Б., Юдин А.Д. Математики измеряют сложность. Вольберг О. А. Основные идеи проективной геометрии. Щербаков Р. Н., Пичурин Л.Ф. От проективной геометрии — к неевклидовой. Щербаков Р. Я, Пичурин Л. Ф. Дифференциалы помогают геометрии. Стинрод И., Чинн У. Первые понятия топологии. Колягин Ю. М., Саркисян А. А. Познакомьтесь с топологией: На подступах к топологии. Меннхен Ф. Некоторые тайны артистов-вычислителей. Широков Я. А. Краткий очерк основ геометрии Лобачевского. Каи Е. А. Фуллерены, углеродные нанотрубки и нанокластеры. Меньчуков А. Е. В мире ориентиров. Перельман М. Е. А почему это так? Физика вокруг нас. Перельман М. Е. А почему это так? Физика в гостях у других наук. Перельман М. Е. Наблюдения и озарения, или Как физики выявляют законы природы. Фрова А. Почему происходит то, что происходит: Окружающий мир глазами ученого. Уле О. Почему и потому: Учебник физики в вопросах и ответах. Гартман 3. Занимательная физика, или Физика во время прогулки. Ланге В. Н. Физические парадоксы, софизмы и занимательные задачи. Кн. 1,2. Ланге В. Н. Физические опыты и наблюдения в домашней обстановке. Точидловский И. Я. Что можно в школе сделать и показать по физике. Тисандье Г. Научные развлечения. Гампсон В., Шеффер К. Парадоксы природы. Каганов М. И. Электроны, фононы, магноны. Каганов М. И., Цукерник В. М. Природа магнетизма. Губанков В. Н. Солитоны. Тарасов Л. В., Тарасова А. Н. Беседы о преломлении света. Спиридонов О. П. Биографии физических констант. Чернин А.Д. Физика времени. Владимиров Ю. С. Пространство-время: явные и скрытые размерности. Петров А. 3. Пространство-время и материя. Хвольсон О.Д. Теория относительности А. Эйнштейна и новое миропонимание. Сазанов А. А. Четырехмерная модель мира по Минковскому. Перельман Я. И. Занимательная астрономия. Циолковский К. Э. Труды по воздухоплаванию. Закгейм А. Ю. Системность — симметрия — эволюция в физике, химии, биологии. Покровский В. В. Космос, Вселенная, теория всего почти без формул, или Как дошли до теории суперструн. URSS
Другие книги нашего издательства: Учебники и задачники по математике Краснов М.Л. и др. Вся высшая математика. Т. 1-7. Краснов М.Л., Киселев А. И., Макаренко Г. И. Сборники задач «Вся высшая математика» с подробными решениями. URSS Тактаров Н. Г. Справочник по высшей математике для студентов вузов. Боярчук А. К. и др. Справочное пособие по высшей математике (Антндемндович). Т. 1-5. Босс В. Лекции по математике. Т. 1-16: Т. 1: Анализ; Т. 2: Дифференциальные уравнения; Т. 3: Линейная алгебра; Т. 4: Вероятность, информация, статистика; Т. 5: Функциональный анализ; Т. 6: От Диофанта до Тьюринга; Т. 7: Оптимизация; Т. 8: Теория групп; Т. 9: ТФКП; Т. 10. Перебор и эффективные алгоритмы; Т. 11. Уравнения математической физики; Т. 12. Контрпримеры и парадоксы; Т. 13. Топология; Т. 14. Теория чисел; Т. 15. Нелинейные операторы и неподвижные точки; Т. 16. Теория множеств: От Кантора до Коэна. Алексеев В. М. (ред.) Избранные задачи по математике из журнала “АММ”. Жуков А. В. и др. Элегантная математика. Задачи и решения. Медведев Г. Н. Участникам олимпиад и вступительных испытаний по математике. Александров И. И. Сборник геометрических задач на построение (с решениями). Попов Г. И. Сборник исторических задач по элементарной математике. Золотаревская Д. И. Теория вероятностей. Задачи с решениями. Золотаревская Д. И. Сборник задач по линейной алгебре. Мостеллер Ф. Пятьдесят занимательных вероятностных задач с решениями. Антоневич А. Б. и др. Задачи и упражнения по функциональному анализу. Городецкий В. В. и др. Методы решения задач по функциональному анализу. Грищенко А. Е. и др. Теория функций комплексного переменного: Решение задач. Кравцов А. В., Майков А. Р. ТФКП: Методы решения задач. Яглом А. М., Яглом И. М. Неэлементарные задачи в элементарном изложении. Супрун В. П. Математика для старшеклассников. Кн. 1,2. Базылев Д. Ф. Олимпиадные задачи по математике. Куланин Е.Д., Федин С. Н. Геометрия треугольника в задачах. Киселев А. П. Задачи и упражнения к «Элементам алгебры». Киселев А. П. Систематический курс арифметики. Наши книги можно приобрести в магазинах: Тел./факс: +7(499)724-25-45 (многоканальный) E-mail: URSSeURSS.ru http://URSS.ru «НАУКУ - ВСЕМ!» (и. Профсоюзная, Нахимовский пр-т, 56. Тел. (499) 724-2545) «Библио-Глобус» (и. Лубянка, ул. Мясницкая, б. Тел. (495) 525-2457) «Московский дом книги» (и. Арбатская, ул. Новый Арбат, в. Тел. (495) 203-8242) «Молодая гвардия» (м. Полянка, ул. Б. Полянка, 28. Тел. (495) 238-5001, 780-3370) «Дом научно-технической книги» (Ленинский пр-т, 40. Тел. (495) 137-6019) «Дом книги на Ладожской» (м. Бауманская, ул. Ладожская, 8, стр.1. Тел. 267-0302) «СПб. дом книги» (Невский пр., 28. Тел. (812) 448-2355) «100000 книг» (г. Екатеринбург, ул. Тургенева, 13. Тел. (343) 22-12-979) Сеть магазинов «Дом книги» (г. Екатеринбург, ул. Актона Валена, 12. Тел. (343) 253-50-10)
Уважаемые читатели! Уважаемые авторы! Наше издательство специализируется на выпуске научной и учеб¬ ной литературы, в том числе монографий, журналов, трудов уче¬ ных Российской академии наук, научно-исследовательских ин¬ ститутов и учебных заведений. Мы предлагаем авторам свои услу¬ ги на выгодных экономических условиях. При этом мы берем на себя всю работу по подготовке издания — от набора, редак¬ тирования и верстки до тиражирования и распространения. Среди вышедших и готовящихся к изданию книг мы предлагаем Вам следующие: Зуев Ю. А. По океану дискретной математики: От перечислительной комбинаторики до современной криптографии. В 2 т. Харари Ф. Теория графов. Оре О. Гфафы и их применение. Оре О. Теория графов. Деза Е. И., Модель Д. Л. Основы дискретной математики. Эвнин А. Ю. Задачник по дискретной математике. Эвнин А. Ю. Вокруг теоремы Холла. Панюкова Т. А. Комбинаторика и теория графов. Березина Л. Ю. Гфафы и их применение. Малинин Л. И., Малинина Н.Л. Изоморфизм графов в теоремах и алгоритмах. Емеличев В. А., Мельников О. И. и др. Лекции по теории графов. Мельников О. И. Теория графов в занимательных задачах. Мельников О. И. Обучение дискретной математике. Мельников О. И. Незнайка в стране графов. Родионов В. В. Методы четырехцветной раскраски вершин плоских графов. Болотов А. А. и др. Элементарнре введение в эллиптическую криптографию. Кн. 1,2. Росенко А. П. Внутренние угрозы безопасности конфиденциальной информации. Черешкин Д. С. (ред.) Проблемы кибербезопасности информационного общества. Борисов М.А., Заводцев И. В., Чижов И. В. Основы программно-аппаратной защиты информации. Борисов М.А., Романов О. А. Основы организационно-правовой защиты информации. Кривошапко С. Я., Иванов В. Н. Энциклопедия аналитических поверхностей. Кривошапко С. Н., Мамиева И. А. Аналитические поверхности в архитектуре зданий, конструкций и изделий. Пухначев Ю. В., Попов Ю. П. Математика без формул. Кн. 1,2. Шикин Е. В., Шикина Г. Е. Математика. (Гуманитариям о математике.) Пантаев М. Ю. Матанализ с человеческим лицом, или Как выжить после предельного перехода: Полный курс математического анализа. В 2 т. Крэндалл Р., Померане К. Простые числа: Вычислительные и криптографические аспекты. URSS По всем вопросам Вы можете обратиться к нам: тел. +7 (499) 724-25—45 (многоканальный) или электронной почтой URSS@URSS.ru Полный каталог изданий представлен в интернет-магазине: http://URSS.ru Научная и учебная литература