Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGilberto Cesário Sales Alterado mais de 8 anos atrás
1
TECMF Básicos de Complexidade Prof. Edward Hermann Haeusler
2
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Medindo a eficiência de algoritmos - Escolha do modelo - Recursos: Tempo x Memória - Relacionando os algoritmos e os problemas que estes resolvem - Computação de Funções - Problemas de otimização - Problemas de decisão,, - Linguagens - Classes de complexidade: Como defini-las ???
3
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler A Máquina de Turing - Modelo determinístico q q’ ’ - Modelo multi-cabeça (determinístico) i1 i2 ik q i1 q i2 q ik U(i,a) = T i (a)Máquina Universal U
4
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler M. Turing modelo multi-fita (determinístico) q i1 i1 q ik q i2 1 2 k ikik i2i2
5
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler A Máquina de Turing (cont.) - Modelo não-determinístico q q1 q2 q3 q11 q12 q13
6
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Problemas de Decisão x P ? x sim não Prog. |x| * 1 0 Problemas de Decisão Linguagens Formais
7
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Uso de Recursos por Máquinas de Turing Determ. L * M L reconhece L sss w L então M L (w) = “aceita” w L então M L (w) = “rejeita” f : * 1 * 2 M f computa f sss f(w 1 )=w 2 então M L (w 1 ) = w 2 steps(M,w) = números de passos executados pela máquina M sobre o dado w até parar. space(M,w) = números de células (distintas) visitadas pela máquina M sobre o dado w até a parada.
8
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Problemas, Soluções e Linguagens P = P Comp = f:Ent Saída f Relação Sol = f: Ent Saída f computável f R SolComp = ** ** L P = { w ent w sai / (w ent, w sai ) R Ent Saída } **
9
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler As funções step e space - space deve levar a entrada em consideração ? - step deve levar a leitura da entrada em consideração ? - O modelo (M.T.) tem alguma robustez com relação as medidas ? - O que acontece quando modifica-se o número de cabeças ? - O que acontece quando modifica-se o número de fitas ? Fato: Se L é reconhecida em tempo O(f) em uma MT com mais de uma cabeça, então L é reconhecida em tempo O(f 2 ) em uma MT com uma cabeça. Fato: Se L é reconhecida em tempo O(f(|x|)) em uma MT com uma fita, então L é reconhecida em tempo O((1/2 k )f(|x|)+ |x|) em uma MT com k fitas
10
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Complexidade de uma Linguagem L DTime(f) sss m TuringDet t.q. (m reconhece L) e c, x * steps(m,x) cf(|x|) L DSpace(f) sss m TuringDet t.q. (m reconhece L) e c, x * space(m,x) cf(|x|)
11
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Por que considerar classes assintóticas de funções ?? Teorema: (speedup linear) Se uma linguagem L é decidida em tempo f(n) então para qualquer > 0 existe uma M. Turing M que decide L em tempo .f(n) + n + 2. Prova : Modificar o tamanho da “palavra” de memória Consequências do seedup: Se L é decidida em tempo f(n) = 165.n k +.... + 54.n + 657 então L é decidida em tempo f’(n) = n k Obs: O mesmo teorema ( e técnica de prova) vale para função de medida e uso de espaço (número máximo de células visitadas)
12
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Funções de tempo construtivas Fato: Existe f, tal que, DTime(f) = Dtime(2 f ) Def. f é uma funçao de tempo construtível, sss, existe uma máquina de Turing M tal que para todo n, M(1 n ) = 1 f(n ) e steps(M, 1 n ) cf(n). Propriedades : - Para qualquer função computável g existe uma função de tempo constru- tível f tal que g < f. - As funçoes polinomiais, exponencial e logaritmos (inteiros) são funções de tempo construtíveis
13
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Algumas propriedades e definições: Fato I: DTime(f) =coDTime(f) Se f é de tempo construtível então : coDTime(f) = { L / m TuringDet t.q. (m decide L c ) e x Strings steps(m,x) O(f(|x|)) } Fato II: Se n f(n) e |L 1 L 2 | finito então L 1 DTime(f) sss L 1 DTime(f) Fato III: DTime(f) é construtivamente enumerável, i.e., existe uma MT T tal que T(i,x) = T i (x) e DTime(f) = {L i / T i decide L i }. Def. P = DTime(n i ) iNiN Def. EXP = DTime(2 n ) iNiN i
14
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Hierarquia própria de funções construtivas Para f = { / T(x) pára no máximo em f(|x|) passos} FatoI : Para f DTime(f 3 ) FatoII : Para f DTime(f(x/2)) Prova: Diagonalização Corolário I : DTime(f(n)) DTime(f(2n+1) 3 ) Corolário II : P EXP
15
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Complexidade Computacional I - Não existência de limite na complexidade de Linguagens DTime(f) Dtime(f log(f)) DSpace(f) DSpace(f log(f)) - Hierarquia de Linguagens segundo sua Complexidade DTime(n) Dtime(n 2 ) ... Dtime(n k ) .... Dtime(2 n )...... Dspace(log(n)) Dspace(n) ... ... DSpace(n k ) .... Dtime(2 n )......
16
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Classes de Complexidade e algumas relações Def. PSpace = DSpace(n i ) iNiN Def. NP = NTime(n i ) iNiN Def. NPSpace = NSpace(n i ) iNiN Def. Log = Space(log(n)) NLog = NSpace(log(n))
17
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler - DSpace(f(n)) NSpace(f(n)) e DTime(f(n)) NTime(f(n)) - NTime(f(n)) DSpace(f(n)) - NSpace(f(n)) DTime(k log n + f(n) ) - Alcançabilidade Space(log 2 ) NSpace(f) Space(f 2 ) (obs; Número de conf. + alcançabilidade) - número de nós alcançavel Space(log) => NSpace(f) = coNSpace(f)
18
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler (parte) do que se sabe atualmente (desde 60’s) Log NLog P NP PSPACE = NPSPACE EXP NEXP Sabe-se que Log PSPACE se P = NP então EXP = NEXP se Log = P então EXP = PSPACE
19
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler SAT e as Máquinas de Turing não-determinísticasTuring w P(|w|) Si,j t = Símbolo j na posição i no tempo t Ee t = Máquina está no Estado e no tempo t Ci t = Cabeça está no na posição i no tempo t Fórmulas para descrever: -A cabeça em qualquer tempo t está em uma e somente uma posição -Cada pósição da fita tem, em qualquer t, um e somente Um símbolo escrito. - A máquina, em qualquer tempo t, está em um e somente um estado Fórmulas para descrever o a conf. Inicial da fita: Se SAT puder ser resolvido em tempo polinomial por uma M.T. deter então qualquer problema em NP também pode ser resolvido em tempo polinomial E e C i S i,j (E g C i+1 S i,k ) (E h C i-1 S i,n ) Fórmulas para descrever o comportamento da máquina: t t t t +1 S 0,3 S 1,7 S 2,1 ...... S |w|,8 0 000
20
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler QSAT é PSPACE-completo p p pode ser expresso como x(x) x( q x) expressa q -Codifica-se os estados globais de M em strings de p(w) bits EG M (x 1,x 2,...,x P(n) ) descreve um estado global QSAT está em PSPACE Codifica-se a execução de um passo da computação de M como Passo M (x,y), onde EG M (x) e EG M (y) Para qualquer MTD M que decide um problema usando espaço p(|w|) Codifica-se estado global final (aceitação) Final M (x) Predicado para computação global. Evolui M (x,y) = Passo M (x,y) z(Evolui M (x,z) Evolui M (z,y)) Fórmula associada a aceitação de w por M Aceita M (w) = EG M (w) z(Evolui M (w,z) Final M (z)) Descubra como diminiur o tamanho de para não ser Exponencial
21
TECMF O(n 2 ) O(n 3 ) O(n) P O(2 n ) decidir se uma fórmula da lógica de predicados é Sat decidir se uma fórmula da lógica prop é Sat NP decidir primalidade decidir se uma 3CNF fórmula é Sat decidir se uma 2CNF é Sat decidir se uma cláusula de Horn prop é Sat decidir se 2 cláusulas de Horn prop são equiv. NPC ? Obs: Supondo P NP
22
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler A representação influencia a complexidade de um problema ?? Alfabetos ?? Teorema: Se alguma linguagem unária for NP-completa então P=NP. Prova :
23
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Alguns Fatos Importantes : Fato 1: Existe um oráculo B tal que P B = NP B Fato 2: Existe um oráculo C tal que P C NP C Prova: NPSPACE=PSPACE e B um problema NPSPACE completo Prova: Diagonalização Discussão : Simulação e Diagonalização para provar P = NP ??
24
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Fato : Se P NP então (NP-P)-NPC . Prova: Diagonalização Uniforme [Ladner 1975]
25
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Lema: Sejam C1 e C2 duas classes de Linguagens, tais que : 1- C1 e C2 são construtivamente enumeráveis 2- C1 e C2 são fechadas para variação finita 3-Existe L1 C1 e L2 C2 nestas condições existe L, tal que: L C1 C2 e L L1 L2 Teorema: Se P NP, então Sat P e NPC então existe L P NPC Prova: Diagonalização
26
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler P : Encontra solução em tempo polinomial em MTD NP : Verifica solução em tempo polinomial em MTD CoNP : Verifica que não é solução, em tempo polinomia em MTD Sat NP Taut CoNP Obs: Se CoNP NP então NP P Verificação de ModelosProva de Teoremas
27
TECMFJan/2004 Teoria de Complexidade Prof. Edward Hermann Haeusler Outras Lógicas Lógica Proposicional Intuicionista é PSPACE-completa (Statman 1977) Prova: A sentenças válidas intuicionisticamente podem ser caracterizadas como sendo aquelas que possuem estratégia vencedora para o jogador que começa o seu jogo dialógico. (Haeusler 2004) Modais K, S4, KD são PSPACE-completas, S5 é NP-completa, mas S5 2 é PSPACE-completa
28
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Speedup Linear Máquina M original abcb |Q| estados | | símbolos => Seja m um inteiro (dependendo de e de M) m Máquina M abcb | | + | | m símbolos ca abcb..ca m ac ac...... muito mais que |Q| estados
29
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Passos na simulação de M por M : 1- Copiar o string da fita de entrada nas n/m primeiras células da segunda fita 2- Simular cada m passos de M em 6 passos de M . abcb c aacc mm.......abc bcaacc.... cb bc........ - 4 (E,D,D,E) para “ler símbolos” relevantes, armazena nos estados - 2 (E,D ou D,E) para fazer as m substuições 3 - (1) gasta n+2 passos e 2 gasta 6.f(n)/m, total = 6.f(n)/m + n+2 4 - Fazendo m = 6/ obtem-se o resultado
30
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Pred(i,k) =true j 0 j i, w( |w| = i steps(T j,w) k) N(i) = |alfabeto j | i j=0,i f(i) = 2 2 2 2 2 s-vezes onde s N(i) e Pred(i, ) 2 2 2 2 s-vezes
31
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Suponha Para f DTime(f(x/2)) Diag f (T) = se T Paraf (T,T) = “sim” então “não” senão “sim” es Diag f (Diag f ) = “sim” T Paraf (Diag f,Diag f ) = “não” Diag f não aceita sua descriçao em tempo f(n) Diag f “roda” em tempo f(2n+1/2) = f(n) Diag f (Diag f ) = “não”T Paraf (Diag f,Diag f ) = “sim” Diag f aceita sua descriçao em tempo f(n)
32
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Suponha L unária e NP-completa Existe uma redução R polinomial, tal que, x SAT, sss R(x) L Teorema: Se existe uma linguagem unária (L {1} * ) NP-completa então NP = P Notação: t {0,1} * => A[t] = fórmula A avaliada parcialmente por t (ordem nas letras) Árvore de avaliação do valor verdade de A A A[0]A[1] A[00]A[01]A[10]A[11] t.... f t t.. f f... t t... t n = |A|
33
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Construção de um algoritmo poli para SAT Verifica(A[t]) = Se |t| = n então Se A[t] {} então falso senão verdadeiro (A[t] verd) senão Verifica(A[t0]) or Verifica(A[t1]) Algoritmo I Algoritmo II Verifica(A[t]) = Se |t| = n então Se A[t] {} então falso senão verdadeiro (A[t] verd) senão Se Tabela(hash(t))=DEF então Tabela(hash(t)) senão Verifica(A[t0]) or Verifica(A[t1]); Insere_Resultado_emTabela; 1- Ter domínio pequeno (poli) 2- Se hash(t)=hash(t’) então A[t] Sat sse A[t’] Sat Propriedades desejáveis do hashing: hash(t) = R(A[t])
34
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Estimativa de complexidade do Algoritmo II 1- Sendo C o número de chamadas recursivas então a complexidade é O(C.p(n)). 2- Existe uma sequência de avaliações parciais : {t1,..., tk} tal que - k C/2n - todas as chamadas associadas são recursivas - nenhum ti e préfixo de nenhum tj (i distinto de j) Conclusão: O valor máximo de k é p(n), então p(n) C/2n O(np 2 (n)) é uma cota para Algoritmo II
35
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler A(P A = NP A ) A = { / w é aceita por T usando no máximo k células } P A NP A (fácil) NP A P A wLwL L T w w0w0 wnwn sim p(|w|) T’’w n,1 k A p(|w|) T’ w0w0 wnwn sim T’’w n,1 k A wnwn 1k1k w sk p’(|w|) A:T’ w 1 p’(|w|) L
36
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler C( P C NP C ) NP C P C - X um oráculo qualquer - enumeração construtiva de P X : {T 0, T 1,....., T n,........}, tal que, - Para qualquer x e k, T k (x) pára no máximo em |x| k + k L X = {0 n / x(x X e |x|=n} Obs: L X NP X - Vamos definir C (um oráculo do tipo X) de forma a L C P C - Obs: |x| k + k < 2 |x| O quantidade de strings de tamanho |x| é maior que qualquer poli em |x| - Qualquer T k P C, calculando T k (w) pode submeter no máximo |x| k + k strings de tamanho |x| ao oráculo C.
37
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler Diagonalização em partes para definir C: C(i) = {w / w C e |w| = i} Objetivo. - Se T i C(i-1) (0 i ) = “aceita” então C(i) = {}. - Se T i C(i-1) (0 i ) = “rejeita” então C(i) = {min{w / |w| > ||C(i-1)|| i-1 + i-1 e 2 |w| > |w| i + i }} C(0) = {} ||W|| = max{|w| / w W } L C P C ==> existe T i tal que L C é aceita por T i ==> Se T i C (0 i ) = “aceita” então 0 i C(i) = {} Se T i C (0 i ) = “rejeita” então 0 i C(i) 0 i L C P C
38
TECMFAgo/2003Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler C1 e C2 são construtivamente enumeráveis T j i (i=1,2) (j N) tal que T j i decide L j i Ci tal que G P e : Define-se G j z * z L i L j i e z G Li Ci Fazendo L = (L1 G) (L2 G c ) j z * z L i L j i e z G j z * z L L j i e z G
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.