Complexidade Computacional, Lógica e Teoria da Prova. Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler

Tamanho: px
Começar a partir da página:

Download "Complexidade Computacional, Lógica e Teoria da Prova. Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler"

Transcrição

1 Complexidade Computacional, Lógica e Teoria da Prova

2 É mais fácil verificar uma solução do que calculá-la??? f(x) = 0 2 x 1 => Para se escrever 0 2 x a partir de x se usa tempo exponencial. 2 => Para, dados <x,y>, verificar-se se f(x) = y usa-se tempo polinomial 1 => Para se encontrar uma valoração que satisfaça uma fórmula booleana parece precisar-se de tempo exponencial. 2 => Dada uma fórmula e uma valoração, verifica-se em tempo polinomial se esta satisfaz a fórmula,.

3 PV p = { f / f(a 1,...,a k )= b é verificável em tempo poli para toda <a 1,...,a k,b> } PC p = { f / f(a 1,...,a k ) é calculável em tempo poli para toda <a 1,...,a k >} Teorema : PV p PC p se e somente se P = NP

4 Qual a relação entre a Lógica e a Computação? - O que é a (Teoria da) Computação? (Tentativa de) conceituação do Computável - O que é Lógica? (Tentativa de) conceituação do Razoável

5 Razoável Todo evento que é passível de uma explicação, na forma argumentativa, construída sobre fatos iniciais inquestionáveis. Antes de 1879 ====> Lógica Aristotélica e Escolástica (a partir de 300 a.c.) Álgebras Booleanas (Boole 1847) Álgebra Relacional (DeMorgan, Schroeder, C.S.Peirce XIX)

6 Evolução da Lógica como assunto matemático DeMorgan (1830) Observa que a álgebra não necessita lidar tão somente com conceitos numéricos. Boole (1854) Descreve uma álgebra a partir de operações entre conjuntos e relações lógicas, confirmando DeMorgan. Frege (1879) estabele a lógica como um sistema formal que tem sua linguagem particular e distinta da natural. O conceito de prova matemática passa a ser formal. Frege (1884) busca a fundamentação da aritmética em bases puramente lógicas, com a adição do conceito de pertinência ( ) como primitivo. ===> Os paradoxos aparecem novamente!! ===> Paradoxos associados ao axioma da escolha, etc

7 Principais Resultados em Lógica/Metamatemática no início do século XX - Teoria dos Tipos como solução ao paradoxo em Russell - Russell e Whitehead publicam o Principia Mathematica. - Presburger (1929) prova que a aritmética sem a multiplicação é decidível. - Skolem (1931) prova que a aritmética sem a adição e o sucessor é decidível - Herbrand (1931) prova a consistência de um fragmento fraco da aritmética (só o sucessor). -Tarski (1930) formaliza a semântica adequada para a lógica de primeira ordem - Gödel (1930) prova a completude do cálculo de primeira ordem - Gödel (1931) introduz a idéia de aritmetizar (codificar na forma numérica) a linguagem de um sistema formal de forma que (meta) teoremas do sistema possam ser vistos como teoremas aritméticos e prova seu famoso teorema da incompletude. Obs: #α é o código de α. - Gödel (1931) prova a não-provabilidade da consistência. - Gentzen (1936) prova a consistência da aritmética ( Haupsatz para o Cálculo de Sequentes)

8 Computável Toda tarefa que pode ser realizada por um ser burro com um mínimo de conhecimento/capacidade. burro = Incapaz de Aprender conhecimento =? Antes de 1900 d.c ====> Máquina de Raciocinar (Leibniz 1667) Máquina de Calcular de Pascal. l (Pascal sec.xvii) Máquina de Babbage (Ch. Babbage. sec. XIX)

9 A Computação do ponto de vista das funções recursivas Gödel define as funções prim. recursivas associando-as a provas em aritmética 1927/ Ackermann define uma função que necessita de recursão simultânea Rózsa Péter - Prova que as funções prim. recursivas formam a classe definida por recursão simples e nested a partir de funções iniciais constantes, identidade e a função sucessor. Prova que a função de Ackermann é na realidade definida por recursão em duas variáveis e não é portanto primitivamente recursiva, mas é computável A. Turing - Define uma máquina formal a partir de princípios simples (ler, apagar e escrever símbolos em uma fita) e define o conceito de Máquina Universal. Prova que não existe máquina capaz de verificar se outra máquina pára ou não. Desde o início a sua máquina com versão Não-Determinística A. Church Define o λ-calculus e mostra que este é capaz de definir todas as funções para as quais existe uma Máquina de Turing Kleene Define, aceitando que o computável inclui a parcialidade funcional, as funções parcialmente recursivas e lança a Tese de Church Markov Estabele o conceito de computável com base em identificação de palavras e símbolos (algoritmos de Markov) e justifica o ponto de vista finitista da computação.

10 Sxyz apple (xy)xz Kxy apple x Ix apple x (I SKK) :0: I :1: P0K :2: P1K... :n: P:n-1:K... P Tese de Church: f: N N é computável se e somente se existe um combinador F C 1 C 2... C n tal que para todo n N (F:n: apple :m:) f é recursiva f(n) = m) n existe uma máquina de Turing M, tal que M com na fita de entrada M pára com na saída sss n f(n) = m existe um algoritmo de Markov A, m t.q. A lendo pára e produz o string na saída sss f(n) = m m

11 A Máquina de Turing - Modelo determinístico σ q q Máquina Universal U U(i,a) = T i (a) - Modelo multi-cabeça (determinístico) σ i1 σ i2 σ ik q i1 q i2 q ik

12 M. Turing modelo multi-fita (determinístico) 1 σ i1 2 σ i2 q i1 q i2 k σ ik q ik

13 A partir da década de 50 (sec. XX)... algoritmo Sequência de passos Conjunto de sequência de passos não-determinismo determinismo paralelismo paralelismo c/ sincronia

14 - Modelo não-determinístico A Máquina de Turing (cont.) σ q ε σ η q1 q2 q3 δ γ τ q11 q12 q13 τ τ τ τ τ τ

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

16 x Problemas de Decisão x P? sim não x Σ * Prog. 1 0 Problemas de Decisão Linguagens Formais

17 Algumas Definições L DTime(f) sss m TuringDet t.q. (m decide L) e c, x Strings steps(m,x) cf( x ) L DSpace(f) sss m TuringDet t.q. (m decide L) e c, x Strings space(m,x) cf( x ) - Como medir espaço (memória)??? - Qualquer tipo de função serve como parâmetro de medida??

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

19 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 construtível f tal que g < f. - As funçoes polinomiais, exponencial e logaritmos (inteiros) são funções de tempo construtíveis

20 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? 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. - O que acontece quando modifica-se o número de fitas? 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

21 Algumas propriedades e definições: 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 I: DTime(f) =codtime(f) 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 N Def. EXP = DTime(2 n i ) i N

22 Teorema de Cantor {A / A B} ==> Seja B um conjunto, então B < 2 B Prova: Suponha que B = 2 B então existe f: B 2 B S = { x / x f(x) } f -1 (S) S se e somente se f -1 (S) S Paradoxo do Barbeiro: Em uma cidade existe um barbeiro que faz a barba de todos os homens que não barbeiam a sí próprios e somente estes.

23 O método da diagonal de Cantor suponha que (0,1) = N a 0 = 0, a oo a o1 a o2 a o3 a o4... a on... a 1 = 0, a 1o a 11 a 12 a 13 a a 1n... a n = 0, a no a n1 a n2 a n3 a n4... a nn... b j = 5 se a jj = 9 9 senão b = 0,b 0 b 1 b 2 b 3 b 4... b n... (0,1) N

24 Hierarquia própria de funções construtivas Para f = { <T,x> / 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

25 Classes de Complexidade e algumas relações Def. PSpace = DSpace(n i ) i N Def. NP = NTime(n i ) i N Def. NPSpace = NSpace(n i ) i N Def. Log = Space(log) e NLog = NSpace(log) Log NLog P NP NSpace

26 - 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) ) (obs; Número de conf. + alcançabilidade) - Alcançabilidade Space(log 2 ) NSpace(f) Space(f 2 ) - número de nós alcançavel Space(log) => NSpace(f) = conspace(f)

27 A Ciência da Computação Hoje : NP = P? (Cook 1971) P : Encontra solução em tempo polinomial NP : Verifica solução em tempo polinomial CoNP : Verifica que não é solução, em tempo polinomial Sat NP Taut CoNP Verificação de Modelos Prova de Teoremas Obs: Se CoNP NP então NP P

28 Def. Seja C uma classe de problemas (linguagens). Diz-se que um problema (ling.) P é C-completo (a) se e somente se todo problema (ling) de C é redutível a P. Isto é resolver P é tão difícil quanto resolver qualquer outro problema em C. Exemplos: - Saber se um programa pára (via outro programa) é Rec-Completo, onde Rec é o conjunto dos problemas (ling) recursivos. - Saber se dado uma solução para um problema esta é verificável em tempo polinomial é tão difícil quanto decidir se uma sentença da lógica proposicional é verdadeira. Sat é NP-completa.

29 decidir se uma fórmula da lógica prop é Sat decidir se uma 3CNF fórmula é Sat O(2 n ) P NP NPC? O(n 3 ) O(n 2 ) decidir se uma fórmula da lógica de predicados é Sat decidir primalidade decidir se 2 cláusulas de Horn prop são equiv. decidir se uma 2CNF é Sat O(n) decidir se uma cláusula de Horn prop é Sat Obs: Supondo P NP

30 Alguns Fatos Importantes : Fato 1: Existe um oráculo B tal que P B = NP B Prova: NPSPACE=PSPACE e B um problema NPSPACE completo Fato 2: Existe um oráculo C tal que P C NP C Prova: Diagonalização Discussão : Simulação e Diagonalização para provar P = NP??

31 Fato : Se P NP então NP-NPC. Prova: Diagonalização Uniforme [Ladner 1975]

32 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 Prova: Diagonalização Teorema: Se P NP, então Sat P e NPC então existe L P NPC

33 A representação influencia a complexidade de um problema?? Alfabetos?? Teorema: Se alguma linguagem unária for NP-completa então P=NP. Prova :

34 Hierarquia de Kleene

35 Hierarquia Polinomial

36 Circuitos Booleanos => Dígrafos acíclicos com nós AND, OR, NOT, nós iniciais (sem arco entrante) e um e somente um nó terminal (sem saída) Exemplo: Circuito para computar alcançabilidade em grafos. Entrada = <Grafo, <1,n>> G ij = matriz de adjacências de um dígrafo direto pass. por 1. pass. por 1 ou direto. pass. por 2 (poss. por 1 tb) pass. por 2,1 ou direto. pass. por 5,4,3, 2,1 ou direto.

37 Famílias de Circuitos Booleanos Def. L é decidida por uma família (C i ) i N, sss, para todo string s, com s = n, C n aceita s se e somente se s L. Questão : O tamanho de um circuito tem a ver com a complexidade (em MT) do problema de decisão associado??? Resp. : Prox. Slides Obs: => Alcançabilidade tem circuitos de tamanho O(n 3 ) e profundidade O(n) Conjectura: Todo problema de decisão com famílias de circuitos de tamanho polinomial é um problema que está em P??

38 Resp: NÃO => Problemas indecidíveis tem famílias polinomiais de circuitos booleanos Exemplo: Seja D {1} * uma linguagem indecidível. e seja (A i ) i N a família de circuitos tal que - se 1 k D então A k é o circuito só com portas AND e k fontes - se 1 k D então A k é o circuito com só portas AND e uma NOT ao final.

39 Famílias Uniformes de Circuitos Booleanos Fato: NLSpace P (k log(n) = n) Def. Uma família (C i ) i N de circuitos booleanos é uniforme, sss, existe uma MT (não determinística) que para entrada 1 n gera o circuito C n usando log(n) células da fita. ==> Alcançabilidade possui família uniforme de circuitos booleanos - Dado n, existe uma MT para gerar C n usando somente log(n) de espaço na fita de trabalho. ==> Gerar todos os circuitos de profundidade n com n 2 nós fontes e verificar se a forma é a requerida.

40 Nova Conjectura: P = Linguagens aceitas por famílias uniformes de Circuitos booleanos de tamanho polinomial?? Desta vez SIM. Prova: Construção usada na prova que SAT é NP-completo e definição de família uniforme de Circuitos de tamanho polinomial. ( ) Trivial ( ) Seja L P, então existe uma MT det. M que decide L em tempo n k. Seja w L, tal que w =n. Da tabela de computação de M constrói-se um circuito C n.

41 Tabela de computação de M para a entrada w w =n q 0 σ 1 σ 2 σ n-1 σ s 11 s s 1m s 21 s s 2m s (n-1)1 s (n-1)2... s (n-1)m s n1 s n s nm ν x-1 ν x ν x+1 ν x tempo t tempo t+1 n k a 11 a a 1m a 21 a a 2m a d1 a d2... a dm a (p-1)1 a (p-1)2... a (p-1)m a t1 a a pm σ 1 σ 2 q σ p-1 σ p... j σ 2 b 11 b b 1m b 21 b b 2m A C E I T A...

42 Observações: 1- O tamanho do circuito Pad só depende de M. Se Γ = Est(M) Alfa(M) {, } e c = Γ então Pad = 3.c 2- w L, se e somente se, o circuito tem valor true quando alimentado com cod(w). 3- O construção de um circuito C w é feita a partir de M e w usando espaço de ordem log( w ) na fita. Algoritmo imprime na fita de saída as diversas cópias de Pad (tamanho independente da entrada), com as respectivas junções de e/s que usam espaço de ordem log( w ).

43 Proposição: Toda linguagem em P possui família uniforme de circuitos booleanos de tamanho polinomial. Corolário: SE existe L NP é tal que toda família uniforme de circuitos que decide L não tem tamanho limitada por nenhum polinômio ENTÃO P NP Um caminho para provar P NP : ==> Provar que algum problema NP-completo possui cota inferior superpolinomial

44 Circuitos x Circuitos monotônicos - Circuitos monotônicos são aqueles construídos sem o uso da porta NOT. Def. Uma função booleana f é monotônica, se e somente se, se a b então f(x 1,...,a,...,x n ) f(x 1,...,b,...,x n ). Obs I: Todo circuito monotônico computa uma função monotônica Obs II: O circuito utilizado na demonstração da conjectura é monotônico, ou seja, o problema (P-completo) de avaliar um circuito é redutível via circuitos monotônicos. (Expressividade!!!!!) Exemplos: - Alcançabilidade, circuito hamiltoniano e clique são monotônicos, - Mochila e cobertura euleriana não são monotônicos

45 Circuitos ingênuos monotônicos para computar CLIQUE n,k 1 2 n-1 n 1 n 1 n 1 n 1 n i 1 1 i k i n 1 1 i k i n 1 1 i k n v i v i v j i k S = { v i 1,..., v i k }

46 Circuitos ingênuos monotônicos para computar CLIQUE n,k 1 2 n-1 n 1 n 1 n 1 n 1 n S 1 S j S n ( k ) Def. CC(S 1,..., S m ) é o circuito ingênuo construído a partir dos conjuntos S 1,..., S m de vértices OR Tamanho = k 2 n ( k ) Obs: 2 n 2n < ( ) n

47 Teorema do Razborov Teorema: Circuitos monotônicos para CLIQUE n,k, quando k = 4 n, tem cota inferior :

48 Esquema: 1 - Considerar um circuito monotônico qualquer C => Considerar tipos particulares de exemplos negativos e positivos para teste de clique (exemplos em quantidade exponencial) 2- Aproximar C via um circuito ingênuo CC(S 1,..., S m ) introduzindo um número pequeno (poli) de falsos positivos e de falsos negativos. 3- Cada aproximação é executada sobre uma porta (gate) do circuito. 4- Demonstra-se que o circuito ingênuo resultante da aplicação de 3 a todas as portas de C tem uma quantidade exponencial de falsos positivos e de falsos negativos. 5- Concluí-se que C só pode ter uma quantidade exponencial de portas.

49 Exemplos positivos e exemplos negativos Exemplo positivo: - Um grafo simples com n vértices contendo um subgrafo completo de tamanho k n => Existem ( ) exemplos positivos. k Exemplo negativo: - Um grafo com n? vértices e (k-1) colorável => Existem (k-1) n exemplos negativos

50 Resultado de combinatória importante para o teorema Lema de Erdös-Rado: Seja F uma família de com mais que M=(p-1) L.L! conjuntos, todos não vazios e todos com cardinalidade máxima L. Então F contêm um girassol. Z >M Z 1 Z 2 Z i Z j = Z k Z v = Núcleo Z 3 Z j Prova: Por indução em L

51 Construção Indutiva do circuito aproximante para C. Caso Base: C =g ij, porta de entrada g ij Aprox(C)= CC({g ij }) Casos Indutivos: 1- C = C1 OR C2 Aprox(C1)=CC(F1) e Aprox(C2)=CC(F2) Aprox(C) = CC(F1 F2) Obs: Manter a cardinalidade dos geradores do circuito ingênuo. - Se F1 F2 > M substituir os elementos do girassol pelo seu núcleo Aprox(C) = CC(Nu(F1 F2)) se usamos M=(p-1) L.L! => forçamos a existência de girassois com pétalas de tamanho L

52 2- C = C1 AND C2 Aprox(C1) = CC(F1), Aprox(C2) = CC(F2) Aprox(C) = CC(Nu({X Y: X F1, Y F2 e X Y L}))

53 Lema I : Em cada aproximação são introduzidos no máximo M 2 2 -p (k-1) n falsos positivos Lema II: Cada aproximação introduz no máximo M 2 ( negativos n-l-1 k-l-1 ) falsos Lema III: Todo circuito aproximante ou é idêntico ao circuito falso ou resulta em verdadeiro em pelo menos metade dos exemplos negativos.

54 O que é introduzir falsos positivos ou falsos negativos?? Obs: No caso base da construção do circuito aproximante (Aprox({g ij }) = CC({g ij }), a aproximação é exata!!!!! - Se C = C1 OR C2, Aprox(Ci)=CC(Fi), CC(Fi) retorna verd para algum i quando alimentado com um exemplo positivo G, e, Aprox(C) retorna falso quando alimentado com G. => Aprox(C) introduziu um falso negativo - Se C = C1 OR C2, Aprox(Ci)=CC(Fi), CC(Fi) retorna falso para algum i quando alimentado com um exemplo negativo G, e, Aprox(C) retorna verd quando alimentado com G. => Aprox(C) introduziu um falso positivo - Similar para C=C1 AND C2

55 Lema I : Em cada aproximação são introduzidos no máximo M 2 2 -p (k-1) n falsos positivos - C = C1 OR C2 com Aprox(Ci)=CC(Fi) e Aprox(C) = CC(Nu(F1 F2)) A introdução de falsos positivos é culpa do operador Nu. => Substituir (Z 1,...,Z p ), um girassol, por Z, seu núcleo, em F1 F2. Z p Z 1 - G é falso positivo, então... Z 2 Z j F1 Z 2 Z 1 Z 3 Z p F2 Z j Z 3 Quantas cores diferentes pode haver no Núcleo??? => Qual a probabilidade de se colorir todos os vértices em G com repetição e o núcleo não????

56 Rep(X) = Há cores repetidas em X. = prob(rep(z 1 ) &... & Rep(Z p ) & Rep(Z)) prob((rep(z 1 ) &... & Rep(Z p )) Rep(Z)) prob( Rep(Z)) p p = prob(rep(z i ) Rep(Z)) prob(rep(z i )) i=1 i=1 Rep(Z i ) = Z i 2 k-1 L 2 k-1 L! (L-2)! 2! k-1 = 2 -p 8 ( n)! 8 ( n -2)! 2! 4 n -1 1/2 Estimativa de falsos positivos na por OR operação aproximação Nu 2 -p. (k-1) n 2M/(p-1) colorações possíveis operações Nu

57 2- C = C1 AND C2 Aprox(C1) = CC(F1), Aprox(C2) = CC(F2) Aprox(C) = CC(Nu({X Y: X F1, Y F2 e X Y L})) não introduz falsos positivos pode retirar positivos mas nunca incluir falsos positivos Pode incluir no máximo 2 -p falsos positivos por operação de Nu Estimativa de falsos positivos para a aproximação AND 2 -p (k-1) n M 2

58 Lema II: Cada aproximação introduz no máximo M 2 ( negativos n-l-1 k-l-1 ) falsos 1 - A operação Nu não introduz falsos negativos. => A aproximação para OR não introduz falsos neg. G + 2- C = C1 AND C2 n-l-1 C1 M 2 ( ) k-l-1 C2 true true CC({X Y/X F2, Y F1 X Y L}) Y 1... Y... Y k pares poss. falsos neg. Aprox por retirada Obs: L < X Y G + X X X j false

59 G + Aprox(C1) = CC(F1) Y Y Y k true Aprox G + X 1... X... X j true Aprox(C2) = CC(F2) Aprox(C1 AND C2) CC({X Y/X F2, Y F1}) CC({X Y/X F2, Y F1 X Y L}) Y 1... Y... Y k Y 1... Y... Y k G + true G + false X X X j X X X j

60 Lema III: Todo circuito aproximante ou é idêntico ao circuito falso ou resulta em verdadeiro em pelo menos metade dos exemplos negativos. ObsI: A operação de aproximação de um AND pode deletar todos os pares. ObsII: Se o circuito aproximante (ingênuo CC(X1,...,Xp)) aceita algum circuito Algum Xi aceita os exemplos negativos (têm cliques) Existem Z i 2 k-1 L 2 k-1 L! (L-2)! 2! k-1 = 8 ( n)! 8 ( n -2)! 2! 4 n -1 1/2 exemplos de circuitos k-1 colorações em um circuito de L vértices

61 Colapso da hierarquia polinomial de complexidade Definição: P/Poly é a classe de linguagens aceita por circuitos booleanos de tamanho polinomial.

62 Exemplo positivo de tamanho n k - Um grafo com ( 2 ) arestas conectando k vértices de todas as formas possíveis Obs: Existem ( ) exemplos positivos n k

63 Exemplo negativo de tamanho n - Colorir os vértices com (k-1) cores diferentes e unir por uma aresta todos os pares de nós que são coloridos com cores diferentes. Obs: Existem (k-1) n exemplos negativos (contando isomorfismo)

64 A(P A = NP A ) A = { <T,w,1 k > / w é aceita por T usando no máximo k células } P A NP A (fácil) T L NP A P A L w L T w A: T w 1 p ( w ) p( w ) A w 0 T w n,1 k A w 0 T w n,1 k w n 1 k w n w n sim p( w ) p ( w ) sim w sk

65 NP C P C C( P C NP 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.

66 Diagonalização em partes para definir C: C(i) = {w / w C e w = i} C(0) = {} 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 }} L C P C ==> existe T i tal que L C é aceita por T i ==> Se T ic (0 i ) = aceita então 0 i C(i) = {} Se T ic (0 i ) = rejeita então 0 i C(i) 0 i W = max{ w / w W } L C P C

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

68 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 roda em tempo f(2n+1/2) = f(n) 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 (Diag f ) = não T Paraf (Diag f,diag f ) = sim Diag f aceita sua descriçao em tempo f(n)

69 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 Li Ci Define-se G j z Σ * tal que G P e : z L i Δ L j i e z G 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

70 Z i,n 1 = menor palavra z com z >= n e z L 1 ΔL 1 i Z i,n 2 = menor palavra z com z >= n e z L 2 ΔL 2 i Rk(n) = max{ } + 1 i n Z k i,n L 1 C1 ===> L 1 ΔL i 1 para todo i C1 fechada por var. finita ====> para todo j e n j existe z L 1 ΔL j 1 R1 é total e computável R é uma função de tempo construtível tal que R(n) max(r1(n), R2(n)). G = { x / R 2n (0) x R 2n+1 (0) e n 0}

71 G P T = Máquina de Turing que conta o tempo de R. T(x) pára em exatamente R( x ) passos Algoritmo - Executar x passos de T(1 0 ) verificando se R(0) > x ==> R(0) > x > 0 Executar x passos de T(1 R(0) ) verificando se R(R(0)) > x ==> R(R(0)) > x > R(0) Executar x passos de T(1 R(0) n ) verificando se R n (0) > x ==> R n (0) > x > R n-1 (0) até achar o intervalo e verificar se n é par ou impar

72 Teorema: Se existe uma linguagem unária (L {1} * ) NP-completa então NP = P Suponha L unária e NP-completa Existe uma redução R polinomial, tal que, x SAT, sss R(x) L 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] n = A t... f t t.. f f... t t... t

73 Construção de um algoritmo poli para SAT Algoritmo I 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 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; Propriedades desejáveis do hashing: 1- Ter domínio pequeno (poli) 2- Se hash(t)=hash(t ) então A[t] Sat sse A[t ] Sat hash(t) = R(A[t])

74 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

75 Máquina M original a b c b Speedup Linear Σ símbolos Q estados => Seja m um inteiro (dependendo de ε e de M) m Máquina Mε a b c b c a a c m Σ + Σ m símbolos muito mais que Q estados abcb..ca ac...

76 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ε. - 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 m a b c b c a a c c m b c bc... bcaacc......abc 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

Medindo a eficiência de algoritmos. - Relacionando os algoritmos e os problemas que estes resolvem

Medindo a eficiência de algoritmos. - Relacionando os algoritmos e os problemas que estes resolvem Medindo a eficiência de algoritmos - Escolha do modelo computacional - Recursos: Tempo, Memória - Relacionando os algoritmos e os problemas que estes resolvem - Computação de Funções - Problemas de otimização

Leia mais

TEORIA DE COMPLEXIDADE

TEORIA DE COMPLEXIDADE TEORIA DE COMPLEXIDADE Fundamentos: classes P e N P Mauricio Ayala-Rincón Grupo de Teoria da Computaç~ao http://ayala.mat.unb.br/tcgroup Instituto de Ciências Exatas Universidade de Brasília, Brasília

Leia mais

Introdução à Teoria da Prova para Métodos Formais. Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ

Introdução à Teoria da Prova para Métodos Formais. Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Introdução à Teoria da Prova para Métodos Formais Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Panorama da Matemática no Século XIX - Problemas da Física Matemática (Sec. XVIII-XIX):

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Algoritmos em Grafos Estruturas de Dados para Conjuntos Disjuntos Programação Linear Programação Dinâmica Algoritmos Greedy

Leia mais

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34 Análise e Síntese de Algoritmos Problemas NP-Completos CLRS, Cap. 34 Contexto Revisões [CLRS, Cap. 1-10] Algoritmos em Grafos [CLRS, Cap. 22-26] Algoritmos elementares Árvores abrangentes Caminhos mais

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes A classe P consiste nos problemas que podem ser resolvidos em tempo Polinomial (Problemas tratáveis) A classe NP consiste nos problemas que podem ser verificados em tempo polinomial (Problemas

Leia mais

Teoria da Computação 31 de Maio de 2017 Teste 2A Duração: 1h30

Teoria da Computação 31 de Maio de 2017 Teste 2A Duração: 1h30 31 de Maio de 2017 Teste 2A Duração: 1h30 Seja Σ um alfabeto. Considere as seguintes linguagens: L 1 = {M M : M é máquina classificadora}, L 2 = {M M : L ac (M) = Σ }. a) Use o teorema de Rice para demonstrar

Leia mais

Teoria da Computação 27 de Maio de 2015 Teste 2A Duração: 1h30

Teoria da Computação 27 de Maio de 2015 Teste 2A Duração: 1h30 Instituto Superior Técnico Lic. Engenharia Informática e de Computadores (Alameda) Teoria da Computação 27 de Maio de 2015 Teste 2A Duração: 1h30 Grupo I (3+1+3 valores) Considere as linguagens P A = {M

Leia mais

Algoritmos de Aproximação Segundo Semestre de 2012

Algoritmos de Aproximação Segundo Semestre de 2012 Algoritmos de Aproximação Segundo Semestre de 2012 Aproximação p. 1 Problema de decisão Problema de decisão: conjunto I de instâncias e função f : I {SIM, NÃO} Aproximação p. 2 Problema de decisão Problema

Leia mais

Teoria da Computação e Fundamentação da Matemática : Um pouco de história Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ

Teoria da Computação e Fundamentação da Matemática : Um pouco de história Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Teoria da Computação e Fundamentação da Matemática : Um pouco de história Edward Hermann Haeusler Prof. do Departamento de Informática PUC/RJ Qual a relação entre a Lógica e a Computação? - O que é a (Teoria

Leia mais

INTRATABILIDADE e NP-COMPLETUDE

INTRATABILIDADE e NP-COMPLETUDE INTRATABILIDADE e NP-COMPLETUDE Sandro Santos Andrade Doutorado Multiinstitucional em Ciência da Computação UFBA/UNIFACS/UEFS Junho/2008 Grafos e Análise de Algoritmos Introdução Para alguns problemas

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 5 de dezembro de 2017 Marco Antonio

Leia mais

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado?

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado? LFA - PARTE 6 Os Limites da Computabilidade O Que É Computável? O Que É Possível De Ser Computado? João Luís Garcia Rosa LFA-FEC-PUC-Campinas 2002 R. Gregory Taylor: http://starbase.cs.trincoll.edu/~rtaylor/thcomp/

Leia mais

Técnicas de Extensão de MT

Técnicas de Extensão de MT Máquinas de Turing Técnicas de Extensão de MT Permanecer parada após a leitura (STILL) Máquinas de Turing com Múltiplas Fitas e Cabeças Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes O limite superior de complexidade de um problema refere-se ao melhor algoritmo que o resolve. nlog 2 n é um limite superior para o problema de classificação. O limite inferior de um problema

Leia mais

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns

Leia mais

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Marcos Castilho. DInf/UFPR. 16 de maio de 2019 16 de maio de 2019 Motivação Quais são os limites da computação? O que é um Problema de decisão? Um problema de decisão é um conjunto de perguntas, cada uma das quais tem um SIM ou um NÃO como resposta.

Leia mais

Uma forma de classificação

Uma forma de classificação Uma forma de classificação L. Não-RE ou f. nãocomputáveis LRE ou MT ou f. comput. L. Indecidíveis ou Procedimentos L. Recursivas ou Decidíveis ou Algoritmos Outra forma de classificação Problemas Indecidíveis

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 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 decidíveis por Máquinas de Turing (Recursivas)

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205

Melhores momentos AULA PASSADA. Complexidade Computacional p. 205 Melhores momentos AULA PASSADA Complexidade Computacional p. 205 MT multifita por MT fita única Duas máquinas são equivalentes se elas reconhecem a mesma linguagem. Teorema. Dada uma máquina de Turing

Leia mais

Teoremas de Incompletude de Gödel e os Fundamentos da Matemática

Teoremas de Incompletude de Gödel e os Fundamentos da Matemática Teoremas de Incompletude de Gödel e os Fundamentos da Matemática Rogério Augusto dos Santos Fajardo MAT554 - Panorama de Matemática 6 e 8 de agosto de 2018 Lógica e Teoria dos Conjuntos servem como: Lógica

Leia mais

Turing e Complexidade

Turing e Complexidade (baseado em material da disciplina PCS2214) PMR2300 Escola Politécnica da Universidade de São Paulo Máquina de Turing Máquina de Turing: modelo mais poderoso de computador, proposto pelo inglês Alan M.

Leia mais

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Máquinas de Turing - Computabilidade

Máquinas de Turing - Computabilidade BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

Análise de Algoritmos. Slides de Paulo Feofiloff

Análise de Algoritmos. Slides de Paulo Feofiloff Análise de Algoritmos Slides de Paulo Feofiloff [com erros do coelho e agora também da cris] Algoritmos p. 1 Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução

Leia mais

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens 1 Introdução Estudar computação do ponto de vista teórico é sinônimo de caracterizar

Leia mais

Aula 10: Tratabilidade

Aula 10: Tratabilidade Teoria da Computação DAINF-UTFPR Aula 10: Tratabilidade Prof. Ricardo Dutra da Silva Na aula anterior discutimos problemas que podem e que não podem ser computados. Nesta aula vamos considerar apenas problemas

Leia mais

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136 Melhores momentos AULA PASSADA Complexidade Computacional p. 136 Configurações controle q 7 cabeça 1 0 1 1 0 1 1 1 fita de leitura e escrita Configuração 1 0 1q 7 1 0 1 1 1 Complexidade Computacional p.

Leia mais

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes. Redução polinomial Permite comparar o grau de complexidade de problemas diferentes. Uma redução de um problema Π a um problema Π é um algoritmo ALG que resolve Π usando uma subrotina hipotética ALG que

Leia mais

SCC-5832 Teoria da Computação

SCC-5832 Teoria da Computação Teoria da Computação SCC-5832 Teoria da Computação João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos

Leia mais

Complexidade de Tempo

Complexidade de Tempo Complexidade de Tempo 1 Complexidade de Tempo Quando um problema é decidível, ele pode não ser solúvel na prática se a solução requer uma quantidade excessiva de tempo ou memória Medindo a complexidade

Leia mais

Complexidade computacional

Complexidade computacional Complexidade computacional CLRS sec 34.1 e 34.2 Algoritmos p. 1 Algumas questões Por que alguns problemas parecem ser (computacionalmente) mais difíceis do que outros? Algoritmos p. 2 Algumas questões

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)

Leia mais

Teoria da Complexidade Computacional

Teoria da Complexidade Computacional Teoria da Complexidade Computacional 25 de novembro de 2011 Enquanto a teoria de análise de algoritmos estuda a análise de complexidade de algoritmos, a teoria da complexidade estuda a classificação de

Leia mais

Complexidade computacional

Complexidade computacional Complexidade computacional Marina Andretta ICMC-USP 15 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff,

Leia mais

Modelos de Computação Folha de trabalho n. 10

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução. Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ BACHARELADO EM SISTEMAS DE INFORMAÇÃO NICOLLAS MOCELIN SDROIEVSKI

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ BACHARELADO EM SISTEMAS DE INFORMAÇÃO NICOLLAS MOCELIN SDROIEVSKI UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ BACHARELADO EM SISTEMAS DE INFORMAÇÃO NICOLLAS MOCELIN SDROIEVSKI PROBLEMAS CANDIDATOS A NP-INTERMEDIÁRIOS E O PROBLEMA DE MINIMIZAÇÃO DE CIRCUITOS TRABALHO DE

Leia mais

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Draft-v0.1. Máquinas de Turing Máquinas de Turing 13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal

Leia mais

5COP096 TeoriadaComputação

5COP096 TeoriadaComputação Sylvio 1 Barbon Jr barbon@uel.br 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema

Leia mais

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Problemas Intratáveis ou computação eficiente X computação ineficiente

Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Intratáveis ou computação eficiente X computação ineficiente Problemas Tratáveis Os problemas que podem ser resolvidos em tempo polinomial em um computador típico são exatamente os mesmos problemas

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE. DEINFO - UFRPE Julho, 2014 Motivação Introdução O que pode ser computado? E mais intrigantemente, o que não pode ser computado? Motivação Introdução O que pode ser computado? E mais intrigantemente, o

Leia mais

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta... sumário 1 introdução e conceitos básicos 1 1.1 introdução à matemática discreta... 2 1.2 conceitos básicos de teoria dos conjuntos... 3 1.2.1 conjuntos...3 1.2.2 pertinência...5 1.2.3 alguns conjuntos

Leia mais

Melhores momentos AULA 24. Algoritmos p.906/953

Melhores momentos AULA 24. Algoritmos p.906/953 Melhores momentos AULA 24 Algoritmos p.906/953 Problemas polinomiais Analise de um algoritmo em um determinado modelo de computação estima o seu consumo de tempo e quantidade de espaço como uma função

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas são sim ou não. Exemplo

Leia mais

Aula 9: Máquinas de Turing

Aula 9: Máquinas de Turing Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular

Leia mais

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Linguagens Formais e Autômatos Decidibilidade

Linguagens Formais e Autômatos Decidibilidade Linguagens Formais e Autômatos Decidibilidade Andrei Rimsa Álvares Sumário Introdução A tese de Church-Turing Máquinas de Turing e problemas de decisão Máquina de Turing Universal O problema da parada

Leia mais

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

SCC Teoria da Computação e Linguagens Formais

SCC Teoria da Computação e Linguagens Formais SCC-0205 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br

Leia mais

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação

Leia mais

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens: UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM167 Teoria da Computação Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Primeira Lista de Exercícios 2005/1 Exercício

Leia mais

Modelos Universais de Computação

Modelos Universais de Computação Modelos Universais de Computação 1 Equivalência entre Variantes de TM TM s definem naturalmente uma classe. Toda variante razoável de TM define a mesma classe de linguagens. (reforça a Tese Church-Turing)

Leia mais

Noção de Computabilidade

Noção de Computabilidade Noção de Computabilidade 1 Procedimento X Algoritmo Procedimento: sequência finita de instruções, que são operações claramente descritas, e que podem ser executadas mecanicamente, em tempo finito. claramente

Leia mais

Linguagens recursivamente enumeráveis

Linguagens recursivamente enumeráveis Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M

Leia mais

Instituto Superior Técnico Teoria da Computação - LEIC 2013/2014 Aula prática 1

Instituto Superior Técnico Teoria da Computação - LEIC 2013/2014 Aula prática 1 Instituto Superior Técnico Teoria da Computação - LEIC 2013/2014 Aula prática 1 Nota: Na sequência o símbolo representa o símbolo de registo vazio. 1 Máquinas de Turing 1. Considere a máquina de Turing

Leia mais

SCC Introdução à Teoria da Computação

SCC Introdução à Teoria da Computação SCC-0505 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ joaoluis@icmc.usp.br

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Fabrício Olivetti de França 14 de Junho de 2018 1 λ-cálculo 2 Computabilidade Computabilidade é uma área de estudo central da Ciência da Computação. Ela estuda a possibilidade

Leia mais

Introdução aos Métodos de Prova

Introdução aos Métodos de Prova Introdução aos Métodos de Prova Renata de Freitas e Petrucio Viana IME-UFF, Niterói/RJ II Colóquio de Matemática da Região Sul UEL, Londrina/PR 24 a 28 de abril 2012 Sumário Provas servem, principalmente,

Leia mais

Aula 10: Decidibilidade

Aula 10: Decidibilidade Teoria da Computação Segundo Semestre, 2014 Aula 10: Decidibilidade DAINF-UTFPR Prof. Ricardo Dutra da Silva Definição 10.1. Um problema de decisão P é um conjunto de questões para as quais as respostas

Leia mais

CI065 CI755 Algoritmos e Teoria dos Grafos

CI065 CI755 Algoritmos e Teoria dos Grafos CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices

Leia mais

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Problemas de Decisão Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas

Leia mais

Máquinas de Turing 3

Máquinas de Turing 3 Máquinas de Turing 3 Máquinas de Turing com Múltiplas Fitas Máquinas de Turing Não-deterministicas A Tese/Hipótese de Church-Turing Linguagens decidíveis por Máquinas de Turing (Recursivas) Linguagens

Leia mais

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,

Leia mais

PROVA 2 DE MATEMÁTICA DISCRETA 2O. SEMESTRE DE 2008

PROVA 2 DE MATEMÁTICA DISCRETA 2O. SEMESTRE DE 2008 PROVA 2 DE MATEMÁTICA DISCRETA 2O SEMESTRE DE 2008 Instruções: 1 As soluções a serem entregues devem ser elaboradas individualmente Entretanto, você pode discutir os problemas com colegas e professores

Leia mais

Lógica e Computação. Uma Perspectiva Histórica

Lógica e Computação. Uma Perspectiva Histórica Lógica e Computação Uma Perspectiva Histórica Alfio Martini Facin - PUCRS A Lógica na Cultura Helênica A Lógica foi considerada na cultura clássica e medieval como um instrumento indispensável ao pensamento

Leia mais

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Decidibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Decidibilidade Mário S Alvim (msalvim@dccufmgbr) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S Alvim (msalvim@dccufmgbr) Decidibilidade DCC-UFMG (2018/02) 1 / 45 Decidibilidade:

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos 2018.2 Classes P e NP P São os problemas que podem ser resolvidos em tempo polinomial por uma Máquina de Turing Determinística. NP São os problemas que podem ser decididos

Leia mais

Problemas Computáveis

Problemas Computáveis Indecidibilidade Problemas Computáveis Máquinas de Turing ou Problemas Computáveis ou Linguagens Recursivamente Enumeráveis LER (*) podem ser divididas em 2 classes: as MT que sempre param (Algoritmos),

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

Variedades Adicionais das Máquinas de Turing

Variedades Adicionais das Máquinas de Turing LFA - PARTE 5 Variedades Adicionais das Máquinas de Turing 1 Máquinas de Turing com uma Fita Infinita de um Sentido A fita da máquina é infinita apenas à direita O quadrado da fita mais à esquerda contém

Leia mais

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1 Máquinas Universais Um modelo de computação diz-se universal se todo o problema efectivamente computável o for nesse modelo. Um modelo universal é suficientemente poderoso para se aceitar a si próprio:

Leia mais

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú

Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú Projeto e Análise de Algoritmos Prof. Ruy Luiz Milidiú 5/5/2014 Ruy Luiz Milidiú 1 O Teorema de Cook 5/5/2014 Ruy Luiz Milidiú 2 Resumo Objetivo Apresentar os conceitos básicos necessários ao enunciado

Leia mais

Classes de Complexidade

Classes de Complexidade Classes de Complexidade Nelma Moreira Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: nam@dcc.fc.up.pt Última revisão: 2017 Este texto é em parte baseado nos

Leia mais

Algoritmos Combinatórios: Introdução

Algoritmos Combinatórios: Introdução lucia@site.uottawa.ca UFSC, Fevereiro, 2010 Estruturas e Problemas Combinatórios Introdução a Algoritmos Combinatórios O que são: Estruturas Combinatórias? Algoritmos Combinatórios? Problemas Combinatórios?

Leia mais

Grafos: caminhos (matriz adjacência)

Grafos: caminhos (matriz adjacência) Grafos: caminhos (matriz adjacência) Algoritmos e Estruturas de Dados 2 Graça Nunes 1 O problema do menor caminho Um motorista deseja encontrar o caminho mais curto possível entre duas cidades do Brasil

Leia mais

Teoria da Computação. Computabilidade e complexidade computacional

Teoria da Computação. Computabilidade e complexidade computacional Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade

Leia mais

Análise de algoritmos. Parte I

Análise de algoritmos. Parte I Análise de algoritmos Parte I 1 Procedimento X Algoritmo Procedimento: sequência finita de instruções, que são operações claramente descritas, e que podem ser executadas mecanicamente, em tempo finito.

Leia mais

Busca e Decisão. Problemas de Otimização. Kakuro. P e NP. Pode-se resolver o Kakuro somente resolvendo problemas de decisão?

Busca e Decisão. Problemas de Otimização. Kakuro. P e NP. Pode-se resolver o Kakuro somente resolvendo problemas de decisão? Busca e Decisão Universidade Federal de Ouro Preto Departamento de Computação P e NP Decisão: Respostas SIM ou NÃO Eiste uma clique de tamanho k no grafo? Eiste um preenchimento da mochila com lucro z?

Leia mais

Aula 1: Introdução ao curso

Aula 1: Introdução ao curso Aula 1: Introdução ao curso MCTA027-17 - Teoria dos Grafos Profa. Carla Negri Lintzmayer carla.negri@ufabc.edu.br Centro de Matemática, Computação e Cognição Universidade Federal do ABC 1 Grafos Grafos

Leia mais

Capítulo 2: Procedimentos e algoritmos

Capítulo 2: Procedimentos e algoritmos Capítulo 2: Procedimentos e algoritmos Para estudar o processo de computação de um ponto de vista teórico, com a finalidade de caracterizar o que é ou não é computável, é necessário introduzir um modelo

Leia mais

Conteúdo. Conceitos e Resultados Gerais. 11 Combinatória. Introdução

Conteúdo. Conceitos e Resultados Gerais. 11 Combinatória. Introdução Introdução ix I Conceitos e Resultados Gerais 1 1 Linguagem Matemática e Lógica Informal 1.1 Sistemas matemáticos.. 1.2 Noção de conjunto... 1.3 Linguagem proposicional.. 1.4 Operações sobre conjuntos.

Leia mais

Outras abordagens à computabilidade. Nota

Outras abordagens à computabilidade. Nota Outras abordagens à computabilidade 3.1 Nota Os presentes acetatos foram baseados quase na sua totalidade nos acetatos realizados pela Professora Teresa Galvão da Universidade de Porto para a cadeira Teoria

Leia mais

Teresa Galvão LEIC - Teoria da Computação I 3.1

Teresa Galvão LEIC - Teoria da Computação I 3.1 3. Outras abordagens à computabilidade 3.1 Outras abordagens à computabilidade 3.2 Funções parciais recursivas 3.3 Funções recursivas primitivas 3.4 Computabilidade de Turing 3.5 Sistemas de Post e Markov

Leia mais

Classes de Complexidade

Classes de Complexidade Classes de Complexidade Nelma Moreira Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: nam@dcc.fc.up.pt Última revisão: 2016 2 Conteúdo 1 Preliminares 7 1.1 Ordens

Leia mais

2 Preliminares. (ii) α é uma subfórmula de α; (iii) Se γ β é uma subfórmula de α então também são γ, β para =,,.

2 Preliminares. (ii) α é uma subfórmula de α; (iii) Se γ β é uma subfórmula de α então também são γ, β para =,,. 2 Preliminares Com intuito de fixar a notação, apresentaremos, neste capítulo, resultados e definições essenciais que serão utilizados ao longo da tese. Para indicar identidade de duas expressões, usaremos.

Leia mais

2 A Teoria de Conjuntos - Preliminares

2 A Teoria de Conjuntos - Preliminares 2 A Teoria de Conjuntos - Preliminares Esse capítulo se propõe a apresentar de maneira breve os resultados da teoria de conjuntos que serão utilizados nos capítulos subseqüentes. Começamos definindo as

Leia mais

Teoria da Computação. Complexidade computacional classes de problemas

Teoria da Computação. Complexidade computacional classes de problemas Teoria da Computação Complexidade computacional classes de problemas 1 Universo de problemas Problemas indecidíveis ou não-computáveis Não admitem algoritmos Problemas intratáveis Não admitem algoritmos

Leia mais

b b!. (2) [Sugestão para (iii ). Avalie (1+x) a por cima e por baixo para x = b/a. Use, para tanto, 1 + x e x e o binômio de Newton: (1 + x) a ( a

b b!. (2) [Sugestão para (iii ). Avalie (1+x) a por cima e por baixo para x = b/a. Use, para tanto, 1 + x e x e o binômio de Newton: (1 + x) a ( a EXERCÍCIOS DE MATEMÁTICA DISCRETA 2O. SEMESTRE DE 2007 1. Prove as seguintes estimativas. Nesta questão, escrevemos O(f(x)) para qualquer termo y tal que y C f(x) para todo x satisfazendo x x 0, onde C

Leia mais

Léo Vieira Peres. Complexidade de circuitos booleanos

Léo Vieira Peres. Complexidade de circuitos booleanos Léo Vieira Peres Complexidade de circuitos booleanos Florianópolis/SC 2018 Léo Vieira Peres Complexidade de circuitos booleanos Orientadora: Profa. Dra. Jerusa Marchi Proposta de trabalho de conclusão

Leia mais

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000) Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q

Leia mais

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

Universidade Federal de Uberlândia Mestrado em Ciência da Computação Universidade Federal de Uberlândia Mestrado em Ciência da Computação Solução da 1 a Prova de Teoria da Computação - 05/05/2010 Questão 1 (Valor = 7 pontos) Um número real é dito algébrico se é raiz de

Leia mais