Backtracking

1.938 visualizações

Publicada em

Apresentação sobre Algoritmos com Backtracking na aula de Programação Avançada com o professor Marcelo Quinta UFG.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.938
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
39
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Backtracking

  1. 1. Backtracking Bruno Marquete da Silva Cássio Augusto da Silva Freitas Geovane Pazine Filho Igor Vinicius dos Santos Silva Inael Rodrigues de Oliveira Neto Jackeline Neves de Almeida Vinícius Gonçalves Braga
  2. 2. Agenda● O que é Backtracking?● Descrição do método● Exemplo: Problema da mochila● Exemplo 2: Cotação de livro
  3. 3. O que é Backtracking?● Tipo de algoritmo por força bruta;● Múltiplas soluções podem ser eliminadas sem serem examinadas;● É um método para iterar todas as possíveis configurações (permutação dos elementos);● Pode ser personalizado;● Solução é um vetor a = (a1, a2, ... a-n) sendo cada elemento a-i selecionado de um conjunto Si● Exemplos comuns: criação de permutações e subconjuntos
  4. 4. O que é Backtracking?● Pode ser aplicado somente para problema que admite: ○ o conceito de "partial candidate solution"; ○ um teste relativamente rápido se ele pode ser completado com uma solução válida;● Pode eliminar um grande número de candidatos com um único teste
  5. 5. O que é Backtracking● Assegura o acerto por enumerar todas as possibilidades sem nunca visitar o mesmo estado;● Eficiente;● A recursividade promove a elegância e a fácil implementação desse algoritmo, porque o vetor de novos candidatos, c, é alocado com um procedimento recursivo;● As principais aplicações do backtracking são da criação de todos os subconjuntos de um conjunto S e na criação de todas as suas permutações
  6. 6. Descrição do método● Como o backtracking faz busca por profundidade, podemos ilustrar o método que o mesmo exerce de força bruta utilizando o seguinte exemplo: ○ Quando caminhamos pela arvore e encontramos um nó v pela primeira vez, cada aresta incidente a v é expolorada na tentativa de identificar uma solução possível, partindo da esquerda para a direita, caso não encontre, o controle volta (backtracks) ao nó de partida do qual v foi alcançado. Com isso temos a seguinte situação:
  7. 7. Descrição do Método● a, b, e, (b), f, g, (f), h, (f), i, (f), (b), (a), c, (a), d. ○ Onde os parênteses indicam os caminhos em backtracking
  8. 8. Exemplo: Problema da mochila ● Deve-se preencher umamochila com diversos itenscom pesos e valores(benefícios) diferentes. ● O objetivo é que sepreencher a mochila com omaior valor (benefício)possível, sem ultrapassar acapacidade (peso máximo).
  9. 9. Exemplo: Problema da mochila● Entrada: ○ capacidade da mochila, K ○ n itens com pesos pi e valores vi● O objetivo é obter um conjunto S de itens tais que: ○ A soma dos pesos dos itens em S seja menor ou igual a K ○ A soma dos valores dos itens em S seja a maior possível
  10. 10. Exemplo: Problema da mochila Força bruta● Gerar todas as possiveis combinações n ○ Com n itens, existem 2 soluções ○ Checar se cada solução satisfaz limite peso ○ Salvar a condição que melhor representa a solução● Pode ser representada como uma árvore
  11. 11. Exemplo: Problema da mochila Força bruta
  12. 12. Exemplo: Problema da mochila Backtracking● Se alcançamos um ponto em que a solução não é mais viável, não precisamos continuar exporando a solução. ○ Podemos “voltar atrás” (backtrack) a partir deste ponto.● No exemplo backtracking se torna bastante útil: ○ Na medida em que o número de itens cresce. ○ Na medida em que a capacidade da mochila diminui.
  13. 13. Exemplo: Problema da mochila Backtracking
  14. 14. Exemplo: Problema da mochila Backtracking● Pode-se voltar atrás também quando se sabe que amelhor solução da subárvore é pior do que a melhorsolução já encontrada. ● Fundamento utilizado por muitos algoritmos ● Exemplo típico: Branch and Bound
  15. 15. Exemplo: Problema da mochila Backtracking
  16. 16. Exemplo 2: Cotação de livro Backtracking AO VIVO

×