Транзитивное замыкание — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
| (не показано 6 промежуточных версий 5 участников) | |||
| Строка 2: | Строка 2: | ||
|definition= | |definition= | ||
'''Транзитивным замыканием''' (англ. ''transitive closure'') <tex>\mathrm{TrCl}(R)</tex> отношения <tex>R</tex> на множестве <tex>X</tex> называется пересечение всех транзитивных отношений, содержащих <tex>R</tex> как подмножество (иначе, минимальное [[транзитивное отношение]], содержащее <tex>R</tex> как подмножество).}} | '''Транзитивным замыканием''' (англ. ''transitive closure'') <tex>\mathrm{TrCl}(R)</tex> отношения <tex>R</tex> на множестве <tex>X</tex> называется пересечение всех транзитивных отношений, содержащих <tex>R</tex> как подмножество (иначе, минимальное [[транзитивное отношение]], содержащее <tex>R</tex> как подмножество).}} | ||
| − | Например, если <tex>V</tex> {{---}} множество городов, и на них задано отношение <tex>R</tex>, означающее, что если <tex>x R y</tex>, то "существует автобусный маршрут из x в y", то транзитивным замыканием этого отношения будет отношение "существует возможность добраться из x в y, передвигаясь на автобусах". | + | Например, если <tex>V</tex> {{---}} множество городов, и на них задано отношение <tex>R</tex>, означающее, что если <tex>x R y</tex>, то "существует автобусный маршрут из <tex> x</tex> в <tex> y</tex>", то транзитивным замыканием этого отношения будет отношение "существует возможность добраться из <tex> x</tex> в <tex> y</tex>, передвигаясь на автобусах". |
== Существование и описание == | == Существование и описание == | ||
| Строка 14: | Строка 14: | ||
|proof= | |proof= | ||
* <tex>R \subset R^+</tex> по определению <tex>R^+</tex> | * <tex>R \subset R^+</tex> по определению <tex>R^+</tex> | ||
| − | * <tex>R^+</tex> транзитивно. Пусть <tex>a R^+ b</tex> и <tex>b R^+ c</tex>. Это значит, что существуют i, j такие, что <tex>a R^i b</tex> и <tex>b R^j c</tex>. Но тогда <tex>a R^{i+j} c</tex>, и, так как <tex>R^{i+j} \subset R^+</tex>, то <tex>a R^+ c</tex> | + | * <tex>R^+</tex> транзитивно. Пусть <tex>a R^+ b</tex> и <tex>b R^+ c</tex>. Это значит, что существуют <tex> i, j </tex> такие, что <tex>a R^i b</tex> и <tex>b R^j c</tex>. Но тогда <tex>a R^{i+j} c</tex>, и, так как <tex>R^{i+j} \subset R^+</tex>, то <tex>a R^+ c</tex> |
| − | * <tex>R^+</tex> {{---}} минимальное отношение, удовлетворяющее представленным требованиям. Пусть <tex>T</tex> {{---}} транзитивное отношение, содержащее <tex>R</tex> в качестве подмножества. Покажем, что <tex>R^+ \subset T</tex>. <tex>R \subset T \Leftrightarrow R^i \subset T</tex> для любого натурального <tex>i</tex>. Докажем это по индукции. <tex>R^1 = R \subset R^+</tex>, как было показано выше. Пусть верно для любого <tex>i \ | + | * <tex>R^+</tex> {{---}} минимальное отношение, удовлетворяющее представленным требованиям. Пусть <tex>T</tex> {{---}} транзитивное отношение, содержащее <tex>R</tex> в качестве подмножества. Покажем, что <tex>R^+ \subset T</tex>. <tex>R \subset T \Leftrightarrow R^i \subset T</tex> для любого натурального <tex>i</tex>. Докажем это по индукции. <tex>R^1 = R \subset R^+</tex>, как было показано выше. Пусть верно для любого <tex>i \leqslant k</tex>. Пусть <tex>a R^{k+1} c</tex>. Но тогда существует <tex>b: aR^kb</tex> и <tex>bRc</tex>, но <tex>R \subset T, R^k \subset T</tex>, следовательно <tex>aTb, bTc</tex>. Из транзитивности <tex>T</tex> следует, что <tex>aTc</tex>, следовательно <tex>R^{k+1} \subset T</tex>. |
}} | }} | ||
== Построение транзитивного замыкания == | == Построение транзитивного замыкания == | ||
| − | Представленное доказательство указывает на способ построения транзитивного замыкания, а также позволяет определить транзитивное замыкание отношения <tex>R</tex> как отношение <tex>T</tex> такое, что <tex>aTb</tex> тогда и только тогда, когда существуют <tex>x_1, x_2, | + | Представленное доказательство указывает на способ построения транзитивного замыкания, а также позволяет определить транзитивное замыкание отношения <tex>R</tex> как отношение <tex>T</tex> такое, что <tex>aTb</tex> тогда и только тогда, когда существуют <tex>x_1, x_2, \ldots, x_n</tex> такие, что <tex>aRx_1, x_1Rx_2, x_2Rx_3, \ldots, x_{n-1}Rx_n, x_nRb</tex>, то есть существует путь из вершины <tex>a</tex> в вершину <tex>b</tex> по рёбрам графа отношения. |
{{Теорема | {{Теорема | ||
| Строка 30: | Строка 30: | ||
}} | }} | ||
| − | Для построения транзитивного отношения, заданного матрицей смежности, используется [[алгоритм Флойда — Уоршелла]]. | + | Для построения транзитивного замыкания отношения, заданного матрицей смежности, используется [[алгоритм Флойда — Уоршелла]]. |
== Свойства транзитивного замыкания == | == Свойства транзитивного замыкания == | ||
* Транзитивное замыкание рефлексивного отношения рефлексивно, так как транзитивное отношение содержит исходное отношение | * Транзитивное замыкание рефлексивного отношения рефлексивно, так как транзитивное отношение содержит исходное отношение | ||
| − | * Транзитивное замыкание симметричного отношения симметрично. Действительно, пусть <tex>aTb</tex>, значит существуют <tex>x_1, x_2, | + | * Транзитивное замыкание симметричного отношения симметрично. Действительно, пусть <tex>aTb</tex>, значит существуют <tex>x_1, x_2, \ldots, x_n</tex> такие, что <tex>aRx_1, x_1Rx_2, \ldots, x_nRb</tex>. Но из симметричности отношения <tex>R</tex> следует <tex>bRx_n, x_nRx_{n-1}, \ldots, x_1Ra</tex>, а, следовательно, <tex>bTa</tex> |
* Транзитивное замыкание не сохраняет антисимметричность, например, для отношения <tex>\{(a, b), (b, c), (c, a)\}</tex> на множестве <tex>\{a, b, c\}</tex> | * Транзитивное замыкание не сохраняет антисимметричность, например, для отношения <tex>\{(a, b), (b, c), (c, a)\}</tex> на множестве <tex>\{a, b, c\}</tex> | ||
* Транзитивное замыкание транзитивного отношения {{---}} оно само | * Транзитивное замыкание транзитивного отношения {{---}} оно само | ||
| Строка 43: | Строка 43: | ||
иногда называют рефлексивно-транзитивным замыканием, хотя часто под "транзитивным замыканием" подразумевается именно <tex>R^*</tex>. Обычно различия между этими отношениями не являются значительными. | иногда называют рефлексивно-транзитивным замыканием, хотя часто под "транзитивным замыканием" подразумевается именно <tex>R^*</tex>. Обычно различия между этими отношениями не являются значительными. | ||
| − | == | + | == См. также == |
| + | * [[Транзитивное_отношение|Транзитивное отношение]] | ||
| + | * [[Алгоритм_Флойда_—_Уоршалла|Алгоритм Флойда-Уоршалла (построение транзитивного замыкания отношения)]] | ||
| + | * [[Транзитивный_остов|Транзитивный остов]] | ||
| + | |||
| + | == Источники информации == | ||
*[http://en.wikipedia.org/wiki/Transitive_closure Wikipedia | Transitive closure (англ.)] | *[http://en.wikipedia.org/wiki/Transitive_closure Wikipedia | Transitive closure (англ.)] | ||
[[Категория:Дискретная математика и алгоритмы]] | [[Категория:Дискретная математика и алгоритмы]] | ||
[[Категория: Отношения ]] | [[Категория: Отношения ]] | ||
Текущая версия на 19:25, 4 сентября 2022
| Определение: |
| Транзитивным замыканием (англ. transitive closure) отношения на множестве называется пересечение всех транзитивных отношений, содержащих как подмножество (иначе, минимальное транзитивное отношение, содержащее как подмножество). |
Например, если — множество городов, и на них задано отношение , означающее, что если , то "существует автобусный маршрут из в ", то транзитивным замыканием этого отношения будет отношение "существует возможность добраться из в , передвигаясь на автобусах".
Содержание
Существование и описание
Транзитивное замыкание существует для любого отношения. Для этого отметим, что пересечение любого множества транзитивных отношений транзитивно. Более того, обязательно существует транзитивное отношение, содержащее как подмножество (например, ).
| Теорема: |
Докажем, что является транзитивным замыканием отношения .
|
| Доказательство: |
|
Построение транзитивного замыкания
Представленное доказательство указывает на способ построения транзитивного замыкания, а также позволяет определить транзитивное замыкание отношения как отношение такое, что тогда и только тогда, когда существуют такие, что , то есть существует путь из вершины в вершину по рёбрам графа отношения.
| Теорема: |
Если — отношение на конечном множестве размера n, то транзитивным замыканием такого отношения будет отношение
|
| Доказательство: |
| Действительно, если по рёбрам графа есть путь длины , то он проходит по всем вершинам графа, а, значит, в этом пути есть цикл и его можно отбросить, тем самым уменьшив длину пути. Длину пути можно уменьшать до того, пока она не будет не превосходить количество вершин графа (элементов множества), а значит, все пути длины более, чем можно "выкинуть" из объединения. |
Для построения транзитивного замыкания отношения, заданного матрицей смежности, используется алгоритм Флойда — Уоршелла.
Свойства транзитивного замыкания
- Транзитивное замыкание рефлексивного отношения рефлексивно, так как транзитивное отношение содержит исходное отношение
- Транзитивное замыкание симметричного отношения симметрично. Действительно, пусть , значит существуют такие, что . Но из симметричности отношения следует , а, следовательно,
- Транзитивное замыкание не сохраняет антисимметричность, например, для отношения на множестве
- Транзитивное замыкание транзитивного отношения — оно само
Рефлексивно-транзитивное замыкание
Отношение , где
иногда называют рефлексивно-транзитивным замыканием, хотя часто под "транзитивным замыканием" подразумевается именно . Обычно различия между этими отношениями не являются значительными.
См. также
- Транзитивное отношение
- Алгоритм Флойда-Уоршалла (построение транзитивного замыкания отношения)
- Транзитивный остов