Escolar Documentos
Profissional Documentos
Cultura Documentos
CLASSES DE COMPLEXIDADE
Dado um modelo de computao, ex: Maquinas de Turing [com
fita mltipla]
O consumo de recurso pode depender do tipo de mquina.
Exemplo: L = {ww| w {0,1}*}, ento L= (n) em MT com
fita mltipla, mas (n2) em MT com fita nica. Para
consumo polinomial ou maior o tipo de mquina no
importa.
Dado se a mquina de Turing determinstica ou no
Dado um recurso, como tempo ou espao.
Dada uma funo f(n): , montona no decrescente, para
qual uma mquina de Turing M possa dar como sada 1f(n) em
tempo O(n+f(n) ) e espao O(f(n)). (f proper complexity
function)
Podemos definir as classes de complexidade SPACE(f(n)),
TIME(f(n)), NSPACE(f(n)) e NTIME(f(n))
CLASSES DE COMPLEXIDADE
Classe de Complexidade
Algumas propriedades:
SPACE(f(n)) NSPACE(f(n))
TIME(f(n)) NTIME(f(n))
NTIME(f(n)) SPACE(f(n))
NSPACE(f(n)) TIME (klog(n)+f(n))
Teorema de Savitch
PSPACE = NPSPACE
EXPSPACE = NEXPSPACE
Uwaterloo mantm o
Complexity Zoo com 496
classes de complexidade em
JUL 2015
DTIME(f(n))
Modelo de computao
Recurso
Tempo O(f(n))
MTD
EXPTIME
MTD
(2 )
NTIME(f(n))
NP
MTND
NEXPTIME
MTND
(2 )
DSPACE(f(n))
L
MTD
Espao O(f(n))
MTD
Espao O(log n)
PSPACE
MTD
EXPSPACE
MTD
(2 )
NSPACE(f(n))
NL
MTND
Espao f(n)
MTND
Espao O(log n)
NPSPACE
MTND
NEXPSPACE
MTND
(2 )
Classe NP
CLASSE NP
A classe NP a classe dos
problemas que consomem tempo
polinomial em uma MTND
Classe de
Complexidade
Modelo de
computao
DTIME(f(n))
MTD
MTD
NTIME(f(n))
MTND
NP
MTND
Recurso
Tempo O(f(n))
(
Tempo O(f(n))
Exemplos:
Distncia no grafo (est em P e obviamente P NP)
Fatorao de inteiros (est em NP mas no sabemos se est em
P)
SAT (se uma frmula do clculo proposicional Satisfazvel)
CLASSE NP
Como fazer uma MTND para fatorar inteiros em tempo
polinomial?
Agora que existe o algoritmo determinstico AKS (2002) para
testar primalidade bem mais fcil faz-lo.
Dado um inteiro m de representao n = |m| = O(log m),
podemos fazer uma MTND que:
1. adivinhe um total de at log
inteiros entre 2 e
!
verdade so conhecidos algoritmos mais rpidos como SchnhageStrassen (1971), O(n log n log log n). E ainda h algoritmos
mais recente mais rpido.
CLASSE NP
A ideia de usar uma fase no determinstica da MTND para gerar
um dado de tamanho polinomial e depois trabalhar
deterministicamente geral o bastante para caracterizar NP.
Um relao binria R sobre * dita:
1. Polinomialmente decidvel LR = {x;y | (x,y)R} P.
2. Polinomialmente balanceada k((x,y)R |x|=O(|y|k))
Fato: L * NP R, R polinomialmente decidvel e
balanceada, tal que L = { x | y (x,y) R}
CLASSE NP
A ideia de usar uma fase no determinstica da MTND para gerar
um dado de tamanho polinomial e depois trabalhar
deterministicamente geral o bastante para caracterizar NP.
Um relao binria R sobre * dita:
1. Polinomialmente decidvel LR = {x;y | (x,y)R} P.
2. Polinomialmente balanceada k((x,y)R |y|=O(|x|k))
Fato: L * NP R, R polinomialmente decidvel e
balanceada, tal que L = { x | y (x,y) R}
Neste caso chamamos y de certificado. Algo que podemos testar
rapidamente para verificar se xL, por exemplo no caso de
verificar se uma frmula proposicional satisfazvel, o certificado
pode ser uma atribuio.
CLASSE NP
L * NP R, R polinomialmente decidvel e balanceada, tal
que L = { x | y (x,y) R}
Prova : Supondo L = { x | y (x,y) R}, crio uma MTND M que
recebe x como entrada e:
1. Adivinha um y, como R polinomialmente balanceada, isso
pode ser feito em tempo O(|x|k)
2. Verifica polinomialmente se (x,y) R. Como R
polinomialmente decidvel isso polinomial em |x|.
Como T(M)= L temos que L NP.
Prova : Supondo L NP, existe uma MTND tal que recebe x
como entrada e T(M)=L.
1. Definimos R como os pares (x,Cook*(M,x))
2. Claramente R pol. balanceada e decidvel.
Por construo de R, L = { x | y (x,y) R}
*Isso
CLASSE NP
Vimos alguns problema na classe NP. Na prxima seo veremos
mais alguns problemas especiais na classe NP, os NP-completos,
os quais podem ser usados para resolver qualquer outro problema
em NP (a menos de transformao polinomial).
A tese de Cobham (ou CobhamEdmonds) afirma que um
problema tratvel, ou factivelmente computvel, se e somente
computvel em tempo polinomial.
Da a importncia de se resolver a conjectura PNP.
NP-completude
SAT
O problema SAT consiste em determinar se uma
determinada frmula satisfazvel.
Exemplo:
= (p1 p2)(p1 p2)
SAT
SAT NP.
= (p1 p2)(p1 p2)
i) Um certificado ser uma atribuio, uma linha da
tabela verdade, por exemplo: p1=1 e p2=0.
ii) Podemos parsear e coloc-la na forma de rvore
em tempo linear:
p1
p2
"#
"$
TEOREMA DE COOK-LEVIN
SAT NP-difcil. Um problema NP-difcil se qualquer
problema em NP pode ser reduzido a ele.
Se um problema est em NP e NP-difcil chamamos o
problema de NP-completo.
SAT NP-completo. [Stephen Cook, 1971] [Ind. p/ Leonid
Levin]
Suponha que que uma mquina de Turing no determinstica
M reconhea a linguagem L em tempo p(n), ou seja LNP.
Significado
Qtd
Ti,j,k
O(p(n)2)
Hi,k
O(p(n)2)
Qq,k
O(p(n))
Frmula
Ti,wi ,0
Ti,B ,0
Qs,0
H0,0
Ti,j,k Ti,j,k
j Ti,j,k
Condio
Se i |w|
Se i >|w|
j j
j j
Significado
O(n)
O(p(n))
1
1
O(p(n)2)
O(p(n)2)
O(p(n)2)
q q
S um estado por vez
Qq,k Qq,k
i i
S um posio da cabea por vez
Hi,k Hi,k
(Hi,k Qq,k Ti,,k) (q, , q, , d) (Hi+d,k+1 Qq,k+1 Ti,,k+1) para
k<p(n). Implementa .
0kp(n) f F Qf,k
Qtd
O(p(n))
O(p(n)3)
O(p(n)2)
1
SAT
M reconhece L em tempo p(n), ou seja LNP e w*.
Podemos construir, em tempo polinomial O(p(n)3) uma frmula tal que:
SAT(w) wL
Isso significa se existir um algoritmo polinomial q(n) para SAT podemos
implementar o seguinte algoritmo para reconhecer L em O(p(n)3+q(n)):
L(w) = SAT(GERA_(w))
Portanto se SAT tem algoritmo polinomial ento NP=P.
Atualmente o melhor algoritmo conhecido para SAT (e para qualquer
problema NP-completo) exponencial.
3SAT
O problema 3SAT consiste em determinar se uma
determinada frmula escrita em 3-CNF satisfazvel.
Estar escrita em 3-CNF significa estar na forma normal
conjuntiva onde cada MAXTERMO tem apenas
ocorrncias de varivel.
Exemplo:
= (p1 p2 p3) (p1 p2 p3)
Lembramos que 2SAT P.
Qual ser a complexidade de 3SAT?
3SAT
Vamos transformar o MAXTERMO:
=p1 ... pn
Em n2 MAXTERMOS:
t()=(p1 p2x2) (x2p3x3) (x3p4x4)...(xn 2 pn-1pn)
Exemplo:
=p1p2p3p4
t()=(p1p2x2) (x2p3p4)
t()
SAT()SAT(t()). Se o nmero de tomos de n, o nmero
de tomos de t() 3n 3, portanto a reduo polinomial.
3SAT NP-completo.
COLORAO DE GRAFOS
Um grafo G k-colorvel se podemos colorir seus vrtices com k cores, de
modo que que dois vrtices adjacentes no tenham a mesma cor.
O grafo abaixo 3 colorvel, mas no 2-colorvel.
2 - COLORAO
Podemos testar a 2 colorao de um grafo da seguinte forma:
Percorre-se o grafo com BFS colorindo os filhos dos ns visitados com
cores opostas ao n pai; caso haja mais de uma componente conexa
repete-se o processo at colorir todos. Isso pode ser feito em O(m+n)
Ao fazer isso no exemplo obtemos.
A tentativa de colorao pode ser verificada em O(m) passos, portanto 2colorao est em P.
3 COLORAO NP
A prpria colorao do grafo abaixo tem tamanho linear no tamanho do
grafo e pode ser verificada em O(m), portanto um certificado polinomial
para o problema. Portanto a k-colorao est em NP, para qualquer k.
3 COLORAO NPCOMPLETO
Uma vez que sabemos que SAT e 3-SAT so NP-completos fcil mostrar
que 3-colorao tambm o .
Vamos tomar como exemplo = (p1 p2 p3) (p1 p2 p3)
Primeiro vamos criar um 3-clique com cores T, F e B.
T
B
F
3 COLORAO NPCOMPLETO
Vamos tomar como exemplo = (p1 p2 p3) (p1 p2 p3)
Prximo passo obrigar cada varivel a ser T ou F.
p1
p1
T
p2
B
p2
F
p3
p3
3 COLORAO NPCOMPLETO
Prximo passo criar uma porta OR. Que pode ser T se e somente se o
ou satisfatvel.
p1
p2
p1
p1
p2
p1
p2
p2
3 COLORAO NPCOMPLETO
Vamos tomar como exemplo = (p1 p2 p3) (p1 p2 p3)
Prximo passo criar uma porta OR.
p1
p1 p2
p2
p1 p2 p3
p3
T
B
F
Linguagem de Relaes em
FOL
BOOLEAN QUERIES
Sejam * a coleo de grafos com V = [n] = {1,2,...,n} e G = * .
BOOLEAN QUERIES
A query booleana definida por - :
[G]={gG| g - }
Sizen, o conjunto de grafos com tamanho n.
Size2 = 2[G], portanto definvel em FOL na linguagem com
vale para Sizen)
2 = xy(xy)xyz(xyxzyz)
Diamn, o conjunto de grafos com dimetro n.
Diam2 = 2[G] , portanto definvel em FOL na linguagem com
vale para Diamn)
2 = xy(x=yE(x,y)z(E(x,z)E(z,y)))
e =. (Tb
e =. (Tb
BOOLEAN QUERIES
A query booleana definida por - :
[G]={gG| g - }
Conn, o conjunto de grafos conectados.
Conn = [G], portanto definvel em L1, na linguagem com
acrescenta conjuno e disjuno contveis FOL.
=
. L1
DENSIDADE
Seja Q uma query booleana em G. Definimos 3 , a densidade de Q em *
como :
3 (4) =
6789(:<= )
6789(<= )
6789(:<= )
D
C
. Portanto a
. Finalmente para a
probabilidade da distncia ser maior que 2
probabilidade p de que ao menos um par tenha distncia maior que dois
temos p
B D
C
B D
C
. Portanto 3 (Diam2)> 1
3 Diam2 = lim 3 (Diam2) = 1
A
DENSIDADE
Colork, o conjunto de grafos k-colorveis.
Conn, o conjunto de grafos conectados.
Diam2 Conn
Como 3 Diam2 = 1 temos 3 Conn = 1.
CardX, o conjunto de grafos cujo tamanho n X
Se X finito, ento para todos os m maiores que o mximo de X temos
3n CardX =0, portanto 3 CardX =0
Neste caso CardX FOdefinvel.
Se X cofinito, ento para todos os m maiores que o mximo de IJ temos
3n CardX =1, portanto 3 CardX =1
Neste caso CardX FOdefinvel, basta fazer um conjuno de i.
Se X infinito e coinfinito no existe o limite.
Neste caso sabemos apenas que L1definvel.
Observe que para 3(diamk)=3(conn)=3 CardX,cofinito =1 e 3(sizek)=
3 CardX,finito =0. Todos esses podem ser expressos em FO.
FO tem lei 0-1. Para toda , 3([G]) existe e 0 ou 1.
Logo coisas como o grafo tem quantidade par de vrtices, para os quais
no existe o limite 3, no podem ser expressos em 1 ordem.
CYCLE
cycle O conjunto dos ciclos
3 (cycle)=
EB !
=
CYCLE
cycle O conjunto dos ciclos
3 (cycle)=
EB !
=
ESOL
Como definir HAMILTON-PATH()? Vamos pensar em P como uma ordem
linear:
u,v(P(u,u)(P(u,v)(P(v,u)u=v)w(P(u,w)P(w,v) P(u,v))
(P(u,v)w((P(u,w)P(w,v))G(u,v)))
irreflexiva tricotomia transitiva se u e v so vizinhos imediatos ento G(u,v)
HAMILTON-PATH P
TEOREMA DE FAGIN
Se P uma frmula em ESOL na linguagem dos grafos se e somente se:
[G] NP
S falta provar a volta
Existe MTND M que dada a representao de um grafo g=(V,E) decide se gG em
tempo polinomial. Podemos supor sem perda de generalidade que a representao
de g dada pela a entrada das matrizes de adjacncia (qualquer outra representao
polinomial pode ser transformada pela MTND)
A0,0
A0,1
A0,2
A1,0
A1,1
A1,2
A2,0
A2,1
A2,2
Significado
Qtd
Ti,j,m
O(n2k)
Hi,m
O(n2k)
Qq,m
O(n2k)
Frmula
Condio
Ti,j ,0
Qs,0
H0,0
Ti,j,m Ti,j,m
j Ti,j,!
j j
j j
Significado
O(n2k)
1
1
O(n2k)
O(n2k)
O(n2k)
q q
S um estado por vez
Qq,m Qq,m
i i
S um posio da cabea por vez
Hi,m Hi,m
(Hi,m Qq,m Ti,,m) (q, , q, , d) (Hi+d,m+1 Qq,m+1 Ti,,m+1) para
m<nk. Implementa .
0mnk f F Qf,m
Qtd
O(nk)
O(n3k)
O(n2k)
1
TEOREMA DE FAGIN
Ti,j,0
Se i <n2
Se (i,j)E
Ti+n*j,0,0
Se i <n2
Se (i,j)E
Tk,B ,0
Se k n2
coNP
L coNP NJ NP
Exemplo: TAUT() SAT( )
Logo TAUT() coNP
Podemos definir co-NL, ..., co-NTIME(n)
No se fala co-P, porque P uma classe de
complexidade determinstica, portanto teramos
imediatamente P = co-P
P = NP NP = co-NP. Demonstrao:
P = NP co-P = co-NP, como co-P=P temos NP = co-NP.
coNP
se NP corresponde SOL existencial, ento coNP corresponde SOL universal.
Subconjunto de soma 0. Dado um conjunto finito de
inteiros, existe um subconjunto com a soma 0?
Fatorao: dados m e n, m tem fator em [2,n)? (NP e
co-NP)
Mquina Orculo
Mquina Orculo
Dada uma linguagem L, uma mquina orculo, ou mquina
de Turing com orculo L, ML, uma mquina de Turing que
pode usar um orculo, i.e., uma caixa preta, para resolver
em um passo L. *
A mquina de Turing tem uma fita de trabalho e uma fita de
orculo, com cabeas separadas.
A mquina possui 3 estados especiais: {qL?,qYES,qNO}, ao
entrar no estado qL? a mquina vai em um passo para qYES se
o contedo da fita do orculo est em L, e vai em uma passo
para qNO caso contrrio.
L no precisa ser decidvel.
* H definies onde a sada da caixa preta escrita na fita, portanto permite alm de problemas de deciso tambm
problemas funcionais.
Mquina Orculo
Exemplo
Classe de Complexidade
A classe de complexidade de problemas de deciso que
esto na classe de complexidade A se usarmos mquinas de
Turing com orculo para a linguagem L chamada de AL.
Por exemplo PSAT a classe de problemas resolvveis em
tempo polinomial em uma mquina de Turing com orculo
para SAT.
Se B um conjunto de linguagens (ou uma classe de
complexidade), podemos definir:
O
-P
P = NP relativizado
Existe um orculo A para o qual PA=NPA. Vamos mostrar isso
depois de estudar a classe PSPACE.
Existe um orculo A para o qual PANPA..
Classe PSPACE
PSPACE
Uma Mquina de Turing M limitada
polinomialmente p(n)w, M ao processar w no
usa mais do que p(|w|) posies da fita.
q0
W1
W2
W3
...
Wn
....
n=|w|
p(n)
PSPACE
PSPACE = { L | M pol. limitada e determ., L=T(M) }
NPSPACE = { L | M pol. limitada, L=T(M) }
P PSPACE
-- se consome tempo p(n) no pode visitar p(n)+2 casas
NP NPSPACE
-- pelo mesmo motivo
Se L NPSPACE ento reconhecida por uma mquina de
Turing no determinstica em O(cp(n)) passos. Por qu?
-- Se M consome espao p(n) o nmero mximo de
configuraes |Q|p(n)||p(n) =O(cp(n)) ,onde Q o
conjunto de estados e alfabeto da fita. Pois h |Q|
estados, p(n) posies para a cabea de leitura e ||
possveis valores para cada posio da fita.
PSPACE = NPSPACE
PSAPCE=NPSPACE
Se L NPSPACE M no deter. e pol. limitada tq L=T(M)
M aceita L em espao p(n) portanto em tempo m=O(cp(n)).
SIMULA_M(w) {
i estado inicial
foreach f in possveis_estados_finais
if alcanca (i,f,m)
return true;
return false;
}
alcanca (estado1, estado2, n /* numero de passos */) {
if (1== npassos) return ehMovimento(estado1,estado2)
else
foreach e in possiveis_estados
if(alcanca(estado1,e, n/2) and alcanca(e,estado2,n/2)) then
return true;
return false;
}
cada estado de consome O(p(n)) espao
A quantidade de chamadas recursivas log Q R( )
O consumo total de espao [na pilha] polimomial O(p(n)p(n))
Teorema de Savitch
Na demonstrao anterior, se trocarmos p(n) por f(n)=
(g), a demonstrao tambm funciona, isso conhecido
como o teorema de Savitch, a saber:
NPSACE(f(n)) = DSPACE((f(n))2)
Corolrio: PSPACE = NPSPACE
QBF
Considere as seguintes frmulas
pq, pq
Verdadeira, basta para qualquer p escolher q=1
pq, pqp
Verdadeira. pq, equivale a TAUT()
pq, pq
Verdadeira, p=0
p q, pqpq
Verdadeira, p=1 e q=1. p q, equivale a SAT()
p,((q pq)(q pq))
Verdadeira porque as ocorrncias de q no precisam ser
iguais, pois esto ligadas a quantificadores diferentes.
TQBF = { sem variveis livres| valor de = 1}
TQBFPSPACE
TQBF = { sem variveis livres| valor de = 1}
eval(0)=0
eval(1)=1
eval() = eval()eval()
eval() = eval()eval()
eval() = eval()
eval(p,)= eval([0/p])eval([1/p])
eval(p,)= eval([0/p]) eval([1/p])
Se a frmula inicial tem tamanho n, cada registro de
ativao tem uma frmula de tamanho n e consome
espao O(n)
A quantidade de subfrmulas O(n), portanto h consumo
de espao mximo O(n2)
CQD
TQBF PSPACE-Completa
Suponha que que uma mquina de Turing determinstica M
reconhea a linguagem L em espao p(n), ou seja LPSPACE.
Sabemos que existe um polinmio q(n) tal que M consome
tempo mximo cq(n) .
Se tentarmos uma construo igual ao teorema de COOK no
funciona, pois teremos quantidade exponencial de variveis:
Variveis
Significado
Qtd
Ti,j,k
O(p(n)cq(n))
Hi,k
O(p(n) cq(n))
Qq,k
O(cq(n))
TQBF PSPACE-Completa
Se uma mquina de Turing determinstica M reconhece L em espao p(n), ou seja
LPSPACE. A ideia implementar Ni(I,J) que significa I iJ. I J em at i passos.
QBF
Significado
QTD
Ei,j
j est na posio i
O(p(n))
Ehi
O(p(n))
Eqq
M est no estado q
O(1)
Frmula
OBS
= Ui,j
Tam
N0(I,J)
I=J
O(p(n))
N1(I,J)
Onde (q, , q, , d) =
O(p(n))
K(Ni(I,K)Ni(K,J))
N2i(I,J)
KPQ( ((I=PK=Q)(K=PJ=Q))Ni(P,Q))
N2i(I,J)
VWR
,YZ
i,j
O(2n)
O(p(n)q(n))
P = NP relativizado
Existe um orculo A para o qual PA=NPA. Vamos escolher
como linguagem TQBF, que PSPACE-completa.
PSPACE PTQBF. Se L PSPACE, dada uma entrada w para
MTQBF basta escrever reducao_para_TQBF(w) na fita do
orculo e ter a resposta.
NPTQBF NPSPACE. Porque o orculo para TQBF pode ser
implementado como uma rotina que consome espao
polinomial.
NPSPACE PSPACE. Teorema de Savitch.
Portanto:
PSPACE PTQBF NPTQBF NPSPACE PSPACE
PA=NPA