UNIPAR Universidade Paranaense Campus Sede Umuarama Tópicos Especiais em Tecnologia da Computação...

Post on 17-Apr-2015

103 views 0 download

Transcript of UNIPAR Universidade Paranaense Campus Sede Umuarama Tópicos Especiais em Tecnologia da Computação...

UNIPARUniversidade Paranaense

Campus Sede Umuarama

Tópicos Especiais em Tecnologia da Computação

(TETC)

Grafos Definição, Terminologia e

Conceitos Elementares

Professora Elaine Augusto Praça

Fevereiro/2008

GERSTING, JudithFundamentos Matemáticos para a Ciência da ComputaçãoEditora LTC, 1995, São Paulo, Cap.5

Sistemas de Informação4º SI

O que é um grafo?

Um grafo é uma representação gráfica de elementos de dados e das conexões entre alguns destes itens.

Uma árvore é um caso particular de grafo. Outros exemplos: interesse de

desempregados por vagas em empresas, rotas de uma companhia aérea.

Qual a importância computacional do uso dos grafos?

É bastante abrangente o uso de grafos na computação em áreas como:

Análise de planejamento de projetos Cibernética Redes de Computadores Circuitos Eletrônicos.

Qual a importância computacional?

Definição

Definição

Um grafo é uma tripla (N, A, g) em que:

N = um conjunto não vazio de vértices (nós ou nodos)

A = um conjunto de arestas (arcos)

g = uma função que associa cada aresta a a um par não-ordenado x-y de vértices chamados extremos de a

Dois vértices são vértices adjacentes se forem os extremos de uma mesma reta.

11

55

22

4433

a5

a2

a1

a4

a3

a61 e 3

(a5)

Adjacência

Duas arestas que possuem um extremo em comum são ditas arestas adjacentes.

11

55

22

4433

a5

a2

a1

a4

a3

a6A1 e a4

(2)

Adjacência

Um laço é uma aresta com extremos n-n para algum nó n.

11

55

22

4433

a5

a2

a1

a4

a3

a6

a3

(2-2)

Laços

Um grafo que não possui laços é chamado grafo sem laços.

11

55

22

4433

a5

a2

a1

a4

a6

Duas arestas que tem os mesmos extremos são ditas arestas paralelas.

11

55

22

4433

a5

a2

a1

a4

a3

a6A1 e a2

(1-2)

Paralelismo

Um grafo simples é um grafo que não tenha arestas paralelas nem laços.

11

55

22

4433

a5

a1

a4

a6

Grafo Simples

Vértice isolado não é adjacente a qualquer outro vértice.

11

55

22

4433

a5

a2

a1

a4

a3

a6 5

Diagramas com arestas paralelas e laços são chamados de pseudografos.

Outros grafos Diagramas com

arestas paralelas são chamados de multigrafos.

GrafoGrafo MultigrafoMultigrafo PseudografoPseudografo

Tipos de Grafos

Grafos simples e multigrafos são pseudografos,

GrafoGrafo MultigrafoMultigrafo PseudografoPseudografo

Tipos de Grafos

Um vértice isolado não é adjacente a qualquer outro vértice.

O grau de um vértice é número de arestas que o tem como ponto extremo.

Como a função g relaciona cada aresta a seus extremos, cada aresta tem um único par de pontos extremos.

11

55

22

4433

a5

a2

a1

a4

a3

a6

Vértice 1: grau 3

Vértice 5: grau 0

Vértice 2: grau 5

g(a1)= 1-2; g(a6)= 3-4; g(a3)= 2-2

Grau

Grafos completos

Um grafo completo é aquele no qual todos os vértices distintos dois a dois são adjacentes.

Kn é um grafo completo com n vértices. Exemplo: K4

Exemplos Kn (grafos completos)

KK22 K K33 KK44 KK55

Grafos Completos

Um subgrafo de um grafo consiste em um conjunto de vértices e um conjunto de arestas que são subconjuntos de vértices e arestas originais, nos quais os extremos de qualquer aresta são os mesmos que no grafo original.

Subgrafo11

5522

4433

a5

a2

a1

a4

a3

a6

1122

33

a5

a1

a4

44

5522

33a4

a3

a6

Grafos e subgrafos G1, G2, G3, G4 e G5 são subgrafos

de G com os vértices V={1,2,3,4}.

11

G2G2

22

44

33

11

22

44

33

GG

11

G1G1

22

44

33

11

G3G3

22

44

33

11

G4G4

22

44

33

11

G5G5

22

44

33

Grafos e subgrafos

O grafo G1 se destaca dos demais pois este possui todas as arestas que estão no grafo G. O grafo G1 é chamado de sub-grafo induzido pelo conjunto de vértices {1,2,3,4}.

11 55

22

44

33

GG

11

G1G1

22

44

33

Grafos e subgrafos H e J são subgrafos induzidos de G

sobre os conjuntos Vh={1,3,4,5,6} e Vj={6,1,5}.

Q não é um subgrafo induzido por V={1,3,4,5,6} pois a aresta 1-4 não faz parte do subgrafo.

11

GG

66

3322

44

55

11

HH33

44

5566

556611

JJ11

33

44

5566

QQ

Grafos e subgrafos

Definições: 1- Dado um grafo G=(V, a) dizemos que o grafo G1=(V1,a1) é um subgrafo de G se V1 é um subconjunto de V (podendo ser igual a V) e as arestas de a1 são um subconjunto das arestas a.

2- Dizemos que G1 é um subgrafo induzido por V1 se todas as arestas V1V2 de a tais que V1 e V2 pertencem a V1 então V1V2 também pertence a a1.

Desconectando um grafo O grafo Q foi obtido do grafo P

removendo-se o vértice 4 e suas arestas incidentes. P é conexo e Q é desconexo com duas componentes conexas e 4 é o vértice de corte.

11

33 44 55

6622

77PP

11

33 55

6622

77QQ

Desconectando um grafo O grafo N foi obtido de M removendo-se a

aresta 3-4. O grafo M é conexo e N é desconexo. A aresta 3-4 é chamada de aresta de corte ou ponte.

11

33 44

55

6622

MM 11

33

55

6622

NN

44

Desconectando um grafo

Muitas vezes, para se desconectar um grafo é necessário remover um ou mais vértices ou arestas e um conjunto mínimo de vértices que desconecta um grafo é chamado de vértices de corte.

De modo análogo, temos arestas de corte.

Desconectando um grafo

Nas figuras abaixo as arestas {4-7,5-6} são arestas de corte e este conjunto é mínimo pois removendo-se apenas uma das arestas o grafo não desconecta.

11

33

55

22 44

66

77

88

11

33

55 66

22 44

77

88

Desconectando um grafo

As arestas {4-7,5-6,6-7} também desconectam o grafo, mas elas não são consideradas arestas de corte, pois este não é um subconjunto mínimo de corte, já que existe o subconjunto {4-7, 5-6} contido em {4-7, 5-6, 6-7} que desconecta o grafo.

11

33

55 66

22 44

77

88

11

33

55 66

22 44

77

88

Um caminho é uma seqüência de vértices e arestas, onde para cada i, os extremos da aresta ai são ni-ni+1.

Caminho

1155

22

4433

a5

a2

a1

a4

a3

a6

Alguns Caminhos possíveis vértices 2-4=

2, a1, 1, a2, 2, a4, 3, a6, 4

Ou

2, a4, 3, a6, 4

Ou...

O comprimento de um caminho é o número de arestas que ele contém.

Comprimento

1155

22

4433

a5

a2

a1

a4

a3

a6

Caminhos \ comprimento

2, a1, 1, a2, 2, a4, 3, a6, 4 ►comprimento 4

2, a4, 3, a6, 4 ►comprimento 2

Um grafo é conexo se houver um caminho entre quaisquer dois vértices.

Conexão

1155

22

4433

a5

a2

a1

a4

a3

a6

11 22

33

a5

a2

a1

a4

a3

Não conexo (vértice 5 isolado)

Conexo (caminhos entre 2 vértices)

Um ciclo é um caminho de algum vértice n até n de novo de forma que nenhum vértice ocorra mais de uma vez no caminho.

Um grafo sem ciclos é dito grafo acíclico.

Ciclos

1155

22

4433

a5

a2

a1

a4

a3

a6

Ciclo: 1, a1, 2, a4, 3, a5, 1

Denomina-se complemento de um grafo G(V,E) ao grafo G, o qual possui o mesmo conjunto de vértices do que G tal que para todo par de vértices distintos v, w de V, tem-se que (v,w) é aresta de G se e somente se não o for de G.

Complemento55

66

44

33

2211

66

55 44

33

22

11

Grafos Regulares e Completos Um grafo é dito regular se todos os seus

vértices possuem o mesmo grau. Um grafo é dito completo se existe uma

aresta ligando todos os pares de vértices. Exemplos de grafos regulares:

Um grafo cujos vértices têm o mesmo grau é chamado de grafo regular.

Grafos Regulares

Grau 1 Grau 2 Grau 3 Grau 4

Grafos Regulares e Completos

Dado um grafo kn (grafo completo com n vértices), este possui o número máximo de arestas.

Cada vértice tem grau n-1, logo todo grafo

completo é necessariamente regular.

PRÁTICA 1 (219)

Trace um grafo que tenha: os vértices {1,2,3,4,5}, as arestas {a1, a2, a3, a4, a5, a6} e a função g(a1)= 1-2,

g(a2)= 1-3,

g(a3)= 3-4,

g(a4)= 3-4,

g(a5)= 4-5,

g(a6)= 5-5.

PRÁTICA 2 (219)

Encontre:

a - dois vértices que não sejam adjacentes;

b - um vértice que seja adjacente a ele mesmo;

c - um laço;

d - duas arestas paralelas;

e - o grau do vértice 3;

f - um caminho de comprimento 5;

g - um ciclo;

h - o complemento deste grafo. Este grafo é completo? Este grafo é conexo?

Grafos Isomorfos 07-06 paramos aqui

BB

AA DD

CC

aa11 aa22

BB

AA DD

CC

aa22

aa11

22

3344

11

ee11

ee22

f1:

1→a

2 →b

3 →c

4 →d

f2:

a1→e2

a2 →e1

Grafos Isomorfos

Dois grafos podem parecer muito diferentes em suas representações gráficas, mas serem, ainda assim, o mesmo grafo de acordo com nossa definição de grafo.

Os grafos apresentados anteriormente são os mesmos, pois tem os mesmos vértices, as mesmas arestas e a mesma função de associação de arestas e seus extremos.

Grafos Isomorfos

Para mostrar que dois grafos são isomorfos é preciso produzir novos rótulos (por meio de uma função injetiva e sobrejetiva) e então mostrar que a lista de quais arestas conectam quais vértices é preservada.

Grafos Isomorfos

Dados G1={V1, a1} e G2={V2, a2}:

V1={A, B,C,D}

a1={AC, CD, DA, AB, CB, DB}

V2 = {A1,A2,A3,A4}

a2 = {A1A2,A2A3,A3A4,A1A4,A2A4,A3A1}

Ambos possuem 4 vértices e 6 arestas. Desenhe G1 e G2

Grafos Isomorfos Se trocamos no gráfico G1:

A A1 D A3 C A2 B A4 Cada aresta de G1 será transformada em uma

aresta de G2AC A1A2 DA A3A1 CD A2A3

CB A2A4 AB A1A4 DB A3A4

BB

AA DD

CC

GG11

AA11

AA44

AA22

AA33

GG22

Grafos Isomorfos Dados dois gráficos G1=(V1, a1) e G2=(V2, a2)

são ditos isomorfos se existe uma função 1-1

f: V1 V2

de modo que dois vértices quaisquer de V1, A e B são adjacentes se e somente se f(A) e f(B) são vértices adjacentes em V2.

Grafos Isomorfos

A função f(Ui)=Vi, i=1, 2...,6, faz corresponder a cada aresta de G1 uma aresta de G2 e reciprocamente.

U3U3

U6U6 U2U2

U4U4

U5U5

U1U1

V3V3

V1V1 V2V2

V5V5

V4V4

V6V6

Condições que garantem que dois grafos não são isomorfos

Um grafo tem mais vértices que o outro; Um grafo tem mais arestas que o outro; Um grafo tem arestas paralelas e outro não; Um grafo tem um laço e o outro não; Um grafo tem um vértice de grau k e o outro

não; Um grafo é conexo e o outro não; Um grafo tem um ciclo e o outro não.

Grafos Isomorfos

(a)(a) (b)(b)

PRÁTICA 6 (222): Os grafos abaixo são isomorfos?

Grafos Isomorfos

(a)(a) (b)(b)EXEMPLO 5 (222): Os grafos (a) e (b) são isomorfos?

Verifique o grau de cada aresta, quantidade de vértices e arestas, adjacência entre os vértices ...

Grafos Isomorfos

Os dois grafos apresentados anteriormente não são isomorfos. Ambos tem 6 vértices e 7 arestas, não tem arestas paralelas nem laços, são conexos, tem 3 ciclos e 4 vértices de grau 2 e 2 vértices de grau 3.

No entanto, o grafo (b) tem um vértice de grau 2 que é adjacente a dois vértices de grau 3, o que não ocorre no grafo (a), portanto os grafos não são isomorfos.

Grafos Isomorfos Grafos isomorfos

podem ter representações gráficas diferentes mas são essencialmente o mesmo grafo. Portanto, na teoria dos grafos, quaisquer dois grafos isomorfos são considerados um mesmo grafo.

(a)(a) (b)(b)

PRÁTICA 5 (221): Os grafos (a) e (b) são isomorfos? Se forem, descreva as bijeções.

1

4 5

3

6

2d

e

f

c

ab

Grafos Isomorfos (a)(a)

(b)(b)

PRÁTICA 5 (221):

1→d

2 →e

3 →f

4 →c

5 →b

6 →a

1

4 5

3

6

2

d

e

f

c

ab

Grafos Homeomorfos

Serão quando ambos puderem ser obtidos do mesmo grafo por uma seqüência de subdivisões elementares, nas quais uma única aresta x-y é substituída por duas novas arestas x-v e v-y, conectando-se em um novo vértice v.

66

77

88

66

77

88

55

99

66

77

88

55

99

Grafos Bipartidos Completos Seus vértices podem ser particionados em

dois conjuntos não-vazios N1 e N2, tais que dois vértices x e y sejam adjacentes se, e somente se, x Є N1, e y Є N2.

Se |N1| = m e |N2|= n, então este grafo é Km,n

1 2

3 4 5

N1 = {1,2}

N2 = {3,4,5}

K2,3

Grafos Bipartidos Completos Desenhe K3,3

Grafos bipartidos Se podemos repartir os vértices de um grafo

em dois subconjuntos V1 e V2 de modo que todas as arestas do grafo ligam um vértice de V1 com um vértice de V2, chamamos este grafo de grafo bipartido ou bipartite.

11

33 55 66

22

44 77

V1= {1,2}

V2= {3,4,5,6,7}

Grafos bipartidos completos

O grafo abaixo é também bipartite e além disso todos os vértices de V1 estão ligados com todos os vértices de V2. Este tipo de grafo é chamado de bipartido (ou bipartite) completo.

11

33 55 66

22

44 77

V1= {1,2}V1= {1,2}

V2= {3,4,5,6,7}V2= {3,4,5,6,7}

Grafos Bipartidos Completos

N1 = {1,2}

N2 = {3,4,5}

K2,3

11 22

33 44 55

Grafos Bipartidos Completos

Existe algum processo eficiente para se reconhecer grafos bipartidos?

Teorema:

Um grafo G(V,E) é bipartido se e somente se todo ciclo de G possuir comprimento par.

Grafos Bipartidos Completos

Prova:

Seja v1, ..., vk um ciclo de comprimento K do grafo bipartido G e seja v1 um vértice de V1. Logo, v2 pertence a V2, v3 pertence a V1, v4 pertence a V2, e assim por diante. Como (vk,v1) pertence a E, vK pertence a V2.

Exercício

O grafo abaixo é um grafo bipartite? Se sim, ele é um grafo bipartite completo? Qual uma outra forma de se desenhar este

grafo?

11

66

3322

44

55

Grafos Planares (planaridade) É um grafo que pode ser desenhado em um

plano (folha de papel) e forma que suas arestas se interceptem apenas em vértices.

PRÁTICA 9 (223): Demonstre planaridade em K4

Grafos Planares (planaridade) Planaridade em K5

5

4 3

2

1

5

4 3

2

1

5

4 3

2

1

PRÁTICA 10 (224): Mostre que se colocássemos

As arestas 1-3 e 1-4 como exteriores ao construir K5, seríamos levados, novamente a uma situação de interceptação das arestas.

Fórmula de Euler paramos 27-05

Um grafo simples, conexo e planar (sem intersecção de arestas, divide o plano em um número de regiões, incluindo as regiões totalmente fechadas e uma região infinita exterior. Euler observou a relação entre o número n de vértices, o número a de arestas e o número r de regiões neste tipo de grafos, sendo como:

n - a + r = 2

Fórmula de Euler PRÁTICA 11 (224): Verifique a fórmula de

Euler para o grafo conexo abaixo:

d

e

f

c

a

b

n - a + r = 2

Ordem, Tamanho e Distância

Dado um grafo G=(V,a), o número de vértices de G é chamado de ordem de G e é denotado por |V|.

O número de arestas de um grafo é chamado de tamanho do grafo e é denotado por |a|.

A distância entre dois vértices V1 e V2 de G é o comprimento do menor caminho entre V1 e V2.

Ordem, Tamanho e Distância

G=(V,a)

V={A,B,C,D,E,F}

Ordem de GOrdem de G |V|=6|V|=6

Tamanho de GTamanho de G |a|=9|a|=9

DistânciaDistância d(B,E)=1d(B,E)=1

DistânciaDistância d(B,D)=2d(B,D)=2

BB

CC

FF

EE

AA

DD

1º Teorema da Teoria dos Grafos

“Dado um grafo G então a soma dos graus de seus vértices é igual ao dobro do número de arestas.”

Este resultado é claro pois, ao contarmos o número de arestas de cada vértice estamos contando cada aresta duas vezes.

VV33

VV22 VV11

VV44

Este teorema pode ser traduzido numa fórmula. Sejam V1, V2, ...,Vn os vértices, grau(V1) o grau do vérticeV1 e |a| o tamanho do grafo, então:

VV33

VV22 VV11

VV44

1º Teorema da Teoria dos Grafos

grau(V1)+grau(V2)+...+grau(Vn) = 2 |a|

1+3+2+2 = 2*4 8=8

1º Teorema da Teoria dos Grafos

É possível construir um grafo com 3 vértices ímpares e outros pares?

Não, pois se existe tal gráfico então a soma dos graus dos vértices ímpares será ímpar e a soma dos graus dos vértices pares será um número par. Logo a soma total dos graus será um número ímpar somado a um número par que é ímpar. Isto contraria o 1º Teorema.

Logo tal grafo não existe.

Caminhos e Ciclos Eulerianos

Um caminho é dito euleriano se este passa uma única vez em cada aresta de um grafo.

Um ciclo que percorre todas as arestas de um grafo uma única vez é chamado de ciclo euleriano em homenagem a Euler.

Caminhos e Ciclo Eulerianos

Dado o grafo abaixo, o caminho 123413 é um caminho euleriano, porém não é um ciclo euleriano, já que os vértices de início e fim do caminho não coincidem.

11

2233

44

Caminhos e Ciclos Eulerianos

Não existem caminhos eulerianos para o multigrafo acima.

11

22

33

44

Caminhos e Ciclos Eulerianos Suponhamos, por absurdo, que existe um caminho C

euleriano. Neste caso, existem pelo menos dois vértices X e Y que não são nem início nem fim do caminho C. Cada vértice tem grau 3. Logo, quando C entra em X este deve sair por uma aresta diferente restando, portanto, uma aresta incidente a ser percorrida.

Quando esta aresta for percorrida, ela deve entrar em X e não pode mais sair. Isto só pode ocorrer se X for um ponto final, mas X foi escolhido como não final. Isto é uma contradição.

Logo, este caminho euleriano não existe.

Caminhos e Ciclos Eulerianos

Teorema: “Um grafo G conexo possui um ciclo euleriano se e somente se todo vértice de G possui grau par.”

Este teorema é nos dois sentidos:Se o grafo possui ciclo euleriano então o grau

dos vértices é par.Se o grau dos vértices é par então o grafo

possui ciclo euleriano.

Caminhos e Ciclo Eulerianos

O grafo abaixo possui pelo menos um vértice de grau 3, logo não possui um ciclo euleriano.

Isto não o impede de possuir um caminho euleriano que não seja um ciclo.

11

2233

44