Logo Passei Direto
Buscar

Complexidade de Algoritmos

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Universidade Federal do Rio Grande do Sul
Instituto de Informática
Departamento de Informática Teórica
INF05515 – Complexidade de Algoritmos
2014/1
Profa. Mariana Kolberg
Lista de Exerćıcios Sobre Algoritmos Gulosos
1. (Escalonamento)
Considere o problema de escalonamento de n jobs de duração t1, ..., tn para que sejam executados
em um processador. Os jobs podem ser executados em qualquer ordem, um job por vez. O tempo
gasto por um job é a soma do tempo de execução dele com o tempo que ele precisou esperar para
executar. Por exemplo: você tem dois jobs com tempos de execução 5 para cada um, o tempo
gasto pelo primeiro job é 5 e o segundo é 5+5=10. Desta forma o tempo gasto é de 15.
a) Descreva um algoritmo guloso que minimiza o total de tempo gasto por todos os jobs no
sistema.
2. (Grafos) Para as afirmações abaixo, decida se ela é verdadeira ou falsa. Caso seja verdadeira,
justifique. Caso seja falsa, dê um contraexemplo.
a) Supondo que temos uma instância do problema da árvore geradora mı́nima com um grafo G,
com arestas com todos os custos positivos e diferentes. T é a árvore geradora mı́nima para esta
instância. Agora suponha que nós substituimos todas as arestas de custo ce por seu quadrado,
(ce)
2, criando uma nova instância para o problema, com o mesmo grafo mas diferentes custos.
Neste caso, T continuará sendo a AGM para a nova instância. Verdadeiro ou falso?
b) Supondo que nós temos uma instância para o problema do caminho mais curto do vértice s para
t em um grafo direcionado G. Nós assumimos que todos os custos das arestas são positivos
e distintos. P é o caminho de custo mı́nimo para esta instância. Agora suponha que nós
substituimos cada custo ce das arestas por seu quadrado (ce)
2, criando uma nova instância
com o mesmo grafo mas diferentes custos. Neste caso, P continua sendo o caminho de custo
mı́nimo para a nova instância. Verdadeiro ou falso?
3. (Soma) Dado um conjunto N de números naturais ai para i = 1..n (N = a1, a2, a3, ..., an),
encontrar uma permutação dos elementos em N que minimize a soma 1∗a1+2∗a2+3∗a3+...+n∗an.
Descreva um algoritmo guloso que resolva este problema. Justifique sua resposta.
(a) Desenvolva um algoritmo guloso que resolva este problema.
(b) Argumente o porque o algoritmo é correto.
4. (Problema da Mochila fracionária) Considere um conjunto de elementos S = s1, s2, ..., sn. Cada
elemento si possui dois valores associados que se referem ao peso pi e ao custo do elemento ci.
Suponha que alguns elementos serão inseridos numa mochila que suporta no máximo um peso
P . Considere o problema fracionário, ou seja, um elemento pode ser selecionado por inteiro, ou
apenas uma fração do mesmo pode ser inserida na mochila.
(a) Desenvolva um algoritmo guloso que seleciona um conjunto de elementos cuja soma dos seus
custos seja máxima, respeitando a capacidade de peso da mochila. O algoritmo deve retornar
informação sobre que elementos foram selecionados, e qual a fração usada de cada um.
(b) Analise o seu algoritmo.
(c) Argumente o porque o algoritmo é correto.
5. (Troco em moedas) Considere o problema de fazer a troca de K centavos usando o menor número
de moedas. Suponha que o valor de cada moeda seja um inteiro. Suponha que as moedas
dispońıveis tenham as denominações que são potências de c, isto é, as denominações são c0, c1,
..., cn para inteiros c > 1 e n ≥ 1.
(a) Para moedas de valores R$ 3, R$ 1, R$ 9, qual o número mı́nimo de moedas para fornecer
troco para R$ 52?
(b) Descreva um algoritmo guloso que efetue a troca consistindo em n valores de moedas diferentes.
O algoritmo recebe como entrada um conjunto de n moedas e K.
(c) Analise seu algoritmo.
(d) Argumente porque o seu algoritmo sempre produz uma solução ótima.
v–revision– 1

Mais conteúdos dessa disciplina