A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas

Apresentações semelhantes


Apresentação em tema: "Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas"— Transcrição da apresentação:

1 Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas
Mario Henrique Adaniya

2 Estruturas de Dados Matriz de adjacências Lista de adjacências 1 2 3 4
5 1 2 5 3 4 1 5 4 2 3

3 Matriz de Adjacências X Listas de Adjacências
Testar 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 Listas de Adjacências Matriz de Adjacência Matriz de Adjacência Listas de Adjacências Listas de Adjacências

4 Ordenação Topológica Origem 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.

5 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.

6

7 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.

8 Impasse

9 Formalmente Um 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.

10 Exemplo

11 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). 

12 Fonte(s): A Ralo(s): F, E, D, B

13 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.

14 O momento crucial é a busca do vértice de grau de entrada zero (fonte)
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.

15 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.

16 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.

17 Melhores ordenações com ciclos
A,B,C,E,F; B,A,C,E,F.

18 Aplicações Problemas 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”.

19 Obrigado Luis Raphael Mareze Marcus Vinicius Lemos Chagas
Mario Henrique Adaniya


Carregar ppt "Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas"

Apresentações semelhantes


Anúncios Google