Complexidade Computacional, Lógica e Teoria da Prova. Topicos em Teoria de Complexidade Prof. Edward Hermann Haeusler
|
|
- Sérgio Gomes Faro
- 7 Há anos
- Visualizações:
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 - 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 maisTEORIA 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 maisIntroduçã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 maisAná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 maisAná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 maisComplexidade 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 maisTeoria 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 maisTeoria 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 maisAlgoritmos 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 maisTeoria 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 maisINTRATABILIDADE 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 maisPCC104 - 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 maisCapí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 maisOs 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 maisTé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 maisLinguagens 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 maisI.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 maisComplexidade 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 maisProjeto 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 maisMarcos 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 maisUma 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 maisMá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 maisMelhores 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 maisTeoremas 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 maisTuring 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 maisMatemá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 maisMá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 maisINE5317 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 maisAná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 maisProcedimentos 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 maisAula 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 maisMelhores 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 maisReduçã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 maisSCC-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 maisComplexidade 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 maisComplexidade 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 maisINE5403 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 maisTeoria 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 maisComplexidade 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 maisModelos 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 maisCapí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 maisUNIVERSIDADE 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 maisDraft-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 mais5COP096 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 maisApostila 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 maisProblemas 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 maisLinguagens 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 maisLinguagens 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 maisIntroduçã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 maissumá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 maisMelhores 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 maisAula 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 maisAula 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 maisMatemá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 maisLinguagens 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 maisComputaçã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 maisSCC 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 maisMá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 maisPrimeira 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 maisModelos 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 maisNoçã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 maisLinguagens 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 maisInstituto 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 maisSCC 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 maisParadigmas 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 maisIntroduçã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 maisAula 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 maisCI065 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 maisLinguagens 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 maisMá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 maisMecanismos 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 maisPROVA 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 maisLó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 maisDecidibilidade. 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 maisAná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 maisProblemas 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 maisLista 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 maisVariedades 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 maisMá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 maisProjeto 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 maisClasses 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 maisAlgoritmos 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 maisGrafos: 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 maisTeoria 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 maisAná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 maisBusca 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 maisAula 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 maisCapí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 maisConteú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 maisOutras 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 maisTeresa 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 maisClasses 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 mais2 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 mais2 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 maisTeoria 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 maisb 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 maisLé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 maisTeoria 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 maisUniversidade 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