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

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

Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1.

Apresentações semelhantes


Apresentação em tema: "Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1."— Transcrição da apresentação:

1 Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

2 Ordenação Topológica 2

3 Consideremos grafos dirigidos acíclicos Um digrafo é acíclico se não tem ciclos. Digrafos acíclicos também são conhecidos como DAGs (= directed acyclic graphs) 3

4 Digrafo Acíclico Dígrafos que não tem ciclos, como: Hierarquia de herança entre classes em orientação a objetos Pré-requisitos entre disciplinas Restrições de cronograma entre tarefas de um projeto Toda árvore direcionada é um dígrafo acíclico Todo caminho num dígrafo acíclico é simples, não tem repetição de vértices Como saber se um dígrafo é acíclico? 4

5 Ordenação Topológica Grafos direcionados acíclicos podem ser usados para indicar precedência de eventos O evento 1 só pode ocorrer após o evento 0 O evento 4 pode ocorrer antes do evento

6 Ordenação Topológica É uma ordenação nos vértices de forma que todas as arestas vão da esquerda para a direita. Com a ordenação Topológica: Verificar se um grafo é bicolorível Detecção de ciclos Caminhos Mínimos Conectividade 6

7 Ordenação Topológica 7

8 Uma aresta direcionada (u, v) indica que a atividade u tem que ocorrer antes da atividade v. 8

9 Algoritmos de ordenação topológica Ao receber um Dígrafo G, um algoritmo de ordenação topológica deve devolver: Uma ordenação topológica de G, ou Um ciclo de G. 9

10 Algoritmo de ordenação Topológica : eliminação de fontes Algoritmo de Kahn 1. Encontra os vértices fonte (com grau de entrada zero) e os insere em um conjunto S (uma fila) 1. Ao menos um vértice desses deve existir se o grafo é acíclico 2. Partindo do princípio que, se os vértices fonte e seus arcos de saída forem removidos, o grafo remanescente é dígrafo acíclico 1. Remove da fila sucessivamente os vértices fontes 2. Rotula-os em ordem de remoção e remove seus arcos 10

11 Algoritmo de Kahn 11 L Lista vazia que irá conter os elementos ordenados S Conjunto de todos os nós sem arestas de entrada enquanto S é não-vazio faça remova um nodo n de S insira n em L para cada nodo m com uma aresta de n até m faça remova a aresta do grafo se m não tem mais arestas de entrada então insira m em S se o grafo tem arestas então escrever mensagem de erro (grafo tem pelo menos um ciclo) senão escrever mensagem (ordenação topológica proposta: L)

12 Algoritmo de Tarjan Se uma aresta de retorno é encontrada na BFS então o grafo possui um ciclo. Um grafo é acíclico sse na BFS não for encontrada nenhuma aresta de retorno. Busca em profundidade é utilizada para determinar se o grafo orientado é acíclico e então determinar uma ordenação topológica 12

13 Ordenação Topológica Um grafo orientado é acíclico se, e somente se, não são encontradas arestas de retorno durante uma busca em profundidade

14 Algoritmo de Tarjan Iniciando a visita em v, visite todos os seus adjacentes (v, w) chamando a função DFS recursivamente para w. Após finalizar a lista de adjacências de cada vértice v sendo processado, adicione-o na ordem topológica. 14

15 Ordenação Topológica Algoritmo 1. Calcular o tempo de término de cada vértice utilizando a busca em profundidade 2. A medida que é calculado seu tempo de término, insere-se o vértice no inicio de uma lista Os vértices ordenados topologicamente aparecem em ordem inversa aos seus tempos de término

16 Algoritmo de Tarjan 16

17 Ordenação Topológica Cada vértice é rotulado em ordem inversa à ordem em que eles são marcados completamente explorados. Existe uma aresta de x para y se a tarefa x depende da tarefa y (a tarefa y deve ser concluída antes da tarefa x poder ser iniciada) 17

18 Caminhos Hamiltonianos Se numa ordenação todos os pares de vértices consecutivos forem conectados por arestas, essas formam um caminho hamiltoniano dirigido. Se existe um caminho Hamiltoniano a ordenação topológica é única. Caso contrário dois vértices podem ser trocados (se não conectados por arestas) formando outras ordenações topológicas. É possível testar em tempo polinomial se existe uma ordenação única e portanto um caminho hamiltoniano em um digrafo. 18

19 Exercícios Os dois dígrafos representados são DAGs? Escreva uma função que recebe um digrafo e diga se ele é ou não um DAG Sejam s e t dois vértices de um DAG. Suponha que existe um caminho de s a t. Mostre que não existe caminho t a s. 19

20 Exercícios Dê quatro ordenações topológicas diferentes do dígrafo cujos arcos são: Dê um ordenação topológica do grafo 20

21 Vértice de Articulação (vértice de corte) 21

22 Vértices de Articulação É um vértice de um grafo conexo cuja remoção torna o grafo desconexo. Qualquer grafo que contenha um vértice de articulação é frágil. A conectividade de um grafo é a quantidade de vértices necessários para desconectar o grafo. Conectividade é uma importante medida de robustez no projeto de rede. 22

23 Vértice de Articulação 23

24 Grafo biconexo Um grafo com três ou mais vértices é biconexo se for conexo, sem articulações e tiver três ou mais vértices Um grafo com três ou mais vértices é biconexo sse cada par de seus vértices estiver ligados por dois caminhos internamente disjuntos (sem vértices em comum). Explica o nome biconexo 24

25 Exercício É verdade que todo grafo sem articulações não tem ponte? É verdade que todo grafo sem pontes não tem articulação? O grafo 3 por 3 do bispo tem dois componentes. Mostre que apenas um é biconexo. Exiba um grafo dotado da seguinte propriedade: quaisquer 2 vértices do grafo pertencem a um mesmo circuito mas há 3 vértices que não pertencem a um mesmo circuito. 25

26 Bibliografia fos_ordenacaotopologica.pdf fos_ordenacaotopologica.pdf %A3o_topol%C3%B3gica %A3o_topol%C3%B3gica 26


Carregar ppt "Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1."

Apresentações semelhantes


Anúncios Google