Ориентированный ациклический граф
В математике , особенно в теории графов , и информатике ( ориентированный ациклический граф DAG ) — это ориентированный граф без ориентированных циклов . То есть он состоит из вершин и ребер (также называемых дугами ), каждое из которых направлено от одной вершины к другой, так что следование этим направлениям никогда не образует замкнутый цикл. Ориентированный граф является DAG тогда и только тогда, когда его можно топологически упорядочить , расположив вершины в виде линейного порядка, согласующегося со всеми направлениями ребер. DAG имеют множество научных и вычислительных приложений, от биологии (эволюция, генеалогические древа, эпидемиология) до информатики (сети цитирования) и вычислений (планирование).
Направленные ациклические графы иногда называют ациклическими ориентированными графами. [1] или ациклические орграфы . [2]
Определения
[ редактировать ]Граф соединяющих состоит из вершин и ребер, пары вершин, причем вершинами может быть любой объект, попарно соединенный ребрами. В случае ориентированного графа каждое ребро имеет ориентацию от одной вершины к другой вершине. Путь в ориентированном графе — это последовательность ребер, обладающая тем свойством, что конечная вершина каждого ребра в последовательности совпадает с начальной вершиной следующего ребра в последовательности; путь образует цикл, если начальная вершина его первого ребра равна конечной вершине его последнего ребра. Ориентированный ациклический граф — это ориентированный граф, не имеющий циклов. [1] [2] [3]
Говорят, что вершина v ориентированного графа достижима из другой вершины u , если существует путь, который начинается в u и заканчивается в v . В частном случае каждая вершина считается достижимой из самой себя (путем с нулевыми ребрами). Если вершина может достичь себя по нетривиальному пути (путь с одним или несколькими ребрами), то этот путь является циклом, поэтому другой способ определить направленные ациклические графы состоит в том, что это графы, в которых ни одна вершина не может достичь себя через нетривиальный путь. [4]
Математические свойства
[ редактировать ]Отношение достижимости, транзитивное замыкание и транзитивная редукция.
[ редактировать ]Отношение достижимости DAG можно формализовать как частичный порядок ≤ на вершинах DAG. В этом частичном порядке две вершины u и v упорядочиваются как u ≤ v точно тогда, когда существует направленный путь от u до v в DAG; то есть, когда u может достичь v (или v достижимо из u ). [5] Однако разные DAG могут привести к одному и тому же отношению достижимости и одному и тому же частичному порядку. [6] Например, DAG с двумя ребрами u → v и v → w имеет то же отношение достижимости, что и DAG с тремя ребрами u → v , v → w и u → w . Оба этих DAG создают один и тот же частичный порядок, в котором вершины упорядочены как u ≤ v ≤ w .
Транзитивное замыкание DAG — это граф с наибольшим количеством ребер, который имеет то же отношение достижимости, что и DAG. Он имеет ребро u → v для каждой пары вершин ( u , v ) в отношении достижимости ≤ DAG, и поэтому его можно рассматривать как прямой перевод отношения достижимости ≤ в термины теории графов. Тот же метод перевода частичных порядков в DAG работает в более общем плане: для каждого конечного частично упорядоченного набора ( S , ≤) граф, который имеет вершину для каждого элемента S и ребро для каждой пары элементов из ≤, автоматически является транзитивным. замкнутый DAG и имеет ( S , ≤) в качестве отношения достижимости. Таким образом, любое конечное частично упорядоченное множество можно представить как DAG.
Транзитивная редукция DAG — это граф с наименьшим количеством ребер, имеющий то же отношение достижимости, что и DAG. Он имеет ребро u → v для каждой пары вершин ( u , v ) в отношении покрытия отношения достижимости ≤ DAG. Это подграф DAG, образованный путем отбрасывания ребер u → v , для которых DAG также содержит более длинный направленный путь от u до v .Как и транзитивное замыкание, транзитивная редукция однозначно определена для групп DAG. Напротив, для ориентированного графа, который не является ациклическим, может существовать более одного минимального подграфа с одним и тем же отношением достижимости. [7] Транзитивные сокращения полезны при визуализации частичных порядков, которые они представляют, поскольку они имеют меньше ребер, чем другие графы, представляющие те же порядки, и, следовательно, приводят к более простым рисункам графов . Диаграмма Хассе частичного порядка — это рисунок транзитивной редукции, на котором ориентация каждого ребра показана путем размещения начальной вершины ребра в более низком положении, чем его конечная вершина. [8]
Топологическое упорядочение
[ редактировать ]Топологическое упорядочение ориентированного графа — это упорядочение его вершин в последовательность, при котором для каждого ребра начальная вершина ребра встречается раньше в последовательности, чем конечная вершина ребра. Граф с топологическим упорядочением не может иметь циклов, поскольку ребро, ведущее в самую раннюю вершину цикла, должно быть ориентировано неправильно. Следовательно, каждый граф с топологическим упорядочением ацикличен. И наоборот, каждый направленный ациклический граф имеет хотя бы одно топологическое упорядочение. Таким образом, существование топологического упорядочения можно использовать как эквивалентное определение ориентированных ациклических графов: это именно те графы, которые имеют топологическое упорядочение. [2] В общем, этот порядок не уникален; DAG имеет уникальный топологический порядок тогда и только тогда, когда он имеет направленный путь, содержащий все вершины, и в этом случае порядок такой же, как порядок, в котором вершины появляются на пути. [9]
Семейство топологических порядков DAG совпадает с семейством линейных расширений отношения достижимости для DAG: [10] поэтому любые два графа, представляющие один и тот же частичный порядок, имеют одинаковый набор топологических порядков.
Комбинаторное перечисление
[ редактировать ]Проблема перечисления графов подсчета ориентированных ациклических графов изучалась Робинсоном (1973) . [11] Количество DAG на n помеченных вершинах для n = 0, 1, 2, 3,… (без ограничений на порядок, в котором эти числа появляются в топологическом порядке DAG) равно
Эти числа можно вычислить с помощью рекуррентного соотношения
Эрик В. Вайсстайн предположил: [12] и Маккей и др. (2004) доказали, что одни и те же числа учитывают матрицы (0,1), которых все собственные значения являются положительными действительными числами . Доказательство является биективным : матрица A является матрицей смежности DAG тогда и только тогда, когда A + I является (0,1)-матрицей со всеми положительными собственными значениями, где I обозначает единичную матрицу . Поскольку DAG не может иметь циклов , его матрица смежности должна иметь нулевую диагональ, поэтому добавление I сохраняет свойство, согласно которому все коэффициенты матрицы равны 0 или 1. [13]
Родственные семейства графов
[ редактировать ]Мультидерево ) — (также называемое строго однозначным графом или мангровым деревом это DAG, в котором существует не более одного направленного пути между любыми двумя вершинами. Эквивалентно, это DAG, в котором подграф, достижимый из любой вершины, порождает неориентированное дерево . [14]
Полидерево ) — это мультидерево , (также называемое ориентированным деревом сформированное путем ориентации ребер неориентированного дерева. [15]
Древовидность ориентации — это полидерево, образованное путем ребер неориентированного дерева от определенной вершины, называемой корнем древовидности.
Вычислительные проблемы
[ редактировать ]Топологическая сортировка и распознавание
[ редактировать ]Топологическая сортировка — это алгоритмическая проблема поиска топологического упорядочения данного DAG. Ее можно решить за линейное время . [16] Алгоритм Кана для топологической сортировки напрямую выстраивает порядок вершин. Он поддерживает список вершин, которые не имеют входящих ребер от других вершин, которые еще не были включены в частично построенное топологическое упорядочение; изначально этот список состоит из вершин, вообще не имеющих входящих ребер. Затем он повторно добавляет одну вершину из этого списка в конец частично построенного топологического упорядочения и проверяет, следует ли добавлять в список ее соседей. Алгоритм завершает работу, когда все вершины обработаны таким образом. [17] Альтернативно, топологическое упорядочение может быть построено путем обращения обратной нумерации обхода графа поиска в глубину . [16]
Также можно проверить, является ли данный ориентированный граф DAG за линейное время, либо пытаясь найти топологическое упорядочение, а затем проверяя для каждого ребра, является ли полученное упорядочение действительным. [18] или, альтернативно, для некоторых алгоритмов топологической сортировки, проверяя, что алгоритм успешно упорядочивает все вершины, не встречая условия ошибки. [17]
Построение из циклических графов
[ редактировать ]Любой неориентированный граф можно превратить в DAG, выбрав общий порядок его вершин и направив каждое ребро от более ранней конечной точки порядка к более поздней конечной точке. Результирующая ориентация ребер называется ациклической ориентацией . Разные общие порядки могут привести к одной и той же ациклической ориентации, поэтому граф с n вершинами может иметь меньше n ! ациклические ориентации. Число ациклических ориентаций равно | х (−1)| , где χ — хроматический полином данного графа. [19]
Любой ориентированный граф можно превратить в DAG, удалив набор вершин обратной связи или набор дуг обратной связи , набор вершин или ребер (соответственно), который касается всех циклов. наименьшее такое множество NP-трудно . Однако найти [20] Произвольный ориентированный граф также может быть преобразован в DAG, называемый его конденсацией , путем сжатия каждого из его сильно связных компонентов в одну супервершину. [21] Когда граф уже ацикличен, его наименьшие наборы вершин обратной связи и наборы дуг обратной связи пусты , а его конденсация — это сам граф.
Транзитивное замыкание и транзитивная редукция
[ редактировать ]Транзитивное замыкание данного DAG с n вершинами и m ребрами может быть построено за время O ( mn ), используя либо поиск в ширину , либо поиск в глубину для проверки достижимости из каждой вершины. [22] Альтернативно, ее можно решить за время O ( n ой ) где ω < 2,373 — показатель степени для алгоритмов умножения матриц ; это теоретическое улучшение по сравнению с ограничением O ( mn ) для плотных графов . [23]
Во всех этих алгоритмах транзитивного замыкания можно отличить пары вершин, до которых можно добраться хотя бы одним путем длиной два или более, от пар, которые можно соединить только путем длиной один. Транзитивная редукция состоит из ребер, образующих пути длины один, которые являются единственными путями, соединяющими их конечные точки. Следовательно, транзитивная редукция может быть построена за те же асимптотические сроки, что и транзитивное замыкание. [24]
Проблема закрытия
[ редактировать ]Задача замыкания принимает в качестве входных данных ориентированный ациклический граф, взвешенный по вершинам, и ищет минимальный (или максимальный) вес замыкания — набор вершин C , такой, что ни одно ребро не выходит из C . Задачу можно сформулировать для ориентированных графов без предположения ацикличности, но не с большей общностью, поскольку в этом случае она эквивалентна той же задаче о уплотнении графа. Ее можно решить за полиномиальное время, используя редукцию к задаче о максимальном расходе . [25]
Алгоритмы пути
[ редактировать ]Некоторые алгоритмы становятся проще при использовании в DAG вместо общих графов, основанных на принципе топологического упорядочения. Например, можно найти кратчайшие и самые длинные пути из заданной начальной вершины в DAG за линейное время, обрабатывая вершины в топологическом порядке и вычисляя длину пути для каждой вершины как минимальную или максимальную длину, полученную с помощью любого его входящих ребер. [26] Напротив, для произвольных графов кратчайший путь может потребовать более медленных алгоритмов, таких как алгоритм Дейкстры или алгоритм Беллмана-Форда . [27] а самые длинные пути в произвольных графах NP-трудно . найти [28]
Приложения
[ редактировать ]Планирование
[ редактировать ]Представления частичного упорядочения в виде направленного ациклического графа имеют множество применений при планировании систем задач с ограничениями порядка. [29] Важный класс проблем этого типа касается наборов объектов, которые необходимо обновить, например ячеек электронной таблицы после изменения одной из ячеек или объектных файлов части компьютерного программного обеспечения после того, как ее исходный код был изменен. измененный.В этом контексте граф зависимостей — это граф, который имеет вершину для каждого обновляемого объекта и ребро, соединяющее два объекта, когда один из них необходимо обновить раньше, чем другой. Цикл на этом графике называется циклической зависимостью и, как правило, не допускается, поскольку не будет возможности последовательно планировать задачи, участвующие в цикле.Графы зависимостей без циклических зависимостей образуют группы DAG. [30]
Например, при изменении одной ячейки электронной таблицы необходимо пересчитать значения других ячеек, которые прямо или косвенно зависят от измененной ячейки. Для этой задачи планируются задачи по пересчету значений отдельных ячеек электронной таблицы. Зависимости возникают, когда выражение в одной ячейке использует значение из другой ячейки. В таком случае используемое значение должно быть пересчитано раньше, чем выражение, в котором оно используется. Топологическое упорядочение графа зависимостей и использование этого топологического порядка для планирования обновлений ячеек позволяет обновлять всю электронную таблицу с помощью только одной оценки для каждой ячейки. [31] Аналогичные проблемы с упорядочиванием задач возникают в make-файлах для компиляции программ. [31] и планирование инструкций для низкоуровневой оптимизации компьютерных программ. [32]
Несколько иная формулировка ограничений планирования на основе DAG используется в методе оценки и анализа программ (PERT), методе управления крупными человеческими проектами, который был одним из первых применений DAG. В этом методе вершины DAG представляют собой вехи проекта, а не конкретные задачи, которые необходимо выполнить. Вместо этого задача или действие представлены ребром группы обеспечения доступности баз данных, соединяющим две вехи, которые отмечают начало и завершение задачи. На каждом таком ребре маркируется оценка количества времени, которое потребуется команде рабочих для выполнения задачи. Самый длинный путь в этой группе обеспечения доступности баз данных представляет собой критический путь проекта, который контролирует общее время проекта. Отдельные вехи можно планировать в соответствии с длиной самых длинных путей, заканчивающихся в их вершинах. [33]
Сети обработки данных
[ редактировать ]Ориентированный ациклический граф может использоваться для представления сети элементов обработки. В этом представлении данные входят в обрабатывающий элемент через его входящие ребра и покидают элемент через его выходные ребра.
Например, в проектировании электронных схем статические комбинационные логические блоки могут быть представлены как ациклическая система логических элементов , которая вычисляет функцию входа, где вход и выход функции представлены как отдельные биты . В общем, выходные данные этих блоков не могут использоваться в качестве входных, если они не захвачены регистром или элементом состояния, который сохраняет свои ациклические свойства. [34] Схемы электронных схем на бумаге или в базе данных представляют собой форму направленных ациклических графов, использующих экземпляры или компоненты для формирования направленной ссылки на компонент более низкого уровня. Сами электронные схемы не обязательно являются ациклическими или направленными.
Языки программирования потоков данных описывают системы операций с потоками данных и связи между выходами одних операций и входами других. Эти языки могут быть удобны для описания повторяющихся задач обработки данных, в которых один и тот же ациклически связанный набор операций применяется ко многим элементам данных. Они могут быть выполнены как параллельный алгоритм , в котором каждая операция выполняется параллельным процессом, как только ему становится доступен другой набор входных данных. [35]
В компиляторах прямой код (то есть последовательность операторов без циклов или условных ветвей) может быть представлен DAG, описывающим входные и выходные данные каждой из арифметических операций, выполняемых в коде. Такое представление позволяет компилятору эффективно выполнять исключение общих подвыражений . [36] На более высоком уровне организации кода принцип ациклических зависимостей гласит, что зависимости между модулями или компонентами большой программной системы должны образовывать направленный ациклический граф. [37]
нейронные сети с прямой связью Еще одним примером являются .
Причинные структуры
[ редактировать ]Графы, в которых вершины представляют события, происходящие в определенное время, и где ребра всегда указывают от вершины раннего времени к вершине ребра позднего времени, обязательно являются направленными и ациклическими. Отсутствие цикла объясняется тем, что время, связанное с вершиной, всегда увеличивается по мере следования по любому пути в графе, поэтому вы никогда не сможете вернуться к вершине на пути. Это отражает нашу естественную интуицию о том, что причинность означает, что события могут влиять только на будущее, но никогда не влияют на прошлое, и поэтому у нас нет причинно-следственных петель . Примером такого типа направленного ациклического графа являются те, которые встречаются в подходе причинно-множественного подхода к квантовой гравитации, хотя в этом случае рассматриваемые графы являются транзитивно полными . В приведенном ниже примере истории версий каждая версия программного обеспечения связана с уникальным временем, обычно временем, когда версия была сохранена, зафиксирована или выпущена. В приведенных ниже примерах графика цитирования документы публикуются одновременно и могут ссылаться только на более старые документы.
Иногда события не связаны с конкретным физическим временем. При условии, что пары событий имеют чисто причинно-следственную связь, то есть ребра представляют причинно-следственные связи между событиями, мы получим ориентированный ациклический граф. [38] Например, байесовская сеть представляет собой систему вероятностных событий в виде вершин ориентированного ациклического графа, в котором вероятность события может быть рассчитана на основе вероятностей его предшественников в DAG. [39] В этом контексте моральный граф DAG — это неориентированный граф, созданный путем добавления (ненаправленного) ребра между всеми родительскими ребрами одной и той же вершины (иногда называемого бракосочетанием ), а затем замены всех направленных ребер неориентированными ребрами. [40] Другой тип графа с похожей причинной структурой — это диаграмма влияния , вершины которой представляют собой либо решения, которые необходимо принять, либо неизвестную информацию, а ребра которой представляют причинные влияния от одной вершины к другой. [41] в эпидемиологии эти диаграммы часто используются для оценки ожидаемой ценности различных вариантов вмешательства. Например, [42] [43]
Обратное также верно. То есть в любом приложении, представленном ориентированным ациклическим графом, существует причинная структура: либо явный порядок или время в примере, либо порядок, который можно вывести из структуры графа. Это следует из того, что все ориентированные ациклические графы имеют топологический порядок , т.е. существует хотя бы один способ расположить вершины в таком порядке, чтобы все ребра указывали в одном направлении в этом порядке.
Генеалогия и история версий
[ редактировать ]Генеалогические деревья можно рассматривать как направленные ациклические графы с вершиной для каждого члена семьи и ребром для каждой связи между родителями и детьми. [44] Несмотря на название, эти графы не обязательно являются деревьями из-за возможности браков между родственниками (поэтому ребенок имеет общего предка как со стороны матери, так и со стороны отца), вызывающих коллапс родословной . [45] Графики матрилинейного происхождения (отношения мать-дочь) и отцовского происхождения (отношения отец-сын) представляют собой деревья внутри этого графа. Поскольку никто не может стать собственным предком, генеалогические деревья ацикличны. [46]
История версий распределенной системы контроля версий , такой как Git , обычно имеет структуру направленного ациклического графа, в котором есть вершина для каждой ревизии и ребро, соединяющее пары ревизий, которые были непосредственно получены друг от друга. Это не деревья вообще из-за слияний. [47]
Во многих рандомизированных алгоритмах вычислительной геометрии алгоритм поддерживает историю DAG, представляющую историю версий геометрической структуры в ходе последовательности изменений в структуре. Например, в рандомизированном инкрементном алгоритме триангуляции Делоне триангуляция изменяется за счет замены одного треугольника тремя меньшими треугольниками при добавлении каждой точки, а также за счет операций «переворота», которые заменяют пары треугольников другой парой треугольников. Исторический DAG для этого алгоритма имеет вершину для каждого треугольника, построенного как часть алгоритма, и ребра от каждого треугольника к двум или трем другим треугольникам, которые его заменяют. Эта структура позволяет эффективно отвечать на запросы о местоположении точек : чтобы найти местоположение точки запроса q в триангуляции Делоне, следуйте по пути в истории DAG, на каждом шаге переходя к треугольнику замены, который содержит q . Последний треугольник, достигнутый на этом пути, должен быть треугольником Делоне, содержащим q . [48]
Графики цитирования
[ редактировать ]В графе цитирования вершинами являются документы с одной датой публикации. Края представляют собой цитаты из библиографии одного документа на другие обязательно более ранние документы. Классический пример — цитирование научных статей, как указано в статье 1965 года «Сети научных статей». [49] Дерек Дж. де Солла Прайс , который разработал первую модель сети цитирования, модель Прайса . [50] В этом случае количество цитирований статьи — это просто степень входа соответствующей вершины сети цитирования. Это важная мера при анализе цитирования . Решения судов служат еще одним примером, поскольку судьи подкрепляют свои выводы по одному делу, ссылаясь на другие ранее принятые решения по предыдущим делам. Последним примером являются патенты, которые должны относиться к более раннему уровню техники , более ранние патенты, которые имеют отношение к текущей патентной заявке. Принимая во внимание особые свойства направленных ациклических графов, можно анализировать сети цитирования методами, недоступными при анализе общих графов, рассматриваемых во многих исследованиях с использованием сетевого анализа . Например, транзитивная редукция дает новое представление о распределении цитирования в разных приложениях, подчеркивая явные различия в механизмах создания сетей цитирования в разных контекстах. [51] Другой метод – это анализ основных путей , который отслеживает связи цитирования и предлагает наиболее значимые цепочки цитирования в данном графе цитирования .
Модель Прайса слишком проста, чтобы быть реалистичной моделью сети цитирования , но она достаточно проста, чтобы обеспечить аналитические решения для некоторых ее свойств. Многие из них можно найти, используя результаты, полученные на основе неориентированной версии модели Прайса , модели Барабаши-Альберта . Однако, поскольку модель Прайса дает ориентированный ациклический граф, она является полезной моделью при поиске аналитических расчетов свойств, уникальных для ориентированных ациклических графов. Например,длина самого длинного пути от n-го узла, добавленного в сеть, до первого узла в сети масштабируется как [52] .
Сжатие данных
[ редактировать ]Ориентированные ациклические графы также можно использовать как компактное представление набора последовательностей. В приложениях этого типа находится группа DAG, в которой пути образуют заданные последовательности. Когда многие из последовательностей используют одни и те же подпоследовательности, эти общие подпоследовательности могут быть представлены общей частью DAG, что позволяет представлению использовать меньше места, чем потребовалось бы для перечисления всех последовательностей по отдельности. Например, ориентированный ациклический граф слов — это структура данных в информатике, образованная ориентированным ациклическим графом с одним источником и ребрами, помеченными буквами или символами; пути от источника к приемникам в этом графе представляют собой набор строк , например английских слов. [53] Любой набор последовательностей можно представить как пути в дереве, сформировав вершину дерева для каждого префикса последовательности и заставив родителя одной из этих вершин представлять последовательность с одним элементом меньше; дерево, сформированное таким образом для набора строк, называется деревом . Направленный ациклический граф слов экономит место в дереве, позволяя путям расходиться и воссоединяться, так что набор слов с одинаковыми возможными суффиксами может быть представлен одной вершиной дерева. [54]
Та же идея использования DAG для представления семейства путей встречается в диаграмме двоичного решения . [55] [56] структура данных на основе DAG для представления двоичных функций. В диаграмме двоичного решения каждая вершина, не являющаяся стоком, помечена именем двоичной переменной, а каждый сток и каждое ребро помечены цифрой 0 или 1. Значением функции для любого истинного присвоения переменным является значение в сток, найденный путем следования по пути, начиная с единственной исходной вершины, который в каждой вершине, не являющейся стоком, следует за исходящим ребром, помеченным значением переменной этой вершины. Точно так же, как ориентированные ациклические графы слов можно рассматривать как сжатую форму попыток, бинарные диаграммы решений можно рассматривать как сжатые формы деревьев решений, которые экономят пространство, позволяя путям воссоединиться, когда они согласуются с результатами всех оставшихся решений. [57]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Туласираман, К.; Свами, MNS (1992), «5.7 Ациклические ориентированные графы», Графы: теория и алгоритмы , Джон Вили и сын, стр. 118, ISBN 978-0-471-51356-8 .
- ^ Перейти обратно: а б с Банг-Йенсен, Йорген (2008), «2.1 Ациклические орграфы», Орграфы: теория, алгоритмы и приложения , Монографии Springer по математике (2-е изд.), Springer-Verlag, стр. 32–34, ISBN 978-1-84800-997-4 .
- ^ Кристофидес, Никос (1975), Теория графов: алгоритмический подход , Academic Press, стр. 170–174 .
- ^ Митрани И. (1982), Методы моделирования для систем дискретных событий , Cambridge Computer Science Texts, vol. 14, Издательство Кембриджского университета, с. 27, ISBN 9780521282826 .
- ^ Козен, Декстер (1992), Разработка и анализ алгоритмов , Монографии по информатике, Springer, стр. 9, ISBN 978-0-387-97687-7 .
- ^ Банерджи, Утпал (1993), «Упражнение 2(c)», Преобразования циклов для компиляторов реструктуризации: основы , Springer, стр. 19, Бибкод : 1993ltfr.book.....B , ISBN 978-0-7923-9318-4 .
- ^ Банг-Йенсен, Йорген; Гутин, Грегори З. (2008), «2.3 Транзитивные орграфы, транзитивные замыкания и сокращения», Орграфы: теория, алгоритмы и приложения , Монографии Springer по математике, Springer, стр. 36–39, ISBN 978-1-84800-998-1 .
- ^ Юнгникель, Дитер (2012), Графики, сети и алгоритмы , Алгоритмы и вычисления в математике, том. 5, Спрингер, стр. 92–93, ISBN. 978-3-642-32278-5 .
- ^ Седжвик, Роберт ; Уэйн, Кевин (2011), «4,2,25 Уникальное топологическое упорядочение», Алгоритмы (4-е изд.), Аддисон-Уэсли, стр. 598–599, ISBN 978-0-13-276256-4 .
- ^ Бендер, Эдвард А.; Уильямсон, С. Гилл (2005), «Пример 26 (Линейные расширения – топологические сортировки)», Краткий курс дискретной математики , Dover Books on Computer Science, Courier Dover Publications, стр. 142, ISBN 978-0-486-43946-4 .
- ^ Перейти обратно: а б Робинсон, Р.В. (1973), «Подсчет помеченных ациклических орграфов», в Харари, Ф. (редактор), «Новые направления в теории графов» , Academic Press, стр. 239–273 . См. также Харари, Фрэнк ; Палмер, Эдгар М. (1973), Графическое перечисление , Academic Press , стр. 19, ISBN 978-0-12-324245-7 .
- ^ Вайсштейн, Эрик В. , «Гипотеза Вайсштейна» , MathWorld
- ^ Маккей, BD ; Ройл, GF ; Ванлесс, ИМ; Оггьер, FE ; Слоан, Нью-Джерси ; Уилф, Х. (2004), «Ациклические орграфы и собственные значения (0,1)-матриц» , Журнал целочисленных последовательностей , 7 : 33, arXiv : math/0310423 , Bibcode : 2004JIntS...7...33M , Статья 04.3.3.
- ^ Фурнас, Джордж В .; Закс, Джефф (1994), "Мультидеревья: обогащение и повторное использование иерархической структуры", Proc. Конференция SIGCHI по человеческому фактору в вычислительных системах (CHI '94) , стр. 330–336, doi : 10.1145/191666.191778 , ISBN 978-0897916509 , S2CID 18710118 .
- ^ Ребане, Джордж; Перл, Иудея (1987), «Восстановление причинных полидеревьев по статистическим данным», в Proc. 3-я ежегодная конференция по неопределенности в искусственном интеллекте (UAI, 1987), Сиэтл, Вашингтон, США, июль 1987 г. (PDF) , стр. 222–228 .
- ^ Перейти обратно: а б Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Штейн, Клиффорд (2001) [1990], Введение в алгоритмы (2-е изд.), MIT Press и McGraw-Hill, ISBN 0-262-03293-7 Раздел 22.4, Топологическая сортировка, стр. 549–552.
- ^ Перейти обратно: а б Юнгникель (2012) , стр. 50–51.
- ^ Для алгоритма топологической сортировки на основе поиска в глубину эта проверка достоверности может чередоваться с самим алгоритмом топологической сортировки; см., например Скиена, Стивен С. (2009), Руководство по разработке алгоритмов , Springer, стр. 179–181, ISBN 978-1-84800-070-4 .
- ^ Стэнли, Ричард П. (1973), «Ациклические ориентации графов» (PDF) , Discrete Mathematics , 5 (2): 171–178, doi : 10.1016/0012-365X(73)90108-8 .
- ^ Гэри, Майкл Р .; Джонсон, Дэвид С. (1979). Компьютеры и трудноразрешимые проблемы: Руководство по теории NP-полноты . Серия книг по математическим наукам (1-е изд.). Нью-Йорк: WH Freeman and Company . ISBN 9780716710455 . МР 0519066 . OCLC 247570676 . , Задачи GT7 и GT8, стр. 191–192.
- ^ Харари, Фрэнк ; Норман, Роберт З.; Картрайт, Дорвин (1965), Структурные модели: введение в теорию ориентированных графов , John Wiley & Sons, с. 63 .
- ^ Скиена (2009) , с. 495
- ^ Скиена (2009) , с. 496
- ^ Банг-Дженсен и Гутин (2008) , с. 38.
- ^ Пикард, Жан-Клод (1976), «Максимальное замыкание графа и приложения к комбинаторным задачам», Management Science , 22 (11): 1268–1272, doi : 10.1287/mnsc.22.11.1268 , MR 0403596 .
- ^ Кормен и др. 2001, раздел 24.2, Кратчайшие пути с одним источником в ориентированных ациклических графах, стр. 592–595.
- ^ Кормен и др. 2001, разделы 24.1, Алгоритм Беллмана-Форда, стр. 588–592, и 24.3, Алгоритм Дейкстры, стр. 595–601.
- ^ Кормен и др. 2001, с. 966
- ^ Скиена (2009) , с. 469
- ^ Аль-Мутава, штат Ха; Дитрих, Дж.; Марсланд, С.; Маккартин, К. (2014), «О форме циклических зависимостей в программах Java», 23-я Австралийская конференция по разработке программного обеспечения , IEEE, стр. 48–57, doi : 10.1109/ASWEC.2014.15 , ISBN 978-1-4799-3149-1 , S2CID 17570052 .
- ^ Перейти обратно: а б Гросс, Джонатан Л.; Йеллен, Джей; Чжан, Пин (2013), Справочник по теории графов (2-е изд.), CRC Press, стр. 1181, ISBN 978-1-4398-8018-0 .
- ^ Шрикант, Ю.Н.; Шанкар, Прити (2007), Справочник по проектированию компилятора: оптимизация и генерация машинного кода (2-е изд.), CRC Press, стр. 19–39, ISBN 978-1-4200-4383-9 .
- ^ Ван, Джон X. (2002), Что должен знать каждый инженер о принятии решений в условиях неопределенности , CRC Press, стр. 160, ISBN 978-0-8247-4373-4 .
- ^ Сапатнекар, Сачин (2004), Timing , Springer, стр. 133, ISBN 978-1-4020-7671-8 .
- ^ Деннис, Джек Б. (1974), «Первая версия языка процедур потока данных», Симпозиум по программированию , Конспекты лекций по информатике, том. 19, стр. 362–376, номер документа : 10.1007/3-540-06859-7_145 , ISBN. 978-3-540-06859-4 .
- ^ Туати, Сид; де Динешен, Бенуа (2014), Расширенная внутренняя оптимизация , John Wiley & Sons, стр. 123, ISBN 978-1-118-64894-0 .
- ^ Гарланд, Джефф; Энтони, Ричард (2003), Крупномасштабная архитектура программного обеспечения: Практическое руководство по использованию UML , John Wiley & Sons, стр. 215, ISBN 9780470856383 .
- ^ Гопник, Элисон ; Шульц, Лаура (2007), Причинное обучение , Oxford University Press, стр. 4, ISBN 978-0-19-803928-0 .
- ^ Шмулевич Илья; Догерти, Эдвард Р. (2010), Вероятностные логические сети: моделирование и контроль сетей регуляции генов , Общество промышленной и прикладной математики, стр. 58, ISBN 978-0-89871-692-4 .
- ^ Коуэлл, Роберт Г.; Дэвид, А. Филип ; Лауритцен, Штеффен Л .; Шпигельхальтер, Дэвид Дж. (1999), «3.2.1 Морализация», Вероятностные сети и экспертные системы , Springer, стр. 31–33, ISBN 978-0-387-98767-5 .
- ^ Дорф, Ричард К. (1998), Справочник по управлению технологиями , CRC Press, стр. 9–7, ISBN 978-0-8493-8577-3 .
- ^ Босло, Сара (2008), Энциклопедия эпидемиологии, Том 1 , SAGE, стр. 255, ISBN 978-1-4129-2816-8 .
- ^ Перл, Иудея (1995), «Причинные диаграммы для эмпирических исследований» , Biometrika , 82 (4): 669–709, doi : 10.1093/biomet/82.4.669 .
- ^ Киркпатрик, Бонни Б. (апрель 2011 г.), «Гаплотипы и генотипы в родословных», Алгоритмы молекулярной биологии , 6 (10): 10, doi : 10.1186/1748-7188-6-10 , PMC 3102622 , PMID 21504603 .
- ^ Макгаффин, MJ; Балакришнан, Р. (2005), «Интерактивная визуализация генеалогических графиков» (PDF) , Симпозиум IEEE по визуализации информации (INFOVIS 2005) , стр. 16–23, doi : 10.1109/INFVIS.2005.1532124 , ISBN 978-0-7803-9464-3 , S2CID 15449409 .
- ^ Бендер, Майкл А.; Пеммасани, Гиридхар; Скиена, Стивен; Сумазин, Павел (2001), «Поиск наименьших общих предков в направленных ациклических графах» , Труды двенадцатого ежегодного симпозиума ACM-SIAM по дискретным алгоритмам (SODA '01) , Филадельфия, Пенсильвания, США: Общество промышленной и прикладной математики, стр. . 845–854, ISBN. 978-0-89871-490-6 .
- ^ Бартланг, Удо (2010), Архитектура и методы гибкого управления контентом в одноранговых системах , Springer, стр. 59, Бибкод : 2010aamf.book.....B , ISBN 978-3-8348-9645-2 .
- ^ Пах, Янош ; Шарир, Миха , Комбинаторная геометрия и ее алгоритмические приложения: Лекции в Алькале , Математические обзоры и монографии, том. 152, Американское математическое общество, стр. 93–94, ISBN. 978-0-8218-7533-9 .
- ^ Прайс, Дерек Дж. де Солла (30 июля 1965 г.), «Сеть научных статей» (PDF) , Science , 149 (3683): 510–515, Бибкод : 1965Sci...149..510D , doi : 10.1126/ science.149.3683.510 , PMID 14325149 .
- ^ Прайс, Дерек Дж. де Солла (1976), «Общая теория библиометрических и других процессов совокупного преимущества», Журнал Американского общества информатики , 27 (5): 292–306, doi : 10.1002/asi.4630270505 , S2CID 8536863 .
- ^ Клаф, Джеймс Р.; Голлингс, Джейми; Лоуч, Тамар В.; Эванс, Тим С. (2015), «Транзитивное сокращение сетей цитирования», Journal of Complex Networks , 3 (2): 189–203, arXiv : 1310.8224 , doi : 10.1093/comnet/cnu039 , S2CID 10228152 .
- ^ Эванс, Т.С.; Кальмон, Л.; Василяускайте, В. (2020), «Самый длинный путь в модели цен», Scientific Reports , 10 (1): 10503, arXiv : 1903.03667 , Bibcode : 2020NatSR..1010503E , doi : 10.1038/s41598-020-67421-8 , PMC 7324613 , PMID 32601403
- ^ Крошмор, Максим; Верин, Рено (1997), «Прямое построение компактных направленных ациклических графов слов», Комбинаторное сопоставление с образцом , Конспект лекций по информатике, том. 1264, Springer, стр. 116–129, CiteSeerX 10.1.1.53.6273 , doi : 10.1007/3-540-63220-4_55 , ISBN 978-3-540-63220-7 , S2CID 17045308 .
- ^ Лотер, М. (2005), Прикладная комбинаторика слов , Энциклопедия математики и ее приложений, том. 105, Издательство Кембриджского университета, стр. 105. 18, ISBN 9780521848022 .
- ^ Ли, CY (1959), «Представление коммутационных схем с помощью программ двоичного решения», Bell System Технический журнал , 38 (4): 985–999, doi : 10.1002/j.1538-7305.1959.tb01585.x .
- ^ Акерс, Шелдон Б. (1978), «Диаграммы двоичных решений», IEEE Transactions on Computers , C-27 (6): 509–516, doi : 10.1109/TC.1978.1675141 , S2CID 21028055 .
- ^ Фридман, С.Дж.; Суповит, К.Дж. (1987), "Нахождение оптимального порядка переменных для бинарных диаграмм решений", Proc. 24-я конференция ACM/IEEE Design Automation (DAC '87) , Нью-Йорк, штат Нью-Йорк, США: ACM, стр. 348–356, doi : 10.1145/37888.37941 , ISBN 978-0-8186-0781-3 , S2CID 14796451 .
Внешние ссылки
[ редактировать ]- Вайсштейн, Эрик В. , «Ациклический орграф» , MathWorld
- DAGitty – онлайн-инструмент для создания групп DAG.