Árvores geradoras mínimas ii - instituto de computaçãora090743/unip/material/j702/...6 questão...

Post on 02-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Árvores Geradoras Mínimas IIProf. Celso A. W. Santos

J702 :: Teoria de Grafos

celso.santos@docente.unip.br

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...

top related