Теория графов

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Отец теории графов Леонард Эйлер

Тео́рия гра́фов — раздел дискретной математики, изучающий графы. В самом общем смысле граф — это множество точек (вершин, узлов), которые соединяются множеством линий (рёбер, дуг)[1]. Теория графов (то есть систем линий, соединяющих заданные точки) включена в учебные программы для начинающих математиков, поскольку[2][3][4][5]:

  • как и геометрия, обладает наглядностью;
  • как и теория чисел, проста в объяснении и имеет сложные нерешённые задачи;
  • не имеет громоздкого математического аппарата («комбинаторные методы нахождения нужного упорядочения объектов существенно отличаются от классических методов анализа поведения систем с помощью уравнений»[6]);
  • имеет выраженный прикладной характер.

На протяжении более сотни лет развитие теории графов определялось в основном проблемой четырёх красок. Решение этой задачи в 1976 году оказалось поворотным моментом истории теории графов, после которого произошло её развитие как основы современной прикладной математики. Универсальность графов незаменима при проектировании и анализе коммуникационных сетей[7].

Теория графов, как математическое орудие, приложима как к наукам о поведении (теории информации, кибернетике, теории игр, теории систем, транспортным сетям), так и к чисто абстрактным дисциплинам (теории множеств, теории матриц, теории групп и так далее)[8][9].

Несмотря на разнообразные, усложнённые, малопонятные и специализированные термины многие модельные (схемные, структурные) и конфигурационные проблемы переформулируются на языке теории графов, что позволяет значительно проще выявить их концептуальные трудности[10]. В разных областях знаний понятие «граф» может встречаться под следующими названиями:

и так далее[11].

Первые использования и открытия графов

Теория графов как раздел прикладной математики «открывалась» несколько раз. Ключ к пониманию теории графов и её комбинаторной сущности отражены в словах Джеймса Сильвестра: «Теория отростков (англ. ramification) — одна из теорий чистого обобщения, для неё не существенны ни размеры, ни положение объекта; в ней используются геометрические линии, но они относятся к делу не больше, чем такие же линии в генеалогических таблицах помогают объяснять законы воспроизведения»[12].

Первое использование диаграммы графа в науке

Дерево Порфирия

Диаграмма одной из разновидностей графа — дерева — использовалась издавна (конечно, без понимания, что это «граф»). Генеалогическое древо применялось для наглядного представления родственных связей. Но только античный комментатор работ Аристотеля финикийский философ и математик Порфирий использовал изображение дерева в науке как иллюстрацию дихотомического деления в своей работе «Введение» (греч. Εἰσαγωγή, лат. Isagoge) для классификации философского понятия материи[13].

Первое использование и «открытие» теории графов

Мультиграф задачи о кёнигсбергских мостах

Швейцарский, прусский и российский математик Леонард Эйлер в статье (на латинском языке, изданной Петербургской академией наук) о решении знаменитой задачи о кёнигсбергских мостах, датированной 1736 годом, первым применил идеи теории графов при доказательстве некоторых утверждений. При этом Эйлер не использовал ни сам термин «граф», ни какие-либо термины теории графов, ни изображения графов[14]. Леонард Эйлер считается отцом теории графов (как и топологии), открывшим понятие графа[15], а 1736 год назначен годом рождения теории графов[16].

Второе «открытие» графов

В 1847 году немецкий физик Густав Кирхгоф фактически разработал теорию деревьев при решении системы уравнений для нахождения величины силы тока в каждом контуре электрической цепи. Кирхгоф фактически изучал вместо электрической цепи соответствующий ей граф и показал, что для решения системы уравнений нет необходимости анализировать каждый цикл графа, достаточно рассмотреть только независимые циклы, определяемые любым остовным деревом графа[15].

Третье «открытие» графов

В 1857 году английский математик Артур Кэли, занимаясь практическими задачами органической химии, открыл важный класс графов — деревья. Кэли пытался перечислить химические изомеры предельных (насыщенных) углеводородов CnH2n+2 с фиксированным числом n атомов углерода[15].

Четвёртое «открытие» графов

В 1859 году ирландский математик сэр Уильям Гамильтон придумал игру «Вокруг света». В этой игре использовался додекаэдр, каждая из 20 вершин которого соответствовала известному городу. От играющего требовалось обойти «вокруг света», то есть пройти по рёбрам додекаэдра так, чтобы пройти через каждую вершину ровно один раз[15].

Пятое «открытие» графов

В 1869 году, независимо от Артура Кэли, французский математик Камиль Жордан (в частности, в статье « Sur les assemblages de lignes ») придумал и исследовал деревья в рамках чистой математики. При этом Жордан использовал термины теории графов «вершина» (фр. sommet) и «ребро» (фр. arête), но вместо термина «граф» было «соединение рёбер» (фр. assemblage d’arêtes) или просто «соединение» (фр. assemblage). Рисунки Жордан не использовал[17]. При этом Жордан не подозревал о значении своего открытия для органической химии[15].

Soient x, y, z, u, … des points en nombre quelconque ; xy, xz, yu, … des arêtes droites ou courbes, mais non bifurquées, dont chacune joint ensemble deux de ces points. Nous appellerons un semblable système un assemblage d’arêtes, dont x, y, z, u, … sont les sommets.

M. Camille Jordan. Sur les assemblages de lignes)[17]

Возникновение слова «граф»

Первое появление слова «граф» в смысле теории графов состоялось в 1878 году в краткой заметке (на английском языке) английского математика Джеймса Сильвестра в журнале Nature и имеет графическое происхождение как обобщение понятий «диаграмма Кекуле» и «химикограф»[18][19].

Every invariant and covariant thus becomes expressible by a graph precisely identical with a Kekuléan diagram or chemicograph.

Silvester J. J. Chemistry and algebra (italics as in the original)[20]

В переводе:

Таким образом, каждый инвариант и ковариант выражается некоторым графом, точно идентичным диаграмме Кекуле или химикографу.

Сильвестр Дж. Дж. Химия и алгебра, 1878 (курсив оригинала)

Начало систематического использования слова «граф» и диаграмм графов

Денеш Кёниг
Псевдограф домино (28 костей)

Мы привычно рисуем точки, изображающие людей, населённые пункты, химические молекулы и т. д., и соединяем эти точки линиями, означающими отношения. Это социограммыпсихологии), симплексытопологии), электрические цепифизике), диаграммы организации (в экономике), сети коммуникаций, генеалогические деревья и т. д. В начале XX века венгерский математик Денеш Кёниг первый предложил называть эти схемы «графами» и изучать их общие свойства[8]. В 1936 году вышла первая в мире книга по теории графов (на немецком языке) Денеша Кёнига «Теория конечных и бесконечных графов» с большей частью результатов за прошедшие 200 лет, начиная с 1736 года — даты выхода первой статьи Леонарда Эйлера по теории графов с решением задачи о кёнигсбергских мостах[16]. В частности, в книге Кёнига имеется общий параграф для задачи о кёнигсбергских мостах и задаче о домино (построение замкнутой цепи из всех костей домино по правилам игры)[21][22].

История возникновения теории графов

Теория графов (другими словами, системы линий, соединяющих заданные точки) очень удобна для начинающих[3]:

  • имеет геометрическую наглядность;
  • имеет математическую содержательность;
  • не имеет громоздкого математического аппарата.

«Как и теория чисел, теория графов концептуально проста, но порождает сложные нерешенные проблемы. Как и геометрия, она визуально приятна. Эти два аспекта, наряду с их разнообразными приложениями, делают теорию графов идеальным предметом для включения в учебные программы по математике»[5].

Возникновение этого раздела математики в XVIII веке связано с математическими головоломками. Достаточно продолжительное время теория графов была «несерьёзна» и целиком связана с играми и развлечениями. Такая судьба теории графов повторяет судьбу теории вероятностей, также сначала находившей себе применение только в азартных играх[3].

Краткая хронология событий развития теории графов[23]
Год Событие
1735 Представление Эйлером статьи по теории графов в Петербургской академии наук
1736 Год, считающийся годом рождения теории графов
1741 Публикация (датированная 1736 годом) статьи Эйлера по теории графов в Петербургской академии наук
1852 Френсис Гатри сообщает о проблеме четырёх красок Августу де Моргану
1879 Историческая публикация 1879 года с объяснением проблемы четырёх красок Артура Кэли
1879 Ошибочное «доказательство» проблемы четырёх красок Альфредом Кемпе
1890 Перси Джон Хивуд обнаружил ошибку в «доказательстве» Кемпе, доказал, что теорема верна, если «четыре» заменить на «пять», обобщил понятие «карты страны» с плоскости на замкнутые поверхности и сформулировал гипотезу Хивуда
1927 Лев Семёнович Понтрягин доказал (но не опубликовал) теорему Понтрягина — Куратовского
1930 Казимеж Куратовский опубликовал (независимо о Понтрягина) теорему Понтрягина — Куратовского
1936 Вышла первая в мире книга по теории графов Денеша Кёнига «Теория конечных и бесконечных графов»
1968 Группа математиков из разных стран доказала гипотезу Хивуда
1976 Группа математиков осуществили первое компьютерное доказательство теоремы о четырёх красках
1977 Фрэнк Харари основал журнал «Теория графов»

Геометрия положения

Отцом теории графов (как и топологии) считается швейцарский математик и механик Леонард Эйлер (1707—1783)[12], написавший статью с решением задачи о кёнигсбергских мостах. Эйлер писал[24]:

В дополнение к той ветви геометрии, которая занимается величинами и которой всегда уделялось самое большое внимание, существует другая ветвь, прежде почти неизвестная, о которой впервые упоминал Лейбниц, назвав ее геометрией положения [geometria situs]. Эта ветвь занимается только определением положения и его свойствами, она не включает ни измерений, ни вычислений, с ними связанных...

Леонард Эйлер. Решение одной задачи, связанной с геометрией положения

Далее Эйлер пишет, что не ясно, какие задачи и методы их решения относятся к геометрии положения. Тем не менее, Эйлер считал кёнигсбергские мосты именно такой задачей, о чём говорит и заголовок статьи. В действительности, Готфрид Лейбниц не позже 1679 года написал в письме к Христиану Гюйгенсу[24]:

Меня не удовлетворяет алгебра в том отношении, что не позволяет получить ни кратчайшие доказательства, ни самые красивые конструкции геометрии. Следовательно, в силу этого я считаю, что нам нужен другой способ анализа, геометрический или линейный, который прямо бы работал с положением точно так же, как алгебра работает с величиной...

Лейбниц, введя термин analysis situs (анализ положения), не заложил основы новой математической дисциплины, но указал направление будущих исследований[24].

Задача о кёнигсбергских мостах

Публикация статьи Леонарда Эйлера «Решение одной задачи, связанной с геометрией положения» о решении задачи о кёнигсбергских мостах имеет следующую историю:

Leonhardi Euleri. Solutio problematis ad geometriam situs pertinentis / Commentarii academiae scientiarum Petropolitanae. 8 (1736). 1741. P. 128—140.

В переводе[27]:

Леонард Эйлер. Решение одной задачи, связанной с геометрией положения / Труды Петербургской академии наук. 8 (1736). 1741. С. 128—140.

Поскольку выход статьи Эйлера из печати датируется 1736 годом (и обоих писем тоже), этот год назначен датой рождения теории графов[16].

Эйлер в своей статье так сформулировал задачу о семи кёнигсбергских мостах[27]:

В городе Кенигсберге, в Пруссии, есть остров, называемый Кнайпхоф; река, окружающая его, делится на два рукава, что можно увидеть на рисунке. Рукава этой реки пересекают семь мостов а, Ь, с, d, e, f и g. В связи с этими мостами был поставлен вопрос, можно ли совершить по ним прогулку так, чтобы пройти по каждому из этих мостов, причём ровно по одному разу.

Леонард Эйлер. Решение одной задачи, связанной с геометрией положения

В конце статьи Эйлер записал выводы вполне современным языком[28]:

20. Значит в каждом возможном случае следующее правило позволяет непосредственно и без труда выяснить, можно ли осуществить прогулку по всем мостам без повторений:

Если имеется более двух областей, в которые ведёт нечётное число мостов, можно заявить с уверенностью, что такая прогулка невозможна.

Если, однако, имеются только две области, в которые ведёт нечётное число мостов, то прогулка осуществима при условии, что она начинается в одной из этих двух областей.

Если, наконец, нет ни одной области, в которую ведёт нечётное число мостов, прогулка с требуемыми условиями осуществима, причём начинаться она может в любой области.

Следовательно, с помощью этого правила поставленная задача может быть полностью решена.

Леонард Эйлер. Решение одной задачи, связанной с геометрией положения

Теорема о четырёх красках

Теорема о четырёх красках — наиболее известное утверждение в теории графов (а может, и во всей математике), долгое время не поддающееся доказательству (а может, так и не доказанное). Эту легендарную задачу в течение пяти минут может объяснить любой математик любому прохожему, после чего оба, понимая проблему, решить её не смогут. Следующая цитата из ставшей исторической статьи 1965 года американского математика Кеннет О. Мэй[en][29]:

[Предполагается, что] любую карту на плоскости или поверхности шара можно раскрасить только четырьмя красками таким образом, чтобы никакие две смежные страны не были одного и того же цвета. Каждая страна должна состоять из одной связной области, а смежными называются страны, которые имеют общую границу в виде линии (а не просто одной общей точки). Эта гипотеза тесно связана с наиболее модными направлениями теории графов, а в разделе математики, называемом комбинаторной топологией, она действовала подобно катализатору. На протяжении более чем половины столетия многие математики (кое-кто говорит, что все) предпринимали попытки решить эту проблему, но смогли доказать справедливость гипотезы только для отдельных случаев... Единодушно признается, что гипотеза справедлива, но маловероятно, что она будет доказана в общем случае. Кажется, что ей на некоторое время предназначено сохранить отличительную черту быть одновременно и наиболее простой, и наиболее заманчивой нерешённой проблемой математики.

May K. O. The origin of the four-color conjecture / Isis. 56 (1965). P. 346—348
Карта стран и соответствующий ей граф

Теорема о четырёх красках относится к теории графов, так как каждая карта порождает граф следующим образом:

  • страны (включая внешнюю область) — это вершины;
  • вершины смежных стран соединяются ребром.

Этот граф рисуется на плоскости без пересечения рёбер. Теорема о четырёх красках доказана, если доказано, что вершины любого подобного графа можно раскрасить четырьмя красками так, чтобы смежные вершины имели разные цвета[30].

Теорема о четырёх красках имеет легендарную историю, интересную и иногда непонятную[29][31]:

  • имеются неподтверждённые сообщения, что Августу Мёбиусу эта проблема была известна в 1840 году;
  • точно известно, что Френсис Гатри[en], южноафриканский математик и ботаник, 23 октября 1852 года сообщил шотландскому математику и логику Августу де Моргану о данной проблеме, после чего велись обсуждения в узких кругах математиков и дилетантов;
  • историческая публикация 1879 года с объяснением проблемы

Cayley Arthur. On the Colouring of Maps // Proceedings of the Royal Geographical Society. 1879. Vol. 1, No. 4. P. 259–261

принадлежит Артуру Кэли, английскому математику. Теперь проблема приобретает большую известность;

  • в том же 1879 году вышла публикация ошибочного «доказательства» проблемы

Kempe A. B. On the Geographical Problem of the Four Colours // American Journal of Mathematics. 1879. Vol. 2, No. 3. P. 193–200

английского церковного юриста и любителя математики Альфреда Кемпе[en]. Это было не только первое из многих ошибочных «доказательств», но и самое «правильное»: на основе идей этой статьи удалось сначала доказать, что пяти красок хватит, а затем провести полное компьютерное доказательство теоремы о четырёх красках;

  • ошибку в «доказательстве» Кемпе через 11 лет в 1890 году обнаружил английский математик Перси Джон Хивуд, и в опубликованной по этому поводу статье

Heawood P. J. Map colour theorems //Quarterly Journal of Pure and Applied Mathematics. 24 (1890). P. 332—338

также доказал, что теорема верна, если «четыре» заменить на «пять», и, кроме того, обобщил понятие «карты страны» с плоскости на замкнутые поверхности и сформулировал гипотезу Хивуда;

  • в 1968 году группа математиков из разных стран доказала гипотезу Хивуда;
  • в 1976 году американские математики осуществили первое компьютерное доказательство теоремы о четырёх красках.

Теорема Понтрягина — Куратовского

Теория графов содержит топологические аспекты. Первым результатом в этом направлении является формула Эйлера в теории графов, полученная им в 1736 году. Следующий результат в виде теоремы Понтрягина — Куратовского был получен только через 191 год: в 1927 году советский математик Лев Семёнович Понтрягин доказал (но не опубликовал) этот результат, а в 1930 году польский математик Казимеж Куратовский опубликовал его (независимо от Понтрягина). Теорему Понтрягина — Куратовского также называют критерием Понтрягина — Куратовского[32]:

Планарный граф — это граф, который можно нарисовать на плоскости без пересечения рёбер. Граф, который нельзя так нарисовать, называется непланарным. Ниже показаны два важных непланарных графа, обозначаемых [math]\displaystyle{ K_5 }[/math] и [math]\displaystyle{ K_{3,3} }[/math], их нельзя нарисовать на плоскости без пересечения рёбер. Эти два графа выделяются среди других тем, что только они используются в критерии Понтрягина — Куратовского[33].

Доказательство без слов непланарности тессеракта. Вверху — тессеракт содержит [math]\displaystyle{ K_5 }[/math], внизу — [math]\displaystyle{ K_{3,3} }[/math]

До появления критерия Понтрягина — Куратовского доказательство планарности или непланарности графов было очень сложной проблемой теории графов[33].

Теорема Понтрягина — Куратовского. Граф планарен тогда и только тогда, когда он ни в каком виде не содержит графов [math]\displaystyle{ K_5 }[/math] и [math]\displaystyle{ K_{3,3} }[/math].

Справа приведены два простых доказательства без слов того, что остов четырёхмерного гиперкуба (тессеракта) как граф непланарен. На верхнем рисунке показано, что в тессеракте содержится полный граф с пятью вершинами [math]\displaystyle{ K_5 }[/math], на нижнем — полный двудольный граф (3, 3) [math]\displaystyle{ K_{3,3} }[/math].

Основные легендарные издания

Один из отцов современной теории графов Фрэнк Харари

Ранняя теория графов — теория графов до 1936 года, до выхода книги Кёнига[24].

В 1936 году вышла первая в мире книга по теории графов венгерского математика Денеша Кёнига «Теория конечных и бесконечных графов» на немецком языке:

Kőnig, Dénes. Theorie der endlichen und unendlichen Graphen. Leipzig: Akademische Verlagsgesellschaf, 1936.

Эта книга состояла из 248 страниц (без учёта предисловия, оглавления и библиографии) и большей части результатов теории графов за 200 лет — с даты выхода статьи Леонарда Эйлера с решением задачи о кёнигсбергских мостах[16].

Современная теория графов — теории графов, начиная с 1936 года, с момента выхода книги Кёнига. С времени выхода книги Кёнига, но в основном с конца Второй мировой войны, теория графов начала ускоренно развиваться. Этот рост заключался не только в увеличении числа книг по теории графов, но и в том, что развились специальные аспекты теории графов[16]:

Один из отцов современной теории графов — Фрэнк Харари, который в 1977 году основал журнал «Теория графов»[en][34][16].

Книга Фрэнка Харари «Теория графов» стала классической де-факто[35][36].

Книга Рейнгарда Дистеля «Теория графов» (выдержала 5 редакций) не имеет конкурентов в русскоязычной библиографии. Этот канон вводного курса в теорию графов инициировал отождествление некоторых областей обучения и исследования[2][37].

Описание ранней теории графов

Ранняя теория графов продолжалась ровно 200 лет, от первой статьи по теории графов Леонарда Эйлера 1736 года до первой книги по теории графов Денеша Кёнига 1936 года. В предисловии к книге написано, что изложение теории графов ограничивается областью абсолютных графов (абстрактных графов в современной терминологии), а относительная теория графов (топологическая теория графов в современной терминологии) и перечислительная теория графов не рассматриваются. Ниже приведено полное название книги Денеша Кёнига и её краткое оглавление, состоящее из названий глав[16][38][39].

  • Теория конечных и бесконечных графов. Комбинаторная топология одномерных комплексов (нем. Theorie der endlichen und unendlichen Graphen. Kombinatorische Topologie der Streckenkomplexe, англ. Theory of finite and infinite graphs).
Глава I. Основы (нем. die Grundlahen, англ. foundations).
Глава II. Эйлеровы и гамильтоновы обходы (нем. Eulersche und Hamiltonsche Linien, англ. Euler trails and Hamiltonian cycles).
Глава III. Задача о лабиринте (нем. das Labyrinthenproblem, англ. the Labyrinth Problem).
Глава IV. Ациклические графы (нем. kreislose Graphen, англ. acyclic graphs).
Глава V. Центры деревьев (нем. Zentren der Bäume, англ. centers of trees).
Глава VI. Специальные методы исследования бесконечных графов (нем. Spezielle Untersuchungen über unendliche Graphen, англ. infinite graphs).
Глава VII. Основные задачи ориентированных графов (нем. Basisprobleme für gerichtete Graphen, англ. basis problems for directed graphs).
Глава VIII. Некоторые приложения ориентированных графов (логикатеория игртеория групп) (нем. Verschiedene Anwendungen der gerichteten Graphen (Logik — Theorie der Spiele — Gruppentheorie), англ. various applications of directed graphs (logic – theory of games – group theory)).
Глава IX. Циклы, звёзды и соответствующие линейные формы (нем. Zyklen und Büschel und die entsprechenden linearen Formen, англ. (directed) cycles and stars and the corresponding linear forms).
Глава X. Композиция циклов и звёзд (нем. Komposition der Kreise und der Büschel, англ. composition of cycles and stars).
Глава XI. Факторизация регулярных конечных графов (нем. Faktorenzerlegung regulärer endlicher Graphen, англ. factorization of regular finite graphs).
Глава XII. Факторизация регулярных конечных графов третьей степени (нем. Faktorenzerlegung regulärer endlicher Graphen dritten Grades, англ. factorization of regular finite graphs of degree 3).
Глава XIII. Факторизация регулярных бесконечных графов (нем. Faktorenzerlegung regulärer unendlicher Graphen, англ. factorization of regular infinite graphs).
Глава XIV. Разделяющие вершины и множества вершин (нем. trennende Knotenpunkte und Knotenpunktmengen, англ. separating vertices and sets vertices).

Проблемы представления теории графов

Проблемы терминологии

Обычно упоминаемый факт пестроты и неупорядоченности терминологии и обозначений в теории графов — частично следствие того, что этой наукой интересуются специалисты из весьма разнообразных областей знания[40]. Кроме того, в терминологии самой теории графов имеется некоторый люфт, немного затрудняющий изучение и представление теории графов. С особой осторожностью приходится применять такие понятия, как «маршрут», «путь» и «цепь», которые, означая почти одно и то же, могут принимать разные конкретные значения у разных авторов[36].

Вот что писал в начале своей классической книги Фрэнк Харари (переизданной в 2003 году)[41][42].

Большинство специалистов по теории графов употребляют в книгах, статьях и лекциях свою собственную терминологию. На конференциях по теории графов каждый выступающий, чтобы избежать неправильного понимания, считает необходимым определить прежде всего язык, которым он будет пользоваться. Даже само слово «граф» не является священным. Некоторые авторы действительно определяют «граф» как граф, другие же имеют в виду такие понятия, как мультиграф, псевдограф, ориентированный граф или сеть. Нам кажется, что единообразие в терминологии теории графов никогда

не будет достигнуто, но, может быть, оно и ни к чему.

Харари Фрэнк. Теория графов, 2003

Наиболее радикален взгляд с позиций конструктивной математики[43][44].

…нам кажется не слишком важным, как назвать точки, соединённые линиями: «графом», «орграфом», «мультиграфом», «псевдографом». Графы, построенные на основе реальных структур, слишком разнообразны, чтобы их классифицировать по тем признакам, о которых говорили родоначальники этой науки. Нас гложет сомнение: нужно ли вообще различать такие понятия, как «ребро» — «дуга», «контур» — «цикл», «путь» — «маршрут», «центр» — «центроид» и т. д. Ведь на практике (а графы в основном имеют прикладное значение) все эти ряды терминов забываются и заменяются каки-либо одним словом: «граф», «ребро», «цикл», «путь», «центр». Информатику трудно понять, почему граф с петлёй уже не является полноценным графом, а только «псевдографом». …Разве информатик или кто-либо другой из специалистов не в состоянии сам решить, каким словом ему пользоваться — «путь» или «маршрут», — и через какие буквы его маршрут-путь лучше обозначить? Граф — это наглядный образ, достоинство которого как раз и состоит в том, что он требует минимума слов и символов.

Акимов О. Е. Дискретная математика: логика, группы, графы, 2003

Программисты тоже вносят свою лепту в разброс терминологии[45].

В программистском мире нет единого мнения о том, какой из двух терминов «граф» или «сеть» более употребителен. Мы выбрали термин «сеть», так как он, по-видимому, чаще встречается в прикладных областях.

Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов, 1981

Но в изданиях последних лет речь идёт уже о «в основном стандартной» терминологии[46][47].

Используемая в этой книге терминология в основном стандартна. Альтернативы, конечно, существуют и некоторые из них даются при первом определении понятия.

Дистель Р. Теория графов, 2002. Reinhard Diestel. Graph Theory, 2016

Например, в фундаментальном труде в области кибернетики «Алгоритмы: построение и анализ» используется стандартная терминология[48].

При описании времени работы алгоритма над данным графом [math]\displaystyle{ G = (V, E) }[/math] мы обычно определяем размер входного графа в терминах количества его вершин [math]\displaystyle{ |V| }[/math] и количества рёбер [math]\displaystyle{ |E| }[/math] графа, т. е. размер входных данных описываем двумя, а не одним параметром.

Кормен Т. Х. и др. Алгоритмы: построение и анализ, 2009

Проблемы рисования графов

Абстрактные графы можно изображать на плоскости по-разному. Вопрос о том, изоморфны ли данные изображения графов, то есть изоморфны ли данные изображения графов одному абстрактному графу, может быть нетривиальным. Иногда этот вопрос решается просто. Например, следующие два графа неизоморфны, поскольку они имеют разное число вершин[49].

Следующие два графа также неизоморфны, поскольку они имеют разное число рёбер[49].

Но чтобы показать, что неизоморфны два следующих графа, требуется более тонкое рассуждение. Первый граф имеет замкнутый обход всех вершин по одному разу (гамильтонов цикл):

1-2-3-4-8-7-6-5-1,

а второй граф не имеет. То есть при любой нумерации вершин второго графа нельзя получить на нём гамильтонов цикл, соответствующий гамильтонову циклу первого графа[49].

Если сразу не ясно, как доказать неизоморфность графов, то вопрос о наличии изоморфизма может оказаться труден. Два следующих изоморфных графа на первый взгляд неизоморфны[49].

Проблемы литературы

На какие источники лучше ориентироваться, представляя теорию графов? Вот отзывы о некоторых книгах.

  • Харари Фрэнк. Теория графов, 2003.
Книга Фрэнка Харари стала классической де-факто[35][36].

Прошло 30 лет после выпуска монографии Ф. Харари «Теория графов», но её привлекательные качества нисколько не потускнели. Унификация терминологии, проведённой автором и широко распространенной благодаря этой книге, стала общепринятой. Преподавание теории графов с использованием книги Ф. Харари ведется во многих вузах нашей страны.

Предисловие В. П. Козырева (2002) к книге: Харари Фрэнк. Теория графов, 2003
В книге Герберта Фляйшнера «Эйлеровы графы и смежные вопросы» приведён список книг, рекомендуемых в качестве введения в теорию графов. Это книги на английском языке, из которых только первая переведена на русский: это книга Фрэнка Харари «Теория графов»[50].
  • Дистель Р. Теория графов, 2002.
Книга Рейнгарда Дистеля «Теория графов» (выдержала 5 редакций) не имеет конкурентов в русскоязычной библиографии. Этот канон вводного курса в теорию графов инициировал отождествление некоторых областей обучения и исследования[2][37].

…сейчас хватает переводов на русский язык учебников по теории графов, в первую очередь замечательной книги Дистеля. И, увы, только книги Дистеля.

…Именно работа над переводом 5-го издания книги Дистеля стимулировала продолжение работы над моей книгой в 2017 году после долгого перерыва. Я заметил, насколько велика «симметрическая разность» его книги и моей.

Карпов Д. В. Теория графов. 2017 или позже

Классификация теории графов

Классификацию теории графов приходится собирать по разным источникам.

  • Теория графов[16]:
  • Теория графов[51]:

Основные термины теории графов

Теория графов, как и любая современная математическая модель, использует стенографические символы, экономящие мышление и делающие математическую модель гибкой и эффективной[53].

Здесь деликатно и сжато приведены первые термины основной части теории графов. Большинство стандартных терминов настолько наглядны, что легко усваиваются. Необходимо достаточно строго определить ряд понятий, чтобы в дальнейшем иметь возможность их широко использовать[41][54][55].

Графы (англ. graphs)

Краткая, но представительная сводка основных определений теории графов, примыкающих к понятию собственно графа. Эти понятия вводятся одно за другим достаточно систематически, хотя и несколько утомительно[56][57][58].

Вершина графа (узел, точка) — это элемент множества [math]\displaystyle{ V }[/math] графа. Обозначение: [math]\displaystyle{ v \in V(G) }[/math].
Ребро графа (линия, дуга) — это элемент множества [math]\displaystyle{ E }[/math] графа. Обозначение: [math]\displaystyle{ e \in E(G) }[/math].
Ребро в старых изданиях могли также назвать ветвью, звеном[60] или кривой[61].
Обычно граф представляют диаграммой, которую часто и называют графом.
Порядок графа — это число вершин графа [math]\displaystyle{ G }[/math]. Обозначение: [math]\displaystyle{ |G| }[/math]. Число рёбер графа обозначается [math]\displaystyle{ \|G\| }[/math].
Пустой граф — это граф без вершин. Обозначение: [math]\displaystyle{ G (\varnothing, \varnothing) \equiv \varnothing }[/math].
Тривиальный граф — это граф порядка 0 или 1.
  • Концевые вершины, или концы, ребра — это две вершины, которые определяют ребро. Ребро соединяет свои концевые вершины. Ребро и его концевая вершина инцидентны, или одно находится при другом. Множество всех рёбер при вершине [math]\displaystyle{ v \in V(G) }[/math] обозначается [math]\displaystyle{ E(v) }[/math].
Смежные, или соседние, вершины — это две вершины, инцидентные одному ребру.
Смежные рёбра — это рёбра, которые имеют общий конец.
Полный граф — это граф, все вершины которого попарно смежны, то есть любые две вершины соединены ребром. Обозначение полного графа с [math]\displaystyle{ n }[/math] вершинами: [math]\displaystyle{ K_n }[/math][62] (иногда [math]\displaystyle{ K^n }[/math]). Граф [math]\displaystyle{ K_3 }[/math] называется треугольником.
Двудольный граф, или биграф, — это граф, который допускает разбиение множества вершин на два подмножества такое, что:
  • концы любого ребра принадлежат разным подмножествам разбиения;
  • вершины в каждом подмножестве разбиения попарно несмежны.
Полный двудольный граф— это двудольный граф, в котором каждые две вершины из разных подмножеств разбиения смежны.
Обозначение полного двудольного графа с числом вершин в подмножествах разбиения [math]\displaystyle{ n }[/math] и [math]\displaystyle{ m }[/math]: [math]\displaystyle{ K_{n, m} }[/math][62].
Изолированная вершина графа — это вершина с нулевой степенью.
Концевая, или висячая, вершина графа — это вершина с первой степенью.
Минимальная степень вершин графа [math]\displaystyle{ G }[/math] обозначается через [math]\displaystyle{ \min \deg G \equiv \delta(G) }[/math], максимальная степень[math]\displaystyle{ \max \deg G \equiv \Delta(G) }[/math].
Регулярный, или однородный граф — это граф, все вершины которого имеют одну и ту же степень. Другими словами, для такого графа [math]\displaystyle{ G }[/math] его степени [math]\displaystyle{ \delta(G) = \Delta(G) }[/math].
r-регулярный, или r-однородный, граф — это граф [math]\displaystyle{ G }[/math] с [math]\displaystyle{ \delta(G) = \Delta(G) = r }[/math]. Такие графы называются также просто регулярными, или однородными. 3-регулярный граф называется кубическим.
Каждое ребро графа инцидентно двум вершинам, и в сумму степеней вершин графа каждое ребро вносит двойку. Получаем исторически первую теорему теории графов, доказанную Леонардом Эйлером в статье, датированной 1736 годом (первый результат теории графов в той же статье — решение задачи о кёнигсбергских мостах).
Теорема. Сумма степеней вершин графа равна удвоенному числу его рёбер.
Следствие 1. В любом графе число вершин с нечётными степенями чётно.
Следствие 2. Любой кубический граф имеет чётное число вершин.

Типы графов (англ. types of graphs)

Продолжение краткой, но представительной сводки основных теоретико-графовых определений, примыкающих к понятию графа. Для полноты перечислим ряд разновидностей графов[64][65][66].

Ясно, что изоморфизм — это отношение эквивалентности на графах.
Обычно изоморфные графы не различают и пишут [math]\displaystyle{ G = H }[/math] вместо [math]\displaystyle{ G \simeq H }[/math], понятие изоморфизма широко используется при изображениях графов.
Инвариант графа — это число, которое принимает одно и то же значение на изоморфных графах.
Полный набор инвариантов определяет граф с точностью до изоморфизма. Например, число вершин и число рёбер графа — полный набор инвариантов для любого графа с числом вершин, не большим 3.
  • Подграф графа — это граф, все вершины и рёбра которого принадлежат исходному графу. Исходный граф — это надграф своего подграфа. Другими словами, граф [math]\displaystyle{ G }[/math] содержит граф [math]\displaystyle{ G' }[/math]: [math]\displaystyle{ G \subseteq G' }[/math].
Óстовный подграф графа — это подграф, содержащий все вершины своего надграфа.
Порождённый, или индуцированный, подграф графа — это подграф, содержащий все рёбра надграфа для множества своих вершин, то есть две вершины порождённого подграфа смежны тогда и только тогда, когда они смежны в надграфе.
  • Мультиграф — это конечные непересекающиеся множество и мультимножество, причём мультимножество состоит из 2-элементных подмножеств множества. Обозначение: [math]\displaystyle{ G = (V, E) }[/math][67], где любой элемент [math]\displaystyle{ e \in E }[/math] мультимножества [math]\displaystyle{ e \in V \times V }[/math] и [math]\displaystyle{ V \cap E = \varnothing }[/math].
В мультиграфе пара вершин может быть соединена более чем одним ребром.
Кратные рёбра — это рёбра, соединяющие одну и ту же пару вершин.
Другими словами, мультиграф — это граф с кратными рёбрами, а граф — это мультиграф без кратных рёбер.
Простой, или обыкновенный, граф — это граф без кратных рёбер, если графом назвать мультиграф.
Псевдограф — это конечные непересекающиеся множество и мультимножество, причём мультимножество состоит как из 1-элементных, так и из 2-элементных подмножеств множества. Обозначение: [math]\displaystyle{ G = (V, E) }[/math], где мультимножество [math]\displaystyle{ E \subseteq V \cup (V \times V) }[/math] и [math]\displaystyle{ V \cap E = \varnothing }[/math].
В псевдографе ребро может соединять вершину саму с собой.
Петля— это ребро, у которого концевые вершины совпадают.
Иногда псевдограф называют мультиграфом.
Гиперграф — это конечные непересекающиеся множество и мультимножество, причём мультимножество состоит из любых подмножеств множества. Обозначение: [math]\displaystyle{ G = (V, E) }[/math], где любой элемент [math]\displaystyle{ e \in E }[/math] мультимножества принадлежит булеану: [math]\displaystyle{ e \in P(V) }[/math], и [math]\displaystyle{ V \cap E = \varnothing }[/math].
Другими словами, в гиперграфе ребро может соединять не только одну или две вершины, но произвольное число вершин.
Ориентированный граф, или орграф — это псевдограф, рёбра которого ориентированы, то есть имеют начальную вершину и концевую вершину. Обозначение: [math]\displaystyle{ D = (V, E) }[/math][68], где мультимножество [math]\displaystyle{ E }[/math] состоит из упорядоченных пар [math]\displaystyle{ v, u \in V }[/math] и [math]\displaystyle{ V \cap E = \varnothing }[/math].
Ориентированное ребро, или дуга — это ребро орграфа.

Пути и связность (англ. paths and connectivity)

Свойство графа, считающееся одним из самых простых и в то же время основных, это свойство связности. Здесь представлен ближайший круг понятий этого свойства связности[69][70][71].

  • Путь, или простой путь, в графе — это подграф, представляющий собой последовательность различных вершин, в которой каждая вершина соединена со следующей ребром. Обозначение пути (англ. path): [math]\displaystyle{ P = (V, E) }[/math], где
[math]\displaystyle{ V = \{x_0, x_1, x_2, \dots, x_k\} }[/math], [math]\displaystyle{ E = \{x_0x_1, x_1x_2, x_2x_3, \dots, x_{k-1}x_k\} }[/math],
все [math]\displaystyle{ x_i }[/math] различны.
В теоретических и практических работах путь может называться по-разному, например, простая цепь.
Концевые вершины, или концы, пути — это вершины [math]\displaystyle{ x_0 }[/math] и [math]\displaystyle{ x_k }[/math]. Вершины [math]\displaystyle{ x_0 }[/math] и [math]\displaystyle{ x_k }[/math] соединены путём [math]\displaystyle{ P }[/math].
Внутренние вершины пути — это вершины [math]\displaystyle{ x_1, x_2, \dots, x_{k-1} }[/math].
Длина пути — это число рёбер пути. Обозначение пути длиной [math]\displaystyle{ k }[/math]: [math]\displaystyle{ P_k }[/math].
Цикл, или простой цикл, в графе — это подграф, представляющий собой замкнутую последовательность различных вершин, в которой каждая вершина соединена со следующей ребром. Обозначение цикла (англ. cycle): [math]\displaystyle{ C = (V, E) }[/math], где
[math]\displaystyle{ V = \{x_0, x_1, x_2, \dots, x_k, x_0\} }[/math], [math]\displaystyle{ E = \{x_0x_1, x_1x_2, x_2x_3, \dots, x_{k-1}x_k, x_kx_0\} }[/math],
все [math]\displaystyle{ x_i }[/math] различны.
Длина цикла — это число рёбер цикла. Обозначение цикла длиной [math]\displaystyle{ k }[/math]: [math]\displaystyle{ C_k }[/math].
Хорда цикла — это рёбро, которое не принадлежит циклу и соединяет две его вершины.
Теорема. Любой граф [math]\displaystyle{ G }[/math] с минимальной степенью вершин [math]\displaystyle{ \delta(G) \geqslant 2 }[/math] содержит цикл длины не менее [math]\displaystyle{ \delta(G) + 1 }[/math].
  • Связный граф — это граф, у которого две любые вершины соединены путём.
Компонента связности, или компонента, графа — это максимальный связный подграф графа.
Несвязный граф состоит по крайней мере из двух компонент связности.
Компонента, будучи связной, непуста; поэтому пустой граф не имеет компонент.
Разделяющая вершина, или точка сочленения графа — это вершина графа, при удалении которой число компонент связности графа увеличивается.
Мост графа — это ребро графа, при удалении которого число компонент связности графа увеличивается.
Конечные вершины моста — это разделяющие вершины.
Ясно, что мосты в графе — это те и только те рёбра, которые не принадлежат никакому циклу.
Неразделимый граф — это непустой связный граф без разделяющих вершин.
  • Маршрут в графе — это подграф, представляющий собой последовательность вершин, в которой каждая вершина соединена со следующей ребром. Обозначение маршрута: [math]\displaystyle{ (V, E) }[/math], где
[math]\displaystyle{ V = \{x_0, x_1, x_2, \dots, x_k\} }[/math], [math]\displaystyle{ E = \{x_0x_1, x_1x_2, x_2x_3, \dots, x_{k-1}x_k\} }[/math].
В маршруте могут быть совпадающие рёбра и врешины.
Ясно, что если все вершины в маршруте различны, то это путь.
Маршрут замкнут, если [math]\displaystyle{ x_0 = x_k }[/math], иначе маршрут открыт.
Эйлеров цикл, или эйлеров обход, графа — это замкнутый маршрут в графе, который проходит по всем рёбрам графа ровно один раз.
Эйлеров граф — это граф, который имеет эйлеров цикл.
Ясно, что эйлеров граф связен.
Теорема (Эйлер, 1736). Связный граф Эйлеров тогда и только тогда, когда все вершины графа имеют чётную степень.
Следствие. Связный граф с двумя вершинами нечётной степени имеет открытый маршрут, проходящий по всем рёбрам ровно один раз. Причём этот маршрут начинается в одной из вершин с нечётной степенью и заканчивается в другой.

Деревья (англ. trees)

Четыре семейства графов были представлены выше, это полные, двудольные, регулярные и эйлеровы графы. Ещё одно семейство графов в разных областях науки называется одинаково — деревья. Деревья находят приложения в различных областях знания и имеют особый статус в самой теории графов по причине предельной простоты их строения, и при решении задачи о графах её сначала могут исследовать на деревьях[72][73][74].

Дерево
  • Лес — это граф без циклов.
Дерево — это связный лес. Обозначение дерева (англ. tree): [math]\displaystyle{ T }[/math].
Другими словами, лес — это граф, компоненты которого суть деревья.
Лист — это вершина степени 1 в дереве.
Любое нетривиальное дерево имеет по крайней мере два листа. При удалении листа остаётся снова дерево.
Теорема. Для графа следующие утверждения равносильны:
(i) граф — дерево;
(ii) каждые две вершины графа соединены единственным путём;
(iii) граф — минимальный связный, то есть граф связен и становится несвязным при удалении любого ребра;
(iv) граф — максимальный ациклический, то есть граф не имеет цикла и цикл возникает при соединении ребром любых двух несмежных вершин.
Следствие 1. Любой связный граф имеет остовное дерево.
Доказательство. Из равносильности условий (i) и (iii) теоремы следует, что любой минимальный остовный подграф — дерево.
Следствие 2. Связный [math]\displaystyle{ n }[/math]-вершинный граф — дерево тогда и только тогда, когда он имеет ровно [math]\displaystyle{ n - 1 }[/math] ребро.
Корневое дерево (дерево с выделенной вершиной)
  • Корень дерева — это фиксированная вершина дерева. Обозначение корня (англ. root): [math]\displaystyle{ r }[/math].
Корневое дерево — это дерево с корнем.
Древесный порядок — это частичный порядок на вершинах дерева, определяемый деревом и его корнем: для любых двух вершин [math]\displaystyle{ x }[/math] и [math]\displaystyle{ y }[/math] дерева [math]\displaystyle{ x \leqslant y }[/math], если [math]\displaystyle{ x }[/math] принадлежит пути с концами [math]\displaystyle{ r }[/math] и [math]\displaystyle{ y }[/math].
В древесном порядке:
  • корень дерева [math]\displaystyle{ r }[/math] — наименьший элемент;
  • любой лист дерева, отличный от корня, — наибольший элемент;
  • концы любого ребра дерева сравнимы.
Цепь, или линейно упорядоченное множество, — это частично упорядоченное множество, в котором любая пара элементов сравнима.
Теорема. Вершины пути на дереве с концами [math]\displaystyle{ r }[/math] и [math]\displaystyle{ y }[/math] образуют цепь, где [math]\displaystyle{ y }[/math] — любая фиксированная вершина дерева, отличная от корня [math]\displaystyle{ r }[/math].
Динамика поиска в глубину на графе
Нормальное остовное дерево также называется деревом поиска в глубину по способу их применения в компьютерном поиске.
Теорема. Любой связный граф имеет нормальное остовное дерево, причём корнем дерева может быть любая вершина графа.
На иллюстрации ниже показаны два возможных остовых дерева полного графа [math]\displaystyle{ K_4 }[/math]. Остовые деревья представлены жирными рёбрами. Левое остовное дерево — нормальное, если его корень — вершина A или D; при корнях B или C нормальности не получается, поскольку тогда концы ребра, например, A-D несравнимы. Правое остовное дерево не может быть нормальным при любом выборе его корня, всегда найдётся ребро с несравнимыми концами.

Современное состояние теории графов

Современному состоянию теории графов отвечает стандартный учебник, сочетающий в себе классику и активнуюе математику и охватывающий основной материал предмета. Оглавление подобной книги даёт краткое представление о современном состоянии теории графов, из которого и состоит этот раздел[75].

Паросочетания, покрытия и упаковка (англ. matching, covering and packing)

Как найти максимально возможное число независимых рёбер в графе? Можно ли все вершины графа разбить на пары? Ответы начинаются со следующих понятий[76][77][78].

  • Паросочетание покрывает множество вершин графа, если каждая из вершин множества входит в какое-нибудь ребро паросочетания.
Теорема о свадьбах
Теорема о свадьбах (Холл, 1935). Двудольный граф содержит паросочетание, покрывающее одну из долей, тогда и только тогда, когда любое число вершин этой доли связаны с не меньшим числом вершин другой доли.
Древесность — это минимальное число лесов, на которые можно разбить граф.
Например, граф [math]\displaystyle{ K_5 }[/math] имеет 5 вершин, поэтому максимальный размер его остовного дерева 4. С другой стороны, граф [math]\displaystyle{ K_5 }[/math] имет 10 рёбер, поэтому для их покрытия потребуется минимум 3 дерева. Следовательно, показанное ниже разбиение графа [math]\displaystyle{ K_5 }[/math] на 3 леса минимально.

Связность (англ. connectivity)

Более глубоко связность графа раскрывается путём использования понятий [math]\displaystyle{ k }[/math]-связности, блока и независимости путей[79][78].

  • имеет больше [math]\displaystyle{ k }[/math] вершин;
  • остаётся связным после удаления менее [math]\displaystyle{ k }[/math] любых вершин.
Например, любой непустой граф 0-связен, а любой связный граф с более чем одной вершиной 1-связен. Двусвязный граф остаётся связным при удалении любой вершины.
Связность, или вершинная связность, графа [math]\displaystyle{ \kappa }[/math] — это наибольшее целое число [math]\displaystyle{ k }[/math], при котором граф [math]\displaystyle{ k }[/math]-связен.
Например, [math]\displaystyle{ \kappa = 0 }[/math] тогда и только тогда, когда граф:
  • либо несвязен;
  • либо состоит из одной вершины.
Связность связного графа с точкой сочленения равна 1. Полный граф [math]\displaystyle{ K_n }[/math] остаётся связным при удалении любого числа вершин и имеет одну вершину после удаления [math]\displaystyle{ n - 1 }[/math] вершины, поэтому [math]\displaystyle{ \kappa(K_n) = n - 1 }[/math] при всех [math]\displaystyle{ n \geqslant 1 }[/math].
Аналогично определяется рёберно [math]\displaystyle{ k }[/math]-связный граф и рёберная связность графа [math]\displaystyle{ \lambda }[/math].
Например, [math]\displaystyle{ \lambda = 0 }[/math] тогда и только тогда, когда граф:
  • либо несвязен;
  • либо состоит из одной вершины.
Рёберная связность связного графа с мостом равна 1.
Связность , рёберная связность [math]\displaystyle{ \lambda }[/math] и минимальная степень вершин [math]\displaystyle{ \delta }[/math] связаны следующим неравенством.
Теорема (Уитни, 1932). Для любого графа [math]\displaystyle{ G }[/math] с числом вершин больше одной
[math]\displaystyle{ \kappa(G) \leqslant \lambda(G) \leqslant \delta(G) }[/math].
  • Блок графа — это максимальный связный подграф без точек сочленения.
У блока не своих точек сочленения, но вполне могут быть точки сочленения исходного графа.
Граф из одного блока может называться просто блоком.
Подграф является блоком тогда и только тогда, когда он:
  • максимальный двусвязный подграф;
  • мост со своими вершинами;
  • изолированная вершина.
Разные блоки в графе по причине своей максимальности могут пересекаться только по одной точке сочленения. Следовательно:
  • каждое ребро графа состоит в единственном блоке;
  • сам граф — это объединение блоков.
В этом смысле блоки — это двусвязные аналоги компонент связности. Только компоненты связности не пересекаются, а блоки могут пересекаться. Блоки вместе со способами их пересечения определяют грубую структуру графа — граф блоков и точек сочленения.
Граф блоков и точек сочленения графа — это двудольный граф с сериями вершин [math]\displaystyle{ a }[/math] и [math]\displaystyle{ B }[/math], построенный следующим образом:
  • вершины [math]\displaystyle{ a }[/math] соответствуют всем точкам сочленения исходного графа, вершины [math]\displaystyle{ B }[/math] — блокам;
  • ребро соединяет вершину [math]\displaystyle{ a }[/math] с вершиной [math]\displaystyle{ B }[/math], если точка сочленения [math]\displaystyle{ a }[/math] принадлежит блоку [math]\displaystyle{ B }[/math].
Теорема. Граф блоков связного графа — дерево.
Определение [math]\displaystyle{ k }[/math]-связности связано с удалением [math]\displaystyle{ k }[/math] вершин. Возможно, более наглядно такое определение: граф [math]\displaystyle{ k }[/math]-связен, когда две его любые вершины можно соединить [math]\displaystyle{ k }[/math] независимыми путями. Эти два определения эквивалентны, это двойственные формулировки одного и того же свойства.
Классическая теорема Менгера — один из камней в основании теории графов.
Теорема (Менгер, 1927). Для любых подмножеств вершин графа [math]\displaystyle{ A }[/math] и [math]\displaystyle{ B }[/math] минимальное число вершин, отделяющих [math]\displaystyle{ A }[/math] от [math]\displaystyle{ B }[/math], равно максимальному числу независимых путей из [math]\displaystyle{ A }[/math] в [math]\displaystyle{ B }[/math].
Глобальный вариант теоремы Менгера.
(i) Граф [math]\displaystyle{ k }[/math]-связен тогда и только тогда, когда между любыми двумя его вершинами имеется [math]\displaystyle{ k }[/math] независимых путей.
(ii) Граф рёберно [math]\displaystyle{ k }[/math]-связен тогда и только тогда, когда между любыми двумя его вершинами имеется [math]\displaystyle{ k }[/math] непересекающихся по рёбрам путей.
На следующем рисунке показан граф, у которого две несмежные белые вершины можно разделить удалением не меньше чем двух вершин. Из теоремы Менгера следует, что наибольшее число независимых путей между этими вершинами равно 2.

Планарные графы (англ. planar graphs)

Желательно, чтобы граф, нарисованный на листе бумаги, воспринимался как можно легче. Один из способов уменьшить хаос множества линий — избегать их пересечения. Можно ли нарисовать граф таким образом, чтобы рёбра не пересекались, то есть пересекались бы только в общих концевых вершинах[80][81][82]?

  • Плоский граф — это граф, нарисованный на плоскости без пересечения рёбер, то есть рёбра пересекаются только в общих концевых вершинах.
Грань плоского графа — это одна из открытых областей, получающихся после удаления графа из плоскости. Внешняя грань — это единственная неограниченная грань графа; остальные грани называются внутренними.
Теорема. У плоского леса только одна грань — внешняя.
Теорема (формула Эйлера, 1736). Для любого связного плоского графа с [math]\displaystyle{ n }[/math] вершинами, [math]\displaystyle{ m }[/math] рёбрами и [math]\displaystyle{ l }[/math] гранями верна формула
[math]\displaystyle{ n - m + l = 2 }[/math].
Следствие формулы Эйлера. Плоский граф с тремя или более вершинами имеет не более [math]\displaystyle{ 3n - 6 }[/math] рёбер.
  • Планарный граф — это граф, который можно нарисовать на плоскости как плоский.
Например, полный граф с четырьмя вершинами [math]\displaystyle{ K_4 }[/math] планарен.
Два легендарных графа непланарны:
Докажем, что граф [math]\displaystyle{ K_5 }[/math] непланарен. От противного. Предположим, что [math]\displaystyle{ K_5 }[/math] планарен. Тогда по следствию формулы Эйлера [math]\displaystyle{ K_5 }[/math] имеет не более [math]\displaystyle{ 3\cdot5 - 6 = 9 }[/math] рёбер. Но [math]\displaystyle{ K_5 }[/math] имеет 10 рёбер. Полученное противоречие доказывает, что граф [math]\displaystyle{ K_5 }[/math] непланарен.
  • Стягивание ребра графа — это удаление ребра из графа и слияние концевых вершин этого ребра в одну вершину вместе со своими рёбрами.
Теорема Понтрягина — Куратовского (1927, 1930), или теорема Куратовского (1930). Граф планарен тогда и только тогда, когда из него нельзя получить удалением рёбер и вершин с их рёбрами и последующим стягиванием рёбер ни граф [math]\displaystyle{ K_5 }[/math], ни граф [math]\displaystyle{ K_{3,3} }[/math].
Например, из непланарного графа Петерсена можно получить подобным образом:
  • граф [math]\displaystyle{ K_5 }[/math] стягиванием внешних маленьких рёбер, направленных к центру графа: 0—5, 1—6, 2—7, 3—8, 4—9;
  • граф [math]\displaystyle{ K_{3,3} }[/math] таким образом, как показано на следующем анимационном рисунке.

Раскраска (англ. colouring)

Сколькими цветами можно раскрасить страны на карте так, чтобы смежные страны имели разный цвет? Сколько дней заседает парламентский комитет, если каждый комитет заседает один день, а некоторые члены парламента служат в нескольких комитетах? Какова минимальная длина школьного расписания, если известно, как часто каждый преподаватель преподаёт в каждом классе[83][84]?

k-раскраска графа, или вершинная k-раскраска графа, или k-раскрашиваемость, — это вершинная раскраска графа в k цветов.
Хроматическое число графа, или вершинное хроматическое число графа, или k-хроматичность, — это минимальное k, при котором граф имеет k-раскраску. Обозначение: [math]\displaystyle{ \chi }[/math].
Например, граф 1-хроматичен, когда он имеет хотя бы одну вершину и не имеет рёбер. Полный граф [math]\displaystyle{ K_n }[/math] n-хроматичен. Граф-звезда с 5 вершинами 2-хроматичен. И все графы-звёзды 2-хроматичны. Более того, граф двудолен тогда и только тогда, когда он 2-хроматичен.
Теорема. У графа с m рёбрами
[math]\displaystyle{ \chi \leqslant \frac12 + \sqrt{2m + \frac14} }[/math].
Доказательство. Пусть граф [math]\displaystyle{ \chi }[/math]-раскрашен. Тогда для любых двух цветов имеется хотя бы одно ребро с концами, окрашенными в эти цвета. Значит, таких рёбер не меньше, чем [math]\displaystyle{ \frac12 \chi(\chi - 1) }[/math], то есть [math]\displaystyle{ m \geqslant \frac12 \chi(\chi - 1) }[/math]. Решая неравенство относительно [math]\displaystyle{ \chi }[/math], получаем утверждение теоремы.
  • Теорема о четырёх красках. Любой плоский граф 4-раскрашиваем.
Возможно, это единственный результат теории графов, который претендует на известность во всём мире. Отсюда следует, что каждая географическая карта может быть окрашена не более чем в четыре цвета так, чтобы соседние страны имели разный цвет. В настоящее время доказательство этой теоремы носит сложный компьютерный характер.
Гораздо проще доказывается следующая ослабленное утверждение.
Теорема о пяти красках. Любой плоский граф 5-раскрашиваем.
Следующее утверждение тоже широко известно.
Теорема (Грёч, 1959). Любой плоский граф без треугольников 3-раскрашиваем.
Рёберная k-раскраска графа, или рёберная k-раскрашиваемость, — это рёберная раскраска графа в k цветов.
Хроматический индекс графа, или рёберное хроматическое число графа, или рёберная k-хроматичность, — это минимальное k, при котором граф имеет рёберную k-раскраску. Обозначение: [math]\displaystyle{ \chi' }[/math].
Для хроматического числа графа [math]\displaystyle{ \chi }[/math] доказаны лишь очень грубые оценки, тогда как для хроматический индекс графа [math]\displaystyle{ \chi' }[/math] равен либо максимальной степени вершин графа [math]\displaystyle{ \Delta }[/math], либо [math]\displaystyle{ \Delta + 1 }[/math].
Ясно, что для любого графа [math]\displaystyle{ \chi' \geqslant \Delta }[/math].
Теорема (Кёниг, 1916). Для любого двудольного графа [math]\displaystyle{ \chi' = \Delta }[/math].
Теорема (Визинг, 1964). Для любого графа [math]\displaystyle{ \Delta \leqslant \chi' \leqslant \Delta + 1 }[/math].
Теорема Визинга делит конечные графы на два класса: имеющие [math]\displaystyle{ \chi' = \Delta }[/math] и имеющий [math]\displaystyle{ \chi' = \Delta + 1 }[/math].

Потоки (англ. flows)

Граф можно рассматривать как сеть, когда рёбра несут некоторый поток, например поток воды, или электрического тока, или данных и так далее. Как моделируется подобная ситуация математически[85][86]?

  • Разбиение множества — это набор попарно непересекающихся подмножеств, объединение которых даёт всё множество.
Разрез в графе — это набор всех рёбер графа, пересекающих некоторое разбиение всех вершин графа на два множества — на стороны разбиения, то есть концевые вершины каждого ребра разреза находятся в разных сторонах разбиения.
Ясно, что стороны разбиения однозначно определяют разрез.
Бонд, или коцикл, — это минимальный по количеству рёбер непустой разрез в графе, то есть при удалении любого числа рёбра из разреза разрез перестаёт быть каким-либо разрезом.
В следующем примере 5-рёберный разрез не минимальный, поскольку при удалении 3 рёбер получается минимальный разрез, показанный справа.
  • Поток на графе — это набор целых чисел [math]\displaystyle{ f(x, y) }[/math], приписанных каждой упорядоченной паре [math]\displaystyle{ (x, y) }[/math] смежных узлов (вершин) сети (графа) такой, что:
  • выполняется антисимметричность потока [math]\displaystyle{ f(x, y) = -f(y, x) }[/math];
  • в узлах [math]\displaystyle{ x }[/math], в которых поток в сеть не входит и не выходит, выполняется первое правило Кирхгофа [math]\displaystyle{ \sum f(x, y) = 0 }[/math], где суммирование проводится по всем [math]\displaystyle{ y }[/math], смежным с [math]\displaystyle{ x }[/math].
Источник — это узел, где поток входит в сеть. Обозначение: [math]\displaystyle{ s }[/math].
Сток — это узел, где поток выходит из сети. Обозначение: [math]\displaystyle{ t }[/math].
Теория потоков:
  • моделирует реальные потоки;
  • взаимодействует с другими разделами теории графов (особенно со связностью и раскрасками).
Ребро мультиграфа не определяется однозначно парой [math]\displaystyle{ (x, y) }[/math] или [math]\displaystyle{ (y, x) }[/math].
Ориентированное ребро мультиграфа — это тройка [math]\displaystyle{ (e, x, y) }[/math], где [math]\displaystyle{ e }[/math] — ребро мультиграфа, начинающееся в вершине [math]\displaystyle{ x }[/math] и заканчивающееся в вершине [math]\displaystyle{ y }[/math].
Ребро [math]\displaystyle{ e }[/math] с [math]\displaystyle{ x \ne y }[/math] имеет два направления [math]\displaystyle{ (e, x, y) }[/math] и [math]\displaystyle{ (e, y, x) }[/math]. Петля имеет одно направление [math]\displaystyle{ (e, x, x) }[/math].
Циркуляция на графе — это функция [math]\displaystyle{ f(e, x, y) }[/math] такая, что:
(F1) выполняется антисимметричность циркуляции [math]\displaystyle{ f(e, x, y) = -f(e, y, x) }[/math] для всех ориентированных рёбер графа [math]\displaystyle{ (e, x, y) }[/math] с [math]\displaystyle{ x \ne y }[/math];
(F2) во всех узлах [math]\displaystyle{ v }[/math] выполняется первое правило Кирхгофа [math]\displaystyle{ \sum f(e, v, w) = 0 }[/math], где суммирование проводится по всем [math]\displaystyle{ w }[/math], смежным с [math]\displaystyle{ v }[/math].
Теорема. В циркуляции суммарный поток через любой разрез равен нулю:
[math]\displaystyle{ \sum f(e, v, w) = 0 }[/math], где суммирование идёт по всем рёбрам [math]\displaystyle{ (e, v, w) }[/math] произвольного разреза графа.
  • Функция пропускной способности на графе, или пропускная способность рёбер графа, — это набор натуральных чисел (с нулём), приписанных каждому ориентированному ребру мультиграфа.
Функция пропускной способности на графе определена независимо для обоих направлений ребра.
Сеть — это мультиграф с двумя выделенными узлами (вершинами) [math]\displaystyle{ s }[/math] и [math]\displaystyle{ t }[/math] и функцией пропускной способности [math]\displaystyle{ c(e, x, y) }[/math] на каждом ориентированном ребре [math]\displaystyle{ (e, x, y) }[/math].
Разрез сети — это разрез мультиграфа сети такой, что выделенные узлы [math]\displaystyle{ s }[/math] и [math]\displaystyle{ t }[/math] лежат на разных сторонах разреза.
Пропускная способность разреза сети — это сумма [math]\displaystyle{ \sum c(e, v, w) }[/math], где суммирование идёт по всем рёбрам [math]\displaystyle{ (e, v, w) }[/math] разреза сети.
Поток в сети — это вещественнозначная функция [math]\displaystyle{ f(e, x, y) }[/math] в сети такая, что:
(F1) выполняется антисимметричность потока [math]\displaystyle{ f(e, x, y) = -f(e, y, x) }[/math] для всех ориентированных рёбер сети (графа) [math]\displaystyle{ (e, x, y) }[/math] с [math]\displaystyle{ x \ne y }[/math];
(F2') во всех узлах (вершинах) [math]\displaystyle{ v }[/math], кроме [math]\displaystyle{ s }[/math] и [math]\displaystyle{ t }[/math], выполняется первое правило Кирхгофа [math]\displaystyle{ \sum f(e, v, w) = 0 }[/math], где суммирование проводится по всем [math]\displaystyle{ w }[/math], смежными с [math]\displaystyle{ v }[/math];
(F3) [math]\displaystyle{ f(e, x, y) \leqslant c(e, x, y) }[/math] для всех ориентированных рёбер сети [math]\displaystyle{ (e, x, y) }[/math].
Величина потока разреза сети — это сумма [math]\displaystyle{ \sum f(e, v, w) }[/math], где суммирование идёт по всем рёбрам [math]\displaystyle{ (e, v, w) }[/math] разреза сети.
Величина потока разреза сети одинакова для всех разрезов сети и называется величиной потока сети.
Теорема (Форд, Фалкерсон, 1956). В любой сети максимальная величина потока равна минимальной пропускной способности разрезов.

Экстремальная теория графов (англ. extremal graph theory)

Какая рёберная плотность необходима для существования заданного подграфа — типичная экстремальная задача на графах. Достаточно высокая средняя степень вершин или большое хроматическое число гарантируют, что нужная подструктура обязательно встретится в графе? Какое наибольшее возможное число рёбер может иметь [math]\displaystyle{ n }[/math]-вершинный граф, чтобы не иметь другой, меньший, граф в качестве подграфа[87][88]?

  • Экстремальный граф — для заданных натурального числа [math]\displaystyle{ n }[/math] и графа [math]\displaystyle{ H }[/math] это [math]\displaystyle{ n }[/math]-вершинный граф [math]\displaystyle{ G }[/math] с максимально возможным числом рёбер, не содержащий подграф [math]\displaystyle{ H }[/math]: [math]\displaystyle{ G \nsupseteq H }[/math]. Такое максимальное число рёбер обозначается [math]\displaystyle{ \operatorname{ex}(n, H) }[/math].
Максимальный граф — для заданных натурального числа [math]\displaystyle{ n }[/math] и графа [math]\displaystyle{ H }[/math] это [math]\displaystyle{ n }[/math]-вершинный граф [math]\displaystyle{ G }[/math] такой, что [math]\displaystyle{ G \nsupseteq H }[/math], но при добавлении любого нового ребра [math]\displaystyle{ G \supseteq H }[/math].
Ясно, что экстремальный граф максимален. Но не наоборот, как показано на рисунке ниже.
  • конечные вершины каждого ребра лежат в разных долях;
  • вершины одной доли попарно несмежны.
Полный [math]\displaystyle{ r }[/math]-дольный граф — это [math]\displaystyle{ r }[/math]-дольный граф, в котором каждые две вершины из разных долей смежны. Обозначение: [math]\displaystyle{ K_{n_1, n_2, \dots, n_r} }[/math].
  • Граф Турана — это [math]\displaystyle{ n }[/math]-вершинный граф со следующими свойствами:
  • это [math]\displaystyle{ r }[/math]-дольный граф с [math]\displaystyle{ r \leqslant n }[/math];
  • количества вершин долей отличаются друг от друга не более чем на 1.
Обозначение: граф Турана [math]\displaystyle{ T_r(n) }[/math] имеет [math]\displaystyle{ t_r(n) }[/math] рёбер.
Граф Турана [math]\displaystyle{ T_r(n) }[/math] плотен (то есть близок к полному графу), так как имеет около [math]\displaystyle{ n^2 }[/math] рёбер, точнее,
[math]\displaystyle{ t_r(n) \leqslant n^2 \frac{r-1}{2r} }[/math],
и равенство достигается, когда [math]\displaystyle{ r }[/math] делит [math]\displaystyle{ n }[/math].
Теорема (Туран, 1941). Граф Турана [math]\displaystyle{ T_{r - 1}(n) }[/math] — это единственный экстремальный граф для [math]\displaystyle{ n }[/math] и [math]\displaystyle{ K_r }[/math], причём [math]\displaystyle{ \operatorname{ex}(n, K_r) = t_{r - 1}(n) }[/math].

Бесконечные графы (англ. infinite graphs)

Изучение бесконечных графов привлекательно, однако этим разделом теории графов часто пренебрегают. Терминология совпадает с терминологией конечных графов, за исключением принципиально новых понятий бесконечных графов. Наиболее типичные подобные понятия появляются уже при «минимуме бесконечности», когда у графа всего лишь счётное число вершин и только конечное число рёбер в вершинах[89].

  • Локально конечный граф — это граф, в каждой вершине которого сходится конечное число рёбер.
Луч — это граф с бесконечными множествами вершин и рёбер, соответственно пронумерованных следующим образом:
[math]\displaystyle{ \{x_0, x_1, x_2, \dots \}, \{x_0x_1, x_1x_2, x_2x_3, \dots \}. }[/math]
Двойной луч — это граф с бесконечными множествами вершин и рёбер, соответственно пронумерованных следующим образом:
[math]\displaystyle{ \{ \dots, x_{-1}, x_0, x_1, \dots \}, \{ \dots, x_{-1}x_0, x_0x_1, x_1x_2, \dots \}. }[/math]
Ясно, что с точностью до изоморфизма существует только один луч и один двойной луч.
Двойной луч, во всех вершинах которого сходятся ровно два ребра, — это бесконечный 2-регулярный связный граф.
Путь — это либо конечный путь, либо луч, либо двойной луч.
Хвост — это подлуч луча или двойного луча. Луч имеет бесконечно много хвостов, которые отличаются только начальным конечным сегментом.
Гребень — это объединение луча с бесконечным количеством непересекающихся конечных путей, которые имеют первую вершину на луче. Зубья гребня — это последние вершины конечных путей гребня.
  • граф — объединение бесконечного числа непересекающихся непустых конечных множеств [math]\displaystyle{ V_0, V_1, V_2, \dots }[/math];
  • у каждой вершины [math]\displaystyle{ v }[/math] из [math]\displaystyle{ V_n }[/math] при [math]\displaystyle{ n \geqslant 1 }[/math] есть сосед [math]\displaystyle{ f(v) }[/math] из [math]\displaystyle{ V_{n-1} }[/math].
Тогда граф содержит луч [math]\displaystyle{ v_0v_1v_2\dots }[/math] с [math]\displaystyle{ v_n \in V_n }[/math] для всех [math]\displaystyle{ n }[/math].
Доказательство. 1. Имеется бесконечное множество конечных путей вида [math]\displaystyle{ v f(v) f(f(v)) \dots }[/math], которые заканчиваются в [math]\displaystyle{ V_0 }[/math]. Поскольку [math]\displaystyle{ V_0 }[/math] конечно, то имеется такая вершина [math]\displaystyle{ v_0 }[/math] в [math]\displaystyle{ V_0 }[/math], в которой заканчиваются бесконечно много таких путей.
2. Бесконечно много путей, заканчивающихся в [math]\displaystyle{ v_0 }[/math], имеют предпоследнюю вершину в [math]\displaystyle{ V_1 }[/math]. Путей бесконечно много, а [math]\displaystyle{ V_1 }[/math] конечно, поэтому имеется такая вершина [math]\displaystyle{ v_1 }[/math] в [math]\displaystyle{ V_1 }[/math], которая принадлежит бесконечному множеству таких путей.
3. Бесконечно много путей, проходящих через [math]\displaystyle{ v_1 }[/math], имеют вершину в [math]\displaystyle{ V_2 }[/math], поэтому имеется такая вершина [math]\displaystyle{ v_2 }[/math] в [math]\displaystyle{ V_2 }[/math], которая принадлежит бесконечному множеству этих путей.
4. И так далее до бесконечности. Бесконечный луч [math]\displaystyle{ v_0v_1v_2\dots }[/math] построен.
Приложения этой леммы о бесконечном пути основаны на том, что счётный граф можно рассматривать как бесконечную последовательность конечных подграфов.
Определим концы лестницы, бесконечной в две стороны. Каждый луч в этом графе содержит вершины, расположенные как угодно далеко либо слева, либо справа, но не одновременно слева и справа. Эти два типа лучей образуют два класса эквивалентности, поэтому лестница имеет два конца. На рисунке ниже эти концы графа отмечены точками.
Особенно просты концы дерева:
  • два луча дерева эквивалентны тогда и только тогда, когда они имеют общий хвост;
  • для каждой фиксированной вершины дерева каждый конец содержит ровно один луч, начинающийся с этой вершины.
Даже локально конечное дерево может иметь континуум концов. Например, двоичное дерево, в котором вершины обозначены конечными 0—1 последовательностями, с пустым множеством [math]\displaystyle{ \emptyset }[/math] в качестве корня. Тогда концы такого дерева соответствуют его лучам, начинающимся с корня [math]\displaystyle{ \emptyset }[/math], и, следовательно, континууму бесконечных последовательностей 0—1.

Теория Рамсея для графов (англ. Ramsey theory for graphs)

Каждый ли достаточно большой граф содержит или полный граф [math]\displaystyle{ K_r }[/math], или индуцированное дополнение [math]\displaystyle{ \overline{K_r} }[/math]? Несмотря на сходство с экстремальными задачами с их поиском локальных следствий глобальных предположений, последний вопрос приводит к математике несколько иного рода. Действительно, теоремы и доказательства теории Рамсея имеют больше общего с подобными результатами из алгебры или геометрии. Язык графов естествен в рамсеевских задачах, и материал показывает разнообразие идей и методов, достаточное для того, чтобы передать обаяние этой теории в целом[90][91][92]?

  • множество верши совпадает с множеством вершин исходного графа;
  • вершины соединены ребром тогда и только тогда, когда они не соединены ребром в исходном графе. Обозначение для графа [math]\displaystyle{ G }[/math]: [math]\displaystyle{ \overline{G} }[/math].
Дополнение полного графа [math]\displaystyle{ K_r }[/math] — вполне несвязный граф [math]\displaystyle{ \overline{K_r} }[/math], содержащий только вершины.

Самодополнительный граф — это граф, который изоморфен своему дополнению. Наименьшие нетривиальные самодополнительные графы содержат 4 и 5 вершин.

  • доказать, что среди шести человек всегда присутствуют либо трое попарно знакомых, либо трое попарно незнакомых.
Формулировка задачи Рамсея в теории графов:
  • шесть вершин графа — это люди, рёбра — это знакомства. Доказать, что найдутся либо три вершины, попарно соединённые рёбрами, либо три вершины, попарно не соединённые.
Точная формулировка с использованием дополнения графа.
Теорема. Любой граф с шестью вершинами либо содержит треугольник, либо его дополнение содержит треугольник.
Доказательство. 1. Пусть дан граф [math]\displaystyle{ G }[/math] с шестью вершинами. Возьмём любую его вершину [math]\displaystyle{ v }[/math]. Вершина [math]\displaystyle{ v }[/math] соединена ребром с любой из остальных пяти вершин или в [math]\displaystyle{ G }[/math], или в [math]\displaystyle{ \overline{G} }[/math]. Поэтому, не теряя общности, предположим, что [math]\displaystyle{ v }[/math] соединена с вершинами [math]\displaystyle{ u_1, u_2, u_3 }[/math] в [math]\displaystyle{ G }[/math].
2. Если из вершин [math]\displaystyle{ u_1, u_2, u_3 }[/math] какие-нибудь две соединены ребром, то с [math]\displaystyle{ v }[/math] получается треугольник в [math]\displaystyle{ G }[/math]. Если никакие две из вершин [math]\displaystyle{ u_1, u_2, u_3 }[/math] не соединены ребром, то они образуют треугольник в [math]\displaystyle{ \overline{G} }[/math].
Обобщение теоремы.
Теорема (Рамсей, 1930). Для любого натурального числа [math]\displaystyle{ r }[/math] существует натуральное число [math]\displaystyle{ n }[/math] такое, что любой граф с не менее чем [math]\displaystyle{ n }[/math] вершинами или его дополнение содержат [math]\displaystyle{ K_r }[/math].
Удобно использовать раскраску в формулировке теоремы Рамсея:
  • для любого полного графа [math]\displaystyle{ K_r }[/math] существует такой полный граф [math]\displaystyle{ K_n }[/math], что любая его двуцветная раскраска ребёр содержит одноцветный [math]\displaystyle{ K_r }[/math].
Число Рамсея — это наименьшее [math]\displaystyle{ n }[/math] для данного [math]\displaystyle{ r }[/math] в теореме Рамсея. Обозначение: [math]\displaystyle{ R(r) }[/math].

Из стандартного доказательства теоремы Рамсея следует верхняя оценка числа Рамсея: [math]\displaystyle{ R(r) \leqslant 2^{2r-3} }[/math]. С помощью вероятностного метода можно найти нижнюю оценку: [math]\displaystyle{ R(r) \geqslant 2^{r/2} }[/math].
Например, [math]\displaystyle{ R(3) = 6 }[/math]:
  • из решения задачи Рамсея следует, что [math]\displaystyle{ R(3) \leqslant 6 }[/math];
  • докажем, что [math]\displaystyle{ R(3) \gt 5 }[/math]. Достаточно привести один пример графа с 5 вершинами, который не удовлетворяет теореме Рамсея для [math]\displaystyle{ K_3 }[/math]. Это самодополнительный пятиугольник, показанный выше, имеет 5 вершин и не содержит треугольников, и также не содержит треугольников его дополнение, которое с ним совпадает;
  • [math]\displaystyle{ R(3) \leqslant 6 }[/math] и [math]\displaystyle{ R(3) \gt 5 }[/math], то есть [math]\displaystyle{ R(3) = 6 }[/math].
  • Теорема Рамсея верна не только для полного графа [math]\displaystyle{ K_r }[/math], но и для любого графа [math]\displaystyle{ H }[/math] просто потому, что [math]\displaystyle{ H }[/math] — подграф полного графа [math]\displaystyle{ K_h }[/math], где [math]\displaystyle{ h }[/math] — число вершин [math]\displaystyle{ H }[/math].
Число Рамсея любого графа [math]\displaystyle{ H }[/math] — это наименьшее натуральное число [math]\displaystyle{ n }[/math] такое, что любой [math]\displaystyle{ n }[/math]-вершинный граф или его дополнение содержат [math]\displaystyle{ H }[/math]. Обозначение: [math]\displaystyle{ R(H) }[/math].
Если в графе мало рёбер, то он легче включается в другой граф, и можно ожидать [math]\displaystyle{ R(H) \lt R(h) = R(K_h) }[/math], где [math]\displaystyle{ h }[/math] — число вершин [math]\displaystyle{ H }[/math].
Ещё немного обобщим.
Число Рамсея пары графов [math]\displaystyle{ H_1 }[/math] и [math]\displaystyle{ H_2 }[/math] — это наименьшее натуральное число [math]\displaystyle{ n }[/math] такое, что для любого [math]\displaystyle{ n }[/math]-вершинного графа либо сам граф содержит [math]\displaystyle{ H_1 }[/math], либо его дополнение содержит [math]\displaystyle{ H_2 }[/math]. Обозначение: [math]\displaystyle{ R(H_1, H_2) }[/math], для полных графов [math]\displaystyle{ R(K_r, K_s) \equiv R(r, s) }[/math].
Ясно, что [math]\displaystyle{ R(H, H) = R(H) }[/math], [math]\displaystyle{ R(r, r) = R(r) }[/math].
Для большинства графов известны только очень грубые оценки для чисел Рамсея, точные нетривиальные числа Рамсея известны лишь для очень немногих графов.
Например, [math]\displaystyle{ R(3) = 6 }[/math], [math]\displaystyle{ R(4) = 18 }[/math], [math]\displaystyle{ R(3, 4) = R(4, 3) = 9 }[/math], [math]\displaystyle{ R(4, 5) = R(5, 4) = 25 }[/math].

Гамильтоновы циклы (англ. Hamilton cycles)

Задача о том, содержит ли граф замкнутый маршрут, проходящий через каждое ребро в точности один раз, легко решается с помощью простой теоремы Эйлера (1736). Намного труднее решается такой же вопрос относительно вершин: когда граф содержит замкнутый маршрут, проходящий через каждую вершину в точности один раз[93][94][95]?

  • Гамильтонов цикл — это замкнутый маршрут, проходящий через каждую вершину графа в точности один раз.
Гамильтонов граф — это граф, который имеет гамильтонов цикл.
Ясно, что в каждую вершину гамильтонова графа входят по меньшей мере два ребра.
Теорема. Любой гамильтонов граф двусвязен.
То есть двусвязность — необходимое условие гамильтоновости. Не каждый двусвязный граф гамильтонов.
  • Тета-граф — это граф, который содержит только следующие вершины:
  • две вершины, в которые входят по три ребра;
  • вершины, в которые входят по два ребра.
То есть тета-граф имеет две вершины степени 3 и три непересекающиеся простые цепи, которые соединяют эти две вершины, длиной не менее 2 каждая.
Тета-граф негамильтонов. Простейший негамильтонов двусвязный граф — полный двудольный граф [math]\displaystyle{ K_{2, 3} }[/math].
Теорема. В каждом негамильтоновом двусвязном графе имеется тета-подграф.
То есть наличие тета-подграфа — необходимое условие негамильтоновости. Не каждый граф с тета-подграфом негамильтонов.
Простейший гамильтонов граф с тета-подграфом — полный двудольный граф [math]\displaystyle{ K_{2, 3} }[/math] с добавленным ребром.
  • Выше были приведены некоторые необходимые условия гамильтоновости и негамильтоновости. Какие условия могут быть достаточными для гамильтоновости? Только несколько условий сразу.
Теорема (Дирак[en], 1952). Граф с [math]\displaystyle{ n \geqslant 3 }[/math] вершинами гамильтонов, если:
1) минимальная степень [math]\displaystyle{ \delta }[/math] его вершин зависит от n;
2) [math]\displaystyle{ \delta \geqslant n/2 }[/math].
То есть [math]\displaystyle{ \delta \geqslant n/2 }[/math] — достаточное условие гамильтоновости. Не для каждого гамильтонова графа выполняется это условие. Например, для простейшего гамильтонова графа с тета-подграфом условие не выполнено.
Кубический граф — это 3-регулярный граф, то есть граф, в каждой вершине которого сходится ровно 3 ребра.
Для планарных графов гамильтоновость связана с проблемой четырёх красок. Для доказательства теоремы о четырех красках достаточно доказать гипотезу Тэйта: любой 3-связный планарный кубический граф имеет гамильтонов цикл.
Гипотеза не подтвердилась. Первый контрпример был найден Таттом в 1946 году.
Теорема (Татт, 1956). Любой 4-связный планарный граф гамильтонов.

Случайные графы (англ. random graphs)

Вероятностный метод позволяет доказать существование объекта с заданным свойством следующим образом: 1) определяется вероятностное пространство на некотором большем классе объектов, заведомо непустом; 2) показывается, что искомое свойство выполняются для случайно выбранного элемента пространства с положительной вероятностью. Суть вероятностного метода в том, чтобы неконструктивно показать, что заданная раскраска существует или нет[96][97][98].

  • Вероятностный метод хорошо иллюстрируется следующим примером: получим нижнюю оценку для числа Рамсея [math]\displaystyle{ R(k) }[/math].
1. Построим вероятностное пространство. Случайно раскрасим полный граф [math]\displaystyle{ K_n }[/math], то есть с равной вероятностью раскрасим каждое ребро [math]\displaystyle{ K_n }[/math] независимо в красный или синий цвет. Таким образом, вероятность для ребра [math]\displaystyle{ K_n }[/math] получить красный цвет равна [math]\displaystyle{ \frac{1}{2} = 2^{-1} }[/math], синий цвет — тоже [math]\displaystyle{ 2^{-1} }[/math].
2. Определим на случайно раскрашенном [math]\displaystyle{ K_n }[/math] следующее событие: случайно выбранный полный подграф [math]\displaystyle{ K_k }[/math] монохромен, то есть либо красный, либо синий. Подграф [math]\displaystyle{ K_k }[/math] имеет [math]\displaystyle{ {k\choose 2} }[/math] рёбер, поэтому вероятность уже выбранного подграфа [math]\displaystyle{ K_k }[/math] оказаться красным равна [math]\displaystyle{ 2^{-{k\choose 2}} }[/math], синим — тоже [math]\displaystyle{ 2^{-{k\choose 2}} }[/math], монохромным — [math]\displaystyle{ 2^{-{k\choose 2}} + 2^{-{k\choose 2}} = 2^{1-{k\choose 2}} }[/math].
Вероятность уже выбранного подграфа [math]\displaystyle{ K_k }[/math] быть одноцветным не зависит от [math]\displaystyle{ n }[/math]. Например, вероятность [math]\displaystyle{ K_3 }[/math] быть одноцветным всегда равна
[math]\displaystyle{ 2^{1-{3\choose 2}} = 2^{1-\frac{3!}{2!1!}} = 2^{1-\frac{6}{2}} = 2^{-2} = \frac{1}{4} }[/math],
вероятность [math]\displaystyle{ K_4 }[/math] быть одноцветным всегда равна
[math]\displaystyle{ 2^{1-{4\choose 2}} = 2^{1-\frac{4!}{2!2!}} = 2^{1-\frac{24}{4}} = 2^{-5} = \frac{1}{32} }[/math].
3. Подсчитаем теперь вероятность случайно выбранного подграфа [math]\displaystyle{ K_k }[/math] оказаться монохромным. Выбрать подграф [math]\displaystyle{ K_k }[/math] в полном графе [math]\displaystyle{ K_n }[/math] можно [math]\displaystyle{ {n\choose k} }[/math] разными способами. Поскольку события оказаться монохромными для этих подграфов могут оказаться зависимыми друг от друга, то вероятность случайно выбранного в [math]\displaystyle{ K_n }[/math] подграфа [math]\displaystyle{ K_k }[/math] оказаться монохромным всего лишь не больше суммы их вероятностей [math]\displaystyle{ {n\choose k}2^{1-{k\choose 2}} }[/math].
Например, вероятность [math]\displaystyle{ K_3 }[/math] оказаться монохромным в [math]\displaystyle{ K_3 }[/math] не больше
[math]\displaystyle{ {3\choose 3}2^{1-{3\choose 2}} = \frac{3!}{3!0!}2^{1-\frac{3!}{2!1!}} = 2^{1-\frac{6}{2}} = 2^{-2} = \frac{1}{4} }[/math],
вероятность [math]\displaystyle{ K_3 }[/math] оказаться монохромным в [math]\displaystyle{ K_4 }[/math] не больше
[math]\displaystyle{ {4\choose 3}2^{1-{3\choose 2}} = \frac{4!}{3!1!}2^{1-\frac{3!}{2!1!}} = 4\cdot2^{1-\frac{6}{2}} = 2^22^{-2} = 1 }[/math].
  • Оценим число Рамсея снизу. Если [math]\displaystyle{ n }[/math] достаточно мало для данного [math]\displaystyle{ k }[/math], то число Рамсея [math]\displaystyle{ R(k) \gt n }[/math].
Лемма. Если [math]\displaystyle{ {n\choose k}2^{1-{k\choose 2}} \lt 1 }[/math], то [math]\displaystyle{ R(k) \gt n }[/math].
Доказательство. 1. Пусть [math]\displaystyle{ {n\choose k}2^{1-{k\choose 2}} \lt 1 }[/math], то есть вероятность случайно выбранного в [math]\displaystyle{ K_n }[/math] подграфа [math]\displaystyle{ K_k }[/math] оказаться монохромным меньше 1.
2. Тогда вероятность всех подграфов [math]\displaystyle{ K_k }[/math] не оказаться монохромными больше нуля: [math]\displaystyle{ 1- {n\choose k}2^{1-{k\choose 2}} \gt 0 }[/math].
3. Другими словами, существует 2-раскраска [math]\displaystyle{ K_n }[/math] без монохроматических [math]\displaystyle{ K_k }[/math], то есть [math]\displaystyle{ R(k) \gt n }[/math].

Теорема (Эрдёш, 1947). Для любого натурального [math]\displaystyle{ k \geqslant 3 }[/math] число Рамсея [math]\displaystyle{ R(k) \gt 2^{k/2} }[/math].
Эта нижняя [math]\displaystyle{ R(k) \gt 2^{k/2} }[/math] и верхняя [math]\displaystyle{ R(k) \leqslant 2^{2k-3} }[/math] оценки весьма близки.
Доказательство. 1. При [math]\displaystyle{ k = 3 }[/math] имеем:
[math]\displaystyle{ {n\choose k} = {n\choose 3} = \frac{n!}{3!(n-3)!} = \frac{n(n-1)(n-2)}{6} \lt \frac{n^3}{6} }[/math],
[math]\displaystyle{ 2^{1-{k\choose 2}} = 2^{1-{3\choose 2}} = 2^{1-\frac{3!}{2!1!}} = 2^{-2} = \frac{1}{2^2} }[/math].
При всех [math]\displaystyle{ n \leqslant 2^{3/2} }[/math] имеем:
[math]\displaystyle{ {n\choose k} \lt \frac{n^3}{6} \leqslant \frac{2^{9/2}}{6} = \frac{2^{7/2}}{3} }[/math],
[math]\displaystyle{ {n\choose k}2^{1-{k\choose 2}} \lt \frac{2^{7/2}}{3}\frac{1}{2^2} = \frac{2^{3/2}}{3} \lt \frac{2,83}{3} \lt 1 }[/math].
Теперь по лемме [math]\displaystyle{ R(3) \gt n }[/math] для всех [math]\displaystyle{ n \leqslant 2^{3/2} }[/math], то есть [math]\displaystyle{ R(3) \gt 2^{3/2} }[/math].
2. Пусть теперь [math]\displaystyle{ k \geqslant 4 }[/math]. Имеем:
[math]\displaystyle{ k! = 1\cdot2\cdot3\cdot4\cdot\,\dots\,\cdot k = 2\cdot2\cdot3\cdot2\cdot\,\dots\,\cdot k \gt 2^k }[/math].
При всех [math]\displaystyle{ n \leqslant 2^{k/2} }[/math] выкладки как при [math]\displaystyle{ k = 3 }[/math]:
[math]\displaystyle{ {n\choose k}2^{1-{k\choose 2}} = \frac{1}{k!}\frac{n!}{(n - k)!}2^{1-\frac{k!}{2!(k-2)!}} \lt \frac{n^k}{2^k}2^{1-\frac{k(k-1)}{2}} \leqslant \frac{2^{k^2/2}}{2^k}2^{1-k^2/2 + k/2} = }[/math]
[math]\displaystyle{ = \frac{2^{1 + k/2}}{2^k} = 2^{1-k/2} \leqslant 2^{1-4/2} = \frac{1}{2} \lt 1 }[/math].
Теперь по лемме [math]\displaystyle{ R(k) \gt n }[/math] для всех [math]\displaystyle{ n \leqslant 2^{k/2} }[/math], то есть [math]\displaystyle{ R(k) \gt 2^{k/2} }[/math].
  • Случайный граф — это подграф полного графа [math]\displaystyle{ K_n }[/math], полученный случайным образом. Например, если все рёбра [math]\displaystyle{ K_n }[/math] случайным образом окрашены в красный или синий цвет, то случайным граф — это подграф, образованный всеми красными рёбрами. Ясно, что случайные графы — это независимые события. Обозначение: вероятность случайного графа [math]\displaystyle{ G }[/math] обозначается [math]\displaystyle{ P(G) }[/math].
Случайная величина — это неотрицательное вещественное число, заданное на каждом случайном графе [math]\displaystyle{ G }[/math]. Например, это может быть число вершин случайного графа, связность, хроматическое число и так далее. Обозначение: [math]\displaystyle{ X(G) }[/math].
Математическое ожидание, или среднее, случайной величины — это взвешенная сумма вероятностей всех случайных графов:
[math]\displaystyle{ E(X) = \sum P(G)X(G) }[/math].
Математическое ожидание линейно, то есть равенства
[math]\displaystyle{ E(X + Y) = E(X) + E(Y) }[/math] и [math]\displaystyle{ E(\lambda X) = \lambda E(X) }[/math]
выполняются для любых двух случайных величин [math]\displaystyle{ X }[/math] и [math]\displaystyle{ Y }[/math] и любого вещественного числа [math]\displaystyle{ \lambda }[/math].
Если математическое ожидание, то есть среднее значение случайной величины, мало, то случайная величина должна быть мала для многих случайных графов. Тогда естественно предположить, что среди последних существует граф с требуемым свойством. Эта идея лежит в основе неконструктивных доказательств существования. Количественное выражение этой идеи следующее.
Неравенство Маркова. Для любой случайной величины [math]\displaystyle{ X \geqslant 0 }[/math] и любого вещественного числа [math]\displaystyle{ a \gt 0 }[/math] выполняется неравенство
[math]\displaystyle{ P(X \geqslant a) \leqslant \frac{E(X)}{a} }[/math].
Доказательство. Очевидно, что (суммирование ведётся по всем случайным графам [math]\displaystyle{ G }[/math])
[math]\displaystyle{ E(X) = \sum\limits_G P(G)X(G) \geqslant \sum\limits_{G\atop X(G) \geqslant a} P(G)X(G) \geqslant }[/math]
[math]\displaystyle{ \geqslant \sum\limits_{G\atop X(G) \geqslant a} P(G)a = a P(X \geqslant a) }[/math].

Миноры, деревья и полный предпорядок (англ. minors, trees and well-quasi-ordering)

Одна из самых глубоких математических теорем, которая затмевает любую другую теорему теории графов — это теорема о минорах графа: любое бесконечное множество графов содержит два графа таких, что один есть минор другого. Ниже объясняются некоторые основные понятия на подступах к этой теореме, доказательство которой занимает 500 страниц[99][100].

Полный предпорядок[en], или правильный квазипорядок — это предпорядок, при котором любая бесконечная последовательность элементов множества содержит два предупорядоченных элемента, причём больший элемент следует в последовательности за меньшим. Другими словами, любая последовательность [math]\displaystyle{ x_0, x_1, x_2, \dots }[/math] в множестве [math]\displaystyle{ X }[/math] содержит [math]\displaystyle{ x_i \leqslant x_j }[/math], [math]\displaystyle{ i \lt j }[/math].
Вполне предупорядоченные элементы — это элементы вполне предупорядоченного множества.
Теорема. Предпорядок на множестве тогда и только тогда полный, когда множество не содержит следующих бесконечных последовательностей элементов:
  • с попарно несравнимыми элементами;
  • строго убывающей, то есть последовательности [math]\displaystyle{ x_0 \gt x_1 \gt x_2 \gt \dots }[/math], где [math]\displaystyle{ x_i \gt x_j }[/math] означает [math]\displaystyle{ x_i \geqslant x_j }[/math] и [math]\displaystyle{ x_i \ne x_j }[/math].
Примеры. 1. Отношение делимости [math]\displaystyle{ \,\vdots\, }[/math] на множестве натуральных чисел предупорядочено и даже частично упорядочено, но не вполне предупорядочено, поскольку бесконечная последовательность простых чисел не содержит предупорядоченной пары.
2. Отношение делимости на множестве целых чисел предупорядочено и не частично упорядочено (поскольку, например, [math]\displaystyle{ 2\,\vdots-2 }[/math] и [math]\displaystyle{ -2\,\vdots\,2 }[/math], но [math]\displaystyle{ 2\ne-2 }[/math]) и также не вполне предупорядочено.
Топологический минор графа — это граф, подразбиение которого есть подграф исходного графа.
Топологический минор сохраняет топологическую форму подграфа исходного графа.
Минор графа — это граф, полученный из исходного графа удалением вершин и удалением и стягиванием рёбер. Обозначение отношения [math]\displaystyle{ X }[/math] — минор [math]\displaystyle{ Y }[/math]: [math]\displaystyle{ X \preccurlyeq Y }[/math]
Любой подграф графа — его минор. Любой граф — свой собственный минор.
Теорема. (i) Любой топологический минор графа есть также его (обычный) минор. Обратное в общем случае неверно.
(ii) Для графа, в каждую вершину которого входит не более 3 рёбер, любой минор есть топологический минор.
Теорема. На множестве всех конечных графов отношения быть минором [math]\displaystyle{ \preccurlyeq }[/math] и быть топологическим минором суть частичные порядки.
По предыдущей теореме, множество запрещённых миноров замкнуто относительно взятия миноров: если граф [math]\displaystyle{ G }[/math] — запрещённый минор и [math]\displaystyle{ H \preccurlyeq G }[/math], то граф [math]\displaystyle{ H }[/math] — тоже запрещённый минор.
Теорема. Свойство графов можно задать запрещёнными минорами тогда и только тогда, когда оно замкнуто относительно взятия миноров.
Свойства графов, замкнутые относительно взятия миноров, часто встречаются в теории графов. Наиболее известный пример дан теоремой Понтрягина — Куратовского: планарность задаётся запрещением миноров [math]\displaystyle{ K_5 }[/math] и [math]\displaystyle{ K_{3, 3} }[/math].
Характеризация запрещёнными графами — это хорошая характеризация.
Хорошая характеризация — это характеризация свойства графов, упрощающая доказательство отсутствия этого свойства. Просто убедиться, что граф обладает некоторым свойством, достаточно изобразить граф определённым образом. Сложности возникают при доказательстве отсутствия свойства. Но, например, при наличии запрещённых миноров для свойства его отсутствие легко доказывается предъявлением какого-нибудь запрещённого минора.
Теорема. При наличии запрещённых миноров всегда существует единственное наименьшее их множество, элементы которого — миноры всех запрещённых миноров.
Ясно, что запрещённые миноры из наименьшего множества несравнимы по отношению [math]\displaystyle{ \preccurlyeq }[/math] быть минором. Следующая теорема утверждает, что любое множество несравнимых по [math]\displaystyle{ \preccurlyeq }[/math] графов конечно.
Теорема Робертсона — Сеймура (1986—2004). Конечные графы вполне предупорядочены по отношению [math]\displaystyle{ \preccurlyeq }[/math] быть минором.
Следствие. Любое свойство графов, замкнутое по взятию миноров, можно задать конечным множеством запрещённых миноров.
Сильный вариант этой теоремы для деревьев следующий.
Теорема (Краскал, 1960)[en]*. Конечные деревья вполне предупорядочены по отношению быть топологическим минором.

Немного линейной алгебры (англ. some linear algebra)

В основе простых циклов и рёберных разрезов графов лежит алгебраическая структура, достижение понимания которой делает возможным применение мощных и красивых методов линейной алгебры, которые приводят, в свою очередь, к более глубокому пониманию теории графов и соответствующих алгоритмов на графах[101][102][103][104].

Вектор этого пространства — это подмножество вершин графа:
Таблица сложения по модулю 2 векторов пространства 4 вершин
[math]\displaystyle{ \oplus }[/math]
Пространство рёбер графа — это множество всех подмножеств множества всех рёбер графа, преобразованное в векторное пространство над 2-элементным полем [math]\displaystyle{ \{0, 1\}. }[/math] Обозначение пространства рёбер графа [math]\displaystyle{ G: \mathcal{E}(G). }[/math]
Полностью аналогично пространству вершин.
Структуру графа задают его рёбра, поэтому обычно имеют дело с пространством рёбер.
Ниже показана таблица сложения по модулю 2 векторов пространства рёбер [math]\displaystyle{ \mathcal{E}(C_4) }[/math] циклического графа [math]\displaystyle{ C_4 }[/math]. Элементы подпространства разрезов [math]\displaystyle{ \mathcal{B}(C_4) }[/math] находятся внутри синих рамок, три элемента одного из базисов этого подпространства выделены синим. Подпространство циклов [math]\displaystyle{ \mathcal{C}(C_4) }[/math] в данном случае есть подпространство подпространства разрезов и состоит из двух элементов: пустого множества и графа [math]\displaystyle{ C_4 }[/math]; его элементы выделены голубым.
Остовное дерево, шесть бондов и цикл графа [math]\displaystyle{ C_4 }[/math]
Синее
остовное
дерево
Шесть бондов (минимальных разрезов).
Три элемента одного из базисов выделены синим
Цикл
Таблица сложения по модулю 2 векторов пространства 4 рёбер графа [math]\displaystyle{ C_4 }[/math]
[math]\displaystyle{ \oplus }[/math]
  • Пространство циклов графа — это подпространство пространства рёбер графа, которое порождается всеми простыми циклами графа. Обозначение пространства циклов графа [math]\displaystyle{ G: \mathcal{C}(G). }[/math]
Другими словами, пространство циклов натянуто на простые циклы, то есть состоит из:
  • пустого множества;
  • всех простых циклов графа;
  • всех сумм по модулю 2 простых циклов графа.
Теорема. Пространство циклов порождается также циклами без хорд.
Цикломатическое число, или циклический ранг, графа — это размерность пространства циклов графа.
Теорема. Цикломатическое число связного графа равно числу хорд любого остовного дерева графа, то есть равно [math]\displaystyle{ m - n + 1 }[/math], где [math]\displaystyle{ m }[/math] — число рёбер графа, [math]\displaystyle{ n }[/math] — число вершин.
Ниже показана таблица сложения по модулю 2 векторов пространства циклов [math]\displaystyle{ \mathcal{C}(G) }[/math] даного графа [math]\displaystyle{ G }[/math], показанного ниже вместе с остовным деревом. Три элемента одного из базисов этого пространства выделены синим.
Остовное дерево и шесть простых циклов данного графа
Остовное
дерево
графа [math]\displaystyle{ G }[/math]
Шесть простых циклов данного графа.
Три элемента одного из базисов выделены синим
Таблица сложения по модулю 2 векторов пространства циклов
[math]\displaystyle{ \oplus }[/math]
Другими словами, пространство разрезов натянуто на минимальные разрезы, то есть состоит из:
  • пустого множества;
  • всех минимальных разрезов графа;
  • всех сумм по модулю 2 минимальных разрезов графа.
Теорема. Пространство разрезов порождается также разрезами, одно из двух множеств разбиения которых — изолированная вершина.
Ранг разрезов графа — это размерность пространства разрезов графа.
Теорема. Ранг разрезов связного графа равен числу рёбер любого остовного дерева графа, то есть равен [math]\displaystyle{ n - 1 }[/math], где [math]\displaystyle{ n }[/math] — число вершин графа.
Ниже показана таблица сложения по модулю 2 векторов пространства разрезов [math]\displaystyle{ \mathcal{B}(G) }[/math] даного графа [math]\displaystyle{ G }[/math], показанного ниже вместе с остовным деревом. Четыре элемента одного из базисов этого пространства выделены синим.
Остовное дерево и десять бондов данного графа [math]\displaystyle{ G }[/math]
Остовное
дерево
графа [math]\displaystyle{ G }[/math]
Десять бондов (минимальных разрезов) данного графа.
Четыре элемента одного из базисов выделены синим
Таблица сложения по модулю 2 векторов пространства разрезов
[math]\displaystyle{ \oplus }[/math]

Применение теории графов

Уже в XIX веке графы применялись при проектировании электрических цепей и молекулярных схем; математические развлечения и головоломки — тоже часть теории графов[105].

Некоторые задачи теории графов

Иногда эту задачу переносят на систему мостов других городов. Например, была опубликована задача о 17 мостах устья Невы города Ленинграда 1940 года[110].
  • Проблема четырёх красок — можно ли любую карту окрасить в четыре цвета так, чтобы смежные страны имели различные цвета? Сформулирована в 1852 году, в 1977 году опубликовано (анонсировано в 1976) первое общепринятое положительное доказательство с использованием компьютера[111][112][113][114][115][116][117][118].
  • Задача о домино. Все 28 костей игры в домино должны соединиться в непрерывную (простую) цепь так, чтобы граничащие половинки двух камней имели одно и то же число. Так как наличие дублей задачу не усложняет, задача о домино ставится также для 21 кости (без дублей) без потери общности[21][22][119].
  • Задача о лабиринте. Войти в произвольный лабиринт и пройти по всем его коридорам[120][121].
  • Задача о трёх домах и трёх колодцах. Проложить непересекающиеся дорожки от каждого из трёх домов к каждому из трёх колодцев. Эта задача, как и задача о кёнигсбергских мостах, решения не имеет[122].
  • Задача о ходе коня. Обойти конём шахматную доску, посетив каждую клетку ровно один раз с возвратом на исходную клетку[123].
  • Задача о назначениях. Пусть компании требуется несколько различных видов работ, причём каждый сотрудник подходит только для некоторых из них и может выполнять не более одной работы за раз. Как следует распределять задания, чтобы выполнять максимальное количество заданий одновременно? Решить задачу помогает двудольный граф, в котором вершины одной доли — сотрудники, другой — рабочие места, и каждое ребро — подходящее назначение на работу[124].
  • Комбинаторная оптимизация[125].
  • Задача о кратчайшем пути. Дан (ориентированный) граф и каждый вес его ребра (дуги) представляет время, необходимое для её прохождения. Найти кратчайший путь (по времени) между заданными вершинами.
  • Задача о минимальном остовном дереве. Пусть нужно соединить несколько компьютеров в фиксированных местах, чтобы сформировать компьютерную сеть, и известна стоимость создания прямого соединения между любой парой компьютеров. Какие прямые соединения следует построить, чтобы стоимость сети была минимальна?
  • Задача Штейнера о минимальном дереве. Пусть имеется произвольное подмножество вершин связного взвешенного графа. Найти подграф-дерево с минимальной суммой весов рёбер, содержащее все вершины заданного подмножества.
  • Задача коммивояжёра (TSP). Пусть продавцу нужно посетить несколько городов в течение следующего месяца. Весовые коэффициенты представляют затраты на поездки между каждой парой городов. Как упорядочить визиты так, чтобы свести к минимуму общую стоимость поездки? Другими словами, нужно найти гамильтонов цикл, общий вес рёбер которого минимален.
  • Задача о максимальном потоке. Пусть вода перекачивается по сети трубопроводов от источника к стоку. Графовая модель — сеть, где каждый вес дуги — верхняя граница потока через соответствующий трубопровод. Найти максимальный поток от источника к стоку.
  • Задача о китайском почтальоне. Найти минимальный по весу цикл по всем рёбрам в заданном взвешенном графе, где веса рёбер зависит от приложения (например, расстояние, время, стоимость и т. д.).
  • Задача о китайском почтальоне (орграф). При выполнении поток компьютерной программы перемещается между различными состояниями, и переходы из одного состояния в другое зависят от входных данных. При тестировании программного обеспечения хотелось бы генерировать входные данные так, чтобы были протестированы все возможные переходы.
Поток выполнения программы моделируется орграфом, где вершины — состояния программы, дуги — переходы, и каждой из дуг присваивается метка вызова соответствующего перехода. Тогда задача нахождения последовательности входных данных, вызывающей все переходы и минимизирующей общее их число, эквивалентна нахождению ориентированного пути китайского почтальона минимальной длины.
  • Задача реконструкции РНК. По неупорядоченным фрагментам одной и той же РНК реконструировать эту РНК-цепочку или полное множество подходящих РНК-цепочек.
  • Задача реконструкции строки цифр. Пусть для данной строки цифр [math]\displaystyle{ f_i }[/math] — число цифр [math]\displaystyle{ i }[/math] в строке, [math]\displaystyle{ f_{ij} }[/math] — число подстрок [math]\displaystyle{ ij }[/math] в строке. Сколько существует различных строк, отвечающих данным [math]\displaystyle{ f_i }[/math] и [math]\displaystyle{ f_{ij} }[/math], [math]\displaystyle{ i, j = 1, 2, \dots, n }[/math], [math]\displaystyle{ f_{ii} = 0 }[/math]?
  • Задача изоморфности графов. Разработать общий алгоритм для определения изоморфизма графа или, в качестве альтернативы, доказать, что такого алгоритма не существует[126].
  • Задача реконструкции графа[en]. Могут ли два неизоморфных простых графа с тремя или более вершинами и без меток на вершинах иметь одинаковый список подграфов, каждый из которых получен удалением одной вершины[127]?
  • Задача о подмножестве системы независимости[en] с максимальным весом. Пусть для каждого ребра графа задан неотрицательный вес. Найти подмножество системы независимости с максимальной суммой весов его рёбер[128].
  • Задача о паросочетании с максимальным весом. Частный случай предыдущей задачи[129].
  • Задача о максимизации. Определить в графе максимальное число вершинно независимых путей, соединяющих любую пару першин[130].
  • Задача о минимизации. Определить в графе минимальное число вершин, разделяющих любую пару першин[130].
  • Задача гомеоморфизма подграфов. Определить, содержит ли первый граф подграф, гомеоморфный второму графу[131].
  • Задача о клике — ещё одна NP-полная задача.
  • Планарность графа — можно ли изобразить граф на плоскости без пересечений рёбер (или с минимальным числом слоёв, что находит применение при трассировке межсоединений элементов печатных плат или микросхем).

К теории графов также относится целый ряд математических проблем, не решённых на сегодняшний день.

Классификации применений теории графов

  • Классификация применений теории графов по степени отношения к математике[132]:
  • Классификация применений теории графов по видам применяемых графов[135]:
  • простые графы, то есть не мультиграфы, орграфы или псевдографы;
  • мультиграфы и псевдографы, но не орграфы;
  • простые орграфы;
  • (псевдо)орграфы.
  • Классификация применений теории графов по видам атрибутов применяемых графов[136]:
  • рёбра и вершины применяемого графа не имеют атрибутов;
  • рёбра применяемого графа имеют атрибуты, вершины не имеют;
  • вершины применяемого графа имеют атрибуты, рёбра не имеют;
  • и рёбра, и вершины применяемого графа имеют атрибуты.
  • Классификация применений теории графов по областям применения.
Классификация проводится по оглавлению второй части книги[137].
  • Приложения к экономике и исследованию операций.
  • Комбинаторные задачи.
  • Головоломки к игры.
  • Паросочетания.
  • Технические приложения.
  • Естественные науки.
  • Задачи изучения человека и общества.
  • Дополнительные приложения.
  • Потоки в сетях.
  • Классификация применений теории графов по областям применения.
Классификация проводится по имеющейся научной литературе. Список некоторых областей применения теории графов со ссылками на литературу:

Некоторые применения теории графов

Перед приложением математической силы к задачам реального мира необходимо построить математическую модель задачи. Графы — удивительно универсальный инструмент математического моделирования. Ниже представлены несколько применений теории графов, отличных от задач теории графов[154].

  • транспортные расходы;
  • время в пути;
  • пространственное расстояние;
  • потери мощности;
  • верхние границы потока;
  • входы и выходы для переходов в конечном автомате.
Существует проблемы, решаемые заданием атрибутов вершин в графовой модели. Например, вес вершины может представлять:
  • Модели на простых графах.
  • Археология. Пусть коллекция артефактов найдена на месте города, который существовал с 1000 года до нашей эры по 1000 год нашей эры. Тогда можно построить граф с вершинами — артефактами, и вершины смежны, когда соответствующие артефакты из одной могилы. Предположим, что артефакты, найденные в одной могиле, имеют перекрывающиеся промежутки времени использования. Если построить интервальный граф, то имеет место распределение подинтервалов исходного интервала (-1000, 1000) (возможно масштабирование), согласующееся с археологической находкой.
  • Социология. В социальной сети знакомств вершины — люди, а рёбра указывают на то, что соответствующие пары людей знают друг друга. Включение концепции самопознания требует в модели циклы самопознания, которым в графе соответствуют петли.
  • География. В географической модели вершины графа могут представлять страны (области, штаты), а рёбра — общую границу.
  • Геометрия. Конфигурация вершин и рёбер любого многогранника в трёхмерном пространстве образует простой граф, который называется его 1-скелетом[en]. 1-скелеты платоновых телрегулярные графы.
  • Проектирование вычислительных машин. Некоторое число процессоров соединяются вместе на одном чипе для многопроцессорного компьютера, который может выполнять параллельные алгоритмы. В графовой модели для такой сети взаимосвязей вершина — отдельный процессор, ребро — прямая связь между двумя процессорами. Спецификация параллельных архитектур иллюстрирует некоторые взаимодействия между теорией графов и абстрактной алгеброй.
  • Строительство. Двумерный каркас из стальных балок, соединенных шарнирами, которые позволяют каждой балке поворачиваться в плоскости, жёсткий, если ни одна из его балок не может поворачиваться. Проблема определения того, является ли каркас жёстким, может быть сведена к связности в двудольном графе.
  • Физическая химия. Углеводородхимическая молекула, состоящая из атомов водорода и углерода. Он насыщен, если в нем содержится максимальное число атомов водорода для его атомов углерода. Насыщение происходит, когда присутствуют только простые связи, то есть когда структурная модель углеводорода — простой граф. Атом водорода имеет один электрон всегда 1-валентен в молекуле. Атом углерода 4-валентный и имеет четыре электрона на своей внешней оболочке. Насыщенные углеводороды бутан и изобутан имеют одинаковую химическую формулу [math]\ce{ C4H10 }[/math], но их графы неизоморфны, поэтому они изомеры.
  • Информатика. Для сети из [math]\displaystyle{ n }[/math] компьютеров существует [math]\displaystyle{ {n\choose 2} = \frac{n^2 - n}{2} }[/math] возможных пар компьютеров, которые могут быть напрямую соединены. Если все пары связаны, то [math]\displaystyle{ n }[/math] компьютеров подключены, но многие из связей не нужны. Если компьютеры соединены минимальным количеством рёбер, то эти рёбра образуют дерево и количество рёбер в дереве на единицу меньше, чем количество вершин.
  • Юриспруденция. Пусть корпорация ABC разработает и выпустит на рынок компьютерный чип, а вскоре корпорация DEF выпустит на рынок чип с поразительным операционным сходством. Если ABC докажет, что схема DEF — перестройка схемы ABC, то есть что схемы изоморфны, будет основание для иска о нарушении патентных прав. Если ABC будет проверять сохранение структуры для каждого узла чипа DEF, то задача может занять слишком много времени. Знание организации микросхем может сэкономить время.
  • Теория алгоритмов. Пусть некоторый распределенный алгоритм[en] работает в сети межсоединений[en] с архитектурой — массивом [math]\displaystyle{ 8 \times 8 \times 32 }[/math]. И пусть доступная сеть соединений — 13-мерный граф гиперкуба [math]\displaystyle{ Q_{13} }[/math]. Если 13-мерный граф гиперкуба содержит подграф — сетку размером [math]\displaystyle{ 8 \times 8 \times 32 }[/math], то алгоритм можно напрямую перенести в этот гиперкуб.
  • Информатика. Величины k вершинной k-связности и рёберной k-связности используются в количественной модели живучести сети, которая представляет собой способность сети сохранять соединения между своими узлами после удаления некоторых рёбер или узлов.
  • Информатика. В сети связи ошибка — разрушение (удаление) вершины или ребра из моделирующего графа. Таким образом, чем выше связность вершин и рёбер, тем надежнее сеть. Чем меньше соединений используется для подключения, тем дешевле сеть. Получаем следующую задачу оптимизации: при k меньшем n найти k-связный n-вершинный граф, имеющий наименьшее число рёбер.
  • Теория кодирования. Космический аппарат передаёт некоторое закодированное числами изображение, где числа — значения темноты для точек изображения. Преимущество кодирования изображения кодом Грея заключается в том, что если ошибка из-за «космического шума» приводит к неправильному прочтению одной двоичной цифры в числе, то интерпретация этого числа слабо отклонится от истинного значения темноты. Код Грея порядка [math]\displaystyle{ n }[/math] соответствует гамильтонову циклу в графе гиперкуба [math]\displaystyle{ Q_n }[/math].
  • Проектирование вычислительных машин. Один из методов миниатюризации непланарной электронной сети — нанесение изоляции между плоскими слоями неизолированных проводников, которые соединяют узлы. Размер и стоимость чипа уменьшаются при минимизации количества слоев. Простой подход к проектированию многослойных схем заключается в использовании «совмещённых чертежей отрезков» остовных подграфов, которые индуцируют рёберное разбиение. Это означает, что узлы в каждом слое находятся в одном и том же положении на плоскости, и каждый слой рисуется рёбрами-отрезками.
  • Теория связи. Минимум радиолокационных станций, необходимых для наблюдения за несколькими стратегическими объектами — число доминирования соответствующего графа.
  • Транспорт. Пусть стихийное бедствие обрушилось на регион, состоящий из небольших деревень. Вершины графа — деревни в регионе. Ребро указывает на то, что станция скорой медицинской помощи, созданная в одной из деревень, может также обслуживать другую. Тогда минимальное доминирующее множество графа описывает способ обслуживания региона с минимальным количеством станций первой помощи.
  • Информатика. Рассмотрите задачу размещения ферзей на шахматной доске: каждая клетка доски либо занята ферзём, либо достигается ферзём за один ход. Определение минимального числа ферзей эквивалентно нахождению числа доминирования графа с 64 вершинами, где рёбра соответствует ходам ферзей.
  • Теория связи. При назначении частоты вещания радиопередатчикам в одном регионе некоторым парам передатчиков требуются разные частоты, чтобы избежать помех. Графовая модель используется для решения задачи минимизации количества назначенных различных частот. Предположим, что если два передатчика находятся на расстоянии менее 100 км друг от друга, они должны транслироваться на разных частотах. Тогда строится граф, вершины которого — передатчики, а рёбра указывают на пары на расстоянии менее 100 км друг от друга. Проблема назначения радиочастот во избежание помех эквивалентна задаче такой раскраски вершин графа, что смежные вершины имеют разные цвета. Минимальное количество частот будет равно минимальному количеству цветов.
  • Химия. Пусть вершины графа — различные химические вещества, используемые в производственно процессе, рёбра — пара химических веществ, которая может взорваться при смешивании. Тогда хроматическое число графа — минимальное число складских помещений, требующихся для хранения порознь пар взрывоопасных веществ.
  • Исследование операций. Пусть верины графа — учебные курсы в университете, ребро соединяет два курса тогда и только тогда, когда хотя бы один студент записался на оба курса. Такие курсы не могут проходить одновременно. Тогда хроматическое число графа — минимальное число разнесённых по времени академических часов в расписании занятий, при котором у студентов не возникнет конфликт учебных курсов.
  • Теория алгоритмов. Пусть верины графа — переменные компьютерной программы, ребро соединяет две переменные, которые могут быть активны одновременно. Тогда хроматическое число графа — минимальное число регистров, необходимых для избежания возможной пробуксовки — состояния постоянного свопинга.
  • Исследование операций. Пусть верины графа — учебные курсы в университете, ребро соединяет два курса тогда и только тогда, когда хотя бы три студента записались на оба курса. Такие курсы не могут проходить одновременно. Но число разнесённых по времени академических часов в расписании занятий меньше хроматического числа графа, при котором у студентов не возникнет конфликт учебных курсов. Тогда приходится планировать так, чтобы свести к минимуму количество конфликтов. Если рёбрам графа присваивается вес в зависимости от степени нежелательности конфликта, например, ребро связывает учебные курсы одного и того же преподавателя, то надо найти раскраску с общим наименьшим весом рёбер с одноцветными концами.
  • Проектирование вычислительных машин. Несколько электронных устройств находятся на печатной плате. Соединительные провода, выходящие из устройств, должны быть окрашены по-разному, чтобы их можно было различить. Наименьшее количество требуемых цветов — ребёрное хроматическое число моделирующей сети.
  • Модели на мультиграфах и псевдографах.
  • География. В географической модели вершины мультиграфа могут представлять страны (области, штаты), а рёбра — дороги, пересекающие общую границу.
  • Химия. Например, молекула бензола имеет двойные связи для некоторых пар своих атомов, поэтому она моделируется мультиграфом. Атом углерода имеет валентность 4 и моделируется вершиной мультиграфа степени 4, атом водорода имеет валентность 1 и моделируется вершиной степени 1
  • Транспорт. Специальная тележка, оснащенная датчиком, ездит по участкам сети железнодорожных путей для поиска дефектов. Можно ли спланировать движение тележки так, чтобы она диагностировала каждый участок путей ровно один раз, а затем вернулась в исходную точку? Проблема эквивалентна определению того, является ли мультиграф эйлеровым.
  • Проектирование вычислительных машин. Графы случайного обмена[en] служат моделями для параллельных архитектур, подходящих для выполнения различных распределённых алгоритмов, включая перетасовку карт и быстрое преобразование Фурье. Вершины псевдографа случайного обмена [math]\displaystyle{ SE_n }[/math] являются битовыми строками длины [math]\displaystyle{ n }[/math].
  • Проектирование вычислительных машин. Компьютер состоит из нескольких модулей и их контактов. Физическое положение модулей определено, и контакты нужно соединить проводами. Контакты небольшого размера, и к любому моет быть прикреплено не более двух проводов. Чтобы свести к минимуму шум и упростить проводку, общая длина провода должна быть минимальна. Требуемую конструкцию даёт гамильтонов путь с минимальным весом.
  • Транспорт. Каждые выходные частная школа перевозит n детей на m автобусных остановок. Родители встречают своих детей на автобусных остановках. Школе принадлежит k автобусов с разной вместимостью. Как построить маршруты автобусов с минимальной общей стоимостью? Вершины графа — школа и остановки, вес рёбер — расстояния между ними. В каждый автобус можно посадить несколько групп детей, выходящих на разных остановах, так, чтобы не превысить вместимость автобуса. Стоимость автобусного маршрута равна стоимости гамильтонова цикла минимального веса. Таким образом, задача состоит в том, чтобы разбить m автобусных остановок на k подмножеств так, чтобы сумма стоимости маршрутов всех автобусов была минимальна.
  • Исследование операций. В университете есть несколько преподавателей для чтения нескольких учебных курсов. Требуется рассчитать минимальное количество академических часов в расписании занятий, необходимых для планирования всех курсов, чтобы одновременно не преподавались два раздела одного и того же курса. Строим двудольный граф на долях преподавателей и учебных курсов, рёбра соединяют преподавателей с их курсами (преподаватель может читать разные курсы, и один курс могут читать разные преподаватели). Подбор преподавателей для курсов можно осуществить за некоторый промежуток времени. Если цвет рёбра — академический час в дневном расписании, то окраска рёбер двудольного графа — возможное расписание для разделов курсов. Минимальная окраска рёбер использует наименьшее количество академических часов.
  • Модели на простых орграфах.
  • Картография. Карту улиц города можно представить в виде смешанного графа следующим образом. Вершины этого графа — объекты города, а ориентированные и простые рёбра — соответственно улицы с односторонним и двусторонним движением.
  • Социология. Иерархию можно представить в виде ориентированного дерева. Например, иерархию принятия решений в компании. Графы и орграфы используются для моделирования социальных отношений, а не только физических сетей.
  • Экология. Взаимоотношения питания между видами растений и животных экосистемы называются пищевой сетью и моделируются простым орграфом. Каждый вид в системе представлен вершиной, а дуги направлены от вида, который питается, к тому виду, которым питается первый вид.
  • Экономика. В крупных проектах при планировании часто возникают задачи, которые не могут начаться до завершения других. Вершины орграфной модели — задачи, дуга от одной вершины к другой означает, что вторая задача не может начаться до завершения первой задачи. Для упрощения диаграммы не рисуются дуги, получающиеся транзитивностью.
  • Программирование. Компьютерная программа — набор блоков программирования с соответствующим потоком управления. Орграф — естественная модель для этой декомпозиции: вершина — блок программирования связан, и если управление по последней инструкции одного блока передаётся первой инструкции другого блока, то рисуется дуга из первого блока во второй. Блок-схемы обычно не имеют кратных дуг.
  • Электротехника. Определить электрический ток в каждой ветви электрической цепи, используя Закон Ома, первое правило Кирхгофа и второе правило Кирхгофа. Эффективная стратегия решения — с помощью остовного дерева найти минимальный набор контуров орграфа, соответствующих уравнений которых достаточно для решения задачи. Фундаментальный базис циклов — основа для пространства циклов, поэтому его соответствующие уравнения составят полный набор линейных алгебраических уравнений и задача будет решена.
  • Программирование. Пусть на одной машине обрабатывается n заданий. Известно время, необходимое для обработки любого задания после любого другого. Как упорядочить задания, чтобы минимизировать общее время? Рисуем орграф с n вершинами — заданиями и с соответствующими весами дуг. Тогда искомую последовательность заданий даёт гамильтонов путь с минимальным весом.
  • Экономика. Пусть известна цена на новый автомобиль и рост цены каждый год, прогнозируются годовые эксплуатационные расходы и стоимость перепродажи. Как, начиная с нового автомобиля, минимизировать чистые затраты на владение и эксплуатацию автомобиля? Строим орграф с числом вершин, на 1 больше числа лет эксплуатации, дуги которого идут от меньших годов к большим и имеют вес, равный стоимости покупки нового автомобиля в год начала дуги и его содержания до начала года конца дуги. Проблема сводится к нахождению кратчайшего пути от первой вершины до последней.
  • Радио. Пейджинговая сеть моделируется орграфом: вершина орграфа — человек, дуга — односторонняя прямая связь от человека к человеку. Чтобы отправить оповещение от человека к человеку, не обязательно иметь прямую связь, должен быть только направленный путь. Транзитивное замыкание орграфа определяет все пары вершин, для которых существует путь из одной вершины в другую.
  • Программирование. Пусть процедура из нескольких операций выполняется на одной машине, и имеется естественный частичный порядок операций. Линейное расширение[en] этого набора операций решило бы проблему линейного упорядочения операций на машине.
  • Экономика. Модель орграфа используется при планировании крупных сложных проектов для достижения двух целей: запланировать мероприятия так, чтобы время завершения проекта было минимально; определить мероприятия, задержка которых приведет к задержке проекта. Если продолжительность каждого мероприятия известна, то для решения этих проблем используют метод критического пути (CPM).
  • Модели на (псевдо)орграфах.
  • Цепь Маркова. В марковском процессе вероятность перехода из одного состояния в другое зависит только от текущего состояния. В графовой модели цепи Маркова каждая дуга помечена вероятностью перехода из состояния в начальной вершине в состояние в концевой вершине, и сумма вероятностей на исходящих дугах из каждой вершины равна 1. Диаграмма Маркова — пример взвешенного графа.
  • Лексический анализ. Исходный код компьютерной программы можно рассматривать как строку символов. Лексический сканер должен сканировать эти символы по одному за раз и распознавать, какие символы «сочетаются», образуя синтаксический токен или лексему. Такой сканер может быть смоделирован с помощью помеченного орграфа. Первая вершина — начальное состояние до сканирования символов. Вторая вершина — состояние принятия, в котором подстрока из отсканированных символов — действительный идентификатор. Третья вершина — состояние отклонения — подстрока отброшена как недопустимый идентификатор. Метки дуг указывают, какие символы вызывают переход из начального состояния в концевое состояние.
  • Теория игр. Пусть игрок, начиная с 3 долларов, играет в следующую игру. Бросаются две монеты. Если выпадет два орла, то игрок выиграет 3 доллара, иначе потеряет 1 доллар. Игрок играет до тех пор, пока либо не потеряет все деньги, либо будет иметь не менее 5 долларов. Графовая модель — граф цепи Маркова.
  • Теория кодирования. Пусть вращающийся барабан имеет 16 различных секторов. Присвоим 0 или 1 каждому сектору, поместив проводящий материал в некоторые сектора и непроводящий в другие. Затем неподвижными датчиками «считываем» 4-битную строку, соответствующую четырем секторам, попавшим на датчики. Если 16-битовая строка секторов барабана — (2, 4)-последовательность де Брёйна, то положение барабана можно определить по 4-битной подстроке, которую улавливают датчики. Это более экономично, чем 4-битный код в каждом секторе. (2, 4)-последовательность де Брёйна строится с помощью (2, 4)-орграфа де Брёйна.
  • Городское хозяйство. Орграф — сеть улиц с односторонним движением, жирные дуги — улицы, которые необходимо подмести, вес ребра — время прохождения улицы без подметания, а время, необходимое для подметания улицы, вдвое больше. Какой маршрут минимизирует общее время для подметания всех необходимых улиц, начиная и заканчивая заданной вершиной?
  • Информатика. Построить плоттером несколько тысяч копий сети, если для построения горизонтального ребра требуется вдвое больше времени, чем для вертикального. Задача маршрутизации плоттера так, чтобы общее время было минимально, моделируется как задача китайского почтальона.
  • Социология. Пусть некоторые пары в отделе из шести человек должны встретиться конфиденциально в одном и том же конференц-зале. Можно ли организовать конференции из двух человек так, чтобы один из участников каждой конференции (кроме последней) также участвовал в следующей, но никто не участвовал в трёх последовательных конференциях?
  • Генетика. В цепи РНК (рибонуклеиновой кислоты) каждое звено представляет собой один из четырёх возможных нуклеотидов. При попытке идентифицировать цепь РНК в неизвестном образце существующая технология не позволяет напрямую идентифицировать длинные цепи. Существует метод фрагментации и субфрагментации длинной цепи РНК на идентифицируемые подцепи. Стратегия Хатчинсона[en] состоит в том, чтобы построить орграф Эйлера, дуги которого помечены фрагментами, так что каждый эйлеров путь соответствует цепочке РНК.
  • Комбинаторика. Обобщая предыдущее применение в генетике, РНК можно представить как строку номеров нуклеотидов. Пусть для данной строки цифр [math]\displaystyle{ f_i }[/math] — число цифр [math]\displaystyle{ i }[/math] в строке, [math]\displaystyle{ f_{ij} }[/math] — число подстрок [math]\displaystyle{ ij }[/math] в строке. Тогда информация, заложенная в РНК, зависит только от чисел [math]\displaystyle{ f_i }[/math] и [math]\displaystyle{ f_{ij} }[/math], [math]\displaystyle{ i, j = 1, 2, \dots, n }[/math], [math]\displaystyle{ f_{ii} = 0 }[/math]. Для реконструкции строки строим орграф по матрице смежности [math]\displaystyle{ (f_{ij}) }[/math], где вместо [math]\displaystyle{ f_{ii} = 0 }[/math] стоят [math]\displaystyle{ f_i }[/math]. Тогда все различные эйлеровы пути дадут все возможные подходящие строки.

Некоторые алгоритмы теории графов

Алгоритмы представлены в сжатом формате, без подробностей компьютерной реализации. Имеется множество проектов, предлагающих преобразовать алгоритмы в компьютерные программы[154].

  • Рекурсивная графическая последовательность. Рекурсивный алгоритм, который определяет, является ли невозрастающая последовательность последовательностью степеней вершин некоторого графа.
  • Определение изоморфизма графов полным перебором. Два графа изоморфны, если их наборы вершин можно упорядочить так, чтобы их матрицы смежности были идентичны.
  • Прямой левый обход дерева (NLR). Сначала обходим левое поддерево, вносим в список каждую вершину только при появлении её впервые.
  • Обратный левый обход дерева (LRN). Сначала обходим левое поддерево, вносим в список каждую вершину только при появлении её в последний раз.
  • Центрированный левый обход дерева (LNR). Сначала обходим левое поддерево, вносим в список каждую вершину, имеющую левое поддерево, только при её появлении во второй раз, остальные вершины вносим в список при их появлении в первый раз.
  • Поиск в двоичном дереве поиска. На каждой итерации исключаем либо левое, либо правое поддерево из остальной части поиска в зависимости от того, что целевой ключ соответственно больше или меньше ключа в текущей вершине.
  • Добавление в двоичное дерево поиска. С итеративной точки зрения двоичный поиск выполняется до тех пор, пока он не завершится на конечной вершине. Затем новый ключ присваивается новой вершине, которая становится левым или правым поддеревом этой конечной вершины в зависимости от сравнения нового ключа с ключом конечной вершины.
  • Алгоритм Хаффмана. В префиксном коде, который использует более короткие кодовые слова для кодирования более часто встречающихся символов, сообщения обычно требуют меньше битов, чем в коде, который этого не делает. Алгоритм Хаффмана строит именно такой эффективный префиксный код, объединяя в исходном лесу два дерева наименьшего веса в новое дерево.
  • Добавление в дерево приоритетов[en]. Сначала добавляют новую вершину на первое свободное место в дереве приоритетов, а затем перемещают её вверх к корню, пока её приоритет не станет меньше или равен приоритету родительской вершины.
  • Удаление из дерева приоритетов. Сначала удаляемая вершина заменяется вершиной, занимающей крайнее правое место на нижнем уровне дерева приоритетов. Затем эта вершина итеративно стекает вниз, меняясь местами с потомком, имеющим больший приоритет, пока её приоритет не превысит приоритеты обоих потомков.
  • Кодирование Прюфера. Последовательность Прюфера длиной [math]\displaystyle{ n - 2 }[/math] строится из данного дерева с [math]\displaystyle{ n }[/math] вершинами, занумерованными числами [math]\displaystyle{ 1, 2, \dots, n }[/math], путём удаления вершин, пока не останется [math]\displaystyle{ 2 }[/math] вершины.
  • Декодирование Прюфера. Закодированное дерево восстанавливается по последовательности Прюфера [math]\displaystyle{ p_1, p_2, \dots, p_{n-2} }[/math] и списку номеров вершин дерева [math]\displaystyle{ 1, 2, \dots, n }[/math].
  • Построение остовного дерева. Начиная с заданной вершины графа строится остовное дерево с корнем в заданной вершине, используя любую схему поиска новых вершин дерева, смежных со старыми вершинами.
  • Построение остовного леса. Начиная с заданной вершины каждой компоненты несвязного графа строится остовное дерево текущей компоненты с корнем в заданной вершине, используя любую схему поиска новых вершин дерева, смежных со старыми вершинами.
  • Поиск в глубину (DFS). Начиная с заданной вершины графа строится дерево поиска следующим образом. На графе выбирается новая вершина, смежная с самой последней обнаруженной вершиной уже построенного дерева. Если это невозможно, происходит возвращение к предыдущей обнаруженной вершине и попытка повторяется. В итоге поиск продвигается вглубь графа (отсюда и название «в глубину»).
  • Поиск в ширину (BFS). Начиная с заданной вершины графа строится дерево поиска следующим образом. Поиск «разветвляется» от заданной вершины и увеличивает дерево, выбирая смежные ребра с вершинами дерева, расположенными как можно ближе к заданной вершине. В итоге поиск продвигается по ширине графа слоями, равноудалёнными от заданной вершины (отсюда и название «в ширину»).
  • Минимальное остовное дерево Прима. Ищется остовное дерево связного взвешенного графа с минимальной суммой весов рёбер. Начинаем с любой вершины графа и на каждой итерации строим дерево Прима добавлением новой вершины, соединённой с деревом ребром с минимальным весом.
  • Кратчайший путь Дейкстры. Ищутся кратчайшие пути от заданной вершины взвешенного графа сразу до всех других вершин. Начинаем с заданной вершины графа и на каждой итерации добавляем к обработанным вершинам новую, соединённую ребром с одной из обработанных вершин и наиболее близкую к заданной вершине.
  • Применение поиска в глубину.
  • Жадный алгоритм решения задачи о подмножестве системы независимости[en] с максимальном весом. Пусть для каждого ребра графа задан неотрицательный вес, и задана система независимости графа. Перебираем все рёбра графа, начиная с максимального веса, и строим из них подмножество системы независимости с максимальной суммой весов рёбер.
  • Жадный алгоритм решения задачи о паросочетании с максимальном весом. Частный случай предыдущего алгоритма.
  • Построение оптимального [math]\displaystyle{ k }[/math]-связного графа с [math]\displaystyle{ n }[/math] вершинами. Фрэнк Харари разработал процедуру построения [math]\displaystyle{ k }[/math]-связного графа Харари [math]\displaystyle{ H_{k, n} }[/math] на [math]\displaystyle{ n }[/math] вершинах, имеющего минимальное количество [math]\displaystyle{ \left \lceil \frac{kn}{2} \right \rceil }[/math] ребер для [math]\displaystyle{ k \geqslant 2 }[/math]. Построение графа Харари [math]\displaystyle{ H_{k, n} }[/math] начинается с [math]\displaystyle{ n }[/math]-циклического графа, вершины которого последовательно пронумерованы числами [math]\displaystyle{ 0, 1, 2, \dots, n - 1 }[/math] по часовой стрелке по периметру. Построение [math]\displaystyle{ H_{k, n} }[/math] зависит от соотношения [math]\displaystyle{ k }[/math] и [math]\displaystyle{ n }[/math] и распадается на три случая.
  • Построение эйлерова цикла. В связном графе, все вершины которого имеют чётную степень, выбираем любую вершину и считаем её эйлеровым циклом. На каждой итерации добавляем любой цикл из новых рёбер, имеющий с текущим эйлеровым циклом общую вершину.
  • Построение (2, n)-последовательности де Брёйна. Строим (2, n)-орграф де Брёйна. Выбираем в этом орграфе вершину и строим ориентированный эйлеров цикл орграфа, начиная с выбранной вершины. Последовательно, начиная с выбранной вершины, обходим эйлеров цикл и собираем однобитовые метки дуг графа в последовательность де Брёйна.
  • Построение цикла почтальона. Прослеживаем рёбра по кратчайшим путям взвешенного связного графа между вершинами нечётной степени. Если все рёбра пути между двумя вершинами нечётной степени дублируются, то степени этих двух вершин становятся чётными, а чётность степени каждой внутренней вершины пути остаётся неизменной.
  • Алгоритм минимального остовного дерева и его удвоения в задаче коммивояжёра. Находим минимальное остовное дерево. Удваиваем каждое ребро дерева, получаем эйлеров граф. Строим эйлеров цикл. Строим гамильтонов цикл из эйлерова цикла, используя при обрыве эйлерова цикла короткие пути.
  • Алгоритм минимального остовного дерева и паросочетаний в задаче коммивояжёра. Находим минимальное остовное дерево. Строим эйлеров граф, добавляя к остовному дереву рёбра из некоторого паросочетания. Строим эйлеров цикл. Строим гамильтонов цикл из эйлерова цикла, используя при обрыве эйлерова цикла короткие пути.
  • Простая проверка планарности двусвязного графа. Алгоритм требует [math]\displaystyle{ O(n^2) }[/math] вычислительных шагов. Сначала рисуем любой цикл двусвязного графа. Затем добавляем циклы до тех пор, пока граф не будет построен (планарный) или рёбрам придётся пересечься (непланарный).
  • Жадная раскраска вершин. Последовательный алгоритм, который быстро проходит вершины графа в некоторой заданной последовательности и назначает каждой вершине первый доступный цвет. Эта раскраска вряд ли будет минимальной, и маловероятно, что какой-либо алгоритм с полиномиальным временем может выполнить это, поскольку задача вычисления хроматического числа графа NP-полная.
  • Жадная раскраска вершин с наибольшей степенью. На каждом шаге среди неокрашенных вершин с максимальной степенью выбирается та, которая имеет наибольшее число смежных вершин разных цветов.
  • Жадная раскраска рёбер. Аналогична жадной раскраске вершин.
  • Жадная раскраска рёбер максимального паросочетания. На каждом шаге среди неокрашенных рёбер ищется максимальное паросочетание и затем все его рёбра раскрашиваются одним цветом.
  • Алгоритм Уоршелла поиска транзитивного замыкания. Пусть дан орграф. Вычислительно эффективный алгоритм строит последовательность орграфов таких, что предыдущий орграф — подграф следующего орграфа, а последний орграф — транзитивное замыкание исходного. Следующий орграф получается из предыдущего добавлением дуги при её отсутствии, если есть путь длиной 2 из начальной вершины новой дуги к конечной.
  • Алгоритм Кана топологической сортировки. Это простой алгоритм построения линейного расширения[en] частично упорядоченного множества. Идея состоит в том, чтобы всегда выбирать минимальный элемент на каждом шаге алгоритма.
  • Вычисление самого раннего времени события. На каждой итерации во взвешенном ациклическом орграфе крупного сложного проекта выбирается вершина, в которую не входит ни одна дуга, и значения самого раннего времени её последующих вершин соответственно обновляются. Затем эта вершина удаляется из орграфа, и начинается следующая итерация. Алгоритм вычисляет самые длинные пути от начальной вершины до каждой другой.
  • Вычисление самого позднего времени события. Аналогичен расчету самого раннего времени события, но выполняется после вычисление самого раннего времени события в обратном направлении от вершины орграфа конца проекта, которая инициализируется самым ранним временем события.

На каждой итерации во взвешенном ациклическом орграфе крупного сложного проекта выбирается вершина, в которую не входит ни одна дуга, и значения самого раннего времени её последующих вершин соответственно обновляются. Затем эта вершина удаляется из орграфа, и начинается следующая итерация. Алгоритм вычисляет самые длинные пути от начальной вершины до каждой другой.

См. также

Примечания

  1. Акимов О. Е. Дискретная математика: логика, группы, графы, 2003, с. 238.
  2. 2,0 2,1 2,2 Карпов Д. В. Теория графов. 2017 или позже, с. 2—3.
  3. 3,0 3,1 3,2 Оре О. Графы и их применение, 1965, с. 6.
  4. Уилсон Р. Введение в теорию графов, 1977, с. 5.
  5. 5,0 5,1 Bondy J. A., Murty U. S. R. Graph Theory, 2008, с. ix.
  6. Басакер Р., Саати Т. Конечные графы и сети, 1974, с. 7.
  7. Bondy J. A., Murty U. S. R. Graph Theory, 2008, с. vii.
  8. 8,0 8,1 Берж К. Теория графов и её применения, 1962, с. 5.
  9. Емеличев В. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. Лекции по теории графов, 1990, с. 3.
  10. Харари Ф., Палмер Э. Перечисление графов, 1977, с. 255.
  11. Кристофдес Н. Теория графов. Алгоритмический подход, 1978, с. 7.
  12. 12,0 12,1 12,2 Харари Фрэнк. Теория графов, 2003, с. 13.
  13. 13,0 13,1 Виленкин Н. Я., Шибасов Л. П., Шибасова З. Ф. За страницами учебника математики, 1996, с. 288.
  14. Leonhardus Eulerus. Solutio problematis ad geometriam situs pertinentis, 1736.
  15. 15,0 15,1 15,2 15,3 15,4 Харари Фрэнк. Теория графов, 2003, с. 13—17.
  16. 16,0 16,1 16,2 16,3 16,4 16,5 16,6 16,7 16,8 16,9 Фляйшнер Г. Эйлеровы графы и смежные вопросы, 2002, с. 11.
  17. 17,0 17,1 M. Camille Jordan. Sur les assemblages de lignes, 1869.
  18. Романовский И. В. Дискретный анализ, 2003, с. 185.
  19. Gross J. L., Yellen J. Handbook of graph theory, 2004, p. 35.
  20. Sylvester J. J. Chemistry and algebra, 1878, p. 284.
  21. 21,0 21,1 21,2 Dénes König. Theorie der endlichen und unendlichen Graphen, 1936, с. 24.
  22. 22,0 22,1 Dénes König. Theory of finite and infinite graphs, 1990, p. 30.
  23. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 151—152.
  24. 24,0 24,1 24,2 24,3 Фляйшнер Г. Эйлеровы графы и смежные вопросы, 2002, с. 12.
  25. Протоколы заседаний Конференции Императорской Академии Наук с 1725 по 1803 года. Том I. 1725—1743, 1897, с. 220—221.
  26. 26,0 26,1 26,2 Фляйшнер Г. Эйлеровы графы и смежные вопросы, 2002, с. 15.
  27. 27,0 27,1 Фляйшнер Г. Эйлеровы графы и смежные вопросы, 2002, с. 26.
  28. Фляйшнер Г. Эйлеровы графы и смежные вопросы, 2002, с. 31—32.
  29. 29,0 29,1 Харари Фрэнк. Теория графов, 2003, с. 17.
  30. Харари Фрэнк. Теория графов, 2003, с. 18.
  31. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 97—99.
  32. Харари Фрэнк. Теория графов, 2003, с. 126.
  33. 33,0 33,1 Харари Фрэнк. Теория графов, 2003, с. 127—128.
  34. Биографический очерк Харари, 2005.
  35. 35,0 35,1 Харари Фрэнк. Теория графов, 2003, с. 5.
  36. 36,0 36,1 36,2 Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. xi.
  37. 37,0 37,1 Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 145.
  38. Dénes König. Theorie der endlichen und unendlichen Graphen, 1936.
  39. Dénes König. Theory of finite and infinite graphs, 1990.
  40. Уилсон Р. Введение в теорию графов, 1977, с. 6.
  41. 41,0 41,1 Харари Фрэнк. Теория графов, 2003, с. 21.
  42. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. xi—xii.
  43. Акимов О. Е. Дискретная математика: логика, группы, графы, 2003, с. 236—237.
  44. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. xii.
  45. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов, 1981, с. 47.
  46. Reinhard Diestel. Graph Theory, 2016, Notes, с. 33.
  47. Дистель Р. Теория графов, 2002, с. 43.
  48. Кормен Т. Х. и др. Алгоритмы: построение и анализ, 2009, с. 608.
  49. 49,0 49,1 49,2 49,3 Оре О. Графы и их применение, 1965, с. 15—19.
  50. Фляйшнер Г. Эйлеровы графы и смежные вопросы, 2002, с. 39.
  51. Зыков А. А. Основы теории графов, 2004, с. 512—517.
  52. Gross J. L., Yellen J. Graph theory and its applications, 2006, p. 469.
  53. Берж К. Теория графов и её применения, 1962, с. 7.
  54. Reinhard Diestel. Graph Theory, 2016, p. 1.
  55. Дистель Р. Теория графов, 2002, с. 15.
  56. Харари Фрэнк. Теория графов, 2003, с. 21—22, 27—28, 31—32.
  57. Reinhard Diestel. Graph Theory, 2016, 1.1—1.2, 1.6, 1.10.
  58. Дистель Р. Теория графов, 2002, 1.1—1.2, 1.6, 1.10.
  59. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 2. Обозначение G — от англ. graph и нем. Graph — граф, Vангл. vertex — вершина, Eангл. edge — ребро.
  60. Татт У. Теория графов, 1988, с. 16.
  61. Басакер Р., Саати Т. Конечные графы и сети, 1974, с. 11.
  62. 62,0 62,1 Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 5. Обозначение K — от нем. komplett — полный.
  63. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 2. Обозначение deg — от англ. degree — степень.
  64. Харари Фрэнк. Теория графов, 2003, с. 23—24.
  65. Reinhard Diestel. Graph Theory, 2016, 1.1, 1.10.
  66. Дистель Р. Теория графов, 2002, 1.1, 1.10.
  67. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 2. Обозначение G — от англ. graph и нем. Graph — граф, Vангл. vertex — вершина, Eангл. edge — ребро.
  68. Фрич Р., Перегуд Е. Е., Мациевский С. В. Избранные главы теории графов, 2008, с. 21. Обозначение D — от англ. direct — направлять.
  69. Харари Фрэнк. Теория графов, 2003, с. 26—27, 83—84.
  70. Reinhard Diestel. Graph Theory, 2016, 1.3—1.4, 1.8.
  71. Дистель Р. Теория графов, 2002, 1.3—1.4, 1.8.
  72. Харари Фрэнк. Теория графов, 2003, с. 48—51.
  73. Reinhard Diestel. Graph Theory, 2016, 1.5.
  74. Дистель Р. Теория графов, 2002, 1.5.
  75. Reinhard Diestel. Graph Theory, 2016, Annotation.
  76. Reinhard Diestel. Graph Theory, 2016, Chapter 2.
  77. Дистель Р. Теория графов, 2002, Глава 2.
  78. 78,0 78,1 Дистель Р. Теория графов, 2002, Глава 3.
  79. Reinhard Diestel. Graph Theory, 2016, Chapter 3.
  80. Reinhard Diestel. Graph Theory, 2016, Chapter 1.
  81. Reinhard Diestel. Graph Theory, 2016, Chapter 4.
  82. Дистель Р. Теория графов, 2002, Глава 4.
  83. Reinhard Diestel. Graph Theory, 2016, Chapter 5.