Problemas do Tipo 1
IV.1.1 Identifique uma atribui¸c˜ao de valores hx1, x2, x3, x4, x5, x6, x7i que satisfaz a instˆancia seguinte do problema HornSAT:
ϕ = (x1) ∧ (¬x1∨ x2) ∧ (¬x2∨ x3) ∧ (¬x1∨ x4) ∧ (¬x3∨ ¬x4∨ x5) ∧ (¬x1∨ x7) ∧ (¬x5∨ ¬x7) a. h1, 0, 1, 0, 1, 0, 1i b. h1, 1, 0, 1, 0, 0, 1i c. h1, 1, 1, 1, 0, 0, 0i d. h1, 0, 0, 0, 1, 1, 1i e. h0, 0, 0, 0, 0, 0, 0i
f. A f´ormula n˜ao ´e satisfeita. g. h0, 1, 0, 1, 0, 1, 0i
h. h1, 0, 0, 0, 1, 1, 1i i. h1, 0, 0, 1, 1, 0, 0i
Solu¸c˜ao: A resposta certa ´e a f.
IV.1.2 Qual dos seguintes passos pertence ao m´etodo estudado para provar que um determinado problema X ∈ NPC?
a. Escolher um outro problema para a redu¸c˜ao de classe P. b. Escolher um outro problema para a redu¸c˜ao de classe NP.
c. Escolher um outro problema para a redu¸c˜ao de qualquer classe. d. Escolher um outro problema para a redu¸c˜ao da classe P e NP.
e. Escolher um outro problema para a redu¸c˜ao da classe P e NPC. f. Verificar se X ∈ P.
g. Verificar se X /∈ P. h. Verificar se X /∈ NP.
i. Verificar se X ∈ NP. Solu¸c˜ao: A resposta certa ´e a i.
Problemas do Tipo 2
IV.2.1 Indique qual das frases seguintes est´a incorrecta.
a. Existem problemas de decis˜ao X, X ∈ N P , tal que existe um algoritmo polinomial que resolve X.
b. Se existe Y ∈ N P C, com X ∈ N P e Y ≤P X, ent˜ao X ´e NP-completo.
c. Se existe X ∈ N P C para o qual existe um algoritmo com complexidade as-simpt´otica em O(nk), ent˜ao P = N P .
d. Se existe X ∈ N P n˜ao resol´uvel em tempo polinomial ent˜ao para todo o Y ∈ N P C, Y n˜ao ´e resol´uvel em tempo polinomial.
e. ´E poss´ıvel 4CN F SAT ≤P 3CN F SAT . f. ´E poss´ıvel 3CN F SAT ≤P 2CN F SAT . g. ´E poss´ıvel 3CN F SAT ≤P 4CN F SAT . h. ´E poss´ıvel 2CN F SAT ≤P 3CN F SAT . i. ´E poss´ıvel 3CN F SAT ≤P CN F SAT .
Solu¸c˜ao: A resposta certa (i.e. a frase incorrecta) ´e a f.
IV.2.2 Considere as classes de problemas de decis˜ao P, NP e NPC. Indique qual das seguintes frases est´a incorrecta.
a. Os problemas da classe P podem ser resolvidos em tempo polinomial.
b. N˜ao s˜ao conhecidos problemas de decis˜ao X tais que X ∈ co−N P e X ∈ N P C. c. Os problemas da classe NP podem ser verificados em tempo polinomial. d. S˜ao conhecidos problemas de decis˜ao X ∈ P e Y ∈ N P C tais que Y ≤P X.
e. Verifica-se que ∀Y∈N P C, ∀X∈P, X ≤P Y.
f. Os problemas da classe P podem ser verificados em tempo polinomial.
g. Seja X ∈ N P e Y ∈ N P C. Para provar que X ∈ N P C, basta provar que Y ≤P X. h. Verifica-se que ∀Y∈N P C, ∀X∈N P, X ≤P Y.
i. A classe NP cont´em a classe P.
Solu¸c˜ao: A resposta certa (i.e. a frase incorrecta) ´e a d.
IV.2.3 Qual das seguintes afirma¸c˜oes est´a correcta. a. Os problemas da classe NPC n˜ao tˆem solu¸c˜ao.
b. A classe de problemas NPC ´e disjunta da classe de problemas P.
c. Os problemas da classe NPC podem ser solucionados em tempo polinomial. d. A classe de problemas NPC cont´em a classe de problemas NP.
e. A classe de problemas P cont´em a classe de problemas NP.
f. A classe de problemas NPC n˜ao ´e disjunta da classe de problemas P. g. As classes P, NPC e NP s˜ao todas disjuntas.
h. As instˆancias dos problemas da classe NPC tˆem solu¸c˜oes que podem ser verificadas em tempo polinomial.
i. Os problemas da classe NP n˜ao tˆem solu¸c˜ao. Solu¸c˜ao: A resposta certa (i.e. a frase correcta) ´e a h.
IV.2.4 Considere a restri¸c˜ao de f´ormulas CNF a f´ormulas CHorn. Uma cl´ausula diz-se CHorn se contiver n˜ao mais do que um literal complementado. Uma f´ormula diz-se CHorn se todas as suas cl´ausulas forem CHorn. O problema de decis˜ao CHornSAT consiste em decidir a satisfa¸c˜ao de f´ormulas CHorn. Nestas condi¸c˜oes proponha um algoritmo eficiente para o problema CHornSAT ou prove que o problema CHornSAT ´e NP-completo. (Descreva justificadamente a resolu¸c˜ao apresentada.)
Solu¸c˜ao: Algoritmo semelhante ao algoritmo para HornSAT (ver acetatos das aulas te´oricas), mas o valor atribu´ıdo ´e 0. A cada passo, as cl´ausulas seleccionadas s˜ao as que tˆem apenas um literal negativo.
IV.2.5 O problema de decis˜ao SAT-k consiste no problema de SAT para f´ormulas CNF em que se pretende satisfazer n˜ao menos do que k cl´ausulas. Prove que o problema SAT-k ´e NP-completo. (Descreva justificadamente a resolu¸c˜ao apresentada.)
Solu¸c˜ao: O problema est´a claramente em NP. A resolu¸c˜ao ´e a seguinte: CNFSAT ≤P
SAT − k.
• Instˆancia de CNFSAT: f´ormula ϕ.
• Instˆancia de SAT−k: f´ormula ϕ0≡ ϕ, k = |ϕ|.
Problemas do Tipo 3
IV.3.1 O problema de isomorfismo de sub-grafo (ISOM) consiste em decidir se um grafo G1´e sub-grafo de outro grafo G2. Prove que o problema de ISOM ´e NP-completo. Sugest˜ao: Admita que os problemas CLIQUE e VC (cobertura de v´ertices) s˜ao NP-completos.
Solu¸c˜ao: ´E simples provar que ISOM est´a em NP. Para provar que ISOM ´e NP-d´ıficil basta reduzir CLIQUE a ISOM. Considerar instˆancia hG = (V, E), ki de CLIQUE e construir a instˆancia hG, Ck)i de ISOM, em que Ck representa um grafo completo com k v´ertices.
IV.3.2 Considere o problema de provar a n˜ao satisfa¸c˜ao de f´ormulas proposicionais em forma normal conjuntiva (i.e. conjun¸c˜ao de disjun¸c˜oes de literais, em que cada literal ´e uma vari´avel proposicional ou a sua nega¸c˜ao). Indique justificadamente se este problema de decis˜ao ´e NP-completo.
Solu¸c˜ao:O problema de decis˜ao em causa est´a em co-NP, dado o problema de satisfa¸c˜ao estar em NP. A n˜ao ser que P = NP, o problema de decis˜ao em causa n˜ao est´a em NP, pelo que n˜ao ´e NP-completo.
IV.3.3 Considere o problema de decis˜ao Soma-de-Subconjunto (SS), definido da se-guinte forma:
• Seja X um conjunto de valores inteiros, e seja t um valor inteiro. Existe algum subconjunto S ⊆ X tal que t =P
s∈Ss?
Admita que este problema de decis˜ao ´e NP-completo e utilize esta informa¸c˜ao para pro-var que o problema da Parti¸c~ao-de-Conjunto(SP) ´e NP-completo, em que o problema de Parti¸c~ao-de-Conjunto´e definido da seguinte forma:
• Seja C um conjunto de valores inteiros. Existe algum subconjunto D ⊆ C tal queP
c∈C−Dc =P
d∈Dd?
Solu¸c˜ao: O Problem Parti¸c~ao-de-Conjunto(SP) est´a claramente em NP. A dificul-dade ´e provar que ´e NP-dif´ıcil. Para tal podemos reduzir Soma-de-Subconjunto (SS) a SP. Basta partir de uma instˆancia hS, ti de SS e criar uma instˆancia de SP com um conjunto D = S ∪ {t + 1} ∪ {1 − t +P
s∈Ss}. A redu¸c˜ao ´e polinomial.
IV.3.4 Considere o problema de decis˜ao Cobertura-de-V´ertices (VC), definido da seguinte forma:
• Seja G = (V, E) um grafo, e seja k um valor inteiro, com k ≤ V . Nestas condi¸c˜oes existe um conjunto V ’, com k v´ertices, tal que qualquer arco de G ´e incidente em pelo menos um dos v´ertices de V ’ ?
Admita que este problema de decis˜ao ´e NP-completo e utilize esta informa¸c˜ao para provar que o problema da Cobertura-de-Conjuntos (SC) ´e NP-completo, em que o problema de Cobertura-de-Conjuntos ´e definido da seguinte forma:
• Seja X um conjunto e seja F um conjunto de sub-conjuntos de X, tal que ∪f ∈Ff = X, e seja k um valor inteiro. Nestas condi¸c˜oes existe algum sub-conjunto S ⊆ F , com k elementos, tal que ∪s∈S= X?
Solu¸c˜ao: O problema Cobertura-de-Conjuntos (SC) est´a claramente em NP. A difi-culdade ´e provar que SC ´e NP-dif´ıcil. Para tal podemos reduzir Cobertura-de-V´ertices (VC) a SC. Data uma instˆancia hG = (V, E), ki de VC, criar uma instˆancia de SC em que o conjunto X ´e definido por X = {xuv| (u, v) ∈ E}, e o conjunto F de subconjuntos de X ´e definido por F = {Fv | v ∈ V }, onde Fv = {xvs | (v, s) ∈ E}. A redu¸c˜ao ´e claramente polinomial.
IV.3.5 Considere o problema de decis˜ao 2.5CNFSAT, que consiste em verificar a satis-fa¸c˜ao de f´ormulas proposicionais em forma normal conjuntiva para f´ormulas com um n´umero par de cl´ausulas, e em que o n´umero de cl´ausulas bin´arias (i.e. com dois literais) ´e igual ao n´umero de cl´ausulas tern´arias (i.e. com trˆes literais). Indique se o proble-ma de 2.5CNFSAT pertence a P ou a NPC. Caso considere que o probleproble-ma pertence a P, apresente um algoritmo de tempo polinomial (no n´umero N de vari´aveis e M de cl´ausulas) para este problema. Caso considere que o problema pertence a NPC, prove tal resultado.
Solu¸c˜ao: O problema est´a em NPC. Claramente est´a em NP, dado ser simples verifi-car uma potencial solu¸c˜ao em tempo polinomial no tamanho da instˆancia. Al´em disso, ´e simples reduzir 3CNFSAT a este problema: basta pegar numa instˆancia de 3CNF-SAT com m cl´ausulas tern´arias e incluir m cl´ausulas bin´arias, que sejam trivialmente satisfeitas e definidas num conjunto diferente de vari´aveis.
IV.3.6 Considere o seguinte problema de decis˜ao. Trata-se de uma restri¸c˜ao de CNF-SAT (com N vari´aveis e M cl´ausulas) em que apenas podem existir cl´asulas bin´arias e tern´arias, e em que o n´umero de vari´aveis que ocorrem em cl´asulas tern´arias ´e n˜ao superior a K, com K constante. O problema ´e designado por 23FixKCNFSAT. Indi-que se o problema de 23FixKCNFSAT pertence a P ou a NPC. Caso considere Indi-que o problema pertence a P, apresente um algoritmo de tempo polinomial (em N e M ) para este problema. Caso considere que o problema perten¸ca a NPC, prove tal resultado. Solu¸c˜ao: O problema 23FixKCNFSAT est´a em P. Um algoritmo (polinomial) poss´ıvel consiste em enumerar as 2K atribui¸c˜oes das K vari´aveis que ocorrem nas cl´ausulas tern´arias (tempo constante em N ). Como resultado de cada atribui¸c˜ao de valores `as K vari´aveis, todas as cl´asulas tern´arias (e algumas bin´arias) ficam satisfeitas ou n˜ao satisfeitas. Caso alguma cl´ausula (tern´aria ou bin´aria) fique n˜ao satisfeita, considera-se uma nova atribui¸c˜ao. Caso todas as cl´ausulas tern´arias fiquem satisfeitas, falta apenas considerar as cl´asulas bin´arias. O conjunto das cl´asulas bin´arias representa uma instˆancia do problema de 2CNFSAT, o qual pode ser resolvido em tempo linear em M + (N − K).
IV.3.7 Considere o seguinte problema de decis˜ao. Trata-se de uma restri¸c˜ao de CNF-SAT (com N vari´aveis e M cl´ausulas) em que apenas podem existir cl´ausulas bin´arias (com 2 literais) e quatern´arias (com 4 literais), e em que o n´umero de cl´ausulas bin´arias ´e n˜ao superior a K, com K constante. O problema ´e designado por 42BoundedKCNFSAT. Indique se o problema de 42BoundedKCNFSAT pertence a P ou a NPC. Caso considere que o problema pertence a P, apresente um algoritmo de tempo polinomial (em N e M ) para este problema. Caso considere que o problema pertence a NPC, prove tal resultado.
Solu¸c˜ao:O problema est´a em NPC. Obviamente est´a em NP. Conv´em tamb´em observar que o n´umero de cl´ausulas bin´arias ´e irrelevante. Por exemplo, basta reduzir 3CNFSAT a 42BoundedKCNFSAT, expandindo cada cl´ausula tern´aria em duas quatern´arias, e fixando a 0 o n´umero de cl´ausulas bin´arias.