ordenação topológica
DESCRIPTION
Ordenação Topológica. Luis Raphael Mareze Marcus Vinicius Lemos Chagas Mario Henrique Adaniya. 1. 2. 1. 2. 5. 2. 1. 3. 5. 4. 3. 3. 2. 4. 4. 2. 3. 5. 5. 4. 5. 4. 2. 1. Estruturas de Dados. Matriz de adjacências Lista de adjacências. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/1.jpg)
Luis Raphael MarezeMarcus Vinicius Lemos Chagas
Mario Henrique Adaniya
![Page 2: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/2.jpg)
Estruturas de Dados Matriz de
adjacênciasLista de adjacências1 2 3 4 5
1 0 1 0 0 1
2 1 0 1 1 1
3 0 1 0 1 0
4 0 1 1 0 1
5 1 1 0 1 0
1
5 4
2
3
1 2 5
2 1 5 3 43 2 4
4 2 5 3
5 4 1 2
![Page 3: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/3.jpg)
Matriz de Adjacências X Listas de AdjacênciasTestar se aresta está no grafo.Determinar o grau de um vértice.Menos memória em grafos pequenos.Menos memória em grafos grandes.Inserção ou remoção de aresta.Atravessar o grafo.Melhor na maioria dos problemas.
Matriz de Adjacência
Listas de Adjacências
Matriz de Adjacência
Listas de Adjacências
Matriz de Adjacência
Listas de Adjacências
Listas de Adjacências
![Page 4: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/4.jpg)
Ordenação TopológicaOrigem do nome “Ordenação Topológica”O conceito matemático Topologia - do grego
topo que significa “formas” e logia conhecida em nossa língua por “estudo” - é considerado o “estudo das formas” o qual possui várias subdivisões.
A designação desse nome continua a mesma, mesmo porque já é, historicamente, um termo vastamente utilizado em diversas áreas e aplicações. Uma mudança não seria relevante para aspectos práticos.
![Page 5: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/5.jpg)
A ordenação topológica especifica, em grafos orientados (dirigidos) acíclicos, uma ordenação linear de seus nós (vértices). De forma geral, se um grafo G = (V, E) possui um arco que sai do vértice u e incide em um vértice v, então u deve vir antes de v no resultado da ordenação topológica.
![Page 6: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/6.jpg)
![Page 7: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/7.jpg)
Um outro detalhe a ser dito é que devemos visualizar se o grafo em que desejamos “ordenar topologicamente” possui ou não ciclos. No caso de ocorrência de ciclos podemos observar que a ordenação linear não pode ser executada. Isso se deve ao fato de que vários impasses são criados em decorrência desses ciclos.
![Page 8: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/8.jpg)
Impasse
![Page 9: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/9.jpg)
FormalmenteUm conceito formalmente correto, seria que
uma ordenação topológica de um grafo direcionado e acíclico (G=(V,E)) é uma enumeração (v1,..,vn) do conjunto de vértices tal que
a < b sempre que o par vavb for um arco. Nesse caso, é importante frisar que, conforme a
figura abaixo, consideramos o arco vavb como uma aresta saindo do vértice a e incidindo no
vértice b.
![Page 10: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/10.jpg)
Exemplo
![Page 11: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/11.jpg)
Um vértice que tem grau de entrada nulo pode também ser chamado de fonte. De maneira análoga, vértices com grau de saída nulo são considerados um sorvedouro ou ralo.
Podemos observar que embora evidente, é relevante destacar que, analogamente ao exemplo acima, todo grafo que admite uma ordenação topológica contem pelo menos uma fonte (primeiro vértice da enumeração) e um sorvedouro (último vértice da ordenação).
![Page 12: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/12.jpg)
Fonte(s): ARalo(s): F, E, D, B
![Page 13: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/13.jpg)
Algoritmos O(n³)Os primeiros algoritmos de enumeração
topológica tinham como princípio os seguintes passos:
1º passo Calcular o grau de entrada/saída de todos os vértices.
2º passo Todos os vértices com menor grau de entrada são inseridos em uma lista (os primeiros a serem inseridos na lista são os com grau de entrada igual a zero)
3º passo São removidos do grafo os vértices inseridos na lista do passo anterior.
4º passo As arestas que saem destes vértices também são removidas.
5º passo Os outros vértices têm seus graus diminuídos. 6º passo Inicia-se o processo novamente até que o
conjunto de vértices do grafo esteja vazio.
![Page 14: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/14.jpg)
O momento crucial é a busca do vértice de grau de entrada zero (fonte). Se for usada uma matriz de adjacência, o tempo para procurar uma fonte é de O(n2). Como isso é repetido n vezes, o tempo total é em O(n3). Se for usada uma lista de adjacência, a situação melhora em algumas condições, como, por exemplo, em um grafo escasso (poucos nós). Em geral a complexidade será a mesma. O tempo de remoção e de visita das arestas não foi computado devido ao seu tempo linear O(1*n) que não afeta, consideravelmente, o tempo da execução.
![Page 15: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/15.jpg)
Algoritmos O(n)Um outro modo muito usado para a ordenação
topológica é utilizando o algoritmo de busca em profundidade em grafos (DFS). Esse modelo possui a mesma complexidade de um DFS, ou seja, tempo linear O(n), visto que a inserção dos vértices em uma lista é constante (O(1)).
Com o DFS temos uma enorme facilidade na implementação para encontrarmos ciclos indesejados, fator relevante, já que a ordenação topológica funciona somente em grafos acíclicos e dirigidos.
![Page 16: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/16.jpg)
Trabalhando com ciclos
Em algumas biografias existem até mesmo mudanças a fim de que a enumeração aceite a presença de ciclos e retorne a melhor ordem possível. Porém, esse conceito não deixa de fugir do foco principal da ordenação topológica, o qual não permite ciclos.
![Page 17: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/17.jpg)
Melhores ordenações com ciclos
A,B,C,E,F; B,A,C,E,F.
![Page 18: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/18.jpg)
AplicaçõesProblemas de ordenação topológica são comuns
na confecção de dicionários, bancos de dados, sistemas geográficos, metodologias de desenvolvimento de software, planilhas eletrônicas. Todos esses possuem forte dependência entre seus componentes, para tanto a ordenação topológica, como um algoritmo linear (em suas implementações com DFS) resolve em tempo satisfatório todas as necessidades desses “aplicativos”.
![Page 19: Ordenação Topológica](https://reader036.vdocuments.com.br/reader036/viewer/2022081420/568142e3550346895daf4167/html5/thumbnails/19.jpg)
Luis Raphael MarezeMarcus Vinicius Lemos Chagas
Mario Henrique Adaniya
http://web.sercomtel.com.br/marcusvlc