Buscar

Algoritmos de Kruskal e Prim Teoria dos Grafos e Análise de Algoritmos - Exercícios

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos de Kruskal e Prim – Teoria dos Grafos e Análise de
Algoritmos 
Exercícios
1. O algoritmo de Prim é um dos algoritmos mais tradicionais aplicados ao
problema da árvore geradora mínima de um grafo. Diversas estruturas de dados
podem ser utilizadas tanto na modelagem do grafo como na representação da fila
de prioridades usada por ele. Apesar disso, o seu caráter iterativo e incremental na
condução das expansões sobre uma subárvore inicial não é alterado.
Considerando que o algoritmo de Prim foi executado sobre o grafo a seguir e que o
vértice a foi tomado como inicial, avalie as afirmativas a respeito:
I. O maior tamanho alcançado pela fronteira é de 3 vértices.
II. O último vértice a ser inserido na solução é o d.
III. Após a terceira iteração, o vértice e se torna parte da solução.
IV. A soma dos pesos da árvore final tem valor 18.
Quais estão corretas?
Resposta correta.
A. I e II.
A árvore geradora mínima obtida pela execução do algoritmo é apresentada a
seguir:
Logo:
I. O maior tamanho alcançado pela fronteira é de 3 vértices.
Afirmativa   verdadeira,   porque,   como   a   fronteira   é   composta   de   vértices   cuja
distância   não   seja   "infinita",   ao  alcançar   o   vértice c,   ela   será   composta  pelos
vértices d, e e f. Em todas as demais iterações, o número de vértices na fronteira
não ultrapassa o valor 3.
II. O último vértice a ser inserido na solução é o d.
Afirmativa verdadeira, uma vez que a sequência de vértices inseridos na solução
é: a - b - c - f - e - d.
III. Após a terceira iteração, o vértice e se torna parte da solução.
Afirmativa falsa, porque o vértice e se torna parte da solução apenas na quarta
iteração.
IV. A soma dos pesos da árvore final tem valor 18.
Afirmativa falsa, pois a soma dos pesos gera o valor 15.
2. Embora seja um algoritmo tradicional para o problema da árvore geradora 
mínima de grafos, o algoritmo de Prim tem o seu funcionamento condicionado ao 
atendimento de certos pré-requisitos. Tanto as características do grafo como as 
estruturas de dados empregadas em sua implementação podem afetar o seu 
desempenho ou, até mesmo, inviabilizar a busca por uma solução ótima.
Nesse contexto, considere que o grafo a seguir foi passado como parâmetro para o
algoritmo de Prim.
Julgue V (verdadeiro) ou F (falso) as afirmativas a respeito do comportamento do
algoritmo:
( ) A alteração do peso w(e) de cada aresta e por w(e) * w(e) compromete a
obtenção da árvore geradora mínima.
( ) A solução obtida pelo algoritmo depende da escolha do vértice inicial usado
para iniciar a construção da árvore.
( ) A remoção de 3 arestas de qualquer vértice inviabiliza a obtenção da árvore pelo
algoritmo.
( ) O cuso total da árvore geradora mínima do grafo é inferior à soma dos pesos
das arestas do vértice de maior grau.
Assinale a alternativa que apresenta a sequência correta.
Você acertou!
B. F - F - F – V.
As escolhas feitas pelo algoritmo de Prim dependem apenas da ordenação dos
custos de fronteira. A mudança proposta nos pesos das arestas não altera a ordem
dos custos das arestas.
Qualquer que seja a escolha do vértice inicial, a árvore geradora mínima obtida
será a mesma.
A remoção de 3 arestas dos vértices a, b, c e d ocasiona que esses vértices se
desconectem   do   grafo.   Nesse   caso,   o   algoritmo   de   Prim   não   funciona
corretamente. Porém, se 3 arestas forem removidas do vértice, este permanece
conectado   ao   grafo   e,   portanto,   o   funcionamento   do   algoritmo   não   é
comprometido.
De fato, o custo total da árvore geradora mínima do grafo é inferior à soma dos
pesos das arestas do vértice de maior grau.
O custo total da árvore geradora mínima é: w(a-e) + w(e-b) + w(e-c) + w(c-d) = 2 +
3 + 4 + 4 = 13. Já a soma dos pesos das arestas do vértice e (vértice de maior
grau) é: 5 + 3 + 2 + 4 = 14.
3. Os algoritmos de Prim e Kruskal constituem estratégias clássicas para a
obtenção da árvore geradora mínima de grafos. Ambos podem alcançar bom
desempenho computacional desde que suas particularidades sejam levadas em
consideração durante a implementação. Apesar disso, os dois algoritmos diferem
significativamente quanto ao processo de obtenção da solução ótima.
Nesse contexto, considere os grafos (a) e (b) apresentados a seguir e as seguintes
condições:
Considere o seguinte:
- Apesar de as arestas ainda não adicionadas à solução não estarem explicitamente
representadas, ambos os grafos são conexos e não direcionados.
- Cada grafo representa a árvore geradora mínima que está sendo construída por
um dos algoritmos.
- As 4 arestas representadas por linhas sólidas indicam a parte da árvore geradora
mínima que já foi construída.
- O próximo passo a ser executado por um dos algoritmos é representado por uma
linha tracejada.
Assinale a alternativa que apresenta a análise correta das seguintes afirmativas:
I. Os grafos (a) e (b) indicam o processo de geração da árvore geradora mínima dos
algoritmos de Kruskal e de Prim, respectivamente.
PORQUE
II. A distância geométrica entre os vértices está sendo usada como medida de peso
associada às arestas do grafo.
Você acertou!
D. A afirmação I é uma proposição falsa e a II, verdadeira.
Considerando que as linhas sólidas representam as arestas que já compõem a
árvore geradora mínima e que a aresta tracejada corresponde ao próximo passo
de um dos algoritmos, é possível observar que a distância geométrica está sendo
usada como critério de peso na seleção das arestas. 
Porém, analisando o próximo passo executado sobre o grafo (a),   temos que a
aresta d-e é inserida na solução. Essa aresta corresponde à aresta de menor peso
(distância geométrica) em relação à parte da árvore que já foi construída. Essa
abordagem de avaliar  a   fronteira   (ou  as  arestas  com apenas  um dos  vértices
pertencentes  à   árvore  em construção)   corresponde  à  estratégia   implementada
pelo   algoritmo  de  Prim.  No  grafo   (b),   uma  abordagem diferente  é   observada.
Dentre   todas  as  arestas  disponíveis  para  seleção,  a  aresta  e-f  é  a  de  menor
distância   geométrica   (peso)   e,   por   isso,   ela   foi   selecionada.   Essa   estratégia
corresponde ao funcionamento do algoritmo de Kruskal. 
4. Várias são as estruturas de dados que podem ser empregadas na implementação
do algoritmo de Kruskal para o problema da árvore geradora mínima de um grafo.
Cada estrutura usada, no entanto, vai impactar de maneira diferente no
desempenho computacional do algoritmo. Uma das estruturas de dados mais
reconhecidas pela sua eficiência quando usada no algoritmo de Kruskal é a União-
Busca. Ela é composta de duas operações básicas:
1. Busca: Dada uma lista de conjuntos e um elemento x a ser buscado, ela retorna o
conjunto da qual x é um elemento. Esse retorno pode ser denotado por Conjunto(x).
2. União: Dados dois conjuntos disjuntos, ela realiza a união desses dois conjuntos
gerando um terceiro a partir da remoção dos dois conjuntos originais.
Tendo como base o uso da estrutura de dados União-Busca, assinale a alternativa
que preenche corretamente as lacunas do algoritmo de Kruskal a seguir:
Você acertou!
C. 
Ordenar as arestas de G em ordem não decrescente de peso
Conjunto(u) é diferente de Conjunto(v)
Adicionar (u, v) a A
Uma das premissas do algoritmo de Kruskal é que as arestas sejam previamente
ordenadas de forma não decrescente com base no peso associado. Além disso, a
adição de uma nova aresta à arvore geradora mínima em construção deve ser
precedida de um teste para detectar se essa nova inserção acarretaria a criação
de um ciclo.  Com o uso da operação de Busca da estrutura  de dados União-
Busca,   os   conjuntos   onde   os   vértices u e v podem   ser   encontrados   serão
recuperados. Caso esses conjuntos sejam diferentes, então a inserção da aresta
não provocará  a criação de um ciclo  na árvore.  Finalmente,  se os vértices da
aresta em análise pertencerem a conjuntos distintos, então essa aresta pode serincluída na solução. Isso é feito adicionando-se a aresta (u, v) na variável A que
armazena a solução.
5. Algumas características do algoritmo de Kruskal para o problema da árvore
geradora mínima possibilitam que ele seja aplicado em uma grande variedade de
cenários. Dentre as mais destacadas, a estratégia de explorar múltiplas árvores em
paralelo faz com que o algoritmo apresente uma eficiência computacional superior
em relação a outros algoritmos para o mesmo problema.
Nesse contexto, considere a aplicação do algoritmo de Kruskal no grafo a seguir e
avalie as afirmativas a respeito:
I - A aresta de maior peso que compõe a árvore geradora mínima final tem valor 6.
II - O número de árvores intermediárias geradas e compostas por mais de 1 vértice
é, no máximo, 2.
III - Para as primeiras i iterações, com i = 1, 2 e 3, as arestas de peso i são inseridas
na solução nessa ordem.
IV - O valor do custo total da árvore geradora mínima (soma dos pesos das arestas)
é 15.
Quais estão corretas?
Você acertou!
E. II e III.
A árvore  geradora  mínima  construída  pelo  algoritmo  é  obtida   com a  seguinte
sequência de inserções de arestas na solução:
1.   Inserção   da   aresta   (b,   c): peso   1
2.   Inserção   da   aresta   (d,   e): peso   2
3.   Inserção   da   aresta   (b,   d): peso   3
4. Inserção da aresta (b, a): peso 5
I. A aresta de maior peso é (b, a) com valor 5.
II.  As duas primeiras arestas inseridas na solução, (b, c) e (d, e),  formam dois
conjuntos disjuntos. As próximas inserções ocasionam a união desses conjuntos.
III. Na  iteração 1,  a  aresta   inserida  (b,  c)   tem peso 1;  na  iteração 2,  a  aresta
inserida (d, e) tem peso 2; na iteração 3, a aresta inserida (b, d) tem peso 3.
IV. A soma dos pesos das arestas que compõem a árvore geradora mínima totaliza
11.
	Algoritmos de Kruskal e Prim – Teoria dos Grafos e Análise de Algoritmos
	Exercícios

Continue navegando