algoritmos em grafos conceitos principais prof. andré renato 1º semestre / 2012

43
Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Upload: internet

Post on 18-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Algoritmos em Grafos

Conceitos principais

Prof. André Renato

1º Semestre / 2012

Page 2: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

O que é um grafo?Um grafo G(V,E) é um conjunto

finito não-vazio de V e um conjunto E de pares não ordenados de elementos distintos de V.

Os elementos de V são denominados vértices e os elementos de E são denominados arestas.

A ordem de um grafo é a cardinalidade do conjunto de vértices V.

Page 3: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosCada aresta e E pode ser

representada pelos vértices (v1,v2) que a formam.

Os vértices v1 e v2 são chamados de extremos da aresta e. Também são classificados como adjacentes.

A aresta e é dita incidente a v1 e v2.

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

Page 4: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosUm subgrafo G2(V2,E2) de um

grafo G1(V1,E1) é um grafo tal que V2 V1 e E2 E1.

Se além disso, G2 possuir toda aresta (v,w) de G1 de forma que ambos v e w estejam em G2, este é considerado induzido pelo conjunto de vértices V2.

Page 5: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Conceitos1 2

3

4 5

1 2

3

4

1 2

3

4

Page 6: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosNormalmente um grafo pode ser

visualizado através da sua representação geométrica, na qual os vértices são representados por pontos (ou pequenos círculos) e as arestas por linhas que conectam estes pontos.

Page 7: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosComo desenhar um grafo?

◦O único cuidado que devemos ter para representar corretamente um grafo é preservar a correta relação de arestas com os seus respectivos vértices incidentes.

Page 8: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosIsomorfismo:

◦Dadas duas representações geométricas distintas, correspondem elas ao mesmo grafo?

◦É possível fazer coincidir os vértices de duas representações de modo a preservar as relações de adjacência?

◦Em caso afirmativo, os grafos são chamados de isomorfos entre si.

Page 9: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosIsomorfismo:

1 2 3 4

5678

b

f c

a

g

d

eh

i

j

k

p

onm

l

Page 10: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosExistem arestas cujos extremos

sejam o mesmo vértice?

Sim; estas arestas são chamadas de laços (loopback).

Aplicações????

...

...

Page 11: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosPode existir grafos com mais de

uma aresta incidente aos mesmos vértices?

Sim; neste caso, o grafo é chamado de multigrafo. As arestas são chamadas de paralelas.

Aplicações???

Page 12: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosUma aresta e, incidente a v1 e

v2, provê uma relação reflexiva entre estas vértices. Ou seja, v1 está conectado a v2 da mesma forma que v2 está conectado a v1.

Uma aresta onde esta propriedade reflexiva não esteja preservada é pode ser chamada de arco e normalmente é representada por uma seta.

v1 v2

Page 13: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosNeste caso a relação de v1 para

v2 é distinta da relação de v2 para v1.

Grafos que possuam arcos são chamados de grafos direcionados (digrafos); os demais, de grafos não-direcioanados.

Uma aresta e = (v1,v2) pode ser entendida como um par de arcos (v1,v2) e (v2,v1).

v1 v2 v1 v2

Page 14: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosGrau de um vértice v:

◦é a quantidade total de arestas incidentes a v;

◦Em grafos direcionados, existem o grau de entrada e o grau de saída;

◦Grau de entrada: é a quantidade de arcos que chegam a v;

◦Grau de saída: é a quantidade de arcos que partem de v;

Page 15: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosGrau de um vértice v:

◦um vértice com grau de entrada zero é chamado de fonte;

◦um vértice com grau de saída zero é chamado de sumidouro;

Page 16: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosVértices que possuam grau igual a zero,

são chamados de desconexos.G será totalmente desconexo se não

possuir arestas.Um grafo será considerado conexo se e

somente se for possível sair de v e chegar a w, para todo par de vértices (v,w) do grafo. Será desconexo, caso contrário.

O grafo será fortemente conexo, se for possível sair de v, chegar a w e voltar a v, para todo par de vértices (v,w) do grafo.

Page 17: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Conceitos

Verificar!!!!

Vv

Evgrau ||2)(

Page 18: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosQual a quantidade mínima de

arestas um grafo deve ter para não ser desconexo?

Qual a quantidade máxima de arestas um grafo pode ter?

Considerar |V| = n e |E| = m.

Page 19: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosGrafos regulares são aqueles

em que todos os vértices possuem o mesmo grau.

Page 20: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosSeja G(V,E) um grafo conexo. Um corte de vértices de G é um subconjunto de vértices de G que, se forem removidos, tornam G desconexo.

É possível fazer uma analogia para um corte de arestas.

Conectividade de vértices e conectividade de arestas é a cardinalidade dos respectivos menores subconjuntos.

Page 21: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Conceitos1

42

3

5

76 8

2

5

76 8

1 1

42

3

5

76 8

• Seja um inteiro k positivo, diz-se que G é k-conexo em vértices (arestas) quando sua conectividade de vértices (arestas) é ≥ k.

• O primeiro grafo é 1-conexo em vértices, 1- e 2-conexo em arestas.• 2-conexo -> biconexo

Page 22: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosUma articulação é um vértice v

que, se removido, torna o grafo desconexo.

Uma ponte é uma aresta que causa o mesmo efeito.Componentes biconexos

(blocos)

Page 23: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosGrafos que possuam arestas

entre todos os pares de vértices de V são chamados de grafos completos.

Um grafo completo pode ser representado pela notação Kn, onde n é a ordem do grafo.

K5

Page 24: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosO complemento de um grafo

G(V,E) é em grafo G que possuam todos os vértices de V e todas as arestas que faltam a E para que G seja completo.

Page 25: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosClique é um subgrafo G2 de G1,

tal que G2 seja completo.Clique maximal é o subgrafo G2

de maior ordem possível. Ou seja, é o maior subgrafo completo de G1.

Page 26: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosEm um grafo G(V,E), uma partição é a divisão do conjunto V em dois ou mais subconjuntos com interseção vazia. A união desses subcojuntos deve resultar em V.

Além disso, as arestas de E só podem conectar vértices de subcojuntos distintos.

O caso mais usual é de grafos bi-partidos (bipartite).

Page 27: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Conceitos

Page 28: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosSeja um grafo G(V,E) e um

conjunto de cores C={ci}, uma coloração de G é uma atribuição de cores aos vértices de V, sem que vértices adjacentes tenham a mesma cor.

Page 29: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosUma k-coloração de G é uma

coloração que utiliza k cores. Diz-se que G é k-colorível.

O número cromático X(G) de um grafo G é o menor número de cores k, para o qual existe uma k-coloração.

Page 30: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosSeja G um grafo e R sua

representação geométrica. R é dita plana quando não houver cruzamento de linhas.

Um grafo que possuir pelo menos uma representação plana é chamado de planar.

Page 31: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosG é imersível em uma superfície

S se possuir uma representação R desenhada em S, tal que duas linhas não se cruzem.

Neste caso, as linhas dividem a superfície em faces. Existem sempre uma face não limitada chamada de externa.

f1f2

f3f4

Page 32: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosFórmula de Euler para poliedros:n + f = m +2Cada face é limitada por, no

mínimo 3 arestas. Cada aresta pertence a exatamente duas faces. Logo, 2m ≥ 3f.

Aplicando,m ≤ 3n -6, para que um grafo seja

planar.

Page 33: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosSe a um grafo G(V,E) for

associada uma função f:E=>R, diz-se que o grafo é ponderado em arestas.

Em outras palavras, cada aresta do grafo deve estar associada a um número real.

2 3

-1-0.5

Page 34: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosO valor associado a cada aresta é

chamado de peso da aresta.Uma aresta pode ter peso zero,

dependendo do problema relacionado.

Um grafo também pode ter pesos associados aos vértices. Neste caso, é denominado ponderado em vértices.

Page 35: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosGrafos que não possuam pesos,

são chamado de não-ponderados.

Dependendo do problema a ser estudado, valores específicos (pesos) podem ser dados a vértices e arestas.

Outro atributos também podem ser associados a estes elementos.

Page 36: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosSejam G1(V,E1) e G2(V,E2) dois

grafos que compartilham o mesmo conjunto de vértices, tal que E1 E2.

Um grafo G(V,E) é considerado grafo-sanduíche de (G1,G2) se E contiver E1 e estiver contido em E2.

Page 37: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

ConceitosG1 G2

G G G G

G G G

Page 38: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

AplicaçõesRoteamento

3

2

1

3 2 2

3

1

4

Page 39: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

AplicaçõesEscalonamento

Page 40: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

AplicaçõesRedes

1

3

2

10

3

2

4

3

2

2

1

53

2

Page 41: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Exercícios Identificar:

a) Ordem do grafo

b) Graus dos vértices

c) Dois isomorfos

d) Subgrafo induzido por {1,3,4,5,8}

e) Dois subgrafos não-induzidos por {2,4,6,7,8}

f) O grafo é conexo, fortemente conexo ou desconexo?

1

2

9

8

4

6

5

7

3

Page 42: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Exercícios Identificar:

a) Conectividade de vértices e arestas

b) Pontes e articulações

c) Dois blocos

d) Cliques de tamanho 3 ou maior

e) K-coloração (a menor possível)

f) Um subgrafo planar de ordem 5 ou maior

g) Complemento do grafo

1

2

9

8

4

6

5

7

3

Page 43: Algoritmos em Grafos Conceitos principais Prof. André Renato 1º Semestre / 2012

Exercícios Desenhar todos os grafos sanduíche:

1

2

8

5

4

67

3

1

2

8

5

4

67

3