Átila valgueiro malta moreira juliana medeiros de lucena rafael alberto gomes pereira lima rafael...

59
Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago Carneiro Pessoa Canto Victor Barbosa de Oliveira Medeiros Vinícius Monteiro de Lira [email protected]

Upload: internet

Post on 21-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Átila Valgueiro Malta MoreiraJuliana Medeiros de LucenaRafael Alberto Gomes Pereira LimaRafael Loureiro de Carvalho

Sara Carvalho da Rocha BritoTiago Carneiro Pessoa CantoVictor Barbosa de Oliveira MedeirosVinícius Monteiro de Lira

[email protected]

Page 2: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Conceito de instância

É um conjunto de dados de um determinado problema computacional.

Ex.: No problema da equação do segundo grau (ax2 + bx + c), a escolha dos coeficientes a, b, c define sua instância.

Os números 3, 6, 4, 5 podem ser uma instância do problema de ordenação.

Page 3: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Tipos de Problemas

Podemos classificar os diversos problemas em classes a partir de um critério de classificação:

quanto ao retorno: refere-se ao tipo de resposta dada pelo problema, se corresponde a uma solução do problema, por exemplo.

quanto à solubilidade: se o problema possui solução ou não.

Page 4: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classificação quanto ao retorno

retorna uma ou mais soluções de uma instância do problema:

otimização

corretude

completude

decisão: a partir de uma dada entrada, decidir se é solução ou não de uma instância de um problema.

Page 5: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classificação quanto à solubilidade indecidível: problemas que não possuem solução computacional;

decidível: problemas que possuem solução computacional:

complexidade de tempo

• polinomiais ou tratáveis

• exponenciais ou intratáveis

• np-completos

complexidade de espaço

Page 6: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas que retornam uma ou mais soluções

Dada uma instância de um problema, podemos achar um valor que a satisfaça:

Ex.: dada a instância, encontrar uma valoração que satisfaça uma expressão lógica, se houver.

Encontrar um caminho de comprimento máximo num grafo.

Encontrar a raiz de uma equação de segundo grau.

Neste tipo de problema, nem sempre existe solução.

Page 7: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas corretosProblemas corretos são aqueles cujas respostas são soluções válidas de uma determinada instância.

Ex.: No problema da equação de segundo grau, dada a instância x2 - 5x + 6, o algoritmo retorna o valor 2, que é uma das soluções.

No problema do grafo, o algoritmo retorna um caminho entre dois vértices válido.

No problema da satisfatibilidade, dada a instância (A ^ ¬B) v C encontra-se as valorações (A=1,B=0,C=0) e (A=1,B=1,C=1) que a tornam satisfatível.

Muitas vezes não estamos interessados em apenas algumas soluções, mas em todas.

Page 8: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas completosProblemas completos são aqueles que retornam todas as soluções válidas de uma determinada instância como resposta.

Ex.: No problema da equação de segundo grau, dada a instância x2 - 5x + 6, o algoritmo retorna os valores 2, 3 e 4.

No problema do grafo, o algoritmo retorna todos os caminhos válidos entre dois vértices.

No problema da satisfatibilidade, encontra-se todas as valorações válidas de uma proposição.

Alguns problemas podem surgir, como soluções infinitas, ou até mesmo soluções incorretas.

Page 9: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas de otimização

Devido a certos problemas nos algoritmos corretos e completos, busca-se algoritmos que sejam ambos. Mas, às vezes não estamos interessados em qualquer solução, mas aquela que seja a melhor, a ótima.

Ex.:Encontrar o mínimo valor de uma função num gráfico.

No problema do grafo, o algoritmo retorna o melhor caminho válido entre dois vértices, ou seja, o menor caminho ou o de custo mínimo.

Problemas de otimização são muitas vezes muito custosos, além de ter certos problemas como achar apenas o ótimo local, ao invés do global.

Page 10: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas de decisãoA partir de uma instância, verificar se ela pertence ao problema ou não, neste caso a solução só admite dois valores: sim e não.

Ex.: Decidir se, dado um conjunto, é possível combinando eles, obter o número k.

Decidir se uma determinada instância do problema de segundo grau possui raízes primas entre si.

A esse tipo de problema, dá-se o nome de problema de decisão, e sempre existe solução. Um problema de decisão que pode ser resolvido por algum algoritmo é chamado de problema de decisão decidível.

Page 11: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas Polinomiais

Um algoritmo é dito polinomial se seu tempo de execução é limitado por uma função polinomial. Ou seja, para a instância de pior caso, ele é executado em tempo polinomial.

Um problema é dito polinomial se possui pelo menos um algoritmo polinomial. Também conhecido como problema fácil ou tratável.

Um problema é não-polinomial se ainda não possui um algoritmo polinomial que o resolva.

Page 12: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe P

A classe P é composta por todos os problemas polinomiais.

Ex.: Problema da ordenação (algoritmos mergesort, quicksort e heapsort);

Busca em grafos

O desafio é inserir vários problemas na classe P (ideal), achando-se um algoritmo polinomial!

Page 13: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Problemas Exponenciais

No entanto, há problemas que comprovadamente não possuem algoritmos polinomiais. A estes problemas, denominamos exponenciais.

Também conhecidos como problema difícil ou intratável.

Estes problemas são resolvidos por algoritmos exponenciais.

Page 14: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Redução entre problemas

Um problema A é redutível a outro B se:

• existir uma função f que transforme uma instância IA de A em uma de B, IB;

• existir uma função g que transforme a solução SB de B em uma de SA de A.

Dessa forma, podemos resolver A através de um algoritmo conhecido de B.

Page 15: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Redução polinomial

Um problema A é redutível de maneira polinomial a outro B se a transformação for polinomial, ou seja, as funções f e g forem polinomiais.

Page 16: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Redução polinomial

Assim, podemos achar um algoritmo para A através de um já conhecido de B.

πA = f ◦ π B ◦ g

Dessa forma, a complexidade de πA será o custo de πB e das funções f e g.

Assumindo f e g polinomiais:

• Se B é problema polinomial então A também será.

• Se A é problema exponencial então B também será.

Page 17: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Propriedades

• transitividade: se um problema A é redutível a B e B é redutível a C, então A é redutível a C.

πA = f’ ◦ π B ◦ g’ πB = f’’ ◦ π C ◦ g’’

πA = f’ ◦ f’’ ◦ π C ◦ g’ ◦ g’’

• polinomialmente equivalente: se dois problemas forem redutíveis polinomialmente entre si, eles são polinomialmente equivalente.

Page 18: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Noção de difícil

Forma de classificar os problemas relacionando-os.

Um problema é mais difícil que outro se ele possui uma complexidade computacional (complexidade de tempo) maior.

Assim, um problema exponencial é mais difícil que um polinomial.

Page 19: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Noção de difícil

Um problema A não é mais difícil que outro B se A for um caso particular de B.

Ex.: O problema de resolver uma equação do segundo grau não é mais difícil que o problema de resolver uma equação do terceiro grau.

A existência de uma redução polinomial de A para B indica que B é tão ou mais difícil que A.

A é tão difícil quanto B se forem polinomialmente equivalentes.

Page 20: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Decisão x Otimização

É possível formular um problema de otimização como um de decisão relacionado. O problema de otimização é mais difícil (computacionalmente) que seu problema de decisão relacionado.

Ex.: Achar o menor caminho entre dois vértices é mais difícil que verificar se um caminho entre esses vértices possui tamanho k.

Dessa maneira, se um problema de decisão é difícil, então, seu problema de otimização também o é.

Page 21: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NP

Dada uma suposta solução de uma instância de um problema, podemos verificar se ela é válida ou não. Se essa verificação ocorrer em tempo polinomial, então esse problema estará em NP.

A classe NP (não-deterministicamente polinomial) é um conjunto que possui todos os problemas com tais características, verificáveis polinomialmente.

Page 22: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Exemplos de problemas NP

Dados os inteiros a, b e c (instância) e uma suposta solução x da correspondente equação do segundo grau, é fácil verificar se x é de fato uma solução: basta verificar se x é inteiro e comparar o valor da expressão ax2 + bx + c com 0.  Portanto, o problema da equação de segundo grau está em NP.

Dado um número natural n (instância) e dois outros números naturais p e q, é fácil verificar se é verdade que n = p·q.  Portanto, o problema do número composto está em NP.

Page 23: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NPPara nos ajudar a classificar os problemas em NP, usaremos uma abstração, o algoritmo não-determinístico, com tais objetivos:

• queremos avaliar apenas o custo de se avaliar uma possível solução;

• tal solução será retornada pelo comando Escolha;

• assemelha-se a um algoritmo de decisão, retorna sim (caso exista solução) e não (caso contrário).

Page 24: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Comando Escolha

Devido aos objetivos do algoritmo não-determinístico, o comando Escolha possui as seguintes características:

• custo constante (igual a um);

• sempre retorna um valor, uma solução possível se houver, caso contrário, retornará uma solução inválida;

• devido a suas características, é não-implementável, o que faz com que todo o algoritmo seja não-implementável.

Page 25: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NP

Portanto, se um problema possuir algoritmo não-determinístico polinomial, ele será NP!

Ex.: problema da equação de segundo grau:

Resolver(a, b, c){ //instância no parâmetro

solucao = escolha(a, b, c); //construção

//verificação:

resposta = a*(solucao.x’)2 + b*(solucao.x’) + c;

se resposta == 0 então retorna sim;

senão retorna não;

} //custo constante, logo é um problema NP!

Page 26: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

P = NP?

Classe P: problemas que possuem algoritmo determinístico polinomial.

Classe NP: problemas que possuem algoritmo não-determinístico polinomial ou verificáveis em tempo polinomial.

Problemas em P também são verificáveis de maneira polinomial, portanto P está contido em NP.

P N P , então, se N P P , a proposição é verdadeira.⊆ ⊆

Page 27: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

P = NP?

Se todos os problemas de NP forem polinomiais, ou seja, estiverem em P; a proposição é verdadeira.

NPPPNP Se algum dos problemas de NP não for polinomial, ou seja, não estiver em P; a proposição é falsa.

NPPPNP

Page 28: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NP-difícil

Se todos os problemas NP não são mais difíceis que um problema A (A é no mínimo tão difícil quanto tais problemas), ou seja,

NP NP-difícil

se todos os problemas NP forem polinomialmente redutíveis a A, então A é NP-difícil.

Page 29: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Considerações do NP-difícil

• P não está contido em NP-difícil: como não foi provado P = NP, há problemas NP que não são polinomiais, e portanto não são redutíveis polinomialmente a P. Portanto, P não pode ser NP-difícil.

• NP possui interseção com NP-difícil: os problemas NP que não estão em P podem ser NP-difícil (exemplos: SAT, problema da mochila valiosa).

• Pela transitividade, se um problema A NP-difícil se reduz polinomialmente a B, então B também será NP-difícil.

Page 30: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NP-Completo

P

NP NP-difícil

NP-completo

Os problemas que são NP e são NP-difícil são NP-completo.

Page 31: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NP-Completo

Dilema da teoria da computação: P = NP ?

NP-difícilNP

P

ØØ

NP-difícilNP

P

ØØ

NP-completo NP-completo

P ≠ NP P = NP

Page 32: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Motivação NP-Completo

Se um algoritmo de complexidade polinomial puder ser encontrado para qualquer um dos problemas NP-completos, então todos os problemas NP-completos serão na verdade problemas P. Por outro lado, se for provado que um deles requer um algoritmo de solução que apresente complexidade exponencial, então todos irão requerer complexidade exponencial.

Assim, a questão P = NP passa a ser simplificada se provar que apenas um problema NP-completo é P ou exponencial.

Page 33: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Classe NP-Completo

• O SAT foi o primeiro problema a ser classificado como NP-completo por Cook.

• Se um problema NP-completo, ou simplesmente NP-difícil, for redutível a um NP, então o NP também será NP-difícil, e conseqüentemente NP-completo.

• NP-Completo são os mais difíceis da classe NP.

Ex.: problema do ciclo longo, problema do caminho longo, problema da clique grande, problema da cobertura pequena, problema do ciclo hamiltoniano.

Page 34: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Tratamento NP-Completo

Os problemas NP-completo são também conhecidos como intratáveis, por não possuírem algoritmos polinomiais eficientes. No entanto, algumas técnicas satisfazem aos problemas NP-completo:

• exponencial: precisa, mas intratável;

• probabilística: não totalmente precisa, mas com pequena margem de erros, mais rápida;

• aproximação, entre outros.

Page 35: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Técnicas Como resolver problemas NP-Completos?

Programação Dinâmica Backtracking Branch and Bound Heurísticas Algoritmos de Aproximação Algoritmos Randômicos

Page 36: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Programação Dinâmica A solução ótima é computada a partir da solução

ótima de outros subproblemas que sobrepostos compõem o problema original

Resolve cada subproblema uma vez só e então grava a sua resposta em uma tabela, evitando assim o trabalho de recalcular a resposta toda vez que o subproblema é encontrado

Um problema NP-Completo resolvido por Programação Dinâmica é o problema da mochila (Knapsack), cujo objetivo é preencher a mochila com o maior valor possível, não ultrapassando o peso máximo (capacidade da mochila)

Page 37: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Backtracking Tipo de algoritmo que representa um

refinamento da busca por força bruta, em que múltiplas soluções podem ser eliminadas sem serem explicitamente examinadas

Versões melhoradas do processo de busca exaustiva que consiste em avaliar todos os possíveis candidatos para obter uma solução

Busca em profundidade Os candidatos a solução são construídos passo a

passo e, a cada passo, o candidato é avaliado

Page 38: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Backtracking Se num determinado instante esta avaliação

permite concluir que aquele candidato não pode levar a uma solução então aquela seqüência de geração é interrompida e o processo retrocede ao passo anterior e uma nova seqüência de geração é tentada

Quando essa busca falha, entra em funcionamento o mecanismo de backtracking, onde se faz com que o sistema retorne pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas

Page 39: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Branch and Bound Variação do Backtracking Busca em largura Necessidade de uma função objetivo limitante

(função de poda) usada no processo de interrupção da seqüência da geração dos candidatos a solução

O próximo nó a ser expandido é determinado pela função objetivo

Mais detalhes em Tópicos Avançados em Algoritmos

Page 40: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Heurísticas Algoritmos que visam encontrar uma solução

não necessariamente ótima, mas sim boa o suficiente para um dado problema

Os algoritmos heurísticos visam obter uma resposta aceitável em um tempo menor

Esta resposta nem sempre é a ótima, porém o ganho de tempo de CPU normalmente compensa esta diferença de “apenas alguns pontos percentuais na média”

Mais detalhes em Tópicos Avançados em Algoritmos

Page 41: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Algoritmos de Aproximação Um algoritmo que rapidamente encontra uma

solução não necessariamente ótima, contudo dentro de um certo intervalo de erro

Em alguns casos, encontrar uma boa aproximação é o suficiente para resolver o problema, porém nem todos os problemas NP-completos tem bons algoritmos de aproximação

Mais detalhes em Tópicos Avançados em Algoritmos

Page 42: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Exemplo Knapsack com Backtracking

Capacidade da Mochila = 5 kg Itens

Item 1 Peso 2 kg Frete R$ 1,00

Item 2 Peso 4 kg Frete R$ 2,00

Item 3 Peso 1 kg Frete R$ 3,00

Page 43: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Exemplo Cada estado é representado por um tupla (a, b,

c) a é o peso da mochila no momento b é o frete da mochila no momento c é o frete dos itens ainda não analisados

A busca retrocede em duas situações: Se um elemento for escolhido para bolsa e a

capacidade da bolsa for ultrapassada Se um elemento não for escolhido para bolsa e o

frete que ainda pode ser obtido não ser capaz de ultrapassar o frete máximo obtido até o momento

Page 44: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

110111 100101 010011 000001

110 100 010 000

100 000

000Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Não inclui Item 2 (4,2)

Não inclui Item 2 (4,2)

Capacidade da Mochila

5 kg

2 4 1

1 2 3

Peso

Frete

Itens

Page 45: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

2 1 5

0 0 6

Capacidade da Mochila

5 kg

Frete Máximo1

2 4 1

1 2 3

Peso

Frete

Itens

Page 46: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

2 1 5

0 0 6

Inclui Item 2

(4,2)

6 kg > Capacidade da

MochilaBound -> Back

Capacidade da Mochila

5 kg

Frete Máximo1

2 4 1

1 2 3

Peso

Frete

Itens

Page 47: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

2 1 3

2 1 5

0 0 6

Inclui Item 2

(4,2)

Não inclui Item 2 (4,2)

6 kg > Capacidade da

MochilaBound -> Back

Capacidade da Mochila

5 kg

Frete Máximo1

2 4 1

1 2 3

Peso

Frete

Itens

Page 48: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0

2 1 3

2 1 5

0 0 6

Inclui Item 2

(4,2)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

6 kg > Capacidade da

MochilaBound -> Back

Capacidade da Mochila

5 kg

Frete Máximo4

2 4 1

1 2 3

Peso

Frete

Itens

Page 49: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0

2 1 3

2 1 5

0 0 6

Inclui Item 2

(4,2)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

6 kg > Capacidade da

MochilaBound -> Back

Capacidade da Mochila

5 kg

Frete Máximo4

2 4 1

1 2 3

Peso

Frete

Itens

Page 50: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0

2 1 3

2 1 5

0 0 6

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Não inclui Item 2 (4,2)

6 kg > Capacidade da

MochilaBound -> Back

Capacidade da Mochila

5 kg

Frete Máximo4

1 < Frete Máximo

Bound -> Back

2 4 1

1 2 3

Peso

Frete

Itens

Page 51: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0

2 1 3

2 1 5

0 0 6

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Não inclui Item 2 (4,2)

6 kg > Capacidade da

MochilaBound -> Back

Capacidade da Mochila

5 kg

Frete Máximo4

1 < Frete Máximo

Bound -> Back

2 4 1

1 2 3

Peso

Frete

Itens

Page 52: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0

2 1 3

2 1 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Não inclui Item 3 (1,3)

Capacidade da Mochila

5 kg

Frete Máximo4

2 4 1

1 2 3

Peso

Frete

Itens

0 0 5

Page 53: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0

2 1 3 4 2 3

2 1 5 0 0 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

2 4 1

1 2 3

Peso

Frete

Itens

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Capacidade da Mochila

5 kg

Frete Máximo4

Não inclui Item 3 (1,3)

Page 54: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0 5 5 0

2 1 3 4 2 3

2 1 5 0 0 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

2 4 1

1 2 3

Peso

Frete

Itens

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Capacidade da Mochila

5 kg

Frete Máximo5

Page 55: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0 5 5 0

2 1 3 4 2 3

2 1 5 0 0 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

2 4 1

1 2 3

Peso

Frete

Itens

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Capacidade da Mochila

5 kg

Frete Máximo5

Page 56: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0 5 5 0

2 1 3 4 2 3

2 1 5 0 0 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

2 4 1

1 2 3

Peso

Frete

Itens

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Capacidade da Mochila

5 kg

Frete Máximo5

Não inclui Item 3 (1,3)4 < Frete Máximo

Bound -> Back

Page 57: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0 5 5 0

2 1 3 4 2 3

2 1 5 0 0 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

2 4 1

1 2 3

Peso

Frete

Itens

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Capacidade da Mochila

5 kg

Frete Máximo5

Não inclui Item 3 (1,3)4 < Frete Máximo

Bound -> Back

Não inclui Item 2 (4,2)

3 < Frete Máximo

Bound -> Back

Page 58: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Inclui Item 1

(2,1)

Exemplo

3 4 0 5 5 0

2 1 3 4 2 3

2 1 5 0 0 5

0 0 6Não inclui

Item 1 (2,1)

Inclui Item 2

(4,2)

Inclui Item 2

(4,2)

Inclui Item 3

(1,3) Não inclui Item 3 (1,3)

Inclui Item 3

(1,3)

Não inclui Item 2 (4,2)

2 4 1

1 2 3

Peso

Frete

Itens

6 kg > Capacidade da

MochilaBound -> Back

1 < Frete Máximo

Bound -> Back

Capacidade da Mochila

5 kg

Frete Máximo5

Não inclui Item 3 (1,3)4 < Frete Máximo

Bound -> Back

Não inclui Item 2 (4,2)

3 < Frete Máximo

Bound -> Back

Page 59: Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes Pereira Lima Rafael Loureiro de Carvalho Sara Carvalho da Rocha Brito Tiago

Átila Valgueiro Malta MoreiraJuliana Medeiros de LucenaRafael Alberto Gomes Pereira LimaRafael Loureiro de Carvalho

Sara Carvalho da Rocha BritoTiago Carneiro Pessoa CantoVictor Barbosa de Oliveira MedeirosVinícius Monteiro de Lira

[email protected]