Текст
                    Ю.Н.Мальцев, Е.П.Петров
ЭЛЕМЕНТЫ
ДИСКРЕТНОЙ
МАТЕМАТИКИ
ЭЛЕМЕНТЫ КОМБИНАТОРИКИ, ТЕОРИИ ГРАФОВ,
ТЕОРИИ КОДИРОВАНИЯ И КРИПТОГРАФИИ
Барнаул • 2004

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Ю.Н.МАЛЬЦЕВ, Е.П.ПЕТРОВ ЭЛЕМЕНТЫ ДИСКРЕТНОЙ МАТЕМАТИКИ ЭЛЕМЕНТЫ КОМБИНАТОРИКИ, ТЕОРИИ ГРАФОВ ТЕОРИИ КОДИРОВАНИЯ И КРИПТОГРАФИИ Издательство Алтайского государственного университета Барнаул - 2004
УДК 510.51 Элементы дискретной математики (элементы комбинаторики, теории гра- фов, теории кодирования и криптографии): Учебное пособие. // Ю.Н.Мальцев, Е.П.Петров. Барнаул: Изд-во Алт. ун-та, 2004. 176 с. Цель данного пособия - изложить студентам математического и экономиче- ского факультетов основные разделы дискретной математики в соответствии с новой программой. В пособии приведено большое количество примеров и задач, многие из которых снабжены указаниями к решению. Иллюстрация на обложке пособия взята из книги А.Т. Фоменко "Mathematical Impressions", изданной Американским математическим обществом в 1990 г. Табл. 85. Ил. 114. Библиогр. 40 назв. ©Мальцев Ю.Н., Петров Е.П., 2004. ©Алтайский государственный уни- верситет, 2004.
ОГЛАВЛЕНИЕ ГЛАВА 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ стр.6 1.1. Перестановки, сочетания, полиномиальная теорема 6 1.2. Рекуррентные соотношения и производящие функции 11 1.3. Принцип включения и исключения 19 1.4. Теорема Холла (о представителях) 23 1.5. Теорема Рамсея 26 1.6. Теорема Дилуорса 29 1.7. Некоторые комбинаторные задачи на плоскости 31 ГЛАВА 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ 39 2.1. Основные понятия теории графов и способы представления графов 39 2.2. Теорема Л.Эйлера о плоских графах 52 2.3. Оценка числа графов 55 2.4. Эйлеровы и гамильтоновы графы 58 2.5. Деревья 64 2.6. Экстремальные задачи: алгоритм Краскаля. Задача о четырех красках 74 2.7. Теорема о целочисленности. Потоки в сетях. Теорема о максимальном потоке и минимальном разрезе 81 ГЛАВА 3. ЭЛЕМЕНТЫ АЛГЕБРЫ 88 3.1. Элементы теории групп и теории сравнений 88 3.2. Фактор-кольца коммутативных колец 91 3.3. Существование и строение конечных полей 93 ГЛАВА 4. АЛГЕБРА ЛОГИКИ 97
4 4.1. Алгебра высказываний 97 4.2. Булевы функции 101 4.3. Теорема о полноте 108 4.4. Приложения функций логики высказываний 113 ГЛАВА 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ 119 5.1. Примеры шифров 119 5.2. Криптосистема RSA 130 5.3. Криптосистема без передачи ключей 132 ГЛАВА 6. ЭЛЕМЕНТЫ ТЕОРИИ КОДИРОВАНИЯ 133 6.1. Основные определения 133 6.2. Однозначно декодируемые коды. Неравенство Крафта. Оптиальное кодирование Хаффмена 135 6.3. Примеры кодов, исправляющих ошибки 143 6.4. Примеры кодов, исправляющих ошибки (продолжение: БЧХ-код) 149 6.5. Линейные коды 157 6.6. Циклические коды 163 6.7. Код Боуза-Чоудхури-Хоквингема 169 ЛИТЕРАТУРА 173
Глава 1 ЭЛЕМЕНТЫ КОМБИНАТОРИКИ Комбинаторика - раздел математики, посвященный решению задач вы- бора и расположения элементов некоторого множества в соответствии с за- данными условиями. Элементы комбинаторики встречались в трудах мате- матиков Древнего Востока (число сочетаний, бином Ньютона). Б.Паскаль и П.Ферма являлись основоположниками комбинаторики как раздела ма- тематики. Большой вклад в развитие комбинаторики внесли Г.Лейбниц, Я.Бернулли, Л.Эйлер, Ф.Холл, Г.Пойа, Р.Дилуорс. 1.1. Перестановки, сочетания, полиномиальная теорема Рассмотрим конечное множество М = {ai,...,an}, содержащее п элемен- тов. Сочетание - подмножество М, т.е. некоторая неупорядоченная выборка различных элементов из М. Обозначим через СА (или через (”)) число всех сочетаний, содержащих к элементов. Другими словами, СА - число всех к- элементных подмножеств n-элементного множества М. Утверждение 1. С* = Доказательство проведем индукцией по числу п > к. Если п = /с, то = 1 = Предположим истинность нашей форму- лы для п-элементных множеств. Докажем ее справедливость для множества А = {щ,... ,ап, ап+1}, содержащего (n + 1) элементов. Каждое /с-элементное подмножество А либо содержит an+i, либо не содержит ап+\. Число подмно- жеств первого типа равно С^-1, т.к. каждое такое подмножество однозначно
1.1. Перестановки, сочетания, полиномиальная теорема 7 определяется сочетанием из (к — 1) элемента в {ац... , ап}. Число подмно- жеств второго типа равно, очевидно, С^. Следовательно, С%+1 = + = п\_____। ___п\____ ____ _п\___г]_ । 1 1 (п+1)! к\(п—k)\ (к—1)!(п—/г+1)! (к—1)!(п—/г)! Ч "Г" п—/г+1-l /г!(п+1—/г)! ’ Обозначим, далее, через Рп число всех упорядоченных n-ок {(ац,..., ад); ад G М, ад ад} множества М. Такие n-ки мы будем называть переста- новками. Докажем, что Рп = п\. Воспользуемся методом математической индукции. Если n = 1, то Pi = 1 = 1!. Предположим истинность искомо- го равенства для n-элементных множеств и докажем его справедливость для (п + 1)-элементного множества А = {ац ..., an+i}. Множество всех пере- становок элементов А можно разбить на (n + 1) непересекающихся классов C*i,..., Сп+1. Именно, отнесем в класс Ci те (и только те) перестановки, ко- торые содержат an+i на г-м месте (а_д, dj2,..., dji l, an+i, dji+1, dji+2,..., djn+1). Ясно, что |С7Д = n! и Pn+l = |C+| + |C2| + • • • + |C++i| = (n + 1) • n! = (n + 1)!. Обозначим через P^ число всех упорядоченных выборок, содержа- щих г различных элементов множества М (иногда это число обозначается как Р(п,г), Агп или пРг). Число всех r-элементных подмножеств М равно и каждое такое подмножество порождает г! упорядоченных искомых выборок, т.е. рг = г\ = (гД!г), . Подсчитаем число всех упорядоченных г-множеств {(ai,..., dr); di Е М}. Каждая координата (независимо) пробегает все мно- жество М. Поэтому число всех таких r-выборок равно пг. Замечание. Из предыдущего следует, что число всех подмножеств n-множества (т.е. n-элементного множества) равно (С*°+С'{+- • -+С*”). Неупо- рядоченная совокупность из г элементов {ai, a2,..., ar} множества М (не обязательно различных) называется r-выборкой из М. Две г-выборки рав- ны, если каждый элемент входит в обе выборки одинаковое число раз. r-выборка, содержащая каждый элемент один раз является г-подмножеством или г-сочетанием. Утверждение 2. Число г-выборок из п-множества равно С^+г_1.
8 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ ДОКАЗАТЕЛЬСТВО. Пусть М = {1, 2,..., п] и М* = {1, 2,..., п, п + 1,..., п + г — 1}. Соответ- ствие {ai,a2,..., аг} <—> {<11+0, (I2+I, • • •, щ+(г—1)}, где щ < а? < • • • < аг, является биективным соответствием между множеством всех r-выборок из М и r-сочетаний из М*. По утверждению 1, искомое число равно C^+r-i- Подсчитаем число различных перестановок символов (2, . , (2, 6. . .6. . . . , С, . , С , Ctl Ct2 ак к где ^2 <+ = п. Число всех перестановок символов i=i G>1, . . . , (Lai, ф, . . . , Ьа2, . . . , Ci, . . . , Cak равно n!. Отождествляя а± = • • • = aai = а, мы уменьшаем это число в аД раз; отождествляя, далее, bi = • • • = ba2 = Ь, мы уменьшаем предыдущее число еще в «2! раз и т.д. Поэтому искомым числом будет Т) 1 РП(«1, . . . , Ык) = ——-- □Дар.. .ак1 Утверждение 3 (полиномиальная теорема). Справедливо следующее равенство многочленов Е п । —-xa^xf...xak\ сД...ар ДОКАЗАТЕЛЬСТВО. Рассмотрим левую часть равенства (a?i Ч-Н хк)п = рщ Ч---Ухк)... (я?1 Ч-И хк) = п = Л(а1,...,аДжД---Д?, Ql =72 где коэффициент A(ai, ..., oik) равен числу всех таких наборов (qi, ..., ак\ что Qi + • • • + ак = п. Подсчитаем это число. Переменную Xi можно выбрать в Qi множителях (из п возможных!), т.е. С^1 способами.
1.1. Перестановки, сочетания, полиномиальная теорема 9 Переменную Х2 можно (независимо) выбрать в^в оставшихся (п —аД мно- жителях и т.д. Таким образом, А(аг,...,аА = С^-С^а Сак( , , .= _ n! . (n-ш)! .... (n-(o1-|-l-offe-x))! _ n! cti!(n—oi)! ct2!(n—oi— 02)! оДО! оДс^-.-сА ’ n В частности, (a?i + x^n = Cnxix2~k - классическая формула бинома к=0 Ньютона. ЗАДАЧИ 1) . Число всех подмножеств n-множества равно 2П. УКАЗАНИЕ. Воспользоваться равенством п (1 +1)» = у; с к=0 2) . Доказать, что Со + С*2 -|- сД + • • • = с\ + бД + С5 + • • • . УКАЗАНИЕ. Рассмотреть бином (1 — l)n = 0. 3) . Доказать равенство C™+s = СггС™~г. i=0 УКАЗАНИЕ 1. Рассмотреть тождество (l + <(l + z)s = (l + <+s. УКАЗАНИЕ 2. Рассмотреть число способов выбора комиссии из т человек в группе, состоящей из г женщин и s мужчин. 4) . Сколько различных пятизначных чисел можно составить при помощи цифр 1,2,3 ? ОТВЕТ: З5. 5) . Сколько различных семизначных чисел можно составить из цифр 2,2,3,3,3,0,47 ОТВЕТ: 2§т - = 360. 6) . В оранжерее имеются цвета 10 наименований. Сколькими способами мож- но составить букет из 20 цветов?
10 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ ОТВЕТ: C^o-i = 10015005. 7) . Из группы, состоящей из 7 мужщин и 4 женщин, надо выбрать 6 человек так, чтобы среди них было не менее 2-х женщин. Сколькими спо- собами это можно сделать? ОТВЕТ: С2 • С4 + С3 • С3 + С4 • С2 = 371. 8) . Найти число всех натуральных делителей числа п = р^-'-р®8, где Pi,... ,ps - различные простые числа. ОТВЕТ: (qi + 1)---(qs + 1). 9) . Доказать, что Ск к = 2П-1 • п. k=i УКАЗАНИЕ. Рассмотреть /(ж) = (1 + х')'1 и производную /'(х). 10) . Доказать равенство 4 • 5^ С^к = 2п + 22+1 • cos^. к УКАЗАНИЕ. Рассмотреть равенство (1 + 1)" + (1 + г2)" + (1 + г)" + (1 + г3)" = 4 С". к 11) . Из колоды, содержащей 52 карты, вынули 10 карт. В скольких случаях среди этих карт окажется: а) хотя бы один туз; б) ровно один туз; в) не менее 2-х тузов; г) ровно 2 туза. ОТВЕТ: а) С\ + Cl С'Ь + Cl + Cl <. б) С' <' и т.д. 12) . Доказать, что число всех решений (в натуральных числах) уравнения Xi + Х2 + • • • + хт = п равно СщД1. УКАЗАНИЕ. Рассмотрим отрезок [1, п\ и выделим в нем натуральные числа 1,2,... ,п — 1. Тогда число всех решений (яд, х^, , хт) уравнения
1.2. Рекуррентные соотношения и производящие функции 11 щ + Х2 + • • • + хт = п равно числу вариантов выбора (m — 1) точек из (п — 1) точек, так как хт = п — (a?i + • • • + xm-i). 0 12 3 п — 1 п Таким образом, искомое число равно СДД1. 13) . Доказать, что число всех решений (в неотрицательных числах) урав- нения х\ + Х2 + • • • + хт = п равно УКАЗАНИЕ. Искомое число совпадает с числом натуральных решений уравнения у± + у2 + • • • + ут = п + т (ввиду соответствия (яц, а?2,..., жто) (яц + 1, Х2 + 1,.. •, #m+i) ) • Согласно задаче 12 оно равно 1.2. Рекуррентные соотношения и производящие функции Пусть F - некоторое поле и {-ttp, ... } - последовательность чисел из F. Скажем, что эта последовательность является рекуррентной порядка г, если существуют числа щ, ..., ar Е F такие, что Ur — CLiUr—i Т d2Ur—2 Т ’ ’ ’ Т dr ’ Uq ^r+1 — d]Ur T </,2^/1 T • • • Т dr • Ui где п = 0,1,2,.... Для рекуррентной последовательности {щД многочлен /(ж) = xr — d]Xr 1 — • • • — dr = (х — Qi)ei ... (ж — Og)es, где 52 Сг = г, _ _ i=1 Qi,..., Е F, называется характеристическим (F - алгебраическое замы- кание поля F; например, С = C,R = С). Рассмотрим, далее, множество F({x)) = F} всех формальных степенных рядов от переменной
12 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ х с коэффициентами из поля F. Определим на этом множестве следующие операции: ОС ОС ОС (У^ ViXi) + (У2 гш^г} = У?(^ + i=0 i=0 i=0 ос ос ОС i=0 i=0 i=0 i где щ vtwi-t- Легко видеть, что +,.) является ассоциативным и t=o коммутативным кольцом с единицей 1 = 1 + 0 • х + 0 • ж2 + • • • ,не содержащим делителей нуля (т.е. если а • /3 = 0, где о, (3 Е F({x)), либо а = 0, либо /3 = 0). ОС При этом ряд v-iF является обратимым в том и только том случае, если г=0 Vq 0. С каждой последовательностью {гщ} свяжем ряд д(х) = uq + щх + U2X2 + ..., который назовем производящей функцией для Предположим, что по- следовательность {1/п} является рекуррентной. Положим 9?(ф) = xr f (—) = 1 — аух — а^х2 — • • • — агхг X ос и рассмотрим произведение д(х) уфх) = (12 uix'1') (1 — <FX — • • • — arxr) = i=Q = Uq + (щ — + (^2 ~ OFF — a^UQ^X2 + • • • + (Щ-l — dlUr-2 — • • • — • • • — CLr—\Uo^Xr 1 И- (ur — CL\Ur—\ — • • • — CLr • -)-••• “I- (itn+r — d\Uno-r— 1 — ’ ’ ’ — —ar Un)xn+r + • • • = bo + bix + • • • + br_\Xr~1 = гф(х). Следовательно, д(Ф) = • Правая часть этого равенства является пра- вильной дробью в Р(ф) и, следовательно, разложима в сумму конечного числа простейших дробей, т.е. дробей вида h_A v, где А Е F,t < Итак, д(Х\ = + 312 + . . . + 3iei , I'V / (1—а-ух) (1— а-уху (1— J___З21___,____/Ъ____I . . . ।_____IFF_L . . . I fl П Щ1-а2х) Т (1-а,2х)2 Т “Г (1_а,2Ж)е2 I__Al I /^s2 I в в в I /^ses asx) (1— asx)2 (1— asx)es *
1.2. Рекуррентные соотношения и производящие функции 13 Так как = 1 - к х + • + + ... = = 1 - Ср'х + Сррх2 - + (-1)» С^х" + • • , ОС то (1-ах)к = /3 + 12 ^п+к-1 ' /3 ' <хп ' хп. Приравнивая коэффициенты при хп в п=1 левой и правой части равенства (1), имеем, что ип = qi(ri)ctf + 3---3 Qs(n)a™, где qi(n) - многочлен от п степени < щ — 1, коэффициенты которых опреде- ляются начальными значениями -ito, щ,..., иг-\ нашей последовательности. Таким образом, мы указали алгоритм вычисления членов рекуррентной по- следовательности с помощью производящих функций. Приведем примеры ра- боты этого алгоритма. Пример 1. Пусть uq = 1, щ = 1, ип = ип_\ + гщ_2, где п > 2 (последо- вательность Фибоначчи). Характеристический многочлен /(ж) = х2 — х — 1 имеет корни а = 1+^ и /3 = Следовательно, ОС /с(ж) = (1 — аж)(1 — (Зх) и д(х) • к(х) = (У2 ипхп)(1 — х — ж2) = п=0 = Uq + (1/1 — Uq)x + (U2 — U1 — u)x2 + ••• = !. Таким образом, — 1 - УУ"/3) I — i _________________P_\ _ (1—ax)(l — Px) (1—ax) (1— Px) ^/5 L1 — ax (1—/3x)J = (q(1 T (xx T a2x2 T cCx2 T • • •) — /3(1 T (3x T {32x2 T • • •)) = = ^{(a — /3) + (a2 — /32)ж + • • • + (cC+1 — [3n+v\xn + •••}. Следовательно, un = p^(jxn+1 — /3n+1) = ~ (^Цщ2п+1} (формула Бине). Замечание. Укажем идею другого метода вычисления общего члена ре- куррентной последовательности порядка два на примере последовательности Wo 1? 2, Un+i 8щ> 15wn_i, п > 1. Найдем числа а,/3 такие, что 8 = а + /3, 15 = а(3 (ясно, что а = 3, /3 = 5). Перепишем равенство un+i = 8un — 15rtn_i в виде Un+l — 3un = 3(u 5un—i), un+i — 3un = 5(u 3rtn—i).
14 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ Из последних равенств следует, что ^п+1 5//п — 3{3(//n_i 5//п_2)} — 3 (un—i Зип—2) — — = Зп~\и2 - 51/1) = Зп(щ - 5//0) = -3n+1, ^n+i Зип — 5{5(ип—1 3//п_2)} — 5 (un—i Зип—2>) — — = 5П(/л - 3//0) = —5П. Откуда следует, что ип = 3"2~5". Пример 2. Рассмотрим рекуррентную последовательность порядка 3: ио = +1, ui = 5, и2 = 10, з — ^п+2 З- 5//n+i И- 3//п, п > 0. Найдем формулу n-ого члена этой последовательности. Заметим, что харак- теристический многочлен f(x) = т3 — т2 — 5т — 3 имеет корни 3, — 1, — 1. Поэтому (uq + UiX + U2X2 + . . . )(1 — X — 5т2 — Зт3) = Uq + (1/1 — //q)t+ + (//2 — ui — 5ио)х2 + 0 • т3 + 0 • т4 + • • • = 1 + 4т. Следовательно, произ- водящая функция ц(т) равна дроби ц./Дц+дЩ • Разложим эту правильную дробь в сумму простейших 1 + 4т А В С (1 — Зт)(1 + т)2 (1 — Зт) + (1 + т) + (1 + т)2 Приводя к общему знаменателю в правой части и приравнивая коэффициен- ты при соответствующих степенях числителей, мы получим систему уравне- ний А + В + С = 1 А - ЗВ = 0 2А-2В-ЗС = 4, из которой следует, что А = 21/16, В = 7/16, С = —3/4. Следовательно, д(т) = 1 + 5т + • • • + (|| • Зп + 1)п + |(п + 1)(—1)п+1)тп + .... Поэтому ип = || • Зп + pi(-l)n + |(п + 1)(-l)n+1, где п > 0. ЗАДАЧИ
1.2. Рекуррентные соотношения и производящие функции 15 1) . Найти общий член следующих рекуррентных последовательностей а) ио = —2, ui = 3, un+i = 10пп — 9nn_i, п > 1; б) Uq = 1, щ = 2, и<2 = 0, из = —1, Щ>|1 — ЗЩтщз И- 3'ltn-|-2 ?^п+1 616п, П > 0. 2) . Сколькими способами можно расставить скобки в (неассоциативном) сло- ве (11(12 • • • ап? УКАЗАНИЕ. Обозначим через ип число таких способов. Положим uq = 0, iti = 1- Тогда 112 = 1, из = 2, щ = 5, так как имеем следующие расстановки скобок (aid2)(i3, а1(а2«з), ((dld2)<13)«4, (dl<12) («3«4), «1 («2 («3«4)), (dl (d2d3))d4, (иД^з)^)- Заметим, что ип = и\ип_\ + ii2itn-2 + • • • + п > 2. Из этого ра- венства следует следующее соотношение для производящей функции /(ж) = = игх'1 f(xY = f(.x) ~ х- Откуда следует, что /(ж) = (рЯд /(ж) г=0 удовлетворяет условию /(0) = 0). Следовательно, ип = ’ п — 3) . (Задача о встречах). Некто написал п писем и запечатал их в конверты, не надписав предварительно адресов. После этого он уже не знал, в каком конверте лежит какое письмо, и поэтому п адресов на конвертах написал наугад. Какова вероятность того, что хотя бы один из адресатов получит предназначенное для него письмо? УКАЗАНИЕ. Обозначим через Ап число исходов, при которых ни один конверт не будет подписан правильно. Тогда искомая вероятность равна (1 — ^р). Вычислим число Ап. Для этого заметим, что Ап — (п l)(An_i + Ап—2)- При неблагоприятном исходе на 1-м конверте (т.е. в нем находится письмо, отиравлемое по первому адресу) может быть написан 2-й, 3-й, ..., n-й адрес.
16 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ Пусть, например, написан 2-й адрес. Если на 2-м конверте написан 1-й ад- рес, то для остальных (п — 2) конвертов мы имеем Лп_2 неблагоприятных возможностей. Если же на 2-м конверте разрешается писать только 3-й, 4-й, ..., п-й адреса, то таких возможностей у нас Ап-\. Итак, общее число небла- гоприятных возможностей, при которых на первом конверте подписывается второй адрес, равно (Лп_1 + Лп_2). Такие же числа мы получим, подписывая первый конверт 3-м, 4-м,..., n-м адресами. Следовательно, Ап — (п 1) (Ап _ 1 + Ап—2)- Откуда следует, что Ап - пАп_х = ~(Ап_х - (п - 1)АП_2) = = Л„_2 - (п - 2)А„_з = • • = (-1)"-2(А2 - 241) = (-1)’\ Т.к. А = О, А2 = 1. Рассмотрим равенства: = пАп_1 + (—1)п 4„_! = (п - 1)А-2 + (-I)"-1 3 Умножим второе равенство на п, третье - на п(п — 1),... и сложим. Получим следующее равенство: х = гД l2! Искомая вероятность равна 1- —= 1_ п! 2! 4) . Найти производящие функции следующих последовательностей: 1 1 3! + 4! п! 1 3! п! 0,6. _ I 1, п = 0,1,..., Я, Un — \ [0, п > N. ОТВЕТ: д(х) = 1 + х + • • • + xN.
1.2. Рекуррентные соотношения и производящие функции 17 б) {О, п — четное , ап/п\, п — нечетное . УКАЗАНИЕ. д(х) = £ • х + + • • • = eax~fax. в) vn = п • ип, если д(х) - известная производящая функция последователь- ности {wn}. УКАЗАНИЕ. Н(х) = £ vnxn = 0 + щх + 2и2х2 + • • • = п=0 = х • (ui + 2и2х + Змзж2 + ...) = х • (д(ж)'). г) vn = un+i — ип, если д(х) - известная производящая функция последова- тельности {щД. УКАЗАНИЕ. Я(Д) = (1/1 - Uo) + (и2 - Ui)x + (и3 - и^х2 Ч-= ... g(x)~g(0) - д(х). 5) . Пусть {щД такая последовательность элементов поля F, что производя- щая функция д(х) является правильной дробью вида b0 + bix Ч----Н br-ixr 1 1 + aix + • • • + arxr Доказать, что {щД - рекуррентная последовательность порядка г. УКАЗАНИЕ. Из равенства д(х)(1 + aix + • • • + агхг) = (&о + ф + • • • + br_ixr~1) следует, что ~~Ь — 1 ~~Ь ’ ’ ’ + О'Г ’ - 0? 6) . Найти общие решения рекуррентных соотношений: Д Щщ-2 — 4an+i Ч- Зап = 0; б) dn+3 + Зап+2 + Запщ1 + ап = 0; в) ®п+3 3(1п-|-2 4“ ®п+1 Зйп — 0, di = 3, а2 = 7, аз = 27; г) Щг+2 — 2cosa ап+\ + ап = 0, ai = com, а2 = cos2a. 7) . Решить рекуррентные соотношения: а) ®п+1 Я 7, б) ап+2 + 2ап+1 - 8ап = 27 • 5П, ах = -9, а2 = 45.
18 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ 8) . Найти последовательность {ап}, члены которой удовлетворяют соотно- шениям: a) dQCLn + + • • • + anCLQ = ‘2n(in, (1q = (ii = 1; б) an+2 (n + 2)2 + an = 0, a0 = 1, ai = 0. ОС УКАЗАНИЕ для а). Рассмотрим ряд f(x) = ^2сцхг. Тогда /(ж)2 = /(2т). i=0 Из соотношений а) следует, что если решение существует, то оно единствен- ное. Положим /(т) = еХх. Тогда (еАж)2 = еА(2ж\ Так как Хх (Хх')п X -I 1 е = 2_> ^! ’ то положим = CLI = 1, ап = п=0 ОТВЕТ для б): a2n+i = 0, а2„ = • 9) . Пусть ап - число решений в целых неотрицательных числах уравнения 2т + 5у + 7z = п. Доказать, что ОС апхп = (1 — т2)-1(1 — т5)-1(1 — т7)-1. п=0 10. (Задача Л. Эйлера) В 1751 г. Л. Эйлер поставил следующий вопрос в письме X. Гольдбаху: сколькими способами выпуклый п-угольник может быть разделен на треуго- льники своими непересекающимися диагоналями? Обозначим через Еп — число таких способов. Тогда Е% = 1, Е\ = 2, Е$ = 5, Eq = 14, Е? = 42, Eg = 132. Положим для удобства В2 = 1. Рассмотрим выпуклый (п + 1)-угольник и фиксируем в нем сторону AiA2. Число всех разбиений, содержащих треугольник АА1А2Аз, равно Еп\ число всех разбие- ний, содержащих треугольник AAiA2An+i, равно Еп. Каждое разбиение, не содержащее ни один из треугольников АА1А2Аз, AAiA2An+i, содержит неко- торый треугольник вида АА1А2АТО, где 4 < т < п. Фиксируем АА1А2АТО. Многоугольник AiAn+iAn... Ат может быть разбит на треугольники Em_i способами, а многоугольник Л2Лз ... Ат может быть разбит на треугольники Еп_т+з способами. Следовательно, En+i = Er, + Er, + Е2 - ЕГ1_\ + Е\ ЕГ1_‘2 + • + En-2 • E\ + En_i • Eg = E<2 En + Eg • En_\ + • • • + En_\ • Eg + En • E2. Рассмотрим
1.3. Принцип включения и исключения 19 оо производящую функцию /(ж) = ^2 Е1Хг~\ Тогда /2(ж) = Е3Х2 + Е^х3 + • • • = г=2 1 — — 4.г /(ж) — х или /2 — f + х = 0. Откуда следует, что /(ж) = ------ (так как /(0) = 0). Разлагая /(ж) в ряд Тейлора и приравнивая коэффициенты, 1 • 3 • 5 • • • (2п — 5) on_2 1 _ 2 получим, что Е„ =-----------------2 = ^^С2п_,. 11. Пусть Тп — число всех перестановок 02,..., ап чисел 1, 2,..., п, удовлетворяющих одному из свойств (11 > 0,2 < аз > <Е < а,5 > • • • или ai < <12 > < <14 > as < .... Пусть Ап = Тп/2. Доказать, что А2 = 1, A3 = 2, Д = 5, А5 = 16 и 2Ап = Сгп_г А{ An_i-i, где Д = Д = 1. i=0 1.3. Принцип включения и исключения Пусть М = {mi,..., тп} - некоторое множество, элементы которого могут удовлетворять одному из следующих свойств: щ,... ,рь- Обозначим через Д множество тех элементов М, которые удовлетворяют свойству pi. Обозначим также через Дц^.щ = Дх О Д2 П • • • П Дг. Утверждение. Число элементов М, не удовлетворяющих ни одному из свойств pi,... ,рк, равно к М(Ч) = п - |Д| + У2 IA/I - У2 \Aijk\ 3 3 (-1)^12..,к\- г=1 i<j i<j<k ДОКАЗАТЕЛЬСТВО следует из равенства к |А и • и Ак\ = ]ГI А| - У2\А‘п AI + • + (-Щ1! А п • • п л4, г=1 i<j которое, в свою очередь, доказывается индукцией по числу к. Если к = 2, то |Д U Д| = |Д| + |Д| — |Д О Д|. Предположим, что наше равенство истинно для к множеств. Докажем его для (/с+1) множеств. Имеем |А и •и А и Л*+1 = |А и-- - и А| + IA+1I - |(А и и А) п А+il =
20 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ = Е IAI - Е IA/I+ Е IAA - • •• + (-1)‘-1И12^1+ 1<г</г l<i<j<k l<i<j<k +1Л+11 -Р1П Л+1) и • • • и (Ак п Л+1)| = = Z |А| - Е Ио|н------------------н (- 1Л-412..АА:+1|- Утверждение доказано. i<k+l l<i<j<k+l Обозначим через М(г) число элементов М, удовлетворяющих точно г свойствам. Фиксируем свойства щ,... ,рг(г < к) и обозначим через А = Л12...г, Br+i = А П Ar+i,...,Вк = АП Ак. Число элементов М, удовлетворяющих точно свойствам pi,...,pr, равно А(0) = |Ч12...Г| — У \Bi\ + У \Bi П Bj\ — ... r+l<i<k + (—l)n W+i П • • • П Вк\ = |4i2...r| — У У12...Н| + 1)п г\А12...к\• r+l<i<k Следовательно, М(г) = У ~ C^r+1 У |А1г2...гг+1| + +У+2 12 IAi...a+2I - —н (—iyc^+j у |Ai...A+J + • • • • ii<---<ir+2 ii<---<r+j Эта формула обобщает утверждение 1 (г = 0) и называется формулой (принципом) включения и исключения. Применим доказанный принцип к решению задачи о встречах. Подсчитаем число тех перестановок а^,... ,ап чисел 1, 2,..., п, для которых сц У г,i < п. Обозначим через множество тех перестановок, для которых = ij, j < г. Тогда 14^ У = (п —г)! Из утверждения 1 следует, что искомое число равно п! — (п — 1)!п + (п — 2)!С*2 — (п — + • • • + (—= = ЦТ - щ + • • • + (-1)ПЦ = п!(ы - ЧГ + • • • + Ц12). Пример. На одной из кафедр университета работают тринадцать человек, причем каждый из них знает хотя бы один иностранный язык. Девять человек знают английский, восемь - немецкий, пять - французский. Пятеро знают английский и немецкий, трое - английский и французский и двое немецкий и французский. Можем ли мы ответить на следующие вопросы: 1) Сколько человек знают все три языка? 2) Сколько человек знают ровно два языка?
1.3. Принцип включения и исключения 21 3) Сколько человек знают только английский? Обозначим через К множество сотрудников кафедры, через Кх - множе- ство сотрудников, знающих язык х (a,d, или /). Тогда 13 = |Аа| + \Kd\ + \Kf \ - \Ka,d\ - \Kaj\ - \Kdj\ + IАад,/| = = 9 + 8 + 5 — 5 — 3 — 2 + |/Садд| = 12 + |Аадд|. Следовательно, только один человек знает все три языка. Подсчитаем число людей, знающих только английский язык. Имеем, | Аа| — \Ka,d\ — |Kaj| + |/Садд| = 9 — 5 — 3 + 1 = 2. И, наконец, число сотрудников, знающих ровно 2 языка, равно сумме следующих чисел \Ka,d\ — \Ka,dj\, \Ka,f\ ~ \Ka,d,f\, \Kd,f\ ~ \Kajd,f\- Т.е. искомое число равно 4+2+l=7. ЗАДАЧИ 1) . Доказать, что число целых чисел в сегменте [1,71] взаимно простых с п равно р(п) = п П(1 - р\п УКАЗАНИЕ. Число т не является взаимно простым с п = рД .. . рД тогда и только тогда, когда существует простой делитель pt\n такой, чтоPi\m. Пусть Ai = {т Е [1, п\;Рг|т}. Тогда р(п) - число элементов в разности [1, n] \ (Ai U А2 U • • • U As), т.е. р(п) = п - £ |Д| + \А{ П Aj\ - |Д П Aj П Ak\ Н-------h + (—l)s|Ai П • • • П As|. Так как pi pj при i j, то A^ П • • • П Ait = = {m E [1, n]; (рц .. . рД|тп}. Заметим, наконец, что число элементов в [1, п], S делящихся на d(d < ri) равно [^]. Поэтому р(п) = 71 — £ “+ + £ —- £ -^ + --- + (-1Г^^ = 741-±И1-±)...(1-±). E^.PiPj . , PiPjPk ' \ J PiP^-'-Ps v v р+ i<j i<j<k
22 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ 2) . Сколько из п! членов определителя 0 (112........... CLln Й21 0 : • 0 CLn—\n \ ........ (1п,п— 1 О J равно нулю? ОТВЕТ: (п - 1)!п - С%(п - 2)! + С%(п -3)!------= п!-^ + ^- ^ + -- - = = п!(1 - Н ). 3) . Пусть дано п объектов (n > 1) и пусть свойством а обладают все, кро- ме первого, свойством /3 - все, кроме второго,..., свойством А - все, кроме последнего. Определить число объектов, не обладающих ни одним из этих свойств. ОТВЕТ: п(1 - (п - 1) + (п~х)2(п~2) ...) = п(1 - 1)п-1 = 0. 4) . Найти число целых положительных чисел, не превосходящих 1000 и не делящихся ни на одно из чисел 3, 5 и 7. УКАЗАНИЕ. Искомое число равно 1000 — [уу] — [уу] — [уу] + [уу] + , rlOOOi , г 10001 _ г 10001 “П 21 J “Г L 35 .1 1-105 J- 5) . При обследовании читательских вкусов студентов оказалось, что 60% сту- дентов читает газету "Правда", 50% - газету "Алтайская Правда", 50% - газе- ту "Комсомольская Правда", 30% - газеты "Правда"и "Алтайская Правда", 20% - газеты "Алтайская Правда"и "Комсомольская Правда", 40% - газеты "Правда"и "Комсомольская Правда", 10% - все газеты. Сколько процентов студентов 1)не читает ни одной из газет; 2) читает точно две газеты; 3) читает не менее двух газет? 6). (Задача мажордома). К обеду за круглым столом приглашены п пар враж-
1.4. Теорема Холла (о представителях) 23 дующих рыцарей (п > 2). Доказать, что существует ровно ^(-1)^ • 2fc -(2п — к)\ k=0 способов рассаживания их так, чтобы никакие два врага не сидели рядом. 1.4. Теорема Холла (о представителях) Рассмотрим следующую "задачу о сватовстве": Пусть п юношей дружат с девушками, и пусть для каждой группы из к юношей {к = 1, 2, • • • , п) имеется по крайней мере к девушек, имеющих дру- зей среди этих юношей. Верно ли, что каждого юношу можно женить на девушке, с которой он дружит? Ответ на этот вопрос положительный и составляет содержание т.н. теоремы Ф. Хол л а о представителях (1935 г.). Теорема 1.Пусть Si, S%, Sn - подмножества S (не обязательно раз- личные). Необходимым и достаточным условием существования системы различных представителей (с.р.п.) для семейства Si,S2,...,Sn, т.е. таких элементов щ, ..., хп Е S, что Xi Е St,i < п и Xi х\ при i j, является условие (*) : для любых различных индексов Д,..., Д множество Si. и sh и • • • и sik содержит не менее к различных элементов. ДОКАЗАТЕЛЬСТВО. Если такие представители существуют, то, очевид- но, наше условие выполнено. Докажем обратное утверждение. Для этого рас- смотрим сначала примеры. Пусть S = {1, 2,3,4, 5,6} и Si = {1,2,3},А2 = {1,2,4}, Аз = {1,2,5},А4 = {2,5,6}, А5 = {2,5,6}. Элементы 1 Е Si, 4 Е ,S'2. 5 Е S3,2 Е А4, 6 Е S3 составляют с.р.п. для нашего семейства множеств. Если же мы возьмем семейство подмножеств
24 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ Т1 = {1,1,3}, Т2 = {1,1,3}, Т3 = {3, 3,1},Т4 = {1,2, 3,3}, то для него не существует с.р.п., т.к. |Д U Т2 U Тз| =2. Доказательство теоремы проведем методом математической индукции по числу множеств п. Теорема очевидна при п = 1. Сделаем предположение индукции об истинности теоремы для семейств, содержащих менее чем п элементов. Докажем теорему для семейства из п элементов (доказательство принадлежит М.Холлу). Если |Si| = |S2| = ••• = |ВД = 1, то условие (*) означает, что Si = {жД,..., Sn = {жп}, где Xi Д Xj\i Д j. Следовательно, теорема доказана. Если некоторое Si содержит более, чем п элементов, то, оставляя в нем п элементов, мы, очевидно, сохраним условие (*). Семейство {ВД,..., Sir} = Br s, где s = | U • • • U | > г, назовем блоком (условие s > г следует из условия (*)). Если s = г, то блок назовем критическим. Пусть {Hi,..., Ам, Си+Ь • • •, СД Br 3 и {Ац..., Ам, Вм4_1,..., Bf v — два блока (A^, В?, De Е {Bi,..., ВД), в которых множества Ац ..., Аи являются общими для этих блоков. Положим Вгз П BtjV = {Ai,..., АД = BUjW и Brs U Bt,v = {Ai,..., AM, Cu+1, ...,Cr, Du+1,Dt} = B{r+t_u^z. Ясно, что w > u и z > r A t — u. Лемма 1. Объединение и пересечение двух критических блоков ( в смысле вышеприведенных определений) являются снова критическими блоками. ДОКАЗАТЕЛЬСТВО. Пусть Вгг О Btt = BUjW и Brr U Btt = Br+t-UjZ. Заметим, что z < r At — w n z > r At — и, w > и. Следовательно, г +t — w > > z > r + t — u,u > w,u = w, z = r + t — u. Лемма доказана. Пусть BrjS = {Ai,..., AM, Cu+i,... ,Cr} - произвольный блок и Bk,k = {Ai,..., AM, Bm+i, ..., Dk} - критический блок, в котором Ац ..., Аи - все множества, общие для обоих блоков. Тогда Вгз О В^ = BUjV, где v А и и Br 3 U Вц^ {Ац • • • 1 Ам, С*м+ц • • •, Cr, Du+i,..., ВД Вг_|_/;_ы где z > г А к — и. С блоком Вг з свяжем блок В ,, полученный из Вг з вы-
1.4. Теорема Холла (о представителях) 25 черкиванием элементов из множеств C*m+i, ..., Сг. Этот блок имеет вид {Л1,..., Ам, <7'+1,..., С'г} = B'rs,. Покажем, что s' > г, т.е. операция вычеркивания не нарушает условия (*). Заметим, что |(Cu+i U • • • U Сг) \ В^\ = z — к и, следовательно, s' = = v + z — к>и + (г + к — и) — к > г. Итак, нами доказана следующая Лемма 2. Если В^ ~ критический блок, то вычеркивание элементов В^ь из множеств, не принадлежащих В^^, не нарушает условия (*). Если, далее, система наших множеств {Si,..., Sn} содержит критический блок В^, где к < п — 1, то, вычеркнув элементы В^ь из остальных множеств, мы можем считать, что наше семейство {Si,..., Sn} состоит из двух блоков В^^ и Bn_k,v Эти блоки не имеют общих элементов, и для них выполнимо условие (*). По предположению индукции, оба имеют с.р.п. и, следовательно, существует с.р.п. и для семейства {Si,..., Sn}. Пусть наше семейство не содержит критических блоков В^, где 1 < к < п. Пусть а Е Si. Вычеркнем а в S2, S3,..., Sn. Произвольный блок Вг,3(г < п) семейства {S2,..., Sn} не является критическим, т.е. s > г + 1. Следовательно, после вычеркивания мы получим блок B'rs, семей- ства {S2,..., S'n}, в котором s' равно либо s, либо s — 1. Т.е. s' > г. Это означа- ет, что семейство , S'n} удовлетворяет условию (*). По предположению индукции семейство {S'2,..., S'n} имеет с.р.п. Следовательно, {S2,..., Sn} имеет с.р.п. (все они не равны а). Беря элемент а в качестве представите- ля Si, мы получим доказательство теоремы. Замечание 1. Лемма 1 не использовалась в доказательстве теоремы. Но из нее следует, что существует наибольший и наименьший критические блоки. Замечание 2. Из доказанной теоремы можно вывести, в качестве след- ствия, что если Н < G - конечная подгруппа группы G, то существуют элементы {щ} С G, являющиеся одновременно представителями для правых смежных классов по Н и левых смежных классов по Н.
26 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ 1.5. Теорема Рамсея Следующая задача предлагалась на шестой международной математической олимпиаде (с 30 июня по 10 июля 1964 г., Москва): Каждый из 17 ученых переписывается с остальными. В их переписке речь идет о трех темах. Каждая пара ученых переписывается друг с другом лишь по одной теме. Доказать, что не менее трех ученых переписывается друг с другом по одной и той же теме. Сначала докажем лемму. Лемма (Венгерская олимпиада, 1947 г.). Среди 6 ученых, переписываю- щихся между собой по двум темам, существуют три, которые переписы- ваются по одной теме. ДОКАЗАТЕЛЬСТВО. Пусть Ai,...,Aq - ученые. Будем изображать их точками на плоскости. Если Ai и Aj переписываются по первой теме, то точ- ки Ai и Aj соединим сплошной линией (ребром). В противном случае соеди- ним их пунктирной линией. Нам необходимо доказать, что существует ли- бо сплошной треугольник, либо пунктирный треугольник. Возмем вершину Ai. Из нее исходит пять линий. Среди них найдутся три однотипных ли- нии (по принципу Дирихле), например, сплошных. Пусть это будут ребра А1А2, А1А3, А1А4. Если одно из ребер А2А3, А2А4, А3А4 является сплошным, то мы нашли искомый (сплошной!)треугольник. Если же все эти ребра явля- ются пунктирными, то АА2А3А4 является пунктирным. Лемма доказана. Перейдем к решению исходной задачи. Обозначим наших ученых точками на плоскости: Ац А2,..., А47. Если ученые Ai и Aj переписываются по пер- вой теме, то будем соединять эти точки сплошной прямой линией, если по второй теме, то будем их соединять пунктирной линией и если, наконец, они переписываютс по третьей теме, то будем их соединять волнистой линией. Нам необходимо доказать, что существует либо волнистый, либо пунктир- ный, либо сплошной треугольник. Возмем любую вершину, например, Ai. Из нее исходит 16 линий AiAi, где i = 2,3,..., 17. Так как 16 = 3-5 + 1, то среди
1.5. Теорема Рамсея 27 этих линий найдутся 6 однотипных, например, волнистых линий. Пусть это будут линии Л1Л2,..., Л1Л7. Если одно из ребер AiAj, где 2 < i < j < 7, является волнистым, то мы нашли волнистый треугольник. Иначе, каждое такое ребро AiAj (2 < i < j < 7) является сплошным, либо пунктирным. По лемме существует однотипный треугольник AAiAjAk, где 2<i<j<k<7. Построим пример, показывающий, что для 16 ученых такого однотипного треугольника может не быть. Пусть G = (а) х (b) х (с) х (d) — прямое произведение абелевых групп порядка два, т.е. а2 = Ь2 = с2 = d2 = е, \G\ = 16. Разобьем G*\{e} на три подмножества Sc = {а, Ь, с, d, abed}-, Sn = {ab, ас, cd, abc, bed}-, Sb = {be, ad, bd, acd, abd}. Рассмотрим граф с вершинами из G. Пусть х,у -— вершины графа. Мы со- единим их сплошным ребром, если ху G Sc. Если ху G Sn, то соединим их пунктирным ребром. Если же ху G Sb, то соединим эти вершины волнистым ребром. Можно проверить, что данный граф не содержит однотипного тре- угольника. Приведем максимальное обобщение данной задачи. Утверждение (American Mathem. Monthly, 1964, Е 1653). Пусть дано множество Рп из [en!] + 1 точек на плоскости. Каждые две точки из Рп соединим одним ребром, который окрашен в один из п цветов. Доказать, что существует одноцветный треугольник. ДОКАЗАТЕЛЬСТВО. Докажем это утверждение методом математиче- ской индукции. Пусть п = 2 или п = 3, число [en!] + 1 равно 6 или 17 соответственно. Рассмотрим последовательность S2 = 6, S3 = 17 и St. - 1 = k(JSk-i - 1) + 1, k = 3,4,.... Тогда = Д ~ kl (к — 1)! к'. Sk -1 1 1 1 1 ^11 И к\ ~ 0! + Й + 2! + ” ’ + М ‘ ТаК КаК 6 “ + Л + 3! + ’ ’ ’ ’ Т°
28 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ е = ДД + Гк, где г„ = + • • • < Таким образом, Sk-\ Sk-\ \ 1 —н— < е < —Н-------~ГГ~Г или - 1 < е • к'. < Ьк - 1 + -. Откуда следует, к\ к\ к\ • к к что [ekl] = Sk — 1 или Sk = [ekl] + 1. Пусть Рп = {Ац..., Asn}. Рассмотрим все ребра {А$пА{}, где 1 < i < Sn — 1. Среди них существует по меньшей мере Sn~i ребер, окрашенных в один, например, в красный цвет. Пусть это будут ребра ASnAi,..., ASnASn_1. Если среди ребер A{Aj (1 <i < j < Sn-i) существует красное ребро, то мы нашли красный треугольник. Иначе, в гра- фе с множеством вершин {Ац ..., Asn_Д каждое ребро раскрашено в один из (п — 1) цветов. По предположению индукции существует однотипный тре- угольник. Обобщением вышеприведенной задачи является следующая теорема (Ramsey F., On a problem of formal logic, Proc. London Math. Soc., 30(1930), 264 - 286). Теорема Рамсея. Пусть S - множество из N элементов иТ — множе- ство всех его подмножеств из г элементов. Разобьем Т на два семейства а и (3, не пересекающихся между собой. Пусть p,q — целые числа такие, что р > r,q > г > 1. Тогда существует число n(p,q,P) такое, что если N > n(p,q,P), то в S либо существует подмножество А из р элементов, все г-подмножества которого принадлежат семейству а, либо существу- ет подмножество В С S из q элементов, все г-подмножества которого принадлежат семейству (3. ДОКАЗАТЕЛЬСТВО. Заметим, что п(3,3, 2) = 6 (см. предыдущую за- дачу). Доказательство проведем методом математической индукции относи- тельно чисел р, q, г. Для этого заметим, что п(р, q, 1) = pPq — 1, n(r, q,r) = q и n(p, г, r) = p. Сделаем предположение индукции об истинности теоремы для г — 1 и любых чисел р* > г — 1, q* > г — 1, а также для числа г и любых чисел p*,q,r, где р* < р — 1, и чисел p,q*,r, где q* < q — 1. Поло- жим п(р, q, г) = n(pi,qi,r — 1) + 1, где pi = п(р — 1, q, г), qi = п(р, q — 1, г). Докажем, что это число искомое. Пусть S — множество из N элементов и
1.6. Теорема Дилуорса 29 N > п(р, q, г). Разобьем семейство всех r-подмножеств S на два подсемейства а и (3. Пусть S' = А\{а}, где а — фиксированный элемент S, и рассмотрим все (г — 1)-подмножества S'. (г — 1)-подмножество S' принадлежит семейству а', если оно вместе с {а} принадлежит о; (г — 1)-подмножество S' принадле- жит семейству (3', если оно вместе с {а} принадлежит (3. Таким образом, мы получаем разбиение всех (г — 1)-подмножеств S' на два семейства — а' и (3'. Так как |S"| > n(pi,gi,r — 1), то по предположению индукции S' содержит либо множество из pi элементов, все (г — 1)-подмножества которого из а', либо множество из qi элементов, все (г — 1)-подмножества которого из (3'. Рассмотрим, например, первый случай, т.е. S' содержит pi = п(р — 1,щ г)- подмножество, все (г — 1)-подмножества которого принадлежат семейству а'. По предположению индукции в нем либо существует g-подмножество, в котором все r-элементные подмножества принадлежат /3, либо существует подмножество из (р — 1) элементов, в котором все r-подмножества из а. Объ- единим это подмножество с {а}. Тогда получим p-элементное подмножество, в котором все r-подмножества принадлежат а. Случай, когда S' содержит ^-подмножество, все (г — 1)-подмножества которого принадлежат (3', рас- сматривается аналогично. Теорема доказана. 1.6. Теорема Дилуорса Пусть (Р, <} — конечное упорядоченное множество. Подмножество А С Р называется антицепью, если никакие два элемента из А не сравнимы. В работе Dilworth R.P. (A decomposition theorem for partially ordered sets, Ann. Math., v. 51 (1950), 161-166) доказано следующее экстремальное свойство множества (С <) Теорема. Минимальное число непересекающихся цепей, которые в сово- купности содержат все элементы Р, равно максимальному числу попарно несравнимых элементов Р. ДОКАЗАТЕЛЬСТВО. Пусть т — максимальное число элементов, кото-
30 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ рое может иметь антицепь в Р. Так как никакие два элемента антицепи не содержатся в одной цепи, то в любом разложении Р в виде объединения цепей число слагаемых не меньше т. Для доказательства теоремы достаточ- но доказать, что Р является объединением т цепей. Доказательство про- ведем методом математической индукции относительно \Р\. Если \Р\ < 1, то утверждение очевидно. Пусть теорема верна для всех частично упоря- доченных множеств с числом элементов, не превосходящим \Р\ — 1. Докажем наше утверждение для множества Р. Пусть С — максимальная цепь в Р (т.е. — цепь и если х G (Р\<7), то С U {ж} не является цепью). Рассмотрим частично упорядоченное множество (Р\<7). Если в нем любая антицепь со- держит не более (m — 1) элементов, то по предположению индукции (Р\С) является объединением не более (т — 1) цепей, и, следовательно, Р является объединением не более т цепей (теорема доказана). Поэтому будем предпо- лагать, что (Р\С) содержит антицепь А = {ai,a2,... , из т элементов. Множества S~ = {х G Р; существует элемент щ G А, такой, что х < щ} и S+ = {х G Р; существует элемент щ G А, такой, что щ < х} назовем ниж- ней тенью и соответственно верхней тенью множества А. Если Р не совпадает с S'” U S+, то, присоединяя любой элемент из Р \ (S~ U А 1) к А, мы полу- чим антицепь с большим числом элементов (чем в А). Противоречие. Итак, Р = S~ U S+. Заметим, что Р Д S~ и Р Д S+. Действительно, если Р = S~ и d - максимальный элемент С, то d < ai для некоторого индекса i < т. Сле- довательно, С U {щ} - цепь. Противоречие. Аналогично доказывается, что минимальный элемент С не принадлежит S+. Итак, Р = S~ U S+ не совпа- дает ни с одним из множеств S~, S+. По предположению индукции каждая из теней разложима в объединение т цепей: S~ = с[~) U С%~) U ... U Ст\ S+ = Cq+) U U ... U Ст') • Так как ai G S~ П S+, i < т, то можно считать, что щ G и ai G С[+\ i = l,m. Докажем, что щ является минимальным элементом в и максимальным элементом в С- \ i = 1, т. Действительно, если ai не является максимальным в С- \ то ai < х для некоторого элемента
1.7. Некоторые комбинаторные задачи на плоскости 31 х G С'- \ Так как х G \ то х < для некоторого элемента aj G А. От- куда следует, что щ < aj. Противоречие доказывает, что ai - максимальный элемент в С- \ Аналогично доказывается, что ai - минимальный элемент в С^+). Пусть Ci = U С^+). Тогда - цепь и Р = С\ U С2 U ... U Ст. Теорема доказана. Задача. Пусть имеется тп + 1 мышей. Доказать, что либо существуют п+1 мышей, ни одна из которых не является потомком другой, либо имееется последовательность из (тп + 1) мышей, в которой каждая мышь является потомком следующей. Указание. Рассмотреть следующий порядок на множестве мышей: а < Ь, если b — потомок а. 1.7. Некоторые комбинаторные задачи на плоскости Задача 1. Показать, что можно так организовать автобусное движение в городе, что 1) каждый автобусный маршрут имел ровно 3 остановки; 2) каждые два маршрута имели единственную общую остановку; 3) с любой из остановок можно проехать на любую другую без пересадки. УКАЗАНИЕ. Рассмотреть граф Задача 2. На плоскости дано п точек, расположенных так, что на каждой прямой, соединяющей любые две из этих точек, лежит по крайней мере еще одна из них. Доказать, что все эти точки лежат на одной прямой.
32 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ УКАЗАНИЕ. Допустим противное и выберем среди данных точек такие три точки А, В, С, что расстояние от точки А до прямой ВС не равно нулю и является наименьшим из всех возможных. Пусть D - третья точка нашего множества, принадлежащая прямой ВС. Ясно, что длины перпендикуляров C*L, PL, АВ удовлетворяют неравенствам: АВ > BLi > CL. Противоречие. Задача 3. На плоскости дано некоторое конечное число попарно пере- секающихся прямых, причем через точку пересечения любых двух прямых нашего множества проходит некоторая третья прямая из этого же множества. Доказать, что все прямые пересекаются в одной точке. УКАЗАНИЕ. Допустим противное. Тогда существуют прямые /1Д2Д3 из нашего множества такие, что они не пересекаются в одной точке и рассто- яние от точки А пересечения прямых /1 и /2 до /3 является наименьшим из возможных: Через точку А проходит некоторая прямая /4 из нашего множества, а через точку В = /3 П /4 прямая /5, пересекающая /1 в точке С. Ясно, что расстояние от точки С до /3 меньше расстояния от точки А до /3. Противоречие. Задача 4. Можно ли спланировать автобусную сеть в некотором городе, состоящую из > 3) маршрутов так, чтобы после закрытия любого из этих
1.7. Некоторые комбинаторные задачи на плоскости 33 маршрутов оставалась бы возможность проехать с каждой из имеющихся остановок на любую другую, используя пересадки, а после закрытия каких угодно двух маршрутов нашлись бы две остановки, с одной из которых уже нельзя проехать на другую? УКАЗАНИЕ. Такая планировка существует. Действительно, рассмотрим п попарно пересекающихся прямых, никакие три из которых не пересекаются в одной точке. Каждую прямую будем считать автобусным маршрутом, а каждую точку пересечения - остановкой. Выбросим некоторую прямую I : Если наши остановки А и Ед лежат на одной прямой, не совпадающей с / , то доехать можно без пересадки. Если же они принадлежат разным прямым (не совпадающими с Z), то доехать можно, сделав пересадку в точке пересечения этих прямых. Если же одна или обе остановки принадлежат вычеркнутому маршруту /, то рассуждение аналогично. В случае удаления 2-х маршрутов, то остановка, расположенная на их пересечении, была бы недосягаемой. Задача 5. Расположить на плоскости девять прямых и девять точек так, чтобы через каждую точку проходили ровно 3 прямые и на каждой прямой лежали ровно 3 точки. УКАЗАНИЕ. Задача 6. На плоскости проведено п прямых линий. Доказать, что обла- сти, на которые эти прямые разбивают плоскость, можно закрасить двумя
34 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ красками так, что никакие две соседние области не будут закрашены одним цветом. УКАЗАНИЕ. Воспользоваться индукцией по числу п. Если п = 1, то ре- шение очевидно. Предположим, что задача имеет решение для п прямых. Рассмотрим разбиение плоскости (n + 1) прямыми /i,...,/n+i. По предпо- ложению индукции существует искомая раскраска областей плоскости, на которые она разбивается прямыми /1,... ,1п. Алгоритм новой раскраски: с одной стороны от ln+i раскраска не меняется, а с другой - меняется на противоположную. Задача 7. Доказать, что число точек пересечения диагоналей выпуклого п-угольника не превосходит СА. Задача 8. На прямой отмечены п различных точек Ai,...,An(n > 4). Каждая из этих точек покрашена в один из 4-х цветов, причем все 4 цвета присутствуют. Доказать, что существует отрезок прямой, содержащий ровно по одной точке двух цветов и по крайней мере по одной точке двух оставшихся цветов. УКАЗАНИЕ. Можно считать, что наши точки расположены слева направо. ----•---• ... •- Ai Д.2--------------------Ап Пусть т = среди точек Ац..., Ai присутствуют точки всех 4-х цветов }. Тогда цвет Ат отличен от цветов Ai,..., Ат_\. Пусть к = max{j;j < т — 1, среди точек Aj, Aj+i,..., Ат присутствуют точки всех
1.7. Некоторые комбинаторные задачи на плоскости 35 4-х цветов }. Тогда цвет отличается от цветов А^+ц..., Am, и отрезок [Ak,Am] является искомым. Задача 9. В некотором обществе любые два знакомых не имеют общих знакомых, а любые два незнакомых имеют ровно двух общих знакомых. До- казать, что в этом обществе все имеют одинаковое число знакомых. УКАЗАНИЕ. Сначала докажем следующую лемму. Лемма. Если А и В знакомы, то они имеют одинаковое число знакомых. ДОКАЗАТЕЛЬСТВО. Пусть Ац ..., Ап - все знакомые А. Будем изобра- жать членов общества точками и соединять любые два ребром, если они зна- комы. Тогда среди В, Ац ..., Ап нет знакомых и существуют Вц ..., Вп та- кие, что Bi - общий знакомый Ai и В : Таким образом, число знакомых В больше или равно п. Аналогично до- казывается, что число знакомых А не меньше числа знакомых В. Лемма доказана. Пусть С и D незнакомы. Тогда существует Е такой, что \в> По лемме число знакомых Е равно числу знакомых С и равно числу зна- комых D.
36 Глава 1. ЭЛЕМЕНТЫ КОМБИНАТОРИКИ Задача 10. В компании, состоящей из 5 человек, среди любых трех че- ловек найдутся двое, которые знают друг друга, и двое, незнакомых друг с другом. Доказать, что компанию можно рассадить за круглым столом так, чтобы по обе стороны от каждого человека сидели его знакомые. УКАЗАНИЕ. Докажем, что каждый человек знает ровно двоих. Если А знает трех В, С, I). то среди {В, С, В} нет знакомых. Противоречие. Если А не знаком с тремя членами компании В,С, D, то В, С и D попарно знакомы друг с другом. Итак, каждый член компании знаком ровно с двумя другими. Пусть А знаком, например, с В и С. Тогда В и С не знакомы между собой. Пусть D - знакомый В и Е - оставшийся член компании. Тогда Е - знакомый С и D - незнакомый С. Укажем искомую рассадку А С\ /В Задача 11. В каждой из 3-х студенческих групп учится по п студентов. Любой студент имеет (n + 1) знакомых студентов в двух других группах. Доказать, что в каждой группе можно выбрать по одному студенту так, чтобы все трое выбранных студентов были знакомы друг с другом. УКАЗАНИЕ. Пусть А такой студент одной из групп, который имеет наи- большее число к знакомых в одной из групп {к < п). Так как (n + 1 — к) > 1, то пусть В - знакомый А из оставшейся третьей группы. Ес- ли В знаком с кем-либо из знакомых А во второй группе, то задача решена. Иначе, он знаком с не более чем к студентами в первой группе и с не более чем (п — к) студентами во второй группе. Т.е. общее число его знакомых не превосходит п. Противоречие. Задача 12. Доказать, что если в графе с 2п вершинами никакие три ребра не образуют треугольника, то число ребер не превосходит п2. УКАЗАНИЕ. Воспользуемся методом математической индукции. Выберем две вершины А и В, соединенные ребром:
1.7. Некоторые комбинаторные задачи на плоскости 37 • • • • • • Л-1 Л-2 Л-2п Оставшиеся вершины соединены не более чем п2 ребрами и каждая из них соединена с Л и В не более чем одним ребром. Таким образом, общее число ребер не превосходит числа n2 + 2n + 1 = = (n +1)2. Примером графа с 2п вершинами и п2 ребрами является двудоль- ный граф: Задача 13. Пусть п точек плоскости не лежат на одной прямой. Доказать, что существует, по меньшей мере, п прямых, соединяющих эти точки. УКАЗАНИЕ. Воспользуемся методом математической индукции. При п = 2,3 решение очевидно. Предположим истинность нашего утверждения для п точек, не лежащих на одной прямой, и докажем его для (n + 1) точек Ai,..., Лп+1, не лежащих на одной прямой. Согласно задаче 2 существуют две точки, например, Ап и An+i такие, что прямая, проходящая через Ап и An+i, не содержит других точек нашего множества. Если Ai,..., Ап при- надлежат одной прямой, то прямые, проходящие соответственно через точ- ки {Ai, An+i}, {А2, An+i},..., {Ап, An+i}, {Ац А2} являются искомыми. Если же Ai,..., Ап не лежат на одной прямой, то по предположению индукции су- ществует по крайней мере п прямых, соединяющих эти точки. Присоединяя к этим прямым прямую, проходящую через {Ап, An+i}, получаем искомое множество прямых. Задача 14. Пусть ЛАВС - правильный треугольник, длина стороны ко- торого равна а . Каждые две вершины соединим дугой окружности радиуса
a . Мы получим криволинейный треугольник (он называется треугольником Рело). Доказать, что его площадь равна . УКАЗАНИЕ. Воспользоваться аналогом для площадей формулы включе- ния и исключения. Задача 15. Пусть ABCD - квадрат со стороной а . Из каждой вершины (как из центра) проведем дугу окружности радиуса а, проходящую через соседние вершины. Точки пересечения этих окружностей обозначим через M.N.P.Q . Доказать, что площадь фигуры MNPQ равна а2(1 — д/З + |).
Глава 2 ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ В 1736 г. Л.Эйлер опубликовал статью, посвященную решению задачи о Кенигсбергских мостах. С этого времени идет отсчет теории графов как ма- тематической дисциплины. Первые исследования в теории графов были свя- заны с попытками решения т.н. задачи о четырех красках (впервые сфор- мулированной в Великобритании О. де Морганом и А.Кэли во второй поло- вине XIX века), а также с задачами о перевозках и о электрических схемах (Г.Кирхгоф). В настоящее время теория графов является самостоятельной математической дисциплиной, имеющей приложения как в самой математи- ке, так и в экономике, физике, биологии. Это связано с универсальностью языка теории графов и эффективностью ее методов в решении различных задач. 2.1. Основные понятия теории графов и способы представления графов Граф G - упорядоченная пара (У,В), где V - множество и Е - семейство неупорядоченных пар элементов из V. Элементы множества V называются вершинами графа G, а элементы Е - его ребрами. Вершины а, b ребра {a, b} Е Е называются его концами. Говорят, что ребро а = {а, Ь} инцидентно своим концам а и Ь, а концы, в свою очередь, инцидентны ребру а. Граф G = (У, Е) называется простым, если V - конечное множество и семейство Е тоже является множеством, т.е. каждую пару вершин графа может соединять не 39
40 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ более чем одно ребро. Часто рассматривают ориентированные графы G = (У, В), представляющие собой пару (V, В), где V - некоторое множество, а Е - семейство упорядоченных пар элементов из V, т.е. Е - семейство элементов декартова квадрата V х V. При этом в ребре а = (а, &) G В вершину а называют началом, а b - концом ребра а и изображают следующим образом а Ъ Иногда рассматривают смешанные графы, которые имеют как ориенти- рованные, так и неориентированные ребра. Например, план города можно рассматривать как смешанный граф, в котором вершины - перекрестки, а ребра - улицы с односторонним или с двусторонним движением. Из опреде- ления графа следует, что допускаются ребра вида (а, а), называемые петлями (обычно, петля считается неориентированной), а также кратные ребра, соеди- няющие две вершины Qi = (a, &Д, = (а, 6)2 Два графа Gi = (Vi,Ei) и G<2 = (У? Е^) назовем изоморфными, если су- ществует биекция Ц на V2, 79 : У —> Рф такая, что {х,у} Е Е\ ЕЕ {ф(х), 72(7/)} Е Е2 (если ребра ориентированы, то ориента- ция сохраняется). Если Gi изоморфен G2-, то будем писать Gi = G2- Пример 1. Следующие графы являются изоморными
2.1. Основные понятия теории графов и способы представления графов 41 относительно биекции ai bi, i < 7. Вершина, не инцидентная никакому ребру, называется изолированной. Граф, состоящий только из изолированных вершин называется нуль-графом и обозначается Еп, где п - число вершин. Граф, содержащий п вершин, в ко- тором любые две различные вершины соединены одним ребром, называется полным графом и обозначается Кп (граф = Е1 называется тривиальным). Заметим также, что простой граф порядка п (т.е. содержащий п вершин) име- ет не более ребер. Число ребер простого графа называется его размером и обозначается z/e(G). Пример 2. Следующие "пространственные"графы допускают изоморфное изображение на плоскости: 1) 2) тетраэдр куб
42 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ 4) 5) Степенью вершины а неориентированного графа назовем число ребер, ин- цидентных а (в обозначении р(а)). Граф называется однородным (регуляр- ным) степени /с, если степень каждой вершины р(а) равна к. Например, гра-
2.1. Основные понятия теории графов и способы представления графов 43 фы правильных многогранников (платоновых тел) являются регулярными (см. пример 2). Утверждение 1.Пусть /< = z/e(G) - число всех ребер графа G = (У,В). Тогда 2z/e = ^р(а). a^V В частности, в конечном графе число вершин, имеющих нечетную степень, является четным. Доказательство следует из того, что в сумме р(сь) каждое ребро {а, Ь} aev учитывается два раза. Иногда число всех ребер графа G обозначается символом e(G). Следствие 1. В однородном степени к конечном графе порядка п справед- ливо равенство к п ие =-----. 2 В частности, если к - нечетное число, то число вершин является четным. Как уже отмечалось, число всех вершин графа G называется порядком графа и обозначается символом |G*| = п = |У(С)|. Произвольный граф по- рядка п записывается в виде G'1. а произвольный простой граф порядка п с т ребрами записывается в виде G*(n,m). Пример 3. Следующие графы имеют порядок не превосходящий 4 и размер 3: Граф G' = (V', Е') является подграфом графа G = (У, В), если V' С V и Е' С Е (в обозначении, G' С G). Если подграф G' содержит все ребра графа G, соединяющие любые две вершины из G', то он называется натянутым (или индуцированным) на V. Пример 4. Рассмотрим граф G = ({1,2,3,4,5,6}, {{1,2}, {1,4}, {1,6}, {2,5}, {3,4}, {3,6}, {4, 5}, {5,6}}).
44 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Тогда нижеследующие графы Gi и G' являются соответственно подграфом G и подграфом G, натянутым на {1, 2,3,4,6} : Подграф G', натянутый на множество V С V, обозначают G’ = <7[Ж]. Если W С У(£), то G \ W = G[V \ Ж] - подграф G, полученный из G вычеркиванием всех верщин из Ж и всех ребер, инцидентных этим вершинам. Аналогично, если Е' С E(G), то G \ Е' = (V(G*), E(G) \ Е'). Задача 1. Доказать, что следующие графы не являются изоморфными УКАЗАНИЕ. В первом графе есть последовательность инцидентных ребер, возвращающаяся к исходной вершине (цикл): {1,2}, {2,3}, {3,4}, {4,8}, {8,7}, {7,6}, {6,5}, {5,1}. Во втором графе такой последовательности нет.
2.1. Основные понятия теории графов и способы представления графов 45 Если имеется простой граф без петель G = (У, Е\ |G*| = п, то его можно дополнить до полного графа Кп^ проведя недостающие ребра. Граф, образо- ванный множеством вершин V(G) и вновь проведенными ребрами, называ- ется дополнением G и обозначается через G. Пример 5. Пусть G = (V(G), E(Gy) и Я = (V(Я), Е(Я)) - два графа. Назовем их объединением следующий граф: G U Я = (У(£) U У(Я), E(G) U Я(Я)). Суммой G + Я называется граф, полученный из G U Я добавлением всех ре- бер, соединящих вершины из V(GE) с вершинами из У(Я). Граф называется конечным, если число его ребер конечно. Т.е., если в конечном графе имеет- ся бесконечное число вершин, то все они, за исключением конечного числа, являются изолированными. Система ребер графа = (У, Я) > 1 1 • • • 1 }} 1 где щ ais = aj и {щ4, dit+1} Е Е, 1 < t < s — 1, at Е V называется путем (или маршрутом), соединяющим вершины щ и aj. Если щ = о?, то путь Аа.а. называется циклическим. Граф G называется связным, если для любых двух различных вершин щ и aj графа G существует путь, соединяющий эти вершины. Ясно, что каждый граф конечного порядка является объединением конечного числа связных непересекающихся (т.е. не имеющих общих вершин) подграфов, называемых связными компонентами графа. Путь Аа.а., в котором каждое ребро встречается не более одного раза, на- зывается цепью. Циклический путь, являющийся цепью, называется циклом. Цикл с концом а называется простым циклом: если а не является в нем проме- жуточной вершиной и никакие другие вершины не повторяются. Аналогично,
46 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ назовем нециклическую цепь простой цепью, если в ней никакая вершина не повторяется. Фигура S С В/3), состоящее из точек &1Д2, ••• и кривых (от- резков), их соединяющих (в обозначении {bi, bj{; заметим также, что никакая внутренняя точка кривой не является вершиной или внутренней точкой дру- гой кривой), называется геометрической реализацией графа G = (у,Е), где V = {di, az,... }, если существуют биекции V на {bi,... } и Е на {{bi, bj}{ такие, что {bni,bnj} (a,i,aj) тогда и только тогда, когда bni Oi, bnj Oj (т.е. S = G). Утверждение 2. Каждый конечный граф G = (У, Е) можно реализовать в R^. ДОКАЗАТЕЛЬСТВО. Без ограничения общности можно считать, что \G\ = п < оо. Возьмем прямую в В^ и проведем через нее связку из т плоскостей, где т - число ребер G. Выберем на прямой п точек ф,..., Ьп и рассмотрим биекцию bi Oi,i < п, где V = {oi,... ,ап{. Каждому ре- бру {oi,Oj{ G Е поставим в соответствие некоторую плоскость из пучка и в ней дугу окружности, соединяющую bi и bj. В результате получаем искомую геометрическую реализацию S нашего графа G в В/3\ Вопрос о реализации произвольного конечного графа в В^ является не простым, хотя и имеет полное решение (см. ниже теорему Понтрягина- Куратовского). Задача 2. (о трех домах и трех колодцах) На участке земли были построены три дома А, В, С и вырыты три колод- ца X, Y, Z. От каждого из домов имелась тропа к каждому из трех колодцев. Спустя некоторое время обитатели домов А, В, С поссорились друг с другом и решили проложить дорожки к колодцам X, Y, Z так, чтобы по пути к ко- лодцам им не приходилось встречаться друг с другом. Спрашивается, можно
2.1. Основные понятия теории графов и способы представления графов 47 ли это сделать? Попытки решить эту задачу приводят нас к убеждению, что это невозмож- но, хотя число точек пересечения ребер можно свести к 1: X Y--------------- Предположим, что наш граф допускает плоскую реализацию. Начертим на плоскости непересекающиеся ребра АХ, ВХ, YB,YC, CZ, ZA : Можно считать, что полученный замкнутый контур описывается непре- рывной кривой. Проводя непересекающиеся непрерывные линии AY и BZ, можно считать, что одна из них лежит внутри контура, а вторая вне его. Но тогда дуга СX обязательно пересечет одну из дуг. В доказательстве есть элементы интуитивности. Строгость достигается, если пользоваться теоремой Жордана: Пусть К - непрерывная замкнутая линия на плоскости. Линия К делит плоскость на внешнюю и внутреннюю области так, что любая непрерыв- ная кривая, соединяющая любую точку внутренней области с некоторой точкой внешней области, пересекает К. Другое доказательство основано на следующей теореме Л.Эйлера (1752), справедливой для любого конечного плоского связанного графа: b + г = р + 2, где b - порядок графа, р - число его ребер и г - число его граней.
48 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ В нашем графе 6 = 6, р = 9. Если бы граф был бы плоским, то г = 11 — 6 = 5. Обозначим через pk ~ число /с-угольных граней графа. Тогда г = р2 + Рз + • • • и 2р = 2^2 + Зрз + ..., так как каждое ребро принадлежит двум граням. Следовательно, 5 = + ^3 + • • • , 2р = 18 = 2р2 Т З993 + .... Так как Р2 = ^з = 0, то 5 = + Т?5 + . . . , 18 = 4</?4 + 5(/?5 + брв + ..., 20 = 4</?4 + 4</?5 + 4</?б + • • • • Откуда следует, что 18 > 20. Противоречие. Задача 3. Доказать, что полный граф К5 не является плоским. РЕШЕНИЕ. Действительно, допустив противное, имеем 6 = 5, р = 10, г = р + 2 — b = 7. Следовательно, 7 = Р2 + ^3 + • • • , 20 = 2р2 + Зрз + .... Так как = 0, то 21 = Зрз + Зр4 + 3ps + • • • > 20 = Зрз + 4^4 + 5ps + .... Противоречие. Задача 4. Каждый из 4-х соседей соединил свой дом с тремя другими до- мами при помощи непересекающихся дорожек.
2.1. Основные понятия теории графов и способы представления графов 49 Пятый человек построил свой дом поблизости. Доказать, что его нельзя соединить с другими домами непересекающимися дорожками. УКАЗАНИЕ 1. Воспользоваться теоремой Жордана. УКАЗАНИЕ 2. Воспользоваться теоремой Эйлера. Имеем 6 = 5, р = 10, г = р + 2 — b = 7. Далее рассуждаем аналогично решению задачи 2. Двудольные графы Граф G = (У,Е) называется двудольным, если V = Ц U Гф И Э V2 = 0 и каждое ребро соединяет какую-нибудь вершину из Vi с какой-либо вершиной из р2- Например, И V2 Если двудольный граф является простым и каждая вершина из Ц соеди- нена с каждой вершиной из Гф то он называется полным двудольным и обо- значается Km,n, где т = |Vi|, п = |V21. Ясно, что К111Г1 = Ет + Еп. Граф К1,п называется звездным. Пример 6. Пример 7. Граф, возникающий в задаче о трех колодцах, изоморфен К33. Утверждение 3. Граф планарен, т.е. изоморфен плоскому графу, тогда и только тогда, когда он укладывается на поверхности сферы.
50 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ ДОКАЗАТЕЛЬСТВО. Пусть граф уложен на поверхности сферы. Выбе- рем точку М на сфере, не совпадающей ни с одной вершиной графа и не лежащей ни на одном его ребре. Плоское представление графа получается применением стереографической проекции из т. М на плоскость, диаметраль- но противоположную точке М. Обратное утверждение доказывается аналогично. Определение. Два графа называются гомеоморфными, если они оба полу- чаются из одного и того же графа включением в его ребра новых вершин степени 2. Пример 8. Графы являются гомеоморфными. Утверждение 4 (теорема Понтрягина-Куратовского). Граф планарен тогда и только тогда, когда он не содержит подграфов, гомеоморфных К5 или АДз. Замечание. Л.С.Понтрягин доказал ее в 1927 г., но не опубликовал; К.Куратовский доказал ее независимо в 1930 г. ДОКАЗАТЕЛЬСТВО см. в [22]. Задача 5. Доказать, что регулярный граф Петерсена
2.1. Основные понятия теории графов и способы представления графов 51 не является планарным. УКАЗАНИЕ. Если а = {a, b] G E(G), то операция удаления ребра а в G и отождествление вершин а и b называется стягиванием. Справедлива теорема о том, что граф является планарным тогда и только тогда, когда в нем нет подграфов, стягиваемых к К5 или К33. Примените эту теорему для решения данной задачи. Матрицей смежности графа G = (V, Е) называется матрица А = (ciij') размера п х п, в которой равно числу ребер, соединяющих вершину щ с Vj, где V = {щ,... ,vn}. Задача 6. а) Построить матрицы смежности графов: К^^Кз2- / 0 1 1 1 \ ОТВЕТЫ: 10 11 110 1 \1 1 1 оу б) Пусть Gn - граф с множеством вершин {щ,...,ип}, в котором щ и Vj инцидентны (г, J) = 1. Изобразить 6*4, G$ и найти их матрицы смежности. Доказать, что если т < п, то Gm - подграф Gn. Задача 7. Пусть G - простой конечный граф (т.е. в нем нет петель и кратных ребер). Тогда G содержит две вершины с одинаковыми степенями
52 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ УКАЗАНИЕ. Достаточно считать, что граф является связным. Пусть V = {щ,..., vn}. Если 1 < р(щ) < p(vz) < p(vn), то из неравенств p(y-i) < п — 1, i < п — 1 и принципа Дирихле следует, что найдутся а,/3 < п такие, что РЫ = p(vp\ (о /3). Задача 8. Докажите, что среди 6 человек всегда найдутся трое таких, ко- торые либо попарно знакомы, либо ни один из них не знает двух других. Задача 9. Приведите примеры (когда это возможно): а) двудольного регулярного графа; б) кубического графа порядка 9; в) платонова двудольного графа; г) простого графа порядка п, имеющего (п — 1)(п — 1)/2 ребер. ОТВЕТ на вопрос г): Кп~2 U В1. Замечание. При решении задач полезно иметь в виду следующее изобра- жение графа /Сзд : 2.2. Теорема Л.Эйлера о плоских графах В предыдущем параграфе мы сформулировали теорему Эйлера для плоских связных графов и убедились в ее важности. Прежде чем строго формули- ровать теорему, определим понятие грани графа G = (V, В). Пусть х - точка плоскости, не принадлежащая V и не лежащая ни на одном ребре Е. Грань графа G, содержащая ж, это множество таких точек плоскости, которые мож-
2.2. Теорема Л.Эйлера о плоских графах 53 но соединить с х жордановыми кривыми, целиком состоящими из точек, не принадлежащих V и ребрам графа. Одна грань в графе является неограни- ченной. Теорема. (Эйлер Л., 1752) Пусть G - плоский связный граф; пусть Ь = |G\, р = v(G), г - число граней G. Тогда р + 2 = b + г. ДОКАЗАТЕЛЬСТВО. Доказательство проведем индукцией по р. Если р = О, то6=1иг = 1. Теорема доказана. Предположим, что теорема верна для графов с числом ребер < р— 1. Рассмотрим плоский граф G с ДО) = р. Если он содержит петлю то ее удаление уменьшает число ребер на 1 и число граней тоже на 1, т.е. искомое равенство является верным. Если G содержит ребро вида •а ab где Да) = 1, то удаляя из G вершину а и это ребро, мы докажем искомое равенство в силу предположения индукции. Итак, можно считать, что G - плоский связный граф, в котором степень каждой вершины > 2 и среди ребер нет петель (и кратных ребер). Лемма. Если степень каждой вершины графа Gi не меньше двух, то Gi содержит цикл. ДОКАЗАТЕЛЬСТВО. Если в Gi есть петли или кратные ребра, то лемма доказана. Иначе, Gi - простой граф. Пусть v Е У (ОД. Пусть щ - смежная вершина с v, - смежная вершина с щ и отличная от и,из - смежная вершина с «2 и отличная от щ и т.д. Так как |Gi| < оо, то в последовательности v, Vi, V2,... встретится вершина Vk, которая встречалась раньше. Выбирая к минимальным с этим свойством, мы получим искомый цикл. Следовательно, граф G содержит цикл. Удалим в этом цикле одно ребро.
54 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Полученный граф является снова связным, но число его ребер pi = р — 1 и число его граней щ = г — 1. Ввиду предположения индукции pi + 2 = ф + щ. Следовательно, р + 2 = Ь + ги теорема доказана. Если мы рассмотрим выпуклый многогранник в В/3) и спроектируем его на поверхности сферы, описанной около него, а затем воспользуемся стереогра- фической проекцией, то мы получим плоский связный граф многогранника, для которого справедлива формула Эйлера р + 2 = b + г. Следствие 1. Если G = (V, Е) - связный простой планарный граф порядка п = М > 3 и размера т = |В|, то т < Зп — 6. ДОКАЗАТЕЛЬСТВО. Подсчитывая ребра в графе, имеем Зг < 2т. Сле- довательно, m+2=n+r<n+-т т < 3(п — 2). Следствие 2. В любом простом планарном графе существует вершина, степень которой не превосходит 5. ДОКАЗАТЕЛЬСТВО.Для доказательства достаточно считать, что граф является связным. Если степень каждой вершины > 6, то 6 • п < 2m, где п - число всех вершин и т - число всех ребер. Откуда следует, что Зп < т < Зп — 6. Противоречие. Следствие 3. Пусть G - плоский граф порядка п, ст ребрами, г гранями и к компонентами связности. Тогда n + г = m + (k + 1). Доказательство следует из теоремы и того, что бесконечная грань счита- ется только один раз. Задача 10. Пусть G = (V, Е) - планарный граф порядка п > 3, в котором все циклы содержат > g > 3 ребер. Доказать, что число ребер m = \Е\ < тах{(п — 1) (S-2) (п - 2)}. УКАЗАНИЕ. Можно считать, что g < п и G - связный граф. Если в G
2.3. Оценка числа графов 55 каждое ребро принадлежит двум граням, то = 52 Л • г > Л • г > Р(52 fi)=9’ г- i i>g i где г - число всех граней и fi - число граней с i ребрами на своих границах. Следовательно, 2 т + 2 = п + г<пН—т, 9 Если ребро {a, b} Е Е принадлежит одной грани, то G \ {а, Ь} - объединение двух непересекающихся графов Gi и 6*2- Полагая пц = |Я(бД|, Hi = |(Д|,г < 2, имеем, что ТП = 7711 + 7772 + 1 < 7/Ш.г{^(//| — 2), 771 ~ 1}+ +тах{-^(п‘2 — 2), 772 — 1} + 1 < ттгаяф^^тг — 2), п — 1}. В частности, если бы граф К5 был бы плоским, то д = 3, v(К5) = 10 < | • (5 — 2). Противоречие. 2.3. Оценка числа графов Обозначим через Н™ - число всех сочетаний с повторениями из п элементов по 777, т.е. число всех таких семейств, содержащих т элементов из данных п различных элементов, что один и тот же элемент может входить в семейство несколько раз. Следующее утверждение доказано в 1.1. Здесь мы приведем второе доказательство. Утверждение 5. ЯД = С^+п_1. Пример. Н% = 4, т.к. на базе {а, Ь] существуют только следующие семей- ства из 3-х элементов: {a, a, a}, {a,a,b}, {a,b,b}, {b,b,b}. ДОКАЗАТЕЛЬСТВО. Рассмотрим основное множество М = {щ,..., ап}. Если 77 = 1, то ЯД = 1 = и все доказано. Сделаем предположение
56 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ индукции об истинности нашего утверждения для п элементного множества и докажем его для множества, содержащего (77 + 1) элементов: • • • •> Число сочетаний с повторениями из (77 + 1) элементов по ттг, не содержащих ап+1, равно /ГД; число сочетаний с повторениями из (77 + 1) элементов по ттг, содержащих an+i ровно один раз, равно ЯД-1; число сочетаний с повторени- ями из (тт + 1) элементов по т, содержащих an+i ровно 2 раза, равно ЯД-2 и т.д. Следовательно, Я“+1 = я™ + я™-2 + •. + Я‘ + 1 = cz,n-, + + • + + 1. Докажем индукцией по т, что ГЛТП -1 I I Z/2 I . . . I глтп ^п+т 1 т 'о ~т~ 'nil T- T- '^'п+т—1' Если т = 1, то С^+1 = п+1 = 1 + С*Д Пусть искомое равенство верно для т. Докажем его для 777 + 1. Имеем / <//) I I _ / tt/i Г1 । /г/н _ хлп+1 , /г/н , , , -i ' | |1 ^п+т ~т~ ^п+т ^п+т ~т~ +i|w-l ~Т“ ~Т“ 'о ~т~ Утверждение доказано. Утверждение 6. (^)п < п\ ДОКАЗАТЕЛЬСТВО. Так как (1 + ±)п < е, то < пп. Предположим истинность нашего неравенства для п и докажем его для (тт + 1). Имеем / -i\i । / /77. / (?7 + 1Д , . .77+1. ,1 (п + 1)! = тт! (п + 1) > (—) (п + 1) > -- (п + 1) = (-) . v е7 е • еп е Теорема 2. Максимальное число у(гп) попарно неизоморфных графов без изолированных вершин с т ребрами удовлетворяет неравенству 7(777) < Ci(c2777)m, где ci,c2 - некоторые константы.
2.3. Оценка числа графов 57 ДОКАЗАТЕЛЬСТВО. Каждый граф с т ребрами имеет не более 2m вер- шин. На множестве из 2m вершин число пар вершин, которые могут связы- ваться ребрами, не превосходит числа г = Н%т = C^m+r = m(2m + 1). Тогда искомое число графов с m ребрами у(т) не превосходит Н "‘ = С™,"-! < (|,+;',71>’" < (2’ДУ‘ = (1 + . (2е„г)-» < е (Зет)’". Теорема доказана. Задача 11. У Вас имеется 3 кувшина А, В, С объемом соответственно 8, 5 и 3 литров. Кувшин А наполнен водой. Вам необходимо разделить воду на 2 равные части, используя пустые кувшины В, С. Можно ли это сделать? РЕШЕНИЕ. Предлагается следующее решение, использующее язык теории графов. Рассмотрим целочисленную решетку плоскости Каждому распределению воды по кувшинам В и С сопоставим точку (а, &) нашей решетки, где b - количество воды в В и с - количество во- ды в С. Так как b Е {о, 1,2,3,4,5} , с Е {0,1,2,3}, то множество возмож- ных узловых точек решетки состоит из 6 х 4—24 точек. Будем считать точ- ки вершинами графа. Две вершины (&i,Ci) и (&2,С2) соединены (ориенти- рованным ) ребром, если за одно переливание из состояния (&i,Ci) можно перейти к состоянию (&25С2)- Наша задача заключается в существовании пути (маршрута) от вершины (0,0) к вершине (4,0). Укажем такой путь: (0,0) (5,0) (2,3) (2,0) (0,2) (5,2) (4,3) (4,0). Про иллюстрируем этот путь графически:
58 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Задача 12. Решить аналогичную задачу для кувшинов А, В, С, объемы которых соответственно равны 12, 7, 4. ОТВЕТ: (7, 0), (3, 4), (3, 0),(0, 3), (7, 3), (6, 4), (6, 0). 2.4. Эйлеровы и гамильтоновы графы Как уже отмечалось, теория графов своим рождением обязана следующей задаче, возникшей в первой половине XVIII столетия и решенной петербург- ским математиком Л.Эйлером (см. рис.). Город Кенигсберг (Калининград) расположен на берегах реки Прегель и двух островах. Различные части города были соединены 7 мостами. Можно ли совершить прогулку по городу таким образом, чтобы, выйдя из дома, вернуться обратно, пройдя по каждому мосту только один раз? Изобразим карту рисунка в виде графа Л. Эй лер доказал, что не существует маршрута, включающего в себя каж- дое ребро только один раз. Л. Эй лер поставил более общий вопрос: для каких графов существует цикл (т.е. замкнутая цепь), содержащий все ребра графа, причем каждое ребро в точности по одному разу?
2.4. Эйлеровы и гамильтоновы графы 59 Графы, обладающие таким циклом (эйлеровой линией), называются эй- леровыми. Такой граф, очевидно, связный и степень каждой его вершины является четной. Теорема 3. Конечный граф G = (V, Е) является эйлеровым тогда и только тогда, когда он связный и степень каждой его вершины являет- ся четной. ДОКАЗАТЕЛЬСТВО. Если G - эйлеров граф, то, как было отмечено, он связный и степень каждой его вершины четная. Обратно, пусть G - связный граф и степени всех его вершин являются четными числами. Возьмем неко- торую вершину a G V и рассмотрим максимальную цепь Т, исходящую из а. Так как граф G связный и степень каждой вершины четная, то Т прохо- дит через каждую вершину G и заканчивается в а. В частности, Т является циклом. Если этот цикл не является эйлеровым, то Т содержит вершину Ь, инцидентную ребру, не входящему в Т. Исходя из вершины Ь, построим но- вую цепь, используя ребра, не принадлежащие Т. Это возможно, т.к. степень каждой вершины является четной. Новая цепь L должна оканчиваться в вер- шине Ь. Но тогда мы можем построить больший чем Т цикл, исходящий из вершины а. Действительно, сначала следуем по Т от а к Ь, затем по L делаем цикл и возвращаемся в Ь, а затем продолжаем путь по Т. Это противоречит максимальности пути Т. Итак, Т - эйлеров цикл. Теорема доказана. Если же на связном конечном графе G = (V, Е) имеется цепь, начинаю- щаяся в вершине а и оканчивающаяся в вершине b а, то предполагая, что она проходит по всем ребрам в точности по одному разу, мы видим, что а,Ь - единственные вершины нечетной степени. Обратно, если в связном конечном графе G = (У, Е) вершины а и & (а являются единственными нечетны- ми, то, добавляя к Е новое ребро {а, &}, мы получим (согласно теореме 3) эйлеров граф, обладающий эйлеровым циклом Т. Удалив из Т ребро {а, &}, мы получим цепь, начинающуюся в а, заканчивающуюся в & и проходящую
60 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ каждое ребро ровно один раз. Итак, доказана Теорема 4. Конечный связный граф G = (V, Е) содержит цепь, начинаю- щуюся в вершине а и оканчивающуюся в вершине Ь, а также содержащую все ребра ровно по одиному разу тогда и только тогда, когда а,Ь - един- ственные нечетные вершины этого графа. Задача 13. Пусть G = (V, Е) - конечный связный граф с 2k нечетными вершинами. Доказать, что G имеет семейство из к цепей, которые в совокуп- ности содержат все ребра графа ровно по одному разу. УКАЗАНИЕ. Пусть {ai,..., оц, ф,..., bk} - нечетные вершины. Добавим к Е новые ребра {«i, Ф},..., {щ, bk}. Мы получим эйлеров граф, содержащий эйлеров цикл Т. Удалим из Т новые ребра. Получим искомое семейство из к цепей. Задача 14. Конечный связный граф является эйлеровым тогда и только тогда, когда семейство его ребер можно разбить на непересекающиеся циклы. Алгоритм Флери построения эйлеровой цепи в эйлеровом графе G Выходя из произвольной вершины а, идем по ребрам графа, соблюдая пра- вила: 1) стираем ребра по мере их прохождения и стираем изолированные вер- шины, которые при этом образуются; 2) на каждом этапе идем по мосту (ребро называется мостом, если его уда- ление нарушает связность графа) только тогда, когда нет других возможно- стей. Указанный алгоритм действительно работает при прохождении каждой вершины Ь. Если b а, то оставшийся подграф Н связен и содержит ровно 2 вершины нечетной степени {а, Ь}. По теореме 4 существует эйлерова цепь Т из & в а. Удалим первое ребро этой цепи Т. Граф Н останется связным и данное рассуждение можно продолжить. Если же b = а, то рассуждаем аналогично.
2.4. Эйлеровы и гамильтоновы графы 61 Задача 15: а) найти все платоновы эйлеровы графы; б) для каких чисел т, п следующие графы будут эйлеровыми: К'1. Кт^п? ОТВЕТЫ: а) октаэдр; б) п - нечетное число; т = п = 0(mod 2). Задача 16. Пусть Cn-i - циклический граф порядка п — 1. Тогда Wn = Е1 + Cn-i (колесо с п вершинами): (12 ф-Ж. «3 Wn d-n—1 При каких п граф Wn является эйлеровым? Задача 17. Можно ли ходом шахматного коня обойти всю шахматную доску (8 х 8) так, чтобы каждый ход встречался ровно один раз? При этом ходы мы отождествляем. УКАЗАНИЕ. Рассмотрим граф порядка 64; две вершины его инцидентны, если возможен ход конем из одной в другую; заметить, что он связный и применить теорему Эйлера. Задача 18. Можно ли ходом шахматного коня попасть из левого нижнего угла доски в правый верхний угол, побывав в каждом поле ровно один раз? УКАЗАНИЕ. Предположим противное. Тогда необходимо сделать 63 хо- да. При каждом ходе меняется цвет клетки на противоположный. Так как диагональ одноцветна, то получаем противоречие. Задача 19: а) доказать, что К5 имеет 264 эйлеровы цепи; б) найти эйлеровы цепи графов
62 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Определение. Пусть G - конечный связный граф. G называется гамиль- тоновым графом, если существует цикл (гамильтоновый), проходящий через каждую вершину ровно один раз. Цепь графа называется гамильтоновой, ес- ли это простая цепь (т.е. без петель и кратных ребер), проходящая через все вершины по одному разу. ИСТОРИЧЕСКАЯ СПРАВКА. Сэр У.Р.Гамильтон (W.R.Hamilton) - ир- ланский математик (1805-1865), профессор Дублинского университета. До- казал т.н. теорему Гамильтона-Кэли для матриц, ввел в рассмотрение тело кватернионов (первый пример некоммутативной алгебры с делением). Примером гамильтонова графа является граф порядка 64 из задачи 17. Укажем один из гамильтоновых циклов в нем (задача Л.Эйлера о рыцарях, 1759): 56 41 58 35 50 39 60 33 47 44 55 40 59 34 51 38 42 57 46 49 36 53 32 61 45 48 43 54 31 62 37 52 20 5 30 63 22 11 16 13 29 64 21 4 17 14 25 10 6 19 2 27 8 23 12 15 1 28 7 18 3 26 9 24 Другими примерами являются следующие графы:
2.4. Эйлеровы и гамильтоновы графы 63 додекаэдр, пример У. Гамильтона, 1857 Граф называется полугамильтоновым, если в нем существует гамильтонова цепь. Примерами негамильтонова графа и полугамильтонова графа являются графы: С гамильтоновыми графами связана и следующая задача о коммивояжере ("о бродячем торговце"). Торговый агент должен посетить какое-то количе- ство городов, побывав в каждом городе ровно один раз. Расстояния (стои- мость билета) между городами известны. Необходимо выбрать кратчайший (самый дешевый) путь (с возвратом в исходный город). Задача 20: а) какие из платоновых графов имеют гамильтоновы цепи (циклы)? б) имеют ли решения задачи о рыцарях на шахматной доске п х п при п = 3,4, 5, 6, 7? в) для каких чисел т, п графы Кт^п, Wn, Кп являются гамильтоновыми? К сожалению, в отличие от эйлеровых графов, для гамильтоновых графов
64 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ нет теоремы, претендующей на полное описание таких графов. Приведем, однако, следующий результат. Теорема 5. (Г.Дирак, 1952). Пусть G = (У,Е) - простой конечный граф порядка п > 3 такой, что степень каждой вершины > п/2. Тогда G - гамильтонов граф. ДОКАЗАТЕЛЬСТВО. Если граф G не является гамильтоновым, то его можно достроить до гамильтонова графа СД, добавив некоторое конечное число вершин Д,&25 • • • Д/г и соединив их со всеми вершинами {ai,..., ап} графа G. При этом можно считать, что к > 0 и к является минимальным с этим свойством. Пусть щ —> ф —> щ —> • • • —> щ - гамильтонов цикл в Gi. Вершина сц не является смежной с щ в графе G, иначе бы мы не использовали вершину ф (а это противоречило бы минимальности к). Предположим, что существует вершина с смежная с ац которая следует (в нашем цикле) за вершиной х, смежной с ai : X с ai —> &i —> a? —>•••—> ж —> с —>•••—> ai. Тогда заменим последний цикл на цикл ai х aj —> с —>•••—> ai, который отличается от предыдущего обратной ориентацией прохода в выде- ленной части. Противоречие с минимальностью к (мы не использовали 5J). Число вершин графа СД, не являющихся смежными с ад не меньше числа вершин, смежных с ai (т.е. > п/2 + к), т.к. в нашем цикле за каждой смеж- ной с ai следует некоторая вершина, не являющаяся смежной с ад С другой стороны, число вершин смежных с а; > | + к. Поэтому порядок графа (Д не меньше числа п + 2к. Противоречие доказывает теорему.
2.5. Деревья 65 Задача 21. В полном графе /С2п+1 найти п гамильтоновых циклов, каждые два из которых не имеют общих ребер. 2.5. Деревья Сделаем сначала несколько замечаний. 1. Пусть х - некоторая вершина графа G = (V, Е) и W - множество всех вершин связной компоненты G, содержащей х. Тогда W = {у 6 У; G содержит маршрут 2. Граф G = (V, Е) является двудольным тогда и только тогда, когда он не содержит нечетных циклов. Действительно, если G - двудольный граф и V = V[ U Рф где Vi П V2 = 0, то для любого цикла щад - хе имеем Xi Е Ц (например), Х2 Е У2,хз Е Vi и т.д.. Так как х^ Е то е - четное число. Обратно, пусть G не содержит нечетных циклов. Заметим, что G - двудоль- ный граф тогда и только тогда, когда все его связные компоненты являются двудольными, т.е. мы можем считать, что G - связный граф. Пусть х Е V. Пусть Vi = {у Е V; минимальная длина d(x, у) пути Ах,у является нечетной } и V2 = V \ Ц. Если какие-нибудь вершины из Гц z = 1,2, соединены ребром, то G содержит нечетный цикл. Определение. Граф, не содержащий циклов, называется лесом или ацик- лическим графом. Связный лес называется деревом. Примеры деревьев: Ясно, что лес является объединением непересекающихся деревьев. Утверждение 6. Граф G является деревом тогда и только тогда, когда для любых двух различных вершин х, у существует не более одного пути
66 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Д ^х,у • ДОКАЗАТЕЛЬСТВО. Действительно, если G не является деревом и xi...xe - цикл, то XiXz.-.Xe и {xi,xe} - два пути AXljXe. Обратно, пусть G - дерево и Р\ . Хе , Р“2 ХоУ^ . . . У^Хе два пути АЖ1;Же. Пусть i + 1 - минимальный индекс такой, что yi+i (т.е. Xi = yi,..., Xi = yi) и j - минимальное число такое, что j > i и yj+l - вершина Рц скажем yj+i = хт. Тогда и XiXi+i... xmyj ... yi+i - цикл G. Противоречие. Утверждение 7. Следующие утверждения эквивалентны для графа G: a) G - дерево; б) G - минимальный связный граф, т.е. G - связный граф и для любого ребра {a, b} Е Е(Сб) граф G\ {а, Ь} является несвязным (другими словами, каждое ребро является мостом); в) G - максимальный ациклический граф, т.е. G - ациклический граф и если х,у - несмежные вершины G, то G + {х, у} содержит цикл. ДОКАЗАТЕЛЬСТВО, а) => б). Пусть G - дерево и {х,у} Е E(G). Граф G \ {х, у} не содержит Ах,у пути xzi... z^y, т.к. иначе G содержит цикл. Та- ким образом, G \ {х, у} - несвязный граф. Докажем, что б) => в). Пусть G - минимальный связный граф и xzi... Zkry - цикл в нем. Тогда G\{x, у} - связ- ный граф, т.к. в любом пути AUjV ребро {х, у} заменяется на путь xzi... Zjzy. Противоречие. Т.е. G - дерево. Если а,Ь- две несмежные вершины его, то су- ществует путь azi... Zkb в G. Следовательно, граф G + {а, Ь} содержит цикл azi... Zkb. Это доказывает, что G - максимальный ациклический граф. Дока- жем, что в) => а). Предположим, что G - несвязный граф и а, b - вершины его,
2.5. Деревья 67 принадлежащие разным компонентам связности. Рассмотрим граф G*+{a, b}. Он должен содержать цикл azi... zkb. Но это означает, что G содержит Аа путь. Противоречие. Утверждение 8. Каждый конечный связный граф G содержит дерево, содержащее все вершины графа. ДОКАЗАТЕЛЬСТВО. Пусть п = \G\ - порядок графа G и х Е V(G). Положим Ti - подграф, состоящий из одной вершины х. Предположим, что мы построили цепь деревьев Т1 с Т2 с • • • с Тк с G такую, что \Ti\ = i. Если к < п, то, ввиду связности, существует вершина у Е V(GT) \ V(Tk), инцидентная некоторой вершине z Е V(Tk). Пусть Тк+1 - подграф, полученный из Тк присоединением этой вершины z и ребра {у, z}. Тогда Тк+1 является снова связным графом, в котором ребро {у, z} не явля- ется ребром никакого цикла, т.е. Тк+± - ациклический граф. Продолжая этот процесс, мы построим искомое дерево Тп. Следствие 1. Пусть G - дерево порядка п. Тогда |B(G*)| = п — 1. ДОКАЗАТЕЛЬСТВО. Действительно, из утверждения 8 следует, что G содержит подграф, являющийся деревом, и в котором \Е(Тп')| = п — 1. Если G Тп, то получаем противоречие с утверждением 7 (точнее, с минимально- стью связного графа G.). Следствие 2. Пусть G - лес порядка п, имеющий к связных компонент. Тогда |В(С)| = (п — к}. Доказательство следует из следствия 1. Следствие 3. Пусть G - дерево порядка п >2. Тогда G содержит (по меньшей мере) две вершины степени 1. ДОКАЗАТЕЛЬСТВО. Действительно, пусть di < dz < < dn- неубыва- ющая последовательность степеней вершин дерева G. Допустим противное. Тогда dz > 2 и 2|E(G*)| = 2(п — 1) = ф + 72 + • • • + dn > 1 + 2(п — 1). Противоречие.
68 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Вернемся к предложению 8. Из него следует, что в любом связном графе (порядка п) есть дерево, содержащее все вершины графа. Оно называется основным (каркасным) деревом графа. Вернемся еще раз к построению этого остова. Если исходный граф G не содержит циклов, то он сам и является деревом. Иначе, возьмем любой цикл и удалим любое ребро из него. Мы не нарушим связность этого нового графа, но уменьшим в нем число цик- лов. Продолжая этот алгоритм, мы получим остовное дерево графа. Число удаленных ребер при применении этого алгоритма называется циклическим рангом (или цикломатическим числом) графа G и обозначается через 7(6*). Ясно, что 7(G) = т-п-\-1, где т = |E(G)|, п = |G|. Применяя этот алгоритм к произвольному (не обязательно связному графу G), мы получим остовное дерево, циклический ранг 7(G) которого равен 7(G) = |B(G) | — |G| + к, где к - число связных компонент. Число &(G) = |G| — к (число ребер в остовном лесе) называется ко циклическим рангом. Задача 22. Найти число всех неизоморфных деревьев Т порядка п, где п < 7. ОТВЕТ: а) при п = 6 их число равно 6; б) при п = 7 их число равно 11. Задача 23. Доказать, что каждое дерево является двудольным графом. Какие деревья являются полными двудольными графами? УКАЗАНИЕ. Воспользоваться замечанием 2 в начале 2.5. Задача 24. Найти циклические и коциклические ранги графов Кп, Кт^п, Еп. Wn, платоновых графов, графа Петерсена. Задача 25. Пусть G - граф порядка п. Доказать эквивалентность следу- ющих утверждений: 1) G - дерево; 2) G - связный и | E(G) | = п — 1; 3) G - ациклический и |7?(G)| = п — 1; 4) если п = 1 или 2, то G = Кп\ если п > 3, то G Кп и добавление одного ребра к G приводит к появлению ровно одного цикла.
2.5. Деревья 69 УКАЗАНИЕ. Импликация 1) => 2) следует из определения и следствия 1. Импликация 2) => 3) следует из утверждения 8. Импликация 3) => 4) при п < 2 очевидна. Если же п > 3, то ясно, что G Кп. Докажем, что G - связный граф. Иначе, каждая из его к связных компонент является деревом и | E(G) | = п — к = п — 1. Т.к. к = 1. Остальное следует из утверждения 7. Конечный граф G = (V, Е) порядка п назовем помеченным, если все его вершины "помечены"целыми числами от 1 до п, т.е. существует биекция ср : {щ,..., vn} —> {1,2,..., п}. Числа ^(щ),..., тДгу) называются метками вершин щ,..., vn. Два помеченных графа (СД, тд) и (6*2? ^2) называются изо- морфными, если существует изоморфизм между нашими графами, который сохраняет распределение меток. Приведем примеры всех помеченных неизоморфных деревьев порядка 2,3, 4: а) п = 2 •j------------Их число равно 1. б) П = 3 Их число равно 16.
70 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Теорема 6.(А.Кэли, 1889) Число различных помеченных деревьев порядка п равно пп~2. ИСТОРИЧЕСКАЯ СПРАВКА. Артур Кэли (1821-1895) - английский ма- тематик; известен исследованиями в теории групп и в теории колец (числа Кэли); автор работ по теории определителей (в частности, ввел в рассмотре- ние ныне действующее обозначение для определителя), по геометрии Лоба- чевского (модель Кэли-Клейна), по теории инвариантов и дифференциаль- ным уравнениям. ДОКАЗАТЕЛЬСТВО. Пусть Т(п, /с) - число помеченных деревьев порядка п, в которых фиксированная вершина и имеет степень к. Докажем равенство (*): (п — 1)(/с — 1)Т(п, к} = (п — /с)Т(п, к — 1). Возьмем, сначала, любое помеченное дерево А порядка п, в котором р(г) = к — 1. Возьмем в нем любое ребро {w, z}, не инцидентное г, и удалим его. Из предыдущего следует, что удаленное ребро являлось мостом. Соединим вершину v новым ребром с вершиной z из другой связной компоненты. Тогда получим снова дерево В, в котором р(г) = к. Такую пару (А, В) мы будем называть связкой. Сколько таких связок? Дерево А можно выбрать Т(п, к—1) способами. Для каждого дерева А удаляемое из него ребро {w, z} можно выбрать (п — 1) — (к — 1) = п — к способами. Следовательно, число всех таких связок равно (п — /с)Т(п, к — 1). Возьмем теперь любое помеченное дерево В порядка п, в котором р(г) = к. Пусть Д, ТД..., Д - поддеревья, полученные из В удалением вершины v с каждым из инцидентных ей ребер.
2.5. Деревья 71 Удаляя, например, ребро {щгщ} и соединяя гщ ребром с любой вершиной любого из оставшихся деревьев, мы получим дерево А, в котором р(и) = к — 1. Т.е. получается связка (Л, В) (и все связки получаются таким образом!). Подсчитаем другим способом число этих связок. Дерево В можно выбрать Т(п, к} способами. Для каждого такого выбора ребро {гщ, и} можно получить (п2 + Пз + • • • + пД = (n — Hi — 1) способами; ребро {ид, и} можно получить (п — П2 — 1) способами и т.д. Т.е. ребра {ущ и} можно получить (n — ni — 1 + п — П2 — 1 + • • • + п — ///,• — 1) = пк — к — (п — 1) = (п — 1) (к — 1) способами (мы использовали равенство ni + + • • • + = п — 1, где щ - порядок дерева Д,г < к). Следовательно, число всех связок равно (п — 1)(/с — 1)Т(п, к), и формула (*) доказана. Так как Т(п,п — 1) = 1, то из (*) следует равенство T(n,k) = С£р • (n - I)"-4-1. Число Т(п) всех помеченных деревьев порядка п равно Т(п) = T(n, 1) + Т(п, 2) + • • • + Т(п, п - 1) = £ С^2 (п - = k=i = ((п — 1) + 1)п-2 = пп“2. Теорема доказана. Задача 26. Найти дипломатическое число полного графа. Задача 27. Пусть п > 3. Доказать, что если полный граф Кп разложим в объединение гамильтоновых циклов (не имеющих общих ребер), то п - нечет- ное число. УКАЗАНИЕ. Граф Кп является однородным степени (п — 1). Каждый га- мильтоновый цикл является 2-однородным. Следовательно, 2|(п — 1) и п - нечетное число. Так как число всех ребер Д(КП)| = , т0 в этом объеди-
72 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ нении будет (п — 1)/2 циклов. Задача 28. Пусть п - нечетное целое число > 3. Доказать, что Кп явля- ется объединением (п — 1)/2 гамильтоновых циклов (любые два из которых не имеют общих ребер). Задача 29. Полный граф Кп(п > 2) разложим в объединение гамильто- новых путей (любые два из которых не имеют общих ребер) тогда и только тогда, когда п - четное число. Примеры: а) К6 является объединением следующих гамильтоновых путей: б) К4 является объединением таких гамильтоновых путей УКАЗАНИЕ. Если п - нечетное число, то с каждым гамильтоновым путем графа Кп~1 можно связать гамильтонов цикл Кп (присоединяя оставшуюся вершину) и наоборот. Задача 30. Доказать, что в связном конечном графе G = (У, В), не явля- ющимся деревом, каждой вершине можно поставить в соответствие смежное с ней ребро, т.е. существует инъективное отображение ср : V Е такое, что для любой вершины v G V существует вершина и G V такая, что <р(и) = {г, и}. Иллюстрацией к этой задаче может служить пример города, в котором каждая улица имеет длину в один квартал, каждый перекресток (называется площадью) имеет название и из каждой площади исходит улица с тем же названием. Например, из площади Советов исходит улица Советская и т.д.
2.5. Деревья 73 УКАЗАНИЕ. Если п = |С| = |У|, то \Е\ > п (иначе, G - дерево). Рассмотрим схему превращения G в дерево. Схема состоит из последова- тельного удаления ребер. Пусть е = (а, &) - одно из таких удаляемых ребер и Т - полученное в результате удаления дерево. Каждой вершине дерева Т (кроме а!) поставим в соответствие смежное с ней ребро (это легко видеть, если принять а за корень дерева), а вершине а поставим в соответствие уда- ленное ребро е = (а, &). Задача 31. Пусть G = (V, Е) - связный конечный граф. Существует инъ- ективное отображение ср : Е V такое, что для любого ребра е G Е вершина 77(e) инцидентна е тогда и только тогда, когда G - дерево или G - цикл с деревьями, вырастающими из его вершин (см. рисунок). УКАЗАНИЕ. Если G - дерево и ао - его корень, то рассмотреть отоб- ражение {ao,ai} ац {00,02} О2,{ацОз} —> аз и т.д. Если G - цикл ащ2.. . ап_ц то поставим в соответствие ребрам {а^-цо^} —> Оцг < тг — 1 и {ап_ц ai} ац Итак, ясно, что если граф имеет указанный в условии задачи вид, то искомое отображение существует. Обратно, если такое отображение существует и С = ... ап_\ - цикл О, то, например, ^({ацаг}) = а^'-, и тогда 7?({а2, аз}) = аз и т.д. . Таким образом, 77(C) = = {ац 02, аз,..., an_i}. Пусть bi Е V инцидентна ац Тогда 77({ац&1}) = bi и ai - корень некото- рого дерева, вырастающего из ац Аналогичные рассуждения относительно вершин а2,..., an-i приведут к решению задачи.
74 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ 2.6. Экстремальные задачи, алгоритм Краскаля. Задача о четы- рех красках Пусть у нас есть несколько деревень а,Ь,с,..., которые нужно соединить се- тью асфальтированных дорог; при этом стоимость /(а, Ь) дороги для каждой пары деревень {а, Ь} известна. Как построить самую дешевую сеть дорог, вы- полнив условие, что из любой деревни можно проехать в любую другую по такой дороге? Если у нас три деревни и /(di, а?) < /(а?, аз) < /(щ, аз), то ясно, что /(од, а%) + /(<12, аз) является минимальным. В случае 6 деревень, с указанным на рисунке распределением стоимости, решение уже не является очевидным. Пусть G = (V, Е) - конечный связный граф и f : Е R+. Укажем алгоритм нахождения связного подграфа Т = (V, Е') графа G, для которого значение лд= Е /(ц.л) {х,у}еЕ' является минимальным из возможных. Если такой подграф существует, то он является деревом, т.к. если <11(12 • • • ak-i - некоторый цикл в нем, то удаление ребра di} не наруша- ет его связности, но уменьшает значение f(T). Итак, если Т существует, то
2.6. Экстремальные задачи, алгоритм Краскаля... 75 Т - дерево. Алгоритм нахождения такого дерева (его предложил Д.Краскаль (J.В.Kruskal, 1956)) назовем правилом экономичности, а само дерево назовем экономичным деревом. Алгоритм Краскаля: Шаг 1. Выберем вершины од, <12 £ V такие, что /({щ,^}) _ минимальное из возможных значений. Шаг 2. Присоединим к вершинам и ребру ei = ребро е% (и соответствующие вершины) с минимальным значением /(ег) таким, что полученные ребра не образуют цикла. Предположим, что мы построили вершины {ai,..., a^+i} и соответству- ющие звенья (ребра) ец б2,..., е^. Выберем самое дешевое ребро из Е \ {ei,..., 6k} такое, что его присоединение не приводит к появлению цикла. Докажем, что так построенное экономичное дерево Т действительно явля- ется минимальным из возможных. Так как среди подграфов G существуют деревья с числом вершин, равным порядку G, и их общее число является конечным, то, очевидно, существует и минимальное дерево То, т.е. /(То) яв- ляется минимальным из возможных. Занумеруем ребра {ец 62, • • •, en_i} эко- номичного дерева Т в порядке их присоединения. Если То Д Т, то пусть ei = {а, Ь} - первое ребро, не принадлежащее Т(Д). Пусть Р - цепь дерева То, соединяющая (в Tq!) вершины а и b : а •-------—-------*Ь Р Так как Т не содержит циклов, то найдется ребро е( в пути Р такое, что е' Е(Т). Рассмотрим дерево Tq = (Д + {еД) \ {еД (это связный граф с п = |Д| вершинами и (n — 1) ребрами!). Так Kaf /(ТД = f(Tz)+ — /(е') > /(Tq), то Так как /(щ) было минимальным, то /(е') = /(е/) и /(Т^) = /(Tq). Но дерево Тд имеет с Т одним общим ребром больше, чрм Tq.
76 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Рассуждая аналогично, мы докажем, что /(Tq) = /(Tq) = /(Т). Во второй половине XIX века в Англии математиками Ф.Гутри, О. де Мор- ганом и А.Кэли была поставлена задача о возможности раскраски произволь- ного мтогоугольного графа на плоскости при помощи четырех красок так, что соседние страны имеют различный цвет. Следующий пример показывает, что 3-х красок может быть недостаточно где К, Б, 3, С - начальные буквы соответственного красного, белого, зе- леного и синего цветов. В 2892 г. английскЬй математик Хивуд доказал, что любую карту можно раскрасить пятью красками (см. теорему ниже). В 1956 г. американские математики К.Аппель и В.Хакен с помощью ЭВМ установили положительное решение данной проблемы. Сначала уточним понятие многоугольного графа G(V, Е). Это конечный плоский связный граф без мостов, в котором ни один многоугольник не лежит внутри другого, причем петли и кратные ребра могут быть. Граничные ребра многоугольника образуют цикл, внутренняя часть которого называется грань графа. Цикл графа, окружающий весь граф, называется максимальным, а его внешняя часть называется бесконечной гранью (Foo). Пример (многоугольного графа). Теорема 7(Хивуд).Каждый многоугольный граф G = (У,Е) можно рас-
2.6. Экстремальные задачи, алгоритм Краскаля... 77 красить пятью красками. Замечаше 1. Можно считать, что граф G не содержит вершин степени два. ДОКАЗАТЕЛЬСТВО. Действительно, если существует такая вершина a G то, удаляя эту вершину и объединяя инцидентные с ней два ребра ец 62 в одно ребро е, мы получим многоугольный граф G'. Раскрашивание графа G' пятью красками влечет за собой искомое раскрашивание графов G. Замечание 2. В силу замечания 1 степень каждой вершины графа G не меньше 3. Оказывается, мы можем свести нашу задачу к однородным графам степени 3. ДОКАЗАТЕЛЬСТВО. Действительно, если существует вершина а Е V та- кая, что р(а) > 4, то проведя достаточно малую окружность с центром в точке а и удаляя вершину а с частями ребер, лежащими внутри этой окруж- ности, мы получим новый граф G', в котором вместо вершины а появились вершины щ,..., a,k(k > 4) степени 3 (см. рис.) Раскрашивание графа G' пятью красками влечет за собой очевидное иско- мое раскрашивание графа G. Замечание 3. Итак, мы можем считать, что G = (V, Е) - это связный плоский (конечный) однородный степени 3 граф.
78 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Докажем, что он содержит грань, ограниченную не более 5 ребрами. Рас- смотрим равенства: 2 + р = Ь + г (формула Эйлера), ЗЬ = 2у2 + Зрз+ +4^4 + ..., где pk ~ число граней с к ребрами и к вершинами. Выразим число ребер р и число граней через у2- Гз- • • • следующим образом: 2р — 2у2 + Зр>з + 4^4 + ..., г = Р2 + ^3 + ^4 + • • • • Подставив выражения r,p, b через р2, • • • в формулу Эйлера, имеем 12 — 4^2 + Зр>з + 2774 + — р- — 2^8 — ... Следовательно, одно из чисел <Гз5 А4, Гз больше нуля. ДОКАЗАТЕЛЬСТВО теоремы. Минимально возможное число граней для однородного графа степени 3 равно 4 или и, следовательно, для такого графа теорема справедлива. Предположим, что теорема верна для графов с меньшим числом граней, чем в G. Случай 1. Граф G содержит кратные ребра, т.е. 772 > 1 : т а Исключив вершины а,Ь и ребро ei, а ребра 63,62, 64 заменив на единствен- ное ребро е (см. рис.), мы получим новый граф: а
2.6. Экстремальные задачи, алгоритм Краскаля... 79 Ясно, что раскраска нового графа (а она существует по предположению индукции) влечет искомую раскраску графа G. Случай 2. = 0, 993 > 1. Т.е. граф G не содержит кратных ребер, но содержит треугольную грань: 1с 62/ \бз В 7 D \ А al\b / \ /е4 Q е\ Удаляя из G*i ребро ец вершины а и Ь, а также "склеивая"ребра 62,64 в ребро е', а ребра 63, 65 в ребро е", мы придем к новому (однородному степени 3) графу G' с меньшим числом граней. Из раскраски G', очевидно, следует искомая раскраска графа G. Случай 3. т?2 = 773 = 0, 774 > 1. Т.е. граф G содержит четырехугольную грань, но не содержит кратных ребер и треугольных граней: т При этом можно считать, что грани В и D (либо Л и С) не являют- ся частями одной грани и не граничат друг с другом. Исключим ребра {а, &}, {с, объединим {щщ}, {с, с4} и {а, с} в одно ребро {ai,ci}, а ре- бра {ф, &}, {&, rf}, {d, di} в ребро {&i, di}. Мы получим однородный (степени 3) граф Gi с меньшим числом граней. По предположению индукции, для него
80 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ существует искомая раскраска. Пусть, например, грани А и G раскрашены в цвета а и /3, а грань В + F + D в цвет у. Возвращаясь к графу G, мы грани В и D оставляем окрашенными в цвет у, а грань F закрашиваем в 4-й цвет 6. Случай 4. ^2 = = ^4 = 0, 995 > 1. Рассмотрим фрагмент графа G Можно считать, что грани А и С не являются частями одной и той же грани и не имеют общей границы. Исключим ребра {а, &}, {с, d} : По предположению индукции, новый граф можно раскрасить в 5 цветов: а,/3,у, фд. Пусть, например, грани В, В, В и (А + F + С} раскрашены со- ответственно /3, у, 5, а цветами. Восстанавливая граф G, мы оставляем рас- краску прежней, кроме грани В, которую закрашиваем в цвет //. Теорема доказана. Задача 32. Пусть G - многоугольный однородный степени 4 граф. Тогда G содержит либо 4 двухкратных ребра, либо треугольную грань. УКАЗАНИЕ. Имеем 46 = пдп, 2р = "А- Ь + г = 2 + р, г = п>2 п>2 п>2
2.7. Теорема о целочисленности. Потоки в сетях... 81 Откуда следует, что 4Ь + 4г = ^2 (п + 4)т7п = 8 + ^2 2п • 77п, п>2 п>2 8 = 2у2 + - ^5 - 2^6 - • • • • Если = 0, то </?2 > 4. Задача 33. Исследовать возможные значения 772,773,774 для многоуголь- ного однородного степени 5 графа. Задача 34. Пусть G - планарный конечный граф. Число %(G*) = (& — р) называется эйлеровой характеристикой графа G. Доказать, что а) если G - связный граф, то %(G*) < 1; б) если G - связный граф, то х(G) = 1 тогда и только тогда, когда G - дерево; в) если G - лес, то число деревьев в нем равно %(G*). Задача 35 (алгоритм выбора экономичного дерева в связном графе). Пусть G = - конечный связный граф и f : Е R+. Выберем любую вершину Xi G V и выберем вершину а;2, инцидентную яд, имеющую минимальное значение /({яд, ж2})- Затем выберем а?з, инцидентную одной из вершин ЖцЖг и имеющую с ними самое "дешевое"ребро. Пусть мы выбрали вершины Выберем среди вершин, инцидентных указанным, вер- шину Xk+i {яд, • • • ,Xk}, имеющую самое "дешевое"ребро {xk+i,Xi},i < к. Наш алгоритм останавливается на (п — 1) шаге. Проверить, что в результате мы действительно получаем экономичное дерево. УКАЗАНИЕ. Воспользоваться доказательством теоремы Краскаля. 2.7. Теорема о целочисленности. Потоки в сетях. Теорема о мак- симальном потоке и минимальном разрезе В пункте 1.4 была доказана теорема Ф.Холла о представителях. Некото- рые авторы называют ее задачей о свадьбах и дают ей следующую интер- претацию. Имеется некоторое количество юношей {юц..., юп} и девушек {дц ... ,дт}. Каждый юноша знаком с несколькими девушками. Найти необ- ходимые и достаточные условия, чтобы каждого юношу можно было женить
82 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ на знакомой ему девушке (см. [21]). Запишем условие задачи в виде двудольного графа СДРфЕД, взяв в ка- честве Vi = {roi,... ,юп}, а в качестве V2 = {дх,... ,дп} и соединив ребром вершину Юг с вершиной д? тогда и только тогда, когда они знакомы. Инъек- тивное отображение Ц в V2 называется совершенным паросочетанием, если соответствующие вершины (всегда) соединены ребром. Итак, на языке теории графов задача о свадьбах звучит следующим об- разом: найти необходимое и достаточное условие на двудольный граф G = (14, V2) для того, чтобы в нем существовало совершенное паросочетание. Приведем доказанную ранее теорему Ф.Холла в терминах теории графов. Теорема 8 (Ф.Холл, 1935).Пусть G = СДРфЕД - конечный двудольный граф и для любого подмножества А С Ц через р(А) обозначим множество вершин из Рф которые смежны хотя бы одной вершине из А. Совершенное паросочетание в G существует тогда и только тогда, когда для любого подмножества А С Vi |А| < |ЩА)|. Задача 36 (задача о гареме). Обозначим через Ю некоторое множество юношей и предположим, что каждый юноша из Ю желает взять в жены более чем одну знакомую ему девушку. Найти необходимые и достаточные условия разрешимости этой задачи. УКАЗАНИЕ. Пусть Ю={к>1,..., юп} и Д— { Д1,..., дто}. Предположим, что гарем Ю1 должен состоять из трех девушек, а гаремы к>2,..., юп из двух девушек. Рассмотрим новое множество юношей КУ = { Юц, Ю12, Ю13, К>21, К>22, Ю31, Ю32, . . . , Юп1, Юп2}- Остается применить к КУ теорему Холла. Если Si,, Sm - непустые подмножества Е, то трансверсалью этого се- мейства подмножеств F = ^Si,...,Sm) называется такое подмножество {ei,...,eTO} С Е, что 6i Е Si,i < т. Другими словами, это система
2.7. Теорема о целочисленности. Потоки в сетях... 83 различных представителей наших подмножеств. Теорема Холла утвержда- ет, что трансверсаль семейства F существует тогда и только тогда, когда \S^ U • • • U Sik | > к для любой выборки {А, • • •, A} С {1, 2,..., т}. Транс- версаль произвольного подсемейства F называется частичной трансверсалью F Задача 37. Пусть Si,..., Sm С Е, Si ф,1 < т, и F = {Si,..., Sm). Семейство F имеет трансверсаль мощности t тогда и только тогда, когда для любой выборки {ii,... ,Ir} С {1, 2,..., т}, \S^ U • • • U Sik\ > к + t — т. УКАЗАНИЕ. Рассмотрим новое семейство F' = (SiUD, S^D,..., SmUD), где D - любое {т — t) - элементное множество, не пересекающееся с Е. F имеет частичную трансверсаль мощности t тогда и только тогда, когда Е’ имеет трансверсаль. По теореме Холла это возможно тогда и только тогда, когда |Ац U • • • U U Z)| > к, \S{1 и • • • и Sik\ > к - \D\ = к + t - т, так как {S^ U • • • U Sik) П D = ф. Задача 38. Какие из следующих семейств подмножеств множества Е = {1, 2,3,4, 5} имеют трансверсали: 1)({Ц {2,3}, {1,2}, {1,3}, {1,4,5}); 2) ({1,2}, {2,3}, {4,5}, {4,5}); 3) ({1,3,4}, {1,4,5}, {2,3,5}, {2,4,5})? Задача 39. Пусть Е - множество букв в слове MATROIDS. Найти транс- версали семейства {STAR, ROAD, MOAT, RIOT, RIDS, DAMS, MIST). Пусть M = {rriij) - матрица порядка m x n, где 1 < m < n и 1 < rriij < n. Если выполнено условие, что все элементы в каждой стро- ке и в каждом столбце различны, то М называется латинским {т х п) -
84 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ прямоугольником. Если т = п, то латинский прямоугольник называется ла- тинским квадратом. 1 2 2 3 Примеры: Теорема 9. Пусть / 1 2 3 4 \ 3 4 \ 2 3 4 1 4 1/ 3412 \ 4 1 2 3 / М - латинский (т х п) - прямоугольник и т п — 1. Тогда М можно расширить до латинского квадрата добавлением новых (п — т) строк. Доказательство следует из леммы. Лемма. Латинский (т х п) - прямоугольник можно расширить до ла- тинского (т + 1) х п - прямоугольника. ДОКАЗАТЕЛЬСТВО. Пусть Е = {1, 2,..., п} и F = (Sb ..., Sn), где Si - множество элементов Е, не встречающихся в г-м столбце М, i = 1,2,... , п. Докажем, что F имеет трансверсаль. Предположим, что |5ц U • • • U Д/ < к — 1 для некоторой выборки {Д,..., Д} С {1, 2,..., п}. Т.к. в U • • • U Sik присутствует (п — т) к элементов (включая повторения), то некоторый элемент повторялся бы более чем (п — т) раз. Противоречие. Задача 40. Докажите, что существует по крайней мере п!(п — 1)!... 2!1! латинских (п х п) - квадратов. Задача 41. Показать, что таблицу умножения в конечной группе можно рассматривать как латинский квадрат. Существует ли латинский квадрат, который нельзя получить таким способом? УКАЗАНИЕ. Пусть р - простое число. Число латинских квадратов порядка р х р не меньше числа pl(p — 1)!... 1!, а число групп порядка р в точности равно 1. Рассмотрим, далее, конечный связный граф G = (У, Е) и пусть г, w - различные его вершины.
2.7. Теорема о целочисленности. Потоки в сетях... 85 Определение 1. Простые цепи, соединяющие v с w и не имеющие общих ребер, называются реберно непересекающимися. Определение 2. Простые цепи, соединяющие v с w и не имеющие общих вершин ( кроме v и ш), называются вершино непересекающимися. Определение 3. Множество ребер А графа G называется vш-разделяющим в G, если любая простая цепь из v в w содержит ребро из А. Определение 4. Множество вершин В графа G называется гш-отделя- ющим, если v^B,w^Bn любая простая цепь из v в w обязательно содер- жит вершину из В. Теорема 10 (Менгер, Форд, Фалкерсон; 1955). Пусть G = (V, Е) - связ- ный конечный граф и v,w - различные его вершины. Тогда максимальное число реберно непересекающихся простых цепей, соединяющих v с w, равно минимальному числу к ребер в vw-разделяющем множестве. Укажем схему доказательства. Ясно, что число всех непересекающихся простых цепей, соединяющих v с ш, не превосходит к. Чтобы доказать ра- венство этих чисел, можно воспользоваться методом математической индук- ции по числу ребер п = |У|. Предположим, что теорема верна для графов с числом ребер < п. Доказательство теоремы следует из рассмотрения двух случаев ([21]): Случай 1. fw-разделяющее множество А минимальной мощности к со- держит ребро, не инцидентное щ а также ребро, не инцидентное w. Случай 2. Каждое vw - разделяющее множество минимальной мощности к состоит из ребер, каждое из которых инцидентно щ либо из ребер, каждое из которых инцидентно w. Пользуясь аналогичной схемой, можно доказать следующую теорему. Теорема 11 (Менгер, 1927). Максимальное число вершино непересека- ющихся простых цепей, соединяющих две различные несмежные вершины v,w связного конечного графа, равно минимальному числу вершин в vw- отделяющем множестве.
86 Глава 2. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ Рассматривая конечные связные ориентированные графы (орграфы) и ду- блируя соответствующую терминологию, мы можем сформулировать (без до- казательства) следующий результат (см. [21]). Теорема 12 (теорема о целочисленности). Максимальное число непересекающихся по дугам простых орцепей, соеди- няющих две различные вершины v и w орграфа, равно минимальному числу дуг vw-разделяющего множества. Определение. Сеть - это пара N = (D, ф) где D - орграф, а гф - функция, отображающая множество дуг D в R+U{0}. Для каждой дуги е значение гф(е) называется ее пропускной способностью. Для каждой вершины х положим Р (ж) = 12 (и назовем полустепенью исхода вершины ж), Р (ж) = Z ^2^((^,ж)) (и назовем полустепенью захода Z вершины #). Пример. х Z Здесь ^((т/, #)) = 4, р (х) = 10, Р (Д) = 6. Будем считать, что орграф D содержит один источник v и один сток w. Приведем пример иллюстри- рующий понятие сети на практике. Предположим, что завод-изготовитель (г) отправляет на рынок (ш) свою продукцию, используя различные каналы. Каждый канал имеет максимальную пропускную способность (например, на рис. Д((щж)) = 4). Вопрос: как максимизировать отправку готовой продук- ции? Для вышеприведенного примера ответом является следующий алгоритм:
X Определение. Пусть N = (D, Ф) - сеть. Функция у. ставящая в соответ- ствие каждой дуге а из D неотрицательное число ср (а) (называемое потоком через а), называется потоком через N, если: 1) < Ф(а); 2) по отношению к сети (D, ср) полустепень исхода и полустепень захода лю- бой вершины (^ щш) равны между собой, т.е. полный поток, входящий в любую вершину (^ г, ш), равен полному потоку, выходящему из нее, и поток через дугу не превосходит ее пропускной способности. Разрезом сети N = (D, Ф) называется множество дуг А орграфа D такое, что любая простая орцепь из v в w содержит дугу из А, т.е. разрез N - это uw-разделяющее множество в D. Сумма пропускных способностей всех дуг разреза называется пропускной способностью разреза. Минимальным раз- резом называется разрез, обладающий наименьшей возможной пропускной способностью. Следующая теорема эквивалентна теореме 12. Теорема 13 (о максимальном потоке и минимальном разрезе). Во всякой сети величина любого максимального потока равна пропускной способности любого минимального разреза. Замечание. Теорема 13 доказана в 1955 г. Л.Фордом и Д.Фалкерсоном (см. "Потоки в сетях". - М.: Мир, 1966).
Глава 3 ЭЛЕМЕНТЫ АЛГЕБРЫ ЗЛ. Элементы теории групп и теории сравнений Множество (G*, •) с бинарной операцией "-"называется группой, если выпол- няются аксиомы: 1) для любых элементов a, b, с Е G : (аЬ)с = а(&с); 2) существует такой элемент е Е G , что для любого элемента а Е G : ае = еа = а; 3) для любого элемента а Е G существует элемент а-1 Е G такой, что аа~г = а~га = е. Примерами групп являются, например, множества (Z, +), (R, +), (Sn, •), Сп {а Е С; ап = 1} - множество всех комплексных корней n-ой степени из еди- ницы (относительно операции умножения). Подмножество Н группы G на- зывается подгруппой, если для любых a,b Е Н : ab Е Н, а-1, е Е Н. Для подгруппы применяется обозначение Н < G. Предложение 1. (Теорема Лагранжа) Если G - конечная группа и Н < G, то \Н\ делит |G*|. ДОКАЗАТЕЛЬСТВО. Пусть а Е G. Множество а = аН = {а/ц h Е Н] называется левым смежным классом группы G по подгруппе Н (с предста- вителем а). Если х Е аПБ, то х = ahi = bh^, где hi, Д2 £ Н. Следовательно, для любого элемента h Е Н : ah = b^hzh^h} Е b и а Е Ь. Аналогично доказывается обратное включение. Таким образом, два смежных класса либо 88
3.1. Элементы теории групп и теории сравнений 89 не пересекаются, либо совпадают. Далее, \аН\ = \Н\. Действительно, пусть Н = {hi = е, /12? • • •, hm}. Тогда аН = {ahi,ah/2, ..., ahm}. Если ahi = ahj,i j, то hi = a-^ahi) = = hj. Противоречие. Итак, \аН\ = \Н\ = т. Так как а = ае G аН, то G = = ^lU^U- • -ищ,, где ДПа? = 0, i j. Следовательно, |G*| = кт = А;|Я|. Предложение доказано. Пусть G - конечная группа и a G G. Рассмотрим множество всех степеней элемента а {е,а,а2,а3,...} С С. Так как |G*| < оо, то найдутся две одинаковые степени аг = aJ, где i < j. Сле- довательно, а^~г = е. Пусть т = min{t G TV; = е}. Число т называется порядком элемента а. Предложение 2. Порядок элемента делит порядок группы. ДОКАЗАТЕЛЬСТВО. Пусть т - порядок элемента а Е G. Рассмотрим множество Н = {е,а,а2,... Ясно, что \Н\ = т. Заметим, что Н является подгруппой группы G. Действительно, (А)-1 = ат~г Е Н и а'а-1 = (P+j рр^ если ipj < т — д и аЕЕ = а(г+^~т Е Н, если i+j > т. По теореме Лагранжа т = \Н\ делит |G|. Предложение доказано. Пусть Z = {0, ±1, ±2,... } - множество целых чисел. Тогда < Z, + > - группа и (n) = nZ = {0, ±п, ±2п,... } - ее подгруппа. Пусть а Е Z и а = nq + г, где 0 < г < п — 1. Смежные классы г и а содержат общий элемент а. Следовательно, они совпадают, т.е. г = а. Откуда следует, что группа Z является объединением различных смежных классов О, 1, 2,...,n —1, т.е. Z = 0UlU2U---Un — 1. Рассмотрим множество Z* = {а; (а, п) = 1, 1 < а < п — 1}. Тогда |Z* | = ф(п). Введем на Z* бинарную операцию умножения по правилу: a -b = ab. Проверим корректность этой операции. Если а = ai и b = bi, то а — ai = nqi, b — bi = nq? и ab — aibi = (ai + nqi)(bi + nq?) — fli&i = n(aiQ2 + Gqi + nqiq2). Поэтому ab = aibi. Множество < Z*, • > является группой. Действительно, для любых a,b,c Е
90 Глава 3. ЭЛЕМЕНТЫ АЛГЕБРЫ Z* . п • (а&)с = abc = (аб)с = (а(Ьсф) = a(bc) = а(Вс), а-1 = а-1 = а = 1- аи1 = е- единица Z*. Далее, если a G Z*, то (a, n) = 1 и по лемме о наибольшем общем делителе существуют целые числа мд G Z такие, что au + nv = 1. Откуда следует, что а • й = 1 и й = (a)-1 G Z*. Итак, Z* - группа порядка ф(п). Следствие 1. Если а Е Z( , то = 1. Действительно, если т - порядок а, то по предложению 2 т | ф(п). Следо- вательно, = (ЩфАт = (1). Пусть п - натуральное число и a, b Е Z. Скажем, что а сравнимо с & по модулю п (в обозначении, а = b(mod п) ), если (а — &) делится на п. Ясно, что а = b(mod п) тогда и только тогда, когда смежные классы а и b равны. Предложение 3. Если а = b(mod п) и с = d(mod ri), то (а ± &) = (с ± d)(mod ri) и ab = cd(mod ri). ДОКАЗАТЕЛЬСТВО. По условию а = &+пщ, с = dE-rufr. Следовательно, (а ± с) — (b ± d) = п(щ ± q^) и ас — bd = n(bq2 + dqi + пщдД- Поэтому (а ± с) = (с ± d)(mod ri) и ас = bd(mod ri). Переформулируем следствие 1 на языке теории сравнений (по модулю ri). Следствие 2. Если (a,ri) = 1, то = l(mod п). Предложение 4. Если (а, ri) = 1, то существует единственное решение (по модулю п) сравнения ах = b(mod ri). ДОКАЗАТЕЛЬСТВО. Докажем сначала единственность. Если axi = b(mod ri) и ах2 = b(mod ri), то афщ — аД = b — b = 0(mod ri) и афщ — аД делится на п. Так как (a,n) = 1, то х± = X2(mod п). Для доказательства су- ществования решения заметим, что число вида Жо = • b действительно является решением: ахо = а^ • b = 1 • b = b(mod п). Предложение доказано. Предложение 5. Пусть р и q - различные простые числа и е, f - такие натуральные числа, что ef = l(mod ф(рдУ). Тогда для любого целого числа
3.2. Фактор-кольца коммутативных колец 91 а справедливо сравнение а(-' = a(mod pq). ДОКАЗАТЕЛЬСТВО. Если (a,pq) = 1, то по следствию 2 ае^ = о^+ФМ-т _ а . ^(pqjym = a(mod pq), где ef = 1 + (/)(pq) т. Если а де- лится на р и q, то а*-1 = 0 = a(mod pq). Если а делится, например, на р и не делится на д, то (ае? — а) делится на р и делится на q. Действительно, aef = a1+(^pq)’m = а = а (а^)^р~^т = a(mod q) и q - делитель (aef — а). Поэтому (ае? — а) делится на pq. Предложение доказано. 3.2. Фактор-кольца коммутативных колец Пусть R - коммутативное кольцо с единицей и I - идеал кольца R (в обозна- чении I <1 R). Рассмотрим множество смежных классов относительно идеала I : R = R/1 = {(1 = а Т Д a G Ry. Определим на R операции "+"и "-"по правилам: а + b = а + b, а -b = ab. Корректность этих операций следует из определения идеала и следующей леммы. Лемма 1. а = b <=> (а — b) G I. Доказательство предоставляется читателю. Кольцо R = R/I является ассоциативным, коммутативным и содержит единицу 1. Оно называется фактор-кольцом кольца R по идеалу I. Отобра- жение л : R R/I, л(а) = а является сюръективным гомоморфизмом кольца R на R/I ( и называется естественным гомоморфизмом R на R/I). Идеал I кольца R назовем макси- мальным, если для любого другого идеала М <1 R такого, что I С М С R следует, что либо I = М, либо М = R.
92 Глава 3. ЭЛЕМЕНТЫ АЛГЕБРЫ Упражнение 1: а) доказать, что I <\ Z является максимальным тогда и только тогда, когда I = (р), где р - простое число; б) кольцо с единицей является полем тогда и только тогда, когда (0) - единственный максимальный идеал в нем. Предложение 1. Пусть I<\R. Фактор-кольцо R/I является полем тогда и только тогда, когда I - максимальный идеал. ДОКАЗАТЕЛЬСТВО. Пусть R/1 - поле и М - идеал, содержащий I. Если М I, то М/I э а 0. Так как R/I - поле, то а a-1 = 1G М/I и для некоторого элемента т Е М(1 — m) Е I С М. Таким образом, 1 Е М и, следовательно, для любого элемента х Е R х = х • 1 Е М. Поэтому R = М. Обратно, пусть I - максимальный идеал и а 0 Е R/I. Тогда идеал (a) + I I и, следовательно, (cl) + I = R. Откуда следует равенство 1 = axRi для некоторых х Е R, i Е I. Поэтому 1 = а • х, т.е. R/1 - поле. Предложение 2. Пусть R - область главных идеалов, т.е. кольцо без делителей нуля с единицей, в котором каждый идеал I <1 R однопорожден, (т.е. I = (а) для некоторого а Е R). Если л - неразложимый элемент в R. то (л) - максимальный идеал и R/ (л) - поле. ДОКАЗАТЕЛЬСТВО. Если М < R и М D (л), то М = (а) и л = ах. Так как a qL (л), то а - обратимый элемент, т.е. М = R. По предложению 1 R/(л) - поле. Примерами таких колец (ОГИ) являются Z, к[х], где к - поле. Если в коль- це без делителей нуля имеется алгоритм деления с остатком (такие кольца называются евклидовыми), то они являются областями главных идеалов. На- пример, Z[i],Z[iV2],Z[\^]. Упражнение 2. Кольцо R называется евклидовой областью, если R - кольцо делителей нуля с единицей и определено отображение р : Я —> Z такое, что: а) если b 0, а 0 и b/а, то р(&) < р(а);
3.3. Существование и строение конечных полей 93 б) для любых элементов a,b Е R,b^0 существуют элементы щ г G R такие, что а = bq + г, где ДД < ДЬ). Доказать, что если R - евклидова область, то 1) р(0) < для любого b О G R; 2) Да) = ДЬ), если а и & ассоциированы; 3) а и b ассоциированы, если а/b и Да) = р(&); 4) ДД = д(1) Ф; 5) R - ОГИ; 6) R - область с однозначным разложением на множители. Упражнение 3. Доказать, что следующие кольца являются евклидовыми: a) Z[z], Да + Ы) = а2 + &2; б) Z[V2], Да + ЬДД = |а2 -2&2|; в) Z[i\/2\, Да + ЬгД2) = а2 + 2&2; г) Z, р(п) = |п|; д) к[х], ДДх)) = дед/Д)Д- поле (р(0) = -1). 3.3. Существование и строение конечных полей Предложение 3. Пусть к - поле. Тогда для любого многочлена /Д) Е к[х\ существует поле Д Д к, содержащее некоторый корень этого многочлена. ДОКАЗАТЕЛЬСТВО. Пусть рД) - неприводимый множитель /(ж) в к[х]. Тогда к[х]/(р) является полем, и а = х - корень /(ж) = 0. Следствие. Для любого /Д) Е к[х\ существует поле Е Д к, содержащее все корни /Д). ДОКАЗАТЕЛЬСТВО. Действительно, согласно предложению 3, существу- ет поле Д Д к, содержащее один корень Qi многочлена /(я). По лемме Безу Д — Qi)| Д'Д). Рассмотрим многочлен /Д)/Д — ац) Е Д[ж]. Для него суще- ствует поле Д Д Д, содержащее его корень а^. По лемме Безу Д — аД | Рассматривая и рассуждая аналогично, придем к доказательству следствия.
94 Глава 3. ЭЛЕМЕНТЫ АЛГЕБРЫ Пусть р - простое число и q = рп. Рассмотрим поле Е D GF(p), содержащее все корни многочлена xq — х Е G*F(p)[x]. Так как (xq — х)' = qxq~x — 1 = —1, то данный многочлен не имеет кратных корней, т.е. а{ aj при i j. Пусть GF(q) = {ац,..., aq}. Докажем, что GF(q) - подполе Е. Действительно, пусть а,[3 Е GF(q). Тогда (аДД = aq • [3q = а[3 и (а + ДД = ((а + ДДД” 1 = (ар + ДРД” = • • • = арП + Др” = а + Д. Следовательно, аД, а + Д, а-1 Е GF(q), если а Д 0. С другой стороны, если Р - конечное поле с единицей е, то среди элементов е, 2е, Зе,... найдутся два одинаковых. Например, ае = b • е, а > Ь. В частности, (а — Ь) • е = 0. Пусть р = min{n Е N; п > 0, пе = 0}. Тогда р - простое число (доказать!) и Р D GF(p) = {0, е, 2е,..., (р — 1)е}. Р является векторным пространством над GF(p). Если п = dimP, то Р = {Д1Щ + ... Дпгп; Д^ Е GF(p), {щ,..., vn] - базис }. Следовательно, \Р\ = рп = q. Множество Р \ 0 является группой порядка (q — 1) относительно операции умножения. По следствию из теоремы Лагранжа любой элемент а Е Р \ 0 удовлетворяет равенству aq~r = е или aq = а. Итак, элементы из Р являются корнями (xq — х) Е G*F(p)[x]. Таким образом, конечные поля существуют, совпадают с множеством всех корней многочлена (xq — х) Е GF(p)[rr], где q = рп, в некотором расширении поля GF(p). Предложение 4. Мультипликативная группа конечного поля GF(q) яв- ляется циклической. ДОКАЗАТЕЛЬСТВО. Пусть G = GF(q) \ 0 = {щ,..., а^}. Порядок к{ = |щ| является делителем q — 1 = рг{ .. ,plss. Пусть т = [Д,..., A?g_i] - НОК чисел Д,..., kq-\. Если т = р^1 .. . рД то найдутся элементы ац,..., djs такие, что kj1 = р^1 • щ,..., kjs = pts vs. Тогда элементы Д = аД,..., bs = aVjss имеют порядки Д'.... . /Д соответственно, а элемент .. .Ь3 = с будет иметь порядок т. Так как ki |m, i < q — 1, то каждый элемент из G является корнем хт — 1 Е GF(p)[x\,q = рп. Т.е. q — 1 < т. С другой стороны, т =
3.3. Существование и строение конечных полей 95 |с| | (g — 1) и q — 1 = т, т.е. G = (1,с,..., с7-2). Упражнение 1. Найти циклические порождающие полей GF(4), GF (д'). Упражнение 2. Найти все неприводимые многочлены степени два над GF(5). Упражнение 3: а) решить в поле GF(7) уравнение ж4 = 3; б) решить в поле GF(8) уравнения: 1) х6 = 5; 2) х2 + х + 1 = 0. Упражнение 4. Пусть R = Z[z] и I = (а) <1 R. Доказать, что R/I - поле, если 1) а = 1 + i (порядка 4); 2) а = 3 ( порядка 9). Если а = 5, то доказать, что R/I не является полем. Упражнение 5. Доказать, что в поле GF(32) каждый элемент, не равный 0, 1, является циклическим порождающим (т.е. примитивным). Упражнение 6. Поле GF(q) содержит cp(q — 1) примитивных элементов. Упражнение 7. Доказать, что группа обратимых элементов не явля- ется циклической. Упражнение 8: а) доказать изоморфизм полей Х2[Д/(ж3 + х + 1) и Х2[Д/(ж3 + х2 + 1); б) найти корни (х2 + х + 1) в поле Z2[x]/(x4 + х + 1). Упражнение 9. Пусть N(n,p) - число неприводимых многочленов степе- ни п в Zp[x\. Доказать, что N(~n’P'i = FGG1- IL Ct d\n УКАЗАНИЕ. Многочлен (хрП — х) является произведением всех неприво- димых многочленов степеней d,d\n,d < п. Следовательно, Рп = 12^ ’ N(d,p). По формуле обращения Мебиуса nN(n,p) = d(^Pd- d\n d\n
Упражнение 10: а) вычислить N(n, 2), п < 9; б) доказать, что У(6,7) = 19544.
Глава 4 АЛГЕБРА ЛОГИКИ Историческая справка. Одним из создателей математической логики являлся Джордж Буль (1815-1864) -английский математик и логик. Он не имел университетского математического образования, хотя с 1849 г. рабо- тал профессором в одном из Ирландских университетов. Им опубликован ряд работ по алгебре высказываний, из которых отметим следующую книгу "Исследование законов мысли, на которых основаны математические теории логики и вероятностей"(1954) (Математический энциклопедический словарь, Москва, Совет, энц., 1988, с. 672). Первые исследования по математической логике в России были начаты в Казанском университете во 2-й половине 19 века. В частности, первые в России лекции по математической логике были прочитаны в 1887-88 г. профессором П.С.Порецким. Как отмечено в работе А.И.Мальцева "К истории алгебры в СССР за первые 25 лет"("Классическая алгебра", Изб. тр., Наука, 1967, т.1, с.475), кроме П.С.Порецкого, большой вклад в развитие математической логики был сделан профессором Казан- ского университета Н.А.Васильевым. Им были начаты исследования по мно- гозначным логикам, подвергнут критике закон исключительного третьего (а V а = 1). 4.1. Алгебра высказываний Высказывание - это утверждение, о котором можно говорить, что оно истинно или ложно. Например, следующие утверждения являются высказываниями: 97
98 Глава 4. АЛГЕБРА ЛОГИКИ 1. "Рио-де-жанейро - столица Бразилии" - это утверждение является лож- ным; 2. "20 марта 2008 г. в Барнауле будет дождь" - это утверждение, конечно, является высказыванием, но его истинность мы сможем проверить 20 марта 2008 г.; 3. "Простых чисел бесконечно много" - это истинное утверждение. Следующие утверждения не являются высказываниеми: 1) "Где вы живете?"; 2) "Который час?"; 3) "Улыбнитесь!" Высказывания мы будем обозначать большими и малыми буквами латин- ского алфавита. Если высказывание а истинное (ложное), то будем писать а = и или а = 1 ( соответственно, а = л или а = 0) и говорить, что а имеет истинное (ложное) значение. Будем предполагать, что некоторый набор высказываний является основным: а,Ь,с,.... Эти высказывания мы назовем простейшими. С помощью простейших высказываний и союзов "и", "или", частицы "не"можно составлять сложные высказывания. Например, "5 - простое число или Барнаус - столица России", "Неверно, что если в треугольнике совпадают центры вписанной и описан- ной окружностей, то этот треугольник является равносторонним". Мы будем отвлекаться от смыслового значения высказываний, интересуясь только значениями истинности и ложности их. Введем следующие основные операции алгебры высказываний: отрицание, дизъюнкцию, конъюнкцию, импликацию. Отрицание. Отрицанием высказывания а называется высказывание, ко- торое истинно, если а - ложное и ложное, если а -истинное высказывание. Отрицание а обозначается а, либо -<а и читается "не а" или "неверно, что а". Приведем таблицу истинности сложного высказывания а.
4.1. Алгебра высказываний 99 Конъюнкция (conjuctio - союз, связь (лат.)). Пусть а,Ь - некоторые выска- зывания. Конъюнкция а и b - это новое высказывание, обозначаемое а b или а/\Ь (читается: "а и &"), значение которого определяется следующей таблицей истинности а ь а Ъ 1 1 1 1 0 0 0 1 0 0 0 0 Таким образом, конъюнкция принимает истинное значение тогда и только тогда, когда оба множителя имеют истинное значение. В русском языке конъ- юнкция соответствует союзам "и", "но", "хотя", "однако". Дизъюнкция (disjunctio - различие (лат.)). Пусть а,Ь - некоторые выска- зывания. Дизъюнкция а и b - это высказывание, обозначаемое « V b (произ- носится "а или &"), значение которого определяется следующей следующей таблицей истинности а ь а V b 1 1 1 1 0 1 0 1 1 0 0 0 В русском языке операция соответсвует союзу "или". Импликация (implico - тесно связаны (лат.)). Пусть а,Ь - некоторые высказывания. Импликацией а и b называется высказывание, обозначаемое а Ъ или (a D Ь) (читается "а влечет &", "из а следует &", "если а, то &"), значение которого определяется таблицей
100 Глава 4. АЛГЕБРА ЛОГИКИ а ь а Ъ 1 1 1 1 0 0 0 1 1 0 0 1 Из таблицы следует, что импликация имеет ложное значение тогда и толь- ко тогда, когда посылка имеут истинное значение, а заключение - ложное значение. С помощью введенных операций, мы можем строить сложные высказы- вания, исходя из простейших а,Ь,с,.... Например, рассмотрим следующее высказывание А(а, &, с) = (а b с) V (с • а). Построим для него таблицу истинности Сложное высказывание A(ai,..., ап), зависящее от простейших ai,... ,ап, называется тождественно истинным (ложным), если при любых значени- ях щ,..., ап ... ап) принимает истинное (ложное) значение. Например, (а —> &) V (а&) - тождественно истинное высказывание, а ((а —>&)—> с) • (а —> Ь) - с - тождественно ложное высказывание. Два сложных высказывания A(ai,..., ап) и B(ai,..., ап) назовем эквива- лентными, если при любых значениях переменных а\,... ,ап значения Аи В совпадают, т.е. Аи В имеют одинаковые таблицы истинности (в обозначении,
4.2. Булевы функции 101 А = В или А ~ В.) Например, если А - тождественно истинное высказыва- ние, то А = 1. Легко видеть, также, что а V b = а-Ь. Бинарное отношение = на множестве сложных высказываний является, очевидно, отношением эквива- лентности. Оно разбивает множество всех высказываний на непересекающи- еся классы эквивалентных высказываний. Множество этих классов, называе- мое алгеброй Линденбаума-Тарского, можно отождествить с множеством т.н. булевых функций, т.е. функций /(ац,..., жп), аргументы и значение которых принадлежат множеству {0,1}. Обозначим через В^ - множество всех буле- вых функций. Тогда, согласно определению, алгебра Линденбаума-Тарского содержится в В^. Позднее мы докажем их совпадение. УПРАЖНЕНИЯ. 1. Доказать следующие эквивалентности: а) а V b = (а ((& а) &)) (Ь Ь) (а • Ь) V с V & = а V с V с) а —> (& —> а • &) = 1; 2. Путешественник находится в одном из городов А или В, но в каком имен- но - ему неизвестно. Жители А говорят правду, а жители В всегда лгут. Он задает собеседнику один вопрос, на который может получить ответ "да"или "нет", причем ответ его собеседника может являться правдой или ложью (чем именно, ему неизвестно). Придумать вопрос, по ответу на который можно од- нозначно определить город, в котором находится путешественник. 4.2. Булевы функции Пусть Е = {0,1} и Р2 = {/; f Еп Е} - множество всех булевых функций (или функций алгебры логики). Каждая функция /(ац, ... ,жп) - полностью определена своей таблицей значений
102 Глава 4. АЛГЕБРА ЛОГИКИ Xi Х2 Хп— 1 Хп f (дц,..., хп) 0 0 0 0 /(0,0,...,0) 0 0 0 1 /(0,0,...,0,1) 0 0 1 0 /(0,0,...,1,0) 0 0 1 1 /(0,0,...,1,1) 1 1 1 1 /(1,1,..., 1,1) Утверждение 1. Число всех функций из Р2, зависящих от п переменных, равно 2г . Доказательство следует из следующих лемм. Лемма 1. Пусть Ai,...,Ak - конечные множества и |АД = < к. Тогда мощность прямого произведения Ai х • • • х Ап равна арщ .. .clr- Доказательство очевидно. В частности, \Еп\ = 2П. Лемма 2. Множество всех функций {/; / : А —> В} можно отожде- ствить с П Ва, где Ва = В. В частности, мощность этого множества аеА равна |В|1Л1; если А и В - конечные множество. Действительно, если f - отображение А в В, то f можно отождествить с упорядоченным набором элементов f = иЪГГАГ где А = {ai, , ат}, /{Г £ В, i < т. Верно и обратное. Для любо- го набора (bi,, bm) £ П Ва существует функция ц : А —> В такая, что аеА g(di) = bi,..., g(am) = bm. Равенство | П Ва| = |В|1Л1 следует из леммы 1. а^А Положим в лемме 1 А = Еп и X = Е. Тогда мощность всех булевых функций п2п от п переменных равна 2 . Приведем некоторые примеры булевых функций: 1) /Дж) = 0 - константа 0; 2) /2 (ж) = 1 - константа 1;
4.2. Булевы функции 103 3) /з(#) = х - тождественная функция; 4) /4(ж) = х - отрицание х (читается "не х "); 5) /5(^1, Х2) = Xi Х2 - КОНЪЮНКЦИЯ И Х2', 6) /6(Ж1, ж2) = Xi V Х2 - дизъюнкция щ и ж2; 7) /7(^1, ж2) = —> ж2 - импликация х± и ж2; 8) /s(^i, Х2) = (^i + а2) - сложение по mod 2; 9) fgtx^xz) = Ж1|ж2 - функция Шеффера. Х1 Х2 + Х2 (Ж1|ж2) Х\ Х2 Xi V Х2 Х\ Х2 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 Ясно, что щ • Х2 = min(xi, ж2) и Xi V ./;2 = max(xi, ж2). Пусть X = {a?i, ж2, ... } - счетное множество переменных и \/ {/г(Ди(Щ) - конечная или счетная совокупность функций алгебры логики (д(п, т) - целочисленная функция принимающая при любом фиксированном п различ- ные натуральные значения при различных т). Введем понятие формулы над множеством \]. Определение. а) каждая функция fi Е\/А Е I, является формулой над \/; Ь) если /(ад,..., хп) Е V и ф>1,..., фп - либо формулы над \/, либо пере- менные из X, то , фп) - формула над \ф . Каждой формуле над \/ естественным образом ставится в соответствие функция алгебры логики. Ясно, что функция реализующая формулу явля- ется суперпозицией функций из \/ . Определение. Две формулы Аи В называются эквивалентными, если им соответствуют равные функции (в обозначении, А = В или А = В).
104 Глава 4. АЛГЕБРА ЛОГИКИ Приведем основные эквивалентности. 1. Обозначим через (rrio^) любую из функций х± -яд, х± V^2, х± +%2- Тогда справедливы следующие эквивалентности: a) о Х2) о хз = Xi о (х2 ° Хз) (свойство ассоциативности); b) (a?i о а?2) = (яд ° яд) (свойство коммутативности); с) яд • (яд V яд) = (яд • Х2) V (яд • яд), х\ V (яд яд) = (яд V хф) (яд V яд) (свойства дистрибутивности); d) х\/ у = х - у, х —?у = х\/у. х у = ж V у,х = ж; (идемпотентность); f) x V (ж • у) = ж, а • (а V Ь) = а (свойства поглощения); g)a-a = 0 - (закон противоречия), aVa = 1 - (закон исключенного третьего). Докажем, например, эквивалентность х у = ж V у. Имеем, X У х^у ж V у 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 Формулы, в построении которых участвуют функции V,-, -, содержат скоб- ки. С целью уменьшения числа скобок в записи формулы, введем порядок действий, считая, что вначале выполняется -, затем • и далее V. Например, формулу (ж • у • z) V (х • (yz)) можно переписать в виде х • у • z V х • у • Z. Определение. Функция /*(яд,..., хп) = f(xi,..., хп) называется двойст- венной к функции /(яд,..., хп). Ясно, что (/*)* = f и 0 двойственна 1, 1 двойственна 0, х двойственна ж, х двойственна х, яд Х2 двойственна яд V яд, яд V яд двойственна х± -яд. Утверждение. Пусть ф = /(/1(ядь..., хГпф •>••••> fm (xmi, . . . , ХтПт )). То- гда ф f (Д (ЯД1, • • • , ЯДП1), • • • , /то(яДг1, • • • , ХтПтф.
4.2. Булевы функции 105 Действительно, согласно определению двойственной функции, имеем Ф* = /(/1(^11, = Из этого утверждения следует следующий принцип двойственности для формул над множеством \/ = {0,1, х, Хг х2, Xi V х2} : для получения формулы А*, двойственной к формуле А, необходимо в А заменить 0 на 1, 1 на 0, • на V, V на •. Например, если А = V Ж1Т2, то А* = Х1 • Х2 V Х1 • Х2 = Ж1Ж2 V Х]Х2 = (£1^2) • (#1 • хф) = (щ V хф) (#1 V хф). {X, т = 1 х, т = 0. Тогда, очевидно, что хфхф хт™ = 1 в том и только том случае, если х± = Л, х2 = т2,..., хп = тп. Из этого замечания следует следующее утверждение о разложении произвольной булевой функции. Утверждение. Пусть f(xi,..., #m) G Р2 и п <т. Тогда f (ДЦ, . . . , Хт) — Х^ . . . ЖД f (ту, . . . , Tn, Хп-\-1,..., хт). (л, --тп) В частности, если п = т и f 0, то /(щ,..., £т) = V хф ... хф?. Указанное разложение называется совершенной дизъюнктивной нормаль- ной формой (с.д.н.ф.) функции /. ПРИМЕР. Рассмотрим следующую функцию:
106 Глава 4. АЛГЕБРА ЛОГИКИ X У Z f(x,y,z) 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 Отметим наборы, при которых f = 1 : (0, 0,0),(0,1,0),(0,Сле- довательно, f = xyz V zyz V xyz V xyz. Если f зависит от ад,..., жп,то произведение яф ... жр называется элемен- тарной конъюнкцией. Т.е. каждая функция / 0 является дизъюнкцией некоторых элементарных конъюнкций. Положим в последнем утверждении п = 1. Тогда /Ob . . . , Хт) = Х2, • • • , Хт) V Ж1/(0, Х2, • • • , Zm). Теорема 1. Каждая булева функция может быть выражена в виде фор- мулы через отрицание, конъюнкцию и дизъюнкцию. ДОКАЗАТЕЛЬСТВО. Если f = 0, то f = хг • хг. Если f 0, то f(xi,...,xn) = у аф...аф. В частности, алгебра Линденбаума-Тарского совпадает с Р2. Пусть f ф 1. Тогда /Джь...,жп) = /(Tb...,Tn) ф 0. Представим /* в виде с.д.н.ф.. Имеем, /Дад,..., жп) = \] яф... аф. Следовательно, f (ац,..., хп) f(ri,...,rn)=0 /(т1,...,тп)=0 лученное представление функции / 1 в виде конъюнкции элементарных дизъюнкций называется совершенной конъюнктивной нормальной формой
4.2. Булевы функции 107 Например, если f - формула из предыдущего примера, то отметим сначала наборы, при которых f = 0 : (0.0.1), (1, 0, 0), (1, 0,1), (1,1, 0). По каждому набору строим элементарную дизъюнкцию: х± V Х2 V Тз, х± V Х2 V Хз, х± V Х2 V Тз, Xi V Х2 V Хз. Конъюнкция полученных дизъюнкций и будет с.к.н.ф. для /. Определения. 1) Пусть \/ С Р2. Множество функций [\/], состоящее из суперпозиций функций из \/, называется замыканием \/ . Если же \/ = [\/], то \/ называется замкнутым классом функций; 2) Пусть \/ - замкнутый класс. Подмножество В С \/ называется полным в \/, если [В] = \/; 3) Полное подмножество В замкнутого класса \/ называется базисом \/, если никакое собственное подмножество В не является полным в \/. Из теоремы 1 следует, что {ж, х-у, х\/у} - полная система функций в Р2. Так как ху = х\/у и ж V у = х-у, то {ж, х\/у} и {ж, х-у} тоже полные системы (при этом, являющиеся базисами в Р2). Так как, (ж|ж) = х и .г V у = (ж|ж)| (у\у), то {жф} - базис Р2. Заметим также, что 1) V — М; 2) [[V]] = М? 3) если \Д С \/2, то [Vi] — [V2]; 4) замыкание класса \/ = {ж} состоит из функций {xi,Xj} и не совпадает с \/. Так как х + 1 = х, то множество {0,1, Xi + ж2, Xi ж2} является полным и п его замыкание состоит из выражений вида ао + абВ + 12 dijXiXj + ... i=l Так как = 0,1, то число таких выражений от п переменных не превос- ходит 22”. Эти выражения называются многочленами Жегалкина. Учитывая, что | | = 22”, мы получаем следующую теорему. Теорема 2. Каждая функция из Р2 может быть выражена единствен- ным образом в виде многочлена Жегалкина. Например, Xi V .г2 = Xi + .г2 + Ж1Ж2 Xi —> .г2 = Ж1Ж2 + Xi + 1. Историческая справка. Жегалкин Иван Иванович (1869-1947) - со- ветский математик. Его магистерская диссертация "Трансфинитные чис- ла" (1907г.) была первой русской монографией по теории множеств. Исследо-
108 Глава 4. АЛГЕБРА ЛОГИКИ вал булевы функции и вопросы разрешимости (алгоритмические проблемы). 4.3. Теорема о полноте Приведем примеры некоторых замкнутых классов в Р^. 1. Пусть То = {/(яд, ..., Хп) Е Р^'-, /(0,..., 0) = 0} - множество функций, сохраняющих константу 0. Если /(я?1, ..., яд), /ц ..., fn Е То, то, подставляя в функцию ф = /(Ji,..., fn) вместо переменных константу 0, имеем Следовательно, То = [То] -замкнутый класс. Ясно, что 0, ж, яд • яд, х± V яд, яд + яд принадлежат То и (яд xf) Ть Каждая функция от п переменных из То однозначно определяется своими значениями на наборах, не равных (0, 0,..., 0) ( их число равно 2П — 1). Следовательно, число таких функций равно 22”-1. Из теоремы 2 предыдущего параграфа следует, что {яд + яд, яд яд} - базис Tq. Действительно, замыкание этого множества есть Tq. С другой стороны, очевидно, что яд • Х2 [яд + яд] и х± + яд [яд • яд]. 2. Пусть Ti = {f(xi,..., Хп) Е Р2; /(1,1,..., 1) = 1} - множество функ- ций, сохраняющих константу 1. Тогда, по аналогии с п.1, 7} - замкнутый класс, содержащий например, функции х± яд, 1,х и не содержащий х. Чис- ло функций от п переменных в 7} равно 22"/2. Укажем базис 7}. Ясно, что А = {яд • Ж2,Ж1 Х2} Т 7}. Имеем, яд V Х2 = (яд xf) Х2 Е [А]. Пусть /(яд,... ,Хп) Е Р\. Если / = 1, то f = х х Е [А]. Пусть / 7^ 1. Тогда представим f в виде с.к.н.ф. /(яд,..., хп) = Д (я;}1 V • • • V жД). Так как /(1,..., 1) = 1, то среди элементарных дизъюнкций отсутствует множи- тель (яд V яд V • • • V хп). В виду равенств яд V яд = Х2 яд, Х\ V яд V яд = (яд яд) V хз = яд (яд яд), яд V яд = (яд xf) яд, имеем, что, f Е [А], т.е. Ti = [А]. Так как яд • яд Е Т3, то яд яд [яд • яд]. Заметим, что для произвольной функции ц(яд,... , я;т) Е [яд Х2] существует пере- менная Xi такая, что д(яд,..., xm} > Х{. Так как (яд • Х2) этому условию не
4.3. Теорема о полноте 109 удовлетворяет, то х± • Х2 [яд ж2]. Итак, А = {яц • a;2,ж2} - базис Т\. 6. Пусть S = {/ G Р2;/* = /} = {/ G P2;/(Ti,...,Tn) = /(жь ... ,жп)} - класс всех самодвойственных функций. Ясно, что ж, х G S. Рассмот- рим функцию h(xi, Х2, х3) = Т1Т2 V т2тз V Т1Т3. Имеем, h*(xi, ж2, Хз) = щТ2 V Т1Т3 V Т2Т3 = (TiT2) • (Х1Т3) • (Т2Т3) = (яд V т2)(ф1 V т3)(р2 v жз) = (яц V £2£з)(#2 V Хз) = Т1Т2 V Т1Т3 V т2тз = h(xi, Х2, хз). Следовательно, h G S. Докажом, что [S] = S, т.е. S - замкнутый класс. Действительно, пусть Тогда ф* = Г(/ф ...,/•) = /•(/!• /„) = ф ё S. Так как для самодвойственной функции f G S выполняется равенство /(ащ..., ап) = f(&i,... ,ап), то самодвойственная функция однозначно определяется свои- ми значениями на первой половине строк своей таблицы истинности. Т.е. число всех самодвойственных функций, зависящих от п переменных равно 22" 1 = л/22”. Заметим, что (x + y + z),xy\/x-z\/yA G S и докажем, что функция x-y^x-zVy-z образует базис S. Пусть /(яц, ..., хп) G S. Тогда /(ац,..., хп) = X! • /(1, ж2,..., хп) V Ti/(1, Т2,..., хп). Функция д(ж2,..., хп) = /(1, ж2,..., хп) порождается функцией Шеффера х\у. Сле- довательно, f порождается функцией жДжф) V х±(Т|^) = Х]Х V х± -у\/ х -у. Итак, S = [щТ2 V Ж1Т3 V щТз]. Лемма 1. Пусть f(xi,..., Хп) S. Тогда из f путем подстановки функ- ций х их можно получить константу. ДОКАЗАТЕЛЬСТВО. Существует набор (qi, ... ,ап) такой, что /(«1,... ,сщ) = /(аь .. .,ап). Рассмотрим функцию g(x) = f(xai, ха2,..., хап). Тогда д(0) = ,/'(001...., 0°") /(«1,... ,ап) = /(«1,... ,ап) = , T'"J = - константа. Лемма до- казана. 4. Введем отношение частичного порядка на множестве n-ок Рп, где
110 Глава 4. АЛГЕБРА ЛОГИКИ Е = {0,1}. Скажем, что (ai,..., ап) < (Д,... ,/Зп), если ai < Д,... ,ап < /Зп. Функция /(яц, ..., хп) называется монотонной, если для любых наборов (аь ..., ап), (Д,..., фп) таких, что (аь ..., ап) < (фьфп), имеет место неравенство /(ai,...,an) < /(Д,..., фп). Обозначим через М множество всех монотонных функций. Проверим его замкнутость. Пусть /Аь ... ,xn),fi, ...,fnEM, , Ximi, . . . , Хп1,..., хптп) f (/i,..., fn) £ [ЗП]• Пусть a = (an, • • •, anmn) < ф = (Дь..., фПтп)- Тогда A A f (/1(оц, • • •, ainJ,..., /n(oni,..., суПГПп)) < < /(/ДДц • • •, АА, • • •, /п(Аь • • •, AnJ) = Ф(Ф) и ф G М. Следовательно, М - замкнутый класс. Ясно, что {ац V а?2, х± • ^2,0,1,ж} С М и х ф М. Докажем, что В = {ац V Х2, Xi • Х2, 0,1} - базис М. Пусть /(^1,... ,хп) Е М. Если п = 0, то f - константа и следовательно, f Е В. Предположим, что все монотонные функции от не более, чем (п— 1)-й переменной принадлежат [В]. Докажем, что f Е [В]. Имеем разложение / А1,..., хп) f (тц,..., xn—i V / Д1,..., xn—i 0)хп. Функции ip = /(^1,..., xn-i, 1) и ф = f(xi,..., жп_1, 0) являются суперпо- зициями монотонных и, следовательно, сами являются монотонными. Заме- тим, что f = ср • хп V ф. Действительно, пусть a = (ai,... , an) - такой на- бор, что фрхп V ф)(а) = 0. Тогда //ai,..., ап_Д = 0 либо ап = 0, либо 9?(ai,..., an_i) = 0. Следовательно /(а) = 0. Обратно, если /(/3) = 0, где Ф = (А, • • •, Фп)- Тогда у?(А, • • •,Фп-ФФп = о, ^(А, • • •,Фп-ФФп = о. Если фп = 0, то фрхп У ф)(ф) = 0. Если фп = 1, то ^(/Зь...,/3П_Д = /(А,... ,/3n-i, 1) = 0 > /(/31,... ,/Зп_1,0) = 0. Следовательно, (рхп V ф)(ф) = 0 и / = <рхп \/ ф. Далее, ^(жь ..., хп_ф = /(жь ..., жп_ь 1) >
4.3. Теорема о полноте 111 /(щ,..., xn-i, 0) = Д. Если р> = 0,то ф = 0 и f = 0. Если ф = 1, то f = 1. Если у = 1 и ?/’ = 0. то /' = хп. Если же ср или ф не являются константами, то по предположению индукции они будут принадлежать [В] и следовательно, f G [В], т.е. М = [В]. Так как {Ж1Ж2, Xi V Х2, 0} С То, то 1 [т1Ж2, Xi V а?2, 0]. Далее, так как {Ж1Ж2, Xi V а?2,1} Q Т\, то 0 Д1Ж2, Xi V а?2,1]- Если Т1Т2 G [a?i V а?2, 0,1], то можно считать, что в записи Ж1Ж2 в виде супер- позиции Xi V Х2,0,1 нет констант ( в виду тождеств у V 0 = у,у \/ 1 = 1). Но тогда Xi • Х2 G [a?i V Ж2]. Противоречие. Аналогично, Х\ V Х2 ф Д1Ж2, 0,1]. Таким образом, V #2, 0,1} - базис М. Лемма 2. Подстановкой констант 0, 1 и переменной х в немонотонную функцию можно получить х. ДОКАЗАТЕЛЬСТВО. Пусть /(Д1,..., жп) - немонотонная функция. Тогда существует такие два набора Q (<Т1, • • • > ОЦ—1, 0, СЦ-|-1, . . . , С1п), /3 (cil, • • • 1 — 1, С^г+1, • • • 1 С^пф что /(А) = 1, /(Д) = 0. Положим д(х) = f(ai,а^,х, ai+1,ап). Тогда д(0) = 1 и ц(1) = 0, т.е. д(х) = х. Лемма доказана. 5. Рассмотрим класс, т.н., линейных функций L = Т (iiXi + • • • + апхп] di = 0,1, i < //}. Ясно, что Xi V а?2, #1^2 ДЛиТ=ж+1бТ. Число всех линейных функций от п переменных равно 2n+1 и функции {1, Xi + Х2} образуют базис L. Легко видеть, что [L] = L,x.e. L - замкнутый класс. Лемма 3. Если f(xi,..., жп) L, то из нее путем подстановки кон- стант 0, 1 их,х, а также, может быть, путем навешивания отрицания над /, можно получить (яц • Х2). ДОКАЗАТЕЛЬСТВО. Запишем /(яц, ..., жп) в виде полинома Жегалкина п f (З'Ъ • • • •> %п) З- diXj З- CLijXjXj 3“ ’ ’ ’ 3“ ®12...п^'1>^'2 • • • i=l
112 Глава 4. АЛГЕБРА ЛОГИКИ где = 0,1. Так как f L, то можно считать, что f = хрХ2д(х%, ..., жп) + Ж1^(ж3,... ,жп) + ж2^(ж3,... , жп) + т(ж3,... ,ж„), где д ф 0. Выберем о3,... ,ап таким, что р(«з, • • •, an) = 1- Тогда /(ад, ж2, «з? • • •, ап) = хух^+аху+Ьх^+с = д(щ, ж2). Так как q(x\ + b, ./;2 + а) + ab + с = яця;2, то лемма доказана. Замкнутые классы Tq, Pi, S, М и L попарно различны. Это следует из ниже- следующей таблицы, где знак + означает, что функция содержится в классе, а знак — означает, что функция не содержится в классе. Американский математик Э.Пост доказал, что множество всех замкнутых классов Р2 является счетным и каждый замкнутый класс имеет конечный базис (Post Е., Two-valued iterative systems, 1941). Докажем следующую теорему о функциональной полноте. Теорема (Э.Пост). Система функций У Т Р является полной в Р^, т.е. [У] = Р2, тогда и только тогда, когда У не содержится ни в одном из пяти замкнутых классов То, Тц S, М, L. ДОКАЗАТЕЛЬСТВО. Необходимость. Если [у] = Р2 и, например, У С М, то Р2 = [\/] С [М] = М. Противоречие. Достаточность. Пусть /0 е V\T0,/i е \J \Tr, fs G V \S, fm G \/\M,fe G У \L. Если /о(1,1, • • •, 1) = 1, то p>(x) = /(ж,..., x) = 1 - константа и, под- ставляя ее в Ji, мы получим другую константу 0, т.е. 0,1 G [У]. Если же /о(1, • • • Д) = 0, то ср(х) = fo(x,...,х) = х Е [У] и по лемме 1, из fs можно получить константу. Так как х G [У], то обе константы 0,1 принадлежат [У]. По лемме 2, из fm с помощью констант мы можем построить х, т.е. х G [У]. По лемме 3 с помощью /е, 0,1 и х мы можем построить (яц • ж2). Следовательно, {0,1,Т, х\ ./;2} С [у] и Р2 = [У]. Теорема доказана. Из теоремы следует, что из всякой полной системы в Р2 можно выделить
4.4. Приложения функций логики высказываний 113 полную подсистему, содержащую не более 5 функций. Определение. Класс функций W С Р2 называется предполным (макси- мальным), если он не полный, но для любой функции f W класс W U {/} - полный. Следствие 1. В алгебре логики существует только пять предполных классов, а именно: 7b, Ti, S, М, L. Доказательство следует из теоремы о функциональной полноте (Э. Поста) 4.4. Приложения функций логики высказываний 1. Теория множеств. Пусть М - некоторое фиксированное множество и Ац ..., Ап - его подмно- жества. Тогда для любого a G М выражения a G А\,... ,а G Ап являются высказываниями. Если /(щ,..., жп) - формула алгебры высказываний, в за- писи которой встречаются операции •, V, —, то обозначим через f формулу теории множеств, полученную из f заменой Xi на (a G Ai),i < п. Напри- мер, если /(щ, ж2) = (ац V Т2) • х\ V ж2щ, то f = ((a G АД V (а G АД) • (а G АД V (а G АД (а G АД. Обозначим также через Zf выражение, получающееся из f заменой Xi на Ац • на П, V, на U и — на дополнение А = М \ А. Тогда Zf С М. Утверждение, f истинна для а Е М тогда и только тогда, когда а Е Zf- Доказательство проведем индукцией по числу вхождений символов опера- ций •, \/, — в /. Если это число равно нулю, то f = xiw.f = aE Ац Zf = Ац В этом случае наше утверждение очевидно. Пусть наше утверждение верно для всех формул, число вхождений операций в которые < п. Пусть число операций в / равно п + 1. Тогда f = В • С, либо f = В V С, либо f = В. Ввиду предположения индукции В (а) = 1 а Е Zb, С (а) = 1 ее а Е Zq-
114 Глава 4. АЛГЕБРА ЛОГИКИ Так как f = В • С или соответственно f = В V С, f = В, то, в виду соответ- ствующих равенств Zf = Z/> П Zc, или Zf = Z/> U Zc, или Zy = Zb, наше утверждение доказано. Следствие 1. Если f = д, то Zf = Zg. Следствие 2. Если f тождественно истинная (ложная) формула, то Zs = M(ZS = ф). Из следствия 1 следует, например, свойство дистрибутивности для подмно- жеств Ai П (А2 U A3) = (Ai П Аф) U (Ai П Аз), т.к. а • (b V с) = (а • 6) V (а • с). 2. Релейно-контактные схемы. Идея использовать булевы функции для построения автоматических устройств, основанных на релейно-контактных схемах, была высказана в 1901 г. физиком П.Эренфестом (см. Л.А.Калужнин, Что такое математическая логика, Наука, 1964). Большой вклад в этом направлении сделан советским физиком В.И.Шестаковым, американским математиком К.Шенноном и япон- ским инженером А.Накасима. В переключательной схеме, т.е. устройства, состоящего из переключате- лей и соединяющих их проводников, принимают во внимание два состояния каждого переключателя: замкнутое или разомкнутое (т.е. проводящее или непроводящее ток). Каждому переключателю —| Р |— поставим в соответ- ствие высказывательное переменное р, которое истинно, если переключатель В замкнутый и ложно, если В разомкнут. Схема —| р |—| Q |— проводит ток тогда и только тогда, когда конъюнкция р q истинна, а схема проводит ток тогда и только тогда, когда дизъюнкция (р V д) истинна. Пусть два переключателя В и Pi, работают в следующем режиме: если В замкнут, то Pi разомкнутый и наоборот. Тогда им соответствуют высказывательные переменные р пр. Каждой релейно-контактной схеме можно поставить в со- ответствие некоторую формулу алгебры высказываний и наоборот. Это поз-
4.4. Приложения функций логики высказываний 115 воляет упростить схемы. Например, рассмотрим следующую схему ГР -Р- 9^ —р q-------1 — г-t---q— I—p---q_i I—I Ей соответсвует следующая формула алгебры высказываний: А = р • (pq V q) V (pqt) V ((tq V pq) (t V q)). Эту формулу можно преобразовать. Именно, А = (pq V pq) V pqt V tpq V pq = p V pq = p V pq V pq = p V q. Следовательно, наша схема эквивалентна схеме I— Р УПРАЖНЕНИЕ. Упростить схему. --х-У--- г—Х—у^ X— —У— 3. Логические рассуждения. Введем, сначала, некоторые определения, используемые при формулиров- ке математических утверждений. Если некоторая математическая теорема формулируется в виде импликации А —> В, то А называется достаточным условием для истинности В, а истинность В называют необходимым услови- ем для истинности А. Пусть некоторое математическое утверждение записано в виде импликации А —> В. Тогда утверждения В —> А и А —> В называют соответственно обратным и противоположным к исходному. Легко проверить следующую эквивалентность, называемую правил им контрапозиции А В = В А.
116 Глава 4. АЛГЕБРА ЛОГИКИ Из этого правила следует, что для доказательства утверждения, сформули- рованного в импликативной форме, достаточно доказать противоположное обратному утверждению. Например, утверждение "Если в треугольнике ра- диус описанной окружности равен диаметру вписанной, то он равносторон- ний "эквивалентно утверждению "Если треугольник неравносторонний, то ра- диус описанной окружности не равен диаметру вписанной". Тождественно истинная формула алгебры высказываний (А В) • (А В) А оправдывает применение способа доказательства от противного, часто ис- пользуемого в математических рассуждениях. Утверждения типа "А необходимо и достаточно для В" можно выразить в виде формулы (А В)(В А). Если схема доказа- тельства утверждения А представляется в виде перебора конечного числа случаев, то этот способ доказательства выражается формулой [(Ai V А2 V • • • V Ап) • (Ai А) • (А2 А)... (Ап А)] А Рассмотрим, далее, следующие задачи. 1) Декан перед сессией издал распоряжение о том, что на экзаменах долж- но выполняться по меньшей мере одно из следующих условий: а) следует не пользоваться конспектами; б) если студент пользуется конспектом, то ему предлагается дополнитель- ная задача и он предоставляет экзаменатору реферат по дополнительным разделам данного курса; в) либо ему предлагается дополнительная задача, либо он предоставляет реферат по дополнительным разделам курса; Можно ли упростить эти условия? Введем следующие высказывания: А = "студент пользуется конспектом", В = "студенту предлагается дополнительная задача"и С = "студент предо-
4.4. Приложения функций логики высказываний 117 ставляет реферат". Тогда распоряжение декана можно записать в виде фор- мулы Av(A^B-C) V(BVC), которая эквивалентна А\/ А\/ В С VB V С = А\/ В V С = Л (В V С). Итак, вышеприведенные 3 условия можно заменить одним условием: если студент пользуется конспектом, то он либо решает дополнительную задачу, либо предоставляет реферат. 2) На вопрос, кто из трех студентов изучал логику, был получен правиль- ный ответ: если изучал первый, то изучал и третий. Но неверно, что если изучал второй, то изучал и третий. Кто же изучал логику? Рассмотрим простейшие высказывания щ = "г-й студент изучал логику", i = 1,2,3. Тогда Щ —> аз = 1 и(<12 аз) = 1- Следовательно, 1 = 1-1 = (щ аз)(й2 аз) = (щ V аз)(а2 V аз) = (щ V аз)(й2 • аз) = щ • <12 • аз. Итак, только второй студент изучал логику. 3) При составлении расписания уроков на один день учителя математики, истории и литературы высказали следующие пожелания: математик просил поставить первый или второй урок, историк - первый или третий; учитель литературы - второй или третий. Какие варианты составления расписания есть у завуча, если он учтет эти пожелания? Введем элементарные высказывания Xi = "предмет X поставить г-м уро- ком". Тогда требования математика, историка и литератора можно выразить соответственно в виде формулы: Mi V М2, Hi V В3, L2 V L3. Завучу предстоит выяснить истинность следующего высказывания 1 = (Mi \/ М2) (Hi \/Вз)(В2 V L3) = (М1Н3 V M2Hi)(L2 V L3) = M1H3L2 V M2H1L3. Таким образом, в рас- поряжении завуча есть два варианта составления расписания: "математика, литература, история"или "история, математика, литература". УПРАЖНЕНИЯ. 1. Решить булевы уравнения: а) х V у = Т; б) ах V bx = 1.
2. Проверить равносильность следующих релейно-контактных схем ^Х^ -У— ^z^ 3. Постройте релейно-контактную схему с заданной функцией проводимости 4. Упростить формулы (Т у) (у ж), ((ж у) х) у. 5. Верно ли равенство [дц V Ж2 V а?з] = РУ*. 6. Доказать, что а) х • у [Т, (х у)(у #)]; б) х у £ [х • у,х \/у\- в) х • у \х V у,х у]. 7. Доказать, что а) х у = х\(у\у); б) х\у = х\/ у- в) х + у = (х V у) V (х V у). 8. Студенты Иванов, Петров, Сидоров и Миронов решили провести ка- никулы в городах: Москва, Барнаул, Омск, Томск. В какой город должен поехать каждый из них, если имеются следующие ограничения: а) если Иванов не едет в Москву, то Сидоров не едет в Баранул; б) если Петров не едет ни в Москву, ни в в Томск, то Иванов едет в Москву; в) если Сидоров не едет в Томск, то Петров едет в Омск; г) если Миронов не едет в Москву, то Петров едет в Москву; д) если Миронов не едет в Барнаул, то Петров едет в Москву. УКАЗАНИЕ. Ввести простейшие высказывания: Ху = ”Х едет в У.”
Глава 5 ЭЛЕМЕНТЫ КРИПТОГРАФИИ 5.1. Примеры шифров Термин крипто графил ввел английский математик Д. Валлис (1616-1703). Его составляющими являются греческие слова: криптос - тайна, графейн - писать. Таким образом, криптография - тайнопись, или наука о шифрах. Кстати, термин шифр впервые был употреблен в XV веке в арабской энцикло- педии Шауба Аль-Аща (в этой книге рассматриваются подстановочные шиф- ры). Итак, криптография занимается разработкой методов преобразования информации с целью ее защиты. Дешифровка - преобразование шифрован- ного сообщения в исходную информацию. Соответствующий раздел науки, занимающийся разработкой методов дешифровки, называется криптоанали- зом. Греческий историк Плутарх (45-127) приводит пример использования шифровальных устройств (так называемых скитал или сцитал) греками во время войны Спарты против Афин (IV - V века до н.э.). Итак, скиталы - две палки одинаковой длины и толщины. Одну палку использовал источник информации, другую - адресат. Источник информации наматывал на свою палку ленту из папируса (не оставляя промежутков) и записывал сообщение на этой ленте вдоль оси скиталы. Лента разматывалась и отсылалась адре- сату, который брал такую же скиталу и, намотав на нее ленту, прочитывал посланное сообщение. В России в XIII веке использовалась так называемая тарабарская грамота, 119
120 Глава 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ смысл который в том, что в исходном сообщении гласные буквы не менялись, а согласные заменялись по схеме: Б Щ, В Ш, Г Ч, Д Ц, Ж Х,3<н-»ф,К<н-»Т, Л<н-»С,М<н-»Р, Н<н-»П. Например, известное латинское выражение "каждому CBoe"(cuique suum) шифруется следующим образом: ТАХЦОРУ ЛШОЁ. Перед тем, как перейти к изложению конкретных способов шифрования сообщений, отметим, что заметный вклад в криптографию внесли такие из- вестные ученые, как математик X. Гольдбах (за дешифровку писем иностран- ных послов императрица Елизавета Петровна пожаловала ему титул тайного советника), Ф. Виет, Д. Кардано, В. Валлис и философ Б. Бэкон. Способ 1. Квадрат Полибия Историческая справка. Полибий (200-120 до н.э.) - греческий историк. Рассмотрим таблицу 6 х 6 и расположим в её клетках буквы русского ал- фавита (их ровно 33) произвольным образом 1 2 3 4 5 6 1 А Б в Г д Е 2 Ё Ж 3 И й К 3 Л М н О п Р 4 С т У Ф X ц 5 Ч ш ттт Б ъ э 6 Ю я ы В результате каждая буква кодируется парой чисел (гД) или ij, где i - номер строки и j - номер столбца, на пересечении которых находится данная буква. Например, зашифруем фразу по ушам узнают осла: 35 34 43 52 11 32 43 23 33 11 61 42 34 41 31 11. Такой способ шифровки может быть использован путем перестукивания в тюрьмах (поэтому иногда он называется тюремной азбукой). Например, предложение Побег завтра передается (с интервалами) следующим образом:.......................................... Способ 2. Код Цезаря
5.1. Примеры шифров 121 Историческая справка. Цезарь Гай Юлий (100-44 до н.э.) — римский диктатор. В достаточно больших текстах, написанных на русском языке, каждая бук- ва встречается с определенной частотой, указанной в следующей таблице, в которой отождествлены буквы е и ё, а также ь и ъ. N Буква Относит, частота N Буква Относит, частота 1 а 0,062 17 Р 0,040 2 б 0,014 18 с 0,045 3 в 0,038 19 т 0,053 4 г 0,013 20 У 0,021 5 Д 0,025 21 Ф 0,002 6 е,ё 0,072 22 X 0,009 7 ж 0,007 23 Ц 0,004 8 3 0,016 24 ч 0,012 9 и 0,062 25 ш 0,006 10 й 0,010 26 Щ 0,003 11 к 0,028 27 ы 0,016 12 л 0,035 28 ь,ъ 0,014 13 м 0,026 29 э 0,003 14 н 0,053 30 ю 0,006 15 О 0,090 31 я 0,018 16 и 0,023 Выберем целые числа а и b так, что а является взаимно простым числом с 31. Предположим, что нам необходимо зашифровать сообщение М. Каждую букву этого сообщения заменяем на номер её вхождения в вышеприведен- ную таблицу. Затем каждый номер t заменяем на новый номер по правилу t at + b(mod31). Переводя эти новые номера в буквы таблицы, получаем шифрованное сообщение.
122 Глава 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ Пример 1. Зашифровать сообщение Иди вперед и вера придет, если а = 2, Ь = 3. Подставим в наше сообщение номера таблицы: 9, 5, 9, 3, 16, 6, 17, 6, 5, 9, 3, 6, 17, 1, 16, 17, 9, 5, 6, 19. Заменим каждый номер t на новый номер по правилу: t at + b(mod31). Получим новую последовательность номеров: 21, 13, 21, 9, 4, 15, 6, 13, 21, 9, 15, 6, 5, 4, 6, 21, 13, 15, 10. Заменяя эти номера буквами таблицы, получим зашифрованное сообщение: ФМФИГОЕОМФИОЕДГЕФМОЙ. Дешифровка производится действиями в обратном порядке. В процес- се дешифровки мы знаем номер с = at + b(mod31). Откуда следует, что t = а^31)-1(с — b)(jnod31), где </?(31) = 30 - значение функции Эйлера. Для более точной передачи информации нам могут потребоваться дополнитель- ные символы (например, запятая или вопросительный знак). В этом случае вписываем их в нашу таблицу. Если в таблице образовалось п символов, то секретные числа а и b выбираются так, чтобы (а, n) = 1 и о < b < п — 1. Номер t каждой буквы заменяется на новый номер по правилу t at + b(modn). Дешифровка сводится к решению сравнений вида at + b = c(modn). Известно, что решением этого сравнения является число t = а^-1(с — b)(modn), где 9?(n) - функция Эйлера. Пример 2. Зашифруем сообщение Если хочешь мира, готовься к войне, выбрав а = 3, b = 2 и присвоив ", "номер 32.
5.1. Примеры шифров 123 Заменим каждую букву сообщения на номер таблицы: 6, 18, 12, 9, 22, 15, 24, 6, 25, 28, 13, 9, 17, 1, 32, 4, 15, 19, 15, 3, 28, 18, 31, 11, 3, 15, 10, 14, 6. Заменим каждый номер t на новый номер по правилу t 3t + 2(mod32). Получим новую последовательность чисел: 20, 24, 6, 29, 4, 15, 10, 20, 13, 22, 9, 29, 21, 5, 2, 14, 15, 27, 15, 11, 22, 24, 31, 3, 11, 15, 32, 12, 20. Итак, в закодированном виде наше сообщение имеет вид: УЧЕЭГОЙУМХИЭФДБНОЫОКХЧЯВКО,ЛУ. Способы 1 и 2 относятся к так называемым подстановочным шифрам (или шифрам простой замены). Именно, при этих способах кодирования вместо каждой буквы ставится некоторый фиксированный символ. Это и есть сла- бое место в таких шифрах. Почему? Каждая буква русского (английского и т.д.) алфавита встречается с одинаковой частотой в достаточно больших текстах. Таблица частот указана в способе 2. Поэтому, если большой текст зашифрован подстановочным кодом, то, считая частоту каждого символа, используемого в зашифрованном тексте, мы можем дешифровать текст с по- мощью таблицы частот. Способ 3 (перестановочный код). Предположим, что нам необходимо зашифровать сообщение Орел не ловит мух. Выберем ключевое слово (например, Суриков), состоящее из различных букв и известное только нам и адресату. Рассмотрим таблицу с У р и к О в 6 7 5 2 3 4 1 О Р е л н е л О в и т м У X В ней ниже ключевого слова записаны числа, означающие порядок следова- ния соответствующих букв в алфавите. Запишем наш текст в таблице. Шиф-
124 Глава 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ рованным сообщением будет являться сообщение ЛХЛТНМЕУЕИООРВ, за- писанное по столбцам. Для дешифровки достаточно знать либо ключевое слово, либо число 675 2341. Задача 1. Пользуясь ключевым словом СУРИКОВ, дешифровать сооб- щение: ЛВТЕУЗПАСИАНЕТАНР. Задача 2. Пользуясь ключевым словом улица, дешифровать сообщение: ПИПТИЕРДДРЕИИЕВРВДАЕ. Задача 3. Пользуясь ключевым словом МОСКВА, зашифровать сообще- ние: Иди вперед и вера придет. Способ 4 (шифр Тритемиуса). Историческая справка. Аббат Тритемиус - автор первой (в Европе) пе- чатной книги о тайнописи, опубликованной в 1518 г. Предположим, что нам необходимо отправить сообщение Кто не идет впе- ред, тот идет назад. Выберем ключевое слово, например: март и запишем его под сообщением (с повторением): кто не идет вперед тот идет назад мар тм артм артмар тма ртма ртмар Подставим вместо каждой буквы ее номер в таблице (1): 1) 11, 19, 15, 14, 6, 9, 5, 6, 19, 3, 16, 6, 17, 6, 5, 19, 15, 19, 9, 5, 6, 19, 14, 1, 8, 1, 5; 2) 13, 1, 17, 19, 13, 1, 17, 19, 13, 1, 17, 19, 13, 1, 17, 19, 13, 1, 17, 19, 13, 1, 17, 19, 1, 3, 17. Сложив (по mod 31) соответствующие числа в первой и во второй строках, получим последовательность чисел: 24, 20, 1, 2, 19, 10, 22, 25, 1, 4, 2, 25, 30, 7, 22, 7, 28, 20, 26, 24, 19, 20, 31, 20, 21, 2, 22. Подставив вместо этих чисел буквы алфавита, получим зашифрованный текст: ЧУАБТЙХШАГБШЮЖХЖЬУЩЧТУЯУФБХ. Для дешифровки текста все действия делаем в обратном порядке. При этом из номеров букв зашифрованного сообщения мы вычитаем (по mod31)
5.1. Примеры шифров 125 номера букв ключевого слова. Задача 4. Пользуясь ключевым словом Барнаул, зашифровать сообщение Наступление на рассвете. Задача 5. Пользуясь ключевым словом код, дешифровать сообщение НБ- КЫАКХАЕЭЭУРАКПЩУ. Способ 5 (код Хилла). Данный способ предложен в работе Л.С. Хилла (L.S. Hill, Concerning certain linear transformation apparatas of cryptography, Amer. Math. Monthly, 1931. V. 38. p. 135-154). Предположим, что нам необходимо зашифровать сообщение Не под до- ждем, подождем. Поставим в соответствие запятой номер 32, а точке - 33. Возьмем ключевую матрицу А = и ключевой столбец b = 1 3 1 . Поставим вместо каждой буквы сообщения ее номер в таблице (1) и полученную последовательность натуральных чисел от 1 до 33 на разобьем В результате получим новую последовательность столбцов:
126 Глава 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ ' 10 1 ' 31 1 ' 2 1 32 ) ' 19 1 ' 2 1 ' 33 1 21 ич 7 20 ЧЧ 7 22 7 10 4 ) 7 30 ЧЧ 7 22 чч 7 13 5 7 Заметим, что при умножении и сложении матриц сложение и ум ноже- ние чисел, являющихся вхождениями в эти матрицы, происходит по mod 33. Этой последовательности соответствует зашифрованное сообщение ЙФФЯ- УЙБХЙ, ЙГТЮЙБХЙ. МД. / 3 4 \ Задача 6. С помощью ключевой матрицы А = е (^33)2x2 за- \ 5 7 / шифровать сообщение Мыслю, значит, я существую. ОТВЕТ: ОЦВИУКНЕ. ЗГИХНБ, ВЖЯШЦУЧС. Рассмотрим задачи, которые предлагались на олимпиадах по криптогра- фии и математике в Москве в 1991-1999 г. г. Задача 7. Каждую букву исходного сообщения заменим ее двузначным порядковым номером в русском алфивите согласно таблице АБВГДЕЁЖЗИЙКЛМН 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 ОПРСТУФХЦЧШЩЫЬЪ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 э ю Я 31 32 33 Полученную цифровую последовательность разбили (справа налево) на трехзначные цифровые группы (без пересечений и пропусков). Затем каж- дое из полученных трехзначных чисел умножим на 77 и оставим только три последние цифры произведения. В результате получилась следующая после- довательность цифр: 317564404970017677550547850355 Восстановите исходное сообщение. УКАЗАНИЕ. Для нахождения последней буквы исходного сообщения необ- ходимо решить сравнение
5.1. Примеры шифров 127 77ж = 355(тсЛ1000), где х - трехзначное число. Решая его, получим, что х = 615. Далее, решаем сравнения 77х = 850(тсЛ1000), 77х = 547(тсЛ1000) и т.д. В результате получим последовательность цифр: 121 332 252 610 221 801 150 111 050 615, которая соответствует сообщению: ключ шифра найден. Задача 8. Буквы русского алфавита занумерованы в соответствии с та- некоторая последовательность из п букв приведенного выше алфавита. Шиф- рование каждой буквы сообщения состоит в сложении (по mod 30) ее номера в таблице с номером соответствующей буквы ключевой последовательности. Прочтите шифрованное сообщение РБЬНТ СИТСЗЗЕЗОХ, если известно, что шифрующая последовательность не содержала никаких букв, кроме А, Б и В. УКАЗАНИЕ. Каждую букву шифрованного сообщения расшифровать в трех вариантах, предполагая последовательно, что соответствующая буква шифрующей последовательности есть буква А, Б или В. Шифрованное сообщение Р Б Б н п т с и т с р р Е 3 О X Вариант А П А ттт м О с р 3 с р п п д ж н ф Вариант Б О Я ш л н р п ж р п О О г Е м У Вариант В Н Ю ч к м п О Е п О н н в д л т Из таблицы следует следующее имеющее смысл сообщение: НАШ КОРРЕСПОНДЕНТ. Задача 9. В адрес олимпиады пришло зашифрованное сообщение:
128 Глава 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ ФВМЕЖТИВФЮ. Найти исходное сообщение, если кодирование его заключалось в том, что к порядковому номеру каждой буквы в русском алфавите (33 буквы) прибавля- лось одно из чисел f(xi) или /(#2), где /(ж) = х6 + Зт5 + т4 + х3 + 4т2 + 4т + 34 и Ti, Т2 - корни многочлена т2 + 3т +1, а затем полученное число заменялось соответствующей ему буквой. УКАЗАНИЕ. Заметить, что /(тД = /(Т2) = 2. ОТВЕТ: Так держать. Для полноты изложения приведем еще три исторических шифра простой замены. 1). Шифр Петра I для П.А. Толстого. АБВГДЕЖЗ ме ли ко ин зе жу ню о И пы К Л М Н ра су ти у ОПР хи от да С Е У Ф X Ц Ч чу ше ам з ъ от ь шщъыь эюя ю я ф а бе за гу ди Например, текст встреча завтра шифруется следующим образом: КОЧУШЕЦАЖУЬМЕОМЕКОШЕЦАТЕ. 2) Азбука Морзе (Самюэль Морзе (1791-1872) - американский художник, изобретатель) А •- й т - ы 1 — Б к У • • - Б — • • — 2 • • - В л ф Э 3 Г м X • • •• ю 4 . . . . д--- н — Ц я 5 • • • • Е • О ч [ . ] 6 - • • Ж Q п тэ ш и 7 - - О о •• И •• г • — • с • • • Ъ 0 О 9 - - 3). Парный шифр.
5.1. Примеры шифров 129 Рассмотрим ключевую фразу, содержащую не менее 16 различных букв русского алфавита. Например, 1 23 4567 8910 11 121314 1516 я из лесу вышел , был сильный мороз а гд ёжкп тфх ц чщэ юр Пронумеруем 16 различных букв в исходной ключевой фразе и под ними запишем те буквы, которые не были пронумерованы. Мы получим разбиение букв на пары. При шифровании мы заменяем каждую букву своим напарни- ком. Способ 6. Шифр Виженера. (Виженер (1523-1596) - французский посол в Риме; его шифр в течение почти 400 лет считался недешифруемым шифром). Рассмотрим латинский квадрат, составленный из букв русского алфави- та. Выбираем слово-лозунг и подписываем его (с повторением) над буквами сообщения. Чтобы получить шифрованный текст, находим очередную букву лозунга (начиная с первой) в первом столбце таблицы и соответствующую ей букву сообщения в первой строке. На пересечении соответствующих столб- ца и строки находится некоторая буква. Именно на нее мы заменяем букву исходного сообщения. Способ 7. Перенумеруем буквы русского алфавита по правилу А Б В ... Я 0 1 2 ... 30 (отождествляем е, ё и ь, ъ). Тогда каждой паре номеров (ж,?/) однознач- но соответствует число (ащ)з1 = 31ж + у, записанное в системе счисления с основанием 31. Например, зашифруем сообщение Наступление завтра. Для этого заменим буквы на номера: 14, 0, 18, 19, 20, 16, 12, 6, 14, 9, 6, 8, 0, 3, 19, 17, 0. Разбивая эти номера на пары и ставя в соответствие каждой паре (ж, у) число (ащ)з1, получим шифрованный текст:
130 Глава 5. ЭЛЕМЕНТЫ КРИПТОГРАФИИ 434, 577, 636, 378, 443,194, 3,606, 0. Способ 8. Рассмотрим нумерацию букв русского алфавита, указанную в предыдущем способе и выберем числа а, Ъ такие, что 1 < а < 960, 0 < b < 960 и (а, 961) = 1. В исходном сообщении заменяем каждую букву на соответствующий ей номер и паре номеров (ж, у) ставим в соответствие число (a-xy3l+b)(mod 312). Например, слову да соответствует пара (5, 0) или число (50)зх = 5 • 31 + 0 = 155. Если а = 2, b = 111, то шифруем слово да числом 2 • 155 + 111 = 421(morf 312). 5.2. Криптосистема RSA В 1978 году американские ученые R. Rivest, A. Shamir и L. Adleman изобрели криптосистему с открытым ключом. Предположим нам необходимо послать некоторое сообщение на русском языке. Присвоим буквам номера по правилу: А Б В ... Я промежуток между словами 10 11 12 ... 42 99 Такая нумерация удобней из-за однозначности восприятия букв (при ну- мерации в способах 7, 8 буква к нумеруется числом 10, которое может быть истолковано как БА). Тогда выражение познай себя записывается в виде 26 26 18 24 10 20 99 28 15 11 42. Выберем различные нечетные простые числа p,q и числа е, f такие , что ef = l(mod (/>(pq)). Числа п = pq и е являются открытыми. Они могут быть опубликованы в телефонной книге. Числа р, щ ф(п) являются секретными. Разбиваем наше сообщение на блоки, которые (если их рассматривать как числа) меньше п. Каждый блок b мы заменяем на число E(b) = be(mod п) - так называемый зашифрованный блок (encrypted block). Дешифровка блока Е(Ь) производится с помощью секретного ключа f по правилу (и по предложению 5 главы 3): Е(ЬУ = b1-1 = b(mod п). Например, пусть р = 149, q = 157. Тогда п = pq = 23393. Пусть е = 5. Тогда f = 13853
5.2. Криптосистема RSA 131 и ф(п) = (р — l)(g — 1) = 148 • 156 = 23088. Разбиваем наше сообщение на блоки: 2626, 1824, 10209, 9281, 511, 42. Заменяем каждый блок b на b5(mod 23393). В общем случае, если мы работаем с Ж-буквенным алфавитом, то выберем числа к и t такие, что Nk < п < N1, где п = pq. Тогда открытая текстовая единица сообщения - число в Zn = {0,1,..., п — 1}, записанное (как число) в системе счисления по основанию N. ПРИМЕР, Пусть N = 26, р = 281, q = 167, п = 46927, ффф = 46480, е = 39423, / = 26767. Тогда слово yes сначала записываем как число (24418)26 = 24 • 262 + 4-26 + 18 = 16346 G Zn, (263 < п), а затем шифруется по правилу 16346е = 21166(morf 46927). Точнее, преобразуем число 21166 = 1 • 263 + 5 • 262 + 8-26 + 2 = (1582)26 в буквы "BFIC". В данном примере к = 3, t = 4. Почему RSA-шифр является надежным? Так как <Дп) = (р — l)(g — 1), то р + q = п — ф(п) + 1 и (р + q)2 — 4п = (р — q)2. Следовательно, знание р, q имеет тот же порядок трудности, что и знание ф(п). Итак, чтобы взломать RSA-код, надо найти ффг), а это равносильно нахождению р, щ а эта зада- ча (при больших р, q) считается (практически) неосуществимой. Например, если р - 104-значное простое число, a q - 127-значное простое число, то п получается 231-значным числом и найти его разложение п = pq компьютер не в состоянии в течении десятков лет. ЗАДАЧА. Пусть п = 3552377 и ф(п) = 3548580. Найти разложение п = pq на простые числа. При пользовании RSA-криптосистемой необходимо обезопасить себя от тех, кто может воспользоваться твоим именем. Например, вкладчик посыла- ет банкиру свое сообщение т, пользуясь RSA-криптосистемой. Пусть рь, qi, - простые числа банкира и р, q - простые числа вкладчика. Пусть также пь = РьЯь, п = pq, п < пь и еьфь = ^(rrtod ффгфф, ef = \(mod ффФф. Числа
Пъ, п, еъ, е являются открытыми, а числа /, fb, ф(п)ъ, ф(п) являются се- кретными. Вкладчик сначала шифрует сообщение т своим секретным клю- чом: mi = m^mod п), 0 < mi < п, а затем открытым ключом банкира m2 = mftjnod пф), 0 < т? < пъ- Банкир расшифровывает m2 в следую- щем порядке: сначала своим секретным ключом m3 = m^tjnod пф), а затем открытым ключом вкладчика m = m| = тф?ье = me-f(mod п). Замечание. RSA-код опубликован в статье Rivest R.L., Shamir A., Adleman L.M. A method for obtaining digital signatures and public key cryptosystems, Communications of ACM, 1978, v. 21, p. 120 - 126. 5.3. Криптосистема без передачи ключей Пусть абоненты Ю и Д условились переписываться друг с другом. Для этого они выбирают (большое) простое число р и числа а,а,Ь,ф такие, что аа = Ъф = l(mod ффрфф 1 < а < (р — 2), 1 < /3 < (р — 2) и а, а - секретные ключи Ю, ф ф - секретные ключи Д. Пусть Ю посылает сообщение m (1 < m < (р — 2)) Д. Сначала он зашифровывает его по правилу mi = ma(mod р), 1 < mi А (р — 1) и посылает mi Д. Абонент Д зашифровывает mi по правилу m2 = mi(mod р) , 1 < m2 < (р — 1), и посылает m2 Ю. Абонент Ю шифрует его по правилу m3 = m^fjnod р) и посылает его Д. И, наконец, Д дешифрует m3, возводя его в степень ф. Действительно, mf = m^3 = 1пьф' = (пгаа)/36 = = цф>ь = т1+Ф(.р')3 = m(jnod р), где аа = 1 + ффрфф фЪ = 1 + ф(р)$.
Глава 6 ТЕОРИЯ КОДИРОВАНИЯ 6.1. Основные определения Рассмотрим множество А = {ai,..., ап}, состоящее из п элементов. Множе- ство А назовем алфавитом объема п, а его элементы будем называть сим- волами или буквами алфавита. Например, русские буквы образуют алфавит объема 33, а латинские буквы составляют алфавит объема 26. Последова- тельность из букв алфавита А длины т ар ... сцт назовем словом длины т. Определение [12]. Любое непустое множество слов, записанное в алфа- вите Д, называется кодом в этом алфавите. Мощность этого множества на- зывается объемом кода, а его элементы называются кодовыми словами. Код называется равномерным, если его кодовые слова имеют одинаковую длину т (т называется длиной равномерного кода). Упражнение. Доказать, что объем равномерного кода длины т не пре- восходит Пт = 2,т1°92П_ Пусть X = {a?i,..., хе} - конечное множество. Скажем, что X является дискретным ансамблем сообщений, если на X задано распределение вероят- ностей р(ж), т.е. каждому элементу Xj Е X, i < е, сопоставлено число _________________________ е p(xi). При этом p(x-i) > ОД = 1,е и = 1. Каждому подмножеству i=i 133
134 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Y С X сопоставим вероятность (число) xeY Определение [12]. Произвольное отображение 7? : X К дискретного ансамбля X в код К алфавита А называется кодированием X. Пример 1 [12]. Предположим, что на телеграфе имеется автоматическая обработка телеграмм, с объемом запоминающегося устройства, равным N двоичным ячейкам. Рассмотрим 2 способа кодирования телеграмм: побук- венное и кодирование целых слов. В первом случае каждой букве русского алфавита (будем отождествлять буквы ь, ъ) ставится в соответствие слово длины 5 в алфавите {0,1}, равное номеру этой буквы в русском алфавите, ко- торый записывается в двоичной системе счисления. Например, а (00001), б (00010), в (00011), г (00100). Мы получаем однородное кодирова- ние. Если допустить, что каждая телеграмма в среднем содержит 20 слов, а средняя длина слова 5 букв, то в запоминающее устройство можно записать Ж/500 телеграмм. Во втором случае можно составить словарь из 213 = 8192 слов, которые обычно используются при составлении телеграмм. Каждому такому слову в русском языке можно поставить в соответствие слово длины 13 в алфавите {0,1}. Ясно, что в запоминающее устройство можно записать Ж/260 теле- грамм (т.е. объем памяти запоминающего устройства при втором кодирова- нии почти в два раза больше). Определение [12]. Код называется декодируемым (или префиксным), ес- ли ни одно кодовое слово не совпадает с началом другого кодового слова. Например, равномерный код декодируемый. Замечание. Существуют непрефиксные коды, допускающие однозначное разделение последовательности букв на кодовые слова.
6.2. Однозначно декодируемые коды... 135 Задача 1. Сколько существует двоичных слов длины п, не содержащих несколько нулей подряд? УКАЗАНИЕ. Ясно, что нулей q = п — t <п/2. Удалив из каждого такого слова по одной единице между любыми соседними нулями, мы получим слово длины n — (g — 1), содержащее ровно q нулей. Это соответствие биективно. Поэтому искомое число равно С^_ +1 = С^. Задача 2. Используя код Цезаря, декодировать криптограмму: елфиррлм феихоюм зиря носрофв н еиыиуц рсксеюи хцынл фхсво- леюфснс е вфосп риди л нгкгося ри тоюол плпсг цшсзлол е фгпцб жоцдя огкцул 6.2. Однозначно декодируемые коды. Неравенство Крафта. Оп- тимальное кодирование Хаффмена Для уменьшения длины кодового текста и с целью экономии времени его передачи сообщения, встречающиеся чаще, кодируют словами меньшей дли- ны, а редкие сообщения кодируют словами большой длины. Отчетливо это видно на примере азбуки Морзе. Рассмотрим произвольный ансамбль сооб- щений А = {Иц ..., Ап} с набором вероятностей F(Ai) > > Р(А2) > • • • > п Р(АП), ^2 = 1. Применим т.н. алгоритм кодирования Фано. Разобьем i=l множество А на две группы так, чтобы суммы вероятностей сообщений каж- дой из двух групп были как можно более близки друг к другу: Припишем сообщениям 1-ой группы Ai символ 0, сообщениям из группы Az ~ символ 1. По этому принципу каждая из групп Ai, А2 разбивается на два множества: Ai = А[ U Д", А% = Д2 U Д2. Припишем сообщениям из А[ символ 00, из А" - символ 01, из Д'2 - символ 10, из Д2 - символ 11. Продол- жаем данный алгоритм до получения множеств, состоящих из 1 сообщения.
136 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ В результате каждому сообщению ставится в соответствие кодовое слово из О и 1. Чем больше вероятность Р((р) сообщения Ai, тем короче будет соответ- ствующее кодовое слово. Указанный алгоритм может быть интерпретирован на языке теории графов. Именно, первый шаг алгоритма Фано соответствует графу (дереву): Ai Л-2 Второй шаг соответствует графу: В результате мы получим кодовое дерево Фано нашего ансамбля (множе- ства) сообщений. Разберем пример. Пусть дано множество А = {Ai,..., А7} из 7 сообщений, вероятности которых равны соответственно Pi = р% = = 1/4, рз = р4 = р5 = 1/8 и р6 = р7 = 1/16. При первом разбиении Ai = {Ai, Д2}, Л2 = {A3, Д4, Д5, Ав, А7}. При втором разбиении A( = {Ai}, Д" = {А2}, А(> = {A3, Д4}, Л2 = {Д5, Аб, А7}. Продолжая аналогичные разбиения с множествами Д(> и Л2, мы получаем следующее дерево и соответствующие кодовые слова: а) Ав А7 А5 о\/1 Аз А4 У/ ° 1 / Ai А2 ох*//1 I / о
6.2. Однозначно декодируемые коды... 137 б) сообщения Л А? Аз а4 Аз •Д 4.7 кодовые слова 00 01 100 101 по 1110 1111 Покажем экономность вышеприведенного кодирования Фано примера из семи сообщений {Ai,...,A7} по сравнению с равномерным кодированием: Ai ООО, Л2 001, А3 010, А4 011, А5 100, А6 ПО, А7 101. Действительно, если нам предстоит передать текст, состоящий из 1000 сообщений в алфавите {А±,..., А7}, то при равномерном кодировании мы используем 3000 двоичных символов, а при кодировании методом Фано мы используем 250 • 2 + 250 • 2 + 125 • 3 + 125 • 3 + 125 • 3 + ^ • 4 + ^ • 4 = 2625 двоичных символов. Критерием экономности кода является т.н. средняя длина кодового слова N ё = i=l где Ц - длина кодового слова для А^ Для нашего примера ё= 2 1 + 2 • i + У + А 2 = 2| « 2,62. Упражнение 1. Закодировать двоичным кодом Фано следующие множе- ства сообщений, найдя соответствующую среднюю длину и построив кодовое дерево: а) десять сообщений с вероятностями Pi = И = 0, 22; р3 = р4 = р5 = р6 = 0,1; р7 = р8 = рд = р10 = 0, 04; б) четыре сообщения с вероятностями И = 0, 5; р2 = 0, 25; р3 = р4 = 0,125. Выяснить выигрыш по сравнению с равномерным кодированием. Применяя в алгоритме Фано разбиение не на две группы с одинаковыми суммарными вероятностями, а на d равновероятных групп, мы придем к ко- дировке сообщений алфавитом из d символов. Соответствующее дерево имеет в каждой вершине не более d ребер.
138 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Упражнение 2. Закодировать троичным кодом Фано 9 сообщений с веро- ятностями 1/3, 1/9, 1/9, 1/9, 1/9, 1/9, 1/27, 1/27,1/27. Упражнение 3. Закодировать троичным кодом Фано 8 сообщений с веро- ятностями 0,3; 0,15; 0,15; 0,15; 0,07; 0,07; 0,07; 0,04. Кодирование методом Фано является неравномерным. Ясно, что неравно- мерное кодирование приводит порой к неоднозначности декодирования. На- пример, если сообщения А± и А^ кодируются соответственно 1 и 11, то ко- дированная последовательность 111 может быть дешифрована одним из сле- дующих способов: {Ai, Аг}, {Аг, Ai}, {Ац Ai, Ai}. Если код удовлетворяет условию, что каждая последовательность кодовых символов единственным образом разбивается на кодовые слова, то такой код называется однозначно декодируемым (или кодом без запятой). Примерами таких кодов является любой равномерный код, а также префиксный код (т.е. код, в котором никакое кодовое слово не является началом другого кодово- го слова). Код Фано является префиксным, так как кодовые слова соответ- ствуют концевым вершинам кодового дерева. Более того, этот двоичный код является полным, т.е. добавление любого нового кодового слова в данном алфавите нарушает свойство префиксности. Упражнение 4. Доказать, что соответствующие коды являются одно- значно декодируемыми и не являются префиксными {1,10},{01,10,011}. Пусть V = {ai,..., O/v} - некоторый префиксный двоичный код. Из пре- фиксности следует, что V - концевые вершины некоторого (двоичного) графа (дерева)
6.2. Однозначно декодируемые коды... 139 Пусть пк - число кодовых слов длины к, т.е. пк - число вершин к-ого этажа. Ясно, что пк < 2к. Так как из каждой вершины г-го этажа вырастает (априори) 2к~г вершин к-oro этажа, то в случае префиксного кода имеем неравенства пк < 2А' — 2к ХП1 — 2к 2П2 — • • • — 2 • nk-i ______ 2 + 22 Н Н 2к Если I - максимальная длина кодовых слов, то получаем так называемое неравенство Крафта (1)- 12 < 1 или 2^ + 2^ -------2^ < 1, где Ц - длина сц, i < N. i=i Обратно, если выполнено неравенство (1), то существует префиксный код с длинами кодовых слов /1, /2, • • •, In- Из (1) следуют неравенства: ni < 2, п? < 4 — 2п1, п3 < 8 — 4п1 — 2п2, .... На первом этаже двоичного дерева вы- берем ni вершин, на 2-м этаже выберем произвольные п?, вершин, исходящие из свободных (невыбранных) вершин первого этажа и т.д. Соответствующие двоичные кодировки образуют искомый префиксный код. Упражнение 5. Префиксный код является полным тогда и только тогда, УКАЗАНИЕ. Воспользоваться интерпретацией кода как двоичной записью концевых вершин некоторого графа (дерева). Замечание. Аналогично доказывается, что в алфавите из d символов су- ществует префиксный код с длинами кодовых слов ei,..., едг тогда и только тогда, когда Ч-----Н < 1.
140 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Префиксный код Фано не является (в общем случае) оптимальным в том смысле, что средняя длина кодовых слов не является минимальной. Рассмот- рим метод кодирования, принадлежащий Д. Хаффмену (1952 г.) и дающий префиксный оптимальный код. Рассмотрим ансамбль (множество) сообщений Л = {Ai,..., Адг}, вероятности которых равны соответственно щ,р25 • • • ,Pn- При этом можно считать, что pi > > • • • > рм- Предположим, что эти сообщения закодированы в двоичном алфавите словами щ, <125 • • • 5 Фа, длины которых равны соответственно /1, /2? • • • An- Если li+t < ф то, поменяв кодо- вые обозначения для Ai и A^+i, мы получим, что средняя длина уменьшится на величину Pik “1“ Pi+Ai+t pAi+t Pi+Ai — (Pi Pi+t)(k ^г+t) Д 0. Таким образом, при pi+t < pi мы можем уменьшить среднюю длину, если li+t < k- Если pi = pi+i и Ц+1 < /д то переставим сообщения Ai и Ai+i местами (и соответственно переставим их кодовые слова). В результате указанных действий мы, стремясь к оптимальности кодирова- ния, можем так упорядочить наши сообщения Ai,..., Адг и так изменить по- рядок кодирования словами {щ}, что pi > р% > > Pn и /1 < /2 А • • • < In- В частности, сообщение Адг кодируется словом наибольшей длины /дг. Если такое слово является единственным (т.е. In-i < In), т0, отбрасывая послед- ний символ слова ад (длины /дг), мы получим префиксный код с меньшей средней длиной. Если lt = lt+i = • • • = /дг, lt_i < lt и среди слов щ,..., адг нет слов, отличающихся от ад последним символом, то опять, отбрасывая в слове ад последний символ, мы получим префиксный код с меньшей длиной. Если же слово as(s < N — 1) имеет ту же длину /дг (т.е. ls = ls+i = • • • = /дг) и отличается от ад последним символом, то, меняя местами кодовые слова а3 и адг-i, мы можем считать, что два последних слова наибольшей длины адг_1,адг отличаются только последним символом.
6.2. Однозначно декодируемые коды... 141 Вернемся к нашему исходному множеству сообщений А = {Ац А2,..., An_ 1, Адг}, где pi = p(Ai),i < N. Рассмотрим его сжатие = {Ац А2, • • •, Адг_2, A}, где p(Ai) = pi, i < N — 2 и p(A) = Pn-i + Pn- Пусть для построена кодировка КА = {аца2, • • • , адг_2,а}, т.е. кодовое дерево с концевыми вер- шинами ai,, адг_2, а. Сопоставим исходной системе Л следующую систему кодовых обозначений К = {ац ..., адг_2, аО, al}, т.е. адг_1 = аО,адг = al. Такое сопоставление называется расщеплением. Лемма. Код К является оптимальным для системы Л, если код КА был оптимальным для системы ДОКАЗАТЕЛЬСТВО. Предположим противное. Тогда существует код си- стемы Ki системы Л, для которого средняя длина li = l(Ki) < l(K) = I. Пусть Ki = {bi,..., Av—1,Ьы}. Согласно предыдущим замечаниям мы мо- жем считать, что Av-1 и &дг _ кодовые слова для наименее вероятных со- общений Адг-1 и Адг- Причем они отличаются только последним симво- лом, т.е. Ьы-г = Ь0,Ьм = Ы (или Ьм-i = 61, Av = ЪА). Рассмотрим код Кр') = {А, • • •, Av-2,&} для Имеем A = l'1+p (][ = /(К^)). Так как < / и I = Г + р (где Т = /(К(1))), то А < I . Противоречие. Согласно лемме, мы, используя несколько раз сжатие множества сообще- ний (соответственно, расщепление кодовых обозначений), можем построить оптимальный код (сначала сжимая, а потом расширяя). ПРИМЕР 1.
142 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ сообщ. А вероят- ности сообщ. А^ вероят- ности сообщ. аа вероят- ности средняя длина Л 0,5 0 Л 0,5 0 Л 0 0,5 А-2 0,25 10 А-2 0,25 10 А 1 0,5 1,75 Аз 0,125 по А 0,25 11 Л 0,125 111 ПРИМЕР 2. (Пример сжатия по алгоритму Хаффмена) Исходный текст содержит 39 знаков (знаки препинания удалены, пробел заменен подчеркиванием): в _ лесу _ родилась _ елочка _ в _ лесу _ она _ росла По этому тексту получаем следующую статистику: в 2, 7, л 5, е 3, с 4, у 2, р 2, о 4, д 1, и 1, а 4, ь 1, ч 1, к 1, н 1. Расположим эти знаки по убыванию частот: 7, л 5, с 4, о 4, а 4, е 3, в 2, у 2, р 2, д 1, и 1, ь 1, ч 1, к 1, н 1. Применение алгоритма Хаффмена дает: 7, л 5, с 4, о 4, а 4, е 3, в 2, у 2, р 2, кн 2, д 1, и 1, ь 1, ч 1 д - 001100, к - 10110, и - 001101, н - 10111 7, л 5, с 4, о 4, а 4, е 3, в 2, у 2, р 2, кн 2, ди 2, ь 1, ч 1 ь - 001110, ч - 001111, и - 001101 7, л 5, с 4, о 4, а 4, е 3, в 2, у 2, р 2, кн 2, ди 2, ьч 2 ди 00110, в 1000, ьч 00111, у 1001 _ 7, л 5, с 4, о 4, а 4, ву 4, ркн 4, диьч 4, е 3 е — 0010, р — 1010, диьч = ООП, кн = 1011 _ 7, диьче 7, л 5, с 4, о 4, а 4, ву 4, ркн 4 _ — 000, диьче — 001, л = 010, о = 110, с = 011, а = 111, ву = 100, ркн = 101 вуркн 8, оа 8, _ 7, диьче 7, л 5, с 4 вуркн — 10, оа — 11, _ — 000, диьче = 001, л = 010, с = 011
6.3. Примеры кодов, исправляющих ошибки 143 лс 9, вуркн 8, оа 8, _ 7, диьче 7 лс — 01, вуркн — 10, оа = 11, _ = ООО, диьче = 001 _ диьче 14, л с 9, вуркн 8, оа 8 _ диьче — 00, лс — 01, вуркн = 10, оа =11 вуркноа 16, _ диьче 14, лс 9 вуркноа = 1, _ диьче = 00, лс = 01 _ диьчелс 23, вуркноа 16 _ диьчелс = 0, вуркноа = 1 Итак, мы имеем следующие кодовые последовательности: _ 000, л 010, с 011, о 110, а 111, е 0010, в 1000, д 001100, и 001101, ь 001110, ч 001111, у 1001, р 1010, к 10110, н 10111. Подставляя эти кодовые обозначения в исходный текст, получаем следую- щий двоичный текст: 1000 000 010 0010 011 1001 000 1010 110 001100 001101 010 111 011 001110 000 0010 010 110 001111 10110 111 000 1000 010 0010 011 1001 000 110 101111 11 000 1010 110 011 010 111 При равномерном кодировании нам потребуется 39 • 5 = 195 битов или немного меньше 25 байтов. При кодировании по Хаффмену мы использовали 139 битов или примерно 17 байтов. Упражнение 6. Закодировать двоичным кодом Хаффмена множество со- общений с вероятностями: а) 0,4; 0,15; 0,15; 0,15; 0,15; б) 0,25; 0,2; 0,15; 0,15; 0,15; 0,1. 6.3. Примеры кодов, исправляющих ошибки Машинистка, печатая некоторый текст на русском или английском языке, может сделать опечатки. Это обычно не мешает нам восстановить правиль- ный текст. И связано это с избыточностью языка. Например, избыточность
144 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ английского языка равна 70% ([10]). При передаче закодированной информа- ции могут возникать помехи, которые исказят передаваемую информацию. Поэтому необходимо уметь выявлять ошибки при передаче сообщений. Это делается за счет избыточности передаваемой информации. Сначала мы рас- смотрим схему (модель) передачи закодированного сообщения Исходная информация с помощью преобразователя преобразуется в по- следовательность двоичных символов, затем передается в кодер, где в неё вводится избыточность. Модулятор преобразует передаваемые ему символы в сигналы, которые, в свою очередь, передаются по каналу. В процессе пе- редачи сигналы подвергаются воздействию помех и шумов. Возникают ис- кажения. Демодулятор преобразует искаженные (неискаженные) сигналы в последовательность двоичных символов. Декодер, используя избыточность символов, обнаруживает и исправляет ошибки. Рассмотрим примеры кодов, обнаруживающих ошибки. Пример 1. Рассмотрим канал, по которому за время % передается один импульс типа "Сили "1". Вероятность ошибки равна р. Каждый символ а передается по каналу пять раз, т.е. в виде импульсов ааааа. При приеме по- лученную последовательность разбивают на блоки (по 5 символов в каждом).
6.3. Примеры кодов, исправляющих ошибки 145 Если вероятность С3р3(1 — р)2 + С-рЧ! — р) + /Р мала, то блоки, содержащие не более двух 0 (из 5 возможных), декодируются как 11111, а блоки, содер- жащие не более двух 1, декодируются как 00000. Недостатком этого способа является большой объем времени (передача одного бита информации требует 5 • to времени). Задача 1. Пусть передаются по каналу п символов и вероятность ошибки при передаче равна р. Доказать, что вероятность к ошибок равна Скрк(1-р)п~к. Пример 2. Предположим, что мы имеем Ск сообщений. Каждому сообще- нию поставим в соответствие последовательность длины п из 0 и 1, в которой число 1 равно к. Такое кодирование называется равновесным. Например, за- кодируем первые 10 чисел (цифр) 0 (000 11) 1 (001 01) 2 (001 10) 3 (010 01) 4 (010 10) 5 (011 00) 6 (100 01) 7 (100 10) 8 (101 00) 9 (110 00) Здесь С2 = 10. Возникновение одной ошибки при передаче такой последо- вательности приводит к блоку из 5 символов, в котором либо одна 1, либо 3 единицы, т.е. мы обнаруживаем наличие ошибки, не зная, в каком месте она произошла. Пример 3. Рассмотрим множество сообщений мощности не более 2П. Каж-
146 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ дое сообщение закодировано в виде последовательности из 0 и 1. •> • • • •> dn) • Введем дополнителный символ an+i, удовлетворяющий условию an+i = = п ai(mod2). Вместо последовательности (щ,..., ап) будем передавать после- i=l довательность (ai,..., ап, an+i). Число единиц в новой последовательности является четным. Если при передаче произошло нечетное число ошибок (в частности, одна ошибка), то число единиц в переданной последовательности 7 • • • 7 ®п+1) является нечетным. Т.е. этим способом "проверки на четность "мы можем обнаружить только существование ошибок, если их число нечетное. Задача 2. Предположим, что множество сообщений имеет мощность не более 104. Поставим в соответствие каждому сообщению а натуральное чис- ло abed, т.е. а abed, a,b,c,d Е {0,1,...,9}. Вместо передачи по каналу последовательности abed будем посылать abede, где (е + а + 5 + с + Ф) = = 0(то<79). Что позволяет обнаружить такое кодирование при передаче? ОТВЕТ: Мы обнаружим, что либо ошибки нет, либо 0 заменена на 9, либо цифра 9 заменена на 0, либо число ошибок не менее двух. Пример 4 (R.W.Hamming, 1950). Приведем пример кода, исправляющего одну ошибку в словах длины 7, содержащих 4 бита информации. Именно, предположим, что нам необходимо передать последовательность (а, Ь, с, Ф) из нулей и единиц. Рассмотрим вектор
6.3. Примеры кодов, исправляющих ошибки 147 где ж + а + & + <7 = 0, 7/ + a + c + rf = 0, ^ + & + с + <7 = 0. Запишем эти условия в матричном виде. Пусть /10101014 Я = 0 110 0 11 0 0 0 1 1 1 1 ? матрица, в которой i—й столбец имеет такие вхождения r,s,t, что i = г • 2° + s • 21 +1 • 22 = (Яг)2, т.е. это цифры в двоичной записи числа i. Тогда Н -С = 0. Пусть получатель получает на выходе вектор Если р - вероятность ошибки при передачи одной цифры, то вероятность того, что при передаче С допущено не более одной ошибки, равна v = (1 — р)7 + 7(1 — р)6 -р. Например, если р = 0,1, то v = 0, 998. Если v - вероятность близка к 1, то у нас есть уверенность, что вектор R отличается от С не более, чем на одно вхождение (одну координату). Рассмотрим Е = R — С. Тогда HR = НС + НЕ = НЕ. Если R = С, то Е = 0 и НЕ = 0. Если R С, то Е - вектор-столбец, в котором одна координата равна единице, а остальные равны нулю. В этом случае НЕ - столбец Я, номер i которого в Я совпадает с номером координаты, равной 1 в Я. Например, если
148 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ 0 110 0 11 Упражнение 1. /1 \ а) Если R = б) если R = 1 1 0 0 1 /10101014 у 0 0 0 1 1 1 1 у то проверить, что Н • R = 1 0 0 1 0 О
6.4. Примеры кодов, исправляющих... 149 в) если R = О 1 О ТО н • В = 0 и С = R- г) декодировать слово (вектор) О 1 1 О 1 1 6.4. Примеры кодов, исправляющих ошибки (продолжение: код Боуза-Чоудхури-Хоквингема) Пример 5 (Bose-Chaudhuri-Hocquenghem, 1960). Предположим, что нам необходимо передать получателю слово (а, Ь, с, d), где a,b G {0,1}. Рассмотрим поле GF(8) = Z^x]/^3 + х + 1) = = (0,1, о, Q2,..., а6), где а = х. По лемме о делении с остатком существу- ют многочлены q(x) и г(х) такие, что ах6 + Ьх5 + с.г1 + dx3 = (х3 + х + 1)д(ж) + г(ж), где г(ж) = rx2 + sx + t. Положим С(х) = ах6 + Ьх3 + сх3 + dx3 + rx2 + sx+ Rt. Вместо (a, b, c, d) будем передавать последовательность (a, &, c, rf, r, s, t). Предположим, что на выходе получатель получает последо- вательность (А, В, С, В, В, В, Т) и число ошибок не превосходит одной. Ука-
150 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ жем алгоритм ее обнаружения. Рассмотрим многочлен R(x) = Ах6 + Вхъ + Сх4 + Dx3 + Rx2 + Sx + T. Пусть Е(х) = С(х) — R(x). Тогда либо Е(х) = 0, либо Е(х) = хе, где (е + 1) - номер координаты, содержащей ошибку (если считать справа). Если 77(a) = 0, то Е(а) = С*(а) — 77(a) = 0, и ошибки нет. Если R(a) = ае, то 77(a) = Е(а) = ае и (е + 1) - номер ошибочной координаты. Например, закодируем последовательность (1, 1, 0, 1). Имеем х6 + х5 + х3 = (х3 + х + 1)д(ж) + 1. Следовательно, С(х) = х6 + х5 + х3 + 1. Кодер выдает последовательность (1, 1, 0, 1, 0, 0, 1). Если получатель получает, например, последовательность (1, 1, 0, 1, 1, 0, 1), то R(x) = х6 + х5 + х3 + х2 + 1 и R(a) = а6 + а5 + а3 + а2 + 1 = = (а2 + 1) + (а2 + а + 1) + (а + 1) + а2 + 1 = а2, т.е ошибка произошла в пятом символе, считая слева. Упражнение 1. Закодировать сообщения: а) (1, 0, 0, 0); б) (0, 1, 1, 0); в) (1, 1, 1, 0). Упражнение 2. Декодировать сообщения: а) (1, 1, 1, 0, 0, 0, 1); б) (1, 0, 1, 1, 0, 1, 1); в) (0, 1, 0, 1, 0, 1, 0). Пример 6 (Bose-Chaudhuri-Hocquenghem, 1960). Рассмотрим способ ко- дирования сообщений длины 7, позволяющий исправлять две ошибки. Для этого рассмотрим поле GF(16) = Z2[Д/(ж4 + х + 1) = (0,1, а, а2,..., а14), где а = х и а4 = а + 1,а5 = а2 + а,а6 = а3 + а2,а7 = а3 + а + 1, а8 = а2 + 1,а9 = а3 + а,а10 = а2+а+1,ап = ot3-|-ot2-|-ot, а42 = а3_|_а2_|_а_|_ 1, а43 = а3+а2 + 1,а14 = а3-!-!.
6.4. Примеры кодов, исправляющих... 151 Найдем минимальный многочлен для а3. Имеем 1 • Q3 = Q.|_|_Q.q/_|_Q. q/2 _|_ I . q3 , (T • Q3 — 1 • 1 T 1 • Q T 0 • Q2 -|- 0 • Q3, Q2 • q3 — Q . 1 _|_ 1 . q/ _|_ 1 . q/2 _|_ q . q/3 , Q3 • q3 — Q . 1 _|_ Q . q/ _|_ 1 . q,3. ( 0-Q3 0 0 1 \ 1 1 Откуда следует, что 1 0 1 — Q3 1 0 1 — Q3 0 0 а а2 0 0 1 1 - Q3 ) Q3 Следовательно, определитель матрицы равен нулю, т.е. (—а3) • (1 — а3)3 — 1 = 0. Таким образом, а3 - корень многочлена f = t(l - t)3 - 1 = С + 3t3 + 3t2 + t + 1 = C + t3 + t2 + t + 1. Многочлен /(ж) является неприводимым. Поэтому многочлен д(х) = (ж4 + х + 1)/(ж) = х3 + х7 + х6 + ж4 + 1 является многочленом наименьшей степени, корнями которого являются а и а3. Так как ц(а2) = р(а)2 = 0, то а, а3, а2, а4, а6 - корни многочлена д(х'). Рассмотрим информационное слово длины 7 (<114, (113, • • • , CLg). Разделим многочлен СДж) = (iii.r11 + ацзж13 + • • • + а$х8 на д(х) с остатком СДФ) = р(ж)д(ж) + г(ж), где г(ж) = clq + а^х + • • • + а?х7. Тогда С(х) = СДФ) + г(ж) = ар + сцх + • • • + (i||.r14 = g(x)q(x). Рассмотрим новый (избыточный!) информационный вектор С = ((114, «13, • • •, «1, <1о) - После отправления его получатель получает вектор R = (614, фз,..., &о). Де- кодируем его при предположении, что число ошибок не превосходит двух.
152 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Рассмотрим вектор ошибок Е = R — С и соответствующие многочлены Е(х), R(x), С(х). Так как о, о2, о3 - корни С(х), то Е(а) = Я(аф Е(<т2) = Я(а2) и F(ci3) = Я(а3), и многочлен Е(х) содержит не более двух ненулевых членов. Рассмотрим матрицу Si S2 s2 s3 где Si = R(cE)S = 1, 2, 3. Случай 1. Ошибок нет. Тогда Е(х) = 0 и S = 0. Случай 2. Имеется одна ошибка. Тогда Е(х) = х\ i < 14 и S = I I . Следовательно, ранг r(S) = 1. Так как 7?(а) = Е(а) = cP, то ошибка содержится в i + 1-ой координате. Случай 3. Имеются две ошибки. Тогда Е(зс) = хг + х\ / cP + cP а2г + a2j\ / 1 1 \ / аг 0 \ / 1 аг \ а2г + а2-7 а3г + а3-7 / \ cP cP / \ О cP / \ 1 cP Таким образом, ранг матрицы S равен числу ошибок при передаче инфор- мации. В третьем случае укажем алгоритм нахождения ошибочных коорди- нат. Именно найдем i, j, где Е(х) = хг + хЕ Это возможно, т.к. detS 0. Пусть (х — оЕ)(х — cP) = х2 + (j\X + а2 G G*F(16)[ж]. Тогда (V2/ Т (71 Ср Т (72 — О, Q2-7 + ЩСр + (72 = 0. Умножая эти равенства соответственно на cP и cP, а затем складывая, имеем, что S3 + &1S2 + (72<S1 — 0.
6.4. Примеры кодов, исправляющих... 153 Аналогично, умножая вышеприведенные равенства на а2г,а21 и затем скла- дывая, имеем, что Ад + (71Аз + (J2S2 = О, Следовательно, Т2 = о~2 и л = Итак, а1 и aJ - корни многочлена х2 + (Т]Х + <72 = 0. Эти корни находятся путем перебора всех элементов поля GF( 16) = = {0,1, а, а2,..., а14}. Найдя их, мы одновременно найдем ошибочные коор- динаты вектора R. Рассмотрим пример, когда информационное слово (вектор) имеет вид (1, 1, 0, 1, 1, 0, 1). Разделим соответствующий многочлен Сфж) = ж14 + ж13 + х11 + ж10 + ж8 на д(х) = ж8 + х7 + х6 + ж4 + 1. Остаток при делении будет равен многочлену (ж + х2 + ж4 + ж5 + ж7). Следовательно, С(х) = ж14 + ж13 + х11 + ж10 + х8 + х7 + х5 + ж4 + х2 + х, и посылаемое кодовое слово имеет вид (1, 1, 0,1, 1. 0, 1, 1,0, 1, 1, 0, 1,1,0). Предположим, что мы получили вектор (1, 1, 0,1, 1, 1, 1, 0, 0, 1, 1, 0, 1,1,0). Вычислим Si = R(a2), I < 4. Имеем R(a) = Я(а2) = 1, Я(а3) = а + 1, Я(а4) = а4'14 + а4'13 + а44 + а40 + а36 + а32 + а20 + а16 + а8 + а4 = (а3 4~ 1) (а2 4~ а 4~ 1) 4~ (а3 4~ а2) 4~ а2 4~ (а2 4~ а) 4~ а 4~ (а2 4~ 1) 4~ (а 4~ 1) — 1. / 1 1 \ Ранг матрицы S = равен двум. Следовательно, число ошибок у 1 а + 1 J равно двум. Решаем систему (л4_(72 — а 4-1;
154 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ (О + 1)(71 + СГ2 = 1. Получаем, что cq = 1,сг2 = <а. Найдем подбором корни многочлена х2 + т+ +о = 0. Они равны а7, а9. Действительно, сД4 И- (\7 Н- (T = (сД -|- 1) -|- (сД Щ Щ 1) Щ Q = 0, сД3 -|- Qp -|- qj = <Д -|- ((Д -|- (Д -|- ц = 0. Следовательно, мы получили ошибки в седьмой и девятой координатах (счи- тая справа и начиная с нуля). Упражнение 3: а) закодировать сообщения: 1) (1,1,1, 0, 0,1,1); 2) (1, 0, 1, 0, 1, 0, 1); б) декодировать сообщения: 1) (011 001 011 101 100); 2) (100 100 100 100 100). Пример 7 (Bose-Chandhuri-Hocquenghem, 1960). Используя поле 6*F(16), построим алгоритм выявления трех ошибок в словах (информационных век- торах) длины 15, содержащих 10 избыточных символов. Воспользуемся обо- значениями примера 6. Многочлен х2 + х + 1 является минимальным для а5. Поэтому многочлен 777135(2;) = р(т)(т2 + х + 1) является многочленом наи- меньшей степени, корнями которого являются элементы а, а3, а5. Заметим, что deg miss = 10 и а2,а4,а6 также являются корнями 777135(2;). Предполо- жим, что мы должны послать сообщение (аы, Щз, ai2, ац, Ню). Рассмотрим многочлен 6*1(2;) = щь/;11 + • • • + аю2;10 и разделим его с остатком г (2;) на 777435(2;). Положим С(х) = 6*1(2;) + г(х) = Щ42;14 + • • • + Но- Посылаем вектор С = (аы,..., Но)- Предположим, что получатель полу- чает сообщение R. Рассмотрим вектор ошибок Е = R — С. Имеем, что для
6.4. Примеры кодов, исправляющих... 155 соответствующих многочленов Я(аг) = Е(аг) = Si, i = 1,2,3,4, 5,6, так как (7(сР) = 0, i = 1,6. Рассмотрим матрицу / S'l S2 s3 \ Случай 1. Если ошибок нет, тоВ = 0и5 = 0. Случай 2. Если существует одна ошибка, то Е(х) = хг и / аг а2г а3г \ а3г а4г имеет ранг 1. При этом ошибка на месте (г + 1) координаты, считая справа. Случай 3. Если имеется две ошибки, то Е(ж) = хг + х-1 и / а1 + ст7 а2г + а2-7 а3г + а3-7 \ имеет ранг два. В этом случае декодирование производится, как в примере 6, с помощью матрицы 5(2) = S2 S3 Случай 4. При передаче совершено три ошибки, т.е. Е(х) = хг + х^ + хк. Рассмотрим матрицу а1 + ст7 + ак S = а2г + а2-7 + а2к а3г + а3-7 + а3к у a3i + а3-7 + а3к a4i + а4-7' + а4к а2г + (\2j + а2к Её ранг равен 3. Таким образом, число ошибок определяется рангом мат- рицы S. Как в последнем случае найти т.е. правильно декодировать сообщение? Для этого необходимо решить систему V1 /
156 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ А затем найти корни уравнения X3 + СГ1Т2 + СГ2Т + СГз = 0. Если эти корни равны cP, ст7, ак, то г, J, к определяют номера ошибок в R. Замечание 1. Работая в поле GF( 16) с помощью аналогичной техники, можно декодировать слова длины 15, содержащие 14 избыточных символов и не более 4-х ошибок. Замечание 2. Используя поле G*F(25), можно декодировать сообщение длины 31, содержащее 20 избыточных символов и не более 5 ошибок. Замечание 3. Используя поле G*F(26), можно декодировать слова длины 63, содержащие 33 избыточных символа и не более 6 ошибок, а также 56 избыточных символов и не более 15 ошибок (см. [5]). Упражнение 4. В поле GF(16) = ^(q) = Z2[x\/(x4 + х + 1) решить систему и найти корни (в Z2[a]) уравнения X2 + (J1X + (72 = 0. УКАЗАНИЕ. Воспользоваться равенствами а4 = а + 1, а8 = а2 + 1, 16 сг = а и т.д. Упражнение 5. Решить в GF( 16) систему Q10 +<Т25 +<Т50 И НаЙТИ КОрНИ Х3 + СЩЖ2 + (72^ + (7з = 0. У Q12 +Q30 +Q60 / ОТВЕТ: корни равны а2, а5, а10. Упражнение 6. Найти минимальный многочлен для а7 Е GF(16).
6.5. Линейные коды 157 УКАЗАНИЕ. Рассмотреть действие а7 на базис {1, а, а2, а3}. Упражнение 7. Закодировать сообщение (1, 0, 0, 1, 1) кодом, допускаю- щим не более трех ошибок. Упражнение 8. Декодировать сообщения: а) (101 1001 1001 1100), б) (101 000 01 001 1110), зная, что число ошибок не превосходит трех и кодировка проводилась ме- тодом примера 7. 6.5. Линейные коды Как уже отмечалось ранее, используемый код должен быть надежным, бы- стрым в передаче и удобным. Сочетание этих трех моментов, а также наличие помех при передаче сообщения не позволяет использовать оптимальные коды в их явном виде. Для этого используются коды с избыточной информацией. Напомним упрощенную модель связи Мы будем считать, что символы, входящие в запись сообщений и кодов, являются элементами поля GF(q) = Fq. Кодирование - это отображение f : F^ Fqi где п > к. Т.е. каждое сообщение щ (щ G Fq) заменяется кодовым словом ci... сп. Аналогично, декодирование - это отбражение д : Fq F^ такое, что f о д = е - тождественное отображение.
158 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Пусть х,уЕ Fq. Расстоянием Хэмминга d(x, у) между векторами ж, у назы- вается число координат, которыми векторы х и у отличаются друг от друга, а весом Хэмминга w(x) называется число ненулевых координат этого вектора. Ясно, что d(x,y) = w(x — у), и если х - передаваемое слово, а у - получен- ное слово, то d(x, у) - число ошибок, сделанных при передаче. Легко видеть, что функция d(x,y) удовлетворяет следующим трем свойствам метрики в пространстве F^l^x/y^z G F”) : = 0 & х = у- 2)d(x,y) = d(y,x); 3)d(x, z) < d(x, у) + d(y, z). Пусть V C Fq - некоторое множество кодовых слов nt- натуральное число. Скажем, что код V исправляет не более t ошибок, если для любого b Е F™ существует не более одного вектора а Е V такого, что d(b, а) < t, т.е. в окрестности Bt(b) = {ж Е Fq;d(b,x) < t} существует не более одного вектора из V. Число d(y) = аг); «1,^2 Е V, ai 0,2} называется кодовым (минимальным) расстоянием кода V. Предложение 1. Пусть d(V) > 2t + 1. Тогда код V исправляет не более t ошибок. ДОКАЗАТЕЛЬСТВО. Пусть b Е Fq. Если шар (окрестность) ВД&) содер- жит два вектора ai,«2 £ V, то d(ai,a,2) < d(ai,b) + d(a,2,b) < 2t. С другой стороны, d(a^d2) > 2t + 1. Противоречие доказывает предложение. Т.е. если при передаче слова а произошло не более t ошибок, то для при- нятого слова b имеем неравенство d(b, а) < i и для любого другого кодового слова с Е V d(b, с) > t + 1. Определение [13]. Пусть Н - матрица над полем Fq порядка (n - fc) х п и ранга (п — /с). Линейным (п, /с) - кодом над полем Fq называется множество С решений с Е Fq системы линейных однородных уравнений Н • сТ = 0.
6.5. Линейные коды 159 Ясно, что dini/.'C = к. Число к называется размерностью кода, а число п - его длиной. Матрица Н называется проверочной матрицей кода С, а элемен- ты С называются кодовыми словами, или кодовыми векторами. Если q = 2, то код называется бинарным. Если Н = (А1П_^), где А - матрица порядка (п — /с,/с), а 1п-к - единичная матрица порядка (п — /с), то код С называ- ется систематическим. Если в систематическом коде С первые к символов в каждом кодовом слове являются информационными (т.е. совпадают с к символами исходного сообщения), а остальные (п — к) символов являются проверочными, то система уравнений Н • ст = 0 называется системой урав- нений проверки на четность. Пример 3 в 3.2 соответствует систематическому бинарному коду с матрицей Н = Q1 ... 1Д). Пример 1 из §2 соответствует к линейному (п, 1)-коду с проверочной матрицей Н = (—l/n_i), т.е. Пусть Н = (А1п_ь) - проверочная матрица линейного (п, к) - кода. Тогда матрица G = (Д—Лт) порядка кхп называется порождающей (кодирующей) матрицей кода С. Эта матрица возникает в связи с равенством сг = ( hA j ат = (а(4 - Ат))т, где а = щ. ak - передаваемое сообщение, с = щ. сп - соответствующее кодовое слово и Н(А = 0 - проверочное уравнение. Так как Н(А = 0 и с = aG, то HGT = 0 (или G Нт = 0). Из этого равенства следует, что код С порождается строками G. В случае произволь- ного линейного кода С его порождающей матрицей называется любая (кхп) матрица, строки которой порождают пространство С. Определение. Пусть с - кодовое слово и у - слово, полученное после
160 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ передачи сообщения по каналу (с помехами). Разность е = у — с = ei... еп называется вектором ошибок, или шумовым вектором. Для линейного кода С минимальное расстояние Хэмминга dc = min{d(u, v\,u,v G w} совпадает с минимальным весом Хэмминга mm{w(c); с 6 C,c^ 0}. Докажем следующий критерий для нижней границы минимального расстояния линейного кода С с проверочной матрицей Н. Предложение 2. dc > s + 1 тогда и только тогда, когда любые s столб- цов Н линейно независимы. ДОКАЗАТЕЛЬСТВО. Если в Н найдутся з столбцов , his, которые линейно зависимы + • • • + Xshis = 0, то вектор с = (O,O,...,O,Ai,O,...,O,A«,O,...,O) € С и имеет вес s, т.е. dc < з. Обратно, пусть любые з столбцов Н являются линейно независимыми и dc < з. Пусть a G (7, w(a) = dc,a 0. Тогда из равенства Н • аТ = 0 следует, что некоторые dc < з столбцов Н линейно зависимы. Пусть далее С - линейный (п, /с)-код над полем Fq. Разложим пространство F” на смежные классы по С: Fq = (0 + С) U (&(1) + С) U • • • U (&(s) + С), где s = qn~k — 1. В каждом классе № + С(Ь^ = 0) существует элемент минимального веса. Выберем его и назовем лидером этого смежного класса. Если передавалось кодовое слово с Е С, а было принято слово у, то вектор ошибок е = у — с принадлежит тому же смежному классу, что и у. Если - лидер класса у + С, то декодируем у как х = у — с№ Е С. Этот способ декодирования называется алгоритмом декодирования по лидеру смежного класса. Детализируем этот алгоритм. Пусть оХ1),..., с№ - лидеры смежных классов Ь^\ ..., и С = {с^ = 0, с^\ ..., - все элементы кода С. Пусть у - принятый вектор. Вектор Нут длины (п—/с) называется синдромом у. Ясно, что синдром векторов у, z Е Fq совпадает тогда и только тогда,
6.5. Линейные коды 161 когда их смежные классы равны. Считаем далее синдром S(y) = Н • уТ. Зная синдром лидеров ..., мы определим смежный класс, в котором содержится у. Например, у G Тогда декодируем у как х = Пример. Рассмотрим бинарный (5,2) - код С с проверочной матрицей 1 1 Пусть у = (1,1, 0,1,1) - полученное слово с синдромом 8(У) ~ 81 ут — . Приведем все смежные классы, выделив в начале их лидеров: Так как S(y) = = S 1 то искомое кодовое слово равно х = у — а*'1) = (0,1, 0,1,1). Предложение 3. Пусть С - бинарный (п, к)-код с проверочной матрицей Н. Тогда синдром получаемого вектора у равен сумме столбцов И. номера которых совпадают с номерами ошибочных координат у.
162 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ ДОКАЗАТЕЛЬСТВО. Действительно, пусть передавалось слово х G С. Тогда у = х + е и S(y) = Нет = Дц + Д2 + • • • + his, где е = (О,..., 0,1, 0,..., 0,1, 0,..., 0), причем единицы стоят на местах Д,..., is. Если все столбцы Н различны и существует только одна ошибка в г-й коор- динате, то S(y) = hi, т.е. удачный выбор матрицы позволяет обнаруживать и исправлять одну ошибку. Определение. Бинарный код Ст длины 2т — 1 = n(m > 2) с проверочной матрицей Н порядка т х (2m — 1) называется кодом Хэмминга, если столбцы Н представляют собой запись в двоичной системе чисел 1,2,..., 2m — 1. Предложение 4. Бинарный код Ст имеет размерность (2m — m — 1) и исправляет одну ошибку. ДОКАЗАТЕЛЬСТВО. Ранг матрицы Ст равен т и, следовательно, (Итр2Ст = 2т — 1 — т. Так как любые два столбца Ст линейно независи- мые и Ст содержит их сумму, то dCm = 2 + 1 = 3 (см. предложение 2). По предложению 1 код Ст является кодом, исправляющим одну ошибку. Пример. Пусть С*з - бинарный (7, 4) - код Хэмминга. Его проверочная матрица равна / 0 0 0 1 1 1 1 \ Н = 0 110 0 11 у 1 0 1 0 1 0 1 у 1 2 3 4 5 6 7 Пусть ?/ = (0,0,1,0,1,0,1)- полученное слово. Его синдром равен Это первый столбец Н. Следовательно, ошибка допущена в первой коорди- нате, и искомое кодовое слово равно (1, 0, 1, 0, 1, 0, 1). В заключении параграфа докажем некоторые оценки относительно основ- ных параметров, характеризующих код.
6.6. Циклические коды 163 Предложение 5 (граница Хэмминга). Пусть С - код над полем Fq, содержащий М кодовых слов, имеющий длину п и исправляющий t ошибок. Тогда М • (1 + C^q — !) + ••• + С1п(с[ — l)f) < qn. ДОКАЗАТЕЛЬСТВО. Действительно, шары радиуса t с центрами в кодо- вых словах попарно не пересекаются. Каждый такой шар содержит помимо кодового слова ещё C6(q — 1) слов, отличающихся от него одной координатой, C^{q — I)2 слов, отличающихся двумя координатами, и т.д. Так как |F”| = qn, то неравенство доказано. Приведем без доказательства следующее предложение [13]: Предложение 6 (граница М.Плоткина). Пусть С - линейный (n, к)- код над полем Fg. Тогда п qk~\q — 1) 6.6. Циклические коды Линейный (п, /с)-код С над полем F? называется циклическим, если для лю- бого вектора (щ, щ,..., an-i) £ С вектор (1q, di, . . . , fln—2) G С. Отождествим пространство F” с фактор-кольцом ЕДД / (хп — 1) относительно изоморфизма (do, «1, • • •, dn-1) —> do + aix + • • • + ап_щп~1. Смежный класс a G Fq[x]/(xn — 1) часто будем записывать без черты. Утверждение 1. Линейный код С является циклическим тогда и толь- ко тогда, когда С-идеал в F?[ж]/(хп — 1). ДОКАЗАТЕЛЬСТВО. Действительно, если С - идеал и (do, «1, • • •, ап-1) £ С, ТО X • (do + ЩХ + • • • + dn_i£n-1) = dn_i • 1 + do • X + • • • + dn—2 • xn~r G С, т.е. (dn_i, do,..., an-2) принадлежат С. Обратно, если С - циклический
164 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ код, то для любого элемента b Е С элементы xb,... ,х^' ]Ь принадлежат С. Следовательно, для любого элемента ______________________ п—1 V = Pq • 1 + • • • +рп_1Тп-1 Е Г?[Д/(хп — 1), V • Ь = ^2 РЙ? Ь Е С. i=0 Если С - идеал в Fq[x\/(xn — 1), то он является гомоморфным образом некоторого идеала Р в Р?[Д , содержащего идеал (хп — 1). Утверждение 2. Идеал Р является главным, т.е. Р = (</(Ф)), где дфх) - некоторый делитель (хп — 1) и старший коэффициент дфх) равен единице. ДОКАЗАТЕЛЬСТВО. Пусть д(х) ~ ненулевой многочлен минимальной степени из идеала Р. Тогда можно считать, что старший коэффициент д(х) равен единице, и если <р(х) Е Р, то по лемме о делении с остатком р = д-гф-\~г, где г = 0, либо degg > degr. Так как г = р—дгф Е Р, то, ввиду минимальности deg(g),r = 0 и Р = (ц(ж)). Так как (хп — 1) Е Р, то д(х) делит (хп — 1). Ясно, что С = (д(хУ). Многочлен д(х) называется порождающим много- членом кода С, а многочлен h(x) = (хп — 1)/ф(ж) называется проверочным многочленом кода С. Пусть д(х) = до + gix + • • • + 1 • хп~к и h(x) = До + hix + • • • + hkxk. Тогда goho = —1, 9-ihm-i = 0,1 < m < n — l,hk = 1- Далее, из включений i<n—k g, xg,..., xk~xg E С и неравенства go 2 0 следует, что следующую матрицу (до дг ... дп_к 0 0 ... о \ G _ 0 до ... дп_к 0 ... 0 \ 0 0 ... 0 до ... дп_к / ранга к, где дп-к = 1, можно взять в качестве порождающей для кода С (т.е. векторы д, хд,..., хк-1д действительно образуют базис идеала С). Матрица / 0 0 . . 0 hk hk—i • h2 hi ho \ н = 0 0 . hk hk hk-i ... hi ho 0 является провероч- \ hk hk-i . ho 0 0 у
6.6. Циклические коды 165 НОЙ. Как уже отмечалось, порождающих матриц для линейного кода много, т.к. они соответствуют базисам этого кода. Укажем некоторый канониче- ский алгоритм выбора порождающей матрицы циклического кода С с поро- ждающим многочленом д(х) степени (п — к) и с проверочным многочленом Д(ж) = (хп — 1)/д(х). Замечание 1. Пусть v(x) G Fq[x\/(xn — 1). Тогда v(x) G С • h = 0. Замечание 2. Предположим, что нам необходимо передать информацию (ао, сц, • • •, a^-i). Рассмотрим элемент а(х) = щ + <FX + • • • + ak-\xk~r в Fq[x\/(xn — 1). Закодируем его многочленом w(x) = а(х)д(х) в Г?[ж]/(жп — 1), где д(х) - порождащий многочлен кода С. Пусть v(x) - принятый для декодирова- ния многочлен. Если остаток v(х) от деления на д(х) не равен нулю, то при передаче произошла ошибка. Рассмотрим алгоритм Евклида (деления с остатком): ж <1п_/;(т:)(/(т:) Н- X /г+1 (^) ’ Р(>^) + X п—/г+1? . . . , хп~г = ап_1(х')д(х') + гп-1, где degrj < п — k,j < п — 1. В силу замечания 1, (xJ — Xj) G С. Следовательно, многочлены gj(x) = xk(F — Xj) G C, j = n — к, n — к + 1,..., n — 1. Если многочлены gj линейно зависимые, то при некоторых Xj G F? (не все Xj равны нулю) 12 \i9j = 0- Откуда следует, что j<n—1 Xk(Xn-iCLn-i + Xn-2dn-2 + ’ ’ ’ + Xn-kdn-k) ’ </(#) = 0.
166 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Так как х не делит h и deg(Xn-ian-i + • • • + Xn-kan-k) < к — 1, то Д(ж) не делит хк(^ Xjdj). Следовательно, Xi = 0, г < п — 1. Пусть п—к п—к—1 дп-1 = х (х - гп_г) = х (~rn_w - rn_nx--------гп_Хп-к-1Х + х Соответствующая порождающая матрица равна /1 0 0 . .. 0 Т п—к,0 Ei—к,1 • • Tn—к,п—к—1 <++) = 0 1 0 . .. 0 Т п—/г+1,0 Гп—к+1,1 • • Тп—к+1,п—к—1 V 0 0 . .. 1 Г п—10 Tn—1,1 • • Тп—1,п—к—1 Будем считать в дальнейшем, что (n,g) = 1. Если хп — 1 = /1/2 • • • fm ~ разложение на неприводимые многочлены в Fq[t] , то, так как (хп — 1)' = пхп~х и (n, g) = 1, (хп — 1) не имеет кратных корней. В силу 3.3 каждый идеал (/)) является максимальным, а соответствующий код называется максимальным циклическим кодом. Код, порожденный (хп — 1)/fi, называется неприводимым циклическим кодом. Замечание 3. Так как каждый делитель (хп — 1) имеет вид ff1... f^1, где щ = 0,1, то число нетривиальных делителей 1, хп — 1) равно (2т — 2), т.е. циклических кодов длины п не более (2т — 2). Замечание 4. Пусть qi,...,qs - элементы алгебраического замыкания поля Fq и Ц1(ж),... ,2д(ж) - (соответственно) их минимальные многочлены над Fg. Пусть п - минимальное натуральное число с условием, что а™ = = • • • = ans = 1. Тогда д(х)= Н.О.К. [pi,P2, • • • ,ps\ делит (хп — 1). Пусть С С F” - циклический код с порождающим многочленом д(х). Тогда /(ж) G С в том и только в том случае, если /(«i) = • • • = J(qs) = 0. Утверждение 3. Пусть а - примитивный элемент поля F^ и р(х) = (ж — а)(ж — а2)... (ж — о2"1 х) - его минимальный многочлен над полем F^.
6.6. Циклические коды 167 Тогда бинарный циклический код С длины п = 2т — 1 с порождающим мно- гочленомр(х) эквивалентен бинарному (2т— 1,2т— т — Т)-коду Хэмминга. ДОКАЗАТЕЛЬСТВО. Так как {1, а,, ат-1} - базис над 7*2, то имеют место равенства Q° Q1 = 1-1 = 0-1 + + 0 • a 1 • a + •• + •• • + • + 0-cv"'-1. О-сС1”1, if-' = 0-1 + 0 • a + •• • + l-cP71"1, am — ®0,m+l ’ 1 + + •• • + л Гчт~^ um—l,m+l ’ , a2m~2 = do,2m-l ’ 1 + Щ 2m — 1 ’ Ot + •• • + ,, 1 dm—l,2m — l ’ Cl Рассмотрим соответствующую матрицу / 1 0 .. . 0 ®0,m+l • d0,2m-l ' H = 0 1 .. . 0 ЙЦт+1 • Щ,2™-1 V 0 .. . 1 dm— l,m+l • • ®m-l,2m-l / Покажем, что Н - проверочная матрица для кода С. Пусть а = (&о, Аг-i) и а(х) = &о + + • • • + bn_ixn 1 - соответствующий многочлен. Имеем / 1 0 .. . 0 ®0,m+l • • • do,2m-2 H- aT = 0 1 .. . 0 dl^m+1 • • • al,2m-2 V 0 .. . 1 dm— l,m+l • • • dm-l,2m-2 ( b0 + do,m+lbm + • • • + dQnbn—1 = bi + dl^m+lbm + • • • + dlnbn—1 bm— 1 + dm—l,m+lbi n + • • • + dm—l,nbn—l р° \ bi \ ЬП—1 у и — (&о + Flm+lbm + • • • + CLOnbn-l') • 1 + (&1 + CLlm+lbm + ’ ’ ’ + б-d'inbn-i') •« + ••• + (bm-i + am-im+ibm + • • • + aTO_in&n_i)cim 1
168 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ Ясно, что Нат = 0 тогда и только тогда, когда а(Д) = 0. Последнее условие равносильно делимости р(ж)|а(ж), так как р(х) - неприводимый многочлен. Итак, мы доказали, что Н - проверочная матрица для линейного (n, п — т)- кода С. Для доказательства того, что С - ход Хэмминга, осталось доказать, что множество столбцов Н исчерпывает множество чисел l,2,...,2m- 1 в двоичной системе исчисления. Для этого достаточно заметить, что никакие два (ненулевых!) столбца не совпадают. В противном случае ак = 1, где к < 2,т — 2, что противоречит примитивности а (а - циклический порождающий группы ДД = ^2™ \ {0}). Утверждение 4. Пусть С - циклический код в ГДж]/(жп — 1) с поро- ждающим многочленом д(х), корни которого равны ац,..., ап-ь- Многочлен f(x) = bo + bix + • • • + Ьп_1Хп~г Е С тогда и только тогда, когда [ 6о 1 /1 (Т| а? • «Г1 \ н- bl = 0, где Н = 1 «2 а2 • «Г1 Ьп— 1 ) V С^п—к ап-к • СЬ ДОКАЗАТЕЛЬСТВО. Многочлен /(ж) Е С тогда и только тогда, когда f(&i) = 0, i < п—к. На матричном языке эти условия равносильны равенству / 6о \ Н 61 = 0. у bn—i J Предположим, что мы имеем циклический код с порождающим многочле- ном д(х\ который, в свою очередь, является минимальным многочленом для а Е Fqm, ап = 1, над полем Fq. Согласно предыдущему для исправ- ления ошибки в полученном слове у необходимо вычислить синдром этого слова. Укажем один из алгоритмов такого вычисления. Элемент а является
6.7. Код Боуза-Чоудхури-Хоквингема 169 корнем (р(х) Е Fq[x]/(xn — 1) тогда и только тогда, когда д(х)\(р(х). Сле- довательно, синдромом вектора у = (yo,yi, ,уп-1) можно считать вектор S(y) = (1атг2 ... сС-1)-?/т = у(а) = у^+у\а+- +уп_\ап~1. Если при передаче слова w получено слово у и совершено не более одной ошибки, то у = w+е, где е = О,^'-1 (в бинарном коде). Следовательно, синдром S(y) = S(e) = 0, ст7-1. Этот синдром еще называют локатором ошибок. Если S(y) = ст7-1, то ошибка произошла в ./-ой координате (ибо а1 ст7 при i J, i < п — 1, j < п — 1). 6.7. Код Боуза-Чоудхури-Хоквингема Определение. Пусть т - мультипликативный порядок числа q Е N по модулю п, т.е. qm = l(modri) и ql ф l(modn) при 1 < i < т — 1. Далее, b Е N U {0} паб такой, что ап = 1, а1 1,1 < i < п — 1. Кодом Боуза-Чоудхури-Хоквингема (или БЧХ-кодом) длины п с конструктивным расстоянием б/, 2 < d < п, над полем Fq называется циклический код с порождающим многочленом, определяемым элементами ab,ab+\...,ab+d~2. Другими словами, порождающий многочлен ц(ж) этого кода совпадает с НОК многочленов т®(ж),..., m^b+d~2\x), где т^г\х) - минимальный многочлен аг (над полем Fq). Замечание. Если п = q—1, то БЧХ-код называется кодом Рида-Соломона. Если п = qm — 1, то БЧХ-код называется примитивным. Если b = 1, то БЧХ- код называется БЧХ-кодом в узком смысле. Теорема. Минимальное расстояние БЧХ-кода с конструктивным рас- стоянием d не меньше, чем d. ДОКАЗАТЕЛЬСТВО. Согласно утверждению 4 из 6.6, наш код совпадает с нуль-пространством проверочной матрицы
170 Глава 6. ТЕОРИЯ КОДИРОВАНИЯ 1 аь a2b .. ab(-n~^ 1 ab+1 Q(n-1)(6+1) 1 ab+d-2 a2(6+d-2) Q(n-l)(6+d-2) предложению 2 из 6.5, для доказательства теоремы достаточно Согласно показать, что любые (d — 1) различных столбцов этой матрицы являются линейно независимыми. Действительно, рассмотрим определитель det abil abh (Д''7 2)?i (y(b+d—2)?2 1 t<s Теорема доказана. Эта теорема является важной, так как позволяет строить коды, исправ- ляющие t ошибок. Для этого нужно выбрать числа d, n, щ т так, чтобы 2t + 1 < d < т, т - мультипликативный порядок числа q по модулю п (мы предполагаем, что (щ п) = 1 и, следовательно, т\ср(пУ). Так как группа GF(qmy является циклической, то в ней существует элемент а порядка п. Т.е. мы всегда можем построить такой код. Перейдем к описанию схемы декодирования БЧХ-кодов. Пусть ш(Д), v(ж) и е(ж) - соответственно передаваемый кодовый многочлен, принимаемый мно- гочлен и многочлен ошибок (е = v — ш). Пусть Н - проверочная матрица из теоремы. Тогда синдром принятого вектора v равен S(r) = Н • vT = = (Sb, Sb+x,..., Sb+d_2y, где Sj = = e(cd), b < j <b + d-2. Пусть при передаче произошло г ошибок, где г < t < Тогда е(ж) = cixai + С2Ж®2 + • • • + сгжау где ai,... ,аг - различные числа из множества {0,1,...,п — 1}. Элементы = aai G Fqm называются локаторами ошибки, а элементы Ci G Fq - значениями ошибки. В новых обозначениях координаты синдрома вектора v равны Sj = e(cd) = суу^ + + • • • + cryJr, b<j<b + d — 2. В силу тождества (/3 + уД = [3q + у7 в поле Fqm и
6.7. Код Боуза-Чоудхури-Хоквингема 171 так как с-i Е Fq, имеем равенства Sq- = ^Ciy-4 = Sjq, b < j < b + d — 2. i=i r Рассмотрим далее многочлен П (?/>— х) = ar~or-ixE~- • + (—1)г(7ожг, где стр = i=i 1, di, <72,..., ог - элементарные симметрические многочлены от тц,... ,уг. Подставляя yi вместо х, получаем систему равенств Or - (Tr-1 • У1 --Н (-1)гсг0 • yri = 0, 1 < i < г. Умножим г-ое равенство на суу? и сложим их все. Получим (—1)г • ог Sj + (—1)г ^or-i • + • • • + (—l)(7i • Sj-\-r-i + Sj-\_r — 0, (6.1) где b < j < b + г — 1. Матрица этой системы равна Sb Sb+i Sb+2 b+r = V-D-VT, \ Sb+r—1 Sb+r • • • Sb-\-2r—2 / где D = 1 У1 1 Уг \yri 1 yr2 1 Ранг этой матрицы равен г тогда и только тогда, когда в векторе v имеется г ошибок. Многочлен вида а(ж) = П(1 ~dix) = 1)г^жг называется мно- i=l i=0 гочленом локаторов ошибки. Его корни равны у^1,... ^y~S Итак, приведем алгоритм декодирования БЧХ-кода с конструктивным расстоянием d > 2t+l. Предположим, что передавалось слово ш, а получено слово v. Шаг 1. Находим синдром слова v S(v) = (S,„ S„+1,..., SM-2)T. Шаг 2. Находим максимальное число г < такое, что система уравнений
172 ЛИТЕРАТУРА Sb+2r-l + Sb+2r-2xl + • • • + Sb+r-l^r — 0 имеет невырожденную матрицу коэффициентов (см. также (3.10)). Решая ее, мы найдем многочлен локаторов ошибки S(x) = П(1 - yix) = y^Xjx\ i=l i=0 ГДе Xq = 1. Шаг 3. Находим корни многочлена s(t) = 0, подставляя вместо х степени а. Шаг 4. Рассмотрим систему уравнений С1У1 + •• . + = Sb С1У1+1 + •• . + СгУг+1 = Sb+1 c1ybl+r+1 + •• . + О '-'Г у г — Sb+r—1 Определитель этой матрицы равен (тц ... Уг)ь П(?/г ~у/) 0. Следователь- но, система имеет единственное решение ci,...,cr. Итак, мы можем найти вектор ошибки е(т). Из уравнения ш(т) = v(x) — е(т) находим слово w. При- меры в 6.4 иллюстрируют применение БЧХ-кода.
ЛИТЕРАТУРА 173 ЛИТЕРАТУРА Учебники и монографии: 1. Аршинов М.И., Садовский Л.Е. Коды и математика. // Библ. Квант. Вып. 30, 1983. 2. Басакер Р., Саати Г. Конечные графы и сети. - М.: Наука, 1974. 3. Белов В.В. и др. Теория графов. - М.: Высш.школа, 1976. 4. Берж К. Теория графов и ее применение. - М.: Изд-во иностр, лит., 1962. 5. Берлекэмп Э. Алгебраическая теория кодирования. - М.: Мир, 1971. 6. Биркгоф Г., Барти Т. Современная прикладная алгебра. - М.: Мир, 1976. 6. Галлагер Р. Теория информации и надежная связь. - М.: Сов. радио, 1974. 8. Гроссман И., Магнус В. Группы и их графы. - М.: Мир, 1971. 9. Зыков А.А. Теория конечных графов. - М.: Наука, 1969. 10. Кассами Т., Токура Н. и др. Теория кодирования. - М.: Мир, 1978. 11. Колесник В.Д., Полтырев Т.Ш. Введение в теорию информации: Учеб, пособие. - Л.: Изд-во ЛГУ, 1980. 12. Колссрик В.Д., Полтырев Г.Ш. Курс теории информации. - М.: Наука, 1962. 13. Лидл Р., Яидеррайтер Г. Конечные поля. Т.1-2. - М.: Мир, 1168. 14. Мак-Вильямс Ф., Слоэн Н.Дж. Теория кодов, исправляющих ошибки. - М.: Связь, 1969. 15. Марков А.А. Введение в теорию кодирования. - М.: Наука, 1982. 16. Оре О. Графы и их применение. - М.: Мир, 1965. 17. Оре О. Теория графов. - М.: Мир, 1908. 18. Питерсон У, Уэлдон Э. Коды, исправляющие ошибки. - М.: Мир, 1976. 19. Райзер Г.Д. Комбинаторная математика. - М.: Мир, 1966. 20. Риордан Дж. Введение в комбинаторный анализ. - М.: Изд-во иностр, лит., 1963. 21. Уилсон Р. Введение в теорию графов. - М.: Мир, 1977. 22. Харари Ф. Теория графов. - М.: Мир, 1973.
174 ЛИТЕРАТУРА 33. Холл М. Комбинаторика. - М.: Мир, 1970. 24. Шеннон К. Работы по теории информации и кибернетике. - М.: Изд-во иностр, лит., 4963. 25. Яблонский С.В. Введение в дискретную математику. - М.: Наука, 1979. 26. Bollobas Bela Graph theory: an introductory course. - New-York: Sprenger- Verlag, 1979. 27. Lindsay Childs. A concrete introduction to higher algebra: Undergrad, texts in Math. - New-York: Springer-Verlag, 1992. 28. Coutinho S.C. The mathematics of Ciphers, AK Peters, Natick, Massachusetts, 1998. 29. Koblitz N. A course in number theory and cryptography, Springer- Verlag, 2002. 30. Романовский И.В. Дискретный анализ, Невский диалект, 1999. 31. Новиков Ф.А. Дискретная математика, Питер, 2000. 32. Нечаев В.И. Элементы криптографии, Высшая школа, 1999. 33. Ященко В.В. и др. Введение в криптографию, МЦНМО -ЧеРО, 2000. 34. Овчинникова Е.В., Судоплатова С.В. Элементы дискретной математики. - М.: Инфра-М., 2002. 35. Лидл Р., Пильц Г. Прикладная абстрактная алгебра, Из-во Уральского университета, 1996. 36. Иванов Б.Н. Дискретная математика ( алгоритмы и программы), Москва, Лабор.баз.знаний, 2001. 37. Асанов М.О., Баранский В.А., Расин В.В., Дискретная математика: гра- фы, матроиды, алгоритмы, Москва, 2001. Задачники: 38. Гаврилов Г.П., Сапоженко А.А. Сборник задач по дискретной математике. - М.: Наука, 1977. 39. Стечкин Б.С., Макаров Ю.Н., Меньшиков М.В., Ревякин А.М., Копылова А.Н. Комбинаторный анализ (задачи и упражнения). - М.: Наука, 1982.
ЛИТЕРАТУРА 175 40. Мельников О.И. Занимательные задачи по теории графов. - М.: НТООО "Тетра Системе", Минск, 2001.
Мальцев Юрий Николаевич Петров Евгений Петрович ЭЛЕМЕНТЫ ДИСКРЕТНОЙ МАТЕМАТИКИ Основы комбинаторики, теории графов, теории кодирования и криптографии Учебное пособие ЛР 020261 Н/К Компьютерный набор - Т.И. Пиникер Компьютерная верстка - Е.П. Петров Оригинал-макет представлен в авторской редакции Подписано в печать 1.07.2004. Формат 60 х 84/16. Бумага для множительных аппаратов. Офсетная печать. Уч.-изд. л. 6,07. Тираж 30 экз. Заказ Типография издательства Алтайского государственного университета 656099, г. Барнаул, ул. Димитрова, 66.