Переходное замыкание

редактировать

В математике, переходное замыкание бинарного отношения . R в наборе X - наименьшее отношение в X, которое содержит R и является транзитивным.

. Например, если X - это набор аэропортов, а xRy означает, что "существует прямой рейс из аэропорта x в аэропорт y "(для x и y в X), тогда транзитивное замыкание R на X - это отношение R, такое, что x R y означает, что" можно лететь из x в y в одном или нескольких полеты ». Неформально транзитивное замыкание дает вам набор всех мест, куда вы можете добраться из любой точки старта.

Более формально транзитивное замыкание бинарного отношения R на множестве X - это транзитивное отношение R на множестве X, такое что R содержит R, а R минимально Lidl Pilz (1998, стр. 337). Если само бинарное отношение транзитивно, то транзитивное замыкание - это то же самое бинарное отношение; в противном случае транзитивное замыкание - это другое отношение.

Содержание
  • 1 Переходные отношения и примеры
  • 2 Существование и описание
  • 3 Свойства
  • 4 В теории графов
  • 5 В логике и вычислительной сложности
  • 6 В языках запросов к базам данных
  • 7 Алгоритмы
  • 8 См. Также
  • 9 Ссылки
  • 10 Внешние ссылки
Переходные отношения и примеры

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

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

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

Существование и описание

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

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

R + = ⋃ i = 1 ∞ R i. {\ displaystyle R ^ {+} = \ bigcup _ {i = 1} ^ {\ infty} R ^ {i}.}{\ displaystyle R ^ {+} = \ bigcup _ {i = 1} ^ {\ infty} R ^ {i}.}

где R i {\ displaystyle R ^ {i}}R ^ i - это i-я степень R, индуктивно определяемая как

R 1 = R {\ displaystyle R ^ {1} = R}{\ displaystyle R ^ {1} = R}

, а для i>0 {\ displaystyle i>0}i>0

р я + 1 знак равно р ∘ р я {\ displaystyle R ^ {i + 1} = R \ circ R ^ {i}}R ^ {i + 1} = R \ circ R ^ i

где ∘ {\ displaystyle \ circ}\ circ обозначает композицию отношений.

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

  • R ⊆ R + {\ displaystyle R \ substeq R ^ {+}}R \ substeq R ^ {+} : R + {\ displaystyle \ displaystyle R ^ {+}}\ Displaystyle R ^ + содержит все R я {\ displaystyle \ displaystyle R ^ {i}}\ displaystyle R ^ i , поэтому, в частности, R + {\ displaystyle \ displaystyle R ^ {+}}\ Displaystyle R ^ + co ntains R {\ displaystyle \ displaystyle R}\ displaystyle R .
  • R + {\ displaystyle \ displaystyle R ^ {+}}\ displaystyle R ^ {+} транзитивен: Если (s 1, s 2), ( s 2, s 3) ∈ R + {\ Displaystyle (s_ {1}, s_ {2}), (s_ {2}, s_ {3}) \ in R ^ {+}}{\ displaystyle (s_ {1}, s_ {2}), (s_ {2}, s_ {3}) \ in R ^ {+}} , тогда (s 1, s 2) ∈ R j {\ displaystyle (s_ {1}, s_ {2}) \ in R ^ {j}}(s_1, s_2) \ in R ^ j и (s 2, s 3) ∈ R K {\ displaystyle (s_ {2}, s_ {3}) \ in R ^ {k}}(s_2, s_3) \ in R ^ k для некоторых j, k {\ displaystyle j, k}j, k по определению R + {\ displaystyle R ^ {+}}R ^ {+} . Поскольку композиция ассоциативна, R j + k = R j ∘ R k {\ displaystyle R ^ {j + k} = R ^ {j} \ circ R ^ {k}}{\ displaystyle R ^ {j + k} = R ^ {j} \ circ R ^ {k}} ; следовательно, (s 1, s 3) ∈ R j + k ⊆ R + {\ displaystyle (s_ {1}, s_ {3}) \ in R ^ {j + k} \ substeq R ^ {+}}{\ displaystyle (s_ {1}, s_ {3}) \ in R ^ {j + k } \ substeq R ^ {+}} по определению ∘ {\ displaystyle \ circ}\ circ и R + {\ displaystyle R ^ {+}}R ^ {+} .
  • R + {\ displaystyle R ^ {+}}R ^ {+} минимально, то есть если T {\ displaystyle T}T - любое транзитивное отношение, содержащее R {\ displaystyle R}R , затем R + ⊆ T {\ displaystyle R ^ {+} \ substeq T}{\ displaystyle R ^ {+} \ substeq T} : для любого такого T {\ displaystyle T}T , индукции на i {\ displaystyle i}i можно использовать для отображения R i ⊆ T {\ displaystyle R ^ {i} \ substeq T}{\ displaystyle R ^ {i} \ substeq T} для всех i {\ displaystyle i}i следующим образом: Base: R 1 = R ⊆ T {\ displaystyle R ^ {1} = R \ substeq T}{\ displaystyle R ^ {1} = R \ substeq T} по предположению. Шаг: если выполняется R i ⊆ T {\ displaystyle R ^ {i} \ substeq T}{\ displaystyle R ^ {i} \ substeq T} и (s 1, s 3) ∈ R i + 1 = R ∘ R я {\ displaystyle (s_ {1}, s_ {3}) \ in R ^ {i + 1} = R \ circ R ^ {i}}{\ displaystyle (s_ {1}, s_ { 3}) \ in R ^ {i + 1} = R \ circ R ^ {i}} , затем (s 1, s 2) ∈ R {\ displaystyle (s_ {1}, s_ {2}) \ in R}{\ displaystyle (s_ {1}, s_ {2}) \ in R} и (s 2, s 3) ∈ R i {\ displaystyle (s_ {2}), s_ {3}) \ in R ^ {i}}{\ displaystyle (s_ {2}, s_ {3}) \ in R ^ {i}} для некоторого s 2 {\ displaystyle s_ {2}}s_ {2} , по определению ∘ { \ Displaystyle \ circ}\ circ . Следовательно, (s 1, s 2), (s 2, s 3) ∈ T {\ displaystyle (s_ {1}, s_ {2}), (s_ {2}, s_ {3}) \ in T}{\ displaystyle (s_ {1}, s_ {2}), (s_ {2 }, s_ {3}) \ in T} по предположению и по предположению индукции. Следовательно, (s 1, s 3) ∈ T {\ displaystyle (s_ {1}, s_ {3}) \ in T}{\ displaystyle (s_ {1}, s_ {3}) \ в T} по транзитивности T {\ displaystyle T}T ; это завершает индукцию. Наконец, R я ⊆ T {\ displaystyle R ^ {i} \ substeq T}{\ displaystyle R ^ {i} \ substeq T} для всех i {\ displaystyle i}i подразумевает R + ⊆ T {\ displaystyle R ^ {+} \ substeq T}{\ displaystyle R ^ {+} \ substeq T} по определению R + {\ displaystyle R ^ {+}}R ^ {+} .
Properties

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

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

В теории графов
Переходное замыкание формирует вывод график из входной граф. переходное замыкание конструирует выходной граф из входного графа.

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

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

в логике и вычислительной сложности

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

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

В языках запросов к базам данных

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

Datalog также реализует вычисления транзитивного замыкания (Silberschatz et al. 2010: C.3.6).

Алгоритмы

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

В более поздних исследованиях изучались эффективные способы вычисления транзитивного замыкания в распределенных системах на основе парадигмы MapReduce (Afrati et al. 2011).

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-11 09:54:51
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте