В математике теория графов — это изучение графов , которые являются математическими структурами , используемыми для моделирования парных отношений между объектами. Граф в этом контексте состоит из вершин (также называемых узлами или точками ) , которые соединены ребрами (также называемыми дугами , связями или линиями ). Различают неориентированные графы , где ребра соединяют две вершины симметрично, и ориентированные графы , где ребра соединяют две вершины асимметрично. Графы являются одним из основных объектов изучения в дискретной математике .
Определения в теории графов различаются. Ниже приведены некоторые из наиболее базовых способов определения графов и связанных с ними математических структур .
В одном ограниченном, но очень общем смысле этого термина [1] [2] граф — это упорядоченная пара, включающая :
Во избежание двусмысленности этот тип объекта можно назвать просто неориентированным простым графом .
В ребре вершины и называются конечными точками ребра. Говорят, что ребро соединяется с и инцидентно и с . Вершина может существовать в графе и не принадлежать ребру. Согласно этому определению, множественные ребра , в которых два или более ребер соединяют одни и те же вершины, не допускаются.
В еще одном общем смысле термина, допускающем множественные ребра, [3] [4] граф представляет собой упорядоченную тройку, включающую :
Во избежание двусмысленности этот тип объекта можно назвать именно неориентированным мультиграфом .
Петля — это ребро, соединяющее вершину с собой. Графы, как определено в двух определениях выше, не могут иметь петель, поскольку петля, соединяющая вершину с собой, является ребром (для неориентированного простого графа) или инцидентна (для неориентированного мультиграфа), который не находится в . Чтобы разрешить петли, определения должны быть расширены. Для неориентированных простых графов определение должно быть изменено на . Для неориентированных мультиграфов определение должно быть изменено на . Чтобы избежать неоднозначности, эти типы объектов можно называть неориентированными простыми графами, разрешающими петли , и неориентированными мультиграфами, разрешающими петли (иногда также неориентированными псевдографами ), соответственно.
и обычно считаются конечными, и многие из известных результатов не верны (или довольно отличны) для бесконечных графов, поскольку многие аргументы не работают в бесконечном случае . Более того, часто предполагается, что непустое множество, но допускается пустое множество. Порядок графа равен , его число вершин. Размер графа равен , его число ребер. Степень или валентность вершины — это число ребер, инцидентных ей, где цикл учитывается дважды. Степень графа — это максимальная из степеней его вершин.
В неориентированном простом графе порядка n максимальная степень каждой вершины равна n − 1 , а максимальный размер графа равен н ( н − 1)/2 .
Ребра неориентированного простого графа, допускающего петли, индуцируют симметричное однородное отношение на вершинах , которое называется отношением смежности . В частности, для каждого ребра его конечные точки и называются смежными друг с другом, что обозначается .
Ориентированный граф или орграф — это граф, в котором ребра имеют ориентацию.
В одном ограниченном, но очень распространенном смысле этого термина [5] ориентированный граф представляет собой упорядоченную пару, состоящую из:
Чтобы избежать двусмысленности, этот тип объекта можно назвать именно направленным простым графом . В теории множеств и теории графов обозначает множество из n - кортежей элементов , то есть упорядоченные последовательности элементов, которые не обязательно различны.
В ребре, направленном от к , вершины и называются конечными точками ребра, хвостом ребра и головой ребра. Говорят, что ребро соединяет и и инцидентно и . Вершина может существовать в графе и не принадлежать ребру. Ребро называется инвертированным ребром . Множественные ребра , недопустимые в соответствии с приведенным выше определением, — это два или более ребер с одинаковым хвостом и головой .
В еще одном общем смысле термина, допускающем множественные ребра, [5] ориентированный граф представляет собой упорядоченную тройку, включающую:
Во избежание двусмысленности этот тип объекта можно назвать именно направленным мультиграфом .
Петля — это ребро, соединяющее вершину с собой. Направленные графы, как определено в двух определениях выше, не могут иметь петель, поскольку петля, соединяющая вершину с собой, является ребром (для направленного простого графа) или инцидентна (для направленного мультиграфа), которое не находится в . Поэтому для разрешения петель определения должны быть расширены. Для направленных простых графов определение должно быть изменено на . Для направленных мультиграфов определение должно быть изменено на . Чтобы избежать неоднозначности, эти типы объектов можно называть именно направленным простым графом, разрешающим петли , и направленным мультиграфом, разрешающим петли (или колчаном ) соответственно.
Ребра ориентированного простого графа, допускающего петли, являются однородным отношением ~ на вершинах , которое называется отношением смежности . В частности, для каждого ребра его конечные точки и называются смежными друг с другом, что обозначается ~ .
Графы могут использоваться для моделирования многих типов отношений и процессов в физических, биологических, [7] [8] социальных и информационных системах. [9] Многие практические проблемы могут быть представлены графами. Подчеркивая их применение к системам реального мира, термин « сеть» иногда определяется как граф, в котором атрибуты (например, имена) связаны с вершинами и ребрами, а субъект, который выражает и понимает системы реального мира как сеть, называется сетевой наукой .
В компьютерной науке « причинно-следственные » и «непричинно-следственные» связанные структуры представляют собой графы, которые используются для представления сетей связи, организации данных, вычислительных устройств, потока вычислений и т. д. Например, структура ссылок веб -сайта может быть представлена направленным графом, в котором вершины представляют веб-страницы, а направленные ребра представляют ссылки с одной страницы на другую. Подобный подход может быть применен к проблемам в социальных сетях, [10] путешествиях, биологии, проектировании компьютерных чипов, картировании прогрессирования нейродегенеративных заболеваний [11] [12] и многих других областях. Поэтому разработка алгоритмов для обработки графов представляет большой интерес в компьютерной науке. Преобразование графов часто формализуется и представляется системами переписывания графов . Дополнением к системам преобразования графов , фокусирующимся на манипуляции графами в памяти на основе правил, являются графовые базы данных , ориентированные на транзакционно -безопасное, постоянное хранение и запрос структурированных графом данных .
Графо-теоретические методы в различных формах оказались особенно полезными в лингвистике , поскольку естественный язык часто хорошо поддается дискретной структуре. Традиционно синтаксис и композиционная семантика следуют древовидным структурам, выразительная сила которых заключается в принципе композиционности , смоделированном в иерархическом графе. Более современные подходы, такие как грамматика фразовой структуры, управляемая головой, моделируют синтаксис естественного языка с использованием типизированных структур признаков , которые являются направленными ациклическими графами . В лексической семантике , особенно применительно к компьютерам, моделирование значения слова проще, когда данное слово понимается в терминах связанных слов; поэтому семантические сети важны в компьютерной лингвистике . Тем не менее, другие методы в фонологии (например, теория оптимальности , которая использует решетчатые графы ) и морфологии (например, морфология с конечным числом состояний, использующая преобразователи с конечным числом состояний ) распространены при анализе языка как графа. Действительно, полезность этой области математики для лингвистики привела к появлению таких организаций, как TextGraphs, а также различных «сетевых» проектов, таких как WordNet , VerbNet и других.
Теория графов также используется для изучения молекул в химии и физике . В физике конденсированного состояния трехмерная структура сложных моделируемых атомных структур может быть изучена количественно путем сбора статистики по свойствам теории графов, связанным с топологией атомов. Кроме того, « графы Фейнмана и правила расчета суммируют квантовую теорию поля в форме, тесно связанной с экспериментальными числами, которые нужно понять». [13] В химии граф создает естественную модель для молекулы, где вершины представляют атомы , а ребра — связи . Этот подход особенно используется в компьютерной обработке молекулярных структур, начиная от химических редакторов и заканчивая поиском в базах данных. В статистической физике графы могут представлять локальные связи между взаимодействующими частями системы, а также динамику физического процесса в таких системах. Аналогично, в вычислительной нейронауке графы могут использоваться для представления функциональных связей между областями мозга, которые взаимодействуют, вызывая различные когнитивные процессы, где вершины представляют различные области мозга, а ребра — связи между этими областями. Теория графов играет важную роль в электрическом моделировании электрических сетей, здесь веса связаны с сопротивлением сегментов проводов для получения электрических свойств сетевых структур. [14] Графы также используются для представления микромасштабных каналов пористых сред , в которых вершины представляют поры, а ребра представляют меньшие каналы, соединяющие поры. Теория химических графов использует молекулярный граф как средство для моделирования молекул. Графы и сети являются прекрасными моделями для изучения и понимания фазовых переходов и критических явлений. Удаление узлов или ребер приводит к критическому переходу, где сеть распадается на небольшие кластеры, что изучается как фазовый переход. Этот распад изучается с помощью теории перколяции . [15]
Теория графов также широко используется в социологии как способ, например, для измерения престижа актеров или для изучения распространения слухов , в частности, с помощью использования программного обеспечения для анализа социальных сетей . Под эгидой социальных сетей находится множество различных типов графов. [17] Графы знакомств и дружбы описывают, знают ли люди друг друга. Графы влияния моделируют, могут ли определенные люди влиять на поведение других. Наконец, графы сотрудничества моделируют, работают ли два человека вместе определенным образом, например, вместе снимаются в фильме.
Аналогично, теория графов полезна в биологии и усилиях по сохранению, где вершина может представлять регионы, где существуют (или обитают) определенные виды, а ребра представляют пути миграции или перемещения между регионами. Эта информация важна при рассмотрении схем размножения или отслеживания распространения болезней, паразитов или того, как изменения в перемещении могут повлиять на другие виды.
Графы также широко используются в молекулярной биологии и геномике для моделирования и анализа наборов данных со сложными взаимосвязями. Например, графические методы часто используются для «кластеризации» клеток в типы клеток при анализе транскриптома отдельных клеток . Другое применение — моделирование генов или белков в пути и изучение взаимосвязей между ними, таких как метаболические пути и сети регуляции генов. [18] Эволюционные деревья, экологические сети и иерархическая кластеризация шаблонов экспрессии генов также представлены в виде графовых структур.
Теория графов также используется в коннектомике ; [19] нервную систему можно рассматривать как граф, где узлами являются нейроны, а ребрами — связи между ними.
В математике графы полезны в геометрии и некоторых частях топологии, таких как теория узлов . Алгебраическая теория графов тесно связана с теорией групп . Алгебраическая теория графов применяется во многих областях, включая динамические системы и сложность.
Структуру графа можно расширить, присвоив вес каждому ребру графа. Графы с весами, или взвешенные графы , используются для представления структур, в которых парные соединения имеют некоторые числовые значения. Например, если граф представляет дорожную сеть, веса могут представлять длину каждой дороги. С каждым ребром может быть связано несколько весов, включая расстояние (как в предыдущем примере), время в пути или денежную стоимость. Такие взвешенные графы обычно используются для программирования GPS и поисковых систем планирования путешествий, которые сравнивают время и стоимость полетов.
Статья Леонарда Эйлера о семи мостах Кёнигсберга , опубликованная в 1736 году, считается первой статьей в истории теории графов. [20] Эта статья, как и статья Вандермонда о задаче о рыцаре , продолжила анализ situs, начатый Лейбницем . Формула Эйлера, связывающая число ребер, вершин и граней выпуклого многогранника, была изучена и обобщена Коши [21] и Люилье [22] и представляет собой начало раздела математики, известного как топология .
Более чем через столетие после статьи Эйлера о мостах Кенигсберга и в то время, когда Листинг вводил концепцию топологии, Кэли был приведён интересом к конкретным аналитическим формам, возникающим из дифференциального исчисления, для изучения определённого класса графов, деревьев . [23] Это исследование имело множество последствий для теоретической химии . Методы, которые он использовал, в основном касались перечисления графов с определёнными свойствами. Затем из результатов Кэли и фундаментальных результатов, опубликованных Полиа между 1935 и 1937 годами, возникла перечислительная теория графов. Они были обобщены Де Брейном в 1959 году. Кэли связал свои результаты о деревьях с современными исследованиями химического состава. [24] Слияние идей из математики с идеями из химии положило начало тому, что стало частью стандартной терминологии теории графов.
В частности, термин «граф» был введен Сильвестром в статье, опубликованной в 1878 году в журнале Nature , где он проводит аналогию между «квантовыми инвариантами» и «ковариантами» алгебры и молекулярных диаграмм: [25]
Первый учебник по теории графов был написан Денесом Кёнигом и опубликован в 1936 году. [26] Другая книга Фрэнка Харари , опубликованная в 1969 году, «во всем мире считалась окончательным учебником по этому предмету», [27] и позволила математикам, химикам, инженерам-электрикам и социальным ученым общаться друг с другом. Харари пожертвовал все гонорары на финансирование премии Полиа . [28]
Одной из самых известных и стимулирующих проблем в теории графов является проблема четырех красок : «Верно ли, что любая карта, нарисованная на плоскости, может иметь свои области, раскрашенные четырьмя цветами, таким образом, что любые две области, имеющие общую границу, имеют разные цвета?» Эта проблема была впервые поставлена Фрэнсисом Гатри в 1852 году, и ее первое письменное упоминание содержится в письме Де Моргана, адресованном Гамильтону в том же году. Было предложено много неверных доказательств, включая доказательства Кэли, Кемпе и других. Изучение и обобщение этой проблемы Тейтом , Хивудом , Рамсеем и Хадвигером привело к изучению раскрасок графов, вложенных в поверхности с произвольным родом . Переформулировка Тейта породила новый класс проблем, проблемы факторизации , в частности, изученные Петерсеном и Кёнигом . Работы Рамсея по раскраскам и, в частности, результаты, полученные Тураном в 1941 году, были у истоков другого раздела теории графов, экстремальной теории графов .
Задача о четырёх красках оставалась нерешённой более столетия. В 1969 году Генрих Хейш опубликовал метод решения задачи с использованием компьютеров. [29] Компьютерное доказательство, созданное в 1976 году Кеннетом Аппелем и Вольфгангом Хакеном , в основном использует понятие «разрядки», разработанное Хейшем. [30] [31] Доказательство включало проверку свойств 1936 конфигураций с помощью компьютера и не было полностью принято в то время из-за своей сложности. Более простое доказательство, учитывающее только 633 конфигурации, было дано двадцать лет спустя Робертсоном , Сеймуром , Сандерсом и Томасом . [32]
Автономное развитие топологии с 1860 по 1930 год оплодотворило теорию графов через работы Джордана , Куратовского и Уитни . Другим важным фактором совместного развития теории графов и топологии стало использование методов современной алгебры. Первый пример такого использования можно найти в работе физика Густава Кирхгофа , который в 1845 году опубликовал свои законы Кирхгофа для расчета напряжения и тока в электрических цепях .
Введение вероятностных методов в теорию графов, особенно в исследовании Эрдёша и Реньи асимптотической вероятности связности графов, дало начало ещё одному разделу, известному как теория случайных графов , которая стала плодотворным источником результатов в области теории графов.
Граф — это абстракция взаимосвязей, возникающих в природе; следовательно, он не может быть связан с определенным представлением. Способ его представления зависит от степени удобства, которое такое представление обеспечивает для определенного приложения. Наиболее распространенными представлениями являются визуальное, в котором, как правило, вершины рисуются и соединяются ребрами, и табличное, в котором строки таблицы предоставляют информацию об отношениях между вершинами внутри графа.
Графы обычно представляются визуально путем рисования точки или окружности для каждой вершины и рисования линии между двумя вершинами, если они соединены ребром. Если граф направленный, направление указывается стрелкой. Если граф взвешенный, вес добавляется к стрелке.
Рисунок графа не следует путать с самим графом (абстрактной, невизуальной структурой), поскольку существует несколько способов структурировать рисунок графа. Важно лишь то, какие вершины соединены с какими другими и каким количеством ребер, а не точная компоновка. На практике часто бывает трудно решить, представляют ли два рисунка один и тот же граф. В зависимости от предметной области некоторые компоновки могут быть более подходящими и более простыми для понимания, чем другие.
Пионерская работа У. Т. Тутта оказала большое влияние на тему рисования графов. Среди других достижений он ввел использование линейных алгебраических методов для получения рисунков графов.
Можно также сказать, что рисование графа охватывает проблемы, связанные с числом пересечений и его различными обобщениями. Число пересечений графа — это минимальное число пересечений между ребрами, которое должно содержаться в рисунке графа на плоскости. Для планарного графа число пересечений по определению равно нулю. Изучаются также рисунки на поверхностях, отличных от плоскости.
Существуют и другие методы визуализации графа без учета вершин и ребер, включая упаковку кругов , граф пересечений и другие визуализации матрицы смежности .
Табличное представление хорошо подходит для вычислительных приложений. Существуют различные способы хранения графов в компьютерной системе. Используемая структура данных зависит как от структуры графа, так и от алгоритма, используемого для манипулирования графом. Теоретически можно различать списочные и матричные структуры, но в конкретных приложениях наилучшей структурой часто является комбинация обеих. Списочные структуры часто предпочтительны для разреженных графов , поскольку они имеют меньшие требования к памяти. Матричные структуры, с другой стороны, обеспечивают более быстрый доступ для некоторых приложений, но могут потреблять огромные объемы памяти. Реализации разреженных матричных структур, которые эффективны на современных параллельных компьютерных архитектурах, являются объектом текущего исследования. [33]
Структуры списков включают список ребер , массив пар вершин и список смежности , в котором отдельно перечислены соседи каждой вершины: Подобно списку ребер, каждая вершина имеет список вершин, с которыми она смежна.
Матричные структуры включают матрицу инцидентности , матрицу из нулей и единиц, строки которой представляют вершины, а столбцы — ребра, и матрицу смежности , в которой и строки, и столбцы индексируются вершинами. В обоих случаях 1 указывает на два смежных объекта, а 0 — на два несмежных объекта. Матрица степеней указывает на степень вершин. Матрица Лапласа — это модифицированная форма матрицы смежности, которая включает информацию о степенях вершин и полезна в некоторых вычислениях, таких как теорема Кирхгофа о количестве остовных деревьев графа. Матрица расстояний , как и матрица смежности, имеет и строки, и столбцы, индексированные вершинами, но вместо того, чтобы содержать 0 или 1 в каждой ячейке, она содержит длину кратчайшего пути между двумя вершинами.
Существует большая литература по графическому перечислению : проблема подсчета графов, удовлетворяющих заданным условиям. Часть этой работы можно найти в Harary and Palmer (1973).
Распространенной проблемой, называемой проблемой изоморфизма подграфов , является нахождение фиксированного графа как подграфа в заданном графе. Одна из причин, по которой стоит интересоваться таким вопросом, заключается в том, что многие свойства графа являются наследственными для подграфов, что означает, что граф обладает свойством тогда и только тогда, когда все подграфы также обладают им. К сожалению, нахождение максимальных подграфов определенного вида часто является NP-полной задачей . Например:
Одним из особых случаев изоморфизма подграфов является проблема изоморфизма графов . Она спрашивает, являются ли два графа изоморфными. Неизвестно, является ли эта задача NP-полной и может ли она быть решена за полиномиальное время.
Аналогичная проблема — поиск индуцированных подграфов в заданном графе. Опять же, некоторые важные свойства графа наследственны по отношению к индуцированным подграфам, что означает, что граф обладает свойством тогда и только тогда, когда все индуцированные подграфы также обладают им. Поиск максимальных индуцированных подграфов определенного вида также часто является NP-полным. Например:
Еще одна такая проблема, проблема минорного включения, заключается в нахождении фиксированного графа как минора данного графа. Минор или подсжатие графа — это любой граф, полученный путем взятия подграфа и сжатия некоторых (или ни одного) ребер. Многие свойства графа являются наследственными для миноров, что означает, что граф обладает свойством тогда и только тогда, когда все миноры также обладают им. Например, теорема Вагнера гласит:
Похожая проблема, проблема subdivision containment, заключается в нахождении фиксированного графа как subdivision данного графа. Subdivision или гомеоморфизм графа — это любой граф, полученный путем subdivision некоторых (или ни одного) ребер. Subdivision containment связан со свойствами графа, такими как планарность . Например, теорема Куратовского гласит:
Еще одной проблемой в сдерживании подразделения является гипотеза Кельманса–Сеймура :
Другой класс проблем связан с тем, в какой степени различные виды и обобщения графов определяются их подграфами с удаленными точками . Например:
Многие проблемы и теоремы в теории графов связаны с различными способами раскраски графов. Обычно интересуются раскраской графа так, чтобы никакие две смежные вершины не имели одинаковый цвет, или с другими подобными ограничениями. Можно также рассмотреть раскраску ребер (возможно, так, чтобы никакие два совпадающих ребра не были одного цвета) или другие вариации. Среди известных результатов и гипотез, касающихся раскраски графов, следующие:
Теории моделирования ограничений касаются семейств направленных графов, связанных частичным порядком . В этих приложениях графы упорядочены по специфичности, что означает, что более ограниченные графы — которые являются более конкретными и, таким образом, содержат большее количество информации — включаются в те, которые являются более общими. Операции между графами включают оценку направления отношения подчинения между двумя графами, если таковые имеются, и вычисление объединения графов. Объединение двух графов аргументов определяется как наиболее общий граф (или его вычисление), который согласуется с (т. е. содержит всю информацию) входными данными, если такой граф существует; известны эффективные алгоритмы объединения.
Для фреймворков ограничений, которые являются строго композиционными , унификация графа является достаточной функцией выполнимости и комбинирования. Известные приложения включают автоматическое доказательство теорем и моделирование разработки лингвистической структуры .
Существует множество проблем, возникающих, в частности, в приложениях, связанных с различными представлениями о потоках в сетях , например:
Задачи покрытия в графах могут относиться к различным задачам покрытия множеств на подмножествах вершин/подграфов.
Разложение, определяемое как разбиение множества ребер графа (с необходимым количеством вершин, сопровождающих ребра каждой части разбиения), имеет широкий спектр вопросов. Часто проблема состоит в разложении графа на подграфы, изоморфные фиксированному графу; например, разложение полного графа на гамильтоновы циклы. Другие проблемы указывают семейство графов, на которые должен быть разложен заданный граф, например, семейство циклов, или разложение полного графа K n на n − 1 указанных деревьев, имеющих, соответственно, 1, 2, 3, ..., n − 1 ребро.
Некоторые конкретные проблемы декомпозиции, которые были изучены, включают:
Многие проблемы включают характеристику членов различных классов графов. Некоторые примеры таких вопросов приведены ниже: