0% acharam este documento útil (0 voto)
35 visualizações38 páginas

Conceitos de Caminhos em Grafos

Teoria de grafos

Enviado por

ALBANO JOAQUIM
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
35 visualizações38 páginas

Conceitos de Caminhos em Grafos

Teoria de grafos

Enviado por

ALBANO JOAQUIM
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Caminhos

19 de abril de 2021
Caminhos

Seja G = (V, E) um grafo e w = v1 v2 . . . vn um sequências de vértices.


Diz-se que
• w é um caminho, se vi vi+1 ∈ E;
• O caminho w é um ciclo se ele começa e termina no mesmo vértice;
• w é um caminho simples ou ciclo simples se ele não contêm a
mesma aresta mais de uma vez.

Comprimento de um caminho
é o número de arestas desse caminho.
Caminhos

Seja G = (V, E) um grafo e w = v1 v2 . . . vn um sequências de vértices.


Diz-se que
• w é um caminho, se vi vi+1 ∈ E;
• O caminho w é um ciclo se ele começa e termina no mesmo vértice;
• w é um caminho simples ou ciclo simples se ele não contêm a
mesma aresta mais de uma vez.

Comprimento de um caminho
é o número de arestas desse caminho.
Caminhos

Seja G = (V, E) um grafo e w = v1 v2 . . . vn um sequências de vértices.


Diz-se que
• w é um caminho, se vi vi+1 ∈ E;
• O caminho w é um ciclo se ele começa e termina no mesmo vértice;
• w é um caminho simples ou ciclo simples se ele não contêm a
mesma aresta mais de uma vez.

Comprimento de um caminho
é o número de arestas desse caminho.
Caminhos

Seja G = (V, E) um grafo e w = v1 v2 . . . vn um sequências de vértices.


Diz-se que
• w é um caminho, se vi vi+1 ∈ E;
• O caminho w é um ciclo se ele começa e termina no mesmo vértice;
• w é um caminho simples ou ciclo simples se ele não contêm a
mesma aresta mais de uma vez.

Comprimento de um caminho
é o número de arestas desse caminho.
Caminhos

Seja G = (V, E) um grafo e w = v1 v2 . . . vn um sequências de vértices.


Diz-se que
• w é um caminho, se vi vi+1 ∈ E;
• O caminho w é um ciclo se ele começa e termina no mesmo vértice;
• w é um caminho simples ou ciclo simples se ele não contêm a
mesma aresta mais de uma vez.

Comprimento de um caminho
é o número de arestas desse caminho.
Caminhos

Exemplo 1. Considere o grafo G

• abcad não é um caminho;


• ae1 be3 ce4 d é um caminho simples de comprimento 3;
• ae1 be3 ce4 de6 a é um ciclo simples de comprimento 4.
Caminhos

Exemplo 1. Considere o grafo G

• abcad não é um caminho;


• ae1 be3 ce4 d é um caminho simples de comprimento 3;
• ae1 be3 ce4 de6 a é um ciclo simples de comprimento 4.
Caminhos

Exemplo 1. Considere o grafo G

• abcad não é um caminho;


• ae1 be3 ce4 d é um caminho simples de comprimento 3;
• ae1 be3 ce4 de6 a é um ciclo simples de comprimento 4.
Caminhos

Grafo conexo
Um grafo é dito conexo se houver um caminho entre quaisquer dois de
seus vértices.

Teorema
Seja A = (aij ) a matriz de adjacência de um grafo conexo G. Então o
elemento ij da matriz Ak dá o número de caminhos diferentes de
comprimento k entre vi e vj .

Invariante do isomorfismo
Grafos isomorfos têm:
• Mesma quantidade de caminhos de comprimento k.
Caminhos

Grafo conexo
Um grafo é dito conexo se houver um caminho entre quaisquer dois de
seus vértices.

Teorema
Seja A = (aij ) a matriz de adjacência de um grafo conexo G. Então o
elemento ij da matriz Ak dá o número de caminhos diferentes de
comprimento k entre vi e vj .

Invariante do isomorfismo
Grafos isomorfos têm:
• Mesma quantidade de caminhos de comprimento k.
Caminhos

Grafo conexo
Um grafo é dito conexo se houver um caminho entre quaisquer dois de
seus vértices.

Teorema
Seja A = (aij ) a matriz de adjacência de um grafo conexo G. Então o
elemento ij da matriz Ak dá o número de caminhos diferentes de
comprimento k entre vi e vj .

Invariante do isomorfismo
Grafos isomorfos têm:
• Mesma quantidade de caminhos de comprimento k.
Caminhos

Exemplo 2.

Existem 5 caminhos de compri-


mento 2 ligando b ao b, no-
meiadamente: be2 ce2 b, be2 ce3 b,
be3 ce3 b, be3 ce2 b e be1 ce1 b.
Grafos Eulerianos e Semi-eulerianos

Caminho e Ciclo de Euler


• Um caminho contenha cada aresta do grafo,exatamente uma vez
cada, é denominado caminho euleriano;
• Um ciclo que contenha cada aresta do grafo,exatamente uma vez
cada, é denominado ciclo euleriano;
• Um grafo diz euleriano se admite um ciclo euleriano e semi-euleriano
se admite um caminho de euler.

Teorema
• Um grafo conexo G é euleriano se e somente se todo o vértice de G
tem grau par;
• Um grafo conexo G, com |V| > 2 tem um caminho x − y euleriano
sse x e y são os únicos vértices de grau ı́mpar
Grafos Eulerianos e Semi-eulerianos

Caminho e Ciclo de Euler


• Um caminho contenha cada aresta do grafo,exatamente uma vez
cada, é denominado caminho euleriano;
• Um ciclo que contenha cada aresta do grafo,exatamente uma vez
cada, é denominado ciclo euleriano;
• Um grafo diz euleriano se admite um ciclo euleriano e semi-euleriano
se admite um caminho de euler.

Teorema
• Um grafo conexo G é euleriano se e somente se todo o vértice de G
tem grau par;
• Um grafo conexo G, com |V| > 2 tem um caminho x − y euleriano
sse x e y são os únicos vértices de grau ı́mpar
Grafos Eulerianos e Semi-eulerianos

Caminho e Ciclo de Euler


• Um caminho contenha cada aresta do grafo,exatamente uma vez
cada, é denominado caminho euleriano;
• Um ciclo que contenha cada aresta do grafo,exatamente uma vez
cada, é denominado ciclo euleriano;
• Um grafo diz euleriano se admite um ciclo euleriano e semi-euleriano
se admite um caminho de euler.

Teorema
• Um grafo conexo G é euleriano se e somente se todo o vértice de G
tem grau par;
• Um grafo conexo G, com |V| > 2 tem um caminho x − y euleriano
sse x e y são os únicos vértices de grau ı́mpar
Grafos Hamiltonianos

Grafo hamiltoniano
é aquele que possui ciclo hamiltoniano, isto é, um ciclo que contém cada
vértice do grafo exactamente uma vez.

Teorema
|V|
Seja G(V, E) um grafo com pelo menos 3 vértices e tal que d(v) > 2 ,
para todo vértice v ∈ V. Então G é hamiltoniano.
Grafos Hamiltonianos

Grafo hamiltoniano
é aquele que possui ciclo hamiltoniano, isto é, um ciclo que contém cada
vértice do grafo exactamente uma vez.

Teorema
|V|
Seja G(V, E) um grafo com pelo menos 3 vértices e tal que d(v) > 2 ,
para todo vértice v ∈ V. Então G é hamiltoniano.
Grafos Hamiltonianos

Grafo hamiltoniano
é aquele que possui ciclo hamiltoniano, isto é, um ciclo que contém cada
vértice do grafo exactamente uma vez.

Teorema
|V|
Seja G(V, E) um grafo com pelo menos 3 vértices e tal que d(v) > 2 ,
para todo vértice v ∈ V. Então G é hamiltoniano.
Caminhos

Grafo com pesos


é aquele em que cada aresta tem um número associado a ele,
reprentando um custo (peso, distância, tempo, etc). Em outras palavras,
está definida a função
w : E(G) → R+
que atribui um peso, a cada aresta de G.

Exemplo 3. Grafo com pesos


Caminhos

Grafo com pesos


é aquele em que cada aresta tem um número associado a ele,
reprentando um custo (peso, distância, tempo, etc). Em outras palavras,
está definida a função
w : E(G) → R+
que atribui um peso, a cada aresta de G.

Exemplo 3. Grafo com pesos


Caminhos

Observação:
Num grafos com pesos, o comprimento de um caminho é a soma dos
pesos das arestas do caminho, i.e, se c = e1 e2 . . . en

X
n
L(c) = w(ei ).
i=1

Exemplo 4.

• L(acfg) = w(ac) + w(cf) +


w(fg) = 2 + 55 + 21 = 78;
• L(abdeg) =
1 + 3 + 13 + 89 = 106.
Caminhos

Observação:
Num grafos com pesos, o comprimento de um caminho é a soma dos
pesos das arestas do caminho, i.e, se c = e1 e2 . . . en

X
n
L(c) = w(ei ).
i=1

Exemplo 4.

• L(acfg) = w(ac) + w(cf) +


w(fg) = 2 + 55 + 21 = 78;
• L(abdeg) =
1 + 3 + 13 + 89 = 106.
Caminho Mı́nimo

O caminho mı́nimo entre os vértices v e w de um grafo com pesos G


é aquele cuja soma dos pesos das arestas tem o menor valor possı́vel
dentre todos os caminhos existentes entre v e w.
Algoritmo de Dijkstra
Algoritmo de Dijkstra

• O algoritmo começa por etiquetar a com um zero e os outros


vértices com ∞, i.e L(a) = 0 e L(vi ) = ∞.
• Em cada passo, os vértices em S são aqueles para os quais já é
conhecida a distância mı́nima a partir de a.
• com a condição z 6∈ S, o algoritmo termina quando a distância
mı́nima de a a z for conhecida. Ao substituir a condição z 6∈ S por
V(G) 6= S, o algoritmo termina quando é conhecida a distância
mı́nima de a para os restantes vértices do grafo.
• A instrução if L(u) + w(u, v) < L(v) then L(v) = L(u) + w(u, v)
actualiza L(v), tendo sido assim identificado um percurso mais curto
de a para v.
Algoritmo de Dijkstra

• O algoritmo começa por etiquetar a com um zero e os outros


vértices com ∞, i.e L(a) = 0 e L(vi ) = ∞.
• Em cada passo, os vértices em S são aqueles para os quais já é
conhecida a distância mı́nima a partir de a.
• com a condição z 6∈ S, o algoritmo termina quando a distância
mı́nima de a a z for conhecida. Ao substituir a condição z 6∈ S por
V(G) 6= S, o algoritmo termina quando é conhecida a distância
mı́nima de a para os restantes vértices do grafo.
• A instrução if L(u) + w(u, v) < L(v) then L(v) = L(u) + w(u, v)
actualiza L(v), tendo sido assim identificado um percurso mais curto
de a para v.
Algoritmo de Dijkstra

• O algoritmo começa por etiquetar a com um zero e os outros


vértices com ∞, i.e L(a) = 0 e L(vi ) = ∞.
• Em cada passo, os vértices em S são aqueles para os quais já é
conhecida a distância mı́nima a partir de a.
• com a condição z 6∈ S, o algoritmo termina quando a distância
mı́nima de a a z for conhecida. Ao substituir a condição z 6∈ S por
V(G) 6= S, o algoritmo termina quando é conhecida a distância
mı́nima de a para os restantes vértices do grafo.
• A instrução if L(u) + w(u, v) < L(v) then L(v) = L(u) + w(u, v)
actualiza L(v), tendo sido assim identificado um percurso mais curto
de a para v.
Algoritmo de Dijkstra

• O algoritmo começa por etiquetar a com um zero e os outros


vértices com ∞, i.e L(a) = 0 e L(vi ) = ∞.
• Em cada passo, os vértices em S são aqueles para os quais já é
conhecida a distância mı́nima a partir de a.
• com a condição z 6∈ S, o algoritmo termina quando a distância
mı́nima de a a z for conhecida. Ao substituir a condição z 6∈ S por
V(G) 6= S, o algoritmo termina quando é conhecida a distância
mı́nima de a para os restantes vértices do grafo.
• A instrução if L(u) + w(u, v) < L(v) then L(v) = L(u) + w(u, v)
actualiza L(v), tendo sido assim identificado um percurso mais curto
de a para v.
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Exemplo 5. Determine o caminho mı́nimo de a para g

S L(a) L(b) L(c) L(d) L(e) L(f) L(g) Caminhos


0 ∞ ∞ ∞ ∞ ∞ ∞
a - 1 2 1 ∞ ∞ ∞ ab, ac, ad
a,b - - 2 1 ∞ ∞ ∞
a,b,d - - 2 - 14 35 ∞ ade, adf
a,b,d,c - - - - 14 35 ∞
a,b,d,c,e - - - - - 35 103 adeg
a,b,d,c,e,f - - - - - - 56 adfg
a,b,d,c,e,f,g - - - - - - -
Perguntas?

Você também pode gostar