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