+ All Categories
Home > Documents > Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf ·...

Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf ·...

Date post: 26-Dec-2019
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
88
Algoritmos e Estruturas de Dados II Backtracking Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info
Transcript
Page 1: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

Algoritmos e Estruturas de Dados II

BacktrackingProf. Tiago Eugenio de Melo

[email protected]

www.tiagodemelo.info

Page 2: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

2/88

Observações

● As palavras com a fonte Courier indicam as palavras-reservadas da linguagem de programação.

Page 3: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

3/88

Referências

● Fundamentals of Python From First Programs Through Data Structures. Kenneth A. Lambert. CENGAGE Learning, 2010.

● Algorithms in a Nutshell. George T. Heineman, Gary Pollice, Stanley Selkow. O’Reilly Media, 2009.

● Projetos de Algoritmos – com implementações em Pascal e C. Nivio Ziviani. 2a edição. Thomson, 2005.

Page 4: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

4/88

Força Bruta

Page 5: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

5/88

Força Bruta

Page 6: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

6/88

Força Bruta

● Também conhecido como busca exaustiva.

Page 7: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

7/88

Força Bruta

● Também conhecido como busca exaustiva.● É um tipo de estratégia para resolução de

problemas que consiste em enumerar todos os possíveis candidatos de uma solução e verificar se cada um satisfaz o problema.

Page 8: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

8/88

Força Bruta

● Também conhecido como busca exaustiva.● É um tipo de estratégia para resolução de

problemas que consiste em enumerar todos os possíveis candidatos de uma solução e verificar se cada um satisfaz o problema.

● A implementação é simples e sempre encontrará uma solução.

Page 9: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

9/88

Força Bruta

● Também conhecido como busca exaustiva.● É um tipo de estratégia para resolução de problemas

que consiste em enumerar todos os possíveis candidatos de uma solução e verificar se cada um satisfaz o problema.

● A implementação é simples e sempre encontrará uma solução.

● Porém, o custo computacional é proporcional ao número de candidatos a solução que, em problemas reais, tende a crescer exponencialmente.

Page 10: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

10/88

Força Bruta

● Estratégia comumente usada em problemas cujo tamanho é limitado ou quando não se conhece um algoritmo mais eficiente.

Page 11: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

11/88

Força Bruta

Page 12: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

12/88

Força Bruta

● Problema Clique1

1: http://www.ic.unicamp.br/~zanoni/mc102/2013-1s/aulas/aula22.pdf

Page 13: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

13/88

Força Bruta

● Problema Clique1

– Considere um conjunto P de n pessoas e uma matriz M de tamanho n x n, tal que M[i,j]=M[j,i]=1, se as pessoas i e j se conhecem e M[i,j]=M[j,i]=0, caso contrário.

1: http://www.ic.unicamp.br/~zanoni/mc102/2013-1s/aulas/aula22.pdf

Page 14: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

14/88

Força Bruta

● Problema Clique1

– Considere um conjunto P de n pessoas e uma matriz M de tamanho n x n, tal que M[i,j]=M[j,i]=1, se as pessoas i e j se conhecem e M[i,j]=M[j,i]=0, caso contrário.

– Problema: existe um subconjunto C (Clique), de r pessoas escolhidas de P, tal que qualquer par de pessoas de C se conhecem?

1: http://www.ic.unicamp.br/~zanoni/mc102/2013-1s/aulas/aula22.pdf

Page 15: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

15/88

Força Bruta

● Problema Clique1

– Considere um conjunto P de n pessoas e uma matriz M de tamanho n x n, tal que M[i,j]=M[j,i]=1, se as pessoas i e j se conhecem e M[i,j]=M[j,i]=0, caso contrário.

– Problema: existe um subconjunto C (Clique), de r pessoas escolhidas de P, tal que qualquer par de pessoas de C se conhecem?

– Solução por FB: verificar, para todas as combinações simples (sem repetições) C de r pessoas escolhidas entre as n pessoas do conjunto P, se todos os pares de pessoas de C se conhecem.

1: http://www.ic.unicamp.br/~zanoni/mc102/2013-1s/aulas/aula22.pdf

Page 16: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

16/88

Força Bruta

Page 17: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

17/88

Força Bruta

● Considere um conjunto P de 8 pessoas representado pela matriz abaixo (8 x 8):

Page 18: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

18/88

Força Bruta

● Considere um conjunto P de 8 pessoas representado pela matriz abaixo (8 x 8):

Page 19: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

19/88

Força Bruta

● Considere um conjunto P de 8 pessoas representado pela matriz abaixo (8 x 8):

● Existem um conjunto C de 5 pessoas escolhidas de P tal que qualquer par de pessoas de C se conhecem?

Page 20: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

20/88

Força Bruta

Page 21: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

21/88

Força Bruta

● Existem 56 combinações simples de 5 elementos escolhidos dentre um conjunto de 8 elementos:

Page 22: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

22/88

Força Bruta

● Existem 56 combinações simples de 5 elementos escolhidos dentre um conjunto de 8 elementos:

Page 23: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

23/88

Força Bruta

● Existem 56 combinações simples de 5 elementos escolhidos dentre um conjunto de 8 elementos:

Page 24: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

24/88

Força Bruta

Page 25: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

25/88

Força Bruta

● Note que todos os pares de pessoas do subconjunto C = {1, 3, 4, 6, 7} se conhecem:

Page 26: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

26/88

Força Bruta

● Note que todos os pares de pessoas do subconjunto C = {1, 3, 4, 6, 7} se conhecem:

Page 27: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

27/88

Força Bruta

● Note que todos os pares de pessoas do subconjunto C = {1, 3, 4, 6, 7} se conhecem:

● Como enumerar todas as combinações simples de r elementos de um conjunto de tamanho n?

Page 28: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

28/88

Força Bruta

● Note que todos os pares de pessoas do subconjunto C = {1, 3, 4, 6, 7} se conhecem:

● Como enumerar todas as combinações simples de r elementos de um conjunto de tamanho n?

Page 29: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

29/88

Backtracking

Page 30: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

30/88

Introdução

Page 31: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

31/88

Introdução

● É um refinamento da estratégia dos algoritmos de força bruta.

Page 32: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

32/88

Introdução

● É um refinamento da estratégia dos algoritmos de força bruta.

● Parte das possíveis soluções que podem ser eliminadas sem que sejam explicitamente executadas.

Page 33: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

33/88

Introdução

● É um refinamento da estratégia dos algoritmos de força bruta.

● Parte das possíveis soluções que podem ser eliminadas sem que sejam explicitamente executadas.

● Problemas cujas soluções podem ser definidas através de uma sequência de decisões.

Page 34: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

34/88

Introdução

● É um refinamento da estratégia dos algoritmos de força bruta.

● Parte das possíveis soluções que podem ser eliminadas sem que sejam explicitamente executadas.

● Problemas cujas soluções podem ser definidas através de uma sequência de decisões.

● Os problemas podem ser modelados por uma árvore de decisão que representa todas as possíveis sequências de decisão.

Page 35: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

35/88

Introdução

Page 36: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

36/88

Introdução

● Se houver mais de uma decisão disponível para cada uma das n decisões, a busca exaustiva (força bruta) será exponencial.

Page 37: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

37/88

Introdução

● Se houver mais de uma decisão disponível para cada uma das n decisões, a busca exaustiva (força bruta) será exponencial.

● A eficiência da estratégia depende da possibilidade de limitar a busca.

Page 38: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

38/88

Introdução

● Se houver mais de uma decisão disponível para cada uma das n decisões, a busca exaustiva (força bruta) será exponencial.

● A eficiência da estratégia depende da possibilidade de limitar a busca.

● Necessário definir um espaço de solução para o problema:

Page 39: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

39/88

Introdução

● Se houver mais de uma decisão disponível para cada uma das n decisões, a busca exaustiva (força bruta) será exponencial.

● A eficiência da estratégia depende da possibilidade de limitar a busca.

● Necessário definir um espaço de solução para o problema:– Que inclua a solução ótima.

Page 40: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

40/88

Introdução

● Se houver mais de uma decisão disponível para cada uma das n decisões, a busca exaustiva (força bruta) será exponencial.

● A eficiência da estratégia depende da possibilidade de limitar a busca.

● Necessário definir um espaço de solução para o problema:– Que inclua a solução ótima.– Que possa ser pesquisada de forma organizada.

Page 41: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

41

Exemplos

Page 42: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

42

Problema da Mochila

Page 43: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

43

Problema da Mochila

● Deve-se preencher uma mochila com diversos itens com pesos e/ou valores diferentes.

Page 44: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

44

Problema da Mochila

● Deve-se preencher uma mochila com diversos itens com pesos e/ou valores diferentes.

Page 45: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

45

Problema da Mochila

● Deve-se preencher uma mochila com diversos itens com pesos e/ou valores diferentes.

● O objetivo é preencher a mochila com o maior valor possível, não ultrapassando o peso máximo suportado pela mochila.

Page 46: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

46

Problema da Mochila

Page 47: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

47

Problema da Mochila

● Entrada

Page 48: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

48

Problema da Mochila

● Entrada– N itens com pesos pi e valores vi,

onde a capacidade da mochila é K.

Page 49: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

49

Problema da Mochila

● Entrada– N itens com pesos pi e valores vi,

onde a capacidade da mochila é K.

● O objetivo é obter um conjunto S de itens, tais que:

Page 50: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

50

Problema da Mochila

● Entrada– N itens com pesos pi e valores vi, onde a

capacidade da mochila é K.

● O objetivo é obter um conjunto S de itens, tais que:– A soma dos pesos dos itens S ≤ K e a soma

dos valores dos itens em S seja a maior possível.

Page 51: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

51

Problema da Mochila

Page 52: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

52

Problema da Mochila

● Qual item escolher primeiro?

Page 53: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

53

Problema da Mochila

● Qual item escolher primeiro?– Maior valor?

Page 54: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

54

Problema da Mochila

● Qual item escolher primeiro?– Maior valor?– Menor peso?

Page 55: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

55

Problema da Mochila

Page 56: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

56

Problema da Mochila

● Solução por força bruta

Page 57: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

57

Problema da Mochila

● Solução por força bruta– Gerar todas as possíveis combinações.

Page 58: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

58

Problema da Mochila

● Solução por força bruta– Gerar todas as possíveis combinações.

● Com n itens, existem 2n soluções.

Page 59: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

59

Problema da Mochila

● Solução por força bruta– Gerar todas as possíveis combinações.

● Com n itens, existem 2n soluções.● Checar se cada solução satisfaz limite de

peso.

Page 60: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

60

Problema da Mochila

● Solução por força bruta– Gerar todas as possíveis combinações.

● Com n itens, existem 2n soluções.● Checar se cada solução satisfaz limite de

peso.● Salvar a condição que melhor representa a

solução.

Page 61: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

61

Problema da Mochila

● Solução por força bruta– Gerar todas as possíveis combinações.

● Com n itens, existem 2n soluções.● Checar se cada solução satisfaz limite de peso.● Salvar a condição que melhor representa a

solução.

– Pode ser representada como uma árvore.

Page 62: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

62

Problema da Mochila

● Exemplo de mochila de 10 kg

Page 63: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

63

Problema da Mochila

● Exemplo de mochila de 10 kg

15,08 12,08 13,08

Page 64: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

64

Problema da Mochila

Page 65: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

65

Problema da Mochila

● Se alcançarmos um ponto em que a solução não é mais viável, não precisamos continuar explorando a solução.

Page 66: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

66

Problema da Mochila

● Se alcançarmos um ponto em que a solução não é mais viável, não precisamos continuar explorando a solução.– Podemos voltar (backtrack) a partir

deste ponto.

Page 67: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

67

Problema da Mochila

● Se alcançarmos um ponto em que a solução não é mais viável, não precisamos continuar explorando a solução.– Podemos voltar (backtrack) a partir

deste ponto.

● Essa estratégia se torna bastante útil:

Page 68: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

68

Problema da Mochila

● Se alcançarmos um ponto em que a solução não é mais viável, não precisamos continuar explorando a solução.– Podemos voltar (backtrack) a partir deste

ponto.

● Essa estratégia se torna bastante útil:– Na medida em que o número de itens cresce.

Page 69: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

69

Problema da Mochila

● Se alcançarmos um ponto em que a solução não é mais viável, não precisamos continuar explorando a solução.– Podemos voltar (backtrack) a partir deste ponto.

● Essa estratégia se torna bastante útil:– Na medida em que o número de itens cresce.– Na medida em que a capacidade da mochila

diminui.

Page 70: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

70

Problema da Mochila

● Backtracking < 10 kg

Page 71: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

71

Problema da Mochila

Page 72: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

72

Problema da Mochila

● Pode-se voltar também quando se sabe que a melhor solução da subárvore é pior do que a melhor solução já encontrada.

Page 73: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

73

Problema da Mochila

● Pode-se voltar também quando se sabe que a melhor solução da subárvore é pior do que a melhor solução já encontrada.

– É uma estratégia usada por muitos algoritmos.

Page 74: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

74

Problema da Mochila

● Backtracking com cortes por qualidade

Page 75: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

75

Problema da Mochila

● Solução genérica

Page 76: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

76

Problema do Caixeiro Viajante

● O problema consiste em minimizar o custo de um caixeiro viajante que deseja percorrer n cidades, visitando cada cidade apenas uma vez, e retornar para casa.

Page 77: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

77

Problema do Caixeiro Viajante

● O problema consiste em minimizar o custo de um caixeiro viajante que deseja percorrer n cidades, visitando cada cidade apenas uma vez, e retornar para casa.

Page 78: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

78

Problema do Caixeiro Viajante

Page 79: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

79

Problema do Caixeiro Viajante

● Força bruta

Page 80: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

80

Problema do Caixeiro Viajante

● Força bruta

– Se calcularmos um bilhão de soluções por segundo com um grafo com 30 cidades, demoraria 8 quadrilhões de anos para achar a melhor solução.

Page 81: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

81

Problema do Caixeiro Viajante

● Força bruta

– Se calcularmos um bilhão de soluções por segundo com um grafo com 30 cidades, demoraria 8 quadrilhões de anos para achar a melhor solução.

● Esse problema é O(n!).

Page 82: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

82

Sudoku

Page 83: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

83

Sudoku

● Regras:

Page 84: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

84

Sudoku

● Regras:

– Matriz de 9 x 9.

Page 85: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

85

Sudoku

● Regras:

– Matriz de 9 x 9.– Cada célula pode ter um valor 1 a 9.

Page 86: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

86

Sudoku

● Regras:

– Matriz de 9 x 9.– Cada célula pode ter um valor 1 a 9.– Cada linha e coluna possuem sempre

números distintos.

Page 87: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

87

Sudoku

● Regras:

– Matriz de 9 x 9.– Cada célula pode ter um valor 1 a 9.– Cada linha e coluna possuem sempre

números distintos.

Page 88: Backtracking - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/09/backtracking.pdf · 2019-09-10 · Problema do Caixeiro Viajante Força bruta – Se calcularmos um bilhão

88

Sudoku


Recommended