apostila teoria da computacao (pt br)

Upload: pascual-figueroa

Post on 06-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    1/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 1

    INSTITUTO PRESBITERIANO MACKENZIEProfessora Jussara Maria Marins

    Teoria da ComputaoCaptulo 1

    Fundamentos

    1. Fundamentos .............................................................................................................................................. 21.1. Lgica e Linguagem........................................................................................................................... 21.2. Conjuntos............................................................................................................................................ 51.3. Relaes e Funes............................................................................................................................. 71.4. Tipos Especiais de Relaes Binrias............................................................................................... 101.5. Operaes sobre Funes ................................................................................................................. 121.6. Cardinalidade de Conjuntos.............................................................................................................. 13

    1.7. Fechos............................................................................................................................................... 151.8. Tcnicas Fundamentais de Provas.................................................................................................... 15

    Os objetivos gerais deste captulo so:

    Mostrar que a cincia da computao uma cincia interdisciplinar, que muitonova (50 anos), mas possui fundamentos slidos muito antigos (2500 anos)

    baseados na lgica e matemtica. Estabelecer o conceito destas duas ltimascincias tambm no simples.

    Fornecer subsdios para o aluno verificar que o lugar comum nem sempre lgico, ou que o que mais simples, nem sempre o mais formal , que umanoo bsica1nem sempre intuitiva e certos conceitos que esto internalizados

    precisam ser bem definidos para que novos conceitos sejam bem compreendidos.

    Os objetivos especficos deste captulo so:

    Revisar noes bsicas, os axiomas da Lgica, bem como as propriedades dasoperaes lgicas.

    Usar a Teoria de Conjuntos de modo mais simblico e consequentementedesenvolvendo o formalismo necessrio teoria da computao.

    Provar teoremas distinguindo as suas tcnicas fundamentais.

    1 Por exemplo : definir o que uma palavra ou o que um nmero

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    2/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 2

    1. Fundamentos

    1.1.Lgica e Linguagem

    1. O que computao?Para caracterizar um determinado objeto podemos descrev-lo usando outros objetos que o constituem,usando aproximaes expondo o que faz parte do novo objeto e o que no faz parte do objeto. Isto , pelomtodo aristotlico do contraste do que e do que no o novo objeto. Faremos isto com computao.

    Computao no uma cincia da natureza. No estudamos computao do mesmo modo que Fsica, Qumica ou Biologia, pela observao dos

    fenmenos correspondentes, experimentao em situaes controladas, comparao entre resultados,formulao de modelos e teorias e novos experimentos controlados para analisar e validar os resultadosobtidos. Computao no s uma cincia terica.

    Embora usemos muito a matemtica, no basta definirmos entes computacionais, provar a correo defrmulas que modelam algoritmos, etc, pois precisamos na prtica do modelo e/ou instrumento computador

    para fazer computao. Lembremos a Matemtica e a Lgica no so cincias empricas. Mas computaotambm possui disciplinas tericas, isto , que no dependem do modelo usado para computar. Computao no s uma arte.

    As vezes, o que se ope s cincias tericas ou empricas pode ser comparado com Arte. Computaono arte, contudo, preciso criatividade, arte e engenhosidade para criar e aperfeioar os diversosalgoritmos, usando tcnicas j conhecidas ou criando outras. Computao no s tecnologia.

    Inmeros avanos da fsica, da eletrnica, da tica, etc contribuem de forma decisiva na computao e atmesmo determinam novos campos de estudo, mas isto faz parte da Engenharia em si, que depois aplicadaaos modelos fsicos computacionais. a cincia do que computvel2.

    o conjunto conhecimentos matemticos, lgicos, estatsticos, lingsticos, tecnolgicos, eletrnicos etc,organizados do modo que possamos resolver os problemas diversos desde a elaborao ou utilizao de umateoria at ao desenvolvimento e implantao da soluo por meio de algoritmos que possam ser traduzidos em

    programas num computador.Como cincia autnoma ainda muito nova em termos do conhecimento humano.Tudo o que veremos nesta e em outras disciplinas como: Matemtica Discreta, Linguagens Formais,

    Autmatos e Grafos fazem parte do arcabouo da Teoria da Cincia da Computao.Exerccios:1. Procure uma conceituao melhor do que dado acima para computao, relacione suas disciplinas

    descrevendo objetivamente seu escopo. Faa um contraste com Matemtica ou Fsica.2. Procure tambm um bom conceito de algoritmo.3. Idem para as caractersticas de "bom" algoritmo.4. O que "boa qualidade" de um algoritmo?5. Quais as relaes entre um algoritmo e um programa?

    2. Porque fundamentos matemticos para computao?

    A matemtica fornece fundamentos para formalizao dos algoritmos numa linguagem simblica eobjetiva.Um algoritmo facilmente descrito como uma funo que recebe dados de Entrada, os transforma e

    produz uma sada.Entrada Algoritmo Sada

    f: ES

    2 Parece que "choveu no molhado".

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    3/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 3

    xy = f(x)

    Matemtica uma cincia abstrata e usa:- noes bsicas- axiomas- definies- smbolos prprios ou diramos uma linguagem prpria e global3- teoremas

    Alm disso, a matemtica usa a Lgica como uma ferramenta de trabalho, uma vez que todos seusaxiomas tambm so vlidos para a Matemtica. Vale lembrar que a matemtica fundamental para outrasdisciplinas, como Fsica, Qumica e outras por motivos mais ou menos semelhantes. A Matemtica umalinguagem suficientemente4geral e abstrata que pode ser adaptada a diversos contextos. Creio que somente amsica uma linguagem mais ampla do que a Matemtica. Alias a inter-relao entra as duas histrica.

    A questo seguinte, embora muito relacionada com a matemtica, no faz parte desta. As disciplinasda matemticas so Clculo Diferencial e Integral, lgebra, lgebra Linear, Geometria, Topologia, Anlise,Teoria dos nmeros, etc. De fato, a Lgica faz parte da Filosofia, porque sistematiza o modo de analisarmosos pensamentos que se colocam em proposies. H pensamentos, claro, que no so passveis de seremcolocados em proposies, e da entramos no terreno dos sentimentos, das artes, etc. A, tambm alguns vemuma certa lgica. preciso, no confundir bom senso, senso comum, normalidade( no sentido estatstico) comlgica.

    3. Mas, o que a Lgica, afinal?

    A Lgica trata das inferncias vlidas, ou seja, das inferncias cujas concluses tm que serverdadeiras, caso as premissas o sejam. o estudo da veracidade das proposies compostas. A chamadaLgica Simblica inclui a mesma lgica descrita em termos de inferncias e usando simbolismos matemticosestuda o clculo dos predicados clssicos de primeira ordem e suas extenses.

    Uma proposio uma afirmao cujo valor verdade (Verdadeiro ou Falso) pode ser determinadosem ambigidade. Uma proposio pode ser simples ou composta. Uma pergunta: Fabrcio Corintiano?no uma proposio, assim como tambm uma exclamao: Deus me livre! no uma proposio. Para queuma sentena como "Sandra uma aluna do Mackenzie" seja uma proposio necessitamos saber de qualSandra se trata e qual o perodo. J a sentena "O quadro Banhistas de Renoir bonito" e emite um juzo degosto e que no tem o carter de proposio. Finalmente a sentena: "O nmero 25 o quadrado do nmero

    5" uma proposio cujo valor Verdadeiro; enquanto que a sentena: "O nmero 9 mltiplo de 2" umaproposio falsa. O valor verdade da composio ou de operaes sobre as proposies estudado na Lgica.As noes bsicas de lgica so dadas pelo predicado de igualdade, os valores lgicos Verdade ou

    falso e as sentenas que exprimem afirmaes ou proposies, assim como os quantificadores universal:para todos ou todo; existencial :: existe pelo menos um, alguns, algum ou existe um.

    Um axioma ou postulado (ou ainda um dogma) uma proposio aceita como verdade,incondicionalmente, ou sem a necessidade de uma prova. Tambm pode ser chamado de Princpio. Narealidade, no haveria como prov-la mas h total aceitao de sua veracidade.

    - Princpios (axiomas) da Lgica Clssica5:Princpio da Contradio: A seguinte expresso sempre uma contradio ( sempre falsa)

    Princpio do Terceiro Excludo: uma proposio s admite o valor V ou o valor F, excluindo-se um terceirovalor. A afirmao seguinte uma tautologia( sempre verdade).

    3 Muitos falam em carter universal da matemtica, o que muito compreensvel. Mas usamos o seusignificado global, sem nenhuma conotao com a dita "globalizao" ou geleia geral da mdia atual.4 Em termos de epsilons e deltas.5 H outros tipos de Lgicas: a Paraconsistente; Paracompleta; Intucionista; Polivalente; Fuzzy, e outras.

    ( )p p

    p p

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    4/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 4

    - Princpio da Dupla Negao: A negao da negao de uma proposio implica em sua afirmao:

    Clculo proposicional: Estudo da veracidade das proposies compostas com Tabelas Verdade. p,q so proposies simples operaes com proposies: pq, pq, pq, pq O clculo das Proposies completo.

    Isto quer dizer que, existe um mecanismo de determinar se uma proposio composta qualquer sempreverdadeira :Tautologia, ou se sempre falsa: Contradio ou ainda uma Contigncia: nem sempre verdade,nem sempre falsa, dependendo dos valores iniciais das proposies constituintes. Para isso basta fazer atabela-verdade, o que pode ser feito finita e mecanicamente.

    Clculo dos Predicados: Estudo da veracidade das proposies com predicadosa) Predicados: proposies com variveis; "x par" que quer dizer: "os pares..." ou "o nmero que par" Notao: P(x): x par.

    P1(x): x primo

    P2(x): x verdeSe x{2,56,68,98,4} ento P1(x) Verdadeiro.Se x{2,56,17} ento P2(x) falso.

    b) Proposies Quantificadas 1) (nN)(xN)[x+n = x = n+x] Isto significa: Todo nmero natural admite um neutro aditivo.

    Para todos naturais x , existe um nmero natural n tal que , x somado a n resulta no prprio x. Maisclaramente, para x=3, existe o n=0 tal que 3+n=3+0=3; para x=7, existe n=0, tal que 7+n=7+0=7, isto ,tanto para o 3 como para o 7, ou ainda para qualquer outro natural, o neutro um s, o nmero zero. 2) (xZ) (x' Z) [x+x' = x'+x = n]

    O significado agora, diferente, existe um oposto (aditivo) para cada nmero inteiro. Para x=5, existe ooposto aditivo que o -5, e 5 + (-5)=0; para x=-8, existe um outro oposto aditivo que o x'= 8, tal que x+x'=(-8) +8=0.

    Podemos fazer operaes entre predicados, proposies quantificadas e proposies simples, e entotemos o Clculo de Predicados, que pode ser de primeira ou segunda ordem. Estudamos os de primeira ordemque constituem os exemplos vistos e todos aquelas proposies onde as variveis aparecem sempre ligadas aum domnio, ou seja, no possuem variveis livres.

    Exerccios:1. Quais as foram as definies, axiomas, propriedades que j foram vistas em lgica.2. Qual o significado e valor lgico das seguintes sentenas?a) ( f sobre N)[ f(0)=1 e (xN)[x > 0 f(x)=f(x)+1] ].

    b) ( f sobre N)[ f(0)=1 e (xN)[x>0 f(x)=x f(x-1)] ].c) ( F sobre *) [F()= e ( w *) [x F( tail(x) )*head(x)] ]se w* tail(w) indica o fim da palavra e head(x) indica o incio da palavra.

    O Clculo de Predicados de Primeira Ordem no completo. Tal problema foi abordado por Hilbertem 1900. S foi resolvido negativamente por Gdel em 1931. Voltaremos a este assunto.

    4. E o que Linguagem?Sabemos que no podemos passar diretamente um modo de realizar uma tarefa a um computador sem

    passarmos antes por uma linguagem que possa ser traduzida em instrues e comandos realizveis namquinas computador. O mesmo acontece com msica? Os conceitos de linguagem que usaremos so maisrestritos do que as linguagens naturais, isto , a utilizadas por ns. Existem estudos sobre as linguagensnaturais para que possamos modela-las em termos computacionais mas isto outro assunto.

    p p

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    5/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 5

    Leia os seguintes conceitos bsicos no livro texto 1:Teoria da Computao do Paulo e do Tiaraj, naspginas 5,6 e 7. Linguagem Alfabeto Palavra Comprimento de uma palavra

    Subpalavra: prefixo e sufixo Linguagem Formal Concatenao de palavras Concatenao sucessivas de palavras

    1.2.ConjuntosVale citar o que Paul Halmos fala sobre Teoria do Conjuntos em seu Livro "Nave Set Theory .. leia-a,absorva-a e esquea-a. "6

    Noes bsicas ou PrimitivasElementos e conjuntos so noes primitivas

    Notao: I) Letras e Chaves

    Usualmente letras latinas maisculas para conjuntos; letras cursivas para conjuntos de conjuntos eletras minsculas para elementos.

    Isto no obrigatrio!Exemplos: Seja A o conjunto das letras vogais minsculas.

    A={a,e,i,o,u} Seja B o conjunto dos divisores de 24 B={1,2,3,4,6,12,24}

    Seja C conjunto dos subconjuntos de A

    II) Diagramas de Venn

    A={ A, b,g} B={1,3,9,45,67} C={2,3,5,6,8} D={ 5,6,8,9,12}

    Relao Bsica ou PrimitivaPertinncia: eA={a,e,i,o,u}, , pois e um elemento de X; X={a,e} X C ; um conjunto pode ser elemento de outro conjunto. i Y={a,u} pois i no um elemento de Y.

    Axiomas:1. Axioma da Extenso: Dois conjuntos so iguais se e somente se tm os mesmos elementos.2. Axioma da Especificao: A todo conjunto A e a toda condio S(x) corresponde um conjunto B cujos

    elementos so exatamente aqueles x de A para os quais S(x) vale.Exemplos:

    a) S(x) a sentena: x casado.U={Marcos, Paulo, Joo, Ricardo, Artur, Andr}

    6 No vale fazer s a primeira e ltima parte.

    A .b.g.

    1 . 3 9 4567 2 3 5 6 8 9 12

    AB C

    D

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    6/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 6

    C={x U | x casado}C={Paulo, Joo, Artur}

    b) P(x) a sentena: x par.D={ x N| P(x)}D={2,4,6,8,10,12,...}

    3. Axioma da Escolha: ser visto depoisDiferena entre Definio e Conceito

    Definio: Dizer O QUE um objeto ou ente , de modo formal, ou por frmulas, de forma objetiva,completa, sucinta e sem ambigidades.

    Isto significa que na descrio da definio devemos usar noes primitivas, outras definiesanteriores, outros resultados j estabelecidos , sem criar circularidades.

    Conceito: Dizer o que um ente7, explicao ou descrio de uma coisa, sntese, pensamento, etc.

    A definio semelhante e tambm se contrape ao conceito, onde se diz O que , mas de formacoloquial, intuitiva ou mesmo pessoal.

    Relaes de Incluso: X A; X B, A X, B A

    Definio 1: Incluso: estar contidoSejam A e B conjuntos A,B U, conjunto Universo ou referncia.A B ( x U) [ x A xB]

    Definio 2: ContmSeja A e B dois conjuntos

    B A A B

    Para os seguintes teoremas temos que U indica o conjunto Universo ou referencial

    Teorema 1:

    (A U ) [ A]

    Teorema 2:

    (A U) [A A]

    Definio 3: Igualdade de conjunto

    (A, B U) [A=B A B e B A]

    Observe bem esta definio! H alguma coisa de errada com ela? Ou ainda, tem algo demais? Elapode ser omitida?

    Operaes entre conjuntos:Na expresso x|x queremos dizerxU|x...(A, B, C U)

    Definio4: Unio

    7 Ente um conceito da filosofia que designa uma coisa, ser ou substncia. Para ns melhor falarmos deobjeto.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    7/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 7

    AB = {x | x A x B}

    Definio 5: IntersecoA B = {x | x A x B}

    Definio 6: Diferena

    A-B = {x | x A e x B}

    Teorema 3:Dados A,B,C U, temos as seguintes propriedades:

    Idempotncia: AA = A

    A A = A

    Comutativa: AB = BA

    A B = B A

    Associativa : (AB)C = A(BC)

    (A B) C = A (B C)

    Distributiva: A(B C) = (AB) (AC)

    A (BC) = (A B)(A C)Absoro: A ( AB) = A

    A(A B) = A

    Leis de De Morgan: A - (BC) = (A - B) (A - C)

    A - (B C) = (A - B)(A - C)

    1.3.Relaes e Funes

    Noo bsica: par ordenado (a,b) = {a,{a,b}}

    (a,b)(a,b) ou seja, no primeiro par, o 1 componente o a 2 componente o b.Axioma da Escolha:Para todo conjunto no vazio E, existe uma funo

    : (E)* E , tal que (X) X,

    para todo X (E)*.

    Em outras palavras, o axioma nos garante que podemos sempre fixar , ou escolhermos um elementoem cada parte no vazia de X.

    Em algumas situaes necessrio garantirmos tal existncia. Sendo assim podemos trabalhar com aoperao seguinte que a do Produto Cartesiano.

    Definio 7 - Produto Cartesiano(A,BU) [A x B = {(a,b)| aA bB}

    Assim pelo axioma da escolha o produto cartesiano de dois conjuntos no vazios no vazio tambm.

    Definio 8 - Relao Binria:Relao Binria: entre 2 conjuntos A e B qualquer subconjunto do produto cartesiano de A e B.

    Exemplos:

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    8/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 8

    a) A={a, m, k} e B={ 4,7}A x B ={(a,4),(a,7),(m,4),(m,7),(k,4),(k,7)}

    b) A={3,7} e B= ento A x B = .c) Se A= ou B= ento A x B =

    Podemos ter o produto cartesiano entre mais de 2 conjuntos, formando um conjunto de ternas:AxBxC={(a,b,c)| a A, b B, c C}Como h mais de 2 conjuntos, precisamos estabelecer se queremos ternas ou o produto cartesiano feito dois adois conjuntos e a podemos associ-los diferentemente. Assim:(AxB)xC Ax(BxC)

    pois se C={x,y} ento:(AxB)xC=={(a,4),(a,7),(m,4),(m,7),(k,4),(k,7)}xC={((a,4),x),((a,7),x),((m,4),x),((m,7),x),((k,4),x),((k,7),x),((a,4),y),((a,7),y),((m,4),y),((m,7),y),((k,4),y),((k,7),y)}que diferente de Ax(BxC) pois faremos primeiro os pares de BxC e depois os pares com A .Assim podemos falar em:duplas : aRb (a,b) AxBternas : aRbRc (a,b,c)AxBxCPodemos generalizar a definio de relao binria para uma relao n-ria, e da temosn-upla : a1Ra2R... Ran (a1,a2,...an)A1xA2x...xAn

    Definio 9 - FunoFuno de A em B uma relao binria R AxB tal que(aA)(!bB)| (a,b) R).

    Isto significa que cada elemento de A est em correspondncia com um s elemento de B.

    Exemplos:C: conjunto das cidades do BrasilE: conjunto dos estados do BrasilSejam R1 C x E e R2 C x E

    a) R1: {(x,y)| xC, yE x uma cidade do estado y}

    b) R2: {(x,y) | xE, yC y uma cidade do estado x}

    R1 uma funo e R2 no .Notaof: ABx y=f(x)

    A o domnio e B o Contra Domnio - (Range)y a imagem de x

    A' A e f[A']= {f(a)| aA'}={b| b=f(a) aA'}

    Um ponto a salientar que muitas vezes precisamos de uma generalizao do conceito de funo. Estageneralizao a chamada Funo Parcial, ou seja, uma relao onde um elemento do domnio pode noestar relacionado com algum do contra-domnio, mas mantm a caracterstica de estar relacionado a um selemento do contra-domnio. Ainda dizemos que funo parcial uma funo que no esgota o domnio. Afuno que esgota o domnio, ou seja est definida para todo domnio chamada de Funo Total. Squando for necessrio usaremos a funo parcial. O comuml usarmos a funo total ou apenas funo.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    9/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 9

    Exemplos de funes :a) A= B= R conjunto dos reais.

    f: ABx y=f(x)=x 2

    b) f: A B

    x

    y=f(x)=x

    3

    c) f: R+R

    x y=f(x)=sqrt(x )

    onde R+ o conjunto dos reais positivos.d) Faa o grfico dessas funes e um diagram com alguns de seus elementos.

    Propriedades de funes

    Definio 10 -Tipos de funesDado f: ABa) f injetora (a, a'A) [a a' f(a)f(a'))

    b) f sobrejetora (bB) (aA) [b=f(a)]c) f bijetora f injetora e sobrejetora

    Exemplos: Seja f: NNa) f(n)=n+1f injetora mas no sobrejetora

    b) f(n) = n/2 se n par e (n-1)/2 se n mpar.Esta funo f sobrejetora mas no injetora.

    c) f : RR( conjunto dos reais)f(x) = 2x+3

    Neste caso f sobrejetora e injetora. Logo bijetora.

    Exerccios:1. Verifique quais das seguintes relaes so funes:

    a) f: RRx y=f(x)=3+x 3

    b) f: RRx y=f(x)=sqrt( |x | )+5c) f: RRx y=f(x)=ln x + x 2

    d) f: RRx y=f(x)=( x 2 -3 x -6) / (x+3)e) f: RRx y=f(x)=( x 2 -5 x -6) / (x+3)

    2. Modifique o domnio para que as relaes sejam funes, caso j no o sejam3. Quais delas so injetoras, sobrejetoras e bijetoras4. Programe estas funes e a do exemplo b anterior em C. Como modificar o domnio da funo em

    C? Mude as declaraes das variveis para int, byte; float e double. Quais os limites?

    Definio11:Relao Inversa.Uma relao binria R A x B tem uma inversa R-1 B x A que definida por(b,a) R-1 se e somente se (a,b) R.

    Teorema 4 :Uma funo f inversvel se e somente se f bijetora.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    10/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 10

    Definio12: IsomorfismoUm isomorfismo entre dois conjuntos A e B dado por qualquer funo bijetora.

    1.4.Tipos Especiais de Relaes BinriasDepois das definicoes temos sempre a parte da classificao dos diferentes tipos definidos. Veremos os tipos eas representaes grficas a seguir.

    Representao grfica Diagramas Grafos

    1) Exemplo: A = { 1,2,3,4} R AxA

    Grafo de R

    xRy xy2) Diagrama de R

    Grafo: G = (V,A)V: conjunto de vrtices ou nsA: conjunto de arestas ou ligaes entre ns

    Exemplo 1:V= {1,2,3,4} A= {(1,1), (1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,3), (3,4), (4,4)}

    Fazer a figura do grafo V com as arestas dadas em A .

    Exemplo 2:

    V= {a,b,c,d} A= {(a,b), (b,a), (a,d), (d,c), (c,c), (c,a)}

    Fazer a figura do grafo V com as arestas dadas em A .

    Propriedades das RelaesOu seja, os tipos especiais de relaes que temos.

    Seja A um conjunto e RAxA

    Definio 13: Relao ReflexivaR reflexiva (aA) [aRa]

    ou (a,a)R aA

    Definio 14: Relao Simtrica

    1

    2

    34

    1

    2

    34

    1 2 3 4

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    11/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 11

    R simtrica (a,bA)[(a,b)R (b,a) R]

    Definio 15: Relao TransitivaR transitiva (a,b,cA) [(a,b)R (b,c)R (a,c)R]

    Definio 16: Relao Anti-SimtricaR anti-simtrica (a,bA)[(a,b)R ab (b,a)R] ou(a,bA) [(a,b)R (b,a)Ra=b

    Exemplos:a) xRy x amigo de yR no reflexivano transitiva simtrica

    b) xRy x anterior a yR no reflexiva

    no simtrica transitiva

    Definio17:Relao de EquivalnciaUma relao R que reflexiva, simtrica e transitiva dita uma Relao de Equivalncia.

    Notao: [a] = {b| (a,b)R}

    Exemplo : Q: conjunto das diferentes representaes das fraes prprias.R = Q x Q[1/2] = {1/2, 2/4, 3/6, 4/8, ...}[2/3] = { 2/3, 4/6, 6/9, 8/12, ...}

    R reflexiva - simtrica - transitivaDefinio 18:Relao de Ordem ParcialUma relao R que reflexiva, anti-simtrica e transitiva dita uma Relao de Ordem ParcialExemplo:a) R NxN xRyxy

    b) R P(A) xRyxy

    Definio 19: Relao de Ordem TotalUma relao R que de Ordem Parcial em A e:(a,bA) [(a,b)R ou (b,a)R ] dita Relao de Ordem Total

    Definio 20:Partio de ADado um conjunto A e um conjunto U de subconjuntos de A dito uma Partio de A se valem as seguintescondies:(i) (X,YU) [XY = 0](ii) (aA) (XU) [aX](iii) U

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    12/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 12

    Teorema 5: Seja R uma relao de equivalncia num conjunto A, ento as classes de equivalncia de Rconstituem uma partio de A.

    Definio 21: Cadeia ou caminhoUma cadeia numa relao binria R uma seqncia (a1, a2,...,an) para algum n 1 tal que (ai, a i-1) R parai =1, ...,n-1

    Definio 22:CicloO caminho chamado de circuito se se todos elementos so distintos e ainda ( na, a1) R.Obsevao: Um ciclo trivial se n=1

    Teorema 6: Uma relao de ordem parcial se e somente se R reflexiva, transitiva e no tem ciclos triviais.

    Definio 23: Elemento minimalSe R uma relao de ordem parcial, ento um elemento minimal de R um elemento a tal que (b,a) R se esomente se b=a.

    Exemplos:a) (Z,) ordem parcial no tem elemento minimal.b) (N,) ordem parcial. O zero (0) elemento minimal.

    c) X={{a},{b,c,d},{a,d}{b,d},{c,d},{c},{a,b,c}} e X ({a,b,c,d} e a relao de incluso os elementos{a} e {c} so minimais de X. H outros?

    1.5.Operaes sobre Funes

    Definio 24: Funo Composta

    Seja f uma funo de um conjunto E num conjunto F e seja g uma funo de F num conjunto G; chama-secomposta de g e f funo h, de E em G, definida por h(x) = g(f(x)), para todo x em E.Indicaremos esta funo h por g f (leia-se: g composta com f ou g crculo f); portanto,g f (x) = g(f(x)) para todo x em E.

    Representa-se tambm a composta g f pelo diagrama

    A composta de g e f s est definida quando o contra - domnio de f igual ao domnio de g. Emparticular se f e g so funes de E em E, ento, as compostas g f e f g esto definidas e so aplicaes de Eem E.

    Exemplo - Consideremos as funes f e g, de Rem R, definidas por f(x)=2x e g(x)=x2 para todo x em R.Neste caso esto definidas as compostas g f e f g e temos

    (g f)(x)=g(f(x))=g(2x)=(2x)2 =4x2

    fE F

    ggf

    G

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    13/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 13

    (f g)(x)=f(g(x))=f(x2 )=2x2

    logo, f g g f.

    Teorema 7 - Quaisquer que sejam as aplicaesf g h

    E F, F G e G HTem-se (propriedade associativa)

    (h g) f = h (g f).

    Teorema 8 - Se as aplicaes

    f: E F e g: F Gso sobrejetoras, ento a composta g f tambm sobrejetora.

    Teorema 9 - Se as aplicaesf: E F e g: F Gso injetoras, ento a composta g ftambm injetora.

    1.6. Cardinalidade de Conjuntos

    Seja A um conjunto finito ento seu tamanho dado pelo nmero de seus elementos.

    Notao: |A| ou # (A)

    Exemplo: A={a,b,c,d,e}|A| = 5, || = 0, |{a,{b}}| = 2

    Teorema 10 : Se A e B so finitos e se

    A B ento |A||B|A B ento |A| < |B|

    O teorema acima vlido para conjuntos infinitos? Veja o que voc acha, nestes casos:A = M(17) = {0,17,34,51,68,..., }B = {0,1,4,9,16,25,36,... }C= {0,2,4,6,8,10,12,... } = M(2)D = {0,6,12,18,24,30,... } = M(6)

    M(2) M(6)|C| < |D| ?

    Definio 25: Conjuntos EquipotentesDizemos que 2 conjuntos A e B so equipotentes (equinumerous) se existe uma bijeo f: A B

    Exemplo1) A= {8,2,{,b}} B= {x,y,z} (8) = x (2) = y ({,b})) = z

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    14/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 14

    2) A= M(17) = {0,17,34,51,...}B = {0,1,4,9,16,25,36,...}f: A Bf(n) = ?f(17.n) = n2, n N

    Definio 26: Conjunto EnumervelUm conjunto dito contavelmente infinito (contably infinite ) se ele equipotente ao conjunto N. Umconjunto dito contvel ou enumervel se ele finito ou contavelmente infinito.

    Exemplos:1) Z N Z = {..., -4,-3,-2,-1,0,1,2,3,4,...} N = {0,1,2,3,4,....} Z = {0,+1,-1,+2,-2,+3,-3,...}

    n se n=0f(n) = n/2 se n impar

    -n/2 se n par

    2) Q = {a/b| aZ,bZ,b0} NQ ?

    - A unio de um nmero finito de conjuntos contavelmente infinitos contavelmente infinita.- Se Ai so contavelmente infinitos, ento

    nU Ai contavelmente infinitai=1

    - Se A contavelmente infinitoA = {a0, a1,a2,a3,a4,...}

    A,B e C contavelmente infinito

    A = {a0, a1,a2,a3,a4,...}B = {b0, b1,b2,b3,b4,...}C = {c0, c1,c2,c3,c4,...}Esquema de caminhamento: (ou percorrimento)

    a0, a1, a2, a3, a4,...

    b0, b1, b2, b3, b4,...

    c0, c1, c2, c3, c4,...

    Logo, ABC: contavelmente infinito.

    - N x N contavelmente infinito ?notao U Ai:unio infinita de Ai

    i

    N x N = {0} x N {1} x N {2} N

    FIGURA: fazer no quadro.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    15/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 15

    1 Passo: visitar um elemento do 1 conjunto (0,0)2 Passo: visitar o prximo elemento do 1 conjunto (0,1) e tambm o primeiro elemento do 2 conjunto (1,0)3 Passo: visitar o prximo elemento no visitado do 1 e 2 conjuntos (0,2) e (1,1) e tambm o 1 elemento do3 conjunto (2,0)4 Passo: Em geral, no nsimopasso, visitamos o nsimo elemento do primeiro conjunto, (n-1)th do segundo, o (n-2) do terceiro, ... e o 1 elemento do nth conjunto.

    A relao (i,j) N x N se e s se i+j = n-1

    1.7.FechosObserve a seguinte seqncia:(N, +) fechado para adio x, y N , x + y N(N, -) no fechado para subtrao(Z, +) fechado para adio e(Z, -) fechado para subtrao

    Vemos que quando um conjunto no fechado para uma operao ele pode ser ampliado.

    Definio 26:Fecho de um ConjuntoSeja D um conjunto e n 0 e seja R Dn+1 uma relao (n+1) ria em D.Um subconjunto B de D dito fechado sobre R se bn+1B sempre que b1, ..., bnB e (b1,..., bn+1)R

    Exemplo:

    D= 2A A = {a,b}(S,T,U) R D2 ST = U

    a) B D fechado sob R X,YBB = {{xN a x b} a,bN}B={[1,1],[1,2],[1,3],...[1,n],...[2,3],[2,4],...[2,n],...}

    Exerccios:1. Verifique se o conjunto dos ancestrais de uma pessoa fechado sob a relao :

    {(a,b)| a e b so pessoas e b pai de a}2. Usando a definio mostre que (N,+) fechado e que (N,-) no fechado.

    1.8.Tcnicas Fundamentais de ProvasPerceber as relaes que criamos na matemtica um exerccio de observao, comparao e anlise.

    Quando uma nova relao construda precisamos prov-la. Provar um teorema um exerccio de

    criatividade mas tambm possui tcnicas. Vejamos as tcnicas.

    Prova Direta a mais comum e no constitui novidade em si.Basicamente um teorema uma proposio da forma

    p qonde p a hiptese e q a tese.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    16/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 16

    Na prova direta, assume-se que p verdadeira e a partir dos axiomas , definies e outros teoremas epor dedues lgicas chega-se diretamente veracidade de q.

    Prova por Contradio:

    Na prova por contradio, nega-se o condicional , o u seja afirma-se que :p q ( p q) F ( F: contradio, proposio sempre falsa )

    O que vlido pelo princpio do terceiro excludo. Veja a tabela verdade:

    p q F pq q p^q p^qF (pq)V V F V F F F FV F F F V V V VF V F V F F F FF F F V V F F F

    Prova Contra - positiva:

    p q ( q p)Ou seja, pode ser mais fcil provar a segunda parte. A afirmao anterior provada apenaspropriedades lgicas. Fazer a tabela verdade.

    Princpio da induo Matemtica

    Seja A um conjunto de nmeros naturais tal que :

    (1) 0 A, e(2) n N, se {0,1,2,...,n} A,ento n+1 A

    Ento N = A

    Tcnica da Prova por Induo Matemtica

    Para todo nmero natural n, a propriedade P verdadeira

    A = { n P(n) verdadeira}

    Passos :

    (a) Base de Induo : 0 A P(0) V.(b) Hiptese de Induo : P(n) V(c) Passo de Induo : P(n+1) V.Logo, pelo Princpio da Induo P(n) V.

    Exemplo :

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    17/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 17

    (a)BI : Se n = 0

    P(0) = 0

    (b)HI : P(m) = 1 + 2 +... + m = m2 + n / 2 , m n.

    (c)PI : P(n+1) V.

    Exemplo

    Para qualquer conj. Finito A, 2A = 2|A|

    B.I: A= |A| =0 P(a) =2A = {}

    |P(A)| = 1, 20=1 p(0) V

    HI: Seja n> 0 |2A| = 2 |A| dado que |A| < n

    PI: Seja A tal que |A| = n+1

    Como n> 0, tal contm pelo menos um elemento

    B= A {a}, |B| = n

    |2B| = 2 |B| = 2n

    P(A) 2 partes

    2A= 2B{C {a}| C 2B} 8

    |2A| = 2n + 2n = 2 n+1 = 2 |A|

    8 So disjuntos.

    2

    2

    0

    nni

    n

    i

    +=

    =

    ?2

    00)(0

    0

    2

    = +== iinP

    )1(2

    )1(...21)1(2

    +++

    =+++++=+ nnn

    nnnPHI

    =++++

    =+++

    =2

    112

    2

    )1(2 22 nnnnnn

    c.q.d2

    )1()1( 2 +++=

    nn

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    18/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 18

    Princpio PigeonholeVerso coloquial:Se n pombos voam para k casinhas (pigeonholes: buracos do pombal) e k < n, ento alguma casinha contm

    pelo menos 2 pombos.9

    Verso matemtica:Teorema 11:Se A e B so conjuntos finitos e |A| > |B|, ento existe uma funo injetora de A em B.

    Prova :BI : |B| = 1 |B| = {b} e |A| > 1, a1,a2 A

    f : A B

    f(a1) = f(a2) = b f no injetora

    HI : Suponha que f no injetora .Dado quef : A B, |A| > |B| e |B| n, n 1

    PI : Suponha que f : A B e |A| > |B| = n + 1Escolhendo b e B.- Se |f-1(b)| 2 ento f no injetora- Se |f-1(b)| 1 considerar a funo gg : A f-1(b) B {b}

    g(a) = f(a) para cada a A - f-1(b)

    Ento |A - f-1(b)| |A| - 1, |B {b}| = n < |A| - 1

    Logo, pela HI g injetora

    Ento g(a1) = g(a2), a1,a2A - f-1(b) e

    Da f(a1) = f(a2) f no injetora.

    Teorema 12:

    Seja R uma relao binria num conj. Finito A . Se existem cadeias arbitrariamente grandes em R ento

    existe um ciclo em R.

    Prova :

    Seja (a1,a2,...,an) uma cadeia, para algum n > |A|.

    Seja f : {1,2,...,n} A

    9 Por que pombos?

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    19/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 19

    F(i) = ai i

    Logo pelo Princpio do pigeonhole' f no injetora.

    F(i) = f(j) para algum i e j

    1 < i < j < n

    Seja k o menor no. tal que k>0 e f(m) = f(m+k) para algum m, 1

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    20/67

    Prof. Jussara Maria Marins Captulo 1

    Cp1Fundamentos 17/08/03 20

    Ento 2N admite uma enumerao.10

    2N= {S0, S1, S2,...}

    Seja D um conjunto tal que:D={n N | n Sn}, D N

    Quem realmente o conjunto D?D N k N tq. D=SkTome um elemento k natural . Qual a relao de k com Sk?Suponhamos que k pertence a Ska) k Sk.Como D = {n | n Sn} k D e D= Sk, logo kSkSuponhamos que k no pertence a Sk.

    b) k Sk.c) Ento kD mas D = Sklogo k SkLogo sempre chegamos a uma seqncia de proposies que implica num absurdo. Logo a proposio inicial falsa.Logo, 2N no enumervel

    10 Observe que os conjuntos S i so os conjuntos D a da diagonalizao, onde a relao S dada por

    S= {(i,j) | j S(i)}

    Si = {i | (i,j)R} = Si D Si D f [N]

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    21/67

    Prof. Jussara Maria Marins Captulo 2 Programas, Mquinas e Computaes

    Cp2Programa 1 17/08/03

    1. Fundamentos

    2. Programas, Mquinas e Computaes

    Este captulo esta totalmente baseado no captulo 2 do livro texto Teoria da Computao do Tiaraj e

    Paulo, ambos professores do Instituto de Informtica da UFRGS. O Professor Paulo doutor em Matemtica(na rea de Teoria da Computao) pela Universidade de Lisboa. O Professor Tiaraj doutor em Cincia da

    Computao pela UFGRS.A vantagem desta abordagem possuir uma linguagem satisfatria sobre a teoria, inerente ao assunto, de

    modo bem mais coloquial do que outros livros sobre o assunto, sem deixar de lado a formalidade necessria

    ao assunto.Objetivos:

    "Neste captulo introduzida a formalizao das noes de programa, demquina, de computao e do que computvel em uma mquina e das relaesentre formalismos como, equivalncia e simulao."1

    Ateno: O curso proposto pelo livro de 60h, o que no o nosso caso, por isso faremos

    algumas simplificaes.

    1 Aquilo que estiver em itlico e salientado de amarelo cpia direta do livro. Mas ateno: nem todas as

    transcries foram feitas. Logo no basta ler as anotaes deste arquivo.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    22/67

    Prof. Jussara Maria Marins Captulo 2 Programas, Mquinas e Computaes

    Cp2Programa 2 17/08/03

    Roteiro:Ler os seguintes itens:

    2.1.Programas

    Parece que comeamos a pintar as paredes de cima para baixo. Metodologia Top Down ou Botton Up?

    Observe que no se parte de nenhuma noo bsica anterior e que no se questiona a natureza das operaes.

    2.1.1. Programa Monoltico"Um programa pode ser descrito como um conjunto estruturado de instrues que capacitam uma

    mquina a aplicar sucessivamente certas operaes bsicas e testes sobre os dados iniciais fornecidos, como objetivo de transformar estes dados numa forma desejvel".

    a) Estruturao monoltica: baseada em desvios condicionais e incondicionais , no possuindomecanismos de explcitos de iterao, subdiviso ou recurso.

    b) Estruturao Iterativa: Possui mecanismos de controle de iteraes de trechos de programas.No permite desvios incondicionais.

    c) Estruturao Recursiva: Possui mecanismos de estruturao em sub-rotinas recursivas.Tambm no permite desvios incondicionais

    Composies:

    a) Composio seqencial: A execuo da operao ou teste subseqente somente pode serrealizada aps o encerramento da execuo ou teste anterior.

    b) Composio no determinstica: Uma das operaes ou testes compostos escolhida para serexecutada. tambm chamada de escolha.

    c) Composio concorrente: As operaes ou testes compostos podem ser executados em qualquerordem, inclusive simultaneamente, ou seja, a ordem da execuo irrelevante.

    Notao:

    Identificadores de operaes: F,G,H

    Operao vazia: smbolo:Identificadores de Testes: T1, T2, T3,...

    Definio 2.1 Rtulo, Instruo rotuladaa) Rtulo ou Etiqueta: uma cadeia de caracteres finita(palavra) constituda de letras ou dgitos.b) Instruo rotulada i uma cadeia de caracteres finita(palavra) de uma das formas a seguir (suponha

    que F e T so identificadores de operao e teste, respectivamente e que r1, r2 e r3 so rtulos):b1) Operao:

    r1: faa F v_para r2 ou r1: faa : v_para r2b2) Teste:

    r1: se T1 ento v_para r2 seno v_para r3

    Exemplo1:

    1: faa F v_para 2

    2: se T1 ento v_para 1 seno v_para 33: faa G v_para 4

    4: se T2 ento v_para 5 seno v_para 1

    Tentando fazer outra abordagem, isto , mais construtiva, poderamos retornar a tentativa de conceituar

    algoritmo, que nestas alturas do campeonato, deve ser mais fcil.

    Algoritmos

    Alguns conceitos usuais:

    Um procedimento uma seqncia finita de instrues que podem ser executadas por um agentecomputacional.

    Um procedimento efetivo uma descrio no ambgua de um conjuntofinito de instrues

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    23/67

    Prof. Jussara Maria Marins Captulo 2 Programas, Mquinas e Computaes

    Cp2Programa 3 17/08/03

    Um procedimento efetivo pode executar uma tarefa, computar uma funo ou fazer uma seqncia deoperaes relacionadas.

    Um procedimento efetivo que especifica uma seqncia de operaes que sempre pra chamado dealgoritmo.

    Assim como em Geometria temos algumas noes bsicas que no so definidas em Computao temoso conceito de algoritmo que consiste numa noo bsica.

    Em 1936 Alan Turing (1912-1954) props um formalismo para a representao de procedimentos

    efetivos. Pela primeira vez foram identificados programas escritos para uma mquina de computao

    automtica.Esta circularidade no nos interessa.

    Logo voltamos ao ponto de partida ou ento deixemos a Mquina de Turing para depois.

    Definio 2.2 Programa Monoltico

    Um programa Monoltico uma par ordenadoP=(I,r)

    Onde:

    I : Conjunto finito de instruesr: Rtulo inicial o qual distingue rotulado em I

    Observao:

    No existem duas instrues rotuladas diferentes com um mesmo rtulo; Um rtulo referenciado por alguma instruo o qual no associado a qualquer instruo rotulada dito

    rtulo final.Observao: A todo programa monoltico corresponde um fluxograma

    Exemplo2:

    a) P1=(I1,1) onde I1 o conjunto das instrues rotuladas 1,2,3 e 4 do exemplo 1 e 5 neste caso rtulo

    final.b) P2({r1: faa : v_para r2},r1) onde r2 o rtulo finalExemplo3:

    Exemplo da apostila de Introduo Computao do Prof. Fbio do ITA, retirado de um livro o qual no

    lembro e que gosto muito.

    1)Entrada de cartes; 2) Calculadora, 3) Escaninho, 4) Mquina de escrever, 5) Operador, e cartesauxiliares se forem necessrios.

    Observe ( melhore) o desenho:

    Escaninho: caixa numerada com instrues ou dados de cartesOperador: Pessoa ou unidade de controle

    Programa:

    partida parada operaoteste

    v f

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    24/67

    Prof. Jussara Maria Marins Captulo 2 Programas, Mquinas e Computaes

    Cp2Programa 4 17/08/03

    E1: Ler um carto e colocar em E16;

    E2: Somar 1 a E14;

    E3: Ler um carto e colocar em E15; se acabarem os cartes ento executar instruo de E6.E4: Somar E16 com E15 e colocar resultado em E16;

    E5: Executar instruo de E2;

    E6: Dividir E16 por E14;

    E7: Imprimir valor de E12;E8: Terminar trabalho.

    E9 at E16 esto zerados no incio.

    Observao 2.3 Fluxograma2

    Faa o fluxograma do exemplo 1 e do exemplo 3.

    2.1.2. Programa IterativoDefinio 2.4 Programa Iterativo

    J vi este filme!

    Quaisquer semelhanas com a"vida real" proposital.

    Na pgina 15 do livro os autores falam em Programao Estruturada. A preocupao com a eficinciae correo junto com sua necessria prova (matemtica, claro) de um programa que originou a procura do

    que hoje chamada programao estruturada. O artigo seminal " An axiomatic basis for computerprogramming" de C. A . R. Hoare est publicado na Communication ACM 12, pp 576-584 de 1963.

    Este mesmo autor juntamente com o prof. Wirth definiu axiomaticamente a Linguagem Pascal em 1973.

    Ainda da dcada de 60 temos o clssico artigo Why GOTO is warmfull ? dos autores O . J. Dahl; E. W.

    Dijkstra e C. A . R. Hoare.

    2.1.3. Programa RecursivoDefinio 2.5 Expresso de Sub-rotinas

    Definio 2.6 Programa Recursivo

    Exerccios:1. Diga com suas palavras o que um programa?2. Por que no foi definido um programa genrico, assim como foi definido, por casos, o monoltico, o

    iterativo ou o recursivo?

    3. Faa os exerccios de 2.1 a 2.3 da pgina 58.2.2.Mquinas

    Grupo1: pgina 20 at 23.

    Definio 2.7 Mquina

    Exemplo 2.7

    Definio 2.8 Programa para uma MquinaExemplo 2.8

    Exemplo Extra: Traduzir o exemplo 3 para a mquina de 2 registradores: fazer os programas auxiliares:

    prg_a amaisb ; prg_a adivb ;

    2.3.Computaes e funes computadas

    Grupo2 Pgina 23 at 27.

    2.3.1. ComputaoDefinio 2.9 Computao dePrograma Monoltico para uma Mquina

    2 Uma imagem sempre vale por 1000 palavras?

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    25/67

    Prof. Jussara Maria Marins Captulo 2 Programas, Mquinas e Computaes

    Cp2Programa 5 17/08/03

    Exemplo 2.9

    Exemplo 2.10

    Definio 2.10 Computao dePrograma Recursivo para uma MquinaExemplo 2.11

    Grupo3 Pgina 27 at 31.Mquina de um RegistradorExemplo 2.12

    2.3.2. Funo ComputadaDefinio 2.11 Funo computada por um Programa Monoltico para uma MquinaExemplo 2.13Exemplo 2.14

    Definio 2.12 Funo Computada de um Programa Recursivo para uma MquinaExemplo 2.15

    Exemplo 2.16Exemplo 2.17

    2.4.Equivalncia de programas e mquinas

    2.4.1. Equivalncia Forte de ProgramasDefinio 2.13: Relao de equivalncia Forte entre programasExemplo 2.17

    Teorema 2.14

    Teorema 2.15

    Corolrio 2.16Teorema 2.17

    Teorema 2.18

    Observao 2.19

    2.4.2. Equivalncia de programasDefinio 2.20: Relao de equivalncia de programas em uma Mquina

    2.4.3. Equivalncia de MquinasDefinio 2.21: Simulao Forte de Mquinas

    Definio 2.22: Simulao de MquinasDefinio 2.23: Relao de equivalncia de Mquinas

    2.5.Verificao da Equivalncia Forte de Programas

    No ser visto.

    2.6.Concluso

    2.7.Exerccios

    Pgina 58 a 64.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    26/67

    Prof. Jussara Maria Marins Captulo 2 Programas, Mquinas e Computaes

    Cp2Programa 6 17/08/03

    Trabalho em Grupo:

    I) Objetivos:

    1. Definir cada mquina citada conforme apresentado no livro texto 1.2. Definir o que um programa para esta mquina3. Programar nesta mquina.II) Trabalho:a) Redigir o trabalho de forma objetiva e disponibilizar o arquivo para todos alunos

    b) Ilustrar com outros exemplos alm do solicitadoc) Seguir a numerao das definies, conforme dado neste captulo.III) Apresentao:

    A) Para toda classe em at 20 minutosB) Estimular a participao de todos

    III) Data:Ser definida em aula.

    Este trabalho pode ser complementado com outros tpicos relacionados, embora ele tenha um carater

    particular e terico.

    Outros trabalhos envolvero a programao em Linguagem C ou Pascal.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    27/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 1 17/08/03

    INSTITUTO PRESBITERIANO MACKENZIE

    Professora Jussara Maria Marins

    Teoria da ComputaoCaptulo 3 :Mquina de Turing E Outras

    1. Fundamentos

    2. Programas, Mquinas e Computaes

    3. Mquina de Turing e Outras

    1. FUNDAMENTOS..................................................................................................................................... 1

    2. PROGRAMAS, MQUINAS E COMPUTAES.............................................................................. 1

    3. MQUINA DE TURING E OUTRAS ................................................................................................... 1

    3.1. MQUINAS DE TURING........................................................................................................................ 23.1.1. Mquinas de Turing e seus Modelos .......................................................................................... 3

    3.1.2. Mquinas de Turing como Reconhecedores............................................................................... 9

    3.1.3. Mquinas de Turing como Processadores de Funes ............................................................ 103.1.4. Extenses da Mquina de Turing ............................................................................................. 11

    3.1.5. Outras Funes Numricas ...................................................................................................... 15

    Os objetivos deste captulo so:- compreender que algoritmo um conceito bsico- definir Mquina de Turing e verificar que ela ao mesmo tempo um reconhecedor de linguagens, um

    programa e um modelo para um computador- programar vrias mquinas de Turing- definir uma mquina universal e compreender sua necessidade para a formao da cincia da

    computao- definir teoricamente e programar outras mquinas computacionais

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    28/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 2 17/08/03

    Captulo 3 :Mquina de Turing E Outras

    3.1.Mquinas de TuringLer a seo 3.4 e 3.4.1 nas pginas 83 e 84 do livro texto1.Retomar os conceitos usuais: de algoritmos:O repeteco o mesmo mas observemos todas as palavras em itlico.

    Um procedimento uma seqncia finita de instrues que podem ser executadas por um agentecomputacional.

    Um procedimento efetivo uma descrio no ambgua de um conjuntofinito de instrues Um procedimento efetivo pode executar uma tarefa, computar uma funo ou fazer uma seqncia de

    operaes relacionadas. Um procedimento efetivo que especifica uma seqncia de operaes que sempre pra chamado de

    algoritmo.Cada uma das palavras selecionadas ou requer uma nova definio e usando apenas as j definidas

    anteriormente no so suficientes para completar a idia de seqncia, instrues e efetividade.Assim como em Geometria temos algumas noes bsicas que no so definidas, como reta, ponto e

    plano em Computao temos o conceito de algoritmo que consiste numa noo bsica.Em 1936 Alan Turing (1912-1954) props um formalismo para a representao de procedimentos

    efetivos. Pela primeira vez foram identificados programas escritos para uma mquina de computao

    automtica.

    Ver alguns aspectos histricos

    Conceito de Mquina Turing.Uma mquina de Turing consiste numa mquina abstrata com um controle finito, numa fita com clulas, numcabeote que pode ser usado para ler ou escrever na fita, mover-se para direita ou esquerda.Satisfaz a 3 condies:- Deve ser um autmato- Deve ser simples de descrever- Deve sergeral o suficiente para descrever uma computao.A figura a seguir mostra uma representao grfica desta idia.

    A unidade de controle opera em passos discretos e faz 2 funes, o que depende do estado atual e dosmbolo da fita que est sendo pesquisado pelo cabeote:

    (1) Pe a Unidade de Controle num novo estado E;(2) No estado E:

    (2a) Escreve um smbolo na fita substituindo o que est sendo pesquisado, ou(2b) Move o cabeote uma clula para a esquerda ou direita.

    a b a a

    q 1q 1 q 2

    q 3

    UC

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    29/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 3 17/08/03

    3.1.1. Mquinas de Turing e seus ModelosA seguinte definio da Mquina de Turing a mais comum e segue o livro do Papadimitriou, ou o queindicaremos por livro 2, enquanto que o livro do Prof. Paulo Menezes ser indicado por livro 1. Est na

    pgina 181 que aqui repetida.Definio 3.1: Uma M.T: Mquina de Turing uma quntupla (K, , , s, H) onde:- K: conjunto finito de estados;- : alfabeto contendo o smbolo branco: e o smbolo terminalmas que no contm ;- sK: o estado inicial;- HK: o conjunto dos estados finais ou de parada- : funo de transio: (K-H) x K x ( {})

    (qi,) = (qj,)(a) ( qK-H), se (q,.) = (p,b)

    ento b = (b) ( qK-H) e a se (q,a) = (p,b) ento b .

    Se qK-H, a (q,a) = (p,b)

    Se a Mquina de T.M est no estado q e l o smbolo a do alfabeto ento ir para o estado p e

    (1) se b ento M substituir a por b(2) se b = ou b = , ento M ir mover o cabeote para a direita ou esquerda respectivamente.

    Obs:

    1-

    funo Mquina de Turing. determinstica2- A Mquina de Turing pode alterar a entrada e escrever brancos.3- A Mquina de Turing pode nunca parar,Exemplo 1: M = (K,,,s,{h})K = {q0,q1,h} = {a, ,}s = q0 = {q0,q1} x{a,} { q0,q1,h} x { a, ,,,}

    Domnio: D={(q0,a), (q0, ), (q0,), (q1,a), (q1, ), (q1,)} #(D)= 6Contra Domnio CD={( q0,a),(q1,a), (q0, ),(q1,a),(q1, ),..} #(CD)=15Fita:aaaa

    (qi,) (qi,)1 (q0,a) (q1, )2 (q0, ) (h, )3 (q0,) (q0, )4 (q1,a) (q0,a)5 (q1, ) (q0, )6 (q1,) (q0, )

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    30/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 4 17/08/03

    Execuo: Contedo da Fita, onde o sublinhado indica o cursor e regra aplicada:

    a a a a

    1 (q0,a) (q1, ) Regra 1

    a a a

    2 (q1, ) (q0, ) Regra 5 a a a

    3 (q0,a) (q1, ) Regra 1 a a

    4 (q1, ) (q0, )

    a a

    5 (q0,a) (q1, ) a

    6 (q1, ) (q0, ) a

    7 (q0,a) (q1, )

    8 (q1, ) (q0, )

    9 (q0, ) (h, ) Regra 2Esta mquina recebe uma entrada, com um nmero qualquer de smbolos, pesquisa para direita, e

    muda-os para branco, ou seja apaga os smbolos no-brancos.Se o contedo da fita fosse:aaaa, no estado q1,comearamos da regra 6.

    Exemplo 2: M= (K, , , s, H)

    K = { q0,h} = {a, ,}s = q0 H = {h}

    funo de transio : q, ( q,)1 q0 a (q0,)2 q0 , (h, )3 q0 (q0,)

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    31/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 5 17/08/03

    I) Se o contedo da fita aa, temos

    a a

    (q0,) (q0,) Regra 3

    a a

    (q0,a) (q0,) Regra 2

    a a

    (q0,) (q0,) Regra 3

    a a

    (q0,a) (q0,) Regra 2 etc...e a mquina de Turing nunca pra.

    II) Se o contedo da fita aa, temos

    a a

    (q0,a) (q0,)

    a a

    (q0,a) (q0,)

    a a

    (q0,) ( h, )Neste caso, a Mquina Turing pra, pesquisou para esquerda at encontrar o primeiro branco e parou.

    A definio do Livro Texto 1 diferente pois acrescenta outros itens que no estavam colocados na notaomais comum e que seriam introduzidos depois. Leia a definio 3.4 do Livro1 nas pginas 84 85.

    Comparemos:- Mudamos de quntupla para 8-upla.- Definio 3.1 A :M=(, Q,, q0,F,V,,) onde:

    - Q: conjunto finito de estados;- : alfabeto de entrada- (no contendo o smbolo branco: e o smbolo terminalmas que no contm ; )- q0: o estado inicial, q0Q;- FQ: o conjunto dos estados finais ou de parada- : funo de transio

    o smbolo branco:

    - : smbolo inicial da fita(estado corrente, smbolo lido)=(novo estado, smbolo gravado, sentido do movimento que agora E(esquerda) ou D (direita).

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    32/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 6 17/08/03

    Outra mudana o modo de representar a funo ou , onde (qi,) = (qj,) mostra ora o novosmbolo ou o movimento. A tabela, consequentemente, diferente.

    Notao para Mquinas de TuringA notao de Mquinas de Turing pode ser semelhante de autmatos usando nodos e arcos ou arestas de um

    grafo para representar os estados e as transies. As mquinas em si tambm podero ser agrupadas atravsde uma hierarquia a partir de mquinas bsicas.

    A nova notao envolve tanto o smbolo modificado como o movimento da seguinte maneira:(p, a u )=(q, a v , m)

    Graficamente, podemos representar como autmatos, levemente modificado e ento temos temos:

    Outra maneira representar a funo de transio por uma tabela que alis mais prpria para ser utilizadacomo estrutura de dados para um programa em qualquer linguagem computacional ou mesmo nummecanismo material: algo como uma mquina mecnica tipo uma mquina de tric, um relgio acoplado uma maquina de escrever com smbolos s do alfabeto, ou uma mquina analtica de Charles Babage quesimule uma mquina de Turing. D asas sua imaginao e faa um desenho de uma tal mquina.A tabela pode ser representada da seguinte maneira:

    No estado pcom o smbolo a u ,,na fita, substitui pora ve faz o movimento m, indo para o estado q . Naprimeira linha esto todos smbolos do alfabeto e na primeira coluna esto todos os estados.

    a u , . . . , a v . . . p (q,,av,m)q...

    Exemplo 3: Seja a Mquina de Turing com a seguinte configurao inicial:(q1, a a a a).

    (qi,) (qi,)(1) q0 a (q1, )

    (2) q0 (h, )(3) q0 (q0,)

    (4) q1a (q0,a)(5) q1 (q0, )(6) q1 (q1, )

    (q1 aaaa) M (q0, a a a a)

    Estadocorrente

    Smbologravado

    Sentido do

    movimento

    ( a u ,, a v ,m)

    Smbolo

    lido

    p q Novo estado

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    33/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 7 17/08/03

    M (q1, a a a)M (q0, a a a)M (q1, a a)M (q0, a a)M (q1, a)M (q0, a)M (q1, )M (q0, )M (h, )

    Neste exemplo a computao tem 10 passos.Para fazer a representao de autmato para a mquina anterior, simplificaremos a transio escrevendoapenas o smbolo que for mudado ou a direo como indicado na definio da funo (qi,) = (qj,). Odesenho ser, por exemplo:

    Uma prxima etapa juntar o movimento e a troca do smbolo na transio. O autmato ficar simplificado,pois diminui-se um estado, como na figura seguinte:

    Autmato da Mquina de Turing que apaga

    Exerccio: Faa uma Mquina de CpiaSeja * que contm smbolos no brancos e que pode ser uma string vazia.A mquina C copia com uma clula branca a sua esquerda e o cabeote colocado numa clula branca aesquerda de . Escreva a funo de transio delta ou desenhe o autmato.

    q0q1

    h

    1 (a , )

    2. (,)

    3.(, )

    (,) 5

    (a,a) 4 .(, ) 6

    q0

    h

    (,,)

    .(,)

    (a,,)

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    34/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 8 17/08/03

    Exemplo 4: Mquina do Duplo BalanceamentoEsta mquina verifica se uma palavra que est na fita tem a seguinte propriedade: inicia com a letra a em umnmero n de vezes que seguido pelo mesmo nmero de vezes da letra b.Duplo_Bal = { anbn | n 0}Exemplos:So aceitas: aabb; ab, e ( palavra vazia) ,aaaabbbb, etc

    No so aceitas: aab, ba, aaabb, etc

    Veja a descrio completa, isto , definio, tabela e grafo na pgina 89 e 90

    Seja 0 - { } um alfabeto chamado de Alfabeto de Entrada de M.Durante o trabalho de M podemos ter smbolos auxiliares que no fazem parte da Entrada, so smbolosauxiliares o seu conjunto indicado por V.

    Outro modo de fazer a maquina Duplo_bal o seguinte autmato:Sejam={a, b, ,} K={1,2,3,4,5,6}, s=1, H={6} V={A,B}. A Mquina seguinte reconhece L={a i, bi, | i0} Se a mquina chegar no estado 6 a palavra aceita, caso contrrio rejeitada.

    Exerccio: Tente fazer outra mquina com menos estados e regras que a primeira.

    Exemplo 5: Temos agora uma extenso do exemplo do Duplo_Bal, que o Triplo_bal, ou seja: L = {an bn cn

    | n 0} A notao seguinte do livro 2. Papadimitriou. Observe que h uma correo.Nesta notao Rindica uma mquina composta que sempre vai para direita em qualquer smbolo do alfabeto,

    R2 vai duas clulas para direita; Ra significa que vai para a direita em qualquer smbolo diferente debranco: ; se temos dRsignifica que substitui o smbolo da fita que est no cabeote pord e vai para direita;e assim por diante.Usamos 2 novas mquinas: A mquina 'y' faz o novo estado de aceitao, enquanto que 'n' faz o estado derejeio = {a, b, c}0 = {a, b, c, d}

    R

    d

    n

    dR

    a,a

    b,c

    dR

    b,b

    a,c,

    a bdL

    c

    d

    a b c

    y n

    (A,A,R)

    (a,a,R)

    (a,A,R) (b,B,L)

    (B,B,R)(,,R)

    (A,A,R)

    (a,a,L)

    (B,B,L)

    (B,B,R)

    1 2

    4

    3 5 66(,,R)

    (a,a,L)

    Incio

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    35/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 9 17/08/03

    Em cada estgio M comea da extremidade esquerda do string e move-se para a direita na pesquisade um a Quando encontra o primeiro a substitui porde vai para a direita procurando um b.

    a a a b b b c c c a a a b b b c c c d a a b b b c c c d a a b b b c c c Quando um b encontrado, substitui pord e vai adiante (deixando s b) procurando um c. d a a b b b c c c d a ad b b c c c d a a d b b d c c c

    Quando um c encontrado substitudo por um d e o estgio acaba e o cabeote retorna aextremidade esquerda da entrada: dL

    Em cada estgio a mquina substitui um a, um b e um c pords. Depois volta a pesquisar.

    Se neste caso um string a* b* c* ou existe um smbolo em excesso, ento M chega ao estado derejeio n. Se contudo, a extremidade direita da entrada: , quando procurando um a, isto significa que todaentrada foi substituda por ds, e portanto a forma an bn cn, foi encontrada para n > 0 e M aceita .

    Situaes que ocorrem numa Mquina de Turing:O que importante ressaltar so as 3 possibilidades de parada de uma Mquina de Turing

    a) o "processamento" chega ao estado final e a mquina pra e a palavra aceita ou o resultado esperado obtido;

    b) a "funo programa" indefinida para o argumento; a mquina pra e a palavra de entrada rejeitadac) Movimento invlido, a palavra rejeitada e a mquina pra.

    3.1.2. Mquinas de Turing como ReconhecedoresOs exemplos anteriores mostraram dois tipos de exemplos:

    a) a mquina que faz uma tarefa: uma cpia ou apagar a entradab) aceita uma palavra de uma linguagem com certas caractersticasVamos deixar esta ltima situao mais clara e classificar alguns tipos de linguagens.

    Definio 3.2:ConfiguraoSeja M = (K, , , s, H) uma Mquina de Turing com H = {y, n}. Qualquer configurao que para e cujoestado atual y chamada de configurao de aceitao, enquanto que se a configurao que para e o estado n chamada de configurao de rejeio.

    Definio 3.3:Linguagem aceita por uma Mquina de TuringSeja M uma mquina de Turing M=(, Q,, q0,,F,V,,) Dizemos que M aceita

    ( - { , })* se (s, ) acarreta numa configurao de aceitao, e M rejeita se (s, ) acarreta numa configurao de rejeio.

    Pode ocorrer que exista uma situao, onde a mquina nem aceita, nem rejeita uma certa configurao.

    Dizemos que uma mquina de Turing M decide a linguagem1 L*0 se *0, o seguinte verdade:

    i) Se L ento M aceita , ou ainda o conjunto de todas as palavras ou strings pertencentesa *, ou seja:

    ACEITA(M)={w| M ao processar* pra num estado final, qfF}

    ii) Se L ento M rejeita .REJEITA(M) = {w| M ao processar C pra num estado final, qfF}

    1Ver resumo no anexo sobre linguagens

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    36/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 10 17/08/03

    iii) A linguagem para a qual M fica em loop infinito o conjunto de todas as palavras de* para as quais M fica processando indefinidamente.

    Logo:ACEITA(M) REJEITA(M) LOOP(M) = *A definio seguinte est no livro texto1 na pgina 91.

    Definio 3.4:Linguagem Enumervel RecursivamenteUma linguagem aceita por uma Mquina de Turing dita linguagem recursivamente enumervel.

    Ou seja, existe uma Mquina de Turing que semidecide L. ou seja M pode parar ou no.Exemplos:

    a) DuploL = {anbn| n0}b) TriploL ={anbncn| n0}c) Concatena= {ww| w palavra sobre os simbolos de {a,b}}

    Esta classe de linguagens inclui algumas para as quais impossvel determinar mecanicamente se uma dadapalavra no pertence linguagem. Se L uma dessas linguagens, ento para qualquer mquina M que aceitaL, existe pelo menos uma palavra w que no pertence a L que, sendo entrada da mquina M, ela fica em loopinfinito.

    Logo temos que:1. se w L, ento M pra e aceita a entrada;2. se wL, M pode parar, rejeitando W ou entrar em loop infinito.

    Definio 3.5:Linguagem RecursivaUma linguagem L dita Linguagem recursiva se existe uma Mquina de Turing M tal que:1. ACEITA(M) = L2. REJEITA(M) = *- L3. LOOP(M) = Agora para a classe dessas linguagens possvel garantir que existe um reconhecedor, ou em outras

    palavras uma algoritmo que as reconhece como vlidas ou invlidas. Este reconhecedor nada mais que um Compilador.A condio 3 indica que existe uma mquina de Turing que sempre pra com esta linguagem.Exemplos:

    a) DuploL = {anbn| n0}b) TriploL ={anbncn| n0}c) {w| w{a,b}* e tem o dobro de smbolos a do que b}

    Observaes/ Teoremas:1. O complemento de uma linguagem recursiva uma linguagem recursiva.2. Uma linguagem L recursiva se e somente se L e seu complemento so enumerveis

    recursivamente.3. A classe da Linguagens recursivas uma classe prpria da classe da linguagens

    enumerveis recursivamente.

    3.1.3. Mquinas de Turing como Processadores de FunesVer seo 3.4.5 no livro texto 1, na pgina 92 a 93.Definio 3.6:Funo Turing Computvel

    Uma funo parcial f dita funo Turing Computvel ou simplesmente Turing Computvel seexiste uma mquina de Turing que a computa, ou seja, a mquina pra e produz o resultado esperado ou ficaem loop (infinito) se a funo indefinida para a entrada.

    Ver o exemplo da Mquina que concatena duas palavras w1 e w2 de um alfabeto dado, e produz umanova palavra w=w1w2.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    37/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 11 17/08/03

    Exemplo 6: ConcatenaoPgina 94.

    Exemplo 7 Quadrado UnrioPgina 95.Sejam={1 ,} K={1,2,3,...,13}, s=1, H={13} V={A,B,C

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    38/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 12 17/08/03

    Definio 3.8:Mquina de Turing de vrias fitasSuponha que k 1 seja um inteiro. Uma mquina de Turingde kfitas um quntuplo(K, , , s, H), onde K, , s e H so as definies da mquina de Turing normal e , a

    funo de transio, a funo de (K H) * kparaK * ( {})k. Isto , para cada estado q e cada k tuplas de smbolos de fita(a1, ..., ak), (q, (a1, ..., ak)) = (p, ((b1, ..., bk)), onde p , como antes, o novo estado e bj ,

    intuitivamente, a ao assumida por M na fita j. Naturalmente, novamente insistimos que se aj = para algum j k, ento bj = .

    A computao ocorre em todas as k fitas de uma mquina de Turing de k fitas.Correspondentemente, uma configurao de tal mquina deve incluir informaes sobre todas asfitas.

    Definio 3.9:Uma configurao de M de k FitasSuponha que M = (K, , , s, H) seja a mquina de Turing de k fitas. Uma configurao de M ummembro de

    K * (*X(*( - {}) {e}))k .Isto , a configurao identifica o estado, o contedo da fita e a posio da cabea em cada

    k fitas.

    Se (q, (w1 a1 u1, ... wk ak uk)) uma configurao de uma mquina de Turing de k fitas(onde utilizamos a verso k vezes da notao abreviada para configuraes) e se

    (p, a1,..., ak) = (b1,...,bk), ento em um movimento a mquina se moveria para aconfigurao (p, (w1a1 u1, ...wk ak uk)), onde, para i = 1,..., k, wiaiui, wiaiui modificada pelaao bi, precisamente como na Definio .3.8. Dizemos que a configurao (q,( w1 a1 u1, ... wk akuk)) produz um resultado em um passo na configurao (p, (w1a1 u1, ...wkakuk)).

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    39/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 13 17/08/03

    Fita 1

    Fita 2

    Fita k

    Figura

    Evidentemente, mquinas de Turing de k fitas so capazes de computar tarefas bastantecomplexas. Devemos mostrar a seguir que qualquer mquina de Turing de k fitas pode sersimulada por uma mquina de uma nica fita. Com isso queremos dizer que, dada qualquermquina de Turing de k fitas, podemos projetar uma mquina de Turing padro que exibe omesmo procedimento de entrada - sada decidir ou semidecidir a mesma linguagem, quecomputa a mesma funo. Essas simulaes so importantes ingredientes de nossametodologia no estudo do poder dos dispositivos computacionais nesse e nos prximoscaptulos. Em geral, elas se valem de um mtodo para imitar um passo nico da mquinasimulada com vrios passos da mquina simuladora. Nosso primeiro resultado desse tipo e

    sua prova so indicativos dessa linha de raciocnio.

    Teorema 3.1: Suponha que M = (K, , , s, H)seja uma mquina de Turing de k fitas, paraalgum k 1 . Ento, h uma mquina de Turing padroM= (K, , , s, H), onde , tal que vale o seguinte: para qualquer string deentrada x *, M , na entrada x, pra na sada y da primeira fita, se, e somente se, M, naentrada x, parar no mesmo estado de parada e com a mesma sada y em sua fita. Alm

    h .q1

    q3

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    40/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 14 17/08/03

    disso, se M pra na entrada x, aps t passos, ento M pra na entrada x aps um nmero depassos, que O(t* (x + t)).

    FITA INFINITA DE DUAS VIAS

    Suponha agora que nossa mquina tenha uma fita que infinita em ambas as direes. Todos os quadros soinicialmente espaos em branco, exceto aqueles contendo a entrada: a cabea da fica inicialmente, digamos, esquerda da entrada. Alm disso, nossa conveno com o smbolo seria desnecessria e sem sentido paratais mquinas.

    No difcil ver que, como ocorre com fitas mltiplas, fitas infinitas de duas vias noacrescentam poder substancial s mquinas de Turing. Uma fita infinita de duas vias pode serfacilmente simulada por uma mquina de duas fitas: uma fita sempre contm a parte da fita direitado quadro que contm o primeiro smbolo de entrada e a outra contm a parte da fita esquerdadessa ao inverso. A mquina de duas fitas, por sua vez, pode ser simulada por uma mquina deTuring padro. De fato, na simulao precisamos levar apenas um tempo linear, em vez de umtempo quadrtico, j que, a cada passo, somente uma das trilhas est ativa. Seria desnecessrio dizermas as mquinas com vrias fitas infinitas de duas vias tambm podem ser simuladas do mesmo

    modo.MLTIPLAS CABEAS

    O que ocorre se uma mquina de Turing tem uma fita, mas vrias cabeas? Todas ascabeas lem os smbolos varridos e movem ou gravam independentemente. (Algumaconveno deve ser adotada sobre o que acontece quando duas cabeas varrem o mesmoquadro da fita, ao mesmo tempo que tentamos gravar diferentes smbolos. Talvez a cabeacom o nmero mais baixo ganhe. Alm disso, vamos assumir que as cabeas no possamcompreender cada presena no mesmo quadro da fita, exceto talvez indiretamente, por meiode gravaes malsucedidas.)

    No difcil ver que uma simulao com a que utilizamos para mquinas de k fitas podeser realizada para mquinas de Turing com vrias cabeas em uma fita. A idia ,novamente, dividir a fita em trilhas, todas as quais, exceto uma, so utilizadas somente paragravar as posies da cabea. Para simular um passo computacional pelas mquinas demltiplas posies de cabea e outra para alterar esses smbolos ou mover as cabeasapropriadamente. O nmero de passos necessrios novamente quadrtico, como noTeorema 4.3.1.

    O uso de mltiplas cabeas, como o de mltiplas fita, podem s vezes, simplificardrasticamente a construo de uma mquina de Turing. Uma verso de 2 cabeas damquina de copiar C no exemplo 4.1.8 poderia funcionar em um modo muito mais natural

    que a verso de uma cabea (ou mesmo as verses de duas fitas, Exemplo 4.3.1); veja oproblema 4.3.3 do livro referncia..

    FITA BIDIMENSIONAL

    Outro tipo de generalizao da mquina de Turing permitiria que sua fita fosseuma grade bidimensional infinita. (uma poderia at permitir um espao de dimenso maisalta). Tal dispositivo pode ser muito mais til que as mquinas de Turing padro para

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    41/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 15 17/08/03

    resolver problemas como um quebra cabea (veja o problema do ladrilho no prximocaptulo). Partiremos dele como um exerccio (Problema 4.3.6) para definir em detalhes aoperao de tais mquinas. Mais uma vez, entretanto, no resulta nenhum aumentofundamental no poder computacional. Curiosamente, o nmero de passos necessrios parasimular t passos das mquinas de Turing bidimensionais na entrada x pela mquina de

    Turing normal novamente polinomial em t e x.As extenses do modelo da mquina de Turing, feitas acima, podem ser combinadas: pode-se pensar nas mquinas de Turing com vrias fitas, todas ou algumas das quais so dealgum modo infinitas de duas vias e tm mais de uma cabea nelas ou, ainda, somultidimensionais. Novamente, bastante simples e direto ver que as capacidades damquina de Turing, em ltima instncia, permanecem as mesmas.

    Resumimos nossa discusso sobre as diversas variantes das mquinas de Turing, discutidasassim por diante, como segue.

    Teorema 3.2: Qualquer linguagem decidida ou semidecidida e qualquer funo computada por mquinas de Turing com vrias fitas, cabeas, fitas infinitas de duas vias ou fitasmultidimensionais, podem ser decididas, semidecididas ou computadas, respectivamente,pela mquina de Turing padro.

    3.1.5. Outras Funes NumricasVamos agora adotar um ponto de vista completamente diferente sobre a computao, umque no seja baseado em qualquer formalismo explcito computacional ou deprocessamento da informao como as mquinas de Turing ou as gramticas, mas, em vezdisso, focalizar o que est para ser computado: funes de nmeros. Por exemplo, claro

    que o valor da funoF(m,n) = m * n2 + 3 * m2*m+17

    Pode ser computado para quaisquer valores dados de m e n, porque se trata de umacomposio de funes adio, multiplicao e exponenciao, mais algumas poucasconstantes que podem ser computadas. E como sabemos que exponenciao pode sercomputada? Porque ela recursivamente definida em termos de uma funo simples (asaber, a multiplicao) e valores em menores argumentos. Afinal de contas, mn 1 se n = 0e, caso contrrio, m*mn-1. A prpria multiplicao pode ser definida recursivamente emtermos de adio e assim por diante.

    No princpio, devemos ser hbeis para iniciar com funes de nmeros naturais paranmeros naturais to simples que sejam inequivocamente considerados como computveis(por exemplo, a funo de identidade e a funo de sucessor succ(n) = n+1) e combin-losvagarosa e pacientemente por combinadores que so, tambm, muito elementares eobviamente computveis tais como a composio e a definio recursiva e por fim,obter uma classe de funes de nmeros para nmeros que so completamente gerais e notriviais.

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    42/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 16 17/08/03

    Iniciamos por definir certas funes extremamente simples de Nk para N, para vriosvalores de k 0 (a funo 0-ria , naturalmente, uma constante, uma vez que no dependede nada).Definio 3.10: Funes BsicasAs funes bsicas so as seguintes:

    (a)Para qualquer k 0, a funo zero k-ria definida como zerok(n1,...,nk) = 0 para todon1,....,nkN.

    (b)Para qualquer k j > 0, a j-sima funo de identidade k-ria simplesmente a funoidkj(n1,...,nk) = nj para todo n1...nkN.

    (c)A funo de sucessor definida como succ(n) = n + 1 para todo nN.A seguir, apresentaremos duas maneiras simples de combinar funes para obter funesligeiramente mais complexas.

    (1) Seja k, l 0, g: NkN uma funo k-ria e sejam h1,...,hk funes l-rias. Ento, acomposio de g com h1,...,hk a funo l-ria definida como

    f(n1,...,nl) = g(h1( n1,...,nl),...,hk(n1,...,nl)).

    (2) Suponha que k 0, que g seja k-ria funo e que h seja a funo (k + 2) ria. Ento,a funo definida recursivamente por g e h funo (k + 1) ria f definida como

    f(n1,...,nk0) = g(n1,...,nk),f(n1,...,nk m + 1) = h(n1,...,nk, m, f(n1,...,nkm))para todos n1,...,nk, m N

    As funes recursivas primitivas so todas as funes bsicas e todas as funesque podem ser obtidas por elas por qualquer nmero de aplicaes sucessivas decomposio e definio recursiva.

    Exemplo 8 : A funo plus2, definida como plus2(n) = n + 2 recursiva primitiva, pois pode ser obtida a partir da funo bsica succ por uma composio com si prpria. Emparticular, suponha que k = l = 1 em (1) da Definio 3.10 e suponha que g = h1 = succ.

    Similarmente, a funo binria plus, definida como plus(m,n) = m + n, recursivamente primitiva, porque ela pode ser definida do mesmo modo a partir de funes obtidas porcombinaes, funes de identidade, zero e sucessor. Em particular, na Parte 2 da definio3.10, iguale k = 1, assuma g como sendo a funo id2,1 e suponha que h seja a funoternria h(m,n,p) = succ(id3,3 (m, n, p) a composio de succ id3,3. A resultante funorecursivamente definida precisamente a funo plus:

    plus(m,0) = mplus(m, n + 1) = succ (plus(m,n)).

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    43/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 17 17/08/03

    A funo de multiplicao mult(m,n) = m * n definida recursivamente comomult(m,0) = m

    plus(m, n + 1) = plus(m, mult(m,n)),e a uno exp(m,n) = mn definida como

    exp(m,0) = succ(zero(m)),exp (m, n + 1) = mult(m, exp(m,n).portanto, todas essas funes so recursivas primitivas.

    relativamente claro que podemos calcular o valor de qualquer funo recursiva primitiva para dados valores de seus argumentos. Tambm igualmente evidente que podemoscalcular a validez de asseres sobre nmeros como

    m * n > m2 + n + 7, para quaisquer dados valores de m e n. conveniente definir um predicado recursivoprimitivo como sendo uma funo recursiva primitiva que somente assume os valores 0 e1. Intuitivamente, um predicado recursivo primitivo, como greater than (m,n) ir capturaruma relao que pode ou no ser aplicvel ( ser verdadeiro) entre os valores de m e n. Se arelao que pode ou no do recursivo primitivo ser 1, caso contrrio 0.

    Exemplo 9 : A funo iszero, que 1 se n = 0 e 0 se n > 0, um predicado recursivoprimitivo, definido recursivamente, portanto:

    iszero(0) = 1,iszero(m + 1) = 0

    Similarmente, isone(0) = 0 e isone(n + 1) = iszero(n).

    Exerccio:1. Definir o predicado positive(n), definindo antes sgn(n)2. Definir a subtrao no negativa, indicada por ~.

    Alm disso, greater-than-or-equal(m,n), escrito m n, pode ser definido comoiszero(n ~ m). Sua negao, less-than(m,n) naturalmente "1 ~ greater-than-or-equal(m,n)", onde ~ a subtrao do exerccio. Em geral, a negao de qualquer predicadorecursivo primitivo tambm um predicado recursivo primitivo. De fato, assim so adisjuno e a conjuno de dois predicados recursivos primitivos: p(m,n) ou q(m,n) 1 ~ iszero(p,(m,n) + q(m,n) e p(m,n) eq(m,n) 1 ~ iszero (p(m,n) * q(m,n)).Por exemplo, equal(m,n) pode ser definido como a conjuno de greater-than-or-equal(m,n) e greater-than-or-equal (n,m).

    Alm disso, se f e g so funes recursivas primitivas e p um predicado recursivoprimitivo, todos os trs com a mesma varivel k, ento a funo definida por casos

    f(n1,...,nk) = g (n1,...nk), se p(n1,...,nk);h (n1,...,nk), caso contrrio

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    44/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 18 17/08/03

    tambm recursiva primitiva, uma vez que pode ser reescrita como:

    f( n1,...,nk) = p(n1,...,nk) * g(n1,...,nk) + ( 1~ p(n1,...,nk)) * h(n1,...,nk)

    Como devemos ver, a definio por casos uma abreviao muito til.

    Exemplo 10: Podemos agora definirdiv e rem.

    mod(0, n) = 0,

    mod( m + 1 , n) = 0 se equal (mod(m,n), pred(n));mod(m,n) + 1 caso contrrio,

    e

    div(0,n) = 0,

    div(m + 1, n) = div(m + 1, n) + 1, se equal (mod(m,n), pred(n));div(m,n) caso contrrio.

    Outra funo interessante que revela-se como sendo recursiva primitiva digit(m,n,p), m-simo digito menos significativo da representao base p de n. (Como uma ilustrao douso de digit, o predicado odd(n), com o bvio significado, pode ser gravado simplesmentecomo digit(1,n,2). fcil verificar que digit(m,n,p) pode ser definido como div(mod(n,p m), p (m~ 1)).

    Exemplo 11: Se f(n,m) uma funo recursivamente primitiva, ento a soma

    sumf(n,m) = f(n,0) + f(n,1) + ... + f(n,m)Tambm recursiva primitiva, porque ela pode ser definida como sumf(n,0) = 0 e sumf(n,m + 1) = sumf(n,m) + f(n, m + 1). Tambm podemos definir desse modo as conjunes edisjunes ilimitadas dos predicados. Por exemplo, se p(n,m) um predicado, a disjunop(n,0) ou p(n,1) ou p(n,2) ou...ou p(n,m) simplesmente sgn(sump(n,m))

    Definio 3.11: Suponha que g seja a funo (k + 1)-ria, para algum k 0. Aminimizao de g funo k-ria f definida como segue:

    o menor m tal que g(n1,...,nkm) = 1,f(n1,...,nk) = se um tal m existe;

    0, caso contrrio

    Devemos denotar a minimizao de g por m[g(n1,...,nkm) = 1 ].

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    45/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 19 17/08/03

    Apesar de minimizao de uma funo g ser sempre bem definida, no h um mtodo bviopara comput-la mesmo que saibamos como se computa g. O mtodo bvio

    m: = 0enquanto g (n1,...,nkm) 1 faa m: = m + 1;

    emitir mno um algoritmo ,no sentido estrito de Papadimitriou, porque ele pode falhar emterminar.

    Vamos ento chamar uma funo g minimizvel, se o mtodo acima sempre terminar. Isto, uma funo (k + 1)-ria g minimizvel, se ela tem a seguinte propriedade: para cadan1,nkN, h um m N tal que g(n1,...nkm) = 1.

    Por fim, chamamos uma funo -recursiva, se ela pode ser obtida a partir das funes bsicas pelas operaes de composio, definio recursiva e minimizao de funesminimizveis.

    Note que agora no podemos repetir o argumento de diagonalizao do exemplo 4.7.5 paramostrar que h uma funo computvel que no -recursiva. A questo que, dada umadefinio propositada de uma funo - recursiva, no absolutamente claro se de fato eladefine uma funo -recursiva isto , se todas as aplicaes de minimizao nessadefinio de fato atuam sobre funes minimizveis!

    Exemplo 12: Definimos um inverso da adio (a funo ~) e um inverso da multiplicao(a funo div); mas e quanto ao inverso da exponenciao logaritmo? Utilizando aminimizao podemos definir a funo logaritmo: log(m,n) a menor potncia qualdevemos elevar m + 2 para obter um inteiro pelo menos to grande quanto n + 1 (isto ,

    log(m,n) = [logm+2 (n + 1)]; temos utilizado m + 2 e n + 1 como argumentos para evitar asarmadilhas matemticas na definio de logm n, quandom 1 ou n = 0. A funo log definida como segue:

    log(m,n) = p[greater-than-or-equal ((m + 2) p, n + 1)].

    Note que essa uma definio apropriada de uma funo -recursiva, uma vez que afuno g(m,n,p) = greater-than-or-equal ((m + 2) p, n + 1) minimizvel: de fato, paraqualquer m, n 0 h p 0, tal que (m + 2) p n porque, elevando um inteiro 2 a potncias cada vez maiores, podemos obter inteiros arbitrariamente grandes.Podemos agora provar o principal resultado desta seo:

    Teorema 3.4: A funo f: NkN -recursiva se, e somente se, ela recursiva (isto ,computvel por uma mquina de Turing).

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    46/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 20 17/08/03

    Trabalho em Grupo

    Outros Exemplos e Programas em trabalhos em grupo Trabalho terico e praticoUma mquina geralUma mquina especficaUm novo modelo

    Voltar para livro texto1 com os outros modelos de mquinas e as universaisMquina NormaMquina de PostMquinas com PilhaMquinas com duas Pilhas

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    47/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 21 17/08/03

    Anexo: Reviso de Linguagens Formais

    J trabalhamos com o conceito de string em um alfabeto que uma seqncia de smbolos ouelementos, ou ainda "letras" desse alfabeto. Usualmente a seqncia finita. Podemos identificar umaseqncia com uma nome dado por uma letra que no seja do alfabeto. Assim se ={a,bc} ento podemos

    dizer que w= aab uma seqncia de .A seqncia vazia indicada pore . O comprimento de um string o comprimento da seqncia, medido em nmero do smbolos. indicado pelas barras simples, assim |w|=3 ,caso anterior e |e|=0. O comprimento estabelece uma funo de um string w e . Dois strings podem sercombinados para formar um novo, pela operao de concatenao indicada pelo smbolo da composio ou

    pela simples justa-posiao dos 2 strings. Assim se w=aab e v= bc ento wv=aabbc.Um string v substring de w, se somente se, h strings x e y tal que w=xvy. Tanto x como x

    poderiam ser o string vazio e. Logo e substring de qualquer string. Se w= xv para algum x ento v sufixo dew; se w= vy para algum y ento v prefixo de w.

    A seqncia wi , sendo i um natural definida por induo por:w0=e ;wi+1 = wiw;

    onde indica a concatenao,

    Uma linguagemL qualquer conjunto de strings de um alfabeto , isto qualquer subconjunto de uma linguagem.Se um alfabeto finito, ento um conjunto infinito e enumervel ou contavelmente

    enumervel.As linguagens podem ser operadas como conjuntos, com a unio, interseo e diferena. Alem h outraoperao chamada de Fecho de Kleene ou estrela de Kleene. O fecho de Kleene indicado, sugestivamente

    por L* que o conjunto de todos os strings obtidos pela concatenao de zero ou mais strings de L.Descrever uma linguagem pode ser uma tarefa muitssimo complicada quando se trata de uma

    linguagem natural. Na computao estamos interessados em certos tipos de linguagens. Se a linguagem finita, a simples enumerao de todos seus strings vivel. Caso contrrio, precisamos de outros mecanismos.

    Exemplo 1: Seja L={w{0,1}*| w tem 2 ou 3 ocorrncias de1, sendo que a primeira e a segunda noso consecutivas}. Essa linguagem pode ser descrita como

    {0}*o {1} o {0}* o {0} o {1} o {0}* o{ {1} o {0}*}*

    Dispensando as chaves temos:L=0*10*010*(10* *)Este um exemplo de uma linguagem do tipo Regular. Ou seja descrita, exclusivamente por meio de

    smbolos nicos e do vazio. Isto caracteriza uma expresso regular.Definimos uma expresso regular como:(1) e cada elemento de so expresses regulares;(2) Se e so expresses regulares, ento a concatenao tambm o ;(3) Se e so expresses regulares, ento a unio tambm o ;(4) Se uma expresso regular, ento tambm regular;(5) Nada mais expresso regular, a menos que deduzida de (1) a (4).

    Toda expresso regular representa uma Linguagem. Se uma expresso regular ento L() umaLinguagem representada por.A funo L definida como:

    (1) L ()= . ( Em alguns livros temos 2 smbolos diferentes para a linguagem vazia e o conjuntovazio.) e L ()=,

    (2) Se e so expresses regulares, ento L() = L() L();(3) Se e so expresses regulares, ento L() = L()L();(4) Se uma expresso regular, ento L()=L()*.

    Exemplo: Descrever L(((b) a) ).

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    48/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 22 17/08/03

    L(((b) a) ) = L( (b)) L(a) por (2)= L( (b)){} por (1)= L( (b)) {} por (4)= (L() L(b))*{a} por(3)=({a} { b})*{a} por (1) duas vezes={a,b}*{a}

    ={w{a,b}* w termina com a}

    Um Autmato Finito Determinstico uma quntupla M=(K, ,,s,F) onde K conjunto finito de estados; um alfabeto; uma funo de transio, s o estado inicial e F um subconjunto de K, constitudo

    pelos estados finais. O AFD semelhante Mquina de Turing mas no possui um modo de armazenar certasinformaes. O AF, na realidade pode ser determinstico ou no. Pode ser representado graficamente por umgrafo dirigido, chamado de diagrama de estados, onde os ns representam os estados e as arestas astransies. A aresta que vai do estado q para q' rotulada por a, sempre que (q, a) = q'.Exemplo: M=( K, ,,s,F) onde K={q0,q1} , ={,}, s=q0 e F={q0} e a funo delta dada por:

    q (q,)q0 a q0q0 b q1q1 a q1

    q1 b q0

    Logo L(M) o conjunto de todos os strings em {a,b}* que tm um nmero par de b's.A representao por diagrama de estados :

    Vejamos que para a entrada aabba no estado inicial temos:(q0,aabba) (q0,abba)

    (q0,bba)(q1,ba)(q0,a)(q0,e).

    Logo aabba aceita porL(M) ou (q0,aabba) *M(q0,e)

    Vejamos resumidamente outros resultados, sem as devidas provas, que podem ser encontradas no livro textodo Papadimitrou ou em outro livro da bibliografia de Teoria da Computao ou Linguagens Formais.

    Teorema 1: A classe das linguagens aceitas por autmato finitos fechada sob(a) unio;(b) interseo(c) fecho de Kleene(d)

    complementao(e) concatenao.

    Teorema 2: Uma linguagem regular se, e somente se, ela aceita por um autmato finito.

    Teorema 3: Se linguagem L regular ento existe um algoritmo que dado w*, testa se w L numtempo (|w|).

    Teorema 4: Se M=(K, , , s, F) um autmato finito no determinstico ento existe um algoritmo que dadoque dado w*, testa se w L(M) num tempo (|K|2 |w|).

    b

    a a

    q0q1

    b

  • 8/3/2019 Apostila Teoria Da Computacao (Pt Br)

    49/67

    Prof. Jussara Maria Marins Captulo 3: Mquinas de Turing e Outras

    Cp3Turing 23 17/08/03

    Um autmato de Pilha um autmato com mais um alfabeto , com os smbolos da Pilha, com dispositivoarmazenador do tipo Pilha, permitindo a leitura e gravao s no topo da Pilha.

    Existem linguagens que no so regulares. O nmero de AF enumervel ao passo que o conjunto de todas aslinguagens no enumervel, logo h linguagens que no so regulares.As seguintes linguagens no so regulares;

    i) L={anbn| n0}ii) L={an| n primo}iii) L={ anbamb m+n| m,n 1} no regular.

    Uma linguagem chamada Livre do Contexto gerada por expresses do tipo AaA , independente docontexto onde se a