Slide 1

Slide 1 text

O PROBLEMA DO CLIQUE Prova da NP-Completude

Slide 2

Slide 2 text

O Problema do Clique Um Clique em um grafo não dirigido G = (V, E) é um subconjunto V’ contido propriamente em V de vértices, no qual cada par está ligado por uma aresta em E. Em outras palavras, o Clique é um subgrafo completo de G.

Slide 3

Slide 3 text

O Problema do Clique O tamanho de um Clique é o número de vértices que contém. O problema do Clique é o problema de otimização de encontrar um clique de tamanho máximo em um grafo. Por ser um problema de decisão, simplesmente perguntamos se um clique de um dado tamanho k existe no grafo.

Slide 4

Slide 4 text

Definição Formal CLIQUE = { : G é um grafo com um clique de tamanho k }

Slide 5

Slide 5 text

Estrutura de prova NP-Completude CIRCUIT-SAT SAT 3-CNF-SAT CLIQUE SUBSET-SUM

Slide 6

Slide 6 text

Teorema O problema do clique é NP-completo.

Slide 7

Slide 7 text

Prova Para mostrar que Clique pertence ao NP, para um dado grafo G=(V, E), usamos o conjunto V’ contido propriamente em V de vértices no clique como um certificado para G. Podemos verificar se V’ é um clique em tempo polinomial verificando se, para cada par u,v pertence a V’, a aresta (u, v) pertence a E.

Slide 8

Slide 8 text

Prova Em seguida, provamos que 3-CNF-SAT <=p CLIQUE, o que mostra que o problema do Clique é NP-difícil. O algoritmo de redução começa com uma instância de 3-CNF-SAT. Seja ϕ = C1 ^ C2 ^ … ^ Ck uma fórmula booleana em 3-CNF-SAT com k cláusulas. Para r = 1, 2, …, k, cada cláusula Cr tem exatamente 3 literais distintos l1r, l2r e l3r. Construiremos um grafo G tal que ϕ seja satisfazível se e somente se G tem um clique de tamanho k.

Slide 9

Slide 9 text

Construção do Grafo Dado o grafo G=(V, E), para cada cláusula Cr = l1r, l2r e l3r em ϕ, inserimos uma tripla de vértices v1r, v2r e v3r em V. Inserimos uma aresta entre dois vértices vir e vjs se ambas as afirmativas seguintes valem: ● vir e vjs estão em triplas diferentes, isto é, r é diferente de s e ● seus literais correspondentes são coerentes, isto é, lir não é a negação de ljs.

Slide 10

Slide 10 text

Exemplo Φ = (x1 + ~x2 + ~x3) . (~x1 + x2 + x3) . (x1 + x2 + x3) Devemos mostrar que essa transformação de ϕ em G é uma redução.

Slide 11

Slide 11 text

Exemplo

Slide 12

Slide 12 text

Prova Suponha que ϕ tem uma atribuição que satisfaz. Então, cada cláusula Cr contém no mínimo um literal lir ao qual é atribuido 1, e tal literal corresponde a um vértice vir. Escolher um desses literais “verdadeiros” de cada cláusula produz um conjunto de V’ de k vértices. Afirmamos que V’ é um clique. Para quaisquer dois vértices vir, vjs pertencente a V’, onde r é diferente de s, ambos os literais correspondentes, lir e ljs mapeiam para 1 pela atribuição dada e, portanto, os literais não podem ser complementos. Assim, pela construção de G, a aresta (vir, vjs) pertence a E.

Slide 13

Slide 13 text

Prova Inversamente, suponha que G tenha uma clique V’ de tamanho k. Nenhuma aresta em G liga vértices na mesma tripla e, portanto, V’ contém exatamente um vértice por tripla. Podemos atribuir 1 a cada literal lir tal que vir pertença a V’, sem receio de atribuir 1 a um literal e a seu complemento, já que G não contém arestas entre literais incoerentes. Cada cláusula é satisfeita, e portanto, ϕ é satisfeita.

Slide 14

Slide 14 text

Encontrando a clique no grafo No exemplo mostrado, uma atribuição que satisfaz de ϕ tem x2 = 0 e x3 = 1. Um clique correspondente de tamanho k = 3 consiste nos vértices que correspondem a ~x2 da primeira cláusula, x3 da segunda cláusula e x3 da terceira cláusula. Como o clique não contém nenhum vértice correspondente a x1 nem a ~x1, podemos definir x1 como 0 ou 1 nessa atribuição satisfatória.

Slide 15

Slide 15 text

Exemplo

Slide 16

Slide 16 text

Resolvido? Na prova do Teorema, reduzimos uma instância arbitrária de 3-CNF-SAT a uma instância de CLIQUE com uma estrutura específica. Mostramos que CLIQUE é NP-difícil em grafos nos quais os vértices estão restritos a ocorrer em triplas e nos quais não há arestas entre vértices na mesma tripla. Mas essa prova basta?

Slide 17

Slide 17 text

Resolve? Sim! Se tivéssemos um algoritmo de tempo polinomial que resolvesse CLIQUE em grafos gerais, ele também resolveria CLIQUE em grafos restritos.

Slide 18

Slide 18 text

E se fosse o contrário? Se reduzíssemos instâncias de 3-CNF-SAT com uma estrutura especial a instâncias gerais de CLIQUE talvez as instâncias de 3-CNF-SAT que escolhêssemos para iniciar a redução fossem “fáceis”, e portanto não teríamos reduzido um problema NP-difícil a CLIQUE.

Slide 19

Slide 19 text

Observe também que A redução usou a instância de 3-CNF-SAT e não a solução. Teríamos errado se a redução de tempo polinomial tivesse sido baseada em saber se a fórmula ϕ é o satisfazível, já que não sabemos como decidir se ϕ é satisfazível em tempo polinomial.

Slide 20

Slide 20 text

Portanto Clique é um problema NP-Completo!

Slide 21

Slide 21 text

Bibliografia Cormen, Thomas H., et al. "Algoritmos: teoria e prática." Editora Campus 2 (2002): 2.

Slide 22

Slide 22 text

Obrigada!