Projeto e Anlise de Algoritmos Prof Ruy Luiz

  • Slides: 21
Download presentation
Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú 9/6/2021 Ruy Luiz Milidiú 1

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú 9/6/2021 Ruy Luiz Milidiú 1

Método do Guloso 9/6/2021 Ruy Luiz Milidiú 2

Método do Guloso 9/6/2021 Ruy Luiz Milidiú 2

Alocação ótima de recurso RESTRIÇÃO consumo total 20 Qual a alocação de maior retorno

Alocação ótima de recurso RESTRIÇÃO consumo total 20 Qual a alocação de maior retorno para as consumo total das 20 unidades de consumo disponíveis ? 9/6/2021 Ruy Luiz Milidiú 3

Guloso por MAIOR RETORNO RESTRIÇÃO consumo total 20 Uso 1 Disponível = 20 Usado

Guloso por MAIOR RETORNO RESTRIÇÃO consumo total 20 Uso 1 Disponível = 20 Usado por 1 = 18 Saldo = 2 Retorno de 1 = 25 9/6/2021 Uso 2 Disponível = 2 Usado por 2 = 2 Saldo = 0 Retorno de 2 = (2/15). 24 Ruy Luiz Milidiú 4

Solução NÃO GULOSA RESTRIÇÃO consumo total 20 Uso 1 não guloso Disponível = 20

Solução NÃO GULOSA RESTRIÇÃO consumo total 20 Uso 1 não guloso Disponível = 20 Usado por 1 = 8 Saldo = 12 Retorno = (8/18). 25 9/6/2021 Uso 2 não guloso Disponível = 12 Usado por 2 = 12 Saldo = 0 Retorno = (12/15). 24 Ruy Luiz Milidiú 5

Guloso por MAIOR RETORNO RESTRIÇÃO consumo total 20 Solução gulosa 28. 2 Outra solução

Guloso por MAIOR RETORNO RESTRIÇÃO consumo total 20 Solução gulosa 28. 2 Outra solução 30. 3 9/6/2021 Ruy Luiz Milidiú 6

O Problema da Mochila z. Entrada y. W yn yw 1 , w 2

O Problema da Mochila z. Entrada y. W yn yw 1 , w 2 , … , w n > 0 yp 1 , p 2 , … , p n > 0 volume total da mochila quantidade de objetos volumes dos objetos prêmios pelos objetos z. Saída ya = (a 1, a 2, … , an) frações ótimas na mochila max i=1, . . , n pi. xi s. t. i=1, . . , n wi. xi W 0 xi 1 para 0 i 1 9/6/2021 Ruy Luiz Milidiú 7

Casos especiais z i=1, . . , n wi W conjunto de objetos cabe

Casos especiais z i=1, . . , n wi W conjunto de objetos cabe ysolução trivial ya = (1, 1, …, 1) objetos inteiros na mochila z i=1, . . , n wi > W conjunto NÃO cabe yrestrição no ótimo enche mochila y i=1, . . , n wi. ai = W yincluir esta nova restrição 9/6/2021 Ruy Luiz Milidiú 8

Guloso por MENOR CONSUMO RESTRIÇÃO consumo total 20 Uso 3 Disponível = 20 Usado

Guloso por MENOR CONSUMO RESTRIÇÃO consumo total 20 Uso 3 Disponível = 20 Usado por 3 = 10 Saldo = 10 Retorno de 3 = 15 9/6/2021 Uso 2 Disponível = 10 Usado por 2 = 10 Saldo = 0 Retorno de 2 = (10/15). 24 Ruy Luiz Milidiú 9

Solução NÃO GULOSA RESTRIÇÃO consumo total 20 Uso 3 não guloso Disponível = 20

Solução NÃO GULOSA RESTRIÇÃO consumo total 20 Uso 3 não guloso Disponível = 20 Usado por 3 = 8 Saldo = 12 Retorno = (8/10). 15 9/6/2021 Uso 2 não guloso Disponível = 12 Usado por 2 = 12 Saldo = 0 Retorno = (12/15). 24 Ruy Luiz Milidiú 10

Guloso por MENOR CONSUMO RESTRIÇÃO consumo total 20 Solução gulosa 31. 0 Outra solução

Guloso por MENOR CONSUMO RESTRIÇÃO consumo total 20 Solução gulosa 31. 0 Outra solução 31. 2 9/6/2021 Ruy Luiz Milidiú 11

Guloso por MAIOR DENSIDADE RESTRIÇÃO : consumo total 20 Uso 2 Disponível = 20

Guloso por MAIOR DENSIDADE RESTRIÇÃO : consumo total 20 Uso 2 Disponível = 20 Usado por 2 = 15 Saldo = 5 Retorno de 2 = 24 9/6/2021 Uso 3 Disponível = 5 Usado por 3 = 5 Saldo = 0 Retorno de 3 = (5/10). 15 Ruy Luiz Milidiú 12

Algoritmo Calcular as densidades dos objetos L objetos em ordem decrescente de densidade; saldo_de_volume

Algoritmo Calcular as densidades dos objetos L objetos em ordem decrescente de densidade; saldo_de_volume = W; premio_total = 0; while |L| > 1 and saldo_de_volume > 0 seja k o objeto de maior densidade em L; remova k de L; v = min (saldo_de_volume , volume[k]); saldo_de_volume = saldo_de_volume - v; a[k] = v/volume[k] premio_total = premio_total + a[k]*premio[k] return (a) 9/6/2021 Ruy Luiz Milidiú 13

Eficiência Operação Esforço ordenar incluir k-ésimo O(n. lg(n) ) O(1) Ordenação O(n. lg(n)) Inclusão

Eficiência Operação Esforço ordenar incluir k-ésimo O(n. lg(n) ) O(1) Ordenação O(n. lg(n)) Inclusão de objeto O(1) até n vezes O(n. lg(n)) + O(n) 9/6/2021 Ruy Luiz Milidiú 14

Corretude z. Repasse de volume Substituir um volume v de um objeto menos denso

Corretude z. Repasse de volume Substituir um volume v de um objeto menos denso pelo mesmo volume v de um outro objeto mais denso aumenta o prêmio total ! z. DEM. : por balanceamento algébrico ! 9/6/2021 Ruy Luiz Milidiú 15

Balanceamento algébrico zvolume antes = volume depois x. R. w. R + x. D.

Balanceamento algébrico zvolume antes = volume depois x. R. w. R + x. D. w. D = (x. R-vai). w. R + (x. D+vem). w. D vai. w. R = vem. w. D v z. P(x) = i=1, . . , n pi. xi = i=1, . . , n (pi/wi). (xi. wi) P = (p. D/w. D). (vem. w. D) - (p. R/w. R). (vai. w. R) P = [ (p. D/w. D) - (p. R/w. R) ]. (vai. w. R) > 0 9/6/2021 Ruy Luiz Milidiú 16

Corretude Toda solução diferente da gulosa NÃO é ótima. Dem. : y. Solução gulosa

Corretude Toda solução diferente da gulosa NÃO é ótima. Dem. : y. Solução gulosa g = (1, 1, …, 1, 1, gj, 0, 0, …, 0) , gj < 1 W = w 1 + w 2 +… + wj-1 + gj. wj y. Solução diferente da gulosa x = (x 1, x 2, …, xn) g yk = min{ i | xi gi } 9/6/2021 Ruy Luiz Milidiú 17

Caso “k < j” g = (1, 1, …, 1, gj, 0, 0, …,

Caso “k < j” g = (1, 1, …, 1, gj, 0, 0, …, 0) x = (1, 1, …, xk, … , xn) xk 1 yx k < 1 yx ainda não encheu a mochila yxk+s > 0 yrepassar volume de k+s para k yprêmio aumenta na solução modificada 9/6/2021 Ruy Luiz Milidiú 18

Caso “k j” g = (1, 1, …, 1, gj, 0, 0, …, 0)

Caso “k j” g = (1, 1, …, 1, gj, 0, 0, …, 0) x = (1, 1, …, 1, xj, … , xn) xj < g j yx j < g j < 1 yx ainda não encheu a mochila em j yxj+s > 0 yrepassar volume de j+s para j yprêmio aumenta na solução modificada 9/6/2021 Ruy Luiz Milidiú 19

O Problema da Mochila 0 -1 z. Entrada y. W yn yw 1 ,

O Problema da Mochila 0 -1 z. Entrada y. W yn yw 1 , w 2 , … , w n > 0 yp 1 , p 2 , … , p n > 0 volume total da mochila quantidade de objetos volumes dos objetos prêmios pelos objetos z. Saída ya = (a 1, a 2, … , an) objetos ótimos na mochila max i=1, . . , n pi. xi s. t. i=1, . . , n wi. xi W xi { 0, 1 } para 0 i 1 9/6/2021 Ruy Luiz Milidiú 20

O Problema da Mochila 0 -1 z. Pequena variação na formulação yobjetos NÃO podem

O Problema da Mochila 0 -1 z. Pequena variação na formulação yobjetos NÃO podem ser fracionados z. Difícil ydesconhecido algoritmo polinomial z. NP-completo 9/6/2021 Ruy Luiz Milidiú 21