1
Árvores Geradoras Mínimas IIProf. Celso A. W. Santos
J702 :: Teoria de Grafos
15/05/2020
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
2
Avisos
� Lista #4 recebida!. Não consegui corrigir todos os trabalhos.... Mas gostei muito dos trabalhos que já li :)
� Lista #5 será disponibilizada durante o final de semana. Parecida com a Lista #3, no sentido de “rodar o algoritmo”. Não será tão longa quanto a Lista #3
� Sobre a nota do semestre. Listas #1-#5: 5.0 pontos (máx. 4.0). Lista de Revisão: 1.0 ponto
– Haverá um formato de submissão e prazo de entrega. Não enviemantes!
. Exercícios Online: 1.0 ponto
. Prova NP2: 5.0 pontos
. Fórmula final:
NF = min{4.0, NL#1-#5}+ NMódulo + NLista + NP2
3
Correção da Lista #4
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
4
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova.1 G é uma árvore. Logo ele é acíclico e conexo.2 Sejam u e v dois vértices arbitrários de G. O fato de que u e vpodem ser quaisquer dois vértices de G é importante! Porque se valepara estes dois vértices arbitrários, vale para todo par de vértices.
3 Queremos provar que existe um único caminho entre u e v. Issoimplica que precisamos mostrar duas coisas:
. Existe pelo menos um caminho entre u e v.
. Não existe mais de um caminho entre u e v.
5
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova. (Continuação)4 Como provamos que existe pelo menos um caminho entre u e v?5 “Definição. Um grafo é conexo se é possível sair de qualquer vértice
u de G e chegar em qualquer outro vértice v de G. Formalmente,existe um caminho de u a v entre todo par de vértices u, v ∈ V (G).”
— C. A. Weffort-Santos, 2020, umas 3 semanas atrás.6 Portanto, para todo par de vértices u e v, existe pelo menos umcaminho entre u e v em G.
5
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova. (Continuação)4 Como provamos que existe pelo menos um caminho entre u e v?Exatamente! O grafo G é conexo
5 “Definição. Um grafo é conexo se é possível sair de qualquer vérticeu de G e chegar em qualquer outro vértice v de G. Formalmente,existe um caminho de u a v entre todo par de vértices u, v ∈ V (G).”
— C. A. Weffort-Santos, 2020, umas 3 semanas atrás.6 Portanto, para todo par de vértices u e v, existe pelo menos umcaminho entre u e v em G.
5
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova. (Continuação)4 Como provamos que existe pelo menos um caminho entre u e v?Exatamente! O grafo G é conexo
5 “Definição. Um grafo é conexo se é possível sair de qualquer vérticeu de G e chegar em qualquer outro vértice v de G. Formalmente,existe um caminho de u a v entre todo par de vértices u, v ∈ V (G).”
— C. A. Weffort-Santos, 2020, umas 3 semanas atrás.6 Portanto, para todo par de vértices u e v, existe pelo menos umcaminho entre u e v em G.
5
Questão 1 :: Correção da Lista #4
“Parta do pressuposto de que você está lidando com um grafo G e queele é uma árvore, ou seja, um grafo que não possui ciclos e que é conexo.Prove que para todo par de vértices u, v ∈ V (G), só existe um único
caminho entre u e v.”
Prova. (Continuação)4 Como provamos que existe pelo menos um caminho entre u e v?Exatamente! O grafo G é conexo
5 “Definição. Um grafo é conexo se é possível sair de qualquer vérticeu de G e chegar em qualquer outro vértice v de G. Formalmente,existe um caminho de u a v entre todo par de vértices u, v ∈ V (G).”
— C. A. Weffort-Santos, 2020, umas 3 semanas atrás.6 Portanto, para todo par de vértices u e v, existe pelo menos umcaminho entre u e v em G.
6
Questão 1 :: Correção da Lista #4
Prova. (Continuação)4 Como provamos que não existe mais de um caminho entre u e v.5 Suponha que exista mais de um caminho entre u e v em G.
a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos.
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos. ISSO É UM ABSURDO!
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos. ISSO É UM ABSURDO!
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos. ISSO É UM ABSURDO!
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
6
Questão 1 :: Correção da Lista #4Prova. (Continuação)
4 Como provamos que não existe mais de um caminho entre u e v.Prova por contradição!
5 Suponha que exista mais de um caminho entre u e v em G.a Sejam P e P ′ estes caminhos.b Como P e P ′ são diferentes (por hipótese), existe algum vértice x
destes caminhos em que o próximo vértice em P é diferente do próximovértice em P ′.
c Como ambos terminam em v, também existe algum vértice w depois dex em P que também está em P ′.
d Então os “subcaminhos” entre x e w em P e P ′ não possuem vérticesem comum (a menos dos vértices x e w).
e Então existe um ciclo em G, dado pela sequência xP→ w
P ′→ x.
f Então G é um grafo que não possui ciclos (porque ele é uma árvorePOR HIPÓTESE) e que possui ciclos. ISSO É UM ABSURDO!
6 Concluímos, então, que não existe mais de um caminho entre u e vem G.
7 Como u e v foram escolhidos arbitrariamente, vale para todo par devértices u, v ∈ V (G) que só existe um único caminho em G. �
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos?
7
Questão 2 :: Correção da Lista #4
“Em contrapartida, parta do pressuposto de que você está lidando comum grafo G tal que para todo par de vértices u, v ∈ V (G), só existe umúnico caminho entre u e v. Prove, então, que G é uma árvore, ou seja,
que ele é (i) conexo e que ele (ii) não possui ciclos.”
Prova.1 Suponha que G é um grafo tal que para cada par de vértices
u, v ∈ V (G) existe um único caminho entre u e v.2 Então, não existe nenhum vértice que é “inalcançável” a partir dealgum outro.
3 Portanto, G é conexo. (Pronto! Provamos (i) :D)4 Como provamos que não existem ciclos? Exatamente! Prova porcontradição de novo!
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
8
Questão 2 :: Correção da Lista #4
Prova. (Continuação)5 Suponha que existe um subgrafo H ⊆ G que é um ciclo
1 Sejam r e s dois vértices arbitrários em H.2 Então, existe um caminho (em H) de r até s seguindo um “lado” do
ciclo...3 ... e um segundo caminho de r até s pelo “outro” lado do ciclo.4 Então existem dois caminhos ligando r a s em H e,
consequentemente, em G. ISSO É UM ABSURDO!6 Portanto, não existem ciclos em G.7 Logo, G é conexo e acíclico — uma árvore. �
9
Dúvidas?
10
Árvore Geradora Mínima
11
Árvore Geradora Mínima
Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V, E, w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?
� Dois algoritmos principais para resolver AGM , mas nós veremossomente um deles!
1 Algoritmo de Prim
2 Algoritmo de Kruskal
11
Árvore Geradora Mínima
Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V, E, w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?
� Dois algoritmos principais para resolver AGM , mas nós veremossomente um deles!
1 Algoritmo de Prim
2 Algoritmo de Kruskal
11
Árvore Geradora Mínima
Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V, E, w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?
� Dois algoritmos principais para resolver AGM , mas nós veremossomente um deles!
1 Algoritmo de Prim
2 Algoritmo de Kruskal
11
Árvore Geradora Mínima
Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V, E, w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?
� Dois algoritmos principais para resolver AGM , mas nós veremossomente um deles!
1 Algoritmo de Prim
2 Algoritmo de Kruskal
11
Árvore Geradora Mínima
Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V, E, w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?
� Dois algoritmos principais para resolver AGM , mas nós veremossomente um deles!
1 Algoritmo de Prim
2 Algoritmo de Kruskal
11
Árvore Geradora Mínima
Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V, E, w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?
� Dois algoritmos principais para resolver AGM , mas nós veremossomente um deles!
1 Algoritmo de Prim
2 Algoritmo de Kruskal
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
12
Algoritmos para AGM
� Construir um subgrafo acíclico T , aresta por aresta.
� A questão está em somente escolher arestas “seguras” → arestasque não criam ciclos no meu grafo!
� A escolha destas arestas pode ser feita de forma gulosa!. Prim: começa a partir de um único vértice. Cresce a árvore
iterativamente acrescentando novos vértices.
. Kruskal: começa a partir “do nada”. Vai construindo um subgrafosem ciclos acrescentando novas arestas.
13
O Algoritmo de Kruskal
14
O Algoritmo de Kruskal
Kruskal(G):T = ∅;QuickSort(E(G)); % Em ordem não decrescentepara todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
Teorema [Kruskal, 1956]. Se G = (V, E, w) é um grafo ponderadoconexo, então Kruskal(G) devolve uma árvore geradora mínima. �
14
O Algoritmo de Kruskal
Kruskal(G):T = ∅;QuickSort(E(G)); % Em ordem não decrescentepara todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
Teorema [Kruskal, 1956]. Se G = (V, E, w) é um grafo ponderadoconexo, então Kruskal(G) devolve uma árvore geradora mínima. �
15
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
15
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
15
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
16
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
17
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
18
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
19
Execução :: O Algoritmo de KruskalKruskal(G):
T = ∅;QuickSort(E(G));para todo e = uv em E(G) faça:
se (u, v não pertencem à mesma componente de T ) faça:E(T ) = E(T ) ∪ {e};
devolve T ;
a
h g f
e
dcb
i
4
8
11
7
1
8
2
4
7
2
10
14
6
9
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo?2 Ordenação?3 Iterações nas arestas?4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo?2 Ordenação?3 Iterações nas arestas?4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação?3 Iterações nas arestas?4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação?3 Iterações nas arestas?4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas?4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas?4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração?5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração? O(log V )5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração? O(log V )5 Tempo total do laço?
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração? O(log V )5 Tempo total do laço? O(E · log V )
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração? O(log V )5 Tempo total do laço? O(E · log V )
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
20
Análise :: O Algoritmo de Kruskal
� Quão bom é o Algoritmo de Kruskal?1 Inicialização do algoritmo? O(1)2 Ordenação? O(E · log E)3 Iterações nas arestas? O(E)4 Dentro de cada iteração? O(log V )5 Tempo total do laço? O(E · log V )
Complexidade final: O(E · log V )
� E o Algoritmo de Prim?
Complexidade final: O(E + V · log V )
21
Dúvidas?
22
Aula que vem...