Saltar para o conteúdo

Fecho transitivo: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Alterei o nome "Julho" por Julio. Acredito que tenha ocorrido um erro de digitação.
Ericklps (discussão | contribs)
Tradução do verbete original em inglês para o português.
Linha 1: Linha 1:
Na [[matemática]], o '''fecho transitivo''' de uma [[Relação_binária|relação binária]] ''R'' sobre um [[conjunto]] ''X'' é a [[relação transitiva]] ''R''<sup>+</sup> sobre o [[Conjunto|conjunto]] ''X'' de maneira que ''R''<sup>+</sup> contém ''R'' e ''R''<sup>+</sup> é mínimo (Lidl and Pilz 1998:337). Se a própria relação binária é [[Relação transitiva|transitiva]], então o fecho transitivo é a própria relação; senão, o fecho transitivo é uma outra relação. Por exemplo, se ''X'' é um conjunto de aeroportos e ''x R y'' significa "existe um voo direto do aeroporto ''x'' para o aeroporto ''y''", então o fecho transitivo de ''R'' sobre ''X'' é a relação ''R''<sup>+</sup>: "é possível voar a partir de ''x'' para ''y'' em um ou mais vôos."
{{Sem-fontes|data=abril de 2013}}
Em uma relação transitiva, se a implica b, e b implicar c, então a implica c.


== Relações transitivas e exemplos ==
Exemplo: Se a é irmão de b, e b é irmão de c, então a é irmão de c.'''''(Essa relação de irmãos não é necessariamente transitiva pois o fato de a ser irmão de b, e b ser irmão de c não garante que a seja irmão de c. Um contraexemplo: Um casal, Julio e Vera, tem 1 filho juntos e se divorciam. Com o tempo os dois acham novos companheiros e têm mais filhos. Os filhos de Julho com sua nova mulher serão irmãos do filho que ele teve com Vera, e os filhos de Vera com seu novo marido também, mas, esses filhos dos "novos casais" não serão irmãos. Um exemplo viável seria a relação aRb = a é mais alto que b)'''''


Formalmente, uma relação é dita transitiva se aRb e bRc implicam aRc. A relação se diz antitransitiva quando aRb e bRc implicam que não é verdade aRc.
Uma relação transitiva ''R'' sobre um conjunto ''X'' é transitiva se, para todo ''x'',''y'',''z'' em ''X'', sempre que ''x R y'' e ''y R z'' então ''x R z''.
Exemplos de relações transitivas incluem a relação de igualdade em qualquer conjunto, a relação "menor ou igual que" em qualquer conjunto linearmente ordenado, e a relação "''x'' nasceu antes de ''y''" no conjunto de todas as pessoas. Simbolicamente, isso pode ser descrito como: se ''x'' < ''y'' e''y'' < ''z'', então ''x'' < ''z''.
A relação R3 não é transitiva porque (2,1) e (1,3) ∈ R3, mas (2,3) ∉ R3 . Todas as outras relações são transitivas.
A propriedade de transitividade também pode ser expressa em termos da composição de relações. Para uma relação R em A, definimos R² = R⋅R e, mais geralmente, Rn = Rn-1⋅R.


Um exemplo de uma relação intransitiva é "a cidade ''x'' é alcançável através de um voo direto a partir da cidade ''y''" no conjunto de todas as cidades. Simplesmente por haver um voo direto de uma cidade para uma segunda, e também um vôo direto dessa segunda cidade para uma terceira, não implica em haver um voo direto da primeira cidade para a terceira. O fecho transitivo dessa relação é uma relação diferente, que é "existe uma sequência de vôos diretos que começa na cidade ''x'' e termina na cidade ''y''". Toda relação pode ser estendida de maneira semelhante para uma relação transitiva.
Teorema: a relação R é transitiva se e somente se , Rn ⊆ R para n ≥ 1.

==Existência e descrição==

Para qualquer relação ''R'', o fecho transitivo de ''R'' sempre existe. Para comprovar isso, note que a [[interseção]] de qualquer família de relações transitivas é novamente transitiva. Além disso, existe ao menos uma relação transitiva contendo ''R'',

Para conjunto finitos, podemos construir o fecho transitivo passo a passo, começando por ''R'' e adicionando arestas transitivas.
Isso nos dá a ideia para a construção geral. Para qualquer conjunto ''X'', podemos provar que o fecho transitivo é dado pela seguinte expressão
:<math>R^{+}=\bigcup_{i\in \{1,2,3,\ldots\}} R^i.</math>
onde <math>R^i</math> é a ''i''-ésima potência de ''R'', definida através de ind~ução por
:<math>R^1 = R\,\!</math>
e, para <math>i>0</math>,
:<math>R^{i+1} = R \circ R^i</math>
onde <math>\circ</math> representa a [[Relação_binária#Composi.C3.A7.C3.A3o_de_rela.C3.A7.C3.B5es|composição de relações]].

Para mostrar que a definição de ''R''<sup>+</sup> mostrada acima é a menor relação transitiva contendo ''R'', mostramos que ela contém ''R'', que é transitiva, e que é o menor conjunto com ambas as características.

* <math>R \subseteq R^{+}</math>: <math>\displaystyle R^+</math> contém contém todas <math>\displaystyle R^i</math>, particularmente <math>\displaystyle R^+</math> contém <math>\displaystyle R</math>.
* <math>\displaystyle R^{+}</math> é transitiva: todo elemento de <math>\displaystyle R^+</math> está em um dos <math>\displaystyle R^i</math>, então <math>\displaystyle R^+</math> deve ser transitivo pela seguinte razão: se <math>(s_1, s_2)\in R^j</math> e <math>(s_2, s_3)\in R^k</math>, então pela composição associativa, <math>(s_1, s_3)\in R^{j+k}</math> (logo, em <math>\displaystyle R^+</math>) por conta da definição de <math>\displaystyle R^i</math>.
* <math>\displaystyle R^{+}</math> é mínima: Seja <math>\displaystyle G</math> qualquer relação transitiva contendo <math>\displaystyle R</math>, queremos mostrar que <math>R^{+} \subseteq G</math>. Isso é suficiente para mostrar que <math>i>0</math>, <math>R^i\subseteq G</math>. Bem, já que <math>\displaystyle G</math> contém <math>\displaystyle R</math>, <math>R^1\subseteq G</math>. E como <math>\displaystyle G</math> é transitiva, para qualquer <math>R^i\subseteq G</math>, <math>R^{i+1}\subseteq G</math> de acordo com a construção de <math>R^i\,\!</math> e que é transitivo. Logo, por indução, <math>\displaystyle G</math> contém todo <math>R^i\,\!</math>, e também contém <math>\displaystyle R^+</math>.

== Propriedades ==
A [[Intersection (set theory)|intersecção]] de duas relações transitivas é transitiva.

A [[union (set theory)|união]] de duas relações transitivas não pode ser transitiva. Para preservar a transitividade, uma delas precisa manter o fecho transitivo. Isso ocorre, por exemplo, quando geramos a união de duas [[equivalence relation|relações de equivalencia]] ou duas [[preorder|relações de pré-ordem]]. Para obter uma nova relação de equivalência ou pré-ordem uma precisa manter o fecho transitivo (reflexividade e simetria&mdash;no caso de relações de equivalência&mdash;são automáticas).

==Na teoria dos grafos==
[[File:Transitive-closure.svg|thumb|right|alt=Transitive closure constructs the output graph from the input graph.|Transitive closure constructs the output graph from the input graph.]]
Na [[computer science|ciência da computação]], o conceito de fecho transitivo pode ser pensado como a construção de uma estrutura de dados que possibilita responder problemas de atingibilidade. Isso é, será possível chegar à um nó ''b'', partindo de um nó ''a'' em um ou mais saltos? Uma relação binária apenas informa que esse nó ''a'' está conectado ao nó ''b'', e que o nó ''b'' está conectado ao nó ''c'', etc. Após o fecho transitivo ser construído, como mostrado na figura abaixo, em uma operação O(1) pode se determinar que o nó ''d'' é atingível a partir do nó ''a''. A estrutura de dados é geralmente armazenada como uma matriz, então se matriz[1][4] = 1, significa que o nó ''4'' é atingível a partir do nó ''1'' e um ou mais saltos.

O fecho transitivo de um [[directed acyclic graph|grafo direcionado acíclico]] (GDA) é a relação de atingibilidade do GDA e uma ordem parcial estrita.
is the reachability relation of the DAG and a [[strict partial order]].

== Na lógica e na complexidade computacional ==
O fecho transitivo de uma relação binária não pode, geralmente, ser expresso em [[Lógica_de_primeira_ordem|lógica de primeira ordem]] (LPO).
Isso significa que não é possível escrever uma fórmula usando predicados ''R'' e ''T'' que serão satisfatíveis em qualquer modelo se e somente se ''T'' é o fecho transitivo de ''R''.

Na teoria dos modelos finitos, lógica de primeira ordem (LPO) extendida com um operador de fecho transitivo é normalmente chamada '''lógica de fecho transitivo''', e abreviada LPO(FT) ou apenas FT.

Na teoria da [[complexidade computacional]], a classe [[Complexidade NL|NL]] corresponde precisamente ao conjunto de sentenças lógicas que podem ser expressas em FT. Isso acontece porque a propriedade do fecho transitivo tem uma relação próxima com o problema NL-Completo da [[conectividade st]], para achar caminhos direcionados em um grafo. Similarmente, a classe L é de lógica de primeira ordem com fecho transitivo e comutativo. Quando o fecho transitivo é adicionado à lógica de segunda ordem, obtemos [[PSPACE]].

== Em linguagens de consulta à banco de dados ==
Desde os anos 1980 o [[Oracle_database|Oracle database]] implementa uma extensão [[SQL]] prioritária CONNECT BY... START WITH que permite a computação de um fecho transitivo como parte de uma consulta. O padrão [[SQL 3]] (1999) um um construtor mais generalizado WITH RECURSIVE permitindo fechos transitivos serem computados dentro do processador de consultas; em 2011 esse último foi implementado por [[IBM DB2]], [[Microsoft SQL Server]], e [[PostgreSQL]], entretanto não pelo [[MySQL]] (Benedikt and Senellart 2011:189).

[[Datalog]] também implementa computações transitivamente fechadas. (Silberschatz et al. 2010:C.3.6).

== Algoritmos ==
Algoritmos eficientes para computar o fecho transitivo de um grafo podem ser encontrados em Nuutila (1995). A técnica mais simples é provavelmente o [[Algoritmo de Floyd-Warshall]]. O métodos de pior caso mais rápidos, que não são praticamente viáveis, reduzem o problema à uma multiplicação de matrizes.


== References ==
* Lidl, R. and Pilz, G., 1998, ''Applied abstract algebra'', 2nd edition, Undergraduate Texts in Mathematics, Springer, ISBN 0-387-98290-6
* Keller, U., 2004, ''[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.127.8266 Some Remarks on the Definability of Transitive Closure in First-order Logic and Datalog]'' (unpublished manuscript)
* {{cite book|author1=Erich Grädel|author2=Phokion G. Kolaitis|author3=Leonid Libkin|coauthors=Maarten Marx, Joel Spencer, Moshe Y. Vardi, Yde Venema, Scott Weinstein|title=Finite Model Theory and Its Applications|year=2007|publisher=Springer|isbn=978-3-540-68804-4|pages=151–152}}
* {{citation|first=Leonid|last=Libkin|title=Elements of Finite Model Theory|year=2004|publisher=Springer|isbn=978-3-540-21202-7|pages=}}
* {{cite book|author1=Heinz-Dieter Ebbinghaus|author2=Jörg Flum|title=Finite Model Theory|year=1999|publisher=Springer|isbn=978-3-540-28787-2|edition=2nd|pages=123–124, 151–161, 220–235}}
* {{cite doi|10.1145/567752.567763}}
* {{cite doi|10.1007/978-1-4614-1168-0_10}}
* Nuutila, E., [http://www.cs.hut.fi/~enu/thesis.html Efficient Transitive Closure Computation in Large Digraphs.] Acta Polytechnica Scandinavica, Mathematics and Computing in Engineering Series No. 74, Helsinki 1995, 124 pages. Published by the Finnish Academy of Technology. ISBN 951-666-451-2, ISSN 1237-2404, UDC 681.3.
* {{cite book|author1=Abraham Silberschatz|author2=Henry Korth|author3=S. Sudarshan|title=Database System Concepts|year=2010|edition=6th|publisher=McGraw-Hill|isbn=978-0-07-352332-3}} [http://codex.cs.yale.edu/avi/db-book/db6/appendices-dir/c.pdf Appendix C] (online only)
* Foto N. Afrati, Vinayak Borkar, Michael Carey, Neoklis Polyzotis, Jeffrey D. Ullman, [http://www.edbt.org/Proceedings/2011-Uppsala/papers/edbt/a1-afrati.pdf Map-Reduce Extensions and Recursive Queries], EDBT 2011, March 22–24, 2011, Uppsala, Sweden, ISBN 978-1-4503-0528-0

== External links ==

* "[http://www.cs.sunysb.edu/~algorith/files/transitive-closure.shtml Transitive closure and reduction]", The Stony Brook Algorithm Repository, Steven Skiena .

Revisão das 13h49min de 9 de agosto de 2014

Na matemática, o fecho transitivo de uma relação binária R sobre um conjunto X é a relação transitiva R+ sobre o conjunto X de maneira que R+ contém R e R+ é mínimo (Lidl and Pilz 1998:337). Se a própria relação binária é transitiva, então o fecho transitivo é a própria relação; senão, o fecho transitivo é uma outra relação. Por exemplo, se X é um conjunto de aeroportos e x R y significa "existe um voo direto do aeroporto x para o aeroporto y", então o fecho transitivo de R sobre X é a relação R+: "é possível voar a partir de x para y em um ou mais vôos."

Relações transitivas e exemplos

Uma relação transitiva R sobre um conjunto X é transitiva se, para todo x,y,z em X, sempre que x R y e y R z então x R z. Exemplos de relações transitivas incluem a relação de igualdade em qualquer conjunto, a relação "menor ou igual que" em qualquer conjunto linearmente ordenado, e a relação "x nasceu antes de y" no conjunto de todas as pessoas. Simbolicamente, isso pode ser descrito como: se x < y ey < z, então x < z.

Um exemplo de uma relação intransitiva é "a cidade x é alcançável através de um voo direto a partir da cidade y" no conjunto de todas as cidades. Simplesmente por haver um voo direto de uma cidade para uma segunda, e também um vôo direto dessa segunda cidade para uma terceira, não implica em haver um voo direto da primeira cidade para a terceira. O fecho transitivo dessa relação é uma relação diferente, que é "existe uma sequência de vôos diretos que começa na cidade x e termina na cidade y". Toda relação pode ser estendida de maneira semelhante para uma relação transitiva.

Existência e descrição

Para qualquer relação R, o fecho transitivo de R sempre existe. Para comprovar isso, note que a interseção de qualquer família de relações transitivas é novamente transitiva. Além disso, existe ao menos uma relação transitiva contendo R,

Para conjunto finitos, podemos construir o fecho transitivo passo a passo, começando por R e adicionando arestas transitivas. Isso nos dá a ideia para a construção geral. Para qualquer conjunto X, podemos provar que o fecho transitivo é dado pela seguinte expressão

onde é a i-ésima potência de R, definida através de ind~ução por

e, para ,

onde representa a composição de relações.

Para mostrar que a definição de R+ mostrada acima é a menor relação transitiva contendo R, mostramos que ela contém R, que é transitiva, e que é o menor conjunto com ambas as características.

  • : contém contém todas , particularmente contém .
  • é transitiva: todo elemento de está em um dos , então deve ser transitivo pela seguinte razão: se e , então pela composição associativa, (logo, em ) por conta da definição de .
  • é mínima: Seja qualquer relação transitiva contendo , queremos mostrar que . Isso é suficiente para mostrar que , . Bem, já que contém , . E como é transitiva, para qualquer , de acordo com a construção de e que é transitivo. Logo, por indução, contém todo , e também contém .

Propriedades

A intersecção de duas relações transitivas é transitiva.

A união de duas relações transitivas não pode ser transitiva. Para preservar a transitividade, uma delas precisa manter o fecho transitivo. Isso ocorre, por exemplo, quando geramos a união de duas relações de equivalencia ou duas relações de pré-ordem. Para obter uma nova relação de equivalência ou pré-ordem uma precisa manter o fecho transitivo (reflexividade e simetria—no caso de relações de equivalência—são automáticas).

Na teoria dos grafos

Transitive closure constructs the output graph from the input graph.
Transitive closure constructs the output graph from the input graph.

Na ciência da computação, o conceito de fecho transitivo pode ser pensado como a construção de uma estrutura de dados que possibilita responder problemas de atingibilidade. Isso é, será possível chegar à um nó b, partindo de um nó a em um ou mais saltos? Uma relação binária apenas informa que esse nó a está conectado ao nó b, e que o nó b está conectado ao nó c, etc. Após o fecho transitivo ser construído, como mostrado na figura abaixo, em uma operação O(1) pode se determinar que o nó d é atingível a partir do nó a. A estrutura de dados é geralmente armazenada como uma matriz, então se matriz[1][4] = 1, significa que o nó 4 é atingível a partir do nó 1 e um ou mais saltos.

O fecho transitivo de um grafo direcionado acíclico (GDA) é a relação de atingibilidade do GDA e uma ordem parcial estrita. is the reachability relation of the DAG and a strict partial order.

Na lógica e na complexidade computacional

O fecho transitivo de uma relação binária não pode, geralmente, ser expresso em lógica de primeira ordem (LPO). Isso significa que não é possível escrever uma fórmula usando predicados R e T que serão satisfatíveis em qualquer modelo se e somente se T é o fecho transitivo de R.

Na teoria dos modelos finitos, lógica de primeira ordem (LPO) extendida com um operador de fecho transitivo é normalmente chamada lógica de fecho transitivo, e abreviada LPO(FT) ou apenas FT.

Na teoria da complexidade computacional, a classe NL corresponde precisamente ao conjunto de sentenças lógicas que podem ser expressas em FT. Isso acontece porque a propriedade do fecho transitivo tem uma relação próxima com o problema NL-Completo da conectividade st, para achar caminhos direcionados em um grafo. Similarmente, a classe L é de lógica de primeira ordem com fecho transitivo e comutativo. Quando o fecho transitivo é adicionado à lógica de segunda ordem, obtemos PSPACE.

Em linguagens de consulta à banco de dados

Desde os anos 1980 o Oracle database implementa uma extensão SQL prioritária CONNECT BY... START WITH que permite a computação de um fecho transitivo como parte de uma consulta. O padrão SQL 3 (1999) um um construtor mais generalizado WITH RECURSIVE permitindo fechos transitivos serem computados dentro do processador de consultas; em 2011 esse último foi implementado por IBM DB2, Microsoft SQL Server, e PostgreSQL, entretanto não pelo MySQL (Benedikt and Senellart 2011:189).

Datalog também implementa computações transitivamente fechadas. (Silberschatz et al. 2010:C.3.6).

Algoritmos

Algoritmos eficientes para computar o fecho transitivo de um grafo podem ser encontrados em Nuutila (1995). A técnica mais simples é provavelmente o Algoritmo de Floyd-Warshall. O métodos de pior caso mais rápidos, que não são praticamente viáveis, reduzem o problema à uma multiplicação de matrizes.


References

External links