SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Luís Ovídio Viana Podestá
Fabiana Zioti
Vinícius Henrique Marangoni
Algoritmo Guloso
Roteiro
→ Introdução
→ Matróide
→ Problema da Mochila
→ Algoritmo da mochila em C++
→ Exercícios
Algoritmo
Algoritmo é uma sequência finita de
instruções bem definidas que devem ser
seguidas para resolver um problema ou
executar uma tarefa.
Otimização
Otimização em matemática, corresponde ao
estudo de problemas onde se busca minimizar ou
maximizar uma função.
As técnicas matemáticas de otimização visam
encontrar uma "solução ótima" para certo
problemas, ou seja, que resulte no melhor
desempenho possível do sistema.
Normalmente esses problemas são modelos da
realidade física, então inicialmente é necessário
construir um modelo matemático.
Algoritmo Guloso
Uma das estratégias para resolver
problemas de otimização são os algoritmos
gulosos ou paradigma guloso na
concepção de algoritmos.
Ele escolhe a melhor opção naquele
momento (melhor opção local), e assim
pretende chegar a melhor solução no todo
(global).
Características
● Algoritmos simples e de fácil implementação.
● Nem sempre conduz à soluções ótimas globais.
● Podem efetuar cálculos repetitivos.
● Um algoritmo guloso é "míope“.
● Nunca reconsideram decisões tomadas.
Matróide
Um Matróide é um par ordenado M = (S, I), satisfazendo as
seguintes condições:
1. S é um conjunto finito não vazio
2. I é uma família não vazia de subconjuntos de S, chamada de
subconjuntos independentes de S, tal que se B I∈ e A B⊆ então
A I∈ . Observe que o conjunto vazio deve ser necessariamente
um membro de I. Neste caso dizemos que I é hereditário
3. Se A I∈ , B I∈ e |A| < |B|, então existe algum elemento x (B-A)∈
tal que A U {x} I∈ .
Dizemos que M satisfez a propriedade de troca.
Problema da Mochila
Um ladrão que rouba uma loja encontra n itens, onde cada
item vale v reais e pesa p quilos. O ladrão deseja levar a carga
mais valiosa possível, mas consegue levar apenas W quilos em
sua mochila.
No problema da mochila 0-1, o ladrão deve levar itens
inteiros. Já no problema da mochila fracionária, o ladrão pode
levar frações de um item.
OBS: A solução gulosa para o problema da mochila 0-1 não
garante uma solução ótima.
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Peso suportado pela mochila: 50Kg
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$0,00
0 Kg
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$0,00
0 Kg
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$60,00
Item 1
10 Kg
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$60,00
10 Kg
Item 1
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
Item 2
30 Kg
Item 1
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
30 Kg
Item 2Item 1
Problema da Mochila 0-1
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
30 Kg
Não tem como colocar
mais 30 Kg na mochila
Item 2Item 1
Problema da Mochila 0-1
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
30 Kg
Item 2Item 1
A solução ótima para o problema da mochila 0-1
é encontrada utilizando programação dinâmica
Problema da Mochila 0-1
Solução Ótima
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Mochila (50 Kg)
Valor: R$220,00
50 Kg
Item 2 Item 3
Problema da Mochila Fracionária
● No problema da mochila fracionária, podemos fracionar um
item
● Por exemplo:
Cabe apenas mais 10 Kg na mochila e eu tenho um item
que pesa 100 Kg. Então eu posso fracionar o item de
forma a colocar apenas 10% de seu peso na mochila e
consequentemente colocar apenas 10% de seu valor
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Peso suportado pela mochila: 50Kg
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$0,00
0 Kg
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$0,00
0 Kg
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$60,00
Item 1
10 Kg
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$60,00
10 Kg
Item 1
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
Item 2
30 Kg
Item 1
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
30 Kg
Item 2Item 1
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
30 Kg
Cabe mais 20 Kg, ou seja
2/3 do Item 3
Item 2Item 1
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$160,00
30 Kg
2/3 * 30 = 20Kg
2/3 * 120 = R$80,00
Item 2Item 1
Problema da Mochila Fracionária
Item Valor (R$) Peso (Kg) Valor por Kg
1 60 10 6
2 100 20 5
3 120 30 4
Solução Gulosa
Mochila (50 Kg)
Valor: R$240,00
50 Kg
Item 2Item 1 2/3 do Item 3
Problema da Mochila Fracionária
Solução Gulosa → Ótima
Mochila (50 Kg)
Valor: R$240,00
50 Kg
Item 2Item 1 2/3 do Item 3
Algoritmo
Mochila.cpp
Gula vs Programação Dinâmica
Às vezes é difícil distinguir um algoritmo guloso de um
algoritmo de programação dinâmica. Algumas características que
podem ajudar são:
Guloso Programação Dinâmica
Alternativa mais promissora Explora todas as alternativas
É muito rápido Um tanto lento
Nunca se arrepende Pode se arrepender
Não tem garantia de solução ótima Tem garantia de solução ótima
Outros Algoritmos Gulosos
● Código de Huffman
● Algoritmo de Kruskal
(Árvore Geradora de Peso Mínimo - Grafos)
● Dijkstra (Caminho Mínimo - Grafos)

Contenu connexe

Tendances

Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...
Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...
Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...Turma Olímpica
 
Equaçõe diferenciais zill resolução
Equaçõe diferenciais   zill resoluçãoEquaçõe diferenciais   zill resolução
Equaçõe diferenciais zill resoluçãoDywilly Dias
 
Aula "Introdução à Química Orgânica" para o 9.º ano
Aula "Introdução à Química Orgânica" para o 9.º anoAula "Introdução à Química Orgânica" para o 9.º ano
Aula "Introdução à Química Orgânica" para o 9.º anoMinistry of Education
 
Os valores e a acção o relativismo moral cultural (2)
Os valores e a acção   o relativismo moral cultural (2)Os valores e a acção   o relativismo moral cultural (2)
Os valores e a acção o relativismo moral cultural (2)Luis De Sousa Rodrigues
 
Matéria, constituição, propriedades e transformações
Matéria, constituição, propriedades e transformaçõesMatéria, constituição, propriedades e transformações
Matéria, constituição, propriedades e transformaçõesSMEdeItabaianinha
 
Juízo de fato e Juízo de valor
Juízo de fato e Juízo de valorJuízo de fato e Juízo de valor
Juízo de fato e Juízo de valorDanilo Pires
 
Críticas à Ética deontológica de Kant.pptx
Críticas à Ética deontológica de Kant.pptxCríticas à Ética deontológica de Kant.pptx
Críticas à Ética deontológica de Kant.pptxHelena Serrão
 
Aula 14 ensaio de fluência
Aula 14   ensaio de fluênciaAula 14   ensaio de fluência
Aula 14 ensaio de fluênciaRenaldo Adriano
 
Leis De Newton
Leis De NewtonLeis De Newton
Leis De NewtonMiky Mine
 
Aula 20 introdução aos elementos elásticos
Aula 20   introdução aos elementos elásticosAula 20   introdução aos elementos elásticos
Aula 20 introdução aos elementos elásticosRenaldo Adriano
 
Propriedades dos materias2
Propriedades dos materias2Propriedades dos materias2
Propriedades dos materias2PublicaTUDO
 
Concepcoes platonica, aristotelica e cartesiana incompleto
Concepcoes platonica, aristotelica e cartesiana incompletoConcepcoes platonica, aristotelica e cartesiana incompleto
Concepcoes platonica, aristotelica e cartesiana incompletoLula Socio
 

Tendances (20)

Lançamento horizontal
Lançamento horizontalLançamento horizontal
Lançamento horizontal
 
Estudo dos movimentos
Estudo dos movimentosEstudo dos movimentos
Estudo dos movimentos
 
Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...
Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...
Slides da aula de Filosofia (João Luís) sobre Sentidos, Razão, Realidade, Ex...
 
Equaçõe diferenciais zill resolução
Equaçõe diferenciais   zill resoluçãoEquaçõe diferenciais   zill resolução
Equaçõe diferenciais zill resolução
 
Aula "Introdução à Química Orgânica" para o 9.º ano
Aula "Introdução à Química Orgânica" para o 9.º anoAula "Introdução à Química Orgânica" para o 9.º ano
Aula "Introdução à Química Orgânica" para o 9.º ano
 
Os valores e a acção o relativismo moral cultural (2)
Os valores e a acção   o relativismo moral cultural (2)Os valores e a acção   o relativismo moral cultural (2)
Os valores e a acção o relativismo moral cultural (2)
 
Etica e liberdade
Etica e liberdadeEtica e liberdade
Etica e liberdade
 
2ª lei de newton
2ª lei de newton2ª lei de newton
2ª lei de newton
 
Matéria, constituição, propriedades e transformações
Matéria, constituição, propriedades e transformaçõesMatéria, constituição, propriedades e transformações
Matéria, constituição, propriedades e transformações
 
Juízo de fato e Juízo de valor
Juízo de fato e Juízo de valorJuízo de fato e Juízo de valor
Juízo de fato e Juízo de valor
 
Estética
Estética Estética
Estética
 
Críticas à Ética deontológica de Kant.pptx
Críticas à Ética deontológica de Kant.pptxCríticas à Ética deontológica de Kant.pptx
Críticas à Ética deontológica de Kant.pptx
 
Relativismo e direitos humanos 1
Relativismo  e direitos humanos 1Relativismo  e direitos humanos 1
Relativismo e direitos humanos 1
 
Aula 14 ensaio de fluência
Aula 14   ensaio de fluênciaAula 14   ensaio de fluência
Aula 14 ensaio de fluência
 
1ª lei de newton
1ª lei de newton1ª lei de newton
1ª lei de newton
 
Leis De Newton
Leis De NewtonLeis De Newton
Leis De Newton
 
Aula 20 introdução aos elementos elásticos
Aula 20   introdução aos elementos elásticosAula 20   introdução aos elementos elásticos
Aula 20 introdução aos elementos elásticos
 
Propriedades dos materias2
Propriedades dos materias2Propriedades dos materias2
Propriedades dos materias2
 
Cisalhamento
CisalhamentoCisalhamento
Cisalhamento
 
Concepcoes platonica, aristotelica e cartesiana incompleto
Concepcoes platonica, aristotelica e cartesiana incompletoConcepcoes platonica, aristotelica e cartesiana incompleto
Concepcoes platonica, aristotelica e cartesiana incompleto
 

En vedette

Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoGabriel Albuquerque
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoDelacyr Ferreira
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordGabriel Albuquerque
 
Caminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraCaminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraMarcos Castro
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos GrafosBianca Dantas
 
Algoritmo de Dijkstra
Algoritmo de DijkstraAlgoritmo de Dijkstra
Algoritmo de DijkstraPedro Miranda
 
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADEPROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADEJoao Gonçalves
 
Filobr02 marciane 23 mp
Filobr02 marciane 23 mpFilobr02 marciane 23 mp
Filobr02 marciane 23 mpalemisturini
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de AlgoritmosAdilmar Dantas
 
Matemática computacional aula 001
Matemática computacional   aula 001Matemática computacional   aula 001
Matemática computacional aula 001Flávio Freitas
 
Caminhos Mínimos: Dijkstra e Floyd-Warshall
Caminhos Mínimos: Dijkstra e Floyd-WarshallCaminhos Mínimos: Dijkstra e Floyd-Warshall
Caminhos Mínimos: Dijkstra e Floyd-WarshallJohnnatan Messias
 
Otimização
OtimizaçãoOtimização
Otimizaçãoler9blog
 
Algoritmo de Floyd-Warshall
Algoritmo de Floyd-WarshallAlgoritmo de Floyd-Warshall
Algoritmo de Floyd-WarshallJoao Silva
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática ComputacionalRicardo Terra
 

En vedette (20)

Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco Mínimo
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Caminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraCaminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de Dijkstra
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
 
Algoritmo de Dijkstra
Algoritmo de DijkstraAlgoritmo de Dijkstra
Algoritmo de Dijkstra
 
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADEPROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
 
Filobr02 marciane 23 mp
Filobr02 marciane 23 mpFilobr02 marciane 23 mp
Filobr02 marciane 23 mp
 
Otimização convexa e cvx
Otimização convexa e cvxOtimização convexa e cvx
Otimização convexa e cvx
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
Matemática computacional aula 001
Matemática computacional   aula 001Matemática computacional   aula 001
Matemática computacional aula 001
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Caminhos Mínimos: Dijkstra e Floyd-Warshall
Caminhos Mínimos: Dijkstra e Floyd-WarshallCaminhos Mínimos: Dijkstra e Floyd-Warshall
Caminhos Mínimos: Dijkstra e Floyd-Warshall
 
Otimização
OtimizaçãoOtimização
Otimização
 
Algoritmo de kruskal
Algoritmo de kruskalAlgoritmo de kruskal
Algoritmo de kruskal
 
Otimização
OtimizaçãoOtimização
Otimização
 
Algoritmo de Floyd-Warshall
Algoritmo de Floyd-WarshallAlgoritmo de Floyd-Warshall
Algoritmo de Floyd-Warshall
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática Computacional
 
Algoritmo de Dijkstra
Algoritmo de DijkstraAlgoritmo de Dijkstra
Algoritmo de Dijkstra
 

Algoritmo Guloso

  • 1. Luís Ovídio Viana Podestá Fabiana Zioti Vinícius Henrique Marangoni Algoritmo Guloso
  • 2. Roteiro → Introdução → Matróide → Problema da Mochila → Algoritmo da mochila em C++ → Exercícios
  • 3. Algoritmo Algoritmo é uma sequência finita de instruções bem definidas que devem ser seguidas para resolver um problema ou executar uma tarefa.
  • 4. Otimização Otimização em matemática, corresponde ao estudo de problemas onde se busca minimizar ou maximizar uma função. As técnicas matemáticas de otimização visam encontrar uma "solução ótima" para certo problemas, ou seja, que resulte no melhor desempenho possível do sistema. Normalmente esses problemas são modelos da realidade física, então inicialmente é necessário construir um modelo matemático.
  • 5. Algoritmo Guloso Uma das estratégias para resolver problemas de otimização são os algoritmos gulosos ou paradigma guloso na concepção de algoritmos. Ele escolhe a melhor opção naquele momento (melhor opção local), e assim pretende chegar a melhor solução no todo (global).
  • 6. Características ● Algoritmos simples e de fácil implementação. ● Nem sempre conduz à soluções ótimas globais. ● Podem efetuar cálculos repetitivos. ● Um algoritmo guloso é "míope“. ● Nunca reconsideram decisões tomadas.
  • 7. Matróide Um Matróide é um par ordenado M = (S, I), satisfazendo as seguintes condições: 1. S é um conjunto finito não vazio 2. I é uma família não vazia de subconjuntos de S, chamada de subconjuntos independentes de S, tal que se B I∈ e A B⊆ então A I∈ . Observe que o conjunto vazio deve ser necessariamente um membro de I. Neste caso dizemos que I é hereditário 3. Se A I∈ , B I∈ e |A| < |B|, então existe algum elemento x (B-A)∈ tal que A U {x} I∈ . Dizemos que M satisfez a propriedade de troca.
  • 8. Problema da Mochila Um ladrão que rouba uma loja encontra n itens, onde cada item vale v reais e pesa p quilos. O ladrão deseja levar a carga mais valiosa possível, mas consegue levar apenas W quilos em sua mochila. No problema da mochila 0-1, o ladrão deve levar itens inteiros. Já no problema da mochila fracionária, o ladrão pode levar frações de um item. OBS: A solução gulosa para o problema da mochila 0-1 não garante uma solução ótima.
  • 9. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Peso suportado pela mochila: 50Kg
  • 10. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$0,00 0 Kg
  • 11. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$0,00 0 Kg
  • 12. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$60,00 Item 1 10 Kg
  • 13. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$60,00 10 Kg Item 1
  • 14. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 Item 2 30 Kg Item 1
  • 15. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 30 Kg Item 2Item 1
  • 16. Problema da Mochila 0-1 Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 30 Kg Não tem como colocar mais 30 Kg na mochila Item 2Item 1
  • 17. Problema da Mochila 0-1 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 30 Kg Item 2Item 1 A solução ótima para o problema da mochila 0-1 é encontrada utilizando programação dinâmica
  • 18. Problema da Mochila 0-1 Solução Ótima Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Mochila (50 Kg) Valor: R$220,00 50 Kg Item 2 Item 3
  • 19. Problema da Mochila Fracionária ● No problema da mochila fracionária, podemos fracionar um item ● Por exemplo: Cabe apenas mais 10 Kg na mochila e eu tenho um item que pesa 100 Kg. Então eu posso fracionar o item de forma a colocar apenas 10% de seu peso na mochila e consequentemente colocar apenas 10% de seu valor
  • 20. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Peso suportado pela mochila: 50Kg
  • 21. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$0,00 0 Kg
  • 22. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$0,00 0 Kg
  • 23. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$60,00 Item 1 10 Kg
  • 24. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$60,00 10 Kg Item 1
  • 25. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 Item 2 30 Kg Item 1
  • 26. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 30 Kg Item 2Item 1
  • 27. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 30 Kg Cabe mais 20 Kg, ou seja 2/3 do Item 3 Item 2Item 1
  • 28. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$160,00 30 Kg 2/3 * 30 = 20Kg 2/3 * 120 = R$80,00 Item 2Item 1
  • 29. Problema da Mochila Fracionária Item Valor (R$) Peso (Kg) Valor por Kg 1 60 10 6 2 100 20 5 3 120 30 4 Solução Gulosa Mochila (50 Kg) Valor: R$240,00 50 Kg Item 2Item 1 2/3 do Item 3
  • 30. Problema da Mochila Fracionária Solução Gulosa → Ótima Mochila (50 Kg) Valor: R$240,00 50 Kg Item 2Item 1 2/3 do Item 3
  • 32. Gula vs Programação Dinâmica Às vezes é difícil distinguir um algoritmo guloso de um algoritmo de programação dinâmica. Algumas características que podem ajudar são: Guloso Programação Dinâmica Alternativa mais promissora Explora todas as alternativas É muito rápido Um tanto lento Nunca se arrepende Pode se arrepender Não tem garantia de solução ótima Tem garantia de solução ótima
  • 33. Outros Algoritmos Gulosos ● Código de Huffman ● Algoritmo de Kruskal (Árvore Geradora de Peso Mínimo - Grafos) ● Dijkstra (Caminho Mínimo - Grafos)