Транзитивное замыкание

Из Википедии, бесплатной энциклопедии
Транзитивные   бинарные отношения
Symmetric Antisymmetric Connected Well-founded Has joins Has meets Reflexive Irreflexive Asymmetric
Total, Semiconnex Anti-
reflexive
Equivalence relation Green tickY Green tickY
Preorder (Quasiorder) Green tickY
Partial order Green tickY Green tickY
Total preorder Green tickY Green tickY
Total order Green tickY Green tickY Green tickY
Prewellordering Green tickY Green tickY Green tickY
Well-quasi-ordering Green tickY Green tickY
Well-ordering Green tickY Green tickY Green tickY Green tickY
Lattice Green tickY Green tickY Green tickY Green tickY
Join-semilattice Green tickY Green tickY Green tickY
Meet-semilattice Green tickY Green tickY Green tickY
Strict partial order Green tickY Green tickY Green tickY
Strict weak order Green tickY Green tickY Green tickY
Strict total order Green tickY Green tickY Green tickY Green tickY
Symmetric Antisymmetric Connected Well-founded Has joins Has meets Reflexive Irreflexive Asymmetric
Definitions, for all and
Green tickY indicates that the column's property is always true the row's term (at the very left), while indicates that the property is not guaranteed in general (it might, or might not, hold). For example, that every equivalence relation is symmetric, but not necessarily antisymmetric, is indicated by Green tickY in the "Symmetric" column and in the "Antisymmetric" column, respectively.

All definitions tacitly require the homogeneous relation be transitive: for all if and then
A term's definition may require additional properties that are not listed in this table.

В математике транзитивное замыкание R + однородного бинарного отношения R на множестве X — это наименьшее отношение на X , содержащее R и транзитивное . Для конечных множеств «наименьший» можно понимать в его обычном смысле, когда имеется наименьшее количество связанных пар; для бесконечных множеств R + единственным минимальным транзитивным надмножеством R является .

Например, если X — набор аэропортов и x R y означает «есть прямой рейс из аэропорта x в аэропорт y » (для x и y в X ), то транзитивное замыкание R на X — это отношение R + такой, что x R + y означает «можно перелететь из x в y за один или несколько рейсов».

Более формально, транзитивное замыкание бинарного отношения R на множестве X — это наименьшее (по отношению к ⊆) транзитивное отношение R + на X такой, что R R + ; см. Lidl & Pilz (1998 , стр. 337). У нас есть Р + = R тогда и только тогда, когда сам R транзитивен.

И наоборот, транзитивная редукция выводит минимальное отношение S из данного отношения R такое, что они имеют одно и то же замыкание, то есть S + = Р + ; однако может существовать много разных S с этим свойством.

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

и примеры Транзитивные отношения

Отношение R на множестве X является транзитивным, если для всех x , y , z в X всякий раз, когда x R y и y R z, тогда x R z . Примеры транзитивных отношений включают отношение равенства на любом множестве, отношение «меньше или равно» на любом линейно упорядоченном множестве и отношение « x родился раньше y » на множестве всех людей. Символически это можно обозначить так: если x < y и y < z , то x < z .

Одним из примеров нетранзитивного отношения является «до города x можно добраться прямым рейсом из города y » на множестве всех городов. Тот факт, что существует прямой рейс из одного города во второй город и прямой рейс из второго города в третий, не означает, что существует прямой рейс из первого города в третий. Транзитивным замыканием этого отношения является другое отношение, а именно: «существует последовательность прямых рейсов, которая начинается в городе x и заканчивается в городе y ». Каждое отношение может быть расширено аналогично транзитивному отношению.

Примером нетранзитивного отношения с менее значимым транзитивным замыканием является « x день недели после y ». Транзитивное замыкание этого отношения таково: «когда-нибудь день x наступает после дня y в календаре», что тривиально верно для всех дней недели x и y (и, таким образом, эквивалентно декартову квадрату , который гласит: « x и y суть оба дня недели»).

Существование и описание [ править ]

Для любого отношения R транзитивное замыкание R. всегда существует Чтобы убедиться в этом, заметим, что пересечение любого семейства транзитивных отношений снова транзитивно. Более того, существует хотя бы одно транзитивное отношение, содержащее , а именно тривиальное: X × X. R Транзитивное замыкание R тогда задается пересечением всех транзитивных отношений, содержащих R .

Для конечных множеств мы можем построить транзитивное замыкание шаг за шагом, начиная с R и добавляя транзитивные ребра. Это дает представление об общей конструкции. Для любого множества X мы может доказать, что транзитивное замыкание задается следующим выражением

где - i -я степень R , определяемая индуктивно формулой

и для ,

где обозначает композицию отношений .

Чтобы показать, что приведенное выше определение R + является наименее транзитивным отношением, содержащим R , мы показываем, что оно содержит R , что оно транзитивно и что это наименьшее множество с обеими этими характеристиками.

  • : содержит все , так что в частности содержит .
  • транзитивен: если , затем и для некоторых по определению . Поскольку композиция ассоциативна, ; следовательно по определению и .
  • минимально, то есть если — любое транзитивное отношение, содержащее , затем : При наличии любого такого , индукция по можно использовать, чтобы показать для всех следующим образом: База: по предположению. Шаг: Если держится, и , затем и для некоторых , по определению . Следовательно, по предположению и по гипотезе индукции. Следовательно транзитивностью ; это завершает индукцию. Окончательно, для всех подразумевает по определению .

Свойства [ править ]

Пересечение двух транзитивных отношений транзитивно.

Объединение . двух транзитивных отношений не обязательно должно быть транзитивным Чтобы сохранить транзитивность, необходимо использовать транзитивное замыкание. Это происходит, например, при объединении двух отношений эквивалентности или двух предпорядков . Чтобы получить новое отношение эквивалентности или предпорядок, необходимо использовать транзитивное замыкание (рефлексивность и симметрия - в случае отношений эквивалентности - являются автоматическими).

В теории графов [ править ]

Транзитивное замыкание создает выходной граф из входного графа.
Транзитивное замыкание создает выходной граф из входного графа.

В информатике концепцию транзитивного замыкания можно рассматривать как построение структуры данных, позволяющей отвечать на вопросы о достижимости . То есть можно ли перейти от узла a к узлу d за один или несколько переходов? Бинарное отношение сообщает вам только, что узел a соединен с узлом b , а узел b соединен с узлом c и т. д. После построения транзитивного замыкания, как показано на следующем рисунке, в операции O(1) можно определить, что узел d достижим из узла a . Структура данных обычно хранится в виде логической матрицы, поэтому, если матрица[1][4] = true, тогда узел 1 может достичь узла 4 через один или несколько переходов.

Транзитивное замыкание отношения смежности ориентированного ациклического графа (DAG) — это отношение достижимости DAG и строгий частичный порядок .

Кластерный граф , транзитивное замыкание неориентированного графа.

Транзитивное замыкание неориентированного создает кластерный граф , несвязное объединение клик . графа Построение транзитивного замыкания является эквивалентной постановкой задачи нахождения компонент графа. [1]

По логике и вычислительной сложности [ править ]

Транзитивное замыкание бинарного отношения, вообще говоря, не может быть выражено в логике первого порядка (ФО). Это означает, что нельзя написать формулу с использованием символов-предикатов R и T , которая будет выполняться в любая модель тогда и только тогда, когда T является транзитивным замыканием R . В теории конечных моделей логика первого порядка (FO), расширенная с помощью оператора транзитивного замыкания, обычно называется логикой транзитивного замыкания и сокращенно FO(TC) или просто TC. TC — это подтип логики с фиксированной точкой . Тот факт, что FO(TC) строго более выразителен, чем FO, был открыт Рональдом Феджином в 1974 году; результат был затем заново открыт Альфредом Ахо и Джеффри Уллманом в 1979 году, которые предложили использовать логику фиксированных точек в качестве языка запросов к базе данных . [2] С учетом более поздних концепций теории конечных моделей доказательство того, что FO(TC) является строго более выразительным, чем FO, немедленно следует из того факта, что FO(TC) не является локальным по Гейфману . [3]

В теории сложности вычислений класс сложности NL точно соответствует множеству логических предложений, выражаемых в TC. Это связано с тем, что свойство транзитивного замыкания тесно связано с NL-полной задачей STCON для поиска направленных путей в графе. Аналогично, класс L представляет собой логику первого порядка с коммутативным транзитивным замыканием. добавляется транзитивное замыкание Когда вместо этого к логике второго порядка , мы получаем PSPACE .

На языках запросов к базе данных [ править ]

С 1980-х годов в базе данных Oracle реализовано собственное SQL . расширение CONNECT BY... START WITHэто позволяет вычислить транзитивное замыкание как часть декларативного запроса. Стандарт SQL 3 (1999 г.) добавил более общий подход. WITH RECURSIVEконструкция, также позволяющая вычислять транзитивные замыкания внутри процессора запросов; по состоянию на 2011 год последний реализован в IBM Db2 , Microsoft SQL Server , Oracle , PostgreSQL и MySQL (v8.0+). SQLite выпустил поддержку этого в 2014 году.

Datalog также реализует вычисления транзитивного замыкания. [4]

MariaDB реализует рекурсивные общие табличные выражения, которые можно использовать для вычисления транзитивных замыканий. Эта функция была представлена ​​в версии 10.2.2 от апреля 2016 г. [5]

Алгоритмы [ править ]

Эффективные алгоритмы вычисления транзитивного замыкания отношения смежности графа можно найти в Nuutila (1995) . Сведение задачи к умножению матриц смежности позволяет достичь временной сложности умножения матриц , [6] . Однако этот подход непрактичен, поскольку как постоянные факторы, так и потребление памяти для разреженных графов высоки ( Nuutila 1995 , стр. 22–23, раздел 2.3.3). Эту задачу также можно решить с помощью алгоритма Флойда–Уоршалла в или повторным поиском в ширину или поиском в глубину, начиная с каждого узла графа.

Для ориентированных графов алгоритм Пердома решает проблему, сначала вычисляя его конденсационный DAG и его транзитивное замыкание, а затем поднимая его до исходного графа. Время его выполнения , где — число ребер между его сильно связными компонентами . [7] [8] [9] [10]

Более поздние исследования изучали эффективные способы вычисления транзитивного замыкания в распределенных системах на основе парадигмы MapReduce . [11]

См. также [ править ]

Ссылки [ править ]

  1. ^ Макколл, ВФ; Ношита, К. (1986), «О количестве ребер в транзитивном замыкании графа», Discrete Applied Mathematics , 15 (1): 67–73, doi : 10.1016/0166-218X(86)90020-X , МР   0856101
  2. ^ (Libkin 2004:vii)
  3. ^ (Либкин 2004:49)
  4. ^ (Зильбершац и др. 2010: C.3.6)
  5. ^ «Обзор рекурсивных общих табличных выражений» . mariadb.com.
  6. ^ Манро 1971 , Фишер и Мейер 1971
  7. ^ Пурдом-младший, Пол (март 1970 г.). «Алгоритм транзитивного замыкания». БИТ Численная математика . 10 (1): 76–94. дои : 10.1007/BF01940892 .
  8. ^ Пол В. Пердом младший (июль 1968 г.). Алгоритм транзитивного замыкания (Технический отчет по компьютерным наукам). Том. 33. Университет Висконсин-Мэдисон .
  9. ^ « Алгоритм Пердома» на AlgoWiki» .
  10. ^ « Транзитивное замыкание ориентированного графа» на AlgoWiki» .
  11. ^ (Афрати и др. 2011)

Внешние ссылки [ править ]