В математической области теории графов двудольный граф (или биграф ) — это граф , вершины которого можно разделить на два непересекающихся и независимых множества и , то есть каждое ребро соединяет вершину в с одной в . Множество вершин обычно называют частями графа. Эквивалентно, двудольный граф — это граф, который не содержит циклов нечетной длины . [1] [2]
Эти два набора можно рассматривать как раскраску графа в два цвета: если раскрасить все узлы в синий цвет, а все узлы в красный, каждое ребро будет иметь конечные точки разных цветов, как это требуется в задаче раскраски графа. [3] [4] Напротив, такая раскраска невозможна в случае недвудольного графа, такого как треугольник : после того, как один узел окрашен в синий цвет, а другой в красный, третья вершина треугольника соединяется с вершинами оба цвета, что предотвращает присвоение ему любого цвета.
Часто пишут для обозначения двудольного графа, разбиение которого состоит из частей и , с обозначением ребер графа. Если двудольный граф несвязен , он может иметь более одного двудольного графа; [5] в этом случае обозначение полезно для указания одного конкретного бираздела, который может иметь значение в приложении. Если , то есть если два подмножества имеют одинаковую мощность , то граф называется сбалансированным двудольным. [3] Если все вершины на одной стороне двудольного деления имеют одинаковую степень , то оно называется бирегулярным .
При моделировании отношений между двумя разными классами объектов очень часто естественным образом возникают двудольные графы. Например, граф футболистов и клубов с перевесом между игроком и клубом, если игрок играл за этот клуб, является естественным примером сети филиалов , типа двудольного графа, используемого в анализе социальных сетей . [6]
Другой пример естественного появления двудольных графов — это ( NP-полная ) задача оптимизации железных дорог, в которой входными данными является расписание поездов и их остановок, а цель — найти как можно меньший набор железнодорожных станций, чтобы каждый поезд посещает хотя бы одну из выбранных станций. Эту проблему можно смоделировать как проблему доминирующего множества в двудольном графе, который имеет вершину для каждого поезда и каждой станции и ребро для каждой пары станций и поезда, который останавливается на этой станции. [7]
Третий пример относится к академической области нумизматики. Древние монеты изготавливаются с использованием двух положительных оттисков дизайна (аверса и реверса). Диаграммы, которые нумизматы создают для представления производства монет, представляют собой двудольные графики. [8]
Более абстрактные примеры включают следующее:
Двудольные графы можно охарактеризовать несколькими различными способами:
В двудольных графах размер минимального покрытия вершин равен размеру максимального паросочетания ; это теорема Кенига . [18] [19] Альтернативная и эквивалентная форма этой теоремы состоит в том, что размер максимального независимого набора плюс размер максимального соответствия равен числу вершин. В любом графе без изолированных вершин размер минимального покрытия ребер плюс размер максимального паросочетания равны числу вершин. [20] Объединение этого равенства с теоремой Кенига приводит к тому, что в двудольных графах размер минимального реберного покрытия равен размеру максимального независимого множества, а размер минимального реберного покрытия плюс размер минимальное вершинное покрытие равно числу вершин.
Другой класс связанных результатов касается идеальных графов : каждый двудольный граф, дополнение каждого двудольного графа, линейный граф каждого двудольного графа и дополнение линейного графа каждого двудольного графа совершенны. Совершенство двудольных графов легко увидеть (их хроматическое число равно двум, а максимальный размер клики также равен двум), но совершенство дополнений двудольных графов менее тривиально и является еще одним повторением теоремы Кёнига. Это был один из результатов, который мотивировал первоначальное определение идеальных графов. [21] Совершенство дополнений к линейным графам совершенных графов — это еще одно повторение теоремы Кенига, а совершенство самих линейных графов — это повторение более ранней теоремы Кенига о том, что каждый двудольный граф имеет раскраску ребер с использованием ряда цвета, равные его максимальной степени.
Согласно сильной теореме о совершенном графе , совершенные графы имеют запрещенную характеристику графа, аналогичную характеристике двудольных графов: граф является двудольным тогда и только тогда, когда он не имеет нечетного цикла в качестве подграфа, и граф совершенен тогда и только тогда, когда он имеет нет нечетного цикла или его дополнения как индуцированного подграфа . Двудольные графы, линейные графы двудольных графов и их дополнения образуют четыре из пяти основных классов совершенных графов, используемых при доказательстве сильной теоремы о совершенных графах. [22]
Для вершины количество соседних вершин называется степенью вершины и обозначается . Формула суммы степеней для двудольного графа утверждает, что [23]
Последовательность степеней двудольного графа представляет собой пару списков, каждый из которых содержит степени двух частей и . Например, полный двудольный граф K 3,5 имеет последовательность степеней . Изоморфные двудольные графы имеют одинаковую последовательность степеней. Однако последовательность степеней, как правило, не идентифицирует однозначно двудольный граф; в некоторых случаях неизоморфные двудольные графы могут иметь одинаковую последовательность степеней.
Проблема двудольной реализации — это проблема поиска простого двудольного графа, последовательность степеней которого представляет собой два заданных списка натуральных чисел. (Конечные нули можно игнорировать, поскольку они тривиально реализуются путем добавления соответствующего количества изолированных вершин к орграфу.)
Матрица двусмежности двудольного графа представляет собой матрицу размера (0,1) , имеющая единицу для каждой пары соседних вершин и ноль для несмежных вершин. [24] Матрицы бисмежности могут использоваться для описания эквивалентности между двудольными графами, гиперграфами и ориентированными графами.
Гиперграф — это комбинаторная структура, которая, как и неориентированный граф, имеет вершины и ребра, но в которой ребра могут представлять собой произвольные наборы вершин, а не иметь ровно две конечные точки. Двудольный граф можно использовать для моделирования гиперграфа, в котором U — множество вершин гиперграфа, V — множество гиперребер, а E содержит ребро от вершины гиперграфа v до ребра гиперграфа e точно тогда, когда v является одним из конечные точки e . При этом соответствии матрицы двудольных графов являются в точности матрицами инцидентности соответствующих гиперграфов. Как частный случай этого соответствия между двудольными графами и гиперграфами, любой мультиграф (граф, в котором между одними и теми же двумя вершинами может быть два или более ребер) может интерпретироваться как гиперграф, в котором некоторые гиперребра имеют равные наборы конечных точек, и представлен двудольным графом, не имеющим кратных смежностей и в котором все вершины на одной стороне двудольного графа имеют степень два. [25]
Подобная реинтерпретация матриц смежности может быть использована, чтобы показать взаимно однозначное соответствие между ориентированными графами (на заданном количестве помеченных вершин, допускающих самоциклы) и сбалансированными двудольными графами с одинаковым количеством вершин по обе стороны от двуразделение. Ибо матрицей смежности ориентированного графа с n вершинами может быть любая (0,1) матрица размера , которую затем можно переинтерпретировать как матрицу смежности двудольного графа с n вершинами на каждой стороне его двудольного разбиения. [26] В этой конструкции двудольный граф представляет собой двудольное двойное покрытие ориентированного графа.
Можно проверить, является ли граф двудольным, и вернуть либо двухцветный цикл (если он двудольный), либо нечетный цикл (если это не так) за линейное время , используя поиск в глубину . Основная идея состоит в том, чтобы присвоить каждой вершине цвет, который отличается от цвета ее родителя в лесу поиска в глубину, назначая цвета при предварительном обходе леса поиска в глубину. Это обязательно обеспечит двухцветную раскраску охватывающего леса, состоящего из ребер, соединяющих вершины с их родителями, но может неправильно раскрасить некоторые из ребер, не являющихся лесом. В лесу поиска в глубину одна из двух конечных точек каждого нелесного ребра является предком другой конечной точки, и когда поиск в глубину обнаруживает ребро этого типа, он должен проверить, что эти две вершины имеют разные цвета. Если это не так, то путь в лесу от предка к потомку вместе с обесцвеченным ребром образуют нечетный цикл, который возвращается из алгоритма вместе с результатом, что граф не является двудольным. Однако если алгоритм завершается, не обнаружив нечетного цикла этого типа, то каждое ребро должно быть правильно раскрашено, и алгоритм возвращает раскраску вместе с результатом, что граф является двудольным. [27]
Альтернативно, аналогичная процедура может использоваться с поиском в ширину вместо поиска в глубину. Опять же, каждому узлу присваивается цвет, противоположный цвету его родителя в лесу поиска, в порядке ширины. Если при окраске вершины существует ребро, соединяющее ее с ранее окрашенной вершиной того же цвета, то это ребро вместе с путями в лесу поиска в ширину, соединяющими две его конечные точки с их наименьшим общим предком , образует странный цикл. Если алгоритм завершается, не обнаружив таким образом нечетного цикла, то он, должно быть, нашел правильную раскраску и может с уверенностью заключить, что граф двудольный. [28]
Для графов пересечений отрезков прямых или других простых фигур на евклидовой плоскости можно проверить, является ли граф двудольным, и вернуть либо двухраскраску, либо нечетный цикл во времени , даже если сам граф может иметь до ребер . [29]
Трансверсализация нечетного цикла — это NP-полная алгоритмическая задача, которая спрашивает для данного графа G = ( V , E ) и числа k , существует ли набор из k вершин, удаление которых из G приведет к тому, что результирующий граф станет двудольным. [30] Проблема решается с фиксированными параметрами , что означает, что существует алгоритм, время работы которого может быть ограничено полиномиальной функцией размера графа, умноженной на большую функцию от k . [31] Название трансверсальная нечетного цикла происходит от того факта, что граф является двудольным тогда и только тогда, когда он не имеет нечетных циклов . Следовательно, чтобы удалить вершины из графа и получить двудольный граф, нужно «попасть во все нечетные циклы» или найти так называемое трансверсальное множество нечетных циклов. На иллюстрации каждый нечетный цикл в графе содержит синие (самые нижние) вершины, поэтому удаление этих вершин уничтожает все нечетные циклы и оставляет двудольный граф.
Проблема раздвоения ребер — это алгоритмическая проблема удаления как можно меньшего количества ребер, чтобы сделать граф двудольным, а также важная проблема в алгоритмике модификации графов. Эта проблема также решается с фиксированными параметрами и может быть решена за время , [32] где k — количество удаляемых ребер, а m — количество ребер во входном графе.
Паросочетание в графе — это подмножество его ребер, никакие два из которых не имеют общей конечной точки . Алгоритмы с полиномиальным временем известны для решения многих алгоритмических задач о сопоставлениях, включая максимальное сопоставление (поиск сопоставления, которое использует как можно больше ребер), сопоставление с максимальным весом и стабильный брак . [33] Во многих случаях задачи сопоставления проще решать на двудольных графах, чем на недвудольных графах, [34] и многие алгоритмы сопоставления, такие как алгоритм Хопкрофта-Карпа для сопоставления максимальной мощности [35], работают правильно только на двудольных входных данных. .
В качестве простого примера предположим, что группа людей ищет работу из набора должностей, причем не все люди подходят для всех должностей. Эту ситуацию можно смоделировать как двудольный граф , ребро которого соединяет каждого соискателя с каждой подходящей работой. [36] Идеальное соответствие описывает способ одновременного удовлетворения всех соискателей и заполнения всех вакансий; Теорема Холла о браке дает характеристику двудольных графов, допускающих идеальные паросочетания. Национальная программа подбора резидентов применяет методы сопоставления графов для решения этой проблемы для американских студентов-медиков , ищущих работу, и для работы в больницах . [37]
Разложение Далмаджа – Мендельсона — это структурное разложение двудольных графов, которое полезно для поиска максимальных паросочетаний. [38]
Двудольные графы широко используются в современной теории кодирования , особенно для декодирования кодовых слов , полученных из канала. Факторные графы и графы Таннера являются примерами этого. Граф Таннера — это двудольный граф, в котором вершины на одной стороне двудольного деления представляют собой цифры кодового слова, а вершины на другой стороне представляют собой комбинации цифр, сумма которых, как ожидается, без ошибок будет равна нулю в кодовом слове. [39] Факторный граф — это тесно связанная сеть доверия , используемая для вероятностного декодирования LDPC и турбокодов . [40]
В информатике сеть Петри — это инструмент математического моделирования, используемый при анализе и моделировании параллельных систем. Система моделируется как двудольный ориентированный граф с двумя наборами узлов: набором узлов «места», которые содержат ресурсы, и набором узлов «событий», которые генерируют и/или потребляют ресурсы. Существуют дополнительные ограничения на узлы и ребра, ограничивающие поведение системы. Сети Петри используют свойства двудольных ориентированных графов и другие свойства, позволяющие математически доказывать поведение систем, а также позволяют легко реализовать моделирование системы. [41]
В проективной геометрии графы Леви представляют собой форму двудольного графа, используемого для моделирования взаимодействий между точками и линиями в конфигурации . В соответствии с геометрическим свойством точек и линий, согласно которому каждые две прямые пересекаются не более чем в одной точке и каждые две точки соединяются одной прямой, графы Леви обязательно не содержат циклов длины четыре, поэтому их обхват должен быть шесть или более. . [42]