Buscar

Exercícios de Fixação 07 - Método Guloso - Gabarito

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

ANÁLISE DE ALGORITMOS
Bacharelado em Ciências da Computação
Lista de Exercícios de Fixação 07
Método Guloso
 1. Eis um problema que ocorre em análise automática de programas. Para um conjunto de
variáveis x1, …, xn, são dadas algumas restrições de igualdade, da forma “xi = xj” e
algumas restrições de desigualdade “xi ≠ xj”. Será que é possível satisfazer todas elas? Por
exemplo, as restrições x1 = x2, x2 = x3, x3 = x4, x1 ≠ x4, não podem ser satisfeitas. Sendo
assim, é possível utilizar o método guloso para elaborar um algoritmo eficiente que tome
como entrada m restrições sobre n variáveis e decida se as restrições podem ser satisfeitas?
Justifique.
Sim, pois o problema exibe as propriedades exigidas por problemas aos quais podemos
empregar o MG: escolha gulosa – uma solução ótima global pode ser obtida a partir de
escolhas ótimas locais (gulosas); para cada decisão, a melhor opção é escolhida, sob uma
visão top-down e uma subestrutura ótima – uma solução ótima contém em si, soluções
ótimas para os subproblemas. 
 2. Nem sempre é possível aplicar um algoritmo guloso para resolver um problema. Existem 2
características que podem indicar que os problemas podem ser resolvidos utilizando a
estratégia gulosa. Sendo assim, explique porque o problema da mochila binária não pode ser
resolvido por um algoritmo guloso.
Na modalidade binária, quando consideramos um item para inclusão na mochila, devemos
comparar a solução para o subproblema no qual o item é incluído com a solução para o
subproblema no qual o item é excluído, antes de fazer a escolha. Neste ponto, geram-se
muitos subproblemas superpostos (caso legítimo de aplicação da PD).
 3. Considere um jogo do tipo 8-puzzle, cujo objetivo é conduzir o tabuleiro esquematizado na
figura abaixo para o seguinte estado final.
ANÁLISE DE ALGORITMOS
Bacharelado em Ciências da Computação
Considere ainda que, em determinado instante do jogo, se tenha o estado E0 a seguir.
Pelas regras desse jogo, sabe-se que os próximos estados possíveis são os estados E1, E2 e E3
mostrados a seguir.
Considere uma função heurística h embasada na soma das distâncias das peças em relação ao estado
final desejado, em que a distância d a que uma peça p está da posição final é dada pela soma do
número de linhas com o número de colunas que a separam da posição final desejada. Por exemplo,
em E1, d(1) = 2 + 1 = 3. 
Sendo assim, pode-se afirmar que se utilizando um algoritmo de busca gulosa pela melhor escolha
que utiliza a função h, o próximo estado no desenvolvimento do jogo a partir do estado E0 tem de
ser E3? Justifique. 
Correto pois dos três estados E1, E2 e E3 possíveis, o estado com menor soma das distâncias entre a
posição atual das peças e a posição final é o estado E3 – o que representa uma escolha gulosa.
 4. Considere o problema: Dado um grupo de cidades em uma região que está nos estágios
iniciais de planejamento e seus administradores estão decidindo onde colocar escolas. Há
apenas 2 restrições: cada escola deve ser em uma cidade e ninguém deve viajar mais que 50
km para alcançar uma delas. Qual o número mínimo de escolas necessário? 
Você recomenda o uso da estratégia gulosa para o problema? Justifique.
Sim, pois se trata de um típico problema de cobertura de vértices. Para cada cidade x, seja
Sx o conjunto de cidades a no máximo 50 km dela. Uma escola em x essencialmente
“cobriria” as outras cidades. A questão é, então, quantos conjuntos Sx têm de ser
ANÁLISE DE ALGORITMOS
Bacharelado em Ciências da Computação
selecionados para cobrir todas as cidades da região? 
Complementando, o seguinte algoritmo indica o caminho para resolver o problema.
Entrada: Um conjunto de elementos B; conjuntos S1, …, Sm  B.
Saída: Uma seleção dos Si cuja união é B.
Custo: Número de conjuntos selecionados.
Repetir até que todos os elementos de B estejam cobertos: 
Selecionar o conjunto Si com o maior número de elementos não cobertos.
 5. Suponha uma série de eventos, por exemplo, as transações feitas na bolsa de valores, na
forma compra Dell, vende HP, compra Google, … Uma certa ação pode acontecer mais de
uma vez nessa sequência. Dada uma outra sequência, decida o mais rápido possível, se ela é
uma subsequência da primeira. Elabore um algoritmo eficiente para as sequências de
tamanho m e n.
Sugestão de solução
algoritmo Subsequencia
Entrada: Sequência S' = s'1...s'm e S = s1...sn
Saída: verdadeiro, se S'  S //S' é uma subsequência de S
se m > n então
retorne falso
i   1←
para j   1, ..., n faça←
se s'i = sj então
i   i + 1←
se i > m então retorne verdadeiro
retorne falso
A complexidade do algoritmo é O(n).
 6. Foi desenvolvido um novo algoritmo para encontrar árvores espalhadas mínimas, baseado
na seguinte propriedade: Selecione qualquer ciclo no grafo e seja e, a aresta mais pesada
deste ciclo. Então, existe uma árvore espalhada mínima que não contém e . A entrada é
algum grafo não-direcionado G = (V, E), em formato de lista de adjacência, com pesos nas
ANÁLISE DE ALGORITMOS
Bacharelado em Ciências da Computação
arestas {we}. Segue o algoritmo.
ordene as arestas de acordo com seus pesos
para cada aresta e  E, em ordem decrescente de we:
se e é parte de um ciclo de G:
G = G – e //quer dizer, remova e de G
retornar G
O algoritmo é baseado no método guloso? Justifique. 
Sim, pois o problema exibe as propriedades exigidas por problemas aos quais podemos
empregar o MG: escolha gulosa (G = G – e) – uma solução ótima global pode ser obtida a
partir de escolhas ótimas locais (gulosas); para cada decisão, a melhor opção é escolhida,
sob uma visão top-down e uma subestrutura ótima – uma solução ótima contém em si,
soluções ótimas para os subproblemas. 
	Lista de Exercícios de Fixação 07

Outros materiais