Você está na página 1de 1

Departamento de Ciência da Computação – IME-USP —2o. sem./2020 - Profa.

Yoshiko

Algoritmos de Aproximação (MAC5727 e MAC0450)

LISTA 1 (versão nova – 18/set/2020) - Algoritmos Clássicos

Entregar: 22/setembro/2020 (3a. feira - até 23h)

E1. Considere o problema Escalonamento. Faça uma análise mais rigorosa do algoritmo Es-
calonamento-Graham, e mude a análise vista em aula de modo a obter uma razão melhor
que 2. Para cada m, exiba uma instância onde tal razão é atingida. (Veja no livro-texto.)

E2. Prove que o seguinte algoritmo para o problema Escalonamento tem razão de aproximação
4/3 − 1/(3m). Ordene os tempos das tarefas em ordem não-crescente (t1 ≥ t2 ≥ . . . ≥ tn )
e aplique em seguida o algoritmo Escalonamento-Graham (veja o item acima e o livro-
texto). Sugestão: faça uma análise similar a que fizemos para o algoritmo Escalonamento-
Graham, mas subdivida em dois casos: (a) quando a tarefa que foi executada por último,
digamos tk , é tal que tk ≤ opt(I)/3; e (b) quando o caso (a) não ocorre.
OBS: Considerando a dificuldade em resolver o caso (b), recomendamos a leitura
do artigo de Ron Graham (SiamJApplMath1969) que está no diretório do Google
Drive (mesmo link das aulas gravadas) para entender a solução proposta pelo
autor. Em vez de resolver o item (b), explicar – em linhas gerais – a ideia que foi
usada pelo autor.

E3. O problema do empacotamento unidimensional(bin packing problem), denotado por Empaco-


tamento, consiste no seguinte:

Problema Empacotamento (n, c): Dados um inteiro positivo n e, para cada i em


{1, . . . , n}, um valor ci em [0, 1], encontrar uma partição B de {1, . . . , n} tal que c(B) ≤ 1
para todo B em B e que minimize o número de partes em B, isto é, minimize |B|.

Mostre que o algoritmo abaixo é uma 2-aproximação polinomial para o problema Empaco-
tamento.

Algoritmo Empacotamento-Next-Fit (n, c)


1 k←1
2 Bk ← ∅
2 para i de 1 a n faça
3 se ci ≤ 1 − c(Bk )
4 então Bk ← Bk ∪ {i}
5 senão k ← k + 1
6 Bk ← {i}
7 devolva {B1 , . . . , Bk }

RECOMENDAÇÃO: Resolver os exercícios numa folha sulfite (manuscrita ou em latex) deixando um


espaçamento duplo entre as linhas. Usar a terminlogia do livro-texto. Caprichar na apresentação.

OBSERVAÇÃO 1: As listas (resolvidas) devem ser enviadas pelo e-disciplinas, dentro do prazo especificado.
OBSERVAÇÃO 2: As listas devem ser feitas individualmente. Soluções e resultados obtidos de outras fontes
(Internet, livros, etc) deverão ser mencionados.