LINGUAGENS FORMAIS Noções de Máquinas Universais e...

Post on 17-Nov-2018

216 views 0 download

Transcript of LINGUAGENS FORMAIS Noções de Máquinas Universais e...

85

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

• O material abaixo foi baseado nas consultas bibliográficasdas seguintes referências:

� Tenório, Robinson Moreira. Computadores de Papel:máquinas abstratas para um ensino concreto. São Paulo,Ed. Cortez: autores associados, 1991 (Coleção polêmicasdo nosso tempo; v.42).

� Hopcroft, John E.; Ullman, Jeffrey D.; Motwani, R.Introdução à teoria de autômatos, linguagens ecomputação. Rio de Janeiro, Ed. Campus, 2002.

� Meneses, Paulo Blauth. Linguagens Formais eAutômatos. Porto Alegre: Instituto de Informática daUFRGS, Ed. Sagra Luzatto, 2000 (Série livros didáticos,número 3).

86

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

• A presença maciça dos computadores na automatização davida social, cultural, política e econômica é uma realidadeno mundo todo.

• Um estudo mais aprofundado a respeito da origem edesenvolvimento das “máquinas computacionais” mostraráque sua existência está visceralmente ligada aodesenvolvimento de um modo de produção voltado para orendimento industrial e bélico.

• Dada a importância do computador no mundo atual, éimportante ter alguma compreensão não só do seu usotécnico, mas principalmente da sua concepção e estruturateórica, o que é necessário para a correta compreensão desuas limitações e potencialidades, sempre tão mistificadas.

Limitações e Potencialidades do Computador

� Afinal, o que pode e o que não pode o computador fazerpor si só enquanto potencialidade lógica ?

Obs.: “O que pode o computador fazer ?”. Esta perguntarefere-se aos processos chamados computáveis, ou seja,aqueles passíveis de mecanização. Tais processos podem serdescritos algoritmicamente, ou seja, passo a passo de formasequencial e precisa.

87

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

• A respeito da computabilidade, merecem destaque ostrabalhos dos matemáticos Emil Post e Alan Turing que, aotratarem de computadores fizeram-no de formasuficientemente genérica e simplificada de modo a torná-los inteligíveis por todos.

• Post e Turing, trabalhando independentemente“construíram” máquinas virtuais extremamente simples,que simulam perfeitamente o funcionamento doscomputadores já existentes ou que venham a existir,estabelecendo, em 1936, um resultado matemáticoverdadeiramente impressionante: tudo o que pode sercalculado em um computador, pode ser calculado na“máquina” de Post ou na “máquina” de Turing.

... Trocando em miúdos...

Post e Turing (trabalhando independentemente) procuraramresponder a pergunta:

� “O que pode ser calculado em um computador e o quenão pode ser ?”

ou seja:

� “Quais são as tarefas algoritimizáveis e quais não são ?”

88

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquinas e o modo de produção

• Um dos fundamentos do modo de produção capitalista é oconhecimento científico.

• A tecnologia é desenvolvida como forma de aumentar aprodutividade e reduzir o tempo de trabalho incorporadonos produtos.

• Nas palavras de Karl Marx, o emprego da máquina naindústria moderna,

“como qualquer outro desenvolvimento da força produtivado trabalho, tem por fim baratear as mercadorias, encurtara parte do dia de trabalho da qual precisa o trabalhadorpara si mesmo, para ampliar a outra parte que ele dágratuitamente ao capitalista. A maquinaria é meio paraproduzir mais-valia”

• A divisão do trabalho, que começa na Revolução Industrial,possibilita a especialização de cada tarefa, de tal forma queos movimentos de cada trabalhador se transformam emrotina, aproximando-os de movimentos puramentemecânicos. Os movimentos se tornam a tal pontoplanejados que, no lugar da energia humana que move aferramenta, é possível substituí-la por algum outro tipo deenergia para alimentar a máquina.

89

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquinas e o modo de produção

• A máquina-ferramenta revoluciona a produção. Karl Marxvislumbra, ainda no século XIX, a possibilidade, hojeconcretizada, da combinação de máquinas em um processode cooperação na produção, ou seja, automação daprodução:

“A produção mecanizada encontra sua forma maisdesenvolvida no sistema orgânico de máquinas-ferramentacombinadas que recebem todos os seus movimentos de umautômato central e que lhes são transmitidos por meio domecanismo de transmissão”

• O processo de produção vai adquirindo um caráter cada vezmais científico e técnico, associando, de forma cada vezmais direta e profunda, a atividade produtiva e a elaboraçãode conhecimentos científicos e técnicos.

• Em síntese, o objetivo sempre perseguido deracionalização e controle do processo produtivo, no modode produção capitalista, conduz, a partir da divisão dotrabalho em tarefas cada vez mais simples, à introdução daferramenta máquina-ferramenta, de conjuntos associados demáquinas e, no momento atual, das máquinas-computadores que controlam o conjunto do sistemaprodutivo.

90

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

• No final do século XIX e início do século XX, a ciência doOcidente estava passando por um período bastante fértil nodesenvolvimento da lógica simbólica e esta eraconsiderada, muito além de qualquer base física ou moral, asólida sustentação das “leis do pensamento”.

• O matemático David Hilbert (1862-1943) representa muitobem esta crença na lógica quando, em 1900, afirma que:

“Todo problema matemático definido é necessariamentesuscetível de uma resolução exata, ou na forma de suaresposta verdadeira, ou pela prova da impossibilidade desua solução, e com isso a necessária falha de todas astentativas neste sentido. Por mais inacessíveis que estesproblemas possam parecer, e por mais impotentes quepermaneçamos frente a eles, temos, não obstante, a firmeconvicão que suas soluções devem surgir de um númerofinito de processos puramente lógicos (...) Ouvimos dentrode nós a chamada perpétua: este é o problema. Procure suasolução. Você pode encontrá-la pela razão pura.”

91

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

• De modo resumido, o que se acreditava e se desejavaprovar era que:

Todo pensamento pode ser reduzido à métodos lógicos

• Esta crença é bastante antiga, remontando aos gregos nafilosofia ocidental. Contudo, tal crença passa a dominar opensamento ocidental a partir da revolução burguesa, comos seus ideais de universalização e a sua base de produçãomecanizada e mecanizável, tornada possível com a divisãosocial do trabalho.

• Consideremos o ano de 1600, pois é aproximadamentenesse momento da História que se dá a mudança do caráterda produção material (feudal para capitalista) e de formaarticulada ocorre também a mudança do caráter daprodução de conhecimento.

� Por exemplo, o desenvolvimento da astronomia ebalística é consequência do processo de expansãomercantilista (navegação e comércio).

� Outro exemplo, é citar a sistematização dos problemasfísicos de então, quase todos de mecânica, por IsaacNewton (1642-1727) e que de uma forma ou de outraculmina com o cálculo diferencial e integral no séculoXVIII.

92

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

• Diversos “pensamentos” nos permitem indicar a crença napossibilidade de formalização do pensamento que domina aciência ocidental:

� Thomas Hobbes (1588-1679) expressa claramente aconcepção de pensamento como cálculo:

“Quando alguém raciocina, nada mais faz do queconceber uma soma total, a partir da adição de parcelas,ou conceber um resto a partir da subtração de uma somapor outra (...) Em suma, seja em que matéria for quehouver lugar para a adição e para subtração, há tambémlugar para a razão, e, onde aquelas não tiverem o seulugar, também a razão nada tem a fazer”.

� Para Hobbes, o processo de raciocínio é “um método bome ordenado” que permite passar das unidades maissimples – os nomes – para asserções e silogismos, osquais constituem todas as consequências de um assuntoem estudo – a ciência.

93

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

� Renée Descartes (1596-1650) pretendeu pela dúvidasistemática chegar às idéias simples, precisas e claras, apartir das quais se deduziriam quaisquer conclusõesválidas. Seu trabalho objetivava formular “um métodopara raciocinar bem”.

� John Locke (1623-1704) afirmou que as idéias podem serdivididas em duas categorias: as simples e as complexas.As simples formam as complexas.

� Na obra de Gottfried Wilhelm Leibniz (1646-1716)vamos encontrar de maneira inequívoca a materializaçãoda concepção mecanicista e determinista doconhecimento e pensamento.

� Leibniz pensou ter encontrado uma notação exata euniversal, formando uma lógica simbólica pela qual sepoderia atribuir a todos os objetos seu númerocaracterístico determinado.

94

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

� Leibniz chega a afirmar que:

“Se alguém duvidasse de meus resultados (...) eu lhediria: vamos calcular, meu caro, e assim, com a pena e atinta liquidaríamos a questão”

� Leibniz confirma sua fé na possibilidade e na força de seuprograma:

“Uma vez que se estabeleçam números característicospara a maioria dos conceitos, a humanidade passará apossuir um novo instrumento, que ampliará a capacidadeda mente a um grau muito maior que o conseguido pelosinstrumentos óticos no fortalecimento dos olhos esuperará o microscópio e o telescópio na mesma extensãoem que a razão é superior à visão.”

� O “projeto” de Leibniz, assim como a suposição deTomas Hobbes de que pensar é calcular encontraram econos trabalhos do matemático e lógico George Boole(1815-1864).

95

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

� Boole algebrizou a lógica, empregando efetivamenteletras ou variáveis para representar classes de objetos deum certo universo de discurso.

Exemplo “booleano”: Sejam

X a classe (conjunto) de todos os homensY a classe (conjunto) de todos os brasileirosZ a classe (conjunto) de todos os argentinosO número 1 é o universo de discursoO número 0 é uma classe (conjunto) sem objetos+ é a operação de união (soma) entre conjuntos* é a operação de interseção (multiplicação) entre

conjuntos

Então as seguintes “operações” lógicas sãorepresentadas matematicamente:

X – Y : “homens não brasileiros”Y * Z = 0 : “nenhum brasileiro é argentino”1 – Y : “tudo que não seja homem brasileiro”Etc etc ...

96

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

� Uma obra marcante de Boole, datada de 1854, é intituladaAn Investigation of the Laws of Thought. O que pretendiaBoole com esta obra, ele mesmo responde no seu primeirocapítulo:

“O intento do seguinte tratado é investigar as leisfundamentais daquelas operações da mente pelas quais oraciocínio é desenvolvido: para lhes dar expressão nalinguagem simbólica do cálculo, e sobre sua baseestabelecer a ciência da lógica e ensinar seus métodos; (...)e finalmente coletar dos vários elementos de verdadetrazidos à tona no curso destes exames algumas prováveisindicações concernentes à natureza e constituição damente humana(...) Há não somente uma analogia íntimaentre as operações da mente no raciocínio geral e asoperações da mente na particular ciência da Álgebra, mashá em considerável extensão uma concordância exataentre as leis pelas quais as duas classes de operações sãoconduzidas...”

97

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

• Resumindo os “pensamentos” acima considerados,podemos dizer que não havia dúvida alguma quanto àcrença que a lógica modelaria o pensamento e, porextensão, modelaria também a realidade.

A inviabilidade do reducionismo da realidade à lógica

• No início do século XX, David Hilbert (1862-1943)formula o problema de fundamentar o conhecimento nalógica formal e propõe resolve-lo.

• Hilbert formula o problema da seguinte forma: tentardescobrir um método (algoritmo) para estabelecer averdade ou falsidade de qualquer sentença na linguagem dalógica formal chamada cálculo de predicado.

• Este problema marca um momento culminante na tentativade afirmar a identificação entre lógica e realidade, mas, aomesmo tempo significa o marco inicial de sua próprianegação.

98

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

• Relembrando conceitos básicos do cálculo de predicados:

• Lógica de predicados (1a ordem)Conectivos: ∧ , ∨ , ¬ , → , ↔

Quantificadores: ∀ - “Para todo” ∃ - “Existe ao menos um”

Exemplo: PredicadosH - (...) ser humano M - (...) ser mortalV - (...) ser vegetal G - (...) gosta de (...)

Objeto: s – Sócrates

Exemplos de sentenças no cálculo de predicados

∀x(Hx → Mx) “Todo humano é mortal”Hs “Sócrates é humano”∀x∀y (Hx ∧ Vy→ Gxy) “Todo humano gosta de vegetal”Hs → ∃xMx “Se Sócrates é humano, então

existe ao menos um objeto que émortal”

99

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

• No final do século XIX e início do século XX oconhecimento matemático se organizava em três grandesescolas:

� Logicismo� Formalismo� Intuicionismo

O Logicismo

• Esta corrente acreditava se possível reduzir a matemática àlógica.

• A obra fundamental dessa corrente foi o PrincípiaMathemática de Bertrand Russel (1872-1970) e AlfredWhitehead (1861-1947). Esses autores pretendiam mostrarque é possivel expressar em termos lógicos todas asproposições matemáticas, e que todas as proposiçõesmatemáticas verdadeiras são verdades lógicas.

• Problema: diversos paradoxos no cerne da propostalogicista, por exemplo, o paradoxo de Russel.

100

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

O Logicismo - O Paradoxo de Russel (uma “versão”)

� Suponha que desejamos organizar um catálogo de livros deuma biblioteca.

� Designemos de ordinário qualquer catálogo que não seinclua entre os livros citados por ele mesmo.

� Designemos por extraordinário qualquer catálogo que seinclua entre os livros citados por ele mesmo.

� Se fizermos um catálogo α que contenha todos esomente todos os catálogos ordinários existentes, α seráordinário ou extraordinário ???

� Paradoxo: se α é ordinário, então ele não contém a simesmo !!! Mas como α deve conter todos os catálogosordinários, deveria se conter !!! E se α contém a simesmo é extraordinário !!! Mas se é extraordinário, αnão deveria estar contido em si próprio, pois α sócontém catálogos ordinários !!!

101

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

O Logicismo - O Paradoxo de Russel (outra “versão”)

� Suponha que numa cidade, todos os homens que não fazema própria barba fazem-na somente com o único barbeiro dacidade.

� Pergunta: o barbeiro faz a barba de si próprio ou com obarbeiro ?

O Logicismo - O Paradoxo de Epiménedes, o cretense

� Epiménedes, o cretense, afirma que todo cretense sempremente quando fala alguma coisa.

� Pergunta: É verdade o que Epiménedes afirma ?

O Logicismo

O projeto logicista se configura, portanto, inviável: amatemática (e, por extensão, a realidade) não se reduz àlógica formal porquê esta fere o princípio da não-contradição.

102

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

Relembrando os 3 princípios da lógica formal “clássica”:

1) Princípio da identidade: todo objeto x é igual a si mesmo.

2) Princípio da não-contradição: Dados uma proposição (de umasentença) e sua negação, não é o caso que ambas sejam ao mesmotempo verdadeiras ou que ambas sejam ao mesmo tempo falsas.

3) Princípio do terceiro excluído (“Tertium non datur”): Dadas umaproposição (de uma sentença) e sua negação, então uma delas temvalor de verdade verdadeiro, e a outra tem valor de verdade falso(e nada além disso !).

Exemplo: Seja a proposição (sentença): “Sócrates é humano”

Pelo princípio da não contradiçao se a sentença “Sócrates éhumano” é verdadeira, então sua negação “Sócrates não éhumano” é falsa, e vice-versa.

Pelo princípio do terceiro excluído se a sentença “Sócrates éhumano” é verdadeira, então sua negação “Sócrates não éhumano” é falsa, não existindo a possibilidade de existir umterceiro valor, além do valor verdadeiro e valor falso.

103

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

O Formalismo

• Base kantiana (E. Kant – 1724-1804): A lógica, tanto namatemática quanto em qualquer outra área doconhecimento desempenha o mesmo papel de descrição dasestruturas dos dados da percepção.

• A proposta formalista não é reduzir a matemática à lógica,mas fazer da lógica o método de obter todas as conclusõesválidas em qualquer argumentação sobre qualquer assuntoque fosse.

• David Hilbert propunha um programa formalista de baseskantianas onde:

1) A matemática é descritiva dos objetos.

2) A lógica é o instrumento articulador das teoriasformais construídas com os objetos matemáticos.

3) O trabalho do matemático é elaborar teorias formaisconsistentes, cada vez mais abrangentes, até seconseguir sua formalização completa.

104

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

O Formalismo

• Uma teoria formal é construída a partir de termosprimitivos (objetos empíricos) e regras de formulação defórmulas (os axiomas), além das regras de inferência(lógica), necessárias para a formação dos teoremas.

• Uma teoria formal é dita consistente se dentro dela éimpossível demonstrar uma proposição e, ao mesmo tempo,a negação de tal proposição. Obs.: consistência se refere aoprincípio da não-contradição da lógica formal.

• Uma teoria formal é dita completa se toda fórmula(proposição) construída de acordo com as regras deformação da teoria é decidível, ou seja, passível de serassinalada como verdadeira ou falsa, a partir dos axiomasdesta teoria. Obs.: completude se refere ao princípio doterceiro excluído da lógica formal.

• Os formalistas, em resumo, desejavam que os sistemasformais fossem consistentes, completos e decidíveis.

105

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

O Formalismo - a inviabilidade do programa hilbertiano

• Em 1931, Kurt Godel, em um pequeno artigo “Uber formalunentscheidbare Satze der Principia Mathematica undverwandter Systeme” estabeleceu dois resultadosfulminantes para a proposta hilbertiana:

1) Uma prova absoluta de consistência para sistemasabrangentes (por exemplo, que contenham a aritmética) éaltamente improvável e, dentro do próprio sistemaimpossível.

2) É sempre possível construir enunciados, a partir dasregras de uma teoria formal, que são não dedutíveis doconjunto de axiomas de tal teoria e, mais ainda, comqualquer conjunto aumentado finito de axiomas, ésempre possível construir, dentro dessa teoria formal,uma nova proposição indecidível.

• O primeiro resultado põe em xeque o princípio da nãocontradição enquanto que o segundo resultado joga porterra o princípio do terceiro excluído.

106

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

O Intuicionismo

• De raízes kantianas, foi fundado por Brower (1881-1966).

• A matemática, para os intuicionistas, consiste na construçãode entidades abstratas, através da intuição dos matemáticos,não necessariamente através do reducionismo à lógica.

• Os matemáticos aparecem, então, como seres mágicos,capazes de criar um mundo diferente, matemético, apartadoda realidade.

• Para os intuicionistas, é possível a contrução deproposições com sentido, mas ... nem verdadeiras ... nemfalsas. Ou seja os intuicionistas rejeitam claramente oprincípio do terceiro excluído.

107

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas

A inviabilidade do reducionismo da realidade à lógica

Síntese

• Na tentativa de buscar os fundamentos da matemática,

� Os logicistas tropeçaram nos paradoxos,

� Os formalistas demonstraram que é impossível nãotropeçar nos paradoxos, e

� Os intuicionistas distanciaram-se da realidade apesar derejeitarem o princípio do terceiro excluído.

Conclusão

• Não podemos portanto identificar os raciocínios rigorosos,matemáticos, com o raciocínio formal. A natureza, queinclui o homem, tem a contradição como qualidade, acontradição que origina o seu movimento e produzHistória.

108

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Pela proposta de David Hilbert, se a matemática fosseredutível à lógica e se se pudesse encontrar o tal métodopara determinar a verdade ou falsidade de qualquersentença da lógica formal (isto é se o tal métodoapresentasse a propriedade de ser decidível), entãoqualquer sentença matemática, ou, mais forte ainda,qualquer afirmação sobre a realidade formulada emlinguagem matemática, poderia ser provada verdadeira oufalsa (isto é, todas as afirmações sobre a realidade sereduziriam a mera computação mecânica, segundo regrasbem definidas).

• Em 1931 Kurt Godel apresentou formulações quedestruíram tais pretensões (teorema da incompletude).

• As atenções se voltam então do conceito de verdade parao conceito de provabilidade (decidibilidade): haveria ummétodo (algoritmo) único com o qual todas as sentençasmatemáticas demonstráveis poderiam ser provadas a partirde um conjunto de axiomas lógicos ?

109

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Nos anos seguintes ao teorema da incompletude de Godel(1931), Alonzo Church, Stephen Kleene e Barkley Rosserdesenvolveram uma linguagem formal consistente, à qualderam o nome de cálculo lambda.

• Kleene demonstrou que uma extensa classe de funções eraexpressável no cálculo lambda.

• Alonso Church argumentou então que, se uma funçãomatemática pode ser totalmente computável, então elapode ser definida no cálculo lambda. Por outro lado, seexistir uma função matemática expressável no cálculolambda que não é computável (decidível), então nãoexistirá método para decidir se uma sentença matemática édemonstrável ou não.

• Em 1936, o próprio Church publicou uma fórmula lógicanão computável no cálculo lambda. Com isso, ficoudefinitivamente provado que jamais se encontraria ummétodo (algoritmo) único com o qual todas as sentençasmatemáticas demonstráveis poderiam ser provadas a partirde um conjunto de axiomas lógicos.

• É exatamente neste ponto, lógica, cronológica ehistoricamente falando, que entram os trabalhos de Turinge Post.

110

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Vamos agora analisar de forma mais sintética, “sistemas”(teorias formais) no tocante aos quesitos de seremconsistentes, completos e decidíveis, como o fizeramKurt Godel, Alonso Church, Stephen Kleene,

Formalmente falando...

• Podemos dizer que qualquer problema pode serrepresentado por uma linguagem. Ou seja, formalmentepodemos dizer que problema = linguagem !!!

• Uma linguagem nada mais é do que um conjunto destrings formadas a partir de um alfabeto Σ.

• Na teoria de autômatos, um problema é a questão dedecidir se um dado string pertence ou não a umadeterminada linguagem em questão.

� Questão: queremos saber quais linguagens (problemas)podem ser definidas por algum dispositivo computacional(que pode decidir sobre as strings das linguagens emanálise). Isto equivale a perguntar: “o que oscomputadores podem fazer ?”

111

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

O que os computadores podem fazer ?

• Consideremos um programa de computador escrito emalguma linguagem de programação (C por exemplo) evamos tentar descobrir qual a saída que ele “imprime”.

main(){

printf(“hello world \n”);}

• Para este problema, podemos descobrir facilmente o quevai ser impresso e, principalmente, saber que de fato vai serimpresso hello world.

• Mas existem programas construídos para imprimir helloworld cujo tempo de processamento é inimaginavelmentelongo a ponto de não sabermos se ocorrerá ou não aimpressão de hello world.

112

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Outro programa para imprimir hello world. Nesteprograma:

� O usuário digita um valor inteiro n tal que n > 2.

� O programa procura então por soluções inteiras positivasda equação xn + yn = zn.

� Se encontrar uma solução (valores para x, y e z) oprograma imprime hello world.

� Se nunca encontrar uma solução, o programa continuaráa procurar para sempre e nunca imprime hello world.

• Obs. 1: O objetivo é analisar o problema de quando algoocorrerá, se é que ocorrerá. (no exemplo, o “algo” é helloworld).

• Obs. 2: Este programa é uma “versão” do último teoremade Fermat (expresso em termos de hello world).

113

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• O último teorema de Fermat expresso como um programa do tipohello world.

int exp(int i, n)/* calcula i elevado à potência n */{

int ans, j;ans = 1;for (j = 1; j <= n; j++) ans * = i;return(ans);

}

main( ){

int n, total, x, y, z;scanf(“%d”, &n);total = 3;while (1) {

for (x = 1; x <= total-2; x++)for (y = 1; y <= total-x-1; y++) {

z = total - x - y;if ( exp(x,n) + exp(y,n) = = exp(z,n) ) printf(“hello world /n”);

}total++;

}}

114

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• O problema do hello world via teorema de Fermat temsolução para n = 2, porém não tem solução para n ≥ 3.

• A afirmação de que xn + yn = zn não tinha soluçãopara n ≥ 3 foi feita por Fermat há 300 anos, mas não foiencontrada nenhuma prova até uma época bem recente.

• Ou seja, até recentemente, não se sabia se o programa em Cdo hello world para o teorema de Fermat pararia em algummomento imprimindo hello world.

Definindo o problema de hello world

• Vamos, formalmente, definir o problema de hello worldcomo:

� descobrir se um dado programa em C, com umadeterminada entrada, imprime hello world como os 12primeiros caracteres que ele imprime.

115

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Para pensar: parece aceitável dizer que, se os matemáticosdemoraram 300 anos para resolver uma questão sobre umúnico programa de 22 linhas, então o problema geral desaber se um dado programa, sobre uma dada entradaimprime hello world deve ser mesmo muito difícil.

• De fato, alguns dos problemas que os matemáticos aindanão foram capazes de resolver podem ser convertidos emuma pergunta da forma:

“esse programa, com essa entrada imprime hello world ?”

• Seria bom se pudéssemos escrever um programa H quefosse capaz de examinar qualquer programa P e cadaentrada I para P, e informasse se P, executado com I comosua entrada iria ou não imprimir hello world.

• Vamos tentar construir o tal programa H.

116

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Supomos então que H existe e recebe como entrada umprograma P e uma entrada I para P. H analisa P e I eimprime yes se P combinado com I imprime hello world,ou então H imprime no se P combinado com I não imprimehello world.

• Note que H (em nossa suposição !!!), sempre imprime umasaída, ou yes, ou no.

• Se o programa H de fato existe, dizemos que H é decidível,pois para qualquer P e I que sejam entradas de H, Hconseguirá imprimir yes ou no.

• Mas, se existir ao menos um par de P e I que sejam entradade H e H não consiga imprimir yes ou no, então dizemosque H é indecidível (o que nos levaria a concluir que Hnão existe pois supomos que H sempre informava yes ouno).

117

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Vamos provar que H não existe, ou seja, H é indecidível.

� Para provar a não existência de H, vamos alterá-lo, paramelhor apresentar nossa prova. As mudanças, contudo,manterão a essência de H.

• Primeira alteração em H: onde H imprime no, vamosmandar imprimir hello world. Vamos então chamar o“novo” programa de H1.

• A segunda alteração de H (via alteração em H1) é umpouco mais complicada; é essencialmente a idéia quepermitiu a Alan Turing provar o seu resultado deindecidibilidade sobre máquinas de Turing.

118

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Segunda alteração em H (em H1):� H1 recebe somente a entrada P, e não mais P e I.

• Vamos provar agora que H2 não existe. Assim provamosque H1 não existe e, consequentemente H não existe.

� O que H2 deve imprimir se ele receber a si mesmo comoentrada (ou seja o programa P de entrada é P = H2) ?

119

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Lembre-se de que: (1) H2 imprime yes se para qualquer programaP de entrada, P imprime (como os 12 primeiros caracteres) helloworld quando recebe alguma entrada I (no caso I = P). (2) H2

imprime hello world se para qualquer programa P de entrada, Pnão imprime (como os 12 primeiros caracteres) hello worldquando recebe alguma entrada I (no caso I = P).

• Suponha que o bloco H2 imprime yes quando recebe H2

como P ⇒ Isto quer dizer que H2 como P imprimiu helloworld ⇒ É contradição (paradoxo) !!!!

• Suponha que o bloco H2 imprime hello world quandorecebe H2 como P ⇒ Isto quer dizer que H2 como Pimprimiu yes ⇒ É contradição (paradoxo) !!!!

• Conclusão : H2 não existe ⇒ H1 não existe ⇒ H não existe

H é indecidível : Não existe programa que possa saber se umdado programa P com uma determinada entrada I imprime ounão hello world.

120

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Relembrando: Na teoria de autômatos, um problema é aquestão de decidir se um dado string pertence ou não a umadeterminada linguagem em questão (ou seja problema =linguagem).

• Assim, o problema do hello world, por exemplo, é umalinguagem !!!

• Queremos agora saber se algum outro problema, digamos,P2, pode ou não ser resolvido por computador:

(1) inicialmente tentaremos escrever um programa pararesolvê-lo, mas, se não conseguirmos escrever o talprograma,

(1.1) tentaremos provar que P2 é indecidível.

(1.1.1) Poderíamos proceder de modo semelhante aoproblema do hello world, criando o testador H2,mas, como já provamos a existência de ao menosum problema indecidível (o hello world) ésuficiente provar que se pudéssemos resolver P2

poderíamos resolver o hello world que já sabemosser indecidível.

121

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Chamemos o problema hello world, que sabemos serindecidível, de P1. Tentemos “reduzir” (“mapear”) P1 emP2, com o objetivo de provar assim que P2 é indecidível.

• O “mapeamento” de P1 em P2 ocorre da seguinte forma:(1) qualquer string x que exista em P1 será “mapeada”

(“traduzida”) pelo bloco construir para uma string ycorrespondente que exista em P2.

(2) qualquer string w que não exista em P1 será “mapeada”(“traduzida”) pelo bloco construir para uma string zcorrespondente que não exista em P2.

• Uma vez que o bloco construir estivesse emfuncionamento, então sempre ocorreria um mapeamento destrings x de P1 para strings y de P2 e strings w para stringsz, e o losango decidir estaria sempre decidindo (imprimindoyes ou no). Mas, se isso funcionasse, P1 seria decidível !!!Sabemos de antemão porém, que P1 é indecidível ⇒⇒⇒⇒ P2 éindecidível.

122

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

Exemplo de “redução” de P1 em P2

• Suponha um programa Q (escrito em linguagem C porexemplo) ⇒ Problema: o Programa Q, dada a entrada ychamará a função func1 ?

� Se o programa Q não apresenta em seu corpo a funçãofunc1, o problema é fácil: respondemos certamente que“não, o Programa Q, dada a entrada y não chamará afunção func1”

� Se o programa Q apresenta em seu corpo a funçãofunc1, o problema é difícil.

� Como só conhecemos um problema indecidível (oproblema hello world), o mesmo fará o papel de P1.

� P2 será o problema do programa Q chamar ou nãofunc1.

123

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

Exemplo de “redução” de P1 em P2

� Suponha que P1 com a entrada x imprima hello world comosua primeira saída. Então Q (instância de P2) chamaráfunc1.

� Suponha que P1 com a entrada x não imprima hello worldcomo sua primeira saída. Então Q (instância de P2) nãochamará func1.

� Mas se soubermos sempre se Q chama ou não func1 viaentrada y, então estaremos implícitamente sabendo tambémsempre se P1 imprime ou não hello world via entrada x(Note aqui que a chave é que x = y devido a “tradução”). Eisso é contradição, pois sabemos que P1 é indecidível !!!

124

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Bases teóricas – consistência, completude e decidibilidade

• Trilhamos portanto, de forma bem mais “suave”, ocaminho que Kurt Godel, Alonso Church, StephenKleene, e outros matemáticos trilharam, para demonstrara existência de problemas indecidíveis : assim o projetohilbertiano de encontrar um método único de decidir sobrea verdade/falsidade de sentenças foi definitivamentedescartado.

• Voltemos à nossa questão básica:

� “o que os computadores podem fazer ?”

• Já sabemos que existem problemas indecidíveis, entãoexitem “coisas” (problemas) que não serão tratados peloscomputadores.

• Alan Turing e Emil Post , trabalhando independentementeapresentaram, em 1936, “dispositvos” que respondem àpergunta acima. Construíram estes matemáticos aMáquina de Turing e a Máquina de Post respectivamente.

125

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Post - Estrutura básica – apresentação informal

• A Máquina de Post é uma estrutura conceitual e, por isso,também denominada máquina abstrata. Poderia serconstruída com algum material apropriado, mas, não osendo necessariamente, é uma máquina virtual, e não real.

Estrutura básica da Máquina de Post

� Possui uma fita infinita dividida em células

� Possui um cursor para apontar para as células da fita

� Cada célula da fita, num dado instante, pode estar vazia oumarcada (com um “X”)

� A disposição total das marcas (“X”) constitui o estado damáquina.

� O cursor pode mover-se para uma célula por vez, sendo acélula destino a que está imediatamente à esquerda ou àdireita da célula atual apontada pelo cursor

� O cursor pode imprimir (marcar com “X”) a célula atual oumesmo apagar uma marca que aí eventualmente seencontre.

126

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Post - Estrutura básica – apresentação informal

Estrutura básica da Máquina de Post

� O funcionamento da Máquina de Post consiste nomovimento do cursor (para a esquerda ou direita) e naimpressão ou eliminação de marcas “X” nas células da fita

� Este funcionamento ocorre de acordo com um conjunto deinstruções que constituem o programa da Máquina de Post.As instruções são somente seis, abaixo apresentadas:

127

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Post - Estrutura básica – apresentação informal

Exemplo para a Máquina de Post

� Seja o problema de somar dois números inteiros quesabemos estar armazenados na fita.

� Os números são representados na fita por uma quantidadecontígua de “X”.

� Supomos também que o cursor aponta para uma célulaantes do primeiro destes dois números.

� Para simplificação didática da apresentação da Máquina dePost, suponha que dois números inteiros na fita estãosempre separados por exatamente uma célula em branco !!!

� Seja o exemplo de somar 4 + 3:

128

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Post - Estrutura básica – apresentação informal

Exemplo para a Máquina de Post

129

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing - Estrutura básica – apresentação informal

• A Máquina de Turing, a exemplo da Máquina de Post, éuma estrutura conceitual e, por isso, também denominadamáquina abstrata. Poderia ser construída com algummaterial apropriado, mas, não o sendo necessariamente, éuma máquina virtual, e não real.

Estrutura básica da Máquina de Turing

� Possui uma fita infinita dividida em células

� Possui um cursor para apontar para as células da fita

� Cada célula da fita, num dado instante, pode estar vazia oumarcada com um elemento pertencente a um conjuntofinito de símbolos previamente determinados (correspondeà noção de alfabeto de linguagem !!!)

� O cursor pode assumir uma configuração Ck dentre umconjunto {C1, C2, ... CN} finito de configurações possíveis,previamente determinadas (corresponde ao estado de umautômato !!!)

130

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing - Estrutura básica – apresentação informal

Estrutura básica da Máquina de Turing

� O cursor da Máquina de Turing pode:

� Mover-se para a esquerda ou direita, uma célula de cadavez

� Ler o símbolo marcado na célula em que estiverapontando

� Imprimir ou apagar símbolos na célula em que estiverapontando

� O funcionamento da Máquina de Turing consiste nomovimento do cursor (para a esquerda ou direita) e naimpressão ou eliminação de símbolos nas células da fita

� Este funcionamento ocorre de acordo com um conjunto deinstruções que constituem o programa da Máquina deTring. Aqui, a movimentação do cursor depende de doisfatores: (1) a configuração atual do cursor (estado) e (2) osímbolo atual da célula em que se encontra o cursor

131

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing - Estrutura básica – apresentação informal

Máquina de Turing X Máquina de Post

• A principal diferença entre as Máquinas de Turing e Postreside no fato de que:

� na Máquina de Turing, a decisão da instrução dependede 2 fatores: (1) a configuração atual (estado) do cursore (2) o símbolo atual lido na célula

� na Máquina de Post, a decisão da instrução dependeapenas do valor da célula estar em branco ou marcada(com “X”).

• Note que basicamente, na Máquina de Post exitem apenasdois símbolos: branco e “X”. Na Máquina de Turing épossível ter um conjunto finito com mais de dois símbolos.

• Apesar disso, um resultado importante é que a Máquina deTuring e a Máquina de Post são equivalentes !!!!

Ou seja, tudo que é possível fazer na Máquina de Turing,também é possível fazer na Máquina de Post !!!

132

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing - Estrutura básica – apresentação informal

Exemplo para a Máquina de Turing

� Seja o problema de somar dois números inteiros quesabemos estar armazenados na fita. Os símbolos que sãoarmazenados na fita são o “0” e “1”

� Os números são representados na fita por uma quantidadecontígua de “1”.

� Supomos também que o cursor aponta para uma célulaantes do primeiro destes dois números.

� Para simplificação didática da apresentação da Máquina dePost, suponha que dois números inteiros na fita estãosempre separados por exatamente uma célula contendo o“0”

� Seja o exemplo de somar 4 + 3:

133

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing - Estrutura básica – apresentação informal

Exemplo para a Máquina de Turing

� Abaixo, uma possível tabela de instruções para efetuar asoma 4 + 3:

� Obs 1: Note que os símbolos (alfabeto) desta Máquinade Turing são: {0, 1}

� Obs. 2: Note que as configurações do cursor (estados)desta Máquina de Turing são: {C1, C2, C3}

134

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• Voltemos à nossa questão básica:

� “o que os computadores podem fazer ?”

• A Máquina de Post e Máquina de Turing nada mais é doque um modelo abstrato de computação, com o objetivo deexplorar os limites da capacidade de expressar soluções eproblemas.

• Ambas as máquinas são propostas de definição formal danoção intuitiva de algoritmo !!!

• Outros trabalhos (funções recursivas de Kleene, p. ex.) reresultaram em conceitos equivalentes ao de Turing. E comisso podemos responder : “o que os computadores podemfazer ?” . Respota: tudo o que pudermos fazer naMáquina de Turing. Esta é a chamada Hipótese de Churchou Hipótese de Turing-Church.

Hipótese de Turing Church

“A capacidade de computação representada pela Máquina deTuring é o limite máximo que pode ser atingido por qualquerdispositivo de computação”

135

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Hipótese de Turing Church

“A capacidade de computação representada pela Máquina deTuring é o limite máximo que pode ser atingido por qualquerdispositivo de computação”

• Em outras palavras, a Hipótese de Turing-Church afirmaque qualquer outra forma de expressar algoritmos terá, nomáximo, a mesma capacidade computacional da Máquinade Turing.

• Como a noção de algoritmo ou função computável éintuitiva (não é formal), a Hipótese de Turing-Church não édemonstrável.

• Vimos anteriormente que existem problemas indecidíveis(KurtGodel e Alonso Church “derrubaram” as pretensõeshilbertianas de se encontrar um método único que poderiadecidir sobre a verdade/falsidade de sentençasmatemáticas)

• “o que os computadores podem fazer ?” significa respondera conhecer um método único que resolva problemasdecidíveis. A Máquina de Turing é o tal método único.Vejamos um pouco mais...

136

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• Para entender as possibilidades da Máquina de Turingvamos inicialmente entender o conceito de conjuntoenumerável (ou conjunto contável)

• Conjunto enumerável - estabelecido por G. Cantor (1845-1918) - é todo conjunto, infinito ou não, em que é possívelpôr em correspondência um a um seus elementos com osnúmeros inteiros positivos.

� Exemplo: o conjunto (infinito) dos números inteirosímpares positivos é um conjunto enumerável, poispodemos associar a cada número ímpar do conjunto, umnúmero inteiro positivo (como se fosse um “número dematrícula” do número dentro do conjuntos dos inteirosímpares)

137

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• Cantor verificou que o conjunto (infinito) dos númerosRacionais (as frações ) é um conjunto enumerável.

• Ou seja, é possível “contar” todos os (infinitos) númerosRacionais. Veja abaixo como Cantor “contou” os númerosracionais:

138

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• A “contagem” do conjunto (infinito) dos númerosRacionais

• Cantor verificou também que o conjunto (infinito) dosnúmeros Reais (que contém números Racionais eIrracionais) não é um conjunto enumerável.

� Para mostrar isso vamos tomar apenas as fraçõesirredutíveis (com numerador e denominador sendonúmeros primos entre si) entre 0 e 1, uma vez quequalquer outra fração do intervalo considerado éequivalente a alguma fração irredutível (p. ex. a fração3/9 equivale à fração irredutível 1/3). Assim, ficamoscom as seguintes frações:

139

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

� Tal conjunto também é infinito e enumerável:

� Consideremos então o número 0,53600006... construído apartir da diagonal dos números listados.

� Se modificarmos cada dígito decimal, por exemplo,somando + 1 a cada dígito diferente de 9 e mudando para 0caso o dígito seja 9, obteremos o número 0,64711117...

140

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

� Ou seja, o número da diagonal

0,53600006....

transformou-se no número

0,64711117....

� Assumimos, por comodidade, que αααα = 0,64711117....

� αααα não está entre 0 e 1 !!!

� αααα difere do primeiro racional da lista (0,500000...) porquêcom certeza difere pelo menos da primeira casa decimal domesmo (note que o dígito 5 “virou” dígito 6 em αααα)

� αααα difere do segundo racional da lista (0,333333...) porquêcom certeza difere pelo menos da segunda casa decimal domesmo (note que o dígito 3 “virou” dígito 4 em αααα)

� αααα difere do terceiro racional da lista (0,666666...) porquêcom certeza difere pelo menos da terceira casa decimal domesmo (note que o dígito 6 “virou” dígito 7 em αααα)

141

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

� αααα difere do quarto racional da lista (0,250000...) porquêcom certeza difere pelo menos da quarta casa decimal domesmo (note que o dígito 0 “virou” dígito 1 em αααα)

.

.

.� αααα difere do 1435o racional da lista porquê com certeza

difere pelo menos da 1435a casa decimal do mesmo....

� αααα difere do n-ésimo racional da lista porquê com certezadifere pelo menos da n-ésima casa decimal do mesmo.

� αααα é irracional pois a lista contém todos os (infinitos)números racionais e como αααα não está na lista, αααα éirracional.

� Conclusão: o conjunto dos números Reais, que contém osirracionais, não é contável (não é um conjuntoenumerável): nenhuma lista infinita pode conter todos osnúmeros Reais !!!

142

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• Turing percebeu a conexão entre o problema de Hilbert, asfunções computáveis (Alonso Church) e as idéias de Cantorao ponto de propor a Máquina de Turing, que é então ummodelo simples, porém preciso de computação.

• Observando o exemplo anterior apresentado sobre Máquinade Turing, podemos dizer que qualquer Máquina de Turingé definida por uma tabela (ou programa) finita deinstruções, processando um conjunto finito de símbolos.

• Podemos dizer que o conjunto de todas as Máquinas deTuring é um conjunto enumerável (a exemplo doconjunto dos números ímpares positivos, do conjunto dosnúmeros racionais, etc...).

• Note que uma Máquina de Turing é um “programa” decomprimento 1 quando só tem uma instrução, decomprimento 2 quando só tem duas instruções, decomprimento 3 quando só tem três instruções, ...., decomprimento 3245 quando só tem 3245 instruções, decomprimento n quando só tem n instruções, .....

143

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• Vamos contar (enumerar) todas as infinitas Máquinas deTuring. Isto é possível fazer.

144

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

• Suponha que desejamos construir uma Máquina de Turingpara resolver o seguinte problema: contar (enumerar) oconjunto dos números Reais.

• Ora, já vimos que o problema de contar os números reais éuma tarefa impossível !!! Ou seja, não existe Máquina deTuring alguma que consiga realizar tal proeza !!!

• Conclusão 1: existem, de fato, problemas indecidíveis,para os quais jamais existirá algum dispositivocomputacional que consiga resolvê-los.

• Conclusão 2: As Máquinas de Turing (e “similares” taiscomo Máquina de Post) definem as limitações dosprocedimentos mecânicos, bem como suas possibilidades,que se materializam na figura do computador digitaleletrônico.

• “o que os computadores podem fazer ?” : Podemosresponder que os computadores podem fazer tudo o quepuder ser feito numa Máquina de Turing, que é entãoconsiderada uma “Máquina Universal”, pois define o limitemáximo possível de computação.

145

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

• Relembrando: Na teoria de autômatos, um problema é aquestão de decidir se um dado string pertence ou não a umadeterminada linguagem em questão (ou seja problema =linguagem).

• De forma resumida, podemos dizer Máquinas de Turing(e outras “similares” tais como Máquinas de Post) sãodispositivos construídos para resolver problemas (obs.:problema = linguagem).

Exemplo de problema (linguagem)

� Sobre o alfabeto Σ = { 0, 1 } construir todas as sentençasque possuem uma quantidade par de bits 0 e umaquantidade ímpar de bits 1.

� Então L = { w | w tem uma quantidade par de bits 0 e umaquantidade ímpar de bits 1 }

� É possível construir uma Máquina de Turing parareconhecer sentenças da linguagem L (note então que aMáquina de Turing é um reconhecedor de linguagem =“resolvedor de problema”).

146

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

• Foi mostrado que o conjunto de todas as Máquinas deTuring existente é um conjunto infinito, porém enumerável!!! Ou seja, podemos enumerar todas as Máquinas deTuring (reconhecedores de linguagem – “resolvedores deproblema”) que exitem !!!

• Mas e os problemas (linguagens) que existem ? Será queeles são também enumeráveis ???

• Suponha, por exemplo, um alfabeto finito com, digamos, 3símbolos: Σ = { α, β, χ }. Vamos tentar enumerar todas aslinguagens que possam ser construídas sobre Σ. Vejaabaixo a citação de algumas:

L1 = { w | w tem quantidade par de símbolos α }L2 = { w | w tem quantidade par de símbolos β e

quantidade ímpar de símbolos χ }L3 = { w | w tem quantidade par de símbolos β ou

quantidade ímpar de símbolos χ }L4 = { w | w tem o símbolo α na 32a posição e β na 73a

posição}L5 = { w | w tem 3 símbolos β a mais que α }

. . .

147

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

• Consideremos agora todas as (infinitas) sentenças w quepodem ser escritas usando o alfabeto Σ = { α, β, χ }.

� Por exemplo, seja a sentença w = βααχβββαββχαχβ.Neste caso, w ∈ L1, w ∈ L3, w ∈ L5, w ∉ L2, w ∉ L4.

• Vamos listar então, de forma matricial, todas as (infinitas)sentenças w e todas as (infinitas) linguagens (ou sejaproblemas) possíveis sobre o alfabeto Σ = { α, β, χ }.

148

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

• Vamos agora convencionar 0 para indicar que a k-ésimasentença não pertence à i-ésima linguagem L e 1 paraindicar que a k-ésima sentença pertence à i-ésimalinguagem L: 0 = wk ∉ Li 1 = wk ∈ Li

• Desta forma poderíamos ter, por exemplo, a seguintesituação de relação de pertinência de sentença à linguagem:

• Na situação acima, temos que w1 ∉ L1, w2 ∈ L1, w3 ∈ L1,w2 ∉ L2, w3 ∈ L2, w6 ∉ L4, w3 ∈ L5, w4 ∈ L7, etc, etc...

149

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

• Consideremos agora a “Linguagem da Diagonal” (Ld) databela acima. É de fato uma linguagem, pois “avalia” cadauma das infinitas sentenças (w1 ∉ Ld, w2 ∉ Ld, w3 ∈ Ld, ...)

• Ld também com certeza aparece em alguma linha da tabelae podemos visualizar Ld assim:

Ld = {0 0 1 0 1 0 1 ... }

150

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

• Consideremos agora a linguagem L’d a linguagem“complementar” de Ld. Assim, cada sentença wk quepertença a Ld, temos que wk não pertence a L’d:

∀ wk, se wk ∈ Ld então wk ∉ L’ d

• Então temos:

Ld = {0 0 1 0 1 0 1 ... }L’ d = {1 1 0 1 0 1 0 ... }

Problema: Em qual linha da tabela se encontra L’d ?

L’ d não é L1 pois difere da mesma com relação a w1,L’ d não é L2 pois difere da mesma com relação a w2,L’ d não é L3 pois difere da mesma com relação a w3,L’ d não é L4 pois difere da mesma com relação a w4,. . .L’ d não é Ln pois difere da mesma com relação a wn,. . .

Resposta: L’ d não está listada !!!

Qual a conclusão que podemos inferir ?

151

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

Máquina de Turing e Máquina de Post - Possibilidades

Problemas Indecidíveis – outra forma de “demonstração”

Conclusão

• O conjunto das linguagens (problemas) definidas sobre oalfabeto Σ = { α, β, χ } é um conjunto infinito nãoenumerável. !!! Este resultado vale também (por intuição epor indução) para as linguagens construídas sobre alfabetoscom 2, 4, 5, 6, 7, 8, ... símbolos.

• Como Problema = Linguagem, e Máquina de Turing é o“dispositivo universal” para resolução de problemas, entãoexistem problemas (linguagens) que não possuem nenhumaMáquina de Turing para resolvê-los.

• Existem, portanto, problemas indecidíveis !!!

152

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

• Relembrando a Hipótese de Church-Turing:

“A capacidade de computação representada pela Máquina deTuring é o limite máximo que pode ser atingido por qualquerdispositivo de computação”

• Outros dispositivos (citados abaixo) possuirão, no máximo,o mesmo poder computacional da Máquina de Turing:

� Autômato com duas ou mais pilhas

� Máquinas de Turing não determinísticas

� Máquinas de Turing com fita infinita à esquerda e àdireita

� Máquinas de Turing com múltiplas fitas

� Máquinas de Turing multidimensionais (substituir a fitapor uma estrutura bidimensional, tridimensional,..........,k-dimensional...)

� Máquinas de Turing com múltiplas cabeças deleitura/gravação

� Combinações de diversas modificações sobre a Máquinade Turing.

153

LINGUAGENS FORMAISNoções de Máquinas Universais e Computabilidade

• Resumindo a questão de linguagem, até aqui temos:

• As Máquinas de Turing são reconhecedores de linguagem.

• Que tipo de linguagem (problema) é reconhecida(resolvido) por uma Máquina de Turing ?

154

LINGUAGENS FORMAISLinguagens reconhecidas por Máquina de Turing

• Do anteriormente exposto, podemos dizer que as Máquinasde Turing são reconhecedores de linguagens. Mas que tipode linguagem as Máquinas de Turing reconhecem ?

• Uma linguagem aceita por uma Máquina de Turing édenominada Linguagem Recursivamente Enumerávelou linguagem RE. As linguagens RE são linguagens tipo 0.

• O termo “recursivamente enumerável” vem deformalismos computacionais anteriores à Maquina deTuring: formalismos baseados em recursão (mas não emiterações ou loops) eram frequentemente utilizados comouma noção de computação. Ou seja, antes da Máquina deTuring poder-se-ia dizer, simplificadamente que “através deuma recursão é possível listar (enumerar), em algumaordem, os elementos (sentenças) de uma linguagem(problema)”.

155

LINGUAGENS FORMAISLinguagens reconhecidas por Máquina de Turing

• A classe das Linguagens Recursivamente Enumeráveisinclui algumas linguagens L tais que a Máquina de TuringM que aceita L ao processar uma determinada sentença w:

Se a sentença w ∈ L , então M para e aceita w.

Se a sentença w ∉ L , então M pode parar rejeitando a palavra ouM pode permanece em loop,processando indefinidamente

• Ou seja, Linguagens RE são caracterizadas por umaMáquina de Turing que para alguma(s) sentença(s) w quenão pertençam à linguagem, a Máquina de Turing fica emloop indefinidamente processando tal sentença w.

156

LINGUAGENS FORMAISLinguagens reconhecidas por Máquina de Turing

• Existem também linguagens L tais que as Máquinas deTuring M que aceitam L ao processar uma determinadasentença w:

Se a sentença w ∈ L , então M para e aceita w.

Se a sentença w ∉ L , então M para rejeitando a palavra

• Tais linguagens, cuja Máquina de Turing sempre para,aceitando ou rejeitando qualquer sentença w são ditasLinguagens Recursivas.

• Uma Máquina de Turing desse tipo (que sempre paraaceitando ou rejeitando w) corresponde à nossa noçãoinformal de algoritmo: uma sequência bem definida deetapas que sempre termina e produz uma resposta.

• Relembrando: Linguagem = “Problema”. Então:

Linguagem “Problema”

Recursiva Decidível (existe um algoritmo)

RecursivamenteEnumerável (RE)

Indecidível para alguns casos

Não-RE Indecidível (não existe um algoritmo)

157

LINGUAGENS FORMAISLinguagens reconhecidas por Máquina de Turing

• Diagrama de classificação de Linguagens

Linguagem (L ) Máquina de Turing (M )Recursiva M sempre para, aceitando ou rejeitando w

RecursivamenteEnumerável (RE)

Se w ∈ L então M para e aceita w (problemadecidível)Se w ∉ L então M pode, eventualmente entrarem loop processando indefinidamente(problema indecidível)

Não RE Não existe M !!!!

158

LINGUAGENS FORMAISLinguagens RE e Recursivas: propriedades

• Teorema 1: Seja L uma linguagem recursiva. Então ocomplemento de L – denominado L’ – é também umalinguagem recursiva.

� Se L é recursiva, então significa que a Máquina deTuring M que aceita L sempre para, aceitando ourejeitando a sentença w processada. Ou seja, existe umalgoritmo para a linguagem (problema) L .

� Relembrando Teoria Elementar de Conjuntos: ocomplementar de um conjunto:

159

LINGUAGENS FORMAISLinguagens RE e Recursivas: propriedades

� Considere agora uma linguagem L , construída sobrealgum alfabeto ΣΣΣΣ com todas as suas (normalmente)infinitas sentenças w1, w2, w3, ... e as sentenças w’ 1, w’ 2,w’ 3, ... que não pertencem a L:

� Suponha que L é uma linguagem recursiva: então existeuma Máquina de Turing M (algoritmo) que aceita L , ouseja aceita todas as sentenças w1, w2, w3, ... que de fatopertencem a L e rejeita todas as sentenças w’ 1, w’ 2, w’ 3,... que não pertencem a L .

� Note então que se a linguagem “processada” por M fosseL’ , M “inverteria” suas repostas: rejeitaria w1, w2, w3, ...e aceitaria w’ 1, w’ 2, w’ 3, ... porém sempre irá decidirsobre todas as sentenças. Assim L’ , o complemento deL , é também recursiva.

160

LINGUAGENS FORMAISLinguagens RE e Recursivas: propriedades

• Teorema 2: Se L é uma linguagem RE e seu complementoL’ também é RE então, necessariamente L é recursiva e,por conseguinte, L’ também é recursiva.

� Seja M 1 uma Máquina de Turing que aceite L : L = L(M1)e seja M 2 uma Máquina de Turing que aceite L’ : L’ =L(M 2).

� É possível construir uma Máquina de Turing M quesimula, em paralelo, M 1 e M 2 :

� Se a entrada w ∈ L , então M 1 aceita e para e assim Maceita e para. Se w ∉ L , então w ∈ L’ e assim M 2 aceita eM rejeita e para. Como M sempre para, concluímos queM é uma Máquina de Turing para L e L é recursiva.Sendo L recursiva, L’ também é recursiva (pelo Teorema1).

� Conclusão: não ocorre a situação de L ser RE e L’também ser RE.

161

LINGUAGENS FORMAISLinguagens RE e Recursivas: propriedades

• Os Teoremas 1 e 2 acima enunciados nos levam a aceitarapenas quatro das nove possíveis combinações existenciaisde uma linguagem L e seu complemento L’ com relação àclassificação

Opção Recursiva RE Não-RE Situação1 L e L’ - - Possível2 - - L e L’ Possível3 - L L’ Possível4 - L’ L Possível5 L L’ - Impossível6 L - L’ Impossível7 L’ L - Impossível8 L’ - L Impossível9 - L e L’ - Impossível

162

LINGUAGENS FORMAISLinguagens – Síntese 1

• Quadro sinóptico dos tipos de linguagens