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

Apresentações semelhantes


Apresentação em tema: "Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU"— 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

2 Ordenação Topológica

3 Ordenação Topológica 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)

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?

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 0 1 4 3 2 5

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

7 Ordenação Topológica

8 Ordenação Topológica Uma aresta direcionada (u, v) indica que a atividade u tem que ocorrer antes da atividade v.

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.

10 Algoritmo de ordenação Topológica : eliminação de fontes
Algoritmo de Kahn Encontra os vértices “fonte” (com grau de entrada zero) e os insere em um conjunto S (uma fila) Ao menos um vértice desses deve existir se o grafo é acíclico 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 Remove da fila sucessivamente os vértices fontes Rotula-os em ordem de remoção e remove seus arcos

11 Algoritmo de Kahn 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

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 4 1 5 2 6 3 7

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.

15 Ordenação Topológica Algoritmo
Calcular o tempo de término de cada vértice utilizando a busca em profundidade 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

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)

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.

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.

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

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

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.

23 Vértice de Articulação

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”

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.

26 Bibliografia


Carregar ppt "Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU"

Apresentações semelhantes


Anúncios Google