Изменения

Перейти к: навигация, поиск

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

1274 байта добавлено, 15:05, 28 декабря 2017
Нет описания правки
{{В разработке}}Определение|definition='''Транзитивным замыканием''' (англ. ''transitive closure'') <mathtex>\mathrm{TrCl}(R)</mathtex> отношения <mathtex>R</mathtex> на множестве <mathtex>X</mathtex> называется пересечение всех транзитивных отношений, содержащих <mathtex>R</mathtex> как подмножество (иначе, минимальное [[транзитивное отношение]], содержащее <mathtex>R</mathtex> в качестве подмножествакак подмножество). }}Например, если <mathtex>V</mathtex> {{- --}} множество городов, и на них задано отношение <mathtex>R</mathtex>, означающее, что если <tex>x R y</tex>, то "существует автобусный маршрут из <tex> x </tex> в <tex> y</tex>", то транзитивным замыканием этого отношения будет отношение "существует возможность добраться из <tex> x </tex> в <tex> y</tex>, передвигаясь на автобусах".
== Существование и описание ==
Транзитивное замыкание существует для любого отношения. Для этого отметим, что пересечение любого множества транзитивных отношений транзитивно. Более того, обязательно существует транзитивное отношение, содержащее <mathtex>R</mathtex> как подмножество (например, <mathtex>X \times X</mathtex>).
{{Теорема|statement=Докажем, что <mathtex>R^+</mathtex> является транзитивным замыканием отношения <mathtex>R</mathtex>.:<mathtex>R^+ = \bigcup\limits_{i \in \mathbb{N}} R^i</mathtex>
|proof=* <mathtex>R \subset R^+</mathtex> по определению <mathtex>R^+</mathtex>* <mathtex>R^+</mathtex> транзитивно. Пусть <mathtex>a R^+ b</mathtex> и <mathtex>b R^+ c</mathtex>. Это значит, что существуют <tex> i, j </tex> такие, что <mathtex>a R^i b</mathtex> и <mathtex>b R^j c</mathtex>. Но тогда <mathtex>a R^{i+j} bc</mathtex>, и, так как <mathtex>R^{i+j} \subset R^+ \rightarrow </tex>, то <tex>a R^+ bc</mathtex>* <mathtex>R^+</mathtex> {{- --}} минимальное отношение, удовлетворяющее представленным требованиям. Пусть <mathtex>T</mathtex> {{--- }} транзитивное отношение, содержащее <mathtex>R</mathtex> в качестве подмножества. Покажем, что <mathtex>R^+ \subset T</mathtex>. <mathtex>R \subset T \longleftrightarrow Leftrightarrow R^i \subset T</mathtex> для любого натурального <mathtex>i</mathtex>. Докажем это по индукции. <mathtex>R^1 = R \subset R^+</mathtex>, как было показано выше. Пусть верно для любого <mathtex>i \le leqslant k</mathtex>. Пусть <mathtex>a R^{k+1} c</mathtex>. Но тогда существует <mathtex>b: aR^kb</mathtex> и <mathtex>bRc</mathtex>, но <mathtex>R \subset T, R^k \subset T</mathtex>, следовательно <mathtex>aTb, bTc</mathtex>. Из транзитивности <mathtex>T</mathtex> следует, что <mathtex>aTc</mathtex>, следовательно <mathtex>R^{k+1} \subset T</mathtex>, что и требовалось доказать.}}
== Построение транзитивного замыкания ==
Представленное доказательство указывает на способ построения транзитивного замыкания, а также позволяет определить транзитивное замыкание отношения <mathtex>R</mathtex> - это такое как отношение <mathtex>T</mathtex>такое, что <mathtex>aTb</mathtex> тогда и только тогда, когда существуют <mathtex>x_1, x_2, ...\ldots, x_n</mathtex> такие, что <mathtex>aRx_1</math>, <math>x_1Rx_2</math>, <math>x_2Rx_3</math>, ...\ldots, <math>x_{n-1}Rx_n</math>, <math>x_nRb</mathtex>, то есть существует путь из вершины <mathtex>a</mathtex> в вершину <mathtex>b</mathtex> по рёбрам графа отношения.
Из этого определения можно легко понять, если {{Теорема|statement=Если <mathtex>R</mathtex> {{--- }} отношение на конечном множестве размера n, то транзитивным замыканием такого отношения будет отношение:<mathtex>T = \bigcup\limits_{i = 1}^{n} R^i</mathtex>.
|proof=Действительно, если по рёбрам графа есть путь длины <mathtex>l > n</mathtex>, то он проходит по всем вершинам графа, а, значит, в этом пути есть цикл и его можно отбросить, тем самым уменьшив длину пути. Длину пути можно уменьшать до того, как пока она не будет не превосходить количество вершин графа (элементов множества), а значит, все пути длины более, чем <mathtex>n</mathtex> можно "выкинуть" из объединения.}}
Для построения транзитивного замыкания отношения множества, заданного матрицей смежности, используется [[алгоритм Флойда-Уоршала— Уоршелла]].
== Свойства транзитивного замыкания ==
* Транзитивное замыкание рефлексивного отношения рефлексивно, так как транзитивное отношение содержит исходное отношение
* Транзитивное замыкание симметричного отношения симметрично. Действительно, пусть <mathtex>aTb</mathtex>, значит существуют <mathtex>x_1, x_2, ...\ldots, x_n</mathtex> такие, что <mathtex>aRx_1, x_1Rx_2, ...\ldots, x_nRb</mathtex>. Но из симметричности отношения <mathtex>R</mathtex> следует <mathtex>bRx_n, x_nRx_{n-1}, ...\ldots, x_1Ra</mathtex>, а, следовательно, <mathtex>bTa</mathtex>* Транзитивное замыкание не сохраняет антисимметричность, например, для отношения <mathtex>\{(a, b), (b, c), (c, a)\}</mathtex> на множестве <mathtex>\{a, b, c\}</tex>* Транзитивное замыкание транзитивного отношения {{---}}оно само == Рефлексивно-транзитивное замыкание ==Отношение <tex>R^* = R^+ \cup R^0</mathtex>, где:<tex>R^0 = \{(e, e) | e \in X\}</tex>иногда называют рефлексивно-транзитивным замыканием, хотя часто под "транзитивным замыканием" подразумевается именно <tex>R^*</tex>. Обычно различия между этими отношениями не являются значительными. == См. также ==* [[Транзитивное_отношение|Транзитивное отношение]]* [[Алгоритм_Флойда_—_Уоршалла|Алгоритм Флойда-Уоршалла (построение транзитивного замыкания отношения)]]* [[Транзитивный_остов|Транзитивный остов]] == Источники информации ==*[http://en.wikipedia.org/wiki/Transitive_closure Wikipedia | Transitive closure (англ.)] [[Категория:Дискретная математика и алгоритмы]][[Категория: Отношения ]]
Анонимный участник

Навигация