• Nenhum resultado encontrado

Problema da Soma de Subconjuntos. Problema da Mochila

N/A
N/A
Protected

Academic year: 2022

Share "Problema da Soma de Subconjuntos. Problema da Mochila"

Copied!
21
0
0

Texto

(1)

Problema da Soma de Subconjuntos

Problema da Mochila

(2)

Soma de Subconjuntos

● Suponha que C1, C2, …, Cn são os cheques que você emitiu em 1 mês.

● No fim do mês, o banco debita um valor P de sua conta.

● Quais dos cheques foram debitados?

● Este é um exemplo do problema da soma de subconjuntos.

(3)

Dado um conjunto w de {1, …, n} de números naturais e um número natural B, decidir se existe um conjunto x w tal que w(x) = B. Ou seja,

i∈Xw[i] = B

Os elementos do conjunto w são chamados de “pesos” e o parâmetro B é chamado “alvo”.

A idéia é decidir se existe algum subconjunto cuja soma dos pesos é igual ao alvo.

Soma de Subconjuntos

(4)

Soma de Subconjuntos

● A resposta obtida será de um tipo binário, ou seja, será “sim” caso representada por 1 e “não” caso

representada por 0.

● Esse tipo de problema é denominado “problema

de decisão”. No caso da soma de subconjuntos, já

é sabido que se trata de um problema

NP-completo.

(5)

Relembrando

Um problema S de decisão é NP-completo quando:

1. S está em NP.

2. Qualquer outro problema de NP pode ser reduzido

a S em tempo polinomial.

(6)

Dado um conjunto de itens, cada um com um peso, devemos determinar qual/quais poderão ser incluídos em uma determinada coleção, de maneira que a soma desses pesos seja a maior possível, porém menor ou igual a um determinado limite.

Mochila

(7)

● Esse problema geralmente surge da alocação de recursos, onde os tomadores de decisão têm que escolher entre um conjunto de projetos ou tarefas não divisíveis sob um orçamento fixo ou restrição de tempo, respectivamente.

● Os primeiros registros de estudos do problema da mochila são do início do século XX, nos trabalhos do matemático D. G. Dantzig.

Mochila

(8)

Mochila

Podemos replicar essa problemática para vários outros casos de uso reais, como encontrar a maneira menos dispendiosa de cortar matérias-primas, selecionar investimentos e carteiras, etc.

(9)

Mochila

Formalmente, dado um conjunto de itens C de {1, …, n}, um conjunto u dos valores desses respectivos itens na mesma ordem, um conjunto x que representa a presença de um item na mochila, onde cada xi {0, 1}, um conjunto p contendo o peso de cada item e um valor total limitante W, devemos encontrar um subconjunto tal que:

max {∑i∈C u[i] x[i]}, sujeito a ∑i∈C p[i] x[i] ≤ W

(10)

Prova

Primeiramente, vamos mostrar que o problema da mochila booleana está em NP, apresentando um algoritmo não-determinista que resolve o problema em tempo polinomial:

(11)

Prova

Mochila (cW, uW, n, P[1..n], U[1..n], X[1..n]) 1 for (i ⟵ 1 to n)

2 X[i] ⟵ escolhe (0, 1)

3 if ((∑i[1..n]P[i] X[i] > cW) OR (∑i[1..n]U[i] X[i] < uW)) 4 return "não"

5 else return "sim"

(12)

Prova

● As linhas 1 e 2 atribuem valor 0 ou 1 para as posições do vetor solução X[i], 0 ≤ i ≤ n.

● Na linha 4 verificamos se a atribuição dos pesos é viável considerando o limite da mochila cW e se o resultado da utilidade (U) é pelo menos uW.

● Uma resposta de sucesso é obtida se as restrições são satisfeitas com complexidade de tempo O(n).

(13)

Prova

● Agora, precisamos transformar esse problema de otimização em um problema de decisão.

● Nesse caso, devemos apenas eliminar a função de maximização. A versão de decisão para o problema da mochila é:

(14)

iSw[i] ≤ T, sujeito a c(S) = ∑iSc[i] ≥ C

Onde a entrada é um conjunto de n itens, tal que todo i tem utilidade ci e peso wi, a mochila tem limite de carga T e um valor positivo C. A questão agora é se existe um subconjunto S {1, ... , n} de itens, tais que o peso total é no máximo T e o valor da utilidade total é pelo menos C.

Prova

(15)

Para provar que a versão de decisão do problema da mochila é NP-completo, vamos fazer uma redução polinomial a partir do problema da soma de subconjuntos.

Com os resultados obtidos até aqui, podemos notar que o problema da soma de subconjuntos é um caso especial do problema da mochila booleana com ci = wi.

Prova

(16)

Prova

Dada uma instância do problema da soma de subconjuntos, vamos reduzir esta para uma instância do problema da mochila booleana da seguinte forma:

U = A, wi = ci = si, T = C = B

(17)

Prova

Esta redução é feita em tempo polinomial, pois todas as atribuições são executadas em tempo polinomial. Assim, uma resposta da instância do problema da mochila booleana é também uma resposta para o problema da soma de subconjuntos.

(18)

Prova

Dessa forma, uma resposta “sim” para uma instância do problema da mochila booleana significa que existe um subconjunto S' U tal que ∑iS’ w[i] ≤ T e ∑iS’ c[i] ≥ C. Ou seja, existe um subconjunto A' A tal que B ≤ ∑iA’ s[i] ≤ B, isto é, ∑iA’ s[i] = B. Por definição, temos que também é uma resposta “sim” para o problema da soma de subconjuntos.

(19)

Prova

Da mesma maneira, uma resposta “não” para uma instância do problema da mochila booleana, significa que o conjunto solução não existe. O que também ocorre para uma instância do problema da soma de subconjuntos.

(20)

Conclusão

Sabemos que o problema da soma de subconjuntos é NP-completo. A partir da demonstração, concluímos que o problema da mochila está em NP, assim como a existência de uma redução polinomial a partir do problema da soma de subconjuntos para o problema da mochila booleana.

Com isso, provamos que o problema da mochila booleana, um dos 21 problemas NP-completos propostos por Richard Karp em 1972, é de fato NP-completo.

(21)

Referências

1. Subset sum. 02 nov. 2020. Disponível em:

https://www.ime.usp.br/~pf/analise_de_algoritmos/aulas/mochila-su bsetsum.html. Acesso em: 27 abr. 2022.

2. Problema da Mochila Multicritério. Maio. 2018. Disponível em:

https://fenix.tecnico.ulisboa.pt/downloadFile/395137622440/Disserta

%C3%A7%C3%A3o.pdf. Acesso em: 26 abr. 2022.

3. Knapsack Problem. 19 abr. 2022. Disponível em:

https://mathworld.wolfram.com/KnapsackProblem.html. Acesso em:

26 abr. 2022.

4. The Knapsack Problem. 24 jan. 2003. Disponível em:

https://personal.utdallas.edu/~scniu/OPRE-6201/documents/DP3-Kn apsack.pdf. Acesso em: 27 abr. 2022.

Referências

Documentos relacionados

Enviando um cheque visado, cheque bancário ou cheque emitido pela Agência de Gestão da Tesouraria e da Dívida Pública – IGCP, EPE, por correio registado, para

Composição da ictiofauna associada a bancos de macrófitas aquáticas no rio Areias, Reservatório da Usina Hidrelétrica Luís Eduardo Magalhães, Tocantins, Brasil

O problema de encontrar a sublista contígua de maior soma a partir de uma lista de números teve origem numa versão bidimensional mais complexa de um problema de

Por isso, reforça-se a idéia da utilização de algoritmos heurísticos para a obtenção de soluções viáveis que sejam próximas do valor ótimo ou, eventualmente, ótimas.Em

A heur´ıstica possui trˆes fases principais que incluem: gerar uma soluc¸˜ao inicial (lista com itens n˜ao conflitantes), melhorar iterativamente esta soluc¸˜ao, pela

O MOTOR REDUTOR UTILIZADO PERMITE AUTOMATIZAR QUALQUER TIPO DE GRADE DE ENROLAR, NOVA OU JÁ UTLIZADA.. SENDO COLOCADO NO INTERIOR DO TAMBOR FAZ O ACCIONAMENTO

A média de pacientes que apresentaram cefaléia durante as sessões de hemodiálise foi de 7,62%, em um estudo realizado sobre cefaléia relacionada à hemodiálise observa-se que os

Os objetivos específicos do presente estudo foram: i comparar os atributos do solo e os estoques de C e N em solos de vegetação nativa localizadas em Santarém PA e em São Luís MA