A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TECMF Básicos de Complexidade Prof. Edward Hermann Haeusler.

Apresentações semelhantes


Apresentação em tema: "TECMF Básicos de Complexidade Prof. Edward Hermann Haeusler."— Transcrição da apresentação:

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 ikik i2i2

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 ) iNiN Def. EXP =  DTime(2 n ) iNiN 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 ) iNiN Def. NP =  NTime(n i ) iNiN Def. NPSpace =  NSpace(n i ) iNiN 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 wLwL 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


Carregar ppt "TECMF Básicos de Complexidade Prof. Edward Hermann Haeusler."

Apresentações semelhantes


Anúncios Google