Grafos eulerianos Linha de Euler Em que tipo

  • Slides: 20
Download presentation
Grafos eulerianos

Grafos eulerianos

Linha de Euler • Em que tipo de grafo é possível achar um ciclo

Linha de Euler • Em que tipo de grafo é possível achar um ciclo que passe por cada aresta exatamente uma vez? • Esse ciclo linha de Euler • O grafo que consiste nesta linha: grafo euleriano • Um grafo euleriano é sempre conexo, a menos de vértices isolados.

Teorema Um grafo conexo G é um grafo euleriano sss todos os vértices de

Teorema Um grafo conexo G é um grafo euleriano sss todos os vértices de G são de grau par

Teorema Um grafo conexo G é um grafo euleriano sss ele pode ser decomposto

Teorema Um grafo conexo G é um grafo euleriano sss ele pode ser decomposto em ciclos

Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma

Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)

Ciclos Eulerianos entrada: grafo euleriano G = (V, E) 1. EC ← [w]; 2.

Ciclos Eulerianos entrada: grafo euleriano G = (V, E) 1. EC ← [w]; 2. CV ← w; 3. E´ ← ; 4. enquanto | (w)| > 0 faça 5. se | (CV)| > 1 então 6. encontrar v (CV), {CV, v} não é ponte de G-E´ 7. senão 8. v = o vértice em (CV) 9. fim-se 10. retirar v de (CV) e CV de (v) 11. E´ ← E´ U {{CV, v}} 12. CV ← v; 13. adicionar CV no final de EC CV: vértice que está sendo visitado 14. fim-enquanto E´: conjunto de arestas já traçadas saída: EC EC: lista de vértices ordenada pela seqüência de visitas (v): conjunto de vizinhos de v em G-E´

Exemplo Exercício: Executar o algoritmo para o grafo descrevendo os principais passos e a

Exemplo Exercício: Executar o algoritmo para o grafo descrevendo os principais passos e a idéia do seu funcionamento. g b a c e f d

Grafos Hamiltonianos

Grafos Hamiltonianos

Ciclo Hamiltoniano • Um caminho que contém todos os vértices de G é dito

Ciclo Hamiltoniano • Um caminho que contém todos os vértices de G é dito um caminho hamiltoniano

Caminho e Ciclo Hamiltoniano • Um caminho que contém todos os vértices de G

Caminho e Ciclo Hamiltoniano • Um caminho que contém todos os vértices de G é dito um caminho hamiltoniano • Um ciclo hamiltoniano é um ciclo que contém todos os vértices de G • Nem todo grafo conexo possui um ciclo hamiltoniano

Questão Existe uma condição necessária e suficiente para um grafo conexo possuir um ciclo

Questão Existe uma condição necessária e suficiente para um grafo conexo possuir um ciclo hamiltoniano?

Teorema Se G é hamiltoniano então, para todo subconjunto não-vazio e próprio S de

Teorema Se G é hamiltoniano então, para todo subconjunto não-vazio e próprio S de V, (G-S) |S|

Exemplo n=9 S = {s 1, s 2, s 3} s 21 s 3

Exemplo n=9 S = {s 1, s 2, s 3} s 21 s 3

Grafo de Petersen

Grafo de Petersen

Teorema Se G é um grafo simples com n 3 e n/2, então G

Teorema Se G é um grafo simples com n 3 e n/2, então G é hamiltoniano d b a c

Prova • Seja G um grafo simples e maximal, com n 3 e n/2

Prova • Seja G um grafo simples e maximal, com n 3 e n/2 e não hamiltoniano. Ou seja, não existe nenhum outro grafo com mais arestas do que ele que não seja hamiltoniano • Sejam u e v vértices não adjacentes em G • Como G é maximal, G + {u, v} é hamiltoniano • A aresta {u, v} pode ser adicionada a G pois sabemos que G não é completo, pois por suposição, n 3 e G é não hamiltoniano (todo grafo completo possui um ciclo hamiltoniano) • Como G é não hamiltoniano, todo ciclo hamiltoniano de G+{u, v} contém a aresta {u, v}

Prova • Logo existe o caminho hamiltoniano em G descrito por u = v

Prova • Logo existe o caminho hamiltoniano em G descrito por u = v 1 v 2 v 3. . . vn-1 vn= v • O grafo G pode conter mais arestas do que aquelas pertencentes ao caminho (pois n/2) • Sejam S = {vi | uvi+1 E} e T = {vi | viv E} • vn S e vn T vn S T |S T| < n (I) • Além disso, |S T| = 0 (senão haveria um ciclo hamiltoniano em G) (II) • De (I) e (II): d(u) + d(v) = |S|+|T| = |S T| + |S T| < n+0 = n • Daí, existe algum vértice em G cujo grau é menor que n/2 (contradição) • Logo G é hamiltoniano

Teorema Número de ciclos hamiltonianos com arestas disjuntas em um grafo: em aberto! Em

Teorema Número de ciclos hamiltonianos com arestas disjuntas em um grafo: em aberto! Em um grafo completo esse número pode ser determinado Em um grafo completo com n vértices, existem (n-1)/2 ciclos hamiltonianos com arestas disjuntas, se n é ímpar e n 3.

Exercício • Exiba um grafo euleriano e hamiltoniano • Exiba um grafo euleriano e

Exercício • Exiba um grafo euleriano e hamiltoniano • Exiba um grafo euleriano e não hamiltoniano • Exiba um grafo não euleriano e não hamiltoniano

Exercícios 1. Mostre que |E(Kp, q)| = p*q 2. Seja G = (V, E)

Exercícios 1. Mostre que |E(Kp, q)| = p*q 2. Seja G = (V, E) um grafo com |V| = n e |E| = m. Mostre que se G é um grafo bipartido então m n 2/4. 3. Sejam a, b e c três vértices distintos em um grafo. Existe um caminho entre a e b e também existe um caminho entre b e c. Prove que existe um caminho entre a e c.