Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


08 - algoritmos Gulosos, Notas de estudo de Engenharia Telemática

08 ATAL - Análise e Técnicas de Algoritmos UFCG

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 27/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 39

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Análise e Técnicas de Algoritmos
Algoritmos Gulosos
Tiago Massoni
Jorge Figueiredo
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27

Pré-visualização parcial do texto

Baixe 08 - algoritmos Gulosos e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

Análise e Técnicas de Algoritmos

Algoritmos Gulosos

Tiago Massoni

Jorge Figueiredo

Problemas de Otimização

Problemas que podem apresentar diversas soluções só nos interessa a melhor solução (solução ótima)

uma alternativa para resolver...

Abordagem

a cada momento escolher o número máximo daquele valor (que não ultrapasse o valor total) quando não for mais possível, passar a próxima moeda na ordem 100c (1 dollar) 25c 10c 5c 1c total: US$ 2,89 (289c)

uma alternativa para resolver...

Abordagem

a cada momento escolher o número máximo daquele valor (que não ultrapasse o valor total) quando não for mais possível, passar a próxima moeda na ordem 100c (1 dollar) 25c 10c 5c 1c (^2) total: US$ 2,89 (289c)

uma alternativa para resolver...

Abordagem

a cada momento escolher o número máximo daquele valor (que não ultrapasse o valor total) quando não for mais possível, passar a próxima moeda na ordem 100c (1 dollar) 25c 10c 5c 1c (^2) total: US$ 2,89 (289c) 3 1

uma alternativa para resolver...

Abordagem

a cada momento escolher o número máximo daquele valor (que não ultrapasse o valor total) quando não for mais possível, passar a próxima moeda na ordem 100c (1 dollar) 25c 10c 5c 1c (^2) total: US$ 2,89 (289c) 3 1 0

uma alternativa para resolver...

Abordagem

a cada momento escolher o número máximo daquele valor (que não ultrapasse o valor total) quando não for mais possível, passar a próxima moeda na ordem 100c (1 dollar) 25c 10c 5c 1c (^2) total: US$ 2,89 (289c) 3 1 0 4 Nos dá a solução ótima Estratégia greedy (gulosa)

Estratégia Gulosa

• Estratégia de incorporar a melhor opção

no momento

  • Solução ótima local

• O que foi incorporado, estará na solução

até o final

  • aquilo que foi descartado não volta a ser

contra-exemplo

6c 4c 1c

total: US$ 0,

contra-exemplo

6c 4c 1c

total: US$ 0,

contra-exemplo

6c 4c 1c

total: US$ 0,

contra-exemplo

6c 4c 1c

total: US$ 0,

solução ótima!

pode não funcionar…

pseudo-código

CalculaTroco(total) C ← {100, 25, 10, 5, 1} S ← ∅ soma ← 0 while soma ≠ total do X ← maior valor de C | soma + X ≤ total if item não existe then return sem solução S ← S ∪ {uma moeda de valor X} soma ← soma + X return S

Algoritmo Guloso –

Lista de Candidatos CalculaTroco(M) C ← {100, 25, 10, 5, 1} S ← ∅ soma ← 0 while soma ≠ M do X ← maior valor de C | soma + X ≤ M if item não existe then return sem solução S ← S ∪ {uma moeda de valor X} soma ← soma + X return S