C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

14
CAMINHOS E CAMINHAMENTOS EM GRAFOS Leandro Guarino de Vasconcelos

Transcript of C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

Page 1: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

CAMINHOS E CAMINHAMENTOS EM GRAFOSLeandro Guarino de Vasconcelos

Page 2: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

CAMINHAMENTO EM GRAFOS

Caminhar (ou percorrer) um grafo consiste em visitar todos os seus vértices atravessando todas as suas arestas

O caminhamento pode ocorrer utilizando busca em profundidade ou busca em largura

A representação por lista de adjacências facilita o processo de caminhamento em grafos

Page 3: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

BUSCA EM PROFUNDIDADE Enquanto for possível, aprofundar-se no grafo. Quando não for

mais possível, recuar até que seja possível continuar a aprofundar-se.

A ordem em que os nós e arestas são visitados depende Do vértice inicial Da ordem em que os vértices e arestas aparecem na lista de

adjacências

8

9

1

5

4

2

6

3

7

101

46

7

8

32

10

5

9

11ºº

22ºº

33ºº

44ºº

55ºº

66ºº

77ºº 88

ºº

99ºº

10º10º

Page 4: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

BUSCA EM PROFUNDIDADE

Esse processo de busca pode ser representado por meio de uma árvore binária

8

9

1

5

4

2

6

3

7

101

46

7

8

32

10

5

9

11ºº

22ºº

33ºº

44ºº

55ºº

66ºº

77ºº 88

ºº

99ºº

10º10º

1

4

6 5

7

8 3

2 10

9

Page 5: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

BUSCA EM PROFUNDIDADE Caminhamento na lista de adjacências A árvore de busca em profundidade é gerada através de uma pilha

D

A

E

B C

F G

H

A

B

C

D

E

F

G

H

B C

A

B H

F G

A D E

B H

C H

C H

D E F G

11A

D E

B C

F G

H

22

33

44

55 66

77

88 X

X

X

X

X

X

XX

não visitado

visitado

Page 6: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

ALGORITMO DE BUSCA EM PROFUNDIDADEProcedimento BUSCA-PROF Para i = 1,...,n faça visitado(i) não fim-para Para i = 1,...,n faça Se visitado(i) = não então PROF(i) fim-paraFim Procedimento PROF(nó v)

visitado(v) sim Para cada nó w adjacente a v faça Se visitado(w) = não então PROF(w) fim-paraFim

Procedimento PROF(nó v) visitado(v) sim Para cada nó w adjacente a v faça Se visitado(w) = não então PROF(w) fim-paraFim

Page 7: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

BUSCA EM LARGURA

Enquanto for possível, examinar todos os nós à mesma distância do nó inicial. Quando não for mais possível, aprofundar.

Usa uma fila ao invés de uma pilha no processo de caminhamento

8

9

1

5

4

2

6

3

7

101

46

7

8

32

10

5

9

11

44

77

1010

88

665599

33

22

Page 8: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

BUSCA EM PROFUNDIDADE X BUSCA EM LARGURA

D

A

E

BC

F G

B C

A

F

G

D

E

Árvore de busca em Árvore de busca em profundidadeprofundidade

(pilha)(pilha)

Árvore de busca em Árvore de busca em profundidadeprofundidade

(pilha)(pilha)

D E

A

F G

CB

Árvore de busca em larguraÁrvore de busca em largura

(fila)(fila)

Árvore de busca em larguraÁrvore de busca em largura

(fila)(fila)

Page 9: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

BUSCA EM LARGURA

Caminhamento na lista de adjacências

D

A

E

B C

F G

H

A

B

C

D

E

F

G

H

B C

A

B H

F G

A D E

B H

C H

C H

D E F G

11A

D E

B C

F G

H

22

44

88

55 66

33

77

não visitado

visitado

FilaFila

AA

ww = =

BB

A A

BBCC

B B

CCDD CCDDEE

C C

DDEEFF DDEEFFGG

D D

EEFFGGHH

E E F F G G H H

Page 10: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

ALGORITMO DE BUSCA EM LARGURA

Procedimento BUSCA-AMPL(v) visitado(v) sim Colocar v em uma fila Enquanto fila não vazia faça w retirar o elemento da frente da fila Para cada vértice i adjacente a w faça Se visitado(i) = não então visitado(i) sim Colocar i no final da fila fim-se fim-para fim-enquantoFim

Page 11: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

APLICAÇÕES A solução de certos problemas não requerem

que se encontre um caminho qualquer, mas um caminho específico Exemplo: caminho mínimo

Usando busca em largura obtemos o menor caminho em termos do número de arestas percorridas

Mas se tivermos pesos associados a arestas, a busca em largura não resolve

Page 12: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

ARESTAS VALORADAS

Na solução de diversos problemas, temos a associação de pesos, custos ou distâncias a cada aresta de um grafo

Caminho mais curto Caminho mais rápido Caminho mais barato etc.

Page 13: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

EXERCÍCIO 1

Lista de adjacências

1 2, 72 3, 1, 83 2, 44 3, 5, 95 4, 9, 6, 76 5, 87 1, 58 2, 6, 99 4, 5, 8

1 2

4

7

6

3

8

59

Vértice inicial

Page 14: C AMINHOS E CAMINHAMENTOS EM G RAFOS Leandro Guarino de Vasconcelos.

EXERCÍCIO 2

Lista de adjacências

1 2, 3, 42 1, 43 1, 44 2, 1, 3, 5, 6, 75 46 4, 87 4, 88 6, 7

1 2

4

63

7

5

8

Vértice inicial