SlideShare una empresa de Scribd logo
1 de 8
Provas NP Completo
SET PACKING
Projeto e Análise de Algoritmos
1o. Semestre de 2014
Hugo Santos – silvasantosh@gmail.com
Definição
O problema Set Packing pode ser definido como:
Dado um universo U e uma família S dos subconjuntos de U, um packing é uma
subfamília C ⊂ S dos conjuntos em que todos os conjuntos em C são disjuntos par-a-
par.
Na sua versão de problema de decisão a entrada é o par (U, S) e um
inteiro k > 0. A pergunta a ser respondida é: existe um conjunto C,
onde |C| ≥ k?
Etapas da Prova NP-Completo
1) Mostrar que Set Packing (π) está em NP:
a) problemas de decisão cuja solução pode ser verificada em
tempo polinomial com algoritmo determinista.
2) Mostrar que um problema NP-completo conhecido (π‘) pode ser
polinomialmente transformado para ele (π‘ α π).
Mostrar que Set Packing (π) está em NP
1) Algoritmo determinista para verificar a solução em tempo
polinomial:
O primeiro passo é verificar se C possui no mínimo k elementos e na sequência
verificar se cada par Si e Sj possui interseção vazia. A complexidade deste algoritmo
pode ser dada por O(|C|2), onde m é o tamanho do maior conjunto pertencente a C.
Logo é polinomial.
Mostrar que um problema NP-completo conhecido (π‘)
pode ser polinomialmente transformado para ele (π‘ α π)
1) Consideremos π‘ o problema dos conjuntos independentes
(Independent Sets), que é sabidamente NP-Completo para seu
problema de decisão.
2) Problema: Qual é o maior subconjunto de vertices de V tal que
nenhum par de vertices são adjascentes?
Mostrar que um problema NP-completo conhecido (π‘)
pode ser polinomialmente transformado para ele (π‘ α π)
1) No problema de decisão do conjunto independente, a entrada é
um grafo não direcionado e um número k, e a saída é um valor
booleano: true se o gráfico contém um conjunto independente de
tamanho k, e false caso contrário.
2) A intuição necessária é que cada vértice vi possui associado a ele a
lista de arestas incidentes. A condição para que vi faca parte da
solução é ele não possuir nenhuma aresta incidente comum aos
demais vértices já presentes na solução. Então para transformar
este problema em um Set Packing, basta criar um grafo G onde
cada vértice vi possui um conjunto de arestas incidentes
exatamente igual a cada Si existente em S e definir k’ = k.
Mostrar que um problema NP-completo conhecido (π‘)
pode ser polinomialmente transformado para ele (π‘ α π)
1) Para validar a solução, inicialmente iremos assumir que G possui
um conjunto de vértices independentes com no mínimo k
elementos, T. cada vi ϵ T iremos adicionar o conjunto de arestas
incidentes, Si, em C. Note que |C| = |T| e que Si ∩ Sj = Ø; ∀Si,Sj ϵ C
e i ≠ j, como |T| ≥ k podemos concluir que T é uma solução para o
problema Set Packing.
EXEMPLO:
(π‘ α π)

Más contenido relacionado

Destacado

Destacado (6)

SharePoint 2013 integratie
SharePoint 2013 integratieSharePoint 2013 integratie
SharePoint 2013 integratie
 
Mall Silks
Mall SilksMall Silks
Mall Silks
 
Prvision samedi 06 decembre 2014
Prvision samedi 06 decembre 2014Prvision samedi 06 decembre 2014
Prvision samedi 06 decembre 2014
 
Hoboken Salary Ordinance
Hoboken Salary OrdinanceHoboken Salary Ordinance
Hoboken Salary Ordinance
 
Apresentação BRASNAM - 2015 (Brazilian Workshop on Social Network Analysis an...
Apresentação BRASNAM - 2015 (Brazilian Workshop on Social Network Analysis an...Apresentação BRASNAM - 2015 (Brazilian Workshop on Social Network Analysis an...
Apresentação BRASNAM - 2015 (Brazilian Workshop on Social Network Analysis an...
 
Internet das coisas - ADP TecnoTalks
Internet das coisas - ADP TecnoTalksInternet das coisas - ADP TecnoTalks
Internet das coisas - ADP TecnoTalks
 

Similar a Set packing - NP Proof / Prova NP Set Packing

Similar a Set packing - NP Proof / Prova NP Set Packing (7)

1o+npc
1o+npc1o+npc
1o+npc
 
1o+npc
1o+npc1o+npc
1o+npc
 
Classes de complexidades de problemas
Classes de complexidades de problemasClasses de complexidades de problemas
Classes de complexidades de problemas
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Análise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosAnálise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-Completos
 
Subgraph Isomorphism - NP Proof / Prova NP Isomorfismo em Subgrafo
Subgraph Isomorphism  - NP Proof / Prova NP Isomorfismo em SubgrafoSubgraph Isomorphism  - NP Proof / Prova NP Isomorfismo em Subgrafo
Subgraph Isomorphism - NP Proof / Prova NP Isomorfismo em Subgrafo
 
09 problemas de grafos np-completos
09 problemas de grafos np-completos09 problemas de grafos np-completos
09 problemas de grafos np-completos
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

Set packing - NP Proof / Prova NP Set Packing

  • 1. Provas NP Completo SET PACKING Projeto e Análise de Algoritmos 1o. Semestre de 2014 Hugo Santos – silvasantosh@gmail.com
  • 2. Definição O problema Set Packing pode ser definido como: Dado um universo U e uma família S dos subconjuntos de U, um packing é uma subfamília C ⊂ S dos conjuntos em que todos os conjuntos em C são disjuntos par-a- par. Na sua versão de problema de decisão a entrada é o par (U, S) e um inteiro k > 0. A pergunta a ser respondida é: existe um conjunto C, onde |C| ≥ k?
  • 3. Etapas da Prova NP-Completo 1) Mostrar que Set Packing (π) está em NP: a) problemas de decisão cuja solução pode ser verificada em tempo polinomial com algoritmo determinista. 2) Mostrar que um problema NP-completo conhecido (π‘) pode ser polinomialmente transformado para ele (π‘ α π).
  • 4. Mostrar que Set Packing (π) está em NP 1) Algoritmo determinista para verificar a solução em tempo polinomial: O primeiro passo é verificar se C possui no mínimo k elementos e na sequência verificar se cada par Si e Sj possui interseção vazia. A complexidade deste algoritmo pode ser dada por O(|C|2), onde m é o tamanho do maior conjunto pertencente a C. Logo é polinomial.
  • 5. Mostrar que um problema NP-completo conhecido (π‘) pode ser polinomialmente transformado para ele (π‘ α π) 1) Consideremos π‘ o problema dos conjuntos independentes (Independent Sets), que é sabidamente NP-Completo para seu problema de decisão. 2) Problema: Qual é o maior subconjunto de vertices de V tal que nenhum par de vertices são adjascentes?
  • 6. Mostrar que um problema NP-completo conhecido (π‘) pode ser polinomialmente transformado para ele (π‘ α π) 1) No problema de decisão do conjunto independente, a entrada é um grafo não direcionado e um número k, e a saída é um valor booleano: true se o gráfico contém um conjunto independente de tamanho k, e false caso contrário. 2) A intuição necessária é que cada vértice vi possui associado a ele a lista de arestas incidentes. A condição para que vi faca parte da solução é ele não possuir nenhuma aresta incidente comum aos demais vértices já presentes na solução. Então para transformar este problema em um Set Packing, basta criar um grafo G onde cada vértice vi possui um conjunto de arestas incidentes exatamente igual a cada Si existente em S e definir k’ = k.
  • 7. Mostrar que um problema NP-completo conhecido (π‘) pode ser polinomialmente transformado para ele (π‘ α π) 1) Para validar a solução, inicialmente iremos assumir que G possui um conjunto de vértices independentes com no mínimo k elementos, T. cada vi ϵ T iremos adicionar o conjunto de arestas incidentes, Si, em C. Note que |C| = |T| e que Si ∩ Sj = Ø; ∀Si,Sj ϵ C e i ≠ j, como |T| ≥ k podemos concluir que T é uma solução para o problema Set Packing.