Транзитивный остов — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «{{Определение |definition= '''Транзитивным остовом''' (''transitive reduction'') [[Определение отношения|отн...»)
 
Строка 3: Строка 3:
 
'''Транзитивным остовом''' (''transitive reduction'') [[Определение отношения|отношения]] <tex> R </tex> на множестве <tex> X </tex> называется минимальное отношение <tex> R' </tex> на <tex> X </tex> такое, что [[транзитивное замыкание]] <tex> R' </tex> равно транзитивному замыканию <tex> R </tex>.
 
'''Транзитивным остовом''' (''transitive reduction'') [[Определение отношения|отношения]] <tex> R </tex> на множестве <tex> X </tex> называется минимальное отношение <tex> R' </tex> на <tex> X </tex> такое, что [[транзитивное замыкание]] <tex> R' </tex> равно транзитивному замыканию <tex> R </tex>.
 
}}
 
}}
 +
 +
== Алгоритм ==
 +
Воспользуемся определениями транзитивного замыкания и [[Транзитивное отношение|транзитивного отношения]]. Изначально <tex> R' = R </tex>. Очевидно, что если для <tex> a, b, c \in X </tex> существуют <tex> aRb, bRc, aRc </tex>, то из <tex> R' </tex> нужно исключить <tex> \left < a, c \right > </tex>.
 +
  R' = R
 +
  for (each a in X)
 +
    for (each b in X)
 +
      for (each c in X)
 +
        if (aRb and bRc and aRc)
 +
          R'.delete(pair(a, c))
  
 
== Источники ==
 
== Источники ==
 
* [http://en.wikipedia.org/wiki/Transitive_reduction Wikipedia: Transitive reduction]
 
* [http://en.wikipedia.org/wiki/Transitive_reduction Wikipedia: Transitive reduction]

Версия 21:03, 10 апреля 2012

Определение:
Транзитивным остовом (transitive reduction) отношения [math] R [/math] на множестве [math] X [/math] называется минимальное отношение [math] R' [/math] на [math] X [/math] такое, что транзитивное замыкание [math] R' [/math] равно транзитивному замыканию [math] R [/math].


Алгоритм

Воспользуемся определениями транзитивного замыкания и транзитивного отношения. Изначально [math] R' = R [/math]. Очевидно, что если для [math] a, b, c \in X [/math] существуют [math] aRb, bRc, aRc [/math], то из [math] R' [/math] нужно исключить [math] \left \lt a, c \right \gt [/math].

 R' = R
 for (each a in X)
   for (each b in X)
     for (each c in X)
       if (aRb and bRc and aRc)
         R'.delete(pair(a, c))

Источники