Escolar Documentos
Profissional Documentos
Cultura Documentos
CT-234
Mquina de Turing q g
Fita 1 1 0 1 1 0 0 0 1 F ta nf n ta Fita infinita dividida a em posies No caso binrio binrio, pode conter 1 ou 0 ( q (equivalente a vazio) ) Est inicialmente vazia (somente 0s) 0 s)
Definio formal f f m
Mquina de Turing TM = (Q, , , q0, F): q g , , )
Q: conjunto finito de estados : alfabeto q0 Q: um estado inicial Qx : Qx Qx(U{L,R}): funo de trans o Qx( U{L,R}) transio F Q: subconjunto de estados finais (sem transies)
Funcionamento de TM:
A entrada e a sada so os elementos de presentes na fita TM comea no estado q0 e a entrada nunca vazia As computaes so realizadas de acordo com a funo TM para quando a funo no prev movimentos Eventualmente, TM pode ficar em loop infinito...
Estados e transies
Leitura Escrita Move-se para M a esquerda
q2 (q1, a) = (q2, b, L) b
q1
a b, L
q1
a b, R
Exemplo de transio mp
q1 ab L b, q2 a q1 a b q2 b c c
Vazio
......
......
Tempo 2
Funo computvel mp
Seja f uma funo definida em um domnio D D. Dizemos que f computvel pela Mquina de Turing TM se, para todo w D, temos as seguintes configuraes inicial e final:
q0 w qf f(w)
estado inicial
estado final
Um exemplo m mp
Clculo de f(x,y) = x y, com x e y natura s e = {0,1}. lculo x+y, naturais {0, }. y x
Incio:
...
1 x y x+y
...
Final:
1 qf
...
estado final:
Soluo
1 1, R 1 1, R 1 1, L
q0
01 R 1,
q1
00 L 0,
q2
10 L 0,
q3 0 0, R
q4
Outro exemplo mp
Clculo de f(x) = 2x, com x natural e = {0 1 $} 2x {0,1,$}. Representao anloga do exemplo anterior. p g p Ideia do algoritmo:
Trocar cada 1 por um $ Repetir:
Encontrar o $ mais direita e troc-lo por um 1 Ir at o extremo da direita e acrescentar outro 1
At no haver mais $
Soluo
1 $, R 1 1, L , 1 1, R ,
q0
0 0, L
q1
$ 1, R
q2
0 0, R q3 0 1, L
Exerccios:
Resolver o mesmo problema com = {0,1}. {0 1} Clculo do maior: f(x,y) = 1, se x > y; f(x,y) = 0, se x y.
A negativa muito interessante: se no houver uma Mquina g q de Turing capaz de resolver um determinado problema, nenhum computador o ser!
q0
b b, L ,
q2
Outro exemplo mp
Uma TM que aceita a linguagem anbn, n > 0:
q4 y y, R , L q3 y y, R q0 a x, R q1 b y, L q2 y y, R a a, R y y, L a a, L
x x, R
Descrio instantnea
Suponha que, durante a execuo de uma TM, S h d t d TM atinja-se a seguinte configurao:
b qi
Computaes mp
Suponha que durante a execuo de uma TM, que, TM ocorra a seguinte transio: (qi, b) = (qj, a, L)
c a b qi a c a qj a a
Formalizao m
Seja uma Mquina de Turing TM = (Q q0, F) (Q, , , F). Se ocorreram computaes wiqisi wi+1qi+1si+1 em p TM, onde wi *, si * e qi Q, para 1 i < n, ento dizemos que wkqksk * wnqnsn, para 1 k n. q p Chama-se linguagem aceita por TM ao conjunto das cadeias w * tais que q0w * qf onde qf F d i s t is , d F.
NoNo-Determinismo m m
Numa Mquina de Turing No-Determinstica, mais de uma ao possvel a partir de um mesmo estado e com um l ti d t d mesmo smbolo lido. Uma entrada ser aceita se algum estado final for atingido. al um atin ido Exemplo: (q1, a) = (q2, b, L) e (q1, a) = (q3, c, R).
a b, L q1 a c, R q3 q2 b q2 b c
ou
c b c q3
a b c
semelhante a um computador que executa vrios processamentos em paralelo. Basta que um deles termine.
Tempo 0
q1
Tempo 1
J se provou que essas variaes (alm de outras) no aumentam o poder computacional de uma Mquina de Turing, ou seja, no acrescentam novas linguagens que antes no j g g q pudessem ser aceitas... Portanto, a Mquina de Turing um dispositivo simples que , q g p p q conta com o mximo poder computacional possvel.
Linguagens recursivas g g
Dizemos que uma linguagem L decidida por uma TM se essa mquina sempre parar com resposta i t SIM (1) ou NO (0), indicando se a entrada pertence ou no a L L. As linguagens decididas por alguma TM so g g p g chamadas de linguagens recursivas. Segundo a tese de Church-Turing decidibilidade e Church-Turing, computabilidade so conceitos equivalentes: o primeiro refere-se a linguagens; o segundo, a refere se problemas. Em outras palavras, as linguagens recursivas palavras corresponderiam aos problemas computveis.
Hierarquia de Chomsky q m y
Noam Chomsky estabeleceu em 1956 uma hierarquia entre as linguagens. li
Linguagens recursivamente enumerveis (ou irrestritas) Exemplos: anbncn, ww Linguagens sensveis ao contexto Exemplo: an, com n primo E l i Linguagens livres de contexto Exemplos: anbn, wwR Linguagens regulares Exemplos: b+, a*b*
Decidibilidade de linguagens g g
???
Linguagens recursivamente enumerveis
Linguagens recursivas Exemplos: anbncn, ww Linguagens sensveis ao contexto Exemplo: an, com n primo E l i Linguagens livres de contexto t t Exemplos: anbn, wwR Linguagens regulares Exemplos: b+, a*b*
Mquinas de T i M i d Turing Mquinas de Turing limitadas linearmente Autmatos com pilha Autmatos finitos
Poder computacional mp
Qual o fator diferencial que realmente aumenta o poder p computacional desses dispositivos? Mquinas de Turing
Memria infinita com escrita e l it s it leitura em qualquer posio Autmatos com pilha Memria LIFO Autmatos finitos Sem memria
Autmatos com fila (Mquinas de P ) ( d Post) Duas pilhas ou uma fila podem simular a p memria infinita
Linguagens indecidveis g g
A grande e intrigante questo: h algo que no pode ser gran ntr gant qu sto a go qu po s r computado? Formalmente, Formalmente gostaramos de saber se existe alguma linguagem recursivamente enumervel que no seja recursiva. Segundo a T S d Tese d Ch de Church-Turing, se houver uma linguagem h T i h li que no possa ser decidida por nenhuma TM, estaremos diante de um problema no-computvel. no computvel Primeiro indcio: pode-se comprovar que o nmero de TMs contavelmente infinito, enquanto que o nmero de linguagens incontavelmente infinito. Portanto, muito provvel que existam linguagens indecidveis...
Problema da parada m p
O mais conhecido problema no-computvel o da no computvel parada (Halting Problem). Dada D d uma d t determinada TM e uma entrada w, o i d t d problema da parada consiste em saber se TM ir ou no parar com w w. possvel demonstrar por contradio que este p p q problema no computvel. Em termos prticos, no possvel escrever um prticos programa que preveja se outros programas vo entrar em loop...
Mquina de Turing H q g
Suponhamos que exista uma Mquina de Turing H S h m s ist m M i d T i capaz de decidir o problema da parada. H receber como entrada a codificao e(M) de uma Mquina de Turing M e uma entrada w para M.
M para com entrada w M no para com entrada w
e(M)w (M)
SIM NO
Construo de H
Com H, vamos constru r uma nova mqu na H: construir mquina H
Se H retornar SIM, H ficar em loop; Se S H retornar NO H parar. NO,
H e(M)w
q0
H
qs
Loop L
SIM
qa qb
qn
NO
Diagonalizao g
O que acontecer se H receber e(H)e(H) como H e(H )e(H ) entrada?
Se H parar com entrada e(H ), H fi S H p m nt d (H) H ficar em l p; m loop Se H no parar com entrada e(H), H parar.
H para ou no para com entrada e(H)? Contradio!! C t di !! Portanto, no pode existir a mquina H. , p q Concluso: o problema da parada no computvel.
Reconhecimento de linguagens m g g
D zemos Dizemos que uma linguagem L reconhecida (ou l nguagem reconhec da semi-decidida) por uma TM se essa mquina sempre parar e indicar SIM quando a entrada p p q pertencer a L, mas permanecer em loop infinito em caso contrrio. Qualquer linguagem recursivamente enumervel p pode ser reconhecida (ou semi-decidida) p ( u m por alguma TM. O problema da parada (e outros semelhantes) so exemplos de linguagens indecidveis: podem ser reconhecidas por uma TM, mas no decididas. TM decididas
BB(n) BB( )
4 6 13 4098 4 6 x 101439 4,6
BB(n) no computvel ( ) mp
Suponha que BB(n) seja computvel. Seja M a TM que calcula BB(n): a partir de uma entrada com n 1s, M gerar BB(n) 1s e ento parar. Seja D uma TM que duplica a quantidade de 1s presente na fita. Seja I uma TM que acrescenta um 1 no final de uma sequncia de 1s j p q j presentes na fita. Vamos criar uma nova TM, que a composio de D, M e I j q nessa ordem. Seja x o nmero de estados desta mquina. Seja C uma TM de x estados que cria uma sequncia de x 1s. A mquina composta por C D M e I t i t C, D, tem 2 estados e 2x t d produz BB(2x)+1 1s. Contradio!!
Problemas intratveis m
At o momento nos preocupamos apenas com a momento, computabilidade de um problema, ou seja, com a existncia de um algoritmo que o resolva resolva. Uma vez que esse problema seja computvel, outro aspecto muito importante a sua dificuldade, isto , o mnimo tempo necessrio para se chegar sua resoluo. Problemas computveis para os quais se desconhecem resolues em tempo vivel so chamados de intratveis.
Um simples exemplo m mp mp
O Problema do Smileys consiste em encontrar um arranjo para n quadrados com sorrisos, de tal modo sorrisos que as cores e os desenhos combinem entre si si. At hoje, a melhor soluo que se conhece para este problema a fora bruta, que gasta t bl f b t t tempo O( !) O(n!)...
Problemas de deciso m
A teoria sobre a intratabilidade de problemas foi desenvolvida somente para problemas de deciso, isto , para aqueles cujas respostas so SIM ou NO. As instncias de um problema de deciso so codificadas p q p como palavras: as que tm respostas SIM formam uma linguagem. Desse modo, resolver um problema de deciso equivale a decidir uma linguagem. Os problemas prticos podem ser transformados em problemas de deciso, cuja resoluo no mais complexa. Portanto, ao se demonstrar que um desses problemas de deciso intratvel, conclui-se que o problema prtico que o originou tambm o .
Os problemas intratveis esto na classe NP. p co-NP: contm os problemas de deciso complementrios aos da classe NP, ou seja, com respostas SIM e NO invertidas. As respostas NO podem ser verificadas eficientemente.
P e NP
Multiplicao de matrizes: O(n2,3...)
H problemas em NP que bl m s m realmente no esto em P? NP P = NP ou P NP? H razes empricas que levam a crer que P NP, mas nenhum resultado formal...
Smileys: O(n!)
Ordenao: (n.log n)
Reduo polinomial p m
Reduzir polinomialmente um problema P1 a um outro p p problema P2 transformar, em tempo polinomial, cada
Algoritmo que resolve P1
y P2
Reduo Polinomial
SIM ou NO
Se P2 puder ser resolvido em tempo polinomial, P1 tambm p p p ser. Podemos dizer que P1 no mais difcil que P2, ou que P2 to ou mais difcil que P1. Notao: P1 P P2
Um exemplo de reduo m mp
Problema Clique(G k): dados um grafo G=(V,E) e um Clique(G,k) G=(V E)
inteiro k, G tem um clique mximo com k vrtices?
Um exemplo de reduo m mp
fcil ver que Clique(G,k) tem a mesma resposta que VC(G,n-k). p Um caso particular, onde n=6 e k=4: G G
k-clique mximo em G
Teorema de Cook m
Em 1971, Stephen Cook provou que o Problema da , p p q Satisfatibilidade Booleana (SAT) NP-Completo. SAT consiste em descobrir se uma frmula booleana (com f ( operadores and, or e not) admite ou no soluo, ou seja, se existe alguma atribuio de valores lgicos (T ou F) s variveis de tal maneira que essa frmula se torne verdadeira. Exemplo: ((a b c) a) (b c) c) a) (b
Mquina de Turing No Determinstica que o resolve em No-Determinstica tempo polinomial. Para cada entrada w de M, construda, p p , q tambm em tempo polinomial, uma frmula booleana que admite soluo se e somente se M aceita w.
Consequncias q
Pouco tempo depois, Richard Karp apresentou uma lista p p , p p com outros 21 problemas NP-Completos: para todos esses problemas de NP, elaborou redues polinomiais a partir do SAT SAT. Atualmente, so conhecidos centenas de problemas NPCompletos (vide livro de Garey and Johnson) ). Alguns exemplos: Clique, Mochila, Caixeiro Viajante, Colorao de Grafos Cobertura de Vrtices etc Grafos, Vrtices, etc. Por outro lado, quando um problema P1 NP-Completo reduzido polinomialmente a outro problema P2, sabe se sabe-se que P2 no mnimo to difcil quanto P1: portanto, diz-se q que P2 NP-Hard (NP-Difcil). ( ) Exemplos: Bin-Packing, Problema da Parada, etc.