Почему ориентированные графы важны?

18

Мы читали об алгоритмах MST, сильной связности, маршрутизации и т. Д. В ориентированных графах.

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

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

Редактировать 1: Я понимаю, что они могут быть использованы для моделирования некоторых сценариев, куда направляются ссылки, но мне было интересно, как часто эти сценарии встречаются в реальном мире, и насколько важно изучение отказоустойчивости для ориентированных графов.

хилус
источник
6
Двумя наиболее известными классами ориентированных графов во всей информатике являются дерево и DAG (направленный ациклический граф). Дерево используется во многих вещах (например, семейные деревья, иерархии); DAG может сделать более сложные версии тех. Группы обеспечения доступности баз данных используются по существу всякий раз, когда у вас есть набор объектов, которые зависят друг от друга. Когда ваша проблема имеет компонент «время» или «шаг за шагом», направленность представляет этот неумолимый марш прогресса. Группы DAG встречаются в таких вещах, как блок-схемы, программное обеспечение для управления пакетами и формы SSA промежуточного представления компиляторов.
Иваннотексист Идонотексист
2
ОК, каков твой вопрос? Хотите знать, почему ориентированные графы важны или почему отказоустойчивость в ориентированных графах важна? Это два совершенно разных вопроса.
Дэвид Ричерби
2
Ваши примеры, хотя и физически «ненаправленные» в реализации, все же часто имеют ориентированные графы, работающие над ними логически. Например, поезда не движутся в двух направлениях - они идут в одну или другую сторону по расписанию. Допустим, никто не планирует поезда, а только планирует пассажиров. Затем этот человек заинтересован в ориентированном графе, несмотря на произвольный факт, что поезда теоретически могут двигаться в любом направлении по рельсу.
Даррен Рингер
5
chyle: сети, безусловно, могут выиграть от того, что они представлены ориентированным графом. Большинство домашних интернет-соединений асимметричны. Восходящий и нисходящий каналы могут иметь совершенно разные свойства (пропускную способность, задержку, потерю пакетов и т. Д.)
Александр - Восстановите Монику
1
Я не знаю обо всех остальных, но моя родословная - это орграф. Я не родитель моей матери.

Ответы:

36

Напомним, что ориентированный граф - это граф, у которого ребра имеют связанное с ними направление.

Используя ориентированный граф, вы можете представлять асимметричные отношения между узлами, тогда как в неориентированном графе мы можем представлять только симметричные отношения.

Практически, используя ориентированный граф, вы можете представить:

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

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

darioSka
источник
4
Отличный ответ. Я думаю, что OP забывает, что когда у вас есть улица, у вас на самом деле две улицы (по одной на каждое направление, обычно идеально параллельные). Они могут быть представлены в виде простого графика, но ориентированные графы добавляют существенную информацию к модели.
ecc
Мне это нравится, и я замечаю, что в этом ответе осторожно говорить о гиперссылках, связанных веб-страницами, что исключает использование функции Back. ;-)
SDsolar
Чтобы поместить комментарий @ ecc на родном языке, у вас есть два узла, соединенных двумя ребрами. Каждый край направлен противоположно другому. Это часто видно на детерминированных диаграммах состояния. Для улиц это сводило бы к одному краю, направленному (одностороннему) или ненаправленному.
SDsolar
4
@ecc также, откуда я (Калифорния), у нас есть улицы с односторонним движением
k_g
5

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

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

Корт Аммон - Восстановить Монику
источник
3

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

Сеть PERT с 30 000 действий может быть заказана менее чем за час машинного времени.

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

KWillets
источник
2

Ответ: Из ОП я делаю вывод, что вопрос на самом деле связан с ЦУР (подписанные ориентированные графы). Итак, вот мой ответ, который обращается к основным ориентированным графам, а затем приводит к ЦУР.

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

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

Это похоже на обрезку ветки дерева - не нужно возвращаться к стволу, когда вы пытаетесь найти одну веточку.

ЦУР обладают дополнительным свойством давать указания, основанные на вероятностях или пороговых значениях, чтобы помочь принимать решения при обходе дерева.

Вот ссылка на хорошую книгу на эту тему под названием «Обнаружение неисправностей и диагностика в промышленных системах» (стр. 224), где описываются преимущества диагностики на основе ЦУР:

https://books.google.com/books?id=KFLlBwAAQBAJ&pg=PA224

SDsolar
источник