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

Slides:



Advertisements
Apresentações semelhantes
Grafos eulerianos 1.
Advertisements

Cortes (cut-sets)‏ 1.
Grafos Orientados (digrafos)
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
CC/EC/Mestrado Teoria dos Grafos Grafos Hamiltonianos.
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
2010/1 Teoria dos Grafos (INF 5037/INF2781) Grafos eulerianos.
Algoritmos em Grafos (Parte 2)
Antonio Dirceu Rabelo de Vasconcelos Filho
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos
Geometria Computacional Galeria de Arte
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Teoria dos Grafos Um grafo é um conjunto de pontos, chamados vértices, conectados por linhas, chamadas de arestas. A Teoria dos Grafos é o ramo da matemática.
Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS
Exercícios PAA- Grafos
Exercícios PAA- Grafos
Celso C. Ribeiro Caroline T. Rocha
Cortes (cut-sets)‏ 2010/2 Teoria dos Grafos (INF 5037/INF2781)‏ 1.
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Conectividade e Separabilidade
Pesquisa em profundidade
Problemas de fluxo numa rede
Grafos Grafo G = (V, E) V — conjunto de vértices
Estrutura de Dados e Algoritmos e Programação e Computadores II
Conexidade e Conectividade
ESTRUTURA E REPRESENTAÇÃO
Teoria dos Grafos – Aula 3 Árvores
Teoria dos Grafos Loana T. Nogueira Aula 5.
Árvores.
Arquivos Seqüenciais Inhaúma Neves Ferraz
Árvore Geradora de Peso Mínimo
Ronaldo Celso Messias Correia –
Programação Baseada em Objectos Desenho de TAD
Árvore Geradora Mínima
Ordenação Topológica Luis Raphael Mareze Marcus Vinicius Lemos Chagas
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Baseado em: The Algorithm Design Manual Steven S. Skiena
Algoritmos em Grafos.
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Exercícios PAA- Grafos
Salas de Matemática.
Celso C. Ribeiro Caroline T. Rocha
Operações com grafos União Exemplo
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Introdução e Busca Cega
Teoria dos Grafos Conectividade
Katia S. Guimarães Busca em Grafos Katia S. Guimarães
Problema do menor Caminho
Conceitos básicos em grafos
José Augusto Amgarten Quitzau
Conexidade 1.
Msc. Daniele Carvalho Oliveira
Katia S. Guimarães Busca em Grafos Katia S. Guimarães
Aula de Monitoria – Miniprova


Celso C. Ribeiro Caroline T. Rocha
Análise e Síntese de Algoritmos
Grafos Anjolina Grisi de Oliveira 2005
 Prof. Miguel Gabriel Prazeres de Carvalho 1. 2 Redes Sociais GPS Para o correio. Para Viajantes. Pesquisas Biológicas. Distribuição de Tarefas. Recomendações.
Grafos Prof. Miguel Gabriel Prazeres de Carvalho.
Transcrição da apresentação:

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

Ordenação Topológica

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)

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?

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

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

Ordenação Topológica

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

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.

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

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)

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

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

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.

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

Algoritmo de Tarjan

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)

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.

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.

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

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

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.

Vértice de Articulação

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”

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.

Bibliografia http://wiki.icmc.usp.br/images/9/93/Alg2_05.Grafos_ordenacaotopologica.pdf http://pt.wikipedia.org/wiki/Ordena%C3%A7%C3%A3o_topol%C3%B3gica