Lista 6 de Análise de Algoritmos 1. Prove que os seguintes problemas estão em NP: (a) clique: Dado um grafo G e um natural k decidir se G contém um clique com ≥ k vértices; (b) conjunto-independente: Dado um grafo G e um natural k decidir se G contém um conjunto independente com ≥ k vértices; (c) col: Dado um grafo G e um inteiro k decidir se os vértices admitem um coloração própria com k cores, isto é, os vértices podem ser pintados com k cores distintas de modo que não há vértices adjacentes da mesma cor; (d) 3-col: Dado um grafo G decidir se os vértices admitem um coloração própria com 3 cores, isto é, os vértices podem ser pintados com 3 cores distintas de modo que não há vértices adjacentes da mesma cor; (e) 3-sat: Dada uma fórmula booleana em que as clausulas têm 3 literais, decidir se a fórmula é satisfazı́vel; (f) vértice-cobertura: Dado um grafo G e um natural k decidir se G tem uma cobertura por vértice com ≤ k vértices; (g) mochila: Dados os valores s e v e um conjunto X onde cada elemento x ∈ X tem associado um tamanho t(x) e um valor v(x), determinar se existe B ⊆ X tal que a soma dos tamanhos dos elementos de B é no máximo s e a soma dos valores dos elementos de B é pelo menos v. 2. (difı́cil) Prove que 2-sat está em P. 3. Assuma que exista um algoritmo eficiente para sat. Exiba um algoritmo eficiente que recebe uma fórmula booleana e determina, caso exista, uma atribuição que satisfaça a fórmula. 4. Assuma que exista um algoritmo eficiente para col. Exiba um algoritmo eficiente que recebe um grafo e determina o menor número de cores necessárias para uma coloração própria do grafo. Dado um algoritmo eficiente para esse último problema, exiba um algoritmo eficiente para colorir propriamente um grafo com o menor número de cores possı́veis. 5. Assuma que exista um algoritmo eficiente para clique. Exiba um algoritmo eficiente que recebe um grafo e determina o maior tamanho de um clique nesse grafo. 6. Escreva a instância do 3-sat obtida através da redução feita em sala a partir de sat quando a instância do sat é (x ∨ y ∨ z̄ ∨ w ∨ u ∨ z̄) ∧ (x̄ ∨ ȳ ∨ z ∨ w̄ ∨ u ∨ v) ∧ (x ∨ ȳ ∨ z̄ ∨ w ∨ u ∨ v̄) ∧ (x ∨ ȳ) 7. Desenhe o grafo da redução de sat para clique vista em aula quando a instância do sat é (x ∨ ȳ ∨ z) ∧ (x̄ ∨ y ∨ z̄) ∧ (x̄ ∨ y ∨ z) ∧ (x ∨ ȳ ∨ z̄) 8. Prove: (a) se A 6p B e B ∈ P então A ∈ P; (b) se A 6p B e B 6p C então A 6p C; 1 (c) e A 6p B e A é NP-difı́cil então B é NP-difı́cil. 9. Vale que se A, B ∈ P então A 6p B e B 6p A? 10. Mostre que clique6p conjunto-independente. 11. Mostre que clique6p vértice-cobertura e conclua que vértice-cobertura é NP-completo. 12. Mostre que 3-sat6p conjunto-independente. 13. (difı́cil) Assuma que vértice-cobertura é NP-completo e prove que circuito-hamiltoniano é NP-completo. 14. Considere o seguinte algoritmo para determinar se um grafo (V, A) com n vértice s m arestas tem um clique de tamanho k: primeiro são gerados todos os subconjunto de V com exatamente k n k vértices, são k = O(n ) subconjuntos. Em seguida verifica-se se algum deles induz um subgrafo completo, devolvendo sim no caso afirmativo e n~ ao caso contrário. Supondo que o grafo é dado pela sua matriz de adjacências, determine a complexidade desse algoritmo. Por que ele não é uma prova de que P = NP? 2