Você está na página 1de 45

CT-234

Estrutura de Dados, Anlise de Algoritmos e Complexidade Estrutural p


Nei Yoshihiro Soma Carlos Alberto Alonso Sanches

CT-234

11) Computabilidade e intratabilidade ) p

Mquinas de Turing, Classes de Problemas

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)

Cabea de Escrita e Leitura

Em cada passo, a cabea realiza as seguintes operaes:


a) L o smbolo na posio analisada p b) Escreve um novo smbolo nesta mesma posio c) Desloca-se uma posio para a esquerda ou para a direita

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

Move-se para a direita


q2 (q1, a) = (q2, b, R)

Exemplo de transio mp
q1 ab L b, q2 a q1 a b q2 b c c

Vazio

...... Tempo 1 p ......

......

......

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

w e f(w) esto codificados atravs do alfabeto .

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

...

estado inicial: q0 inicial

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.

Tese de Church-Turing (1936) Churchg( )


Uma Mquina de Turing que para com qualquer entrada a q gq p q q noo precisa do que intuitivamente chamamos de algoritmo. Em outras palavras, qualquer computao real (ou seja, p q q p ( j completa, determinstica e realizada por um procedimento mecnico ou similar) tambm pode ser feita em uma Mquina de Turing, ou seja esse modelo caracteriza a noo de Turing seja, computabilidade. Portanto, Portanto se dizemos que existe um algoritmo que resolve um determinado problema, estamos afirmando tambm que esse

mesmo problema computvel e pode ser resolvido em uma Mquina de Turing. M d

A negativa muito interessante: se no houver uma Mquina g q de Turing capaz de resolver um determinado problema, nenhum computador o ser!

Aceitao e rejeio de entradas j


Alm de computar funes, as Mquinas de Turing so dispositivos que reconhecem li di i i h linguagens. Uma TM aceita uma entrada se, aps realizar os movimentos previstos, para em um estado final. d f l Consequentemente, uma entrada ser rejeitada se essa TM q j parar em um estado no final ou entrar em loop. Exemplo de uma TM que aceita a linguagem a*b: p q g g a a, R

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

Escreva uma TM que aceite a linguagem anbncn.

Descrio instantnea
Suponha que, durante a execuo de uma TM, S h d t d TM atinja-se a seguinte configurao:

b qi

Neste momento, dizemos que a descrio instantnea de TM caqiba. q

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

Neste momento, dizemos que em TM ocorreu a computao caqib cqjaaa. t ba

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

Variaes do modelo padro m p


Suponha as seguintes variaes numa TM: s gu nt s ar a s M
No-Determinismo Fita semi-infinita semi infinita Fita multi-dimensional (matriz) Multi fitas Multi-fitas Multi-cabeas

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

Autmatos com duas pilhas

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

Uma funo no-computvel m f no- mp


A existncia de linguagens indecidveis mostra que nem tudo computvel. No entanto, ser que se conhece alguma funo matemtica no-computvel? Em 1962, Tibor Rado foi o primeiro a mostrar uma funo no computvel que ficou conhecida como no-computvel, Produtividade de uma TM ou Busy Beaver. Definio: BB(n) o nmero mximo de 1s que pode p produzir uma Mquina de Turing de n estados que q g q para, aps comear em uma fita vazia.

A funo Busy Beaver f y


Mesmo para TMs com || = 2, conhece-se BB(n) p apenas para n < 5:
n
2 3 4 5 6

BB(n) BB( )
4 6 13 4098 4 6 x 101439 4,6

Esta funo cresce mais que qualquer outra f m q q q computvel...

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.

O que seria um tempo vivel? q m mp


De modo geral, considera se vivel qualquer geral considera-se resoluo que gaste tempo polinomial no pior caso. So intratveis, por exemplo, os problemas de tempo O(kn) e O(n!), onde n o tamanho do problema e k uma constante. Evidentemente, Evidentemente um problema de tempo O(n100) no seria to vivel assim... No entanto, casos como esse no aparecem na prtica: de modo geral os geral, algoritmos de tempo polinomial costumam ter grau pequeno. pequeno

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 .

Principais classes de problemas p p m


P: contm os problemas que podem ser decididos em tempo polinomial em uma Mquina de Turing Determinstica. Os problemas tratveis esto na classe P P. NP: pode ser definida de duas maneiras equivalentes:
contm os problemas que podem ser decididos em tempo polinomial em uma Mquina de Turing No-Determinstica; contm os problemas cuja soluo pode ser verificada em tempo polinomial em uma Mquina de Turing Determinstica.

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

instncia x de P1 em uma instncia y de P2 de tal modo que P1(x) = P2( ) (y).


x P1

Reduo Polinomial

Algoritmo que resolve P2

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?

Problema Cobertura de Vrtices VC(G,k): d d um P bl C b t d V ti VC(G k) dados


grafo G=(V,E) e um inteiro k, G tem uma cobertura mnima com k vrtices? (cobertura um subconjunto de V no qual incidem todas as arestas de G) G). Seja V= n e G o grafo complementar de G. Mostraremos uma reduo polinomial do Clique(G,k) ao VC(G,n-k). Portanto, Clique no mais difcil que VC(G ,n k) Cobertura de 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

Cobertura mnima de n-k n k vrtices em G

Esta transformao automtica.

Problemas NP-Completos m NP- mp


Um problema de deciso NP-Completo quando dec so NP Completo qualquer problema da classe NP pode ser reduzido p polinomialmente a ele. Se existir, um problema NP-Completo ser o mais difcil da classe NP NP. Consequentemente, encontrar uma soluo de tempo polinomial para um problema NP C t li i l bl NP-Completo l t equivaleria a resolver neste mesmo tempo todos os problemas de NP, ou seja, seria uma demonstrao NP seja de que P = NP.

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

Ideia do Teorema de Cook. Seja um problema NP e M uma

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.

Uma possvel viso das classes m p

Você também pode gostar