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

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

Variantes de Máquina de Turing
Teoria da Computação MÁQUINA DE TURING (Continuação) Fabrício Dias
Amintas engenharia.
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Máquina de.
Prof. Yandre Maldonado e Gomes da Costa
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
Máquinas de Turing Não Deterministas
Complexidade de Linguagens Influência do Modelo de Computação
Teorema da Recursão Teoria da Computação
Medida do Tempo de Execução de um Programa
Linguagens e Máquinas WILSON ROSA DE OLIVEIRA DEPARTAMENTO DE INFORMÁTICA UFPE
Identificando Linguagens Não Regulares
NÃO DETERMINISMO Marcus Eduardo Cabral Seabra
Máquina de Turing e Computabilidade
Linguagem de Prog. e Programas
Análise Léxica Supondo o trecho de programa abaixo:
Crescimento de Funções
Introdução à NP-completude
Problemas NP-completo
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Erick Vagner Cabral Igor Lucena Vitor Baptista
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Informática Teórica Engenharia da Computação
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Complexidade Computacional e Jogos
SIPSER – Capítulo 3: A tese de Church-Turing
SAT e Custo Computacional
SAT e Custo Computacional
Introdução à NP-completude Katia S. Guimarães
Inteligência Artificial
Liliane Salgado NP-Completude Liliane Salgado
Complexidade computacional
Máquina de Turing Universal
Máquinas de Turing.
Análise e Síntese de Algoritmos
Redução.
Como analisar um algoritmo
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Decidibilidade, Corretude, Completude, Consistência
Problemas NP-completos e Programação Dinâmica
Introdução à NP-completude
Decidibilidade, Corretude, Completude, Consistência, Monotonicidade
Linguagem de 1ª ordem da teoria de conjuntos
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Análise e Síntese de Algoritmos
Teoria da complexidade
On The Complexity of Determining Autonomic Policy Constrained Behaviour Sobre a Complexidade de Determinação de Política Autônoma de Comportamento Restrito.
Computabilidade e Linguagens Formais
Analise de Algoritmos e Notação Assintótica
Tese de Church-Turing.
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
Informática Teórica Engenharia da Computação
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Informática Teórica Engenharia da Computação. REDUTIBILIDADE Uma redução é uma maneira de converter um problema em outro Uma redução é uma maneira de.
1 Máquinas de Turing 3 Exercícios Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens.
Comportamento Assintótico
Edward Hermann Lógica e Especificação 1 L ó gica de Primeira Ordem 1- Modelos e Teorias 2- Definibilidade de (classes de) Estruturas (s) 3- Definibilidade.
Transcrição da apresentação:

TECMF Básicos de Complexidade Prof. Edward Hermann Haeusler

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 ???

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

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

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  

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

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.

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 } **

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

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|)

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 n 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)

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

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

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

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 )......

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))

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)

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

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|,

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

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

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 :

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 ??

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]

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

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

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

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

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 (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 Fazendo m = 6/  obtem-se o resultado

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) = s-vezes onde s  N(i) e Pred(i, ) s-vezes

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)  

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|

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])

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

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

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.

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

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