Изменения

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

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

130 байт убрано, 06:01, 16 октября 2010
м
math -> tex
'''Транзитивным замыканием''' <mathtex>\mathrm{TrCl}(R)</mathtex> отношения <mathtex>R</mathtex> на множестве <mathtex>X</mathtex> называется пересечение всех транзитивных отношений, содержащих <mathtex>R</mathtex> как подмножество (иначе, минимальное транзитивное отношение, содержащее <mathtex>R</mathtex> как подмножество). Например, если <mathtex>V</mathtex> - множество городов, и на них задано отношение <mathtex>R</mathtex>, означающее, что если <mathtex>x R y</mathtex>, то "существует автобусный маршрут из x в y", то транзитивным замыканием этого отношения будет отношение "существует возможность добраться из x в y, передвигаясь на автобусах".
== Существование и описание ==
Транзитивное замыкание существует для любого отношения. Для этого отметим, что пересечение любого множества транзитивных отношений транзитивно. Более того, обязательно существует транзитивное отношение, содержащее <mathtex>R</mathtex> как подмножество (например, <mathtex>X \times X</mathtex>).
Докажем, что <mathtex>R^+</mathtex> является транзитивным замыканием отношения <mathtex>R</mathtex>.:<mathtex>R^+ = \bigcup\limits_{i \in \mathbb{N}} R^i</mathtex>
* <mathtex>R \subset R^+</mathtex> по определению <mathtex>R^+</mathtex>* <mathtex>R^+</mathtex> транзитивно. Пусть <mathtex>a R^+ b</mathtex> и <mathtex>b R^+ c</mathtex>. Это значит, что существуют i, j такие, что <mathtex>a R^i b</mathtex> и <mathtex>b R^j c</mathtex>. Но тогда <mathtex>a R^{i+j} c</mathtex>, и, так как <mathtex>R^{i+j} \subset R^+</mathtex>, то <mathtex>a R^+ c</mathtex>* <mathtex>R^+</mathtex> - минимальное отношение, удовлетворяющее представленным требованиям. Пусть <mathtex>T</mathtex> - транзитивное отношение, содержащее <mathtex>R</mathtex> в качестве подмножества. Покажем, что <mathtex>R^+ \subset T</mathtex>. <mathtex>R \subset T \longleftrightarrow R^i \subset T</mathtex> для любого натурального <mathtex>i</mathtex>. Докажем это по индукции. <mathtex>R^1 = R \subset R^+</mathtex>, как было показано выше. Пусть верно для любого <mathtex>i \le 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, ..., x_n</mathtex> такие, что <mathtex>aRx_1</mathtex>, <mathtex>x_1Rx_2</mathtex>, <mathtex>x_2Rx_3</mathtex>, ..., <mathtex>x_{n-1}Rx_n</mathtex>, <mathtex>x_nRb</mathtex>, то есть существует путь из вершины <mathtex>a</mathtex> в вершину <mathtex>b</mathtex> по рёбрам графа отношения.
Из этого определения можно легко понять, если <mathtex>R</mathtex> - отношение на конечном множестве размера n, то транзитивным замыканием такого отношения будет отношение:<mathtex>T = \bigcup\limits_{i = 1}^{n} R^i</mathtex>.
Действительно, если по рёбрам графа есть путь длины <mathtex>l > n</mathtex>, то он проходит по всем вершинам графа, а, значит, в этом пути есть цикл и его можно отбросить, тем самым уменьшив длину пути. Длину пути можно уменьшать до того, как она не будет превосходить количество вершин графа (элементов множества), а значит, все пути длины более, чем <mathtex>n</mathtex> можно "выкинуть" из объединения.
Для построения транзитивного отношения множества, заданного матрицей смежности, используется [[алгоритм Флойда — Уоршелла]].
== Свойства транзитивного замыкания ==
* Транзитивное замыкание рефлексивного отношения рефлексивно, так как транзитивное отношение содержит исходное отношение
* Транзитивное замыкание симметричного отношения симметрично. Действительно, пусть <mathtex>aTb</mathtex>, значит существуют <mathtex>x_1, x_2, ..., x_n</mathtex> такие, что <mathtex>aRx_1, x_1Rx_2, ..., x_nRb</mathtex>. Но из симметричности отношения <mathtex>R</mathtex> следует <mathtex>bRx_n, x_nRx_{n-1}, ..., x_1Ra</mathtex>, а, следовательно, <mathtex>bTa</mathtex>* Транзитивное замыкание не сохраняет антисимметричность, например, для отношения <mathtex>\{(a, b), (b, c), (c, a)\}</mathtex> на множестве <mathtex>\{a, b, c\}</mathtex>
* Транзитивное замыкание транзитивного отношения - оно само
== Рефлексивно-транзитивное замыкание ==
Отношение <mathtex>R^* = R^+ \cup R^0</mathtex>, где:<mathtex>R^0 = \{(e, e) | e \in X\}</mathtex>иногда называют рефлексивно-транзитивным замыканием, хотя часто под "транзитивным замыканием" подразумевается именно <mathtex>R^*</mathtex>. Обычно различия между этими отношениями не являются значительными.
304
правки

Навигация