You are on page 1of 54

Teoria dos problemas completos na classe NP

Armando Matos Nelma Moreira

DC

C-F
email: {acm,nam}@ncc.up.pt

Departamento de Ci encia de Computadores

Faculdade de Ci encias, Universidade do Porto

CU P

Conte udo

1 Classes de complexidade 1.1 Classe P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Classe NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Problemas, Linguagens e Complexidade 2.1 Problemas de decis ao . . . . . . . . . . . . 2.2 Algoritmos determin sticos . . . . . . . . . 2.3 Algoritmos n ao determin sticos . . . . . . 2.4 Rela c ao entre P e NP . . . . . . . . . . . 2.5 Redu c oes entre problemas . . . . . . . . . Problemas NP-completos

CU P
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 3 4 5 10 13 14 17 17 22 34 38 38 40 45 45 46 47

4 Redu c ao de Turing e Problemas NP-hard

5 Estrutura das Classes de Problemas 5.1 Classe coNP e Estrutura de NP . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Hierarquia polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Exerc cios de Revis ao sobre Classes de Complexidade 6.0.1 Ordens de Grandeza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Codica c oes Razo aveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Classes de Complexidade e NP-completitude . . . . . . . . . . . . . . . . . .

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CONTEUDO

Bibliograa [GJ79, Cap. 13,5,7.1,7.2], [Pap94, Cap. 8, 9, 10 e 17] e [BC94, Cap. 4, 5 e 7]

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

Cap tulo 1

Classes de complexidade

O conjunto das linguagens decid veis pode ser dividida em classes de complexidade, que caracterizam os limites dos recursos computacionais usados para as decidir. Uma classe de complexidade e especicada pelo modelo de computa c ao vamos considerar m aquinas de Turing com k-tas , pelo modo de computa c ao determin stico ou n ao determin stico , pelo um recurso p.e., tempo ou espa co e por um limite, isto e, uma fun c ao de N em N. Uma classe de complexidade e ent ao um conjunto C (f (n)) denido por:

Uma fun c ao f (n) para ser limite de complexidade tem de ser total e n ao decrescente. No caso, de fun c oes de complexidade temporal deve ainda ser tal que exista uma TM Mf de k-tas que, para quaisquer dados x, pare em exactamente f (|x|) passos. Esta caracter stica permite a simula c ao de rel ogios em m aquinas de Turing. Restri c oes semelhantes se imp oem para fun c oes de complexidade de espa co.

1.1

Classe P

Seja M = (S, , , s0 , , F ) uma m aquina de Turing (determin stica) e x , o tempo requerido por M em x, TM (x), e o n umero de passos da computa c ao de M para dados x.1 Ent ao, a complexidade temporal de M e dada por:

Se TM (n) e O(f (n)), diz-se que M opera em tempo limitado por f (n). Se f (n) e um polin omio dizemos que M e polinomial. Recorde que, se uma m aquina de Turing M decidir uma linguagem L, ent ao F = {sy , sn }. Dada uma fun c ao f (n), dene-se a classe de complexidade T IM E (f (n) por: T IM E (f (n)) = {L | L e decid vel por uma TM M tal que TM (n) e O(f (n))}

Se a computa c ao n ao parar TM (x) = . Nesta sec c ao vamos considerar apenas m aquinas de Turing que param sempre.

DC

TM (n) = max{t | x , |x| = n e t = TM (x)}

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

C (f (n)) = {L | L e decidida por uma m aquina de Turing M do modo adequado, tal que para qualquer x, e |x| = n, M gasta no m aximo f (|x|) unidades do respectivo recurso}

CU P

1.2 Classe NP

P =

1.2

Classe NP

Seja N = (S, , , s0 , , F ) uma m aquina de Turing n ao- determin stica (NDTM), onde (S ) (S {l, r })

TN (x) = min{t | N aceita x com um caminho de computa c ao em t passos} e, a complexidade temporal de N e a fun c ao:

TN (n) = max{{1} {m | x L(N ), |x| = n e m = TN (x)}} Note-se, que TM (n) = 1 se n ao h a nenhum x, com comprimento n que seja aceite por N . Se TN (n) e O(f (n)), diz-se que N opera em tempo limitado por f (n) e se f (n) e um polin omio dizemos que N e polinomial. Seja,

Teorema 1.2.1 Se L N T IM E (f (n)) ent ao existe c > 1 tal que L T IM E (cf (n) ). A classe NP e denida com o conjunto de linguagens que s ao decid veis em tempo polinomial por uma NDTM, isto e: NP = N T IM E (nk )
k 1

Corol ario 1.2.1 P NP

DC

N T IM E (f (n)) = {L | L e decid vel por uma DTM N tal que TN (n) e O(f (n))}

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Recorde que um passo de computa c ao entre duas congura c oes e denido por uma rela c ao xsy @ >> M > x s y se e s o se existe ((s, ), s , , d) que torne a transi c ao poss vel. n Ent ao uma computa c ao de N (em n passos, @ >> N > ) com dados x pode ser vista como uma arvore de computa c ao. Cada caminho da arvore iniciado na raiz e um caminho de computa ca o. Diz-se que N aceita x , se a arvore de computa c ao de N com dados x inclu pelo menos um caminho de computa c ao que termina num estado de aceita c ao. Isto e, N aceita x se existe uma sequ encia de escolhas n ao-determin sticas que leva a um estado de aceita c ao. Note-se que x s o e rejeitado se todas as sequ encias de escolhas (caminhos de computa c ao) conduzirem a um estado de rejei c ao. Note ainda a assimetria entre a aceita c ao e a rejei c ao por estas m aquinas, que n ao existia nas m aquinas de Turing determin sticas. Seja L(N ) = {x | N aceita x}. Se L , N decide L se L = L(N ). Se N aceita x, o tempo associado e denido pelo n umero de passos do menor caminho de computa c ao que leva a um estado de aceita c ao, isto e:

CU P
T IM E (nk )
k 1

A classe P e denida como o conjunto de linguagens que s ao decid veis em tempo polinomial por uma TM, isto e:

Cap tulo 2

Problemas, Linguagens e Complexidade

(TSO) Dado um conjunto de cidades e as dist ancias entre elas existe uma permuta c ao das cidades que minimize a dist ancia total? Inst ancia: C = {c1 , c2 , . . . cn } e d : C C N dist ancia Quest ao: Qual e a permuta c ao : C C que minimiza
n1 i=1

Uma inst ancia do problema e por exemplo C = {P orto, Aveiro, V iana, Espinho} e d(P, A) = 60, d(P, V ) = 60, d(P, E ) = 20, d(A, V ) = 120, d(A, E ) = 40, d(V, E ) = 80. A sequ encia < V, P, E, A > minimiza a dist ancia total, dT = 120. Pretende-se normalmente obter um algoritmo que (se existir!) seja o mais eciente. A eci encia dum algoritmo pode-se medir em: tempo de execu c ao em fun c ao dos dados

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Para resolver um problema por meios computacionais e necess ario codic a-lo numa dada linguagem e escrever um algoritmo (um programa, nessa mesma linguagem), isto e, um m etodo para resolver o problema num n umero nito de passos. Vamos considerar que cada problema pode ser descrito por um conjunto de par ametros e de rela co es entre eles, com as quais se expressam as condi c oes de solu c ao do problema. Uma inst ancia I dum problema , e obtida especicando valores para cada um dos par ametros. Chamaremos inst ancia gen erica ` a descri c ao dum problema em termos dos seus par ametros, ou apenas inst ancia se na enuncia c ao do mesmo. Por exemplo, considere-se um caixeiro viajanteque tem de visitar todas as cidades de um dado pa s e voltar ` a cidade donde partiu, e pretende faz e-lo pelo caminho mais curto. Podemos enunciar este problema cl assico da combinat oria, em termos dum conjunto nito de elementos e de propriedades desses elementos:

d(c(i) , c(i+1) ) + d(c(n) , c(1) )

CU P

espa co gasto para a obten c ao da solu c ao do problema. Para cada problema a complexidade temporal vai depender da m aquina usada e da codica c ao escolhida. Contudo, cada problema pode ser classicado do ponto de vista computacional, como: insol uvel trat avel intrat avel

Esta classica c ao e v alida independentemente da m aquina ou modelo computacional usado (m aquina de Turing, RAMs, etc) e da codica c ao escolhida, desde que seja razo avel, isto e, que satisfa ca as seguintes condi c oes: 1. A codica c ao duma inst ancia I , deve ser concisa e n ao conter s mbolos desnecess arios. 2. Os n umeros inteiros devem ser representados numa base maior ou igual a 2.

1. Problema da Paragem

Inst ancia: Um algoritmo e um conjunto de dados para esse algoritmo. Quest ao: Esse algoritmo p ara para esse conjunto de dados (ou entra num ciclo innito)? um problema Resposta: N ao existe nenhum algoritmo que resolva este problema. E insol uvel. 2. Procura dum elemento numa sequ encia.

DC
Inst ancia: X , V [i], 1 i n

Quest ao: Existe i tal que X = V [i] ? Resposta: Existem algoritmos polinomiais que o resolvem, por exemplo: k <- 1; V[i+1] <- X; enquanto V[k] <> X fa ca k <- k+1; se k <> n ent~ ao escreva(sim) sen~ ao escreva(n~ ao) fim.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Podemos supor que os n umeros inteiros se representam em bin ario; os conjuntos pela sequ encia dos seus elementos (codicados) e os grafos pela sequ encia de v ertices seguida dos pares de v ertices para cada ramo (ou pela matriz de adjac encia). Neste caso, se um dado e um n umero n o seu comprimento ser a log2 n, se e um conjunto de n elementos o seu comprimento e n e se e um grafo o seu comprimento e o n umero de v ertices mais o de ramos. Considerem-se os seguintes problemas e procuremos resolv e-los !

CU P

3. (HC) Exist encia de ciclo hamiltoniano

Inst ancia: Seja G = (V, E ) um grafo dirigido.

Quest ao: Existe um ciclo < (X1 , X2 )(X2 , X3 ) . . . (Xn1 , Xn )(Xn , X1 ) >, Xi V , (Xi , Xi+1 ) E e e n = |V |, tal que todos os Xi s ao diferentes? Resposta: N ao se conhece nenhum algoritmo polinomial que resolva este problema. Um algoritmo que corre em tempo exponencial no n umero de v ertices e o seguinte: para i <- 1 at e n fa ca marca[i] <- falso; k <- 0; se procura(1) ent~ ao escreva ( sim) sen~ ao escreva(n~ ao); fim. bool procura(i) { k <- k+1; marca[i]<- verdade; para todos (i,j) em E fa ca { se j=1 e k=n ent~ ao retorna verdade se n~ ao marca[j] ent~ ao se procura(j) ent~ ao retorna verdade } k <- k-1; marca[i]<- falso; retorna falso } Exemplo 1 Seja G = (V, E ) onde V = {1, 2, 3, 4, 5, 6}

E = {(1, 2), (2, 3), (3, 1), (2, 4), (2, 6), (4, 3), (4, 5), (5, 4), (6, 5)} com o seguinte diagrama:

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
3 @5 O ^> O >>> > >> 1> 4 @ >> >> >>  /6 2

CU P

A complexidade deste algoritmo e O(n), considerando o n umero de compara c oes que ser ao necess arias no pior caso.

Neste caso, temos a seguinte arvore de procura, se X1 = 1:

123

v vv vv v v vv v vv vv v v vv

1243

Exerc cio 2.0.1 Escreva um programa para cada um dos problemas 2 e 3 e obtenha o tempo de execu c ao para v arios valores dos par ametros. Comente os resultados. Um problema e trat avel se existe um algoritmo polinomial que o resolve. Se todos os algoritmos conhecidos para resolver um problema forem exponenciais o problema diz-se intrat avel. Isto porque o tempo de execu c ao dum algoritmo exponencial torna-se rapidamente insuport avel (quase innito) para comprimentos pequenos dos dados. O quadro seguinte ilustra a diferen ca entre as complexidades temporais citadas. Para valores crescentes do comprimento dos dados, n, indica o tempo de execu c ao, tomando para base o microsegundo. Valores de n 20 40 20 s 40 s 0.4 ms 1.6 ms 3.2 s 1.7 minutos 1s 12.7 dias 4 3.1 10 s eculos 3.1 1024

DC

Complexidade temporal n n2 n5 2n 10n

C-F
10 10 s 0.1 ms 0.1 s 10 ms 2.7 horas

Se G e um grafo completo, o tempo de execu c ao e O(n) (caso melhor) mas no pior caso o algoritmo tem complexidade O(n!).

importante notar que esta situa E c ao n ao se modica signicativamente se as m aquinas usadas forem muito mais r apidas. Considerando aumentos de 100 e 1000 vezes na velocidade dum processador podemos ver pelo quadro seguinte, que o tamanho m aximo dos problemas

Notas e Exerc cios de Complexidade Universidade do Porto

CU P
1 12 KK 124
KKK KK KK K

126

1245

1265

12654

126543

1265431

60 60 s 3.6 ms 13 minutos 366 s eculos


s eculos

Complexidade temporal n n2 n5 2n 10n

M aximo comprimento dos dados para 1 hora de CPU Computador Computador Computador actual 100x r apido 1000x r apido X1 100X1 1000X1 X2 10X2 n 31.6X2 X3 2.5X3 3.98X3 X4 X4 + 6.64 X4 + 9.97 X5 X5 + 2 X5 + 3

Note-se contudo que um algoritmo exponencial n ao signica que para todas as inst ancias demore um tempo que e exponencial nos dados, mas sim que no pior caso pode demorar esse tempo. Isto permite na pr atica usar algoritmos exponenciais para resolver alguns problemas (ex: m etodo simplex para resolver problemas de programa c ao linear).

A seguir apresent amos alguns problemas dos quais uns pertencem a essa classe e outros para os quais se conhecem algoritmos polinomiais para os resolver. (EC) Dado um grafo G = (V, E ), G tem um ciclo euleriano, isto e, que passe por todos os ramos uma s o vez? (HC) Dado um grafo G = (V, E ), G tem um ciclo hamiltoniano, isto e, que passe por todos os v ertices uma s o vez ? (PRIMO) Dado n inteiro, n e primo?

(DIOF) Dada uma equa c ao de coecientes inteiros, existem solu c oes inteiras? (PAR) (Parti c ao) Dado um conjunto A e uma fun c ao s : A N , existe A A tal que s(a) =
aa\A

DC

Dada uma fam lia C de subconjuntos de um conjunto S , existe uma parti c ao de S , S = S1 S2 , e tal que S C, S S1 = e S S2 =

(VC) (Cobertura por v ertices) Dado um grafo G = (V, E ) e K | V | existe V V , | V | K e (a, b) E , a V ou b V .

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
s(a)
aA

Facto: Existe uma grande fam lia de problemas para os quais s o se conhecem algoritmos exponenciais - essencialmente problemas de optimiza c ao e decis ao que exigem procuras exaustivas em determinados conjuntos.

CU P

resolvidos num dado tempo por um algoritmo exponencial n ao e praticamente alterado (principalmente em compara c ao com o que sucede com os algoritmos polinomiais, mesmo de grau elevado).

2.1 Problemas de decis ao

10

(3DM) Dado um conjunto M W Y Z , onde |W | = |Y | = |Z | = q e disjuntos, existe um subconjunto M M , tal que |M | = q e nenhum elemento de M tem uma coordenadacomum? (SAT) Um literal e uma vari avel l ogica ou a sua nega c ao. Uma cl ausula e uma disjun c ao de literais. Dado um conjunto de cl ausulas (representando a sua conjun c ao) C = {c1 , c2 , ..., cm } com literais num conjunto nito U de vari aveis l ogicas, existe uma atribui c ao de valores de verdade ` as vari aveis de tal modo que todas as cl ausulas de C sejam simultaneamente satisfeitas? (3SAT) An alogo ao anterior com todas as cl ausulas com 3 literais ? (2SAT) An alogo ao anterior com todas as cl ausulas com 2 literais ?

(K-COLOR) Dado um grafo G = (V, E ) e um inteiro k, pode-se colorir G com k cores, isto e, existe uma fun c ao : N Zk , tal que, se {u, v } E , ent ao (u) = (v )?

Vamos come car por analisar um tipo particular de problemas: os problemas de decis ao. Um problema de decis ao e um problema que apenas tem duas solu c oes poss veis: ou simou n ao. O conjunto das suas inst ancias D e divido em dois subconjuntos S e N , correspondentes respectivamente, ` as inst ancias para as quais a resposta e sim e ` as inst ancias para as quais a resposta e n ao. Estes problemas podem-se converter facilmente em problemas de reconhecimento de linguagens e, portanto, e poss vel estudar a sua complexidade computacional formalmente. Dado um conjunto nito de s mbolos (alfabeto), uma linguagem L e um subconjunto de . Seja um conjunto nito de s mbolos e c : D , uma codica c ao de inst ancias dum problema de decis ao em . A linguagem associada a para a codica c ao c e: L(, c) = {x | x = c(I) onde I e uma inst ancia para a qual a resposta de e sim, I S } Resolver o problema equivale a reconhecer L(, c) usando um modelo computacional, por exemplo, uma m aquina de Turing. Mais que isso, se as codica c oes usadas forem razo aveis podemos falar apenas na linguagem L associada a um problema . Isto e, se c e c forem duas codica c oes razo aveis de um problema as linguagens L(, c ) e L(, c) ter ao as mesmas propriedades (formais, computacionais). Dado que a complexidade temporal dum algoritmo e uma fun ca o do comprimento dos dados, isto e, de cada inst ancia do problema, e necess ario obter esta medida independentemente das codica c oes. Assim, para cada problema de decis ao associ amos, independentemente da

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

2.1

Problemas de decis ao

CU P

(LP) (Programa c ao Linear) Dada uma matriz de inteiros A e dois vectores de inteiros b e c, existe um vector real x tal que Ax b e maximize cx ?

2.1 Problemas de decis ao

11

comp(I ) = m + log2 B + max{log2 d(ci , cj ) | ci , cj C }

Exerc cio 2.1.1 Escolha uma codica c ao para o problema TSP e verique que a fun c ao comp se relaciona polinomialmente com essa codica c ao. Podemos ent ao considerar que todos os problemas s ao codicados numa mesma codica c ao razo avel. Isto, permite dum modo informal comparar as propriedades computacionais de dois problemas sem ter de os exprimir em termos de cada uma das suas codica c oes. Basta saber que existe uma. Exemplo duma codica c ao seria considerar as sequ encias nitas sobre o o conjunto = {0, 1}. Ent ao, qualquer problema de decis ao pode ser identicado com uma linguagem L {0, 1}. Normalmente, para escrever algoritmos numa dada linguagem de programa c ao, usam-se codica c oes menos minimalistas ... Ver exerc cio 6.1.3 da sec c ao 6.1. Informalmente podemos falar na complexidade de um problema e dizer que um problema pertence a uma dada classe de complexidade. Isto e, identicar um problema de decis ao com a linguagem associada. Toda a teoria a seguir apresentada tem como base esta equival encia e o que ser a dito para problemas e algoritmos e exprim vel formalmente em termos de linguagens e modelos computacionais. A menos refer encia em contr ario, os problemas considerados ser ao problemas de decis ao. Note-se que dado um problema de optimiza c ao em que n ao s o se pretende saber se um problema tem solu c ao, mas tamb em qual e essa solu c ao ( optima) e sempre poss vel formular um problema correspondente de decis ao. O problema de decis ao e trat avel se o de optimiza c ao o for, isto e, se o de decis ao e intrat avel o de optimiza c ao tamb em o e (o problema de decis ao n ao e mais dif cil que o correspondente de optimiza c ao). O inverso tamb em e verdade para muitos casos. Consideremos o seguinte exemplo: (Clique m aximo) Um subgrafo completo maximal dum grafo G chama-se clique. O tamanho dum clique e o seu n umero de v ertices. Inst ancia: Um grafo G = (V, E ) n ao dirigido. Quest ao: Qual o tamanho do maior clique de G ? O problema de decis ao associado e: (CLIQUE)
1

Lembre-se que, para um dado problema, apenas estamos interessados na exist encia de algoritmos polinomiais para o resolver.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

codica c ao, uma fun c ao comprimento comp : D N nas inst ancias I de que e relacio1 nada polinomialmente com o comprimento da sequ encia de s mbolos de qualquer codica c ao razo avel de I . Isto e, para qualquer codica c ao c de existem das fun c oes polinomiais p e p tal que se I D e x = c(I) ent ao comp(I) p(|x|) e |x| p (comp(I)). Por exemplo, no problema de decis ao do caixeiro viajante, (TSP), (ver p agina 14) o comprimento duma inst ancia gen erica I e:

2.1 Problemas de decis ao

12

Inst ancia: Um grafo G = (V, E ) n ao dirigido e um inteiro k |V | Quest ao: G cont em algum clique com tamanho maior ou igual a k ?

Seja CLID(G,k) um algoritmo que resolve o problema de decis ao CLIQUE. Se |V | = n, ent ao o tamanho do maior clique pode ser determinado aplicando CLID(G,k) para k = n, n 1, n 2, . . . at e que o resultado desse algoritmo seja sim. Se CLID tem complexidade f (n), ent ao algoritmo para determinar o maior clique tem complexidade n f (n). Inversamente, se o tamanho do maior clique pode ser determinado em tempo g(n) ent ao o problema de decis ao pode ser resolvido em tempo g(n). Exerc cio 2.1.2 Dado um conjunto U de vari aveis l ogicas uma atribui ca o de valores para U e uma fun ca o t : U {0, 1}. Se t(u) = 1, u U , dizemos que u e verdade em t, caso ao literais em U . contr ario dizemos que a vari avel u e falsa em t. Se u U ent ao u e u s e verdade em t sse O literal u e verdade em t sse a vari avel u e verdade em t. O literal u a vari avel u e falsa em t. Uma cl ausula em U e um conjunto (nito) de literais em U e e satisfeita por uma atribui ca o de valores, t, sse pelo menos um dos seus elementos e verdade para t. Considere, ent ao o seguinte problema: (SATA)

Inst ancia: Seja C = {c1 , c2 , . . . , cm } um conjunto de cl ausulas com literais num conjunto nito U = {u1 , u2 , . . . , un } Quest ao: Determine uma atribui ca o de valores para U que satisfa ca simultaneamente todas as cl ausulas de C ? Mostre que se existir um algoritmo polinomial SAT(C) que determine se um conjunto de cl ausulas e satisfaz vel ent ao o problema SATA tamb em e resol uvel em tempo polinomial. Sugest ao: Vamos supor que em C ocorrem todos os elementos de U . Basta ent ao construir um algoritmo que utilize SAT() n vezes, de cada vez para um C que resulta de C substituindo sucessivamente cada uma das vari aveis por o valor 0 ou 1: C<- C; para todos u[i] em U fa ca { C <- obtido de C substituindo 0 por todas as ocorr^ encias de u[i] e 1 por todas as ocorr^ encias de ~u[i]; se SAT(C) ="sim" ent~ ao { t(u[i])<-0; C<- C } sen~ ao { t(u[i])<- 1; C<- obtido de C substituindo 1 por todas as ocorr^ encias de u[i] e 0 por todas as ocorr^ encias de ~u[i]} } fim.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

2.2 Algoritmos determin sticos

13

2.2

Algoritmos determin sticos

A no c ao de algoritmo que usamos at e agora e que e a habitual, pressup oe que cada instru c ao e univocamente determinada, isto e, para cada conjunto de dados existe uma s o solu c ao. Chamemos a estes algoritmos - que correspondem a m aquinas de Turing determin sticas que param sempre ou a programas execut aveis por um computador - algoritmos determin sticos. Podemos ent ao identicar a classe P com: P = {conjunto de todos os problemas de decis ao que s ao resol uveis por um algoritmo determin stico em tempo polinomial} Da lista de problemas dada (EC), (2SAT) e (2-COLOR) pertencem a P.

Exerc cio 2.2.1 Encontre um algoritmo determin stico polinomial para cada um desses problemas. Sugest ao: a) EC Para um grafo (n ao dirigido) ter um ciclo euleriano tem de ser conexo e todos os v ertices terem grau par. Estas duas condi co es podem ser implementadas em tempo polinomial. b) 2SAT Sendo U = {u1 , . . . , un } e C o conjunto de cl ausulas, construa o grafo (dirigido) G = (V, E ), onde V = {u1 , . . . , un , u 1 , . . . , u i , (li , lj ) E n } e sendo li igual a ui ou u se {l , l } C (isto e , u l ). Mostre que C e satisfaz vel se e s o se as componentes i j i j fortemente conexas de G n ao cont em simultaneamente uma vari avel e a sua nega ca o. c) 2-COLOR Para colorir um grafo com 2 cores vamos supor que o grafo e conexo (sen ao 3 aplic amos o algoritmo a cada componente conexa). O seguinte algoritmo e O(n ), onde n e a ordem do grafo: colorir o v ertice 1; f <- verdade; enquanto f fa ca { /* enquanto existirem v ertices por colorir */ f <- falso; para i<- 1 at e n fa ca /* pelo menos um v erice e colorido */ se n~ ao colorir(i) ent~ ao f<- verdade; } escreva(sim); fim. colorir(i){ se i est a colorido retorna verdade se i n~ ao tem vizinhos coloridos ent~ ao retorna falso /* i tem no maximo n-1 vizinhos */

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

2.3 Algoritmos n ao determin sticos

14

2.3

Algoritmos n ao determin sticos

Considere-se o problema do caixeiro viajanteexpresso como um problema de decis ao:

(TSP) Dado um conjunto de cidades, as dist ancias entre elas, e um limite B , existe um itiner ario pelas cidades cuja dist ancia total e menor ou igual a B ? Inst ancia: C = {c1 , c2 , . . . cn }, d : C C N dist ancia e B N Quest ao: Existe uma permuta c ao : C C tal que
n1 i=1

d(c(i) , c(i+1) ) + d(c(n) , c(1) ) B

escolha(S) escolha arbitr aria de um elemento de S

insucesso indica que o algoritmo termina com a resposta n ao Sup oe-se que cada uma destas instru c oes e executada em tempo constante, isto e, O(1). Por exemplo, o problema da procura dum elemento numa sequ encia pode ser resolvido n ao-deterministicamente pelo seguinte algoritmo: i <- escolha(1..n) se V[i]= X ent~ ao {escreva(sim); sucesso} sen~ ao{ escreva(n~ ao); insucesso}

DC

sucesso indica que o algoritmo termina com a resposta sim

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Como se disse n ao se conhece nenhum algoritmo polinomial que resolva este problema. Contudo, suponhamos que temos um mecanismo que nos gera uma poss vel solu c ao. Podemos vericar se ela realmente e uma solu c ao, bastando para isso calcular o seu comprimento e compar a-lo com B ! E isto pode ser feito em tempo polinomial... O mecanismo mencionado acima pode ser simulado por um algoritmo que permita a exist encia de instru c oes cujo resultado n ao e univocamente determinado mas sim limitado a um conjunto nito de possibilidades: algoritmo n ao-determin stico de verica c ao Um tal algoritmo termina com insucesso (resposta n ao) se e s o se nenhum conjunto de escolhas conduz a uma resposta sim(caso em que, o algoritmo termina com sucesso). Se existir algum conjunto de escolhas que conduza a uma solu c ao de sucesso, esse conjunto e sempre gerado, isto e, em qualquer instru c ao que envolva uma escolha e escolhido um elemento correcto dum desses conjuntos. Para tal efeito ser o usadas a fun c ao e as instru c oes seguintes:

CU P

sen~ ao se os vizinhos tiverem cores contradit orias ent~ ao { escreva(n~ ao) ; fim } sen~ ao {colorir i com a cor alternativa; retorna verdade}

2.3 Algoritmos n ao determin sticos

15

Exerc cio 2.3.1 Para cada um dos seguintes problemas escreva um algoritmo n ao-determin stico: a) Ordenar uma sequ encia de inteiros positivos.

b) (HC) Exist encia de ciclo hamiltoniano num grafo (dirigido ou n ao). c) (CLIQUE)

NP = {conjunto de todos os problemas de decis ao que s ao resol uveis por um algoritmo n ao-determin stico polinomial} Exerc cio 2.3.2 Determine a complexidade temporal de cada um dos algoritmos encontrados no exerc cio 2.3.1. Exerc cio 2.3.3 Obtenha um algoritmo n ao-determin stico de O(n) que determine se existe um subconjunto de n n umeros ai , 1 i n cuja soma seja M . A no c ao de verica ca o polinomial duma solu c ao pode ainda formalizar-se em termos de testemunhas concisas duma linguagem.
2

DC

Isto porque n ao e indicado um m etodo para efectuar cada uma das escolhas.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Admitindo processamento paralelo, podemos interpretar um algoritmo n ao-determin stico do seguinte modo: Sempre que existe uma escolha o algoritmo produz v arias c opias de si mesmo, uma para cada uma das poss veis alternativas. Estas c opias s ao executadas em simult aneo. Se uma chega a um resultado de sucesso todas as outras terminam. Se uma c opia chega a um resultado de insucesso s o essa c opia termina. O tempo requerido por um algoritmo n ao-determin stico para um dado conjunto de dados e o menor n umero de passos necess arios para chegar a um resultado de sucesso. Se tal n ao for poss vel o tempo requerido e O(1). A sua complexidade e O(f (n)) se para todos os dados de comprimento n, n n0 que conduzem a um resultado de sucesso o, tempo requerido e no m aximo cf (n), para c e n0 constantes. O algoritmo n ao-determin stico dado para procurar um elemento numa sequ encia e O(1). Um algoritmo n ao-determin stico diz-se polinomial se a sua complexidade e O(p(n)), para algum polin omio, p(n). Formalmente podemos identicar estes algoritmos e com m aquinas de Turing n ao-determin sticas polinomiais e os problemas correspondentes com linguagens da classe NP. Temos:

CU P

Neste caso se existir algum V [i] igual a X , um desses i e gerado na primeira instru c ao e o algoritmo termina em sucesso, caso contr ario termina em insucesso. Mais precisamente, comparando com a no c ao cl assica de algoritmo, o algoritmo n ao resolve2 o problema, apenas verica se uma poss vel solu c ao e efectivamente solu c ao.

2.3 Algoritmos n ao determin sticos

16

L = {x | y (x, y ) Lv e |y | p(|x|)}

Para cada x L, y diz-se uma testemunha concisa (ou polinomial) da x L.

Dem. () Suponhamos que L = {x | y (< x, y > Lv e |y | p(|x|)} e Lv P e p(n) e polinomial. Ent ao L e decidida pela seguinte NDTM N : Com dados x, N gera uma sequ encia y de comprimento no m aximo p(|x|) e depois usa a TM que decide Lv para testar (vericar) em tempo polinomial se (x, y ) Lv . Se (x, y ) Lv N aceita x caso contr ario rejeita.3 () Seja L NP. Ent ao existe uma NDTM N que decide L e cuja complexidade temporal e limitada por uma fun c ao polinomial p(n). Para cada x , cada caminho de computa c ao (sequ encia de escolhas de ) de N com dados x pode ser codicado numa sequ encia y de s mbolos de tal que |y | p(|x|). A linguagem Lv e denida do seguinte modo: um par < x, y > pertence a Lv se y codica um caminho duma f computa c ao de aceita c ao de N com dados x. E acil ver que Lv P e que x L se e s o se y (< x, y > Lv e |y | p(|x|). Alternativamente, podemos ainda considerar uma variante de m aquinas de Turing determin sticas: m aquinas de Turing com escolhas (de adivinha c ao) polinomiais. Exerc cio 2.3.4 Considere a seguinte deni c ao duma m aquina de Turing com escolhas ( de adivinha c ao)(GDTM) (ver [GJ79, Cap. 2.3]): uma GDTM, M , e uma m aquina de Turing determin stica com ta duplamente innita ` a qual foi adicionado um m odulo de escolha com apenas uma cabe ca de escrita. A computa c ao duma m aquina GDTM para dados x e feita em dois passos: Escolha Inicialmente os dados x est ao escritos na ta a partir da posi c ao 1 at e | x |, os restantes em branco, a cabe ca de leitura-escrita na posi c ao 1 e a cabe ca de escrita a c elula -1. O m odulo de escolha dirige ent ao a cabe ca de escrita, ou escrevendo um s mbolo de e movendo-se para a esquerda, ou parando; neste u ltimo caso este m odulo ca inactivo e entra-se no estado s0 . Note que este m odulo escreveu um qualquer s . Verica ca o A computa c ao procede exactamente como numa m aquina de Turing determin stica A computa c ao p ara se e atingido um estado nal e diz-se que e uma computa c ao de aceita c ao se p ara num estado de aceita c ao. Dizemos que M aceita x se existir pelo menos uma computa c ao de aceita c ao para x. Mostre que uma m aquina GDTM e equivalente (polinomialmente) a uma NDTM. Sugest ao: Considere a demonstra c ao do teorema 2.3.1.
3

DC
Note que o n umero de sequ encias y e nito.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

Teorema 2.3.1 Uma linguagem L pertence a NP se e s o se existe uma linguagem Lv que pertence a P e uma fun ca o polinomial p tal que:

2.4 Rela c ao entre P e NP

17

Figura 2.1: Rela c ao entre P e NP

2.4

Rela c ao entre P e NP

J a se viu que P NP. Pelo que foi dito no nal da sec c ao anterior, um algoritmo n ao-determin stico e essencialmente constitu do por dois passos:

- vericar se e solu c ao

Se e polinomial isso equivale a dizer que a verica ca o da solu c ao do problema pode ser feita em tempo polinomial. Temos assim que a distin c ao entre as classes P e NP corresponde diferen ca entre a resolu c ao dum problema em tempo polinomial e a sua verica c ao em tempo polinomial. Ser a que NP P ? At e agora ainda ningu em soube respondera esta pergunta ! Exerc cio 2.4.1 Mostrar que se NP ent ao existe um polin omio p(n) tal que pode ser resolvido por um algoritmo determin stico com complexidade O(2p(n) ).

2.5

Redu c oes entre problemas

Facto: Muitos dos problemas para os quais n ao se conhecem algoritmos polinomiais, reduzemse polinomialmente uns aos outros de tal forma que se um deles tiver um algoritmo polinomial todos os outros t em ! Formalmente temos:

DC

Um problema A reduz a um problema B se dado um algoritmo para resolver B podemos construir um algoritmo que resolva A. Este conceito de redutibilidade e central na teoria da computabilidade e tamb em vai ser fulcral na teoria dos problemas NP-completos.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

- escolher uma solu c ao

CU P

2.5 Redu co es entre problemas

18

(i) Existe uma m aquina de Turing polinomial que calcula f (ii) Para todo o x o se f (x) L2 1 , x L1 se e s

Em termos de problemas, dizemos que um problema A reduz-se polinomialmente a um problema B , A B , se e s o se existe um algoritmo determin stico polinomial, F , que transforma cada inst ancia X A numa inst ancia F (X ) B , tal que X tem solu c ao se e s o se F (X ) tiver. Proposi c ao 2.5.1 Se L1 L2 e L2 P ent ao L1 P. Proposi c ao 2.5.2 A rela ca o e transitiva.

Exerc cio 2.5.1 Mostrar as proposi co es 2.5.1 e 2.5.2.

Exemplo 2 HC TSP (HC)

Inst ancia: Um grafo n ao dirigido G = (V, E ) e |V | = m Quest ao: G tem um ciclo hamiltoniano? (TSP)

Inst ancia: Um conjunto nito C = {c1 , c2 , . . . cn } de cidades, d : C C N dist ancia e B N. Quest ao: Existe uma permuta ca o : C C tal que

A transforma ca o polinomial, f , e denida do seguinte modo: Seja G = (V, E ) e |V | = m uma inst ancia de HC. A inst ancia correspondente de TSP e dada por: (i) C = V

(ii) Para cada par vi , vj C , d(vi , vj ) = 1 se (vi , vj ) E e d(vi , vj ) = 2, caso contr ario.

DC
n1 i=1

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Duas linguagens L1 e L2 s ao polinomialmente equivalentes se L1 L2 e L2 L1 . An alogamente, se denem problemas polinomialmente equivalentes. A classe P e uma classe de equival encia dessa rela c ao, formada pelas linguagens mais f aceis. Vejamos alguns exemplos de redu c oes polinomiais !

d(c(i) , c(i+1) ) + d(c(n) , c(1) ) B

CU P

Deni c ao 2.5.1 Uma transforma ca o polinomial duma linguagem L1 1 numa linguagem e uma fun ca o f : L1 L2 que satisfaz as seguintes condi co es: L2 2

2.5 Redu co es entre problemas

19

(iii) B = m Vamos ver duma forma informal que f e uma transforma ca o polinomial de HC para TSP. 1. Para construir as m(m 1)/2 dist ancias d(vi , vj ), e necess ario apenas vericar se (vi , vj ) E . Isto pode ser feito em tempo polinomial. 2. Vejamos que G tem um ciclo hamiltoneano se e s o se existe uma permuta ca o cuja soma das dist ancias e menor que B . Suponhamos que < v1 , . . . , vm > e um ciclo Hamiltoneano de G. Ent ao, < v1 , . . . , vm > e uma volta em f (G) com dist ancia total m=B. Inversamente, suponhamos que < v1 , ..., vm > e uma volta em f (G) com dist ancia total B . Pela constru ca o de d, por B=m, e pelo facto de exactamente m cidades serem visitadas, a dist ancia entre duas cidades consecutivas tem de ser 1. Ent ao, todos os pares (vi , vi+1 ), 1 i m e (v1 , vm ) pertencem a E e constituem um ciclo hamiltoniano para G. Conclu mos ent ao que se existir um algoritmo polinomial para TSP, ent ao tamb em podemos construir um algoritmo determin stico polinomial para HC e se HC for intrat avel, TSP tamb em o e.

Exemplo 3 3SAT VC (3SAT)

Inst ancia: Seja C = {c1 , c2 , . . . , cm } um conjunto de cl ausulas com literais num conjunto nito U de vari aveis l ogicas, | U |= n, e tal que cada cl ausula tem exactamente 3 literais. Quest ao: Existe uma atribui ca o de valores de verdade para U que satisfaz simultaneamente todas as cl ausulas de C ? (VC)

Inst ancia: Um grafo n ao dirigido G = (V, E ) e K | V | inteiro positivo. Quest ao: Existe um subconjunto V V tal que | V | K e para cada ramo {u, v } E , u V ou v V ? (A V chama-se cobertura por v erticesde G.)

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Genericamente se 1 2 dizemos que 2 e pelo menos t ao dif cil como 1 . Consideremos agora uma redu c ao entre dois problemas de dois dom nios diferentes: l ogica e teoria de grafos.

CU P

2.5 Redu co es entre problemas

20

= U U
i=1 n

{li1 , li2 , li3 }


m

E =
i=1

{{ui , ui }}
i=1

{{li1 , li2 }, {li1 , li3 }, {li2 , li3 }}

onde designa o literal correspondente uk ou uk , para algum k, 1 k n. Temos que | V |= 2n + 3m e | E |= n + 6m. Toda esta constru ca o pode ser feita em tempo polinomial. Considerando a inst ancia de 3SAT, U = {u1 , u2 , u3 } e C = {(u1 , u2 , u3 ), (u1 , u2 , u3 ), (u1 , u2 , u3 )} temos o seguinte grafo G: associado a VC, com K = 11 e G = (V, E ):
u1 u2 UU u3 u1 u2 u3 QQQ UUUU ++ t t QQQ { t t U { t t U UUUU QQQ ++ tt t {{ t UUU ttt QQQ U {{ tt++ t QQQ U U { t t U t UUUU tt ++ {{ tt QQQQQ UUUU tt {{ tt Q t + U t { Q U t U{ t ++ QQQQ t U { tt QQQ tt l23 l12 ++ {{ l328 8 8 Q { t Q 8 8 8 Q 88 ++ {{ 888 ttQ tt QQQQ8 88 {{ 8Q 88 t + Q { 8 t { Q ++tt 88 8 88 QQQ { 8 { t 88 88 QQQ{{ 88 t + t Q + t 8 tt 8 {{ QQQ 8 l13 l21 l23 l31

C-F
t(ui ) = 1 0 se ui V se ui V

l11

Falta ver que C e satisfeita se e s o se G tem uma cobertura por v ertices de tamanho no m aximo K . Suponhamos que V V e uma cobertura por v ertices para G. Pelo que se disse acima ertices ljk correspondentes a cada cl ausula. V contem exactamente um de cada {ui , ui } e 2 v Ent ao a seguinte atribui ca o de valores de verdade satisfaz C , t : U {0, 1}:

Exerc cio 2.5.2 Vericar que t satisfaz C . Inversamente suponhamos que t : U {0, 1} e uma atribui ca o de valores de verdade que satisfaz C . A cobertura para V e a seguinte: ui V se t(ui ) = 1 e ui V se t(ui ) = 0. Isto assegura que para cada cl ausula uma dos ramos que unem lji aos literais ui ou ui que coberta por V . Basta ent ao, adicionar a V dois dos v ertices da cada tri angulo que n ao correspondem a esse literal.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

CU P
m 3

Constru c ao da transforma c ao : Suponhamos uma inst ancia de 3SAT. Vamos construir uma inst ancia de VC indicando os conjuntos V e E . Para cada ui U , {ui , ui } V e ertices deve conter pelo menos um dos v ertices {ui , ui } E . Note-se que uma cobertura por v destes ramos. Para cada cj C adicionar a V tr es v ertices correspondentes a cada um dos literais lj 1 , lj 2 , lj 3 que ocorre em cj e adicionar a E os ramos que unem estes v ertices, de modo a formar um tri angulo para cada cl ausula (ver gura). Qualquer cobertura por v ertices dever conter pelo menos 2 dos v ertices de cada tri angulo. Finalmente, para cada cl ausula constroem-se ramos que unem cada literal ljk , k = 1, 2, 3, ao literal correspondente, ui ou ui .Seja K = n + 2m e G = (V, E ), onde

{{lij , }},

i=1 j =1

l33

2.5 Redu co es entre problemas

21

Exerc cio 2.5.3 Vericar que V e uma cobertura por v ertices de G e | V | K .

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

Cap tulo 3

Problemas NP-completos

Deni c ao 3.0.2 Uma linguagem L e NP-completa se L NP e para todo L NP tem-se que L L. Em termos de problemas, um problema diz-se NP-completo se NP e para todo NP tem-se que . Pela proposi c ao 2.5.1 os problemas NP-completos (representamos por NPC a classe destes problemas) s ao os mais dif ceis em NP. Se um problema em NP e intrat avel ent ao todos os problemas em NPC tamb em o s ao. Se um problema NP-completo tiver um algoritmo determin stico polinomial ent ao todos os problemas em NP tem tamb em um, isto e, P=NP! Por outro lado, se P = NP e NPC ent ao NP \ P. Note-se ainda que todos os problemas na classe NPC s ao polinomialmente equivalentes. Se P = NP ent ao a classe NP divide-se como indicado na gura 3.1. No entanto, n ao parece claro como se pode mostrar que um problema e NP-completo: para cada problema em NP (que s ao em n umero innito) e necess ario arranjar uma redu c ao polinomial para esse problema. A proposi c ao seguinte mostra que se existir um problema NP-completo e mais f acil provar que outro problema e NP-completo. Proposi c ao 3.0.3 Se L1 e L2 pertencem a NP, L1 e NP-completa e L1 L2 ent ao L2 e NP-completa. Exerc cio 3.0.4 Mostrar a proposi c ao 3.0.3.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
Figura 3.1: Classe NP

CU P

23

Teorema 3.0.1 SAT e NP-completo. Dem. Temos que mostrar: (i) SAT NP (ii) NP = SAT

Seja U = {u1 , u2 , . . . , un } um conjunto de vari aveis l ogicas e C = {c1 , c2 , . . . , cm } um conjunto de cl ausulas com literais de U . Ent ao, o seguinte algoritmo n ao-determin stico termina com sucesso se e s o se C e satisfeito: para i <- 1 at e n fa ca u[i] <- escolha({0,1}) para i <- 1 at e m fa ca se c[i] = 0 ent~ ao insucesso sucesso.

O tempo de execu c ao deste algoritmo e O(n) para escolher uma atribui c ao de valores de verdade para as vari aveis, mais O(m) para vericar se cada cl ausula de C e satisfeita, portanto e proporcional ao comprimento dos dados. Logo, SAT NP. Seja LSAT = L[SAT, c] a linguagem associada a SAT para uma dada codica c ao c. Temos que mostrar L NP, L LSAT . Cada L NP e decidida por uma GDTM polinomial (ver exerc cio 2.3.4). Seja, ent ao, M uma GDTM polinomial arbitr aria, M = (S, , , b, s0 , {sy , sn }, ) tal que L(M ) = L e seja TM (n) = p(n), com p(n) n, n N. A transforma c ao gen erica FL ser a denida de em inst ancias de SAT (mais propriamente SAT ), tal que para x , x L se e s o se FL (x) e satisfaz vel. Isto e, x e aceite por M se e s o se FL (x) e um conjunto de cl ausulas satisfaz vel. A ideia e simular a computa c ao de M em termos de vari aveis l ogicas. Se x e aceite por M ent ao existe uma computa c ao que dado x termina no estado sy e que tanto o n umero de passos na fase de verica c ao como o n umero de s mbolos na sequ encia adivinhadas ao limitados por p(n), sendo n = |x|. Cada computa c ao deste tipo envolve no m aximo as posi c oes de p(n) a p(n) + 1. Recorde-se que cada congura c ao, ou descri c ao instant anea de M , ca caracterizada pelo conte udo das c elulas da ta, pelo estado corrente e a c elula lida pela cabe ca. Como n ao h a mais de p(n) passos na fase de verica c ao, existem no m aximo p(n) + 1 congura c oes a considerar. Podemos, ent ao, associar a cada computa c ao um n umero limitado de vari aveis l ogicas e uma atribui c ao de valores de verdade para elas. Numerem-se os elementos de S s0 , s1 = sy , s2 = sn ,

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

Cook mostrou que SAT e NP-completo ! Dado que para cada problema em NP existe uma algoritmo polinomial n ao-determin stico A que o resolve. Cook, [Coo71], provou que e poss vel obter em tempo polinomial a partir desse algoritmo (gen erico) e duma inst ancia I do problema , um conjunto de cl ausulas C , tal que C e satisfeito se e s o se A termina com sucesso para essa inst ancia I .

24

Vari avel S [i, k] H [i, j ] A[i, j, k]

Varia c ao

0 i p(n) 0kr 0 i p(n) p(n) j p(n) + 1 0 i p(n) p(n) j p(n) + 1 0kv

xL

existe uma computa c ao de M que aceita x existe uma computa c ao de M que aceita x com p(n) ou menos passos na fase de verica c ao e com uma sequ encia adivinhada w de comprimento exactamente p(n) existe uma atribui c ao de valores de verdade que satisfaz o conjunto de cl ausulas em FL (x)

As cl ausulas em FL (x) podem ser divididas em 6 grupos:


1

DC

Note que uma qualquer atribui c ao de valores de verdade para estas vari aveis n ao corresponde provavelmente a nenhuma computa c ao de M .

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Uma computa c ao de M induz uma atribui c ao de valores de verdade ` as vari aveis acima denidas duma maneira obvia, com a conven c ao de que se o programa terminar em t p(n) passos, a congura c ao mant em-se a mesma de t + 1 a p(n). No passo 0 o conte udo da ta tem os dados x, escritos nas c elulas de 1 a n e a advinha w escrita nas c elulas de 1 a |w|, com as restantes c elulas em branco1 . A transforma c ao FL constr oi uma conjunto de cl ausulas envolvendo estas vari aveis de tal modo que a atribui c ao de valores de verdade satisfaz esse conjunto sse e a atribui c ao de valores de verdade induzida por uma computa c ao que aceita x cuja fase de verica c ao demora p(n) ou menos passos e cuja sequ encia adivinhadatem comprimento no m aximo p(n). Tem-se

CU P
Signicado no passo i M est a no estado sk no passo i a cabe ca est a na c elula j no passo i o conte udo da c elula j e o s mbolo ak

s3 , . . . , sr , onde r = |S | 1, e os elementos de , a0 = b, a1 , . . . , av , onde v = || 1. Consideram-se 3 tipos de vari aveis:

25

Grupo G1

Restri c oes impostas No passo i, M est a exactamente num s o estado. No passo i a cabe ca est a exactamente numa s o c elula da ta.

Cl ausulas nesse Grupo

G2

G3

No passo i, cada c elula cont em exactamente um s mbolo de .

G4

G5

No passo 0, a computa c ao est a na congura c ao inicial para a fase de verica c ao para dados x = ak1 . . . akn . No passo p(n), M entrou no estado sy .

DC

Para cada i, 0 i < (Ver texto) p(n), a congura c ao de M em i+1 resulta duma u nica aplica c ao de dada a congura c ao em i. f E acil ver que as cl ausulas dos grupos G1 a G5 cumprem a fun c ao especicada para cada grupo e que uma atribui c ao de valores de verdade para elas corresponde a uma computa c ao que aceita x. Apenas falta especicar as cl ausulas do grupo G6 . Consideramos dois subgrupos. G6 1. Este subgrupo garante que se a cabe ca n ao est a no passo i na c elula j ent ao o seu s mbolo n ao e mudado de i para i + 1. As cl ausulas s ao da forma2 :

Isto e, H [i, j ] = (A[i, j, l] = A[i + 1, j, l]).

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
{S [p(n), 1]}

CU P
{S [i, 0], S [i, 1], . . . , S [i, r ]} 0 i p(n) 0 i p(n) {S [i, j ], S [i, j ]} 0 j < j r {A[i, j, 0], A[i, j, 1], . . . , A[i, j, v ]} 0 i p(n) p(n) j p(n) + 1 {A[i, j, k], A[i, j, k ]} 0 i p(n), p(n) j p(n) + 1 0 k < k v {S [0, 0]}, {H [0, 1]}, {A[0, 0, 0]}, {A[0, 1, k1 ]}, . . . , {A[0, n, kn ]}, {A[0, n + 1, 0]}, . . . , {A[0, p(n) + 1, 0]}

{H [i, p(n)], H [i, p(n) + 1], . . . , H [i, p(n) + 1]} 0 i p(n) {H [i, j ], H [i, j ]} 0 i p(n) p(n) j < j p(n) + 1

26

2. Este subgrupo garante que as modica c oes duma congura c ao para a seguinte est ao de acordo com a fun c ao de transi c ao . Para cada (i, j, k, l), 0 i < p(n), p(n) j p(n) + 1, 0 k r e 0 l v tem-se as seguintes 3 cl ausulas3 : {H [i, j ], S [i, k], A[i, j, l], H [i + 1, j + D]} {H [i, j ], S [i, k], A[i, j, l], S [i + 1, k ]} {H [i, j ], S [i, k], A[i, j, l], S [i, j, l ]}

onde se sk S \ {sy , sn } ent ao os valores de D,k e l s ao tais que (sk , al ) = ao D = 0,k = k e l = l. (sk , al , D) e se sk {sy , sn } ent O n umero de cl ausulas por grupo e: Grupo N umero de cl ausulas G1 G2 G3 G4 G5 G6

Se x L ent ao existe uma computa c ao de M com dados x de tamanho p(n) ou menos, e esta computa c ao, dada a interpreta c ao das vari aveis, imp oe uma atribui c ao de valores de verdade que satisfaz todas as cl ausulas de C = G1 G2 G3 G4 G5 G6 . Inversamente, a constru c ao de C e tal que qualquer atribui c ao de valores de verdade que satisfa ca C corresponde a uma computa c ao de M que aceita x. Segue que FL (x) e satisfaz vel se e s o se x L. Apenas resta ver que, para uma linguagem L, a transforma c ao FL (x) pode ser constru da a partir de x em tempo limitado por uma fun c ao polinomial em n = |x|. Dado L e M uma NTDM que decide L em tempo p(n) tem de se construir o conjunto de vari aveis U e o conjunto de cl ausulas C . Para ver que a constru c ao da transforma c ao e limitada polinomialmente, basta ver que Comp[FL (x)] e limitado superiormente por um polinomial em n. Para este problema (SAT), dada uma codica c ao razo avel, Comp[FL (x)] = |U |.|C |. Note-se que cada cl ausula n ao pode conter mais de 2|U | literais e o n umero de s mbolos necess arios para descrever um literal e um factor da ordem log|U |. Dado que r e v s ao xos e n ao dependem de x, tem-se |U | = O(p(n)2 ) e 2 |C | = O(p(n) ). Ent ao, Comp[FL (x)] = O(p(n)4 ).

DC

Isto e S [i, k] H [i, j ] A[i, j, k] = (H [i + 1, j + D] S [i + 1, k ] A[i + 1, j, l ])

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

(p(n) + 1)(1 + r (r + 1)/2) (p(n) + 1)(1 + u(u + 1)/2) 2(p(n) + 1)2 (1 + v (v + 1)/2) p(n) + 4 1 2(p(n) + 1)2 (v + 1) + 6(p(n))(p(n) + 1)(r + 1)(v + 1)

CU P

{H [i, j ], A[i, j, l] , A[i + 1, j, l]} 0 i < p(n) p(n) j p(n) + 1 0lv

onde u = 2(p(n) + 1)

27

Assim, usando a proposi c ao 3.0.3, para mostrar que um problema e NP-completo basta: a) Mostrar que NP b) Seleccionar um problema NPC

c) Construir uma transforma c ao F de em d) Mostrar que F e uma redu c ao polinomial Proposi c ao 3.0.4 3SAT e NP-completo. Dem.

a) 3SAT NP Seja U = {u1 , u2 , . . . , un } um conjunto de vari aveis l ogicas e C = {c1 , c2 , . . . , cm } um conjunto de cl ausulas com 3 literais de U . Ent ao, o seguinte algoritmo n ao-determin stico termina com sucesso se e s o se C e satisfeito: para i <- 1 at e n fa ca u[i] <- escolha({0,1}) para i <- 1 at e m fa ca se c[i] = 0 ent~ ao insucesso sucesso.

O tempo de execu c ao deste algoritmo e O(n) para escolher uma atribui c ao de valores de verdade para as vari aveis, mais O(m) para vericar se cada cl ausula de C e satisfeita, portanto e proporcional ao comprimento dos dados. Logo, 3SAT NP. b) Seleccion amos SAT ( eou nico problema NP-completo que conhecemos...) c) Vamos transformar SAT em 3SAT. Seja U = {u1 , u2 , . . . , un } um conjunto de vari aveis l ogicas e C = {c1 , c2 , . . . , cm } um conjunto de cl ausulas duma inst ancia de SAT. Vamos construir um conjunto de cl ausulas C com 3 literais num conjunto U de vari aveis tal que C e satisfeito se e s o se C o e. Cada cl ausula ci C e trans formada num conjunto Ci de cl ausulas com 3 literais do conjunto U mais vari aveis adicionais (usadas s o para as cl ausulas de Ci ) dum conjunto Ui . A estrutura de Ci e Ui dependem do n umero de literais k, em ci , de acordo com a seguinte tabela:

DC
k ci 1 2 3 4 (l1 ) (l1 , l2 ) (l1 , l2 , l3 ) (l1 , l2 , . . . , lk )

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
Ui Ci
2 {u1 i , ui } {u1 i} k 3 {u1 } i , . . . , ui

CU P
3 3 4 ), (uk , lk1 , lk )} . . . , (uk , lk2 , uk i i i

1 2 1 2 2 1 2 {(l1 , u1 i , ui ), (l1 , ui , ui ), (l1 , ui , ui ), (l1 , u1 , ui )} 1 {(l1 , l2 , u1 i ), (l1 , l2 , ui )} {(l1 , l2 , l3 )} 1 2 2 3 {(l1 , l2 , u1 i ), (ui , l3 , ui ), (ui , l4 , ui ),

28

e U = U
m

C =

d) Vejamos que C e satisfeita se e s o se C o e. Suponhamos t : U {0, 1} uma atribui c ao de valores de verdade que satisfaz C . Vejamos como t pode ser estendida a uma atribui c ao de valores de verdade para C , t : U {0, 1}. Para isso basta ver quais os valores de t para cada elemento de Ui (e para cada caso vericar que as cl ausulas em C s ao todas satisfeitas). Dizemos que o conjunto U e do tipo k se corresponder a uma cl ausula em C com k literais, de acordo com a tabela anterior. Se Ui for do tipo 1 ou 2 qualquer valor pode ser dado aos seus elementos, por j exemplo t (uj e vazio e portanto n ao e preciso i ) = 1,ui Ui . Se U for do tipo 3 fazer nada. Se Ui for do tipo k, k 4, ent ao pelo menos um dos literais de ci tem t(lm ) = 1, para algum 1 m k. Se for l1 ou l2 ent ao fazemos t (uj i ) = 1 para j 1 j k 3. Se for lk ou lk1 fazemos t (ui ) = 0 para 1 j k 3. Caso j contr ario t (uj i ) = 1 para 1 j m 2 e t (ui ) = 0 para m 1 j k 3.

e) Note-se que o n umero m aximo de cl ausulas em C e limitado por um polin omio em mn e portanto o tamanho duma inst ancia de 3SAT e limitado por um polin omio no tamanho da inst ancia de SAT. Isto e, a constru c ao da transforma c ao pode ser feita em tempo polinomial. Donde SAT 3SAT, e portanto 3SAT e NP-completo.

Em 1972 Karp [Kar72] publica uma lista com 21 problemas que mostra serem NPcompletos, indicando as redu c oes entre eles. Dessa lista salient amos 6, que j a foram referidos anteriormente, e o diagrama seguinte mostra uma sequ encia de redu c oes que pode ser usada para a sua demonstra c ao: SAT

DC
P AR
uu uu u uu uu

C-F

Inversamente, se t e uma atribui c ao de valores de verdade para C e f acil ver que a restri c ao de t a U deve satisfazer C .

3DM

t tt tt t t tt

3SAT H

Pelo diagrama e pela redu c ao atr as apresentada podemos concluir que o problema de decis ao do caixeiro viajante e NP-completo: HC e NP-completo e HC TSP!

Notas e Exerc cios de Complexidade Universidade do Porto

CU P
Ui
i=1

Ci

i=1

HH HH H HHH

HC

vv vv v vv vv

V C KK

KKK KK KKK

CLIQU E

29

Proposi c ao 3.0.5 HC e NP-completo. Dem. a) HC NP porque um algoritmo n ao determin stico apenas tem de escolher uma ordena c ao dos v ertices e vericar em tempo polinomial que o conjunto de ramos correspondentes est a contido em E . b) Seleccion amos VC c) Vamos transformar VC em HC. Seja G = (V, E ) e K | V | uma inst ancia de VC. Temos de construir um grafo G = (V , E ) tal que G tem um ciclo Hamiltoneano se e s o se G tem uma cobertura por v ertices de tamanho no m aximo K . Primeiro, o grafo G tem K v ertices selectores a1 , a2 , . . . , aK , que ser ao usados para seleccionar K v ertices do conjunto V . Depois, para cada ramo em E , G cont em uma componente de teste de coberturaque ser a usada para assegurar que pelo menos uma das extremidades desse ramo e um dos K v ertices seleccionado. A componente para um ramo e = {u, v } E e: (u, e, 1):
:: :: :: :: (u, e, 2) :: (v, e, 2) :: :: :

com

DC

tem 14 ramos. Na constru c ao nal, os u nicos ertices e cada Ee Cada Ve tem 12 v v ertices desta componente que entraram noutros ramos s ao os v ertices (u, e, 1) ,(v, e, 1), (u, e, 6) e (v, e, 6). Isto implica que qualquer ciclo Hamiltoneano tem de de uma das seguintes maneiras: passar pelos ramos de Ee

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
(u, e, 3) (u, e, 4): (u, e, 6)

:: :: :: :: (u, e, 5) ::: (v, e, 5) :: ::

Ve = {(u, e, i), (v, e, i) : 1 i 6} {{(u, e, 6), (v, e, 4)}, {(v, e, 6), (u, e, 4)}}

Ee = {{(u, e, 3), (v, e, 1)}, {(v, e, 3), (u, e, 1)}}

CU P
(v, e, 1) (v, e, 3) (v, e, 4) (v, e, 6)

30

 
(u,e,1)

(u,e,1)

(u,e,6) 

44 44 44 44 44 44 4

(u,e,6) 

 

Cria-se um u nico caminho em G que inclui exactamente os v ertices da forma (v, y, z ):

C-F

Ramos adicionais ser ao usados na constru c ao para juntar pares de componentes de teste de cobertura ou para juntar componentes a um v ertice seleccionador. Para cada v V , ordenem-se os ramos incidentes ev[1] , ev[2] , . . . , ev[gr(v)] , onde gr (e) eo grau de v , isto e, o n umero de ramos que incidem em v . Todas as componentes de teste de cobertura correspondentes a estes ramos (tendo v como extremidade) s ao unidas pelos seguintes ramos:
Ev = {{(v, ev[i] , 6), (v, ev[i+1] , 1)} | 1 i gr (v )}

CU P
        
(v,e,1) 4 (u,e,1)

(a)

(b)

(c)

44 44 44 44 44 44 4

 

(v,e,6)

 

 (v,e,6)  

DC
I

onde I = (v, ev[1] , 1), F = (v, ev[gr(v)] , 6) e cada v ertice dessa linha e da forma (v, ev[i] , j ) para 1 j 6 e 1 i gr (v ). Finalmente, adicionam-se ramos para unir o primeiro e o u ltimo v ertice de cada um destes caminhos a todos os seleccionadores a1 , a2 , . . . , aK . Estes ramos s ao: E = {{ai , (v, ev [1], 1)}, {ai , (v, ev [gr (v )], 6)} | 1 i K, v V }

Notas e Exerc cios de Complexidade Universidade do Porto

31

O grafo G = (V , E ) e ent ao denido por: V = {ai | 1 i K } ( E

= (

eE

Inversamente, suponhamos V V uma cobertura por v ertices de G e |V | K . Podemos supor que |V | = K , pois podem sempre adicionar-se v ertices. Sejam v1 , . . . , vK os elementos de V . Escolhemos os ramos no ciclo Hamiltoneano de G da seguinte forma. Da componente de teste de cobertura representante de cada e = {u, v } E , escolher os ramos correspondentes a uma das tr es maneiras, (a), (b) ou (c), como podem ser percorridas, consoante {u, v } V e igual a {u}, {u, v } ou {v }. Note-se que uma dessas condi c oes tem de se vericar porque V e uma cobertura de G. Em seguida escolhe-se todos os ramos em Evi para 1 i K . Finalmente, os ramos: {ai , (vi , evi [1] , 1)} 1iK 1i<K

DC

Deixa-se ao leitor a verica c ao de que este conjunto de ramos corresponde a um ciclo Hamiltoneano.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
{ai+1 , (vi , evi [gr(vi )] , 6)} {a1 , (vK , evK [gr(vi )1] , 6)}

f d) E acil vericar que G pode ser constru do em tempo polinomial. Vejamos que G tem um ciclo Hamiltoneano se e s o se G tem uma cobertura por v ertices de tamanho no m aximo K . Suponhamos que < v1 , v2 , . . . , vn > onde n = |V | e um ciclo Hamiltoneano. Considere qualquer por c ao do ciclo que comece num v ertice de {a1 , a2 , . . . , aK }, termine num v ertice desse conjunto e que n ao passe por nenhum outro elemento desse conjunto. Dadas as restri c oes da forma como um ciclo Hamiltoneano pode passar por uma componente de teste de cobertura, esta por c ao do ciclo deve passar por um conjunto dessas componentes correspondentes exactamente aos ramos de E que incidem num v ertice particular v V . Cada componente e atravessada por um dos modos referidos e nenhum v ertice de outra componente e encontrado. Ent ao os K v ertices de {a1 , a2 , . . . , aK } dividem o ciclo Hamiltoneano em caminhos, cada um correspondente a um v ertice distinto v V . Dado que o ciclo Hamiltoneano deve incluir todos os v ertices de todas as componentes de teste de cobertura, e como os v ertices duma componente para e E s o podem ser atravessados por um caminho correspondente a uma extremidade de e, todos os ramos de E t em de ter uma extremidade nesse conjunto de K v ertices seleccionados. Ent ao, esse conjunto forma uma cobertura por v ertices de tamanho K para G.

CU P
Ve )})
eE Ee )

Ev )

vV

32

Exerc cio 3.0.6 Mostrar que os seguintes problemas s ao NP-completos: a) CLIQUE

e um grafo e V V ent ao V Sugest ao: VC CLIQUE, sabendo que se G = (V, E ) e uma cobertura por v ertices de G sse V \ V e um clique no grafo complementar de G, c c c c G onde G = (V, E ) e E = {(u, v ) : u, v V e (u, v ) E }. b) 4SAT Sugest ao: 3SAT 4SAT c) 3COLOR Sugest ao: 3SAT 3COLOR

Uma maneira simples de mostrar que um problema e NP-completo e obter uma restri c ao de que corresponda a um problema NP-completo, isto e, mostrando que cont em como caso especial um problema NP-completo.

Exemplo 4 SUBGRAFO ISOMORFO

Inst ancia: Dois grafos n ao dirigidos G = (V, E ) e G = (V , E ) Quest ao: G contem um subgrafo isomorfo a G , isto e,

V1 V, E1 E f : V V1 bijec ca o, tal que (a, b) E , (f (a), f (b)) E1 Se G for um grafo completo, este problema tem como restri ca o o problema do CLIQUE. Logo e NP-completo. Exerc cio 3.0.7 Mostrar por restri c ao que os seguintes problemas s ao NP-completos: a) Knapsack (Problema do saco de viagem) Inst ancia: Um conjunto nito U , s : U N (tamanho) e v : U N (valor), B N (tamanho m aximo) e K N (valor objectivo).
uU

DC

Quest ao: Existe um subconjunto U U tal que

C-F

c ao a PAR com u U, s(u) = v (u) e B = K = 1/2 Sugest ao: Restri

b) Caminho mais longo

Notas e Exerc cios de Complexidade Universidade do Porto

CU P
s(u) B e
uU uU

Exerc cio 3.0.5 [] Mostre que 3SAT 3DM e 3DM PAR. Sugest ao: Consulte [GJ79, Cap 3].

v (u) K ?

s(u).

33

Inst ancia: Um grafo G = (V, E ) e um inteiro positivo K |V | Quest ao: G tem um caminho de tamanho maior ou igual a K que n ao repete nenhum v ertice? Sugest ao: Restringir a HC com K = |V |. c) (X3C) Cobertura exacta

Inst ancia: Um conjunto X com |X | = 3q e uma colec c ao C de subconjuntos de X com 3 elementos. verdade que C cont Quest ao: E em uma cobertura exacta de X , isto e, uma sub colec c ao C C tal que cada elemento de X ocorre num e num s o elemento de C ? Sugest ao: Restringir a 3DM considerando M um conjunto desordenado W X Z . d) Conjuntos Disjuntos

Inst ancia: Dada a colec c ao C de conjuntos nitos e um inteiro positivo, K |C |. Quest ao: C cont em K conjuntos disjuntos?

A classe dos problemas NP-completos inclui muitos problemas para os quais se zeram muitos esfor cos para encontrar algoritmos polinomiais. O facto de que se um deles tiver um algoritmo polinomial todos os outros t em, torna-os os mais dif ceisda classe NP e refor ca a conjectura de que eles n ao pertencem classe P e portanto P = NP. Assim se se mostra que um novo problema e NP-completo n ao vale muito a pena procurar um algoritmo polinomial para ele mas sim tentar resolv e-lo por outros processos! Ao tentar provar que um dado problema e NP-completo duas coisas podem acontecer: a) n ao se conseguir provar que pertence a NP (um caso trivial e se o problema n ao e de decis ao). b) n ao se conseguir provar que e completo

DC

No primeiro caso podemos ainda conseguir provar que e completo, mostrando que esse problema se pode transformar polinomialmente num problema NP-completo - e sendo assim s o ser resolvido em tempo polinomial se P = NP. Neste caso o problema diz-se NP-hard ( e pelo menos t ao dif cil como os NP-completos). No segundo caso se se mostrar que e NP (mas n ao P) ent ao e um candidato da classe NP P NPC que chamaremos NPI problemas de diculdade interm edia. Teoricamente se P = NP mostra-se que esta classe e n ao vazia e que existe uma innidade de classes de equival encia entre P e NP.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

Cap tulo 4

Redu c ao de Turing e Problemas NP-hard

O problema com codica c ao c e sol uvel em tempo polinomial se existe uma TM polinomial que resolve R[, c]. Exerc cio 4.0.8 Identique uma linguagem L + com uma rela c ao bin aria em + . Conclua que um problema de decis ao e um problema de procura. Em termos de problemas, uma redu c ao polinomial de Turing dum problema num problema e um algoritmo determin stico A que resolve usando uma subrotina S que resolve

DC

Vamos denir uma forma mais geral de redutibilidade polinomial, que pode ser aplicada a uma classe mais geral de problemas: problemas de procura em que para cada inst ancia I , a resposta (em vez de ser apenas simou n ao) pode ser um elemento dum conjunto nito de solu c oes ou n ao(se o dito conjunto for vazio). Repare que esta classe cont em os problemas de decis ao e os problemas de optimiza c ao. Um problema de procura consiste num conjunto D de inst ancias, e para cada I D num conjunto nito S [I] de solu c oes de I . O problema tem solu c ao para a inst ancia I se S [I] = . Um algoritmo resolve o problema , se dado uma inst ancia I tem como resposta n ao se S [I] = ou se tem como sa da uma solu c ao s pertencente a S [I]. Por exemplo, o problema do caixeiro viajante tem como solu c oes todas as voltas de comprimento m nimo, e um algoritmo resolve o problema se para cada inst ancia indicar uma das poss veis solu c oes. Formalmente, dado um alfabeto um problema de procura vai corresponder a uma rela c ao + + bin aria em . A uma rela c ao bin aria R em pode-se associar uma fam lia de fun c oes + + + + f : tal que para todo x , f (x) = se n ao existe nenhum y tal que (x, y ) R ou f (x) = y se tal y existe. Diz-se que f realiza R. Uma TM M resolve R se a fun c ao fM calculada por M realiza R. Dado um problema de procura e uma codica c ao c sobre associ amos a rela c ao R[, c] denida por: R[, c] = {(x, y ) | x = c(I), I D e y = c(s), s S [I]}

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

35

Deni c ao 4.0.3 Uma m aquina de Turing com or aculo (OTM) corresponde a uma m aquina de Turing b asica O = (S, , , b, s0 , , F ) com as seguintes caracter sticas adicionais: possu uma ta adicional a ta de or aculo e uma cabe ca se escrita/leitura que opera nessa ta. o conjunto de estados S inclui dois estados especiais sc , estado de consulta do or aculo e sr , estado de continua ca o da computa ca o. A fun ca o de transi ca o e : S \ F {sc } S {l, r } {l, r }

Exerc cio 4.0.9 Descreva formalmente um passo de computa c ao duma OTM. Uma OTM O com fun c ao de or aculo g associada designa-se por Og . As no c oes de computa c ao, g fun c ao calculada fO e complexidade TOg (n) s ao denidas de modo id entico ao das TM b asicas. Deni c ao 4.0.4 Sejam R e R duas rela co es bin arias em . Uma redu c ao polinomial de Turing de R em R , R t R , e uma OTM O tal que para toda a fun ca o g : que g realiza R , Og e uma OTM polinomial e a fun ca o fO calculada por Og realiza R. Proposi c ao 4.0.6 A rela ca o t e transitiva. Exerc cio 4.0.10 Mostre a proposi c ao 4.0.6.

Proposi c ao 4.0.7 Se e s ao problemas de decis ao ent ao: = t

Dem. A transforma c ao F da redu c ao polinomial dene um algoritmo para resolver usando uma subrotina para resolver : dada uma inst ancia de , constr oi uma inst ancia F (X ) de , aplica a subrotina a F (X ) e tem como resultado a resposta dada pela subrotina (pois X tem solu c ao sse F (X ) tem solu c ao).

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Um passo de computa c ao duma OTM e an alogo ao de uma TM b asica (considerando as duas tas) excepto quando o controlo nito se encontra no estado sc . Neste estado, a computa c ao depende duma fun c ao de or aculo g : . Seja y a sequ encia de s mbolos nas c elulas de 1 a |y | da ta de or aculo e seja g(y ) = z . ent ao, num passo de computa c ao a ta de or aculo e modicada para conter a sequ encia z nas c elulas de 1 a |z | e brancos nas restantes c elulas. A cabe ca de or aculo ca a ler a c elula 1 e os estado passa a ser sr . A ta normal e sua cabe ca n ao s ao alteradas neste passo.

CU P

, e tal que se S e um algoritmo polinomial para ent ao A e um algoritmo polinomial para . Diz-se que e Turing redut vel a , e representa-se por t . Em termos de linguagens corresponde a existir uma m aquina de Turing determin stica com or aculo que reconhece em tempo polinomial.

36

Deni c ao 4.0.5 Uma rela ca o R e NP-hard se existe uma linguagem L NPC tal que L t R . Um problema de procura diz-se NP-hard se existe um problema NP-completo tal que t . Em particular, um problema de decis ao e NP-hard se NP, t e e NPcompleto se al em disso NP. Dado um problema de decis ao o seu complementar designa-se por c e e tal que Sc = D \ S . Exerc cio 4.0.12 Mostrar que dado um problema NP e o seu problema complementar c , se tem t c e vice-versa. Explique porque n ao parece para muitos problemas que se c possa ter . Pelo exerc cio anterior conclu mos que se e NP-completo ou NP-hard ent ao c e NPhard. Vimos que um problema de decis ao D n ao e mais dif cilque o correspondente de optimiza c ao O, vejamos que muitas vezes tamb em n ao e mais f acil! Isto e n ao s o D t O mas tamb em O t D. Se o problema D e NP-completo ent ao o problema de optimiza c ao O pode ser resolvido em tempo polinomial se e s o se P = NP. Exemplo 5 Consideremos o problema do caixeiro viajantemais uma vez... Comecemos por denir um problema interm edio: (TSE)

Inst ancia: Um conjunto C = {c1 , c2 , . . . , cm } de cidades, d : C C N dist ancia, B N e uma volta parcial =< c(1) , c(2) , . . . , c(k) > de k cidades distintas, 1 k m. Quest ao: Pode-se estender a uma volta completa < c(1) , c(2) , . . . , c(k) , c(k+1) , . . . c(m) > com comprimento total menor ou igual a B ?

DC

Este problema e NP (mostre!) e como TSP e completo, tem-se que TSE t TSP. Seja (TSO) o problema de optimiza ca o, resta ver que TSO t TSE e por transitividade vem TSO t TSP. Considerem-se inst ancias de TSE e TSO para C e d comuns. Suponhamos que S(C, d, , B) e uma subrotina que resolve TSE. Seja B a volta o ptima para essa inst ancia de TSO e su ponhamos que essa volta o ptima come ca em c1 . E o bvio que B tem como limite inferior BM IN = m e como limite superior BM AX = mx onde x = max{d(ci , cj ) | (ci , cj ) C C }. Podemos ent ao usar uma pesquisa bin aria para determinar B que chama S(C, d, < c1 >, B) para v arios valores de B , no m aximo log2 B vezes:

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

Exerc cio 4.0.11 Enuncie e demonstre a proposi c ao 4.0.7 em termos de linguagens, rela c oes e m aquinas de Turing com or aculo.

37

Conhecido B determina-se uma volta o ptima usando a subrotina S. Para isso constroemse sequ encias que possam ser estendidas a voltas o ptimas. Dado < c1 > e como e estend vel, existe cj C \ {c1 } tal que < c1 , cj > e uma volta parcial estend vel. Podemos encontrar cj no m aximo em m 2 chamadas a S[C, d, < c1 , ci >, B ]. Ent ao uma volta o ptima pode ser constru da usando S no m aximo (m 1)(m 2)/2 vezes. Considerando o comprimento dos dados, n = m + log2 BM AX , o algoritmo anterior fornece uma redu ca o polinomial de Turing entre TSO e TSE, como pretendido. Note-se que basta provar que um dado problema e Turingredut vel a um problema em NP para saber que ele n ao e mais dif cilque um problema NP-completo. Deni c ao 4.0.6 Um problema e NP-easy se existe um problema NP tal que t . Exerc cio 4.0.13 Mostrar que os problemas de optimiza c ao (ou de procura de solu c ao) associados com os seguintes problemas NP-completos s ao NP-easy: a) SAT b) VC c) HC

Conclu mos assim que a restri c ao feita aos problemas de decis ao na teoria apresentada n ao provocou perda de generalidade, pois a maior parte dos problemas cujos correspondentes de decis ao s ao NP-completos, s ao NP-easy e portanto s o ser ao resolvidos em tempo polinomial se P = NP !

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

B_MIN <- m; B_MAX <- mx enquanto B_MAX - B_MIN <> 1 fa ca{ B<- [(B_MAX + B_MIN )/2 ]; se S(C,d,<c >,B) = "sim" ent~ ao B_MAX<- B sen~ ao B_MIN <- B } B* <- B_MIN

Cap tulo 5

Estrutura das Classes de Problemas


5.1 Classe coNP e Estrutura de NP

Ou em termos de linguagens, dado um alfabeto :

Dado que existem muitos problemas em coNPque parecem n ao estar em NP, podemos conjecturar que NP = coNP. Note-se que se esta conjectura for verdadeira implica que P = NP. Porqu e? Como se viu P coNP NP. Na gura 5.1 tem-se a rela c ao entre estas classes. O resultado seguinte relaciona os problemas NP-completos com esta conjectura. Proposi c ao 5.1.1 Se existe um problema NP-completo , tal que c NP, ent ao NP = coNP.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
coNP = {c | NP}

A classe dos problemas P e fechada em rela c ao complementa c ao. Dado um problema de decis ao , o conjunto de solu c oes do problema complementar, c , corresponde ` as solu c oes cuja resposta para o problema e n ao. Se tem um algoritmo determin stico polinomial, um algoritmo para c obt em-se trocando as respostas simpor n ao(continuando a ser determin stico e polinomial). Como j a se viu, o mesmo n ao acontece com a classe dos problemas NP. Nem sempre se pode provar que se NP, ent ao c NP. Por exemplo, o complementar do problema de decis ao do caixeiro viajante (TSP) pode-se formular nos seguintes termos: Dado um conjunto de cidades, a dist ancia inter-cidades e um limite B , e verdade que n ao existe nenhum circuito por todas as cidades com comprimento menor ou igual a B ? A resposta a esta quest ao necessita da verica c ao de todos (ou quase todos) os circuitos correctos, o que n ao parece ser poss vel usando um algoritmo n ao-determin stico em tempo polinomial! Em termos formais, n ao parece que este problema tenha para cada inst ancia, uma testemunha concisa. Seja a classe

coNP = { \ L | L e L NP}

CU P

5.1 Classe coNP e Estrutura de NP

39

co-NP
INSAT

Figura 5.1: NPe coNP

Figura 5.2: Estrutura de NP Exerc cio 5.1.1 Mostre a proposi c ao 5.1.1.

Se P = NP e NP = coNP a estrutura para NP e a apresentada na gura 5.1. Exerc cio 5.1.2 Considere o problema complementar de 3SAT: 3SATc

Inst ancia: Um conjunto U de vari aveis l ogicas e um conjunto C de cl ausulas, cada uma com 3 literais. Quest ao: N ao existe nenhuma atribui c ao de valores de verdade ` as vari aveis que satisfa ca C ? Mostre que se tiv essemos um algoritmo polinomial para decidir este problema, todos os problemas de NP poderiam ser decididos polinomialmente. Comente em rela c ao completitude desse problema. O resultado da proposi c ao 5.1.1 permite ainda encontrar um forte candidato classe NPI (ou ent ao a P): o problema de determinar se um dado inteiro e composto. (COMPOSTO)

Inst ancia: Um n umero inteiro K > 1

Quest ao: Existem inteiros m, n > 1 tais que K = mn? O seu problema complementar e

(PRIMOS)

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P
PRIME

NP

SAT

2SAT ORD

3SAT

5.2 Hierarquia polinomial

40

Inst ancia: Um n umero inteiro K Quest ao: K e primo?

Tanto o problema (COMPOSTO) como o complementar, o problema (PRIMOS) pertencem a NP. Nenhum destes problemas pode ser NP-completo a menos que NP = coNP. Assim, se n ao existir nenhum algoritmo polinomial que os resolva, pertencem a NPI(=NP P NPC). Mais ainda, estes problemas podem ser resolvidos por algoritmos polinomiais, mas que podem falhar com probabilidade arbitrariamente pequena... Nestas circunst ancias podemos conjecturar que = N P coNP! Um problema que contribuiupara esta conjectura foi o da Programa c ao Linear(LP) que durante muitos anos esteve nas condi c oes do problema dos n umeros compostos mas para o qual j a se provou a exist encia dum algoritmo polinomial... Exerc cio 5.1.3 Mostre que (COMPOSTO) NP.

Para uma demonstra c ao que (PRIMOS) pertence a NP, ver [Pap94, Cap. 10] ou [Pra75].

5.2

Hierarquia polinomial

Exemplo 6 (EME)

Inst ancia: Uma express ao booleana E com literais num conjunto de vari aveis U , constantes V e F e conectivas l ogicas , , e = . E ainda, K N. Quest ao: Existe uma express ao booleana E com K ou menos literais e tal que E e equivalente a E ? Este problema e NP-hard porque SAT t EME (Verique!). No entanto, n ao parece f acil mostrar que ele e Turing redut vel a um problema de NP. Contudo, usando um algoritmo n ao-determin stico com um or aculopodemos reduzir este problema ao problema da satisfa ca o de express oes booleanas: (SBE)

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Nesta sec c ao vamos estudar problemas de decis ao que s ao NP-hard mas que parecem n ao ser NP-easy. Podemos generalizar a no c ao de redu c ao de Turing permitindo que o algoritmo usado seja n ao-determin stico, o que equivale, em termos de linguagens, a considerar m aquinas de Turing n ao-determin sticas com or aculo. Temos por uma lado uma escolha e por outro uma consulta ao or aculo. Dados dois problemas e , se existir um algoritmo n ao-determin stico N polinomial que resolva usando uma subrotina que resolva , indica-se t . Vamos ver um problema que e NP-hard mas que n ao parece ser NP-easy e para o qual N se pode encontrar uma redu c ao t .

CU P

5.2 Hierarquia polinomial

41

Quest ao: Existe uma atribui ca o de valores de verdade a U que satisfaz E ?

Este problema cont em em particular o problema SAT, portanto e NP-completo. Seja uma inst ancia de EME com dados U , E e K , suponha-se BK o conjunto das express oes booleanas com K ou menos literais e seja, ainda, S[E,U] uma subrotina que resolve SBE. O seguinte algoritmo estabelece a redu ca o, EME N t SBE: E<- escolha(B_K) se S[~((E=>E)/\(E=>E)),U] = "n~ ao" ent~ ao sucesso sen~ ao insucesso

Conclu mos ent ao que EME pertence a uma classe mais ampla de problemas aparentemente mais dif ceisdo que os da classe NP. As classes PY e NPY s ao denidas do modo seguinte:

PY = {L | L Y e L t L }

PNP e a classe dos problemas a que chamamos anteriormente NP-easy. O problema EME pertence a NPNP . Exerc cio 5.2.1 EE (i) Mostre que o seguinte problema e coNP.

Inst ancia: Duas express oes booleanas E e E com literais num conjunto de vari aveis U , constantes V e F e conectivas l ogicas , , e = . Quest ao: E e E s ao equivalentes?

(ii) Conclua, novamente, que EME NPNP usando a al nea anterior. Se P = NP a gura 5.3 mostra a rela c ao entre as classes P, NP, coNP, PNP e NPNP . Este processo de denir novas classes pode ser estendido indenidamente, produzindo classes de diculdade aparentemente crescente, [MS72]. Esta hierarquia de classes chama-se hierarquia polinomial e e denida do seguinte modo:

DC
p 0 p k+ 1 p k+ 1 p k+ 1 = = = =

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

NPY = {L | L Y e L N t L}

p = p 0 0 = P p k P p NPk cop k+ 1

CU P

Inst ancia: Uma express ao booleana E com literais num conjunto de vari aveis U , constantes V e F e conectivas l ogicas , , e = .

5.2 Hierarquia polinomial

42

Figura 5.3: Classes P, NP, coNP, PNP e NPNP

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
Figura 5.4: Hierarquia Polinomial

CU P

5.2 Hierarquia polinomial

43

L P se e s o se existe R1 reconhec vel polinomialmente tal que L = {x | R1 (x)} L NP se e s o se existe R2 reconhec vel polinomialmente e uma fun c ao polinomial p tal que L = {x | y, |y | p(|x|) e R2 (x, y )}
c reconhec L coNP se e s o se existe R2 vel polinomialmente e uma fun c ao c polinomial p tal que L = {x | y, |y | p(|x|) e R2 (x, y )}

Teorema 5.2.1 Seja L uma linguagem sobre um alfabeto e(|| 2). Para todo k 1 L p o se existem fun co es polinomiais p1 , . . . , pk e uma rela ca o R reconhecida em k se e s tempo polinomial tal que: x L sse y1 |y1 | p1 (|x|) ...

onde Q em yk e ou consoante k e mpar ou par.

As classes p em podem ser caracterizadas de modo an alogo, bastando no teorema k tamb 5.2.1 tocar todos os quanticadores por e vice-versa. Corol ario 5.2.1 Seja L uma linguagem sobre um alfabeto e (|| 2) e i 1. L p o se existe uma rela ca o reconhecida em tempo polinomial tal que a linguagem k se e s {< x, y >| R(x, y )} p e existe p tal que L = {x | y, |y | p(|x|) e R(x, y )}. k 1

DC

Usando o teorema 5.2.1 para provar que EME p c ao R, com 2 , considere-se a rela R(x, y1 , y2 ) se e s o se x e < E, K > (inst ancia) onde E e uma express ao booleana e K N, y1 e uma express ao booleana E com no m aximo K literais, e y2 e uma atribui c ao de valores as vari ` aveis t : U {0, 1} que satisfaz E E .

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
y2 |y2 | p2 (|x|) R(x, y1 , . . . , yk )

O teorema seguinte e de [Wra76]:

Qyk |yk | pk (|x|)

CU P

p p P Em particular, p 1 = NP = NP, 1 = coNP e 1 = P. Como se viu EME pertence p p p a p ao se saiba se p c ao de 2 , embora n 1 = 2 , ou se existe k 0 tal que k = k+1 . A rela inclus ao entre as v arias classes e dada pelo diagrama da gura 5.4. Para um dado problema de decis ao , como situ a-lo na hierarquia? Vamos apresentar um resultado que permite determinar um majorante do menor k tal que p k. Recordemos que um problema est a em NPse tiver uma testemunha concisa. Esta no c ao pode ser estendida para qualquer problema de decis ao , isto e, qualquer linguagem L. Dado um alfabeto uma rela c ao k- aria em e reconhecida em tempo polinomial se existir uma TM que reconhece precisamente os tuplos (x1 , . . . , xk ) R, isto e, tal que R(x1 , . . . , xk ) se verica. Podemos ent ao dizer que:

5.2 Hierarquia polinomial

44

A no c ao de completitude pode ser denida para cada k e para cada um dos tipos de classes da hierarquia, caracterizando os problemas mais dif ceisde cada classe. Para cada p classe e poss vel construir um problema k -completo e portanto torna-se mais f acil provar completitude de outros problemas. Na pr atica s o se conhecem alguns problemas (al em dos constru dos teoricamente) candip p p p datos a 2 \ (1 1 ) ou mesmo 2 -completos. Um resultado interessante em rela c ao a esta hierarquia e o seguinte:
p p p Proposi c ao 5.2.1 Se para algum k, p ao p k = k ent j = j = k para todo o j k .

p p Exerc cio 5.2.2 Mostrar a proposi ca o 5.2.1. Sugest ao: Mostre que p k = k implica k+1 = p k.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Isto e, a hierarquia pode colapsar a partir de certa ordem e portanto n ao ser innita. Em p p p particular, se P = NP, ent ao j = P, para todo j 0. Se 0 = k para algum k > 0, ent ao P = NP. Temos ent ao que qualquer problema da hierarquia s o pode ser resolvido em tempo polinomial se e s o se P = NP (e portanto embora possa n ao ser NP-easy na pr atica tem as mesmas consequ encias!). Contudo, o estudo destas classes pode ajudar a estabelecer a conjectura de que P = NP.

CU P

Corol ario 5.2.2 Seja L uma linguagem sobre um alfabeto e (|| 2) e i 1. L p o se existe uma rela ca o reconhecida em tempo polinomial tal que a linguagem k se e s p {< x, y >| R(x, y )} k1 e existe p tal que L = {x | y, |y | p(|x|) e R(x, y )}.

Cap tulo 6

Exerc cios de Revis ao sobre Classes de Complexidade


6.0.1 Ordens de Grandeza

Nesta sec c ao s ao revistas algumas no c oes sobre ordens de grandeza de fun c oes (reais). Deni c ao 6.0.1 Sendo f : N R e g : N R 1. f (n) e O(g(n) se

(diz-se que f e da ordem de g, isto e, f cresce como g ou mais lentamente) 2. f (n) e (g(n)) se g(n) e O(f (n))

3. f (n) e (g(n)) se f (n) e O(g(n)) e g(n) e O(f (n)) 4. f (n) e o(g(n)) se limn
f (n) g (n)

Se f (n) e O(p(n)) e p(n) e uma fun c ao polinomial ent ao diz-se que f (n) e de ordem polinomial. Teorema 6.0.2 Se f (n) e o(g(n)) ent ao f (n) e O(g(n)). Exerc cio 6.0.3 Mostre o teorema anterior.

Exerc cio 6.0.4 Mostre as seguintes igualdades: (i) f (n) = O(f (n))

(ii) c.O(f (n)) = O(f (n)) para qualquer c constante (iii) O(f (n) + g(n)) = O(f (n)) + O(g(n)) (iv) O(O(f (n))) = O(f (n))

(v) O(f (n))O(g(n)) = O(f (n)g(n))

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

c R+ mn m | f (n) | c | g(n) |

= 0, isto e, g(n) cresce mais rapidamente do que f (n).

CU P

6.1 Codica co es Razo aveis

46

(vi) O(f (n))g(n) = f (n)O(g(n)) Exerc cio 6.0.5 Mostre que:

(i) am nm + . . . + a0 e (nm ), para am > 0. Sugest ao: Para mostrar que e (nm ) considere 2 c = am e n0 = mh com h = (2/am )max(|am1 |, . . . , |a0 |) (ii) n e o(n ), se 0 < .

(iii) n e o( n ), se > 1. Conclua que para qualquer polin omio p(n) e > 1, p(n) e n ao do bin omio de Newton. O( ).Sugest ao: Considere = (1 + ) e a expans (iv) para qualquer polin omlio p(n) e constante c existe um inteiro n0 tal que, n > n0 , 2cn > 1 p(n). Calcule esse n0 para n2 e c = 1 e para 100n100 e c = 100 . Conclua que p(n) n ao e n (c ), c > 1 (v) log n e O(n) e o(n ), > 0

(vi) a, b > 1, loga n e (logb ). Sugest ao: Recorde que para n > 0, loga n e y tal que ay = n. (vii) > 1, n e o(n!)

Exerc cio 6.0.7 Sendo f (n) e g(n) qualquer par de fun c oes a seguir apresentadas, determine se f (n) e O(g(n)), f (n) e (g(n)) ou f (n) e (g(n)) n2 n3 nlog n 2n nn 22
n

6.1

Codica c oes Razo aveis

Deni c ao 6.1.1 Duas codica co es c1 e c2 , dizem-se polinomialmente relacionadas, se exis tem polin omios p e p tal que, sendo x1 e x2 as representa co es dum mesmo objecto x, respec tivamente em c1 e c2 , se tem | x1 | p(| x2 |) e | x2 | p (| x1 |). Exerc cio 6.1.1 Considere o problema de codicar um inteiro n ao-negativo m numa base b 2. Mostre que (i) os comprimentos das codica co es em bases diferentes est ao polinomialmente (at e linearmente, O(n)) relacionadas entre si. (ii) a codica c ao em un ario n ao est a polinomialmente relacionada com a codica c ao numa base b 2 Exerc cio 6.1.2 Considere o problema de codicar um grafo n ao dirigido G = (V, E ). Dois processos s ao: matriz de adjac encias representada por | V |2 bits

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Exerc cio 6.0.6 Mostre que e uma rela c ao de equival encia.

CU P

6.2 Classes de Complexidade e NP-completitude

47

(i) Dena mais rigorosamente as codica c oes mencionadas (ii) D e exemplo de um grafo codicado das duas formas

(iii) Mostre que os comprimentos das duas codica c oes est ao polinomialmente (quadraticamente) relacionados entre si Exerc cio 6.1.3 Supondo o alfabeto = {0, 1, , [, ], (, ), , } invente uma codica c ao gen erica para representar um inteiro em bin ario

a refer encia ao n- esimo elemento dum conjunto, sequ encia, etc. . . uma sequ encia de elementos

Usando as coca c oes anteriores diga como representar: um conjunto (nito) de objectos, um grafo, uma fun c ao nita e um n umero racional.

6.2

Classes de Complexidade e NP-completitude

Exerc cio 6.2.1 Caminhos Hamiltonianos Sejam respectivamente HPN e HPE os problemas de decis ao exist encia de um caminho hamiltoniano qualquer (entre v ertices distintos) e exist encia de um caminho hamiltoniano entre dois v ertices (distintos) especicados. Note que, no primeiro caso, uma inst ancia e um grafo n ao dirigido G = (V, E ) enquanto no segundo caso uma inst ancia e da forma G = (V, E )/x/y onde G e um grafo n ao dirigido e x, y V s ao os v ertices especicados. 1. Mostra que HPE HPN 2. Mostra que HPN HPE

(n-COLOR)

Inst ancia: Um grafo dirigido G = (V, E ). poss Quest ao: E vel colorir G com n cores, isto e, existe uma fun c ao f : V {1, , n}

DC

Exerc cio 6.2.2 Colorir grafos Considera os seguintes problemas de decis ao a que chamamos C (n) (onde, para cada problema n e xo):

tal que sempre que (a, b) E e f (a) = f (b)?

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

lista de ramos: a cad vertice associar a lista dos pontos de chegada dos ramos que dele partem

6.2 Classes de Complexidade e NP-completitude

48

(i) Mostra que C (1) e C (2) pertencem ` a classe P . (ii) Supondo que se sabe que C (3) e NP-completo mostra que C (4) tamb em e NP-completo. Um m etodo consiste em mostrar que C (4) e NPe que C (3) C (4). (iii) Supondo que se sabe que C (3) e NP-completo mostra que C (n) e NP-completo para todo o n 3. Exerc cio 6.2.3 Acabas de demonstrar que um determinado problema e NP-completo. Qual o signicado pr atico dessa descoberta? Podemos concluir que todos os algoritmos para resolver s ao quase in uteis uma vez que v ao demorar um tempo exponencial? Exerc cio 6.2.4 Caminhos entre 2 v ertices de um grafo Considera um grafo n ao dirigido G(V, E ) e dois v ertices xos a e b de V .

1. Mostra que o n umero de caminhos simples e distintos entre a e b pode ser exponencial no tamanho do grafo por exemplo em max(|V |, |E |). Nota: um caminho diz-se simples quando n ao passa mais que uma vez por cada n o (n ao tem ciclos). Dois caminhos s ao distintos quando t em pelo menos um v ertice diferente. Sugest ao 1: Considera um grafo completo de n n os. Sugest ao 2: Considera um grafo quadriculado de n por n, dois v ertices opostos (na diagonal) e os caminhos entre eles que progridem sempre no sentido da diagonal. 2. Considera o problema do caminho mais longo: (CML)

Inst ancia: G(V, E ), a V , b V , com a = b e inteiro k.

Quest ao: Existe um caminho simples entre a e b de comprimento maior ou igual a k? Mostra que CML e NP-completo. Nota: Existem algoritmos polinomiais como o de Dijkstra e o de Floyd para o problema do caminho mais curto. 3. Classica os problemas de decis ao correspondentes ` as quest oes indicadas; a inst ancia e sempre um grafo dirigido G(V, E ), a V , b V com a = b e k (todavia, para os 2 u ltimos problemas a inst ancia n ao cont em k). Podes usar os resultados mencionados (ou cuja demonstra c ao e proposta) nas al neas anteriores; estes resultados s ao tamb em v alidos em grafos dirigidos.

DC

(a) Todos os caminhos entre a e b t em comprimento maior ou igual a k. (c) Todos os caminhos simples entre a e b t em comprimento menor ou igual a k.

(b) Todos os caminhos entre a e b t em comprimento menor ou igual a k. (d) Existe um caminho de comprimento menor que k. (e) Existe um caminho de comprimento maior que k.

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

6.2 Classes de Complexidade e NP-completitude

49

(f) N ao existe nenhum caminho entre a e b. (g) Existem caminhos de comprimento arbitrariamente grande entre a e b? Exerc cio 6.2.5 Considera o seguinte problema de decis ao: (IC)(Implica ca o de Cl ausulas)

Inst ancia: Conjuntos de cl ausulas C1 e C2 com vari aveis l ogicas de um conjunto U .

Quest ao: C1 implica C2 ? Por outras palavras: C2 tem o valor l ogico verdade sempre que C1 tiver o valor l ogico verdade? (i) Descreve de forma resumida e utilizando uma linguagem de alto n vel um algoritmo determin stico que resolve (IC). O algoritmo e polinomial ou exponencial? (ii) A que classe de complexidade pertence IC? Porqu e? (iii) (PCE)(Poucas Cl ausulas Equivalentes)

Inst ancia: Conjunto de cl ausulas C , conjunto U de vari aveis l ogicas e inteiro positivo k.

Escreve o que descobrires sobre a classe de complexidade a que pertence PEC. Exerc cio 6.2.6 Considera uma m aquina de Turing M , uma palavra x e um inteiro positivo t. Diz se e poss vel exprimir em cl ausulas (eventualmente dependentes de M , x e t) os seguintes factos por forma que as cl ausulas sejam satisfaz veis se e s o se os factos forem verdadeiros. 1. A m aquina M com os dados x p ara em n ao mais de t passos. 2. A m aquina M com os dados x p ara (num n umero qualquer de passos). 3. A m aquina M com os dados x n ao p ara.

(EL)

Inst ancia: Um conjunto U de vari aveis l ogicas e 2 express oes l ogicas E1 e E2 com vari aveis em U . Quest ao: E1 e E2 s ao equivalentes?, isto e, t em o mesmo valor l ogico para todas as atribui c oes de valores l ogicos ` as vari aveis de U ?

DC

Exerc cio 6.2.7 Considera o problema EL da equival encia de 2 express oes l ogicas que podem conter vari aveis proposicionais, vari aveis proposicionais negadas e as conectivas e :

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

Quest ao: Existe um conjunto C de k ou menos cl ausulas utilizando vari aveis de U que seja equivalente a C (isto e, tal que C e C tenham o mesmo valor l ogico qualquer que seja a atribui c ao de valores l ogicos ` as vari aveis de U )?

CU P

6.2 Classes de Complexidade e NP-completitude

50

Exemplo: (i) Considera as seguintes arma c oes com as quais se pretende mostrar a diculdade de resolver EL. Comenta-as devidamente. (a) EL e NP-completo porque nunca ningu em conseguiu um algoritmo polinomial para o resolver. (b) EL e NPporque n ao existe nenhum algoritmo polinomial para o resolver. (c) EL e NP-completo porque se conseguissemos resolver EL em tempo polinomial tamb em era poss vel resolver SAT em tempo polinomial pois uma inst ancia (U, C ) de SAT e satisfaz vel se e s o se a inst ancia de EL U , E1 = Ec , E2 = (un un )

n ao tiver solu c ao, onde U = U {un }, un e uma nova vari avel e Ec e a express ao l ogica correspondente ao conjunto C de cl ausulas (conjun c ao de disjun c oes). (ii) Determina a classe de complexidade a que de facto pertence EL.

poss 1. E vel arrumar todos os objectos numa mala, isto e,

C-F

Exerc cio 6.2.8 Classica o mais exactamente poss vel os seguintes problemas. Justica. Em todos eles e dada uma colec c ao C de k objectos com tamanhos inteiros t1 , t2 , . . . , tk e um tamanho (inteiro) da mala t, sendo ti t para 1 1 k. Repara que um mesmo problema pode pertencer simult aneamente a v arias classes, por exemplo ser decidivel, NPe P; a u ltima caracteriza c ao e a mais exacta.
k i=1 ti

2. Dado (tamb em) m pergunta-se e poss vel arrumar todos os objectos em n ao mais de m malas? 3. Dado (tamb em) m pergunta-se: Todas as arruma c oes exigem pelo menos m malas? 4. Qual o menor n umero de malas em que e poss vel arrumar todos os objectos? 5. Dados (tamb em) m e c pergunta-se: todos os subconjuntos de C com c objectos podem ser arrumados em n ao mais de m malas? 6. Dados (tamb em) m, tm e c pergunta-se: todos os subconjuntos de C com c objectos cuja soma dos tamanhos e pelo menos tm podem ser arrumados em n ao mais de m malas? Exerc cio 6.2.9 Considera o problema de decis ao do (CLIQUE) que se sabe ser NP completo. 1. O correspondente problema de optimiza c ao e o seguinte: dado um grafo n ao dirigido, qual o tamanho do maior clique que ele possui? Mostra que se existisse um algoritmo polinomial para o problema de decis ao ent ao tamb em existia um algoritmo polinomial para o de optimiza c ao (o rec proco e evidente).

DC

Notas e Exerc cios de Complexidade Universidade do Porto

CU P
t?

U = {u1 , u2 }, E1 = (u1 u2 ) (u1 u2 ), E2 = u1 u1 ,

6.2 Classes de Complexidade e NP-completitude

51

(a) Dado G e k pergunta-se: G tem dois (ou mais) cliques disjuntos de tamanho n ao inferior a k? (b) Dado G pergunta-se: G tem um clique de ordem 22? (c) Dado G pergunta-se: n ao ter a G um clique de ordem 22?

(d) Dados G1 e G2 pergunta-se: existe em G1 um subgrafo isomorfo a G2 ?

(e) Dados G1 e G2 pergunta-se: n ao ter a G1 nenhum subgrafo isomorfo a G2 ?

(f) Dado G e k pergunta-se: existe um subconjunto com um m aximo de k v ertices tal que todo o ramo tem (pelo menos) uma extremidade que e um v ertice desse subconjunto? Exerc cio 6.2.10 Considere um problema de decis ao cuja inst ancia e (A, k) sendo k um inteiro n ao negativo e cuja pergunta e P (A, k)? (P e uma proposi c ao). No correspondente problema de optimiza c ao pergunta-se qual o m aximo k tal que P (A, k)?. Supomos que se verica a seguinte condi c ao: sempre que existe solu c ao para um determinado valor de k, existe solu c ao para todos os k tal que 0 k k. 1. Mostra que se existir um algoritmo polinomial para o problema de optimiza c ao ent ao tamb em existe um algoritmo polinomial para o problema da decis ao. 2. Mostra que em condi c oes bastante gerais o inverso (da al nea anterior) tamb em e vervel exist encia de um majorante de k. dadeiro. Sugest ao: considera a poss 3. Exemplica os resultados anteriores para o problema do clique. Exerc cio 6.2.11 A Hierarquia cresce Mostra que, para todo o k 0 e

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F
p p p k k +1 k +1

CU P

2. Classica os seguintes problemas de decis ao utilizando apenas a informa c ao de que o problema do (CLIQUE) e NPcompleto.

Bibliograa
[BC94]

Daniel P. Bovet and Pierluigi Crescenzi, Introduction to the theory of complexity, Prentice Hall, 1994. Josep D az Balc azar, Jos e Luis and Joaquim Gabarr o, Structural complexity i, Springer Verlag, 1989. , Structural complexity ii, Springer Verlag, 1990.

[BG89]

[BG90] [Coo71]

S. A. Cook, The complexity of theorem proving procedures, Proc. 3rd Annual ACM Symposium on Theory of Computing (Association for Computing Machinery, ed.), 1971. Michael Garey and David Johnson, Computers and intractability: a guide to the theory of np-completeness, W.H. Freeman and Company, 1979. John E. Hopcroft and Jerey D. Ullman, Introduction to automata theory, languages and computation, Addison Wesley, 1979. L. J.Stockmeyer, The polynomial-time hierarchy, Theoretical Computer Science 3 (1976), 122. R. M. Karp, Reducibility among combinatorial problems, Complexity of Computer Computations (R. E. Miller and J. W. Tatcher, eds.), Plenum Press, 1972, pp. 85 103. Harry R. Lewis and Christos H. Papadimitriou, Elements of the theory of computation, Prentice Hall, 1981. Ming Li and Paul M. B. Vit` anyi, Kolmogorov complexity and its applications, Handbook of Theoretical Computer Science (J. van Leewen, ed.), vol. A, Elsevier Science Publishers, 1990, pp. 188254.

[GJ79]

[HU79]

[J.S76]

[Kar72]

[LP81]

[LV90]

[Mat95a] Armando B. Matos, Algoritmos probal sticos algumas notas, Tech. report, Faculdade de Ci encias da Universidade do Porto, 1995. [Mat95b] , Entropia, algoritmos e complexidade m nima, Tech. report, Faculdade de Ci encias da Universidade do Porto, 1995.

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

BIBLIOGRAFIA

53

[Min74] [MS72]

M. Minsky, Finite and innite machines, Addison Wesley, 1974. A. R. Meyer and L. J. Stockmeyer, The equivalence problem for regular expressions with squaring requires exponential time, Proceedings of the 13th Annual Symp. on switching and Automata Theory, IEEE Computer Society, 1972, pp. 125129. Christos H. Papadimitriou, Computational complexity, Addison Wesley, 1994.

[Pap94] [Pra75]

Vaughan Pratt, Every prime has a succinct certicate, SIAM J. Computation 4 (1975), no. 3, 214220. C. Wrathall, Complete sets and the polynomial-time hierarchy, Theoretical Computer Science 3 (1976), 2333.

[Wra76]

DC

Notas e Exerc cios de Complexidade Universidade do Porto

C-F

CU P

You might also like