SET COVERING (cobertura por conjuntos):
Dados:
- uma família F = {S1,...,Sn} de
subconjuntos de um conjunto finito U;
- um inteiro positivo k.
Pergunta: existem <= k conjuntos de F
cuja união é U?
SET PACKING (empacotamento de conjuntos):
Dados:
- uma família F = {S1,...,Sn} de
subconjuntos de um conjunto finito U;
- um inteiro positivo k.
Pergunta: existem >= k conjuntos de F 2 a
2 disjuntos?
EXACT COVER BY 3-SETS (cobertura exata por triplas):
Dada: uma família F = {S1,...,Sn}
de subconjuntos de um conjunto finito U tal que |U|=3m
para algum m e |Si|=3 para todo i.
Pergunta: existem m conjuntos de F cuja
união é U?
Mostre que EXACT COVER BY 3-SETS é NP-completo exibindo uma redução (simples) de 3DM para EXACT COVER BY 3-SETS. Deduza que SET COVERING e SET PACKING são NP-completos, mostrando reduções de EXACT COVER BY 3-SETS para cada um desses problemas.
0-1 INTEGER PROGRAMMING (programação inteira 0-1):
Dados:
- uma matriz racional Amxn;
- um vetor racional b com m coordenadas.
Pergunta: existe um vetor x inteiro 0-1 com n
coordenadas tal que Ax<=b?
Mostre que 0-1 INTEGER PROGRAMMING é NP-completo.
Dica: Faça uma redução de SET COVERING para 0-1 INTEGER
PROGRAMMING, escrevendo um sistema do tipo Ax<=b que
tem solução inteira se e somente se existe uma cobertura por
conjuntos com no máximo k conjuntos (ou seja, sse existe
uma solução para a dada instância do SET COVERING). Faça a
coordenada i do vetor x, denotada por
xi, valer 1 ou 0, indicando se o conjunto
correspondente Si faz ou não parte da
solução.