52
1 Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Teoria dos Grafos Jorge Figueiredo Visão Geral do Curso Visão Geral do Curso Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Agenda Apresentação do curso Introdução Informal Motivação Apresentação do curso Introdução Informal Motivação Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Apresentação do Curso Homepage (http://www.dsc.ufcg.edu.br/~abrantes/tg.html) Lista de discussão ([email protected]) Pré-requisito: Teoria dos conjuntos – Programação Homepage (http://www.dsc.ufcg.edu.br/~abrantes/tg.html) Lista de discussão ([email protected]) Pré-requisito: Teoria dos conjuntos – Programação Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Apresentação do Curso Horário e Sala Auditório Mário Hattori - DSC – S142 Horário de dúvidas: Sob demanda, com hora marcada. Horário e Sala Auditório Mário Hattori - DSC – S142 Horário de dúvidas: Sob demanda, com hora marcada. Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Avaliação Mini-provas (pelo menos 4 por nota parcial) Reposição: Possível deixar 20% das mini-provas (por nota parcial) Prova Final: 07/04/2008 Mini-provas (pelo menos 4 por nota parcial) Reposição: Possível deixar 20% das mini-provas (por nota parcial) Prova Final: 07/04/2008 Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Bibliografia Grafos e Algoritmos Computacionais, de J.L. Szwarcfiter. Fundamentos Matemáticos para a Computação, de J.L. Gersting. Introduction to Graph Theory, de R. J. Wilson. Discrete Mathematics with Graph Theory, de E.G. Goodaire e M.M. Parmenter. Graph Theory, de R. Diestel. (versão eletrônica disponível) Grafos e Algoritmos Computacionais, de J.L. Szwarcfiter. Fundamentos Matemáticos para a Computação, de J.L. Gersting. Introduction to Graph Theory, de R. J. Wilson. Discrete Mathematics with Graph Theory, de E.G. Goodaire e M.M. Parmenter. Graph Theory, de R. Diestel. (versão eletrônica disponível)

Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

  • Upload
    lekien

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

1

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Jorge Figueiredo

Visão Geral do CursoVisão Geral do Curso

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Agenda

• Apresentação do curso• Introdução Informal• Motivação

• Apresentação do curso• Introdução Informal• Motivação

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Apresentação do Curso

• Homepage (http://www.dsc.ufcg.edu.br/~abrantes/tg.html)• Lista de discussão ([email protected])• Pré-requisito:

– Teoria dos conjuntos– Programação

• Homepage (http://www.dsc.ufcg.edu.br/~abrantes/tg.html)• Lista de discussão ([email protected])• Pré-requisito:

– Teoria dos conjuntos– Programação

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Apresentação do Curso

• Horário e Sala– Auditório Mário Hattori - DSC– S142

• Horário de dúvidas:– Sob demanda, com hora marcada.

• Horário e Sala– Auditório Mário Hattori - DSC– S142

• Horário de dúvidas:– Sob demanda, com hora marcada.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Avaliação

• Mini-provas (pelo menos 4 por nota parcial)• Reposição:

– Possível deixar 20% das mini-provas (por nota parcial)• Prova Final: 07/04/2008

• Mini-provas (pelo menos 4 por nota parcial)• Reposição:

– Possível deixar 20% das mini-provas (por nota parcial)• Prova Final: 07/04/2008

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Bibliografia

• Grafos e Algoritmos Computacionais, de J.L. Szwarcfiter.• Fundamentos Matemáticos para a Computação, de J.L.

Gersting.• Introduction to Graph Theory, de R. J. Wilson.• Discrete Mathematics with Graph Theory, de E.G. Goodaire

e M.M. Parmenter.• Graph Theory, de R. Diestel. (versão eletrônica disponível)

• Grafos e Algoritmos Computacionais, de J.L. Szwarcfiter.• Fundamentos Matemáticos para a Computação, de J.L.

Gersting.• Introduction to Graph Theory, de R. J. Wilson.• Discrete Mathematics with Graph Theory, de E.G. Goodaire

e M.M. Parmenter.• Graph Theory, de R. Diestel. (versão eletrônica disponível)

Page 2: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

2

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Introdução Informal

• Por que estudar grafos?– Um grande número de problemas, nas mais diversas

áreas da Ciência da Computação, podem ser vistos comoproblemas de grafos.

• Em muitos casos, basta resolver a seguinte questão: como expressar o meu problema como um problemade grafos?

– Poderosa ferramenta matemática com soluções prontaspra uso.

• Por que estudar grafos?– Um grande número de problemas, nas mais diversas

áreas da Ciência da Computação, podem ser vistos comoproblemas de grafos.

• Em muitos casos, basta resolver a seguinte questão: como expressar o meu problema como um problemade grafos?

– Poderosa ferramenta matemática com soluções prontaspra uso.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

O Que São Grafos?

• Ferramenta para resolver problemas. • Ferramenta de modelagem.• Estrutura de dados.• Ferramenta utilizada na abstração de problemas

computacionais.

• Ferramenta para resolver problemas. • Ferramenta de modelagem.• Estrutura de dados.• Ferramenta utilizada na abstração de problemas

computacionais.

Ferramenta fundamental para a ciência da computação.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

As Pontes de Königsberg

•Resolvido em 1736 por Leonhard Euler.•Marco inicial da Teoria dos Grafos.•É possível sair de uma das ilhas, passar uma única vez emcada uma das pontes e retornar ao ponto de origem?

•Resolvido em 1736 por Leonhard Euler.•Marco inicial da Teoria dos Grafos.•É possível sair de uma das ilhas, passar uma única vez emcada uma das pontes e retornar ao ponto de origem?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

As Pontes de Königsberg

• Necessário um modelo para representar o problema daspontes.

• Abstrair detalhes irrelevantes:– Área de cada ilha.– Formato de cada ilha.– Tipo da ponte, etc.

• Euler generalizou o problema a partir de um modelo de grafos.

• Necessário um modelo para representar o problema daspontes.

• Abstrair detalhes irrelevantes:– Área de cada ilha.– Formato de cada ilha.– Tipo da ponte, etc.

• Euler generalizou o problema a partir de um modelo de grafos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

O Problema das 3 Casas

• É possível conectar os 3 serviços em cada uma das casassem haver cruzamento de tubulação?

• É possível conectar os 3 serviços em cada uma das casassem haver cruzamento de tubulação?

A Teoria dos Grafos mostra que não é possível!!!

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Coloração de Mapas

•Com quantas cores é possível colorir o mapa da RegiãoNordeste?

–Estados vizinhos não podem ter a mesma cor.

•Com quantas cores é possível colorir o mapa da RegiãoNordeste?

–Estados vizinhos não podem ter a mesma cor.

Page 3: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

3

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Coloração de Mapas

•O Teorema das 4 cores (1977) garante que com 4 cores épossível colorir qualquer mapa planar.•O Teorema das 4 cores (1977) garante que com 4 cores épossível colorir qualquer mapa planar.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Modelagem com Grafos

• Estamos interessados em entidades e as relações entreelas.

• Quem são elas nos problemas apresentados?• Como representar no modelo?

– Forma matemática.– Forma gráfica.

• Estamos interessados em entidades e as relações entreelas.

• Quem são elas nos problemas apresentados?• Como representar no modelo?

– Forma matemática.– Forma gráfica.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Modelagem com Grafos

•A forma mais simples de representar graficamente:–Pontos (vértices) e linhas (arestas).

•A forma mais simples de representar graficamente:–Pontos (vértices) e linhas (arestas).

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Modelagem com Grafos

• No problema das casas:– Vértices = casas + serviços.– Arestas = tubulação entre casa e serviço.

• No problema de coloração de mapas:– Vértices = estados.– Arestas = relacionam estados vizinhos.

• No problema das casas:– Vértices = casas + serviços.– Arestas = tubulação entre casa e serviço.

• No problema de coloração de mapas:– Vértices = estados.– Arestas = relacionam estados vizinhos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos no Mundo Real

• Redes de computadores.• Conexão de vôos aéreos.• Restrições de precedência.• Fluxo de um programa.• Mais exemplos?

• Redes de computadores.• Conexão de vôos aéreos.• Restrições de precedência.• Fluxo de um programa.• Mais exemplos?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Programa a ser cumprido

1. Conceitos Básicos.2. Representação de Grafos.3. Caminhos e circuitos.4. Grafos dirigidos.5. Grafos valorados.6. Conectividade, Planaridade e Coloração.7. Árvores.8. Busca em Grafos.9. Fluxo em Redes.10.Emparelhamento.

1. Conceitos Básicos.2. Representação de Grafos.3. Caminhos e circuitos.4. Grafos dirigidos.5. Grafos valorados.6. Conectividade, Planaridade e Coloração.7. Árvores.8. Busca em Grafos.9. Fluxo em Redes.10.Emparelhamento.

Page 4: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

4

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algumas Dicas

• Participem em sala de aula. Façam perguntas.– Isso ajuda a conhecer o que a turma não está entendendo– Diminua o ritmo de apresentação dos slides, se for o

caso.• Não deixem mini-prova pra reposição.• Façam as listas de exercícios:

– Resolvam, se possível, novos problemas. Isso requer insight na percepção do mapeamento para grafos. Consolidam os algoritmos estudados em sala de aula.

• Leiam atentamente as questões das mini-provas:– Muita gente erra pelo fato de não entender o que foi

pedido.

• Participem em sala de aula. Façam perguntas.– Isso ajuda a conhecer o que a turma não está entendendo– Diminua o ritmo de apresentação dos slides, se for o

caso.• Não deixem mini-prova pra reposição.• Façam as listas de exercícios:

– Resolvam, se possível, novos problemas. Isso requer insight na percepção do mapeamento para grafos. Consolidam os algoritmos estudados em sala de aula.

• Leiam atentamente as questões das mini-provas:– Muita gente erra pelo fato de não entender o que foi

pedido.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Definições e Conceitos Básicos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Definições

• Dois tipos de elementos:– Vértices ou nós.– Arestas.

• Dois tipos de elementos:– Vértices ou nós.–– ArestasArestas..

v3

v2v4v1

v5 v6

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafo Simples

G = (V, E)V é um conjunto finito não-vazio de vértices.E é um conjunto finito de arestas.Se e ∈ E, é um conjunto da forma:

e = { v, w} = vw = wv, onde v,w ∈ V.e é incidente a v e w.v e w são adjacentes ou vizinhos.

G = (V, E)V é um conjunto finito não-vazio de vértices.E é um conjunto finito de arestas.Se e ∈ E, é um conjunto da forma:

e = { v, w} = vw = wv, onde v,w ∈ V.e é incidente a v e w.v e w são adjacentes ou vizinhos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafo Simples

v3

v2v4v1

v5 v6

e1

V = {v1, v2, v3, v4, v5, v6}

E = {v1v2, v1v3, v2v3, v2v4, v2v5, v3v4}

e1 é incidente a v2 e v5

v1, v3, v4 e v5 são adjacentes a v2

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Graus de Vértices

• Grau de um vértice v (deg(v)) é o número de arestas queincidem em v.– Vértice ímpar.– Vértice par.– Vértice isolado.

• Um grafo é regular (k-regular) se todos os seus vértices tem o mesmo grau (k).

• Seqüência de graus de um grafo consiste em escrever emordem crescente os graus de seus vértices.

• Grau de um vértice v (deg(v)) é o número de arestas queincidem em v.– Vértice ímpar.– Vértice par.– Vértice isolado.

• Um grafo é regular (k-regular) se todos os seus vértices tem o mesmo grau (k).

• Seqüência de graus de um grafo consiste em escrever emordem crescente os graus de seus vértices.

Page 5: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Graus de Vértices

v3

v2v4v1

v5 v6

e1

v6 é um vértice isolado. deg(v6) = 0

v2 é um vértice par. deg(v2) = 4

v5 é um vértice ímpar. deg(v5) = 1

Seqüência de graus = 0, 1, 2, 2, 3, 4

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Outros Tipos de Grafos

• Pseudo-grafos:– Multigrafos.– Grafos com auto-laços.

• Grafos dirigidos.• Não existe terminologia padronizada.

• Pseudo-grafos:– Multigrafos.– Grafos com auto-laços.

• Grafos dirigidos.• Não existe terminologia padronizada.

Vamos usar o termo grafo para representar grafos finitos, não dirigidos, com auto-laços e múltiplas arestas.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

v3

v2v4v1

v5 v6

e1

deg(v4) = 4deg(v3) = 5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Proposição de Euler

•A partir do conceito de adjacência e graus de vértices.•Prova é intuitiva.•Como conseqüência: número de vértices ímpares é par.

•A partir do conceito de adjacência e graus de vértices.•Prova é intuitiva.•Como conseqüência: número de vértices ímpares é par.

Proposição de Euler:

i 1

n

deg vi 2 E

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

v3

v2v4v1

v5 v6

Σ deg(vi) = 2 + 4 + 3 + 2 + 1 + 0 = 12 = 2 x 6

№ de vértices ímpares = 2 = v3 e v5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Isomorfismo de Grafos

• Dois grafos são isomórficos:– São essencialmente iguais.– Correspondência entre os vértices e arestas.

• Sejam G1= (V1, E1) e G2 = (V2, E2):– G1 ≈ G2, se existir uma bijeção f: V1 → V2:

• Se vw é uma aresta de E1, então f(v)f(w) é aresta de E2.

• Toda aresta em E2 tem a forma de f(v)f(w) paraalguma aresta vw ∈ E1.

• Dois grafos são isomórficos:– São essencialmente iguais.– Correspondência entre os vértices e arestas.

• Sejam G1= (V1, E1) e G2 = (V2, E2):– G1 ≈ G2, se existir uma bijeção f: V1 → V2:

• Se vw é uma aresta de E1, então f(v)f(w) é aresta de E2.

• Toda aresta em E2 tem a forma de f(v)f(w) paraalguma aresta vw ∈ E1.

Page 6: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

6

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Isomorfismo de Grafos

u v w

x y z

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Isomorfismo de Grafos

u v w

x y z

f(u) = azul, f(v) = roxo, f(w) = vermelhof(x) = verde, f(y) = amarelo, f(z) = rosa

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Isomorfismo de Grafos

• Isomorfismo preserva:– Simetria: G1 ≈ G2 ↔ G2 ≈ G1.– Reflexividade: G ≈ G.– Transitividade: G1 ≈ G2 e G2 ≈ G3 → G1 ≈ G3.

• Proposições válidas se G1 ≈ G2:– G1 e G2 têm o mesmo número de vértices.– G1 e G2 têm a mesma seqüência de graus.– G1 e G2 têm o mesmo número de arestas.

• Isomorfismo preserva:– Simetria: G1 ≈ G2 ↔ G2 ≈ G1.– Reflexividade: G ≈ G.– Transitividade: G1 ≈ G2 e G2 ≈ G3 → G1 ≈ G3.

• Proposições válidas se G1 ≈ G2:– G1 e G2 têm o mesmo número de vértices.– G1 e G2 têm a mesma seqüência de graus.– G1 e G2 têm o mesmo número de arestas.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Subgrafos

• G1 = (V1, E1) é subgrafo de G2 = (V2, E2) sss:– V1 é subconjunto de V2; e,– E1 é subconjunto de E2.

• Subgrafos podem ser obtidos através da remoção de arestase vértices.

• G1 = (V1, E1) é subgrafo de G2 = (V2, E2) sss:– V1 é subconjunto de V2; e,– E1 é subconjunto de E2.

• Subgrafos podem ser obtidos através da remoção de arestase vértices.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Subgrafos

u w

x y z

u v w

x y z

u v w

x y z

G1 G2 G3

G2 = G1 \ {uz}G3 = G1 \ {v}

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Completos e nulos

• Grafo nulo é aquele em que E = Ø.• Um grafo simples é completo se qualquer par de vértices

distintos é adjacente.– Grafo simples completo de n vértices é dito Kn.

• Grafo nulo é aquele em que E = Ø.• Um grafo simples é completo se qualquer par de vértices

distintos é adjacente.– Grafo simples completo de n vértices é dito Kn.

K3

K4

K5

Page 7: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

7

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Bipartidos

• Grafo bipartido é aquele em que V pode ser dividido em doissubconjuntos disjuntos não vazios V1 e V2.– Cada aresta conecta um vértice de V1 e um vértice de V2.

• Grafo bipartido completo: cada um dos elementos de V1 éadjacente a cada um dos elementos de V2.

• Grafo bipartido é aquele em que V pode ser dividido em doissubconjuntos disjuntos não vazios V1 e V2.– Cada aresta conecta um vértice de V1 e um vértice de V2.

• Grafo bipartido completo: cada um dos elementos de V1 éadjacente a cada um dos elementos de V2.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Bipartidos

u v w

x y z

K3,3

V1 = {u, v, w}V2 = {x, y, z}

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Complemento de um Grafo

• Seja G um grafo simples:– G é complemento de G se:

• V = V; e,• Dois vértices são adjacentes em G se e somente se

eles não são adjacentes em G.

• Seja G um grafo simples:– G é complemento de G se:

• V = V; e,• Dois vértices são adjacentes em G se e somente se

eles não são adjacentes em G.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

1. Considere as 8 primeiras letras do seu nome. Construa um grafo simples em que:

• Toda vogal é adjacente a toda consoante.• Nenhuma vogal é adjacente a outra vogal.• Nenhum consoante é adjacente a outra consoante.

a) Defina formalmente esse grafo.b) Determine o complemento desse grafo.c) É um grafo bipartido? Justifique.

1. Considere as 8 primeiras letras do seu nome. Construa um grafo simples em que:

• Toda vogal é adjacente a toda consoante.• Nenhuma vogal é adjacente a outra vogal.• Nenhum consoante é adjacente a outra consoante.

a) Defina formalmente esse grafo.b) Determine o complemento desse grafo.c) É um grafo bipartido? Justifique.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

1. Você e seu amigo retornam das férias e são recebidos no aeroporto pelas mães e por duas irmãs do seu amigo. Após troca de abraços, cada uma das (outras) cinco pessoas lhe fala o número de abraços que deu. Curiosamente, todos os números são diferentes. Assumindo que:– Você e seu amigo não se abraçaram.– A mãe de vocês não se abraçaram.– As irmãs não se abraçaram.– Duas mesmas pessoas se abraçaram, no máximo, uma vez.

Responda:1. Quantas pessoas você abraçou?2. Quantas pessoas seu amigo abraçou?

1. Você e seu amigo retornam das férias e são recebidos no aeroporto pelas mães e por duas irmãs do seu amigo. Após troca de abraços, cada uma das (outras) cinco pessoas lhe fala o número de abraços que deu. Curiosamente, todos os números são diferentes. Assumindo que:– Você e seu amigo não se abraçaram.– A mãe de vocês não se abraçaram.– As irmãs não se abraçaram.– Duas mesmas pessoas se abraçaram, no máximo, uma vez.

Responda:1. Quantas pessoas você abraçou?2. Quantas pessoas seu amigo abraçou?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

1. Hoje à noite tem quatro jogos na rodada do Campeonato Brasileiro. Antes das partidas, comentaristas de três jornais deram seu palpite sobre quem venceria. São eles:

• Diário da Bola - São Paulo, Corinthians, Flamengo e Vasco. • Folha da Arquibancada - Palmeiras, Santos, Flamengo e

São Paulo. • O Pênalti - Cruzeiro, Corinthians, Santos e São Paulo. Nenhum jornal apostou que o Grêmio venceria.

Quem joga contra quem?

1. Hoje à noite tem quatro jogos na rodada do Campeonato Brasileiro. Antes das partidas, comentaristas de três jornais deram seu palpite sobre quem venceria. São eles:

• Diário da Bola - São Paulo, Corinthians, Flamengo e Vasco. • Folha da Arquibancada - Palmeiras, Santos, Flamengo e

São Paulo. • O Pênalti - Cruzeiro, Corinthians, Santos e São Paulo. Nenhum jornal apostou que o Grêmio venceria.

Quem joga contra quem?

Page 8: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

8

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

1. Se G é um grafo r-regular com n vértices e m arestas, expresse m em função de n e r.

2. Qual o número de arestas de um grafo completo com 6 vértices?

3. Determine o complemento de um K6.

1. Se G é um grafo r-regular com n vértices e m arestas, expresse m em função de n e r.

2. Qual o número de arestas de um grafo completo com 6 vértices?

3. Determine o complemento de um K6.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Representação de Grafos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Representação de Grafos

• Representação gráfica:– Útil na prática.– Não é adequada para representar internamente (em um

computador) dados sobre a estrutura de grafos.• Várias formas de representar um grafo:

– Listas de Adjacência.– Matriz de Adjacência.– Matriz de Incidência.

• Representação gráfica:– Útil na prática.– Não é adequada para representar internamente (em um

computador) dados sobre a estrutura de grafos.• Várias formas de representar um grafo:

– Listas de Adjacência.– Matriz de Adjacência.– Matriz de Incidência.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Listas de Adjacência

• Consiste de um array Adj de |V| listas, um para cada vérticede V.

• Para cada u em V, Adj[u] consiste de todos os vértices de Gadjacentes a u.

• Vértices armazenados de forma arbitrária na lista.• Também pode ser utilizada no caso de grafos dirigidos.

• Consiste de um array Adj de |V| listas, um para cada vérticede V.

• Para cada u em V, Adj[u] consiste de todos os vértices de Gadjacentes a u.

• Vértices armazenados de forma arbitrária na lista.• Também pode ser utilizada no caso de grafos dirigidos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1

3

45

2 52

51

42

23

41

3 4

5

2

1

2

3

4

5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Lista de Adjacência

• Forma compacta de representar grafos esparsos.• Utilizada com outras tipos de grafos.• Ineficiente para determinar se vw está no grafo.

• Forma compacta de representar grafos esparsos.• Utilizada com outras tipos de grafos.• Ineficiente para determinar se vw está no grafo.

Page 9: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

9

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Matriz de Adjacência

• Requer que os vértices sejam numerados arbitrariamente de 1, 2, ..., |V|.

• Matriz A= (aij), de ordem |V| x |V|:– aij = 1, se (i, j) ∈ E– aij = 0, caso contrário

• Requer que os vértices sejam numerados arbitrariamente de 1, 2, ..., |V|.

• Matriz A= (aij), de ordem |V| x |V|:– aij = 1, se (i, j) ∈ E– aij = 0, caso contrário

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1

3

45

2

0 1 0 0 11 0 1 1 1

0 1 1 0 10 1 0 1 0

1 1 0 1 0

1 2 3 4 512345

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Matriz de Adjacência

• Preferível em grafos pequenos.• Requer apenas um bit por entrada.• Válido também com outros tipos de grafos. Exemplo: grafos

ponderados.• O(V2).

• Preferível em grafos pequenos.• Requer apenas um bit por entrada.• Válido também com outros tipos de grafos. Exemplo: grafos

ponderados.• O(V2).

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Matriz de Incidência

• Matriz B= (bij), de ordem |V| x |E|:– bij = 1, se vértice vi e aresta ej forem incidentes– bij = 0, caso contrário

• Matriz B= (bij), de ordem |V| x |E|:– bij = 1, se vértice vi e aresta ej forem incidentes– bij = 0, caso contrário

1

3

45

2

1 1 0 0 0 0 00 1 1 0 1 1 0

0 0 0 1 1 0 10 0 0 0 0 1 1

1 0 1 1 0 0 0

1 2 3 4 5 6 712345

e1

e2

e3

e4

e5

e6

e7

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Verificando Isomorfismo

• Sejam A1 e A2 as matrizes de adjacência de G1 e G2. Se G1e G2 são isomórficos:– PA2PT = A1– P é uma matriz de permutação.

• Sejam A1 e A2 as matrizes de adjacência de G1 e G2. Se G1e G2 são isomórficos:– PA2PT = A1– P é uma matriz de permutação.

Teorema: Dois Grafos são isomórficos sss seus vértices podem ser rotulados de tal forma que as correspondentes matrizes de adjacências são iguais.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

v1 v4

v2 v3

u1 u3

u2 u4

G1 G2

0 1 0 11 0 1 00 1 0 11 0 1 0

A1=0 0 1 10 0 1 11 1 0 01 1 0 0

A2=

Page 10: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

10

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 0 0 00 0 0 10 1 0 00 0 1 0

P =

Se fizermos: u1 → v1; u2 → v3; u3 → v4; u4 →v2.

Teorema: Dois Grafos rotulados G1 e G2, com respectivas matrizes A1 e A2, são isomórficos sss A2 = PA1P

T, para alguma matriz de permutação P.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Conjunto Independente de Vértices, Clique e Cobertura de Vértices

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conjunto Independente de Vértices

• Seja um grafo G= (V, E):

– Um conjunto independente de vértices VIND de G é um subconjunto de V em que não existe nenhuma aresta entrequalquer par de elementos de VIND.

• Seja um grafo G= (V, E):

– Um conjunto independente de vértices VIND de G é um subconjunto de V em que não existe nenhuma aresta entrequalquer par de elementos de VIND.

Grafo G Conjunto Independente de G

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conjunto Independente de Vértices

• VIND é máximo se não existe um VIND’ tal que |VIND’| > |VIND|.

• VIND é maximal se não existe um VIND’ tal que VIND’ ⊃ VIND.

• O conjunto independente do exemplo abaixo é máximo? Émaximal?

• VIND é máximo se não existe um VIND’ tal que |VIND’| > |VIND|.

• VIND é maximal se não existe um VIND’ tal que VIND’ ⊃ VIND.

• O conjunto independente do exemplo abaixo é máximo? Émaximal?

Grafo G Conjunto Independente de G

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conjunto Independente de Vértice

Exercício 1:

• Encontre no grafo abaixo um Conjunto Independente Maximal que não é máximo. Qual a cardinalidade do ConjuntoIndependente máximo?

Exercício 1:

• Encontre no grafo abaixo um Conjunto Independente Maximal que não é máximo. Qual a cardinalidade do ConjuntoIndependente máximo?

A B C D

E F G H

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conjunto Independente de Vértice

Exercício 2:

• Considere o algoritmo abaixo. Ele resolve o problema do conjunto independente máximo?

Exercício 2:

• Considere o algoritmo abaixo. Ele resolve o problema do conjunto independente máximo?

CINDMax1(G)CIND ← ∅while ∃v ∈ V-CIND | CIND ∪ {v} é independente do

CIND ← CIND ∪ {v}return CIND

Page 11: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

11

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conjunto Independente de Vértice

Exercício 3:

• Considere o algoritmo abaixo. Ele resolve o problema do conjunto independente máximo?

Exercício 3:

• Considere o algoritmo abaixo. Ele resolve o problema do conjunto independente máximo?

CINDMax2(G)CIND ← ∅Y ← Vwhile Y ≠ ∅ do

escolher v ∈ V, com |N(v)| mínimoCIND ← CIND ∪ {v}Y ← Y – {v}Y ← Y – N(v)

return CIND

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Cobertura de Vértices

• Seja um grafo G= (V, E):

– Uma cobertura de vértices VCOB de G é um subconjunto de V em que para qualquer aresta (u, v) ∈ E, u ∈VCOB ou v ∈VCOB.

• Seja um grafo G= (V, E):

– Uma cobertura de vértices VCOB de G é um subconjunto de V em que para qualquer aresta (u, v) ∈ E, u ∈VCOB ou v ∈VCOB.

Duas possíveis cobertura de vértices de G

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Clique

• Seja um grafo G= (V, E):– Um clique VCLQ de G é um subconjunto de V, em que

quaisquer dois vértices u, v ∈ VCLQ, a aresta (u, v) ∈ E.

• Seja um grafo G= (V, E):– Um clique VCLQ de G é um subconjunto de V, em que

quaisquer dois vértices u, v ∈ VCLQ, a aresta (u, v) ∈ E.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

• Não existe nenhum algoritmo de tempo polinomial que resolva estes problemas.

• É possível, entretanto, verificar em tempo polinomial se um determinado conjunto de vértices é um conjunto independente, um clique ou uma cobertura de vértices.

• Um conjunto independente de G é um clique do complemento de G.

• Não existe nenhum algoritmo de tempo polinomial que resolva estes problemas.

• É possível, entretanto, verificar em tempo polinomial se um determinado conjunto de vértices é um conjunto independente, um clique ou uma cobertura de vértices.

• Um conjunto independente de G é um clique do complemento de G.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

• A Vila de Grafos é uma área que consiste de um grande número de ruas retilíneas que ligam pequenas praças. Um guarda postado em uma praça é capaz de vigiar todas as ruas que saem da praça. Qual o número mínimo guardas necessário para vigiar toda a Vila? Resolva usando grafos.

• A Vila de Grafos é uma área que consiste de um grande número de ruas retilíneas que ligam pequenas praças. Um guarda postado em uma praça é capaz de vigiar todas as ruas que saem da praça. Qual o número mínimo guardas necessário para vigiar toda a Vila? Resolva usando grafos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Caminhos e Conectividade de Grafos

Page 12: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

12

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplos de Aplicação de Grafos

• Planejamento eficiente de roteamento de pacotes naInternet.

• Definir melhor rota de distribuição de correspondência nospostos de distribuição da ECT.

• Determinar se uma mensagem pode ser trocada por doiscomputadores em uma rede (possivelmente usando links intermediários)

• Planejamento eficiente de roteamento de pacotes naInternet.

• Definir melhor rota de distribuição de correspondência nospostos de distribuição da ECT.

• Determinar se uma mensagem pode ser trocada por doiscomputadores em uma rede (possivelmente usando links intermediários)

Idéia básica: determinar alcançabilidade entre os vérticesatravés de caminhamento em arestas.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passeio (walk)

• Um passeio em um grafo G= (V, E) é uma seqüênciaalternada de vértices e arestas que começa e termina com vértices.

• A seqüência v1, …, vk , ∀ v1, …, vk ∈ V, é um passeio de v1 avk , se (vj, vj+1) ∈ E, 1 ≤ j ≤ |k – 1|.

• Um passeio com k vértices possui k – 1 arestas.– Neste caso teríamos as seguintes arestas: (v1, v2) , (v2, v3),

…, (vk-1, vk)• O comprimento de um passeio é o número de arestas do

passeio.

• Um passeio em um grafo G= (V, E) é uma seqüênciaalternada de vértices e arestas que começa e termina com vértices.

• A seqüência v1, …, vk , ∀ v1, …, vk ∈ V, é um passeio de v1 avk , se (vj, vj+1) ∈ E, 1 ≤ j ≤ |k – 1|.

• Um passeio com k vértices possui k – 1 arestas.– Neste caso teríamos as seguintes arestas: (v1, v2) , (v2, v3),

…, (vk-1, vk)• O comprimento de um passeio é o número de arestas do

passeio.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passeio (walk)

1

u3

4 5

2v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passeio (walk)

1

u3

4 5

2v

Passeio: a seqüência u, 1, 4, 5, v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passeio (walk)

1

u3

4 5

2v

O que dizer da seqüência u, 1, 4, 3, 5, 4, 3, 5, v ?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Caminho (Path)

• Um caminho ou caminho simples em um grafo é um passeioem que todos os seus vértices são distintos.

• Um caminho ou caminho simples em um grafo é um passeioem que todos os seus vértices são distintos.

1

u3

4 5

2v

O passeio u, 1, 4, 3, 5, 4, 3, 5, v não constitui um caminho.

Page 13: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

13

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Trilha (Trail), Circuito e Ciclo

• Uma trilha ou trajeto em um grafo é um passeio em quetodas as suas arestas são distintas.

• Um trajeto fechado ou circuito em um grafo é um trajeto emque o vértice inicial e o vértice final são iguais.

• Um circuito em que todos os vértices são distintos (com exceção do primeiro e do último) é chamado de ciclo.

• Um grafo acíclico é aquele que não possui ciclos.• Um triângulo é um ciclo de tamanho 3.

• Uma trilha ou trajeto em um grafo é um passeio em quetodas as suas arestas são distintas.

• Um trajeto fechado ou circuito em um grafo é um trajeto emque o vértice inicial e o vértice final são iguais.

• Um circuito em que todos os vértices são distintos (com exceção do primeiro e do último) é chamado de ciclo.

• Um grafo acíclico é aquele que não possui ciclos.• Um triângulo é um ciclo de tamanho 3.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

f

b

e

c

a

d

Forneça exemplos de:-Passeio que não é nem trilha nem caminho.-Passeio que é trilha e não é caminho.-Passeio fechado que não é circuito.-Circuito que não é ciclo.-Triângulo.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Conectados (ou Conexos)

•Um grafo é conectado se e somente se existe um caminhoentre qualquer par de vértices do grafo.•Um componente de um grafo é um subgrafo conectadomaximal.•Um grafo com apenas um componente é um grafo conectado.

•Um grafo é conectado se e somente se existe um caminhoentre qualquer par de vértices do grafo.•Um componente de um grafo é um subgrafo conectadomaximal.•Um grafo com apenas um componente é um grafo conectado.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafo Euleriano

• Um grafo conectado G é dito Euleriano se existe uma trilhafechada contendo cada uma das arestas de G.

• O problema das pontes (lembram da primeira aula?) éequivalente a identificar se o grafo correspondente éEuleriano.

• Um grafo conectado G é dito Euleriano se existe uma trilhafechada contendo cada uma das arestas de G.

• O problema das pontes (lembram da primeira aula?) éequivalente a identificar se o grafo correspondente éEuleriano.

Teorema: Um Grafo Conectado G é Euleriano se e somente se o grau de cada vértice é par.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafo Euleriano

• O K5 é Euleriano?• O K5 é Euleriano?

K5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafo Hamiltoniano

• Um Grafo Hamiltoniano é um grafo que contém uma trilhafechada, passando exatamente uma única vez em cada um dos vértices.

• Um Grafo Hamiltoniano é um grafo que contém uma trilhafechada, passando exatamente uma única vez em cada um dos vértices.

Teorema (Ore, 1960): Se G é um grafo com n (≥3) vértices, e se deg(v) + deg(w) ≥ n para cada par de vértices não-adjacentes v e

w, então G é Hamiltoniano.

Page 14: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

14

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

1. Um grafo G = (V, E) é conexo se e somente se possui um vértice v ∈ V, tal que para cada vértice w ∈ V existe um caminho de w a v. Justifique.

2. Prove que todo grafo conexo com n vértices tem pelo menos n - 1 arestas.

3. K2,3 é Euleriano?4. É possível que um grafo e o seu complemento sejam ambos

desconectados?

1. Um grafo G = (V, E) é conexo se e somente se possui um vértice v ∈ V, tal que para cada vértice w ∈ V existe um caminho de w a v. Justifique.

2. Prove que todo grafo conexo com n vértices tem pelo menos n - 1 arestas.

3. K2,3 é Euleriano?4. É possível que um grafo e o seu complemento sejam ambos

desconectados?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Grafos Dirigidos (Digrafos)

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Dirigidos

•Grafos Dirigidos ou Dígrafos:–Conjunto finito não-vazio de vértices. –Conjunto finito de pares ordenados de vértices.–Chamamos de arcos em vez de arestas.–Um arco (v, w) é reduzido para vw.–D = (V, A)

•Grafos Dirigidos ou Dígrafos:–Conjunto finito não-vazio de vértices. –Conjunto finito de pares ordenados de vértices.–Chamamos de arcos em vez de arestas.–Um arco (v, w) é reduzido para vw.–D = (V, A)

ad

V = {a, b, c, d}A = {ab, bb, bc, cb, cb, ca, dc}

bc

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Dirigidos

• Dígrafo Simples:– Todos os arcos são distintos.– Não existem auto-laços.

• Para obter o grafo correspondente de um dígrafo:– Eliminar as direções dos arcos.– Não necessariamente o grafo correspondente a um dígrafo

simples é simples.

• Dígrafo Simples:– Todos os arcos são distintos.– Não existem auto-laços.

• Para obter o grafo correspondente de um dígrafo:– Eliminar as direções dos arcos.– Não necessariamente o grafo correspondente a um dígrafo

simples é simples.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

a

b c

d

Dígrafo Simples

a

b c

d

Grafo correspondente.Não é simples.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Representação por Lista de Adjacência

1 3

54

2 42

5

56

2

4

1

2

3

4

5

6

66

Page 15: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

15

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Representação por Matriz de Adjacência

1 3

54

2

6

0 1 0 1 0 00 0 0 0 1 0

0 1 0 0 0 00 0 0 0 1 1

0 0 0 1 0 0

1 2 3 4 5 6 123456 0 0 0 0 0 1

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Representação por Matriz de Incidência

e21 3

54

2

6

1 1 0 0 0 0 0 00 -1 -1 1 0 0 0 0

-1 0 1 0 -1 0 0 00 0 0 0 0 1 1 0

0 0 0 -1 1 -1 0 0

1 2 3 4 5 6 7 8 123456 0 0 0 0 0 0 -1 0

e1 e3

e5

e4 e6 e7

e8

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grau de Vértices

•Os vértices de um dígrafo possuem:–Grau de entrada (indeg(v)) : número de arcos quechegam no vértice. –Grau de saída (outdeg(v)) : número de arcos quepartem do vértice.

•Da mesma forma:–Seqüência de graus de entrada.–Seqüência de graus de saída.

•Os vértices de um dígrafo possuem:–Grau de entrada (indeg(v)) : número de arcos quechegam no vértice. –Grau de saída (outdeg(v)) : número de arcos quepartem do vértice.

•Da mesma forma:–Seqüência de graus de entrada.–Seqüência de graus de saída.

Proposição:

i i) = | A|

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

a

b c

d indeg(a) = 1outdeg(a) = 1indeg(b) = 4outdeg(b) = 2

seqüência indeg = 0, 1, 2, 4seqüência outdeg = 1, 1, 2, 3

|A| = 7

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Outros Conceitos

•Dois dígrafos são isomórficos se:–Existe um isomorfismo entre os respectivos grafos correspondentes.–Preserva a ordem dos vértices em cada arco.

•Os conceitos de passeio, caminho, ciclos, etc. são semelhantes:

–Deve respeitar a orientação dos arcos.

•Dois dígrafos são isomórficos se:–Existe um isomorfismo entre os respectivos grafos correspondentes.–Preserva a ordem dos vértices em cada arco.

•Os conceitos de passeio, caminho, ciclos, etc. são semelhantes:

–Deve respeitar a orientação dos arcos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

•D1 e D2 não são isomórficos.•D1 e D2 não são isomórficos.

a

b c

da

d

D2D1

Exemplo de uma trilha: dcbcaExemplo de um ciclo: cabc

Page 16: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

16

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Digrafos Conectados

• Um dígrafo D é conectado se:– Grafo correspondente é conectado.

• D é fortemente conectado se para quaisquer dois vértices v e w, existe um caminho entre v e w.

• D é Euleriano se e somente:– Fortemente conectado.– indeg(vi) = outdeg(vi), para todo i.

• Um dígrafo D é conectado se:– Grafo correspondente é conectado.

• D é fortemente conectado se para quaisquer dois vértices v e w, existe um caminho entre v e w.

• D é Euleriano se e somente:– Fortemente conectado.– indeg(vi) = outdeg(vi), para todo i.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

a

b c

d

D2

D1 é conectado.D1 não é fortemente conectado.D1 não é Euleriano.

a

b c

D2 é conectado.D2 é fortemente conectado.D1 é Euleriano.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Torneio

• Um torneio é um dígrafo em que para quaisquer 2 vértices distintos v e w, existe exatamente um arco entre eles: ou vw ou wv.

• O score de um vértice v em um torneio é igual a outdeg(v).

• A seqüência de score é a seqüência de graus de saída.

• Um torneio é um dígrafo em que para quaisquer 2 vértices distintos v e w, existe exatamente um arco entre eles: ou vw ou wv.

• O score de um vértice v em um torneio é igual a outdeg(v).

• A seqüência de score é a seqüência de graus de saída.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

Torneio de tamanho 5.score(a) = 3score(b) = 2seqüência de score = 0, 2, 2, 3, 3

a

cd

e b

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Mais Sobre Torneios

• Teorema: todo torneio tem um caminho Hamiltoniano.• Um torneio é transitivo se e somente se:

– Sempre que uv e vw são arcos, uw também é.• É equivalente dizer de um torneio T:

– T tem um único caminho Hamiltoniano.– T é transitivo.– Todo jogador (vértice) em T tem um score diferente.

• Teorema: todo torneio tem um caminho Hamiltoniano.• Um torneio é transitivo se e somente se:

– Sempre que uv e vw são arcos, uw também é.• É equivalente dizer de um torneio T:

– T tem um único caminho Hamiltoniano.– T é transitivo.– Todo jogador (vértice) em T tem um score diferente.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

1. Professor Alencar é muito metódico. Todos os dias pela manhã, ele segue o mesmo ritual para se vestir. Faz parte do seu vestuário: cueca, calça, cinto, camisa, gravata, paletó, meias e sapato, além de um vistoso relógio de pulso. Ele sempre veste a cueca antes de por as meias e a calça. Os sapatos são calçados após o professor ter vestido a cueca, calça e meias. O cinto vai depois da calça e da camisa. O relógio pode ser colocado em qualquer momento. O paletó só é vestido depois do cinto e da gravata que écolocada depois da camisa. Modele a rotina do Professor Alencar usando grafos.

1. Professor Alencar é muito metódico. Todos os dias pela manhã, ele segue o mesmo ritual para se vestir. Faz parte do seu vestuário: cueca, calça, cinto, camisa, gravata, paletó, meias e sapato, além de um vistoso relógio de pulso. Ele sempre veste a cueca antes de por as meias e a calça. Os sapatos são calçados após o professor ter vestido a cueca, calça e meias. O cinto vai depois da calça e da camisa. O relógio pode ser colocado em qualquer momento. O paletó só é vestido depois do cinto e da gravata que écolocada depois da camisa. Modele a rotina do Professor Alencar usando grafos.

Page 17: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

17

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício

2. Considere a figura abaixo que mostra a planta baixa de uma casa.É possível identificar portas que dividem os diversos cômodos da casa e portas que dão acesso à parte externa da casa. Utilize a teoria dos grafos para determinar se é possível começar do lado de fora da casa, entrar na casa e visitar cada cômodo uma única vez (sem deixar a casa) e, finalmente sair da casa. Justifique.

2. Considere a figura abaixo que mostra a planta baixa de uma casa.É possível identificar portas que dividem os diversos cômodos da casa e portas que dão acesso à parte externa da casa. Utilize a teoria dos grafos para determinar se é possível começar do lado de fora da casa, entrar na casa e visitar cada cômodo uma única vez (sem deixar a casa) e, finalmente sair da casa. Justifique.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Busca em Grafos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Grafos

• Objetivo: sistematicamente explorar todos os vérticese arestas de um grafo.• Dois tipos de busca:

–Busca em amplitude (Breadth First Search – BFS).–Busca em profundidade (Depth First Search –DFS).

• Objetivo: sistematicamente explorar todos os vérticese arestas de um grafo.• Dois tipos de busca:

–Busca em amplitude (Breadth First Search – BFS).–Busca em profundidade (Depth First Search –DFS).

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Amplitude (BFS)

• Representa um dos mais simples algoritmos de busca emgrafos.

• É usado como modelo para alguns algoritmos importantes:– Menor caminho.– Árvore de cobertura mínima.

• Similar ao caminhamento por níveis em árvores.• Idéia: processa os vértices por níveis, começando por aqueles

vértices mais próximos do vértice inicial s e deixando osvértices mais distantes para depois.

• Representa um dos mais simples algoritmos de busca emgrafos.

• É usado como modelo para alguns algoritmos importantes:– Menor caminho.– Árvore de cobertura mínima.

• Similar ao caminhamento por níveis em árvores.• Idéia: processa os vértices por níveis, começando por aqueles

vértices mais próximos do vértice inicial s e deixando osvértices mais distantes para depois.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Amplitude (BFS)

• O algoritmo BFS pode ser resumido nos seguintes passos:1. Distinguir o vértice inicial s.2. Sistematicamente explorar as arestas do grafo para

descobrir todos os vértices alcançáveis a partir de s.3. Computar a distância (menor número de arestas) de s

para todos os vértices alcançáveis.4. Produzir uma árvore de amplitude cuja raiz é s e contém

todos os vértices alcançáveis.5. Para todo vértice v alcançável a partir de s, o caminho na

árvore de amplitude corresponde ao menor caminho de spara v no grafo.

• O algoritmo BFS pode ser resumido nos seguintes passos:1. Distinguir o vértice inicial s.2. Sistematicamente explorar as arestas do grafo para

descobrir todos os vértices alcançáveis a partir de s.3. Computar a distância (menor número de arestas) de s

para todos os vértices alcançáveis.4. Produzir uma árvore de amplitude cuja raiz é s e contém

todos os vértices alcançáveis.5. Para todo vértice v alcançável a partir de s, o caminho na

árvore de amplitude corresponde ao menor caminho de spara v no grafo.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Amplitude (BFS)

• O algoritmo descobre todos os vértices com distância k a partir de s, antes de descobrir os vértices com distância k+1.

• Para manter controle do processamento dos vértices, o algoritmo utiliza um esquema de 3 cores: branco, cinza e preto:– Todos os vértices começam com cor branca e depois

podem mudar para cinza e, posteriormente, para preto.– Quando um vértice é visitado a primeira vez ele deixa de

ser branco.– É necessário usar duas cores diferente do branco para

garantir a sistemática da amplitude.

• O algoritmo descobre todos os vértices com distância k a partir de s, antes de descobrir os vértices com distância k+1.

• Para manter controle do processamento dos vértices, o algoritmo utiliza um esquema de 3 cores: branco, cinza e preto:– Todos os vértices começam com cor branca e depois

podem mudar para cinza e, posteriormente, para preto.– Quando um vértice é visitado a primeira vez ele deixa de

ser branco.– É necessário usar duas cores diferente do branco para

garantir a sistemática da amplitude.

Page 18: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

18

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo BFS

• Assumir que o grafo G = (V, E) é representado com lista de adjacências.

• Para cada vértice no grafo, o algoritmo mantém estruturas auxiliares:– A variável cor[u] mantém a informação sobre a cor de

cada vértice.– A variável π[u] mantém a informação do predecessor de

cada vértice. Quando não existe predecessor π[u] = NIL.– d[u] mantém o valor da distância entre o vértice inicial e u.– Uma fila Q com política FIFO para gerenciar a lista de

vértices de cor cinza.

• Assumir que o grafo G = (V, E) é representado com lista de adjacências.

• Para cada vértice no grafo, o algoritmo mantém estruturas auxiliares:– A variável cor[u] mantém a informação sobre a cor de

cada vértice.– A variável π[u] mantém a informação do predecessor de

cada vértice. Quando não existe predecessor π[u] = NIL.– d[u] mantém o valor da distância entre o vértice inicial e u.– Uma fila Q com política FIFO para gerenciar a lista de

vértices de cor cinza.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo BFS

BFS(G, s)for ∀u ∈ V[G] – {s} do

cor[u] ← BRANCOd[u] ← ∞π[u] ← NIL

cor[s] ← CINZAd[s] ← 0π[s] ← NILQ ← {s}while Q ≠ Ø do

u ← Desenfileira[Q]for ∀v ∈ Adj[u] do

if cor[v] = BRANCO thencor[v] ← CINZAd[v] ← d[u] + 1π[v] ← uEnfileira(Q, v)

cor[u] ← PRETO

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo BFS

BFS(G, s)for ∀u ∈ V[G] – {s} do

cor[u] ← BRANCOd[u] ← ∞π[u] ← NIL

cor[s] ← CINZAd[s] ← 0π[s] ← NILQ ← {s}while Q ≠ Ø do

u ← Enfileira[Q]for ∀v ∈ Adj[u] do

if cor[v] = BRANCO thencor[v] ← CINZAd[v] ← d[u] + 1π[v] ← uEnfileira(Q, v)

cor[u] ← PRETO

Inicia variáveis auxiliares Para cada um dos vértices,Com exceção da origem

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo BFS

BFS(G, s)for ∀u ∈ V[G] – {s} do

cor[u] ← BRANCOd[u] ← ∞π[u] ← NIL

cor[s] ← CINZAd[s] ← 0π[s] ← NILQ ← {s}while Q ≠ Ø do

u ← Desenfileira[Q]for ∀v ∈ Adj[u] do

if cor[v] = BRANCO thencor[v] ← CINZAd[v] ← d[u] + 1π[v] ← uEnfileira(Q, v)

cor[u] ← PRETO

Inicia variáveis auxiliares da origem s e a fila Q

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo BFS

BFS(G, s)for ∀u ∈ V[G] – {s} do

cor[u] ← BRANCOd[u] ← ∞π[u] ← NIL

cor[s] ← CINZAd[s] ← 0π[s] ← NILQ ← {s}while Q ≠ Ø do

u ← Desenfileira[Q]for ∀v ∈ Adj[u] do

if cor[v] = BRANCO thencor[v] ← CINZAd[v] ← d[u] + 1π[v] ← uEnfileira(Q, v)

cor[u] ← PRETO

Se o vértice adjacente é branco,significa que ele nunca foi visitado.Deve ser pintado de CINZA eenfileirado para posterior processamento.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo BFS

BFS(G, s)for ∀u ∈ V[G] – {s} do

cor[u] ← BRANCOd[u] ← ∞π[u] ← NIL

cor[s] ← CINZAd[s] ← 0π[s] ← NILQ ← {s}while Q ≠ Ø do

u ← Desenfileira[Q]for ∀v ∈ Adj[u] do

if cor[v] = BRANCO thencor[v] ← CINZAd[v] ← d[u] + 1π[v] ← uEnfileira(Q, v)

cor[u] ← PRETO Quando todos os adjacentes de uforem processados, ele passa a serPRETO

Page 19: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

19

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

∞ ∞

r s t u

v w x y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

0

r s t u

v w x y

sQ:

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

0

1

r s t u

v w x y

wQ: r

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

0

1

2

2

r s t u

v w x y

rQ: t x

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

2

0

1

2

2

r s t u

v w x y

Q: t x v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

2

0

1

2

2

3

r s t u

v w x y

Q: x v u

Page 20: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

20

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

2

0

1

2

2

3

3

r s t u

v w x y

Q: v u y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

2

0

1

2

2

3

3

r s t u

v w x y

Q: u y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

2

0

1

2

2

3

3

r s t u

v w x y

Q: y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo BFS

1

2

0

1

2

2

3

3

r s t u

v w x y

Q: Ø

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Profundidade (DFS)

• DFS é uma generalização do caminhamento em pré-ordem em árvores.• A idéia principal é buscar verticalmente, sempre quepossível.• Sempre que um novo vértice v é descoberto, ele deveser explorado por completo.• Quando v é totalmente explorado, fazer backtrackingpara o seu predecessor.

• DFS é uma generalização do caminhamento em pré-ordem em árvores.• A idéia principal é buscar verticalmente, sempre quepossível.• Sempre que um novo vértice v é descoberto, ele deveser explorado por completo.• Quando v é totalmente explorado, fazer backtrackingpara o seu predecessor.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Profundidade (DFS)

• Alguns detalhes sobre o algoritmo de DFS:– Sempre que um vértice v é descoberto, o valo de π(predecessor) é atualizado.– Pode ser formada uma floresta de árvores.– Cada vértice v tem duas marcas de tempo d[v] e f[v] que indicam, respectivamente, quando v foiprimeiramente visitado (cor CINZA) e quando v foitotalmente explorado (cor PRETO).

• Alguns detalhes sobre o algoritmo de DFS:– Sempre que um vértice v é descoberto, o valo de π(predecessor) é atualizado.– Pode ser formada uma floresta de árvores.– Cada vértice v tem duas marcas de tempo d[v] e f[v] que indicam, respectivamente, quando v foiprimeiramente visitado (cor CINZA) e quando v foitotalmente explorado (cor PRETO).

Page 21: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

21

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo DFS

DFS(G)for ∀u ∈ V[G] do

cor[u] ← BRANCOπ[u] ← NIL

tempo ← 0for ∀u ∈ V[G] do

if cor[u] = BRANCO thenVisitaDFS(u)

VisitaDFS(u)cor[u] ← CINZAd[u] ← tempo ← tempo + 1for ∀v ∈ Adj[u] do

if cor[v] = BRANCO thenπ[v] ← uVisitaDFS(v)

cor[u] ← PRETOF[u] ← tempo ← tempo + 1

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

origem

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | | |

| | |

| |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | | |

| | |

2 | |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | | |

| | 3 |

2 | |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | | |

| | 3 | 4

2 | |

d f

Page 22: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

22

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | | |

| 5 | 3 | 4

2 | |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | | |

| 5 | 63 | 4

2 | |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | 8 | |

| 5 | 63 | 4

2 | 7 |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | 8 | |

| 5 | 63 | 4

2 | 7 9 |

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | 8 | |

| 5 | 63 | 4

2 | 7 9 |10

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 | 8 |11 |

| 5 | 63 | 4

2 | 7 9 |10

d f

Page 23: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

23

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 |12 8 |11 |

| 5 | 63 | 4

2 | 7 9 |10

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 |12 8 |11 13|

| 5 | 63 | 4

2 | 7 9 |10

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 |12 8 |11 13|

14| 5 | 63 | 4

2 | 7 9 |10

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 |12 8 |11 13|

14|155 | 63 | 4

2 | 7 9 |10

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

1 |12 8 |11 13|16

14|155 | 63 | 4

2 | 7 9 |10

d f

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Componentes Fortemente Conectados

Page 24: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

24

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

/

/

/

/

/

r s t

v w x

/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

/

/

/

/

/

r s t

v w x

1/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

/

2/

/

/

/

r s t

v w x

1/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

/

2/

3/

/

/

r s t

v w x

1/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/

2/

3/

/

/

r s t

v w x

1/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/

3/

/

/

r s t

v w x

1/

Page 25: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

25

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/

3/6

/

/

r s t

v w x

1/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/7

3/6

/

/

r s t

v w x

1/

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/7

3/6

/

/

r s t

v w x

1/8

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/7

3/6

9/

/

r s t

v w x

1/8

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/7

3/6

9/

10/

r s t

v w x

1/8

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/7

3/6

9/

10/11

r s t

v w x

1/8

Page 26: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

26

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo DFS

4/5

2/7

3/6

9/12

10/11

r s t

v w x

1/8

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Busca em Profundidade (Revisão)

• A busca em profundidade produz uma floresta de árvores.• É possível identificar 4 tipos de arcos:

– Arcos da árvore: arcos na árvore de profundidade.– Arcos de retorno: aqueles que conectam um vérticeu a um vértice ancestral na árvore de profundidade.– Arcos forward: aqueles que conectam um vértice ua um vértice descente na árvore de profundidade.– Arcos de cruzamento: os demais arcos.

• A busca em profundidade produz uma floresta de árvores.• É possível identificar 4 tipos de arcos:

– Arcos da árvore: arcos na árvore de profundidade.– Arcos de retorno: aqueles que conectam um vérticeu a um vértice ancestral na árvore de profundidade.– Arcos forward: aqueles que conectam um vértice ua um vértice descente na árvore de profundidade.– Arcos de cruzamento: os demais arcos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

DFS (Tipos de Arcos)

4/5

2/7

3/6

9/12

10/11

r s t

v w x

1/8

F B

B

C

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Componente Fortemente Conectado (SCC)

• Um Grafo G é fortemente conectado se, ∀u,v ∈ V, existe um caminho entre u e v e um caminho entre v e u.• Um componente fortemente conectado de um grafo éum subconjunto maximal de vértices (juntamente com os seus correspondentes arcos) que é fortementeconectado.

• Um Grafo G é fortemente conectado se, ∀u,v ∈ V, existe um caminho entre u e v e um caminho entre v e u.• Um componente fortemente conectado de um grafo éum subconjunto maximal de vértices (juntamente com os seus correspondentes arcos) que é fortementeconectado.

FortementeConectado

Não é FortementeConectado

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo SCC

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo SCC

s t u

w x y

r

v

Page 27: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

27

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafo de Componentes

• GSCC = (VSCC, ESCC).• VSCC tem um vértice para cada SCC em G.• ESCC tem um arco se existe um arco entre oscorrespondentes SCCs em G.

• GSCC = (VSCC, ESCC).• VSCC tem um vértice para cada SCC em G.• ESCC tem um arco se existe um arco entre oscorrespondentes SCCs em G.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Transposto de um Grafo Dirigido

• GT é transposto de um grafo dirigiro:– GT = (V, ET), ET = {(u, v) : (v, u) ∈ E}.– GT é G com todos os arcos revertidos.

• GT é transposto de um grafo dirigiro:– GT = (V, ET), ET = {(u, v) : (v, u) ∈ E}.– GT é G com todos os arcos revertidos.

s

w

r

v

s

w

r

v

GG

T

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo SCC

SCC(G)DFS(G) Calcula GT

DFS(GT)Saída: os arcos de árvore formam SCCs

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo Grafo de SCCs

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 1: Aplicar DFS

3/4

1/10

2/7

8/9

5/6

s t u

w x y

11/1613/14

12/15

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 2: Calcular GT

s t u

w x y

r

v

Page 28: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

28

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Page 29: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

29

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 3: DFS de GT

s t u

w x y

r

v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Passo 4: Componentes de GT

ut

xw y

rsv

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Menor Caminho de Origem Única

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Menor Caminho com Origem Única

• Problema: encontrar o caminho, mais curto possível, entre Campina Grande e Natal.• Suponha que temos um mapa com todas as estradasdo Nordeste, com a distância entre todos os pares de cidades adjacentes.• Como determinar a menor distância entre as duascidades?

• Problema: encontrar o caminho, mais curto possível, entre Campina Grande e Natal.• Suponha que temos um mapa com todas as estradasdo Nordeste, com a distância entre todos os pares de cidades adjacentes.• Como determinar a menor distância entre as duascidades?

Uma maneira de resolver este problema é encontrar a menor distância entre CampinaGrande e todas as outras cidades do Nordeste.

Em grafos: Menor Caminho com Origem Única

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Menor Caminho com Origem Única

• Consideramos um grafo dirigido G = (V, E), com uma funçãopeso w(u, v): E → R, que mapeia pesos a arestas.

• O peso do caminho p = <v0, v1, …, vk> é a soma dos pesos das arestas que o constituem: – w(p) = ∑k

i=1 w(vi-1, vi)• Definimos o menor caminho entre u e v como:

– δ(u, v) = min{w(p): u ⇒ v}, se existir um caminho.– δ(u, v) = ∞, se não existir caminho.

• Consideramos um grafo dirigido G = (V, E), com uma funçãopeso w(u, v): E → RR, que mapeia pesos a arestas.

• O peso do caminho p = <v0, v1, …, vk> é a soma dos pesos das arestas que o constituem: – w(p) = ∑k

i=1 w(vi-1, vi)• Definimos o menor caminho entre u e v como:

– δ(u, v) = min{w(p): u ⇒ v}, se existir um caminho.– δ(u, v) = ∞, se não existir caminho.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Menor Caminho com Origem Única

• O problema de menor caminho em um grafo consiste emdeterminar o menor caminho entre um vértice inicial s ∈ V e todos os demais vértices de V.

• Algumas variações do problema:– Menor caminho com destino único.– Menor caminho entre um par de vértices.– Menor caminho entre todos os pares de vértices.

• Em algumas instância é possível encontrar pesos negativos.

• O problema de menor caminho em um grafo consiste emdeterminar o menor caminho entre um vértice inicial s ∈ V e todos os demais vértices de V.

• Algumas variações do problema:– Menor caminho com destino único.– Menor caminho entre um par de vértices.– Menor caminho entre todos os pares de vértices.

• Em algumas instância é possível encontrar pesos negativos.

Page 30: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

30

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo de Menor Caminho

0

3

5

9

11

s

u v

x y

3

3

6

6

22

1

5

4

7

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo de Menor Caminho

0

3

5

9

11

s

u v

x y

3

3

6

6

22

1

5

4

7

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo de Menor Caminho

0

3

5

9

11

s

u v

x y

3

3

6

6

22

1

5

4

7

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Dijkstra

• Assumir que qualquer cidade é infinitamente distante da cidade origem:

• Abordagem otimista: – Sempre que chegar em uma cidade, assumir que

encontrou o menor caminho.– Se depois encontra algo melhor, atualizar os dados.

• A partir da cidade de origem, visitar primeiro as cidades adjacentes, depois as adjacentes das adjacentes, e assim por diante.

• Algoritmo bastante conhecido, utilizado no OSPF.

• Assumir que qualquer cidade é infinitamente distante da cidade origem:

• Abordagem otimista: – Sempre que chegar em uma cidade, assumir que

encontrou o menor caminho.– Se depois encontra algo melhor, atualizar os dados.

• A partir da cidade de origem, visitar primeiro as cidades adjacentes, depois as adjacentes das adjacentes, e assim por diante.

• Algoritmo bastante conhecido, utilizado no OSPF.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Dijkstra

• Não considera pesos negativos.• Uso de duas variáveis auxiliares:

– d[v] (estimativa de menor distância)– π[v] (predecessor)

• Não considera pesos negativos.• Uso de duas variáveis auxiliares:

– d[v] (estimativa de menor distância)– π[v] (predecessor)

IniciaMenorCaminho(G, s)for ∀u ∈ V[G] do

d[u] ← ∞π[u] ← NIL

d[s] ← 0

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Dijkstra

• Atualização dos dados utiliza a técnica de relaxamento.• Atualização dos dados utiliza a técnica de relaxamento.

Relaxa(u, v, w)if d[v] > d[u] + w(u,v) then

d[v] ← d[u] + w(u,v)π[v] ← u

5 9u v

2

5 7u v

2

5 6u v

2

5 6u v

2

Page 31: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

31

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Dijkstra

Dijkstra(G, w, s)IniciaMenorCaminho(G, s)S ← ØQ ← V[G]while Q ≠ Ø do

u ← ExtraiMenor[Q]S ← S ∪ {u}for ∀v ∈ Adj[u] do

Relaxa(u, v, w)

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

s

u v

x y

10

7

1

2

24

3

5

9

6

sQ: u v x y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: u v x y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

10

5

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: x u v y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

10

5

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: u v y

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

8

5

14

7

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: y u v

Page 32: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

32

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

8

5

14

7

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: u v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

8

5

13

7

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: u v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

8

5

9

7

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: v

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Dijkstra

0

8

5

9

7

s

u v

x y

10

7

1

2

24

3

5

9

6

Q: Ø

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo Bellman-Ford

• Resolve menor caminho de forma mais genérica, incluindo pesos negativos.

• Verifica a existência de ciclos de peso negativo:– Se existir, indica que não é possível achar menor

caminho.• Também utiliza a técnica de relaxamento de arestas.• A idéia principal: progressivamente ir diminuindo a estimativa

de distância até encontrar o menor caminho.

• Resolve menor caminho de forma mais genérica, incluindo pesos negativos.

• Verifica a existência de ciclos de peso negativo:– Se existir, indica que não é possível achar menor

caminho.• Também utiliza a técnica de relaxamento de arestas.• A idéia principal: progressivamente ir diminuindo a estimativa

de distância até encontrar o menor caminho.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Bellman-Ford

Bellman-Ford(G, w, s)IniciaMenorCaminho(G, s)for i ← 1 to |V[G]| - 1 do

for ∀(u, v) ∈ E[G] doRelaxa(u, v, w)

for ∀(u, v) ∈ E[G] doif d[v] > d[u] + w(u, v) then

return FALSEreturn TRUE

Page 33: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

33

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Bellman-Ford

0

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Bellman-Ford

0

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Bellman-Ford

0

6

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Execução do Algoritmo de Bellman-Ford

0

6

7

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Resultado Após Primeira Passada

0

6

7

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Resultado Após Segunda Passada

0

6

7

4

2

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Page 34: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

34

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Resultado Após Terceira Passada

0

2

7

4

2

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Resultado Após Quarta Passada

0

2

7

4

-2

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Resultado Final

0

2

7

4

-2

z

u v

x y

6

2

5

9

8

7

-3

7

-2

-4

uv, ux, uy, vu, xv, xy, yv, yz, zu, zx

TRUE: ausência de ciclos negativos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Floyd-Warshall

• Calcula a menor distância entre todos os pares de vértices.

• Considera uma matriz n×n e utiliza a técnica de programação dinâmica.

• Seja A[i,j] = c[i,j] ∀ i,j & i≠j.• Se (i,j) não é uma aresta, fazer A[i,j]=∞ e A[i,i]=0• Ak[i,j] = min (Ak-1[i,j] , Ak-1[i,k]+ Ak-1[k,j])

• Calcula a menor distância entre todos os pares de vértices.

• Considera uma matriz n×n e utiliza a técnica de programação dinâmica.

• Seja A[i,j] = c[i,j] ∀ i,j & i≠j.• Se (i,j) não é uma aresta, fazer A[i,j]=∞ e A[i,i]=0• Ak[i,j] = min (Ak-1[i,j] , Ak-1[i,k]+ Ak-1[k,j])

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Floyd-Warshall

Floyd-Warshall(G, w)Iniciar A[i,j] = w[i,j]Iniciar A[i,i] = 0for k ← 1 to n do

for i ← 1 to n dofor j ← to n do

if A[i,j] > A[i,k] + A[k,j] thenA[i,j] = A[j,k] + A[k,j]

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Floyd-Warshall

Page 35: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

35

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Árvores

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore - Introdução

• Em nosso dia-a-dia nos deparamos com muitosexemplos de árvores:

– Árvore genealógica.– Organograma de uma empresa.– Tabela de um torneio esportivo.

• Na computação:– Organização da estrutura de arquivos (diretório).– Armazenamento e busca eficiente de dados.– Ordenação.– Árvores de decisão.

• Em nosso dia-a-dia nos deparamos com muitosexemplos de árvores:

– Árvore genealógica.– Organograma de uma empresa.– Tabela de um torneio esportivo.

• Na computação:– Organização da estrutura de arquivos (diretório).– Armazenamento e busca eficiente de dados.– Ordenação.– Árvores de decisão.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Livre

• Uma árvore (livre) é um grafo acíclico, não orientado e conectado.

• Uma floresta é um grafo acíclico, não orientado mas, possivelmente, desconectado.

• Considerando que G = (V, E) é um grafo não orientado, éequivalente dizer:1. G é uma árvore.2. Um par de vértice qualquer (v, w) de G está conectado

por apenas um caminho.3. G é conectado. A remoção de uma aresta desconecta G.4. G é conectado e |E| = |V| - 1.5. G é acíclico e |E| = |V| - 1.6. G é acíclico. A adição de uma aresta cria um ciclo em G.

• Uma árvore (livre) é um grafo acíclico, não orientado e conectado.

• Uma floresta é um grafo acíclico, não orientado mas, possivelmente, desconectado.

• Considerando que G = (V, E) é um grafo não orientado, éequivalente dizer:1. G é uma árvore.2. Um par de vértice qualquer (v, w) de G está conectado

por apenas um caminho.3. G é conectado. A remoção de uma aresta desconecta G.4. G é conectado e |E| = |V| - 1.5. G é acíclico e |E| = |V| - 1.6. G é acíclico. A adição de uma aresta cria um ciclo em G.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Enraizada

• Tipo especial de árvore que apresenta um vértice (raiz) quese distingue dos demais.

• Utilizamos o termo nó para fazer referência aos vértices.

• Tipo especial de árvore que apresenta um vértice (raiz) quese distingue dos demais.

• Utilizamos o termo nó para fazer referência aos vértices.

7

3 10 4

8 12 11 2

6 5 19

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algumas Definições

• Seja x um nó de uma árvore enraizada T com raiz r:– Ancestral: é qualquer nó y no caminho de r a x.– Descendente: x é um descendente de y se y é ancestral

de x.– Ancestral Próprio: y é ancestral próprio de x se y é

ancestral de x e y ≠ x. – Descendente Próprio: y é descendente próprio de x se y

é descendente de x e y ≠ x. – Sub-árvore enraizada em x: árvore induzida pelos

descendentes de x, com x sendo a raiz. – Filho: x é filho de y se ele é um descendente direto. – Pai: é o ancestral próprio mais próximo. A raiz é o único

nó sem pai.

• Seja x um nó de uma árvore enraizada T com raiz r:– Ancestral: é qualquer nó y no caminho de r a x.– Descendente: x é um descendente de y se y é ancestral

de x.– Ancestral Próprio: y é ancestral próprio de x se y é

ancestral de x e y ≠ x. – Descendente Próprio: y é descendente próprio de x se y

é descendente de x e y ≠ x. – Sub-árvore enraizada em x: árvore induzida pelos

descendentes de x, com x sendo a raiz. – Filho: x é filho de y se ele é um descendente direto. – Pai: é o ancestral próprio mais próximo. A raiz é o único

nó sem pai.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algumas Definições

– Folha: um nó sem filhos.– Nó interno: um nó que não é folha.– Grau: o grau de y é o número de filhos de y. – Profundidade: o comprimento desde a raiz r até x é a

profundidade de x em T. – Altura:

• a altura de um nó em uma árvore é o maiorcomprimento do nó até uma folha.

• A altura de uma árvore é a altura de sua raiz. • Altura da árvore é a maior profundidade de qualquer

nó da árvore.

– Folha: um nó sem filhos.– Nó interno: um nó que não é folha.– Grau: o grau de y é o número de filhos de y. – Profundidade: o comprimento desde a raiz r até x é a

profundidade de x em T. – Altura:

• a altura de um nó em uma árvore é o maiorcomprimento do nó até uma folha.

• A altura de uma árvore é a altura de sua raiz. • Altura da árvore é a maior profundidade de qualquer

nó da árvore.

Page 36: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

36

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

7

3 10 4

8 12 11 2

6 5 19

Profundidade 0

Profundidade 1

Profundidade 2

Profundidade 3

Profundidade 4

Altura da árvore é 4

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Implementação de Árvores

• Além da informação de cada nó, um link para cadaum dos filhos.

• Inconveniente: não sabemos a priori a quantidadede filhos em cada nó.

• Além da informação de cada nó, um link para cadaum dos filhos.

• Inconveniente: não sabemos a priori a quantidadede filhos em cada nó.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Implementação de Árvores

• Os filhos de um nó são mantidos em uma listaencadeada.

• Os filhos de um nó são mantidos em uma listaencadeada.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Implementação de Árvores

A /

B / C / D E F G /

I / J / K / L /H / /

P / Q / /

M / /

N / /

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Ordenada

• Árvore enraizada em que os filhos de cada nó estãoordenados.

• Árvore enraizada em que os filhos de cada nó estãoordenados.

7

3 10 4

8 12 11 2

6 5 1

9

7

3 10 4

12 8 11 2

1 6 5

9

Árvores enraizadas iguais.Árvores ordenadas diferentes.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Binária

• Estrutura de nós que é definida recursivamente através de um conjunto de nós:– Não contém nenhum nó, ou;– Formada por 3 conjuntos disjuntos: um nó raiz, duas sub-

árvores binárias (direita e esquerda).

• Estrutura de nós que é definida recursivamente através de um conjunto de nós:– Não contém nenhum nó, ou;– Formada por 3 conjuntos disjuntos: um nó raiz, duas sub-

árvores binárias (direita e esquerda).

raiz

TL TR

Page 37: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

37

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Binária – Conceitos Importantes

• Árvore vazia ou nula: não contém nenhum nó.• Filho da esquerda: raiz da sub-árvore da esquerda (quando

houver).• Filho da direita: raiz da sub-árvore da direita (quando

houver).• Filho ausente: quando a sub-árvore dé a árvore nula.

• Árvore vazia ou nula: não contém nenhum nó.• Filho da esquerda: raiz da sub-árvore da esquerda (quando

houver).• Filho da direita: raiz da sub-árvore da direita (quando

houver).• Filho ausente: quando a sub-árvore dé a árvore nula.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Binária Cheia

• Cada nó ou é uma folha ou tem grau exatamente 2.• Cada nó ou é uma folha ou tem grau exatamente 2.

7

3 4

12 8 11 2

6 5

O número de nós internos de uma árvore binária cheia é f – 1, onde f é o número de folhas.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Binária Completa

• Árvore binária em que todas as folhas estão em uma mesmaprofundidade e todos os nós internos têm grau 2.

• Árvore binária em que todas as folhas estão em uma mesmaprofundidade e todos os nós internos têm grau 2.

7

3 4

12 8 11 2

O número de nós internos de uma árvore binária completa é 2h

– 1, onde h é a altura da árvore.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore k-ária Completa

• Em uma árvore posicional, os filhos de um nó são rotuladoscomo inteiros distintos.

• Árvore k-ária é uma árvore posicional onde os filhos com rótulos maiores do que k são ausentes.

• Árvore k-ária completa é uma árvore k-ária onde todas as folhas têm a mesma profundidade e todos os nós internostêm grau k.

• Uma árvore binária é uma árvore k-ária com k = 2.

• Em uma árvore posicional, os filhos de um nó são rotuladoscomo inteiros distintos.

• Árvore k-ária é uma árvore posicional onde os filhos com rótulos maiores do que k são ausentes.

• Árvore k-ária completa é uma árvore k-ária onde todas as folhas têm a mesma profundidade e todos os nós internostêm grau k.

• Uma árvore binária é uma árvore k-ária com k = 2.

O número de nós internos de uma árvore k-ária completa é kh

– 1/ k - 1, onde h é a altura da árvore.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Aplicação: Árvores de Expressões

•Seja a expressão (a+b*c)+((d*e+f)*g):–Folhas são operandos.–Nós internos são operadores.

•Seja a expressão (a+b*c)+((d*e+f)*g):–Folhas são operandos.–Nós internos são operadores.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvores de Expressões

• Caminhamento em ordem:– produz expressão na notação infixa.

• Caminhamento em ordem:– produz expressão na notação infixa.

((a+(b*c))+(((d*e)+f)*g))

Page 38: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

38

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvores de Expressões

• Caminhamento em pós-ordem:– produz expressão na notação pósfixa.

• Caminhamento em pós-ordem:– produz expressão na notação pósfixa.

Expressão pósfixa:abc*+de*f+g*+

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore Binária de Pesquisa - ABP

• Árvore binária em que cada nó tem uma chave que não é menor do que as chaves dos nós de sua sub-árvore esquerda e não é maior do que as chaves dos nós da sub-árvore direita.

• Árvore binária em que cada nó tem uma chave que não é menor do que as chaves dos nós de sua sub-árvore esquerda e não é maior do que as chaves dos nós da sub-árvore direita.

ABP Não é ABP

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Heap Binário

• Árvore binária com duas propriedades:– Estrutura: árvore binária quase completa. O último nível

pode não ser completado.– Ordem: todo filho é maior (ou igual) do que o pai.

• Árvore binária com duas propriedades:– Estrutura: árvore binária quase completa. O último nível

pode não ser completado.– Ordem: todo filho é maior (ou igual) do que o pai.

06

14

78 18

81 7791

45

5347

6484 9983

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Implementação de Heap Binário

• Usar um array:– Parent(i) = ⎣i/2⎦– Left(i) = 2i– Right(i) = 2i + 1

• Usar um array:– Parent(i) = ⎣i/2⎦– Left(i) = 2i– Right(i) = 2i + 1

06

14

78 18

81 7791

45

5347

6484 9983

1

2 3

4 5 6 7

8 9 10 11 12 13 14

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Inserção em Heap Binário

• Manter propriedades de ordem e estrutura.• Inserir no slot livre e depois procurar lugar correto.

• Manter propriedades de ordem e estrutura.• Inserir no slot livre e depois procurar lugar correto.

06

14

78 18

81 7791

45

5347

6484 9983 42 Próximo slot livre

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Inserção em Heap Binário

06

14

78 18

81 7791

45

5347

6484 9983 42

Trocar com o pai, se necessário

Page 39: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

39

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Inserção em Heap Binário

06

14

78 18

81 7791

45

4247

6484 9983 53

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Inserção em Heap Binário

06

14

78 18

81 7791

42

4547

6484 9983 53

Propriedade de ordem OK!!

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Inserção em Heap Binário

06

14

78 18

81 7791

42

4547

6484 9983 53

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

06

14

78 18

81 7791

42

4547

6484 9983 53

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

06

14

78 18

81 7791

42

4547

6484 9983 53

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

53

14

78 18

81 7791

42

4547

6484 9983 06

Page 40: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

40

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

53

14

78 18

81 7791

42

4547

6484 9983

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

14

53

78 18

81 7791

42

4547

6484 9983

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

14

18

78 53

81 7791

42

4547

6484 9983

Propriedade de ordem OK!!

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Remoção em Heap Binário

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

• Manter propriedades de ordem e estrutura.• Sempre remove o menor elemento.

14

18

78 53

81 7791

42

4547

6484 9983

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Aplicação em Ordenação: HeapSort

• Inserir N itens no heap.• executar N operações de remoção.• O(N log N).• Não é necessário armazenamento extra.

• Inserir N itens no heap.• executar N operações de remoção.• O(N log N).• Não é necessário armazenamento extra.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Árvore de Cobertura Mínima

Page 41: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

41

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore de Cobertura - Introdução

• Problema 1: Os pinos de uma placa de circuito impressodevem ser conectados com a menor quantidade de fio.• Problema 1: Os pinos de uma placa de circuito impressodevem ser conectados com a menor quantidade de fio.

• Problema 2: No sistema de abastecimento de água de Campina Grande, existem vários tanques de armazenamento e tratamento da água que vem do Açude de Boqueirão. Como interligar os tanques (em princípio, qulalquer par de tanques podeser interligado), de modo a garantir o correto abastecimento e que o custo seja mínimo?

• Problema 2: No sistema de abastecimento de água de Campina Grande, existem vários tanques de armazenamento e tratamento da água que vem do Açude de Boqueirão. Como interligar os tanques (em princípio, qulalquer par de tanques podeser interligado), de modo a garantir o correto abastecimento e que o custo seja mínimo?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore de Cobertura - Introdução

• Problema 1: Os pinos de uma placa de circuito impressodevem ser conectados com a menor quantidade de fio.• Problema 1: Os pinos de uma placa de circuito impressodevem ser conectados com a menor quantidade de fio.

• Problema 2: No sistema de abastecimento de água de Campina Grande, existem vários tanques de armazenamento e tratamento da água que vem do Açude de Boqueirão. Como interligar os tanques (em princípio, qulalquer par de tanques podeser interligado), de modo a garantir o correto abastecimento e que o custo seja mínimo?

• Problema 2: No sistema de abastecimento de água de Campina Grande, existem vários tanques de armazenamento e tratamento da água que vem do Açude de Boqueirão. Como interligar os tanques (em princípio, qulalquer par de tanques podeser interligado), de modo a garantir o correto abastecimento e que o custo seja mínimo?

Os dois problemas acima são conhecidos como o problema da conexão mínima.Na Teoria dos Grafos é o problema de encontrar a árvore de cobertura (geradora) mínima para o grafo.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

O que é uma árvore de cobertura?

• Uma árvore de cobertura de um grafo não dirigido G=(V,E) éum subgrafo de G que é uma árvore e contém todos osvértices de G.

• Uma árvore de cobertura de um grafo não dirigido G=(V,E) éum subgrafo de G que é uma árvore e contém todos osvértices de G.

Grafo Árvore de Cobertura

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore de cobertura

• Um grafo pode ter mais de uma árvore de cobertura?• Um grafo não conectado pode ter uma árvore de cobertura?

• Um grafo pode ter mais de uma árvore de cobertura?• Um grafo não conectado pode ter uma árvore de cobertura?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore de cobertura

• Um grafo pode ter mais de uma árvore de cobertura?• Um grafo não conectado pode ter uma árvore de cobertura?

• Um grafo pode ter mais de uma árvore de cobertura?• Um grafo não conectado pode ter uma árvore de cobertura?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Como Encontrar uma Árvore de Cobertura?

• Para encontrar uma árvore de cobertura:– Se o grafo G não tem ciclos, G é uma árvore de

cobertura.– Se G tem ciclo, é necessário remover

recursivamente arestas (até achar uma árvore), mantendo o grafo conectado.

• Para encontrar uma árvore de cobertura:– Se o grafo G não tem ciclos, G é uma árvore de

cobertura.– Se G tem ciclo, é necessário remover

recursivamente arestas (até achar uma árvore), mantendo o grafo conectado.

Page 42: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

42

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore de Cobertura Mínima (MST)

• O custo de um subgrafo (de um grafo não dirigidoponderado) é a soma dos pesos de suas arestas.

• Uma árvore de cobertura mínima de um grafo não dirigidoponderado é uma árvore de cobertura com menor custo.

• Um grafo pode ter mais de uma árvore de cobertura mínima?

• O custo de um subgrafo (de um grafo não dirigidoponderado) é a soma dos pesos de suas arestas.

• Uma árvore de cobertura mínima de um grafo não dirigidoponderado é uma árvore de cobertura com menor custo.

• Um grafo pode ter mais de uma árvore de cobertura mínima?

b d

fgh

ia

c

e

4

8

2

10

21

78

4

9

67

1411

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Árvore de Cobertura Mínima (MST)

• O custo de um subgrafo (de um grafo não dirigidoponderado) é a soma dos pesos de suas arestas.

• Uma árvore de cobertura mínima de um grafo não dirigidoponderado é uma árvore de cobertura com menor custo.

• Um grafo pode ter mais de uma árvore de cobertura mínima?

• O custo de um subgrafo (de um grafo não dirigidoponderado) é a soma dos pesos de suas arestas.

• Uma árvore de cobertura mínima de um grafo não dirigidoponderado é uma árvore de cobertura com menor custo.

• Um grafo pode ter mais de uma árvore de cobertura mínima?

b d

fgh

ia

c

e

4

8

2

10

21

78

4

9

67

1411

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Como Encontrar uma MST?

Algoritmo Genérico

1. A ← ∅2. while A não é uma árvore de cobertura3. do encontre uma aresta (u,v) que é segura para A4. A ← A ∪ {(u,v)}5. return A

Algoritmo Genérico

1. A ← ∅2. while A não é uma árvore de cobertura3. do encontre uma aresta (u,v) que é segura para A4. A ← A ∪ {(u,v)}5. return A

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Como Reconhecer uma Aresta Segura?

• Definir um corte no grafo, particionando o conjuntode vértices.

• Uma aresta cruza o corte se cada um dos vérticesque formam a aresta está em partição diferente.

• O corte deve respeitar A. Isso acontece se nenhuma aresta de A cruza o corte.

• A aresta segura é aquela de menor peso que cruza o corte.

• Definir um corte no grafo, particionando o conjuntode vértices.

• Uma aresta cruza o corte se cada um dos vérticesque formam a aresta está em partição diferente.

• O corte deve respeitar A. Isso acontece se nenhuma aresta de A cruza o corte.

• A aresta segura é aquela de menor peso que cruza o corte.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Aresta Segura

b d

fgh

ia

c

e

4

8

2

10

21

78

4

9

67

1411

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmos para Encontrar MST

Kruskal: Encontra a aresta segura e adiciona a árvore de cobertura que está sendo formada. A nova aresta não devenecessariamente ter um dos vértices na árvore que estásendo formada. Ou seja, uma floresta pode existir antes daMST ter sido encontrada.

Prim: Encontra a aresta segura e um dos vérticesnecessariamente deve pertencer a árvore que está sendoconstruída. Sempre existe uma única árvore parcial.

Kruskal: Encontra a aresta segura e adiciona a árvore de cobertura que está sendo formada. A nova aresta não devenecessariamente ter um dos vértices na árvore que estásendo formada. Ou seja, uma floresta pode existir antes daMST ter sido encontrada.

Prim: Encontra a aresta segura e um dos vérticesnecessariamente deve pertencer a árvore que está sendoconstruída. Sempre existe uma única árvore parcial.

Page 43: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

43

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Kruskal

1. A ← ∅2. for cada vértice v ∈ V[G]3. do Make-Set(v)4. Ordene as arestas de E (ordem crescente por peso w)5. ∀ edge (u,v) ∈ E, (considerando a ordem)6. if Find-Set(u) ≠ Find-Set(v)7. then A ← A ∪ {(u,v)}8. Union(u,v)9. return A

1. A ← ∅2. for cada vértice v ∈ V[G]3. do Make-Set(v)4. Ordene as arestas de E (ordem crescente por peso w)5. ∀ edge (u,v) ∈ E, (considerando a ordem)6. if Find-Set(u) ≠ Find-Set(v)7. then A ← A ∪ {(u,v)}8. Union(u,v)9. return A

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Algoritmo de Prim

1. for cada vértice u ∈ V[G]2. do chave[u] ← ∞ // chave[u] é o custo de u para vértice da árvore

3. π[u] ← NIL4. chave[r] ← 0 // r é a raiz da árvore

5. Q ← V[G] // Q contém todos os vértices que ainda não estão na árvore

6. while Q ≠ ∅7. do u ← Extract-Min[Q]8. for cada v ∈ Adj[u]9. do if v ∈ Q ∧ w(u,v) < chave[v]10. then π[v] ← u11. chave[v] ← w(u,v)

1. for cada vértice u ∈ V[G]2. do chave[u] ← ∞ // chave[u] é o custo de u para vértice da árvore

3. π[u] ← NIL4. chave[r] ← 0 // r é a raiz da árvore

5. Q ← V[G] // Q contém todos os vértices que ainda não estão na árvore

6. while Q ≠ ∅7. do u ← Extract-Min[Q]8. for cada v ∈ Adj[u]9. do if v ∈ Q ∧ w(u,v) < chave[v]10. then π[v] ← u11. chave[v] ← w(u,v)

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Planaridade de Grafos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Planaridade em Grafos

• Estudos de aspectos da topologia de grafos:– Grafos planares– Coloração de grafos

• Problema das 3 casas/3 serviços• Problema de coloração de mapas• Utilidade prática

• Estudos de aspectos da topologia de grafos:– Grafos planares– Coloração de grafos

• Problema das 3 casas/3 serviços• Problema de coloração de mapas• Utilidade prática

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conceitos Básicos

• Grafo planar• Grafo plano• K4 é planar?

• Grafo planar• Grafo plano• K4 é planar?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conceitos Básicos

• Um grafo plano divide o plano em várias regiões.• Uma delas é chamada região externa.• Cada aresta deve fazer parte da borda de alguma

região.

• Um grafo plano divide o plano em várias regiões.• Uma delas é chamada região externa.• Cada aresta deve fazer parte da borda de alguma

região.

Page 44: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

44

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Conceitos Básicos

a

bc d

4 regiões:R1: ac,cb,baR2: ab, bd,daR3: bc, cd, dbR4: ac, cd,da (externa)

a

bc d

a

b

c dTeoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

• Uma árvore determina uma única região.• Toda aresta da árvore é parte da borda desta região.• Uma árvore determina uma única região.• Toda aresta da árvore é parte da borda desta região.

a

b

c

d

e

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

• Para o grafo plano abaixo indique:– Quantidade de regiões.– Conjunto de arestas de cada borda.– A região externa.

• Para o grafo plano abaixo indique:– Quantidade de regiões.– Conjunto de arestas de cada borda.– A região externa.

a

b

c

d

e

f

g

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Fórmula de Euler

• Grafos planares x Poliedros.• Grafos planares x Poliedros.

TEOREMA: Seja G um grafo plano com V vértices, E arestas e R regiões. Então V – E + R = 2.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Grafos Não-Planares

• K3,3 é não-planar.– Prova por construção.– Prova por indução.

• K5 é não-planar.– Prova por construção.

• K3,3 é não-planar.– Prova por construção.– Prova por indução.

• K5 é não-planar.– Prova por construção.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

TEOREMA: Seja G um grafo planar com V 3 vérticese E arestas.Então E 3V - 6.

Page 45: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

45

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teorema de Kuratowski

• Importância do K3,3 e K5 para descobrir se um grafo é ou não planar.– Nenhum grafo que contém um destes grafos como

subgrafo não pode ser planar.– Nenhum grafo obtido através do K3,3 e K5 pela

simples adição de vértices às arestas não pode ser planar.

• Importância do K3,3 e K5 para descobrir se um grafo é ou não planar.– Nenhum grafo que contém um destes grafos como

subgrafo não pode ser planar.– Nenhum grafo obtido através do K3,3 e K5 pela

simples adição de vértices às arestas não pode ser planar.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

DEFINIÇÃO: Dois grafos são homeomórficos se e somente sese eles podem ser obtidos a partir do mesmo grafo pela adição devértices (necessariamente de grau 2) às arestas.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

TEOREMA (Kuratowski): Um grafo é planar se e somente seele não tem subgrafo homeomórfico a K

5 e K

3,3.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Coloração em Grafos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Coloração em Grafos

• Qual o número mínimo de cores que devemos usar para colorir os estados do mapa do Brasil, com a restrição de que estados vizinhos não podem ter a mesma cor?

– Relação com o problema de colorir vértices de um grafo.– O Teorema das 4 Cores, provado em 1976, se constitui em um dos resultados mais importantes da matemática no Século XX. (permaneceu sem solução desde 1852)

• Aplicação em muitos problemas práticos.

• Qual o número mínimo de cores que devemos usar para colorir os estados do mapa do Brasil, com a restrição de que estados vizinhos não podem ter a mesma cor?

– Relação com o problema de colorir vértices de um grafo.– O Teorema das 4 Cores, provado em 1976, se constitui em um dos resultados mais importantes da matemática no Século XX. (permaneceu sem solução desde 1852)

• Aplicação em muitos problemas práticos.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Coloração em Grafos

• Uma coloração de um grafo é uma atribuição de cores aos vértices, de modo que vértices adjacentestenham cores distintas.

• Um grafo G tem k-coloração se ele pode ser coloridocom k cores.

• Se G tem k-coloração mas não pode ter (k-1)-coloração:– O número cromático de G é k.– G é k-cromático.– χ(G) = k .

• Uma coloração de um grafo é uma atribuição de cores aos vértices, de modo que vértices adjacentestenham cores distintas.

• Um grafo G tem k-coloração se ele pode ser coloridocom k cores.

• Se G tem k-coloração mas não pode ter (k-1)-coloração:– O número cromático de G é k.– G é k-cromático.– χ(G) = k .

Page 46: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

46

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Coloração em Grafos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Coloração em Grafos

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Alguns Cenários Interessantes

• χ(G) = 1. O que isso significa?• χ(Kn) = ?• χ(G) = 2. Quando isso ocorre?

• χ(G) = 1. O que isso significa?• χ(Kn) = ?• χ(G) = 2. Quando isso ocorre?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Alguns Cenários Interessantes

• χ(G) = 1. Podemos afirmar que o grafo G não tem arestas.

• χ(Kn) = n. Isso implica dizer que podemos ternúmeros cromáticos grandes.

• χ(G) = 2. Se e somente se é bipartido. E no caso de uma árvore?

• χ(G) = 1. Podemos afirmar que o grafo G não tem arestas.

• χ(Kn) = n. Isso implica dizer que podemos ternúmeros cromáticos grandes.

• χ(G) = 2. Se e somente se é bipartido. E no caso de uma árvore?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Mais considerações

• Não é possível garantir que tipos de grafos são 3-cromáticos.

• Se um grafo tem n vértices, seu número cromáticonão pode ser maior do que n.

• Se Kr é subgrafo de um grafo G, o número cromáticonão pode ser menor do que r.

• Não é possível garantir que tipos de grafos são 3-cromáticos.

• Se um grafo tem n vértices, seu número cromáticonão pode ser maior do que n.

• Se Kr é subgrafo de um grafo G, o número cromáticonão pode ser menor do que r.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Page 47: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

47

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Alguns Teoremas Úteis

• Se G é um grafo e ∆ é o maior grau de seus vértices, então G tem (∆ + 1)-coloração.

• Se G é um grafo conectado que não é completo, e se o maior grau de seus vértices é ∆ (≥ 3), então G tem (∆)-coloração.

• Todo grafo planar pode ter 5-coloração.• Appel e Hasken provaram em 1976 que todo grafo

planar admite 4-coloração.• Como determinar o número cromático de um grafo?

• Se G é um grafo e ∆ é o maior grau de seus vértices, então G tem (∆ + 1)-coloração.

• Se G é um grafo conectado que não é completo, e se o maior grau de seus vértices é ∆ (≥ 3), então G tem (∆)-coloração.

• Todo grafo planar pode ter 5-coloração.• Appel e Hasken provaram em 1976 que todo grafo

planar admite 4-coloração.• Como determinar o número cromático de um grafo?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício 1

1. Uma companhia manufatura os produtos químicos C1, C2, … Cn. Alguns destes produtos podem explodir se colocados em contato com outros. Como precaução contra acidentes, a companhia quer construir k armazéns para armazenar os produtos químicos de tal forma que produtos incompatíveis fiquem em armazéns diferentes. Qual é o menor número k de armazéns que devem ser construídos? Como resolver este problema com a ajuda da teoria dos Grafos?

1. Uma companhia manufatura os produtos químicos C1, C2, … Cn. Alguns destes produtos podem explodir se colocados em contato com outros. Como precaução contra acidentes, a companhia quer construir k armazéns para armazenar os produtos químicos de tal forma que produtos incompatíveis fiquem em armazéns diferentes. Qual é o menor número k de armazéns que devem ser construídos? Como resolver este problema com a ajuda da teoria dos Grafos?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exercício 2

1. Emissoras de televisão vão ser instaladas em estações baseadas em nove cidades de nosso estado (cidades A, B, ..., I). As regulamentações do setor de telecomunicações indicam que uma mesma emissora não pode ser instalada em duas cidades com distância inferior a 150Km. Considere a tabela abaixo que indica as distâncias entre as cidades. Qual o menor número de emissoras para contemplar as nove cidades? Utilize a teoria dos grafos para resolver este problema e justificar a sua resposta.

1. Emissoras de televisão vão ser instaladas em estações baseadas em nove cidades de nosso estado (cidades A, B, ..., I). As regulamentações do setor de telecomunicações indicam que uma mesma emissora não pode ser instalada em duas cidades com distância inferior a 150Km. Considere a tabela abaixo que indica as distâncias entre as cidades. Qual o menor número de emissoras para contemplar as nove cidades? Utilize a teoria dos grafos para resolver este problema e justificar a sua resposta.

Page 48: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

48

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Fluxo em Redes

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Introdução

• Considere a seguinte situação modelada por um grafo:– Cada arco representa uma rua de mão única.– O peso de cada arco indica o maior fluxo possível ao

longo da rua (veículos/hora).• Qual o maior número possível de veículos que pode viajar de

v a w em uma hora?

• Considere a seguinte situação modelada por um grafo:– Cada arco representa uma rua de mão única.– O peso de cada arco indica o maior fluxo possível ao

longo da rua (veículos/hora).• Qual o maior número possível de veículos que pode viajar de

v a w em uma hora?

v

x

z

wy3

4

2

2

1

4

4

1 2

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Rede (de fluxo)

• Uma rede (de fluxo) G = (V, E) é um grafo dirigido em que cada aresta (u, v) ∈ E tem um valor (não-negativo) capacidade c(u,v). Se (u, v) ∉ E, assume-se que c(u,v) = 0.

• Uma rede possui dois vértices especiais: fonte e sorvedouro.• ∀v ∈ V, assume-se que existe um caminho entre a fonte e

sorvedouro que passa por v.• O grafo é, portanto, conectado e |E| ≥ |V| - 1 .

• Uma rede (de fluxo) G = (V, E) é um grafo dirigido em que cada aresta (u, v) ∈ E tem um valor (não-negativo) capacidade c(u,v). Se (u, v) ∉ E, assume-se que c(u,v) = 0.

• Uma rede possui dois vértices especiais: fonte e sorvedouro.• ∀v ∈ V, assume-se que existe um caminho entre a fonte e

sorvedouro que passa por v.• O grafo é, portanto, conectado e |E| ≥ |V| - 1 .

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

v x

t

13

12

14

2016

4

7s

zy

10

9

4

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Fluxo em Rede

• Sejam um grafo G = (V, E), a função capacidade c, uma fonte s e um sorvedouro t. O fluxo em G é uma função f: V×V → REAIS que satisfaz às seguintes propriedades:1. Restrição de capacidade: ∀u,v ∈ V, f(u,v) ≤ c(u,v).2. Simetria: ∀u,v ∈ V, f(u,v) = -f(v,u).3. Conservação do fluxo: ∀u ∈ V – {s, t}, ∑v∈V f(u, v) = 0.

• A quantidade f(u,v) (positiva ou negativa) indica o fluxo da rede a partir do vértice u até o vértice v.

• O fluxo total da rede é |f| = ∑v∈V f(s,v).

• Sejam um grafo G = (V, E), a função capacidade c, uma fonte s e um sorvedouro t. O fluxo em G é uma função f: V×V → REAIS que satisfaz às seguintes propriedades:1. Restrição de capacidade: ∀u,v ∈ V, f(u,v) ≤ c(u,v).2. Simetria: ∀u,v ∈ V, f(u,v) = -f(v,u).3. Conservação do fluxo: ∀u ∈ V – {s, t}, ∑v∈V f(u, v) = 0.

• A quantidade f(u,v) (positiva ou negativa) indica o fluxo da rede a partir do vértice u até o vértice v.

• O fluxo total da rede é |f| = ∑v∈V f(s,v).

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

v x

t

8/13

12/12

11/14

15/2011/16

4/4

7/7s

zy

10

4/9

1/4

Page 49: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

49

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

• |f| = 19.• Apenas os fluxos positivos são mostrados.• Se f(u,v) > 0, mostramos f(u,v)/c(u,v). Caso contrário

mostramos apenas a capacidade.• Pode ser generalizado para redes com múltiplas fontes e

sorvedouros.• Um dos problemas é encontrar o fluxo máximo.

• |f| = 19.• Apenas os fluxos positivos são mostrados.• Se f(u,v) > 0, mostramos f(u,v)/c(u,v). Caso contrário

mostramos apenas a capacidade.• Pode ser generalizado para redes com múltiplas fontes e

sorvedouros.• Um dos problemas é encontrar o fluxo máximo.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Redes Residuais

• Sejam uma rede e um fluxo. Uma rede residual é uma rede com os arcos da rede original que comportam mais fluxo.

• Sejam um grafo G = (V, E), a função capacidade c, um fluxo f, uma fonte s e um sorvedouro t:– Capacidade residual de (u,v):

• cf(u,v) = c(u,v) – f(u,v).• A rede residual induzida por f é Gf = (V, Ef), em que

– Ef = {(u,v) ∈ V×V : cf(u,v) >0}.

• Sejam uma rede e um fluxo. Uma rede residual é uma rede com os arcos da rede original que comportam mais fluxo.

• Sejam um grafo G = (V, E), a função capacidade c, um fluxo f, uma fonte s e um sorvedouro t:– Capacidade residual de (u,v):

• cf(u,v) = c(u,v) – f(u,v).• A rede residual induzida por f é Gf = (V, Ef), em que

– Ef = {(u,v) ∈ V×V : cf(u,v) >0}.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Rede Residual (exemplo)

v x

t8

12

11

15

5

4

7s

zy

11

4

3

11

5

5

3

5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Caminho Expandível

• Seja uma rede G = (V, E) e um fluxo f , um caminho expandível p é um caminho de s para t na rede residual Gf.

• A capacidade residual de um caminho expandível é definida como: – cf(p) = min{cf(u,v) : (u,v) ∈ p}.

• Seja uma rede G = (V, E) e um fluxo f , um caminho expandível p é um caminho de s para t na rede residual Gf.

• A capacidade residual de um caminho expandível é definida como: – cf(p) = min{cf(u,v) : (u,v) ∈ p}.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Caminho Expandível (exemplo)

v x

t8

12

11

15

5

4

7s

zy

11

4

3

11

5

5

3

5

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

O Método de Ford-Fulkerson

• Como determinar o fluxo máximo?– Utilizar os conceitos de grafo residual e caminho

expandível.

• Como determinar o fluxo máximo?– Utilizar os conceitos de grafo residual e caminho

expandível.

BFS(G, s, t)for ∀e ∈ E[G] do

fluxo[e] ← 0

while exisitr um caminho expandível p doaumentar f ao longo de p

return f

Page 50: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

50

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Cortes

• Um corte é uma partição de V em S e T = V – S, emque s ∈ S e t ∈ T

• O fluxo da rede (f(S,T)) através do corte é a soma dos fluxos f(u,v), em que u ∈ S e v ∈ T

• A capacidade (c(S,T)) do corte é a soma dascapacidades c(u,v), em que u ∈ S e v ∈ T

• Corte mínimo – um corte com a menor capacidade• |f|= f(S,T)

• Um corte é uma partição de V em S e T = V – S, emque s ∈ S e t ∈ T

• O fluxo da rede (f(S,T)) através do corte é a soma dos fluxos f(u,v), em que u ∈ S e v ∈ T

• A capacidade (c(S,T)) do corte é a soma dascapacidades c(u,v), em que u ∈ S e v ∈ T

• Corte mínimo – um corte com a menor capacidade• |f|= f(S,T)

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

v x

t

12/12

11/14

15/2011/16

4/4

7/7s

zy

104/9

1/4

8/13

S T

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teorema do Fluxo Máximo-Corte Mínimo

• Se f é o fluxo de G, as seguintes condições sãoequivalentes:1. f é um fluxo máximo de G2. A rede residual Gf não contém caminhos

expandíveis3. |f| = c(S,T) para algum corte (S,T) de G

• Se f é o fluxo de G, as seguintes condições sãoequivalentes:1. f é um fluxo máximo de G2. A rede residual Gf não contém caminhos

expandíveis3. |f| = c(S,T) para algum corte (S,T) de G

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Teoria dos Grafos

Emparelhamento

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Introdução

• Conjunto de arestas M ⊆ E, em que nenhum vértice éincidente a mais de uma aresta.

• Emparelhamento Maximal– Nenhuma aresta e, com M ∪ {e} também formando

um emparelhamento.• Emparelhamento Máximo

– Emparelhamento com o maior |M| possível.

• Emparelhamento Perfeito

– |M| = n/2: cada vértice é incidente a alguma arestade M.

• Emparelhamento com custo mínimo: cada aresta tem um custo associado.

• Conjunto de arestas M ⊆ E, em que nenhum vértice éincidente a mais de uma aresta.

• Emparelhamento Maximal– Nenhuma aresta e, com M ∪ {e} também formando

um emparelhamento.• Emparelhamento Máximo

– Emparelhamento com o maior |M| possível.

• Emparelhamento Perfeito

– |M| = n/2: cada vértice é incidente a alguma arestade M.

• Emparelhamento com custo mínimo: cada aresta tem um custo associado.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Introdução

• Principais problemas:– Seja um grafo G, encontrar:

• Emparelhamento Maximal: fácil (algoritmo guloso)• Emparelhamento Máximo:

– Não é fácil encontrar em tempo polinomial.– Caso mais simples é no caso de grafos bipartidos.

• Emparelhamento perfeito:– Caso especial de emparelhamento máximo

• Aplicações:– Atribuições pessoais: tarefas e competências.– Escalonamento.– Seleção de adversários em competições esportivas.

• Principais problemas:– Seja um grafo G, encontrar:

• Emparelhamento Maximal: fácil (algoritmo guloso)• Emparelhamento Máximo:

– Não é fácil encontrar em tempo polinomial.– Caso mais simples é no caso de grafos bipartidos.

• Emparelhamento perfeito:– Caso especial de emparelhamento máximo

• Aplicações:– Atribuições pessoais: tarefas e competências.– Escalonamento.– Seleção de adversários em competições esportivas.

Page 51: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

51

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Emparelhamento em Grafos Bipartidos

1 2 3

a b c

X

Y

Vértices emparelhados: 2, 3, a, b.Vértices não-emparelhados: 1, c. É um emparelhamento maximal?

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Emparelhamento em Grafos Bipartidos

1 2 3

a b c

X

Y

Emparelhamento máximo.Emparelhamento perfeito.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Como encontrar um emparelhamento máximo?

• Utilizar o método de Ford-Fulkerson para fluxo em rede.• A idéia é determinar um fluxo em rede, em que os fluxos

correspondem aos emparelhamentos.• Definir a rede correspondente G’= (V’, E’), a partir do grafo

bipartido G= (L ∪ R, E):– V’= V ∪ {s, t}.– E’= {(s,u): u ∈ L} ∪ {(u,v): u ∈ L, v ∈ R, (u,v) ∈ E}∪ {(v,t): v ∈ R}

• Assinalar peso 1 para cada aresta em E’.

• Utilizar o método de Ford-Fulkerson para fluxo em rede.• A idéia é determinar um fluxo em rede, em que os fluxos

correspondem aos emparelhamentos.• Definir a rede correspondente G’= (V’, E’), a partir do grafo

bipartido G= (L ∪ R, E):– V’= V ∪ {s, t}.– E’= {(s,u): u ∈ L} ∪ {(u,v): u ∈ L, v ∈ R, (u,v) ∈ E}∪ {(v,t): v ∈ R}

• Assinalar peso 1 para cada aresta em E’.

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Page 52: Apresentação do Curso - dsc.ufcg.edu.brabrantes/CursosAnteriores/TG072/slidesTG072.pdf · As Pontes de Königsberg ... – Diminua o ritmo de apresentação dos slides, se for o

52

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Exemplo

1 2 3 4 5 6

sorvedouro

a b c d e f

fonte

Teoria dos Grafos – 2007.2 © Jorge Figueiredo, DSC/UFCG

Excercício

1

2

3

a

b

c

d

e

4