Computabilidade; Decidibilidade; O Problema Da Parada

March 21, 2018 | Author: EfraimAdrion | Category: Algorithms, Computer Science, Formalism (Deductive), Discrete Mathematics, Theory Of Computation


Comments



Description

Efraim Naassom Helem Dantas RodriguesComputabilidade; Decidibilidade; O Problema da Parada Mossoró / RN Dezembro de 2015 Efraim Naassom Helem Dantas Rodrigues Computabilidade. Decidibilidade. Universidade Federal Rural do Semi-Árido – UFERSA Curso Ciência da Computação Graduação Mossoró / RN Dezembro de 2015 1 . O Problema da Parada Trabalho referente a terceira unidade da disciplina Teoria da Computação que aborda Computabilidade. e Problema da Parada. Decidibilidade. Além disso. é possível entender como a computabilidade de um problema pode ser verificada. bem como se um problema é decídivel. o texto também conta a história do surgimento dos estudos que buscam conhecer os limites das máquinas computacionais. Sendo assim. decidibilidade foram induzidos e como podem ser usados.Resumo Esse texto mostra como os conceitos de computabilidade. Decidibilidade. Problema da Parada. 2 . Alonzo Church. e ainda que o problema da parada não é solucionável. Palavras-chaves: Computabilidade. Alan Turing. . . . . . . . . . . . 1. . . . . . . . . . . . . 4 5 10 11 12 12 Conclusão . .1 3. . . . . . . . O Problema da Parada .Sumário 1. . . . . . . . . . . . . . . . .1 2. . . . . . . . . . . . . . . . . . . . Exemplo . . . . . . 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 REFERÊNCIAS . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . Computabilidade . . . . . . . . . . . . . . . . Exemplo . . . . . . . . . . . . . . . . . . . . . Decidibilidade . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . . . . . Introdução . . . . . . . . . . . . . . . . . . [3] . então Turing definiu a máquina de computar. que apesar de terem sidos estudos completamente desvinculados. abordavam conceitos equivalentes. O esclarecimento desses conceitos feito por Turing e Church. Decidibilidade. ele buscou entender os processos envolvidos na atividade de computar um número por um ser humano. A máquina de computar de Turing foi futuramente usada para descobrir quais seriam os problemas computáveis. Ao passo que Turing estudava os números computados pela máquina de computar com uma aplicação ao Entscheidungsproblem. serviu como base para o aprofundamento da Computabilidade. Church estudava o conceito de calculabilidade efetiva.Introdução Turing propôs o termo computável para designar a totalidade de números reais cuja expansão decimal pode ser calculada através de recursos finitos. e O Problema da Parada. Para isso. mas diferentemente definida. with an application to the Entscheidungsproblem baseando-se em processos efetuados pelos humanos ao computar um número. seus estudos eram completamente desvinculados e mesmo assim eles justificavam a mesma fundamentação matemática. vezes confundido com o conceito de satisfatoriedade. como um mecanismo M que fosse definido por um conjunto finito de instruções sendo cada instrução descrita de maneira finita de forma que a calculabilidade efetiva seria caracterizada por não requerer intuição. que é equivalente a minha computabilidade. Church assim esclarecia o conceito de calculabilidade efetiva. os números reais que pudessem ter sua expansão decimal computada por contáveis operações da máquina seriam chamados de “números computados pela máquina”.1. Apesar de Church e Turing terem coincidido em estudar o mesmo conceito. Turing descreveu uma máquina teórica finita chamada de “máquina de computar”. em suma.” [3] 5 . seria necessário provar que a máquina realmente seria capaz de reconhecer os números computáveis. Alonzo Church publicava o artigo An unsolvable problem of elementary number theory que propunha uma definição para calculabilidade efetiva. inteligência. enfrentava o problema de provar matematicamente que os números computados eram realmente números considerados computáveis. Turing porém. e introduzindo formalmente a noção de computabilidade. Foi em 1936 que Turing publicou o artigo On computable numbers. Computabilidade O termo computável foi proposto por Alan Turing para deisgnar a totalidade de númeos reais cuja expansão decimal pode ser calculada através de recursos finitos. Turing admitia isso publicamente em seu artigo publicado em 1936 escrevendo: “Em um artigo recente Alonzo Church introduziu a ideia de calculabilidade efetiva. ou criatividade. Propondo então o termo computabilidade. Figura 1 – Alan Turing O termo computabilidade é usado hoje como algo que busca investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. Com base nisso. As máquinas são tão gerais que podem simular quaisquer possível computação. não há relatos de um modelo “algorítmico” mais geral que as Máquinas de Turing. mesmo havendo a tentativa de criar máquinas tão gerais quanto. A Máquina de Turing definida em 1936 buscava explorar os limites da capacidade de expressar soluções de problemas. além disso. O estudo da computabilidade mostra sua importância em evitar trabalho para buscar soluções que não existem. a Hipótese de Church intuitivamente defende: “A capacidade de computação representada pela Máquina de Turing é o limite 6 . É importante considerar a hipótese de Church a fim de que métodos usados para verificar computabilidade sejam introduzidos. Para assim verificarse que tipos de problemas podem ser resolvidos por uma máquina finita (computador). como foi feito por Kleene (que foi aluno de Church em 1930) em 1936 apresentando a Máquina de Post por exemplo. Em outras palavras a computabilidade busca responder se existe um conjunto finito de instruções que resolvem dado problema mecanicamente. q0 . (Q. e qrejeita ∈ Q é o estado de rejeição.Σ. ser processado por um computador com memória ilimitada ou abundante.δ. é possível simular e capturar o que é possível.Γ são todos conjuntos finitos 1 2 3 4 5 6 Q é o conjunto de estados. Σ é o alfabeto de entrada sem o símbolo em branco t.” [1] Figura 2 – Alonzo Church Por as máquinas de Turing operarem com uma fita infinita.Γ. qaceita ∈ é o estado de aceitação. ou não. onde Q.Σ. Fonte: [2] 7 . qrejeita ).máximo que pode ser atingido por qualquer dispositivo de computação. onde t ∈ Γ e Σ ⊆ Γ. δ: Q × Γ −→ Q × Γ × {E. onde qrejeita 6= qaceita . Definição 1: Uma máquina de Turing é uma 7-upla. Γ é alfabeto de fita. q0 ∈ Q é o estado inicial. qaceita .D} é a função de transição. retirado de [2]. • Os estados inicial. qaceita . sim. Vá para o estágio 1. Se no estágio 1. 8 .Γ. aceite. qrejeita ). M2 = “Sobre a cadeia de entrada w: 1. que consiste em todas as cadeias de 0s cujo comprimento é uma potência de 2. a fita continha mais que um único 0 e o número de 0s era ímpar. onde: • Q = { q1 . q4 . marcando um 0 não.δ.Aqui é apresentado o exemplo. e outro. qaceita . 5.t}.Σ. 3. de uma máquina de Turing M2 que n reconhece a linguagem A = { 02 | n ≥ 0 }. • δ é descrito como um diagrama de estados mostrado na seguinte figura.” Formalmente M2 = (Q. rejeite. qaceita e qrejeita respectivamente. de aceitação e de rejeição são q1 . q1 . Faça uma varredura da esquerda para a direita na fita. qrejeita }. 4. 2.x. Se no estágio 1. Retorne a cabça para a extremidade esquerda da fita. q3 . q5 . q2 . a fita continha um único 0. • Σ={0}e • Γ = {0. n Figura 3 – Máquina de Turing que reconhece a linguagem A = { 02 | n ≥ 0 } Sabendo-se do poder da máquina de Turing. Sendo assim. Os estudiosos de ciências da computação geralmente concentram-se nos problemas com respostas binárias do tipo sim ou não. por exemplo Máquina de Turing) que solucione o problema tal que pare quando a resposta é afirmativa (ACEITA). Sendo assim. entre outros. A vantagem de se concentrar nesses problemas é que eles podem ser tratados como a verificação se determinada linguagem é recursiva. tempo de execução. tem-se que problemas parcialmente solucionáveis são computáveis. é possível afirmar que: a classe os problemas solucionáveis é equivalente à classe das linguagens recursivas Tem-se que alguns problemas não solucionáveis são parcialmente solucionáveis. embora. tem-se que: a classe dos problemas parcialmente solucionáveis é equivalente à classe das linguagens enumeráveis recursivamente Portanto. ainda temos que um problema é parcialmente solucionável se existe um algoritmo (Máquina Universal. Porém. bem como tamanho da memória principal. preocupações com limitações reais de uma implementação não devem ser desconsiderados. Então. possa ficar em loop infinito para uma resposta que deveria ser não. associando as condições de ACEITA/REJEITA de uma máquina universal às respostas sim/não respectivamente. o algoritmo pode parar (REJEITA) ou permanecer processando indefinidamente 9 . eventualmente. quando a resposta esperada for negativa. isso significa dizer que existe um algoritmo capaz de responder sim. • Σ = { 0 . [1] 1.(LOOP). Formalmente M3 = (Q. qaceita . 10 . qrejeita ). leia (x) enquanto x 6= 3 mostre (1) x=x+1 mostre (0) fim A máquina de Turing M3 é proposta para reconhecer a linguagem gerada pelo algoritmo acima. é possível escrever o seguinte algoritmo de forma que este tenha como saída a linguagem A = {1n 0 | onde 0 ≤ n ≤ 3 } a ser reconhecida pela máquina de Turing que será descrita em breve. qrejeita }.1 Exemplo O exemplo apresentado aqui é o problema de reconhecer números menores ou iguais a 3. Para resolver esse problema.. • δ é descrito como um diagrama de estados mostrado na seguinte figura. q4 . 1} e • Γ = {t}. qaceita e qrejeita respectivamente. q1 . • Os estados inicial. de aceitação e de rejeição são q1 . q2 . qaceita .δ. q3 .Γ. 1 2 3 4 5 6 Algoritmo 1: Reconhece valores menores ou iguais a três. onde: • Q = { q1 .Σ. foi-se introduzida a máquina de Turing como recurso usado para verificar computabilidade/solucionabilidade de um problema. Decidibilidade Na seção anterior foram definidos conceitos fundamentais para o estudo da computabilidade e decidibilidade. se existe uma máquina de Turing que retorna uma resposta.Figura 4 – Exemplo de máquina de A = {1n 0 | onde 0 ≤ n ≤ 3 } Turing que reconhece a linguagem 2. Diz-se que um problema é decidível se sua solução é alcançada em tempo finito. assim buscando investigar a existência ou não de algoritmos que solucionem determinada classe de problemas. O conceito de decidibilidade não trata da quantidade de tempo gasto e sim se ele é finito. por exemplo. além de que o estudo aponta para possibilidades de simplificações 11 . [2] A principal motivação para estudar decidibilidade é porque o estudo decidibilidade ajuda a identificar problemas insolúveis. em outras palavras. entretanto. aceite. Alan Turing provou em 1936 que não é possível que exista um algoritmo geral para resolver o problema da parada. Simule B sobre a entrada w.” [2] 3. Para isso. mostrar que a linguagem é decidível é o mesmo que mostrar que o problema computacional é decidível. uma cadeia: 1. [2] 2. wi é um membro da linguagem de autômatos finitos determinísticos. o problema procura simplesmente responder se o programa vai parar com uma determinada entrada. limitações de máquina não devem ser consideradas. rejeite. O problema procura determinar se um dado programa e uma dada entrada para o programa vai parar quando executado com a entrada. e. testar se um autômato finito determinístico b aceita uma entrada w é o mesmo que o problema de se testar se hB. Semelhantemente como é feito em computabilidade. os problemas computacionais são representados através de linguagens. Para a verificação desse problema. O problema da parada pode ser descrito como segue: Dada uma máquina Universal M qualquer e uma palavra w qualquer sobre o alfabeto de entrada. Se a simulação termina em um estado de aceitação. existe um algoritmo que verifique se M pára. Se ela termina em um estado de não-aceitação. Sendo assim.1 Exemplo O exemplo usado aqui será baseado nas definições feitas anteriormente onde é desejável testar se hB. assim sendo. wi é um membro da linguagem AAF D . aceitando ou rejeitando. ao processar a entrada w? [1] O problema da parada pode ser redefinido pela seguinte linguagem: 12 . se o programa não parar. wi. 2. onde B é um AFD. é necessário uma máquina de Turing. não é possível saber se ele executará para sempre ou se irá parar eventualmente. para verificar a decidibilidade de um problema. w. Uma alternativa descuidada para verificar esse problema é simplesmente executar o programa por alguns passos e verificar se uma hora o programa vai parar. O estudo da decidibilidade foca na investigação de se determinada cadeia é membro de determinada linguagem.e/ou alterações do problema original para que ele possa se tornar solúvel. O Problema da Parada O problema da parada é um problema de decisão sobre as propriedades de programas em um modelo de máquina.. seja: M4 = “Sobre a entrada hB. Por exemplo. O que segue é uma descrição de D. onde H(hM. Então. ela faz o oposto. ou seja. consequentemente que o problema da parada não é solucionável. se H aceita.wi | M é uma Máquina de Turing e M aceita a entrada w} É desejável demonstrar que AM T não é recursiva.AM T {hM. assumimos que H seja uma MT. D = “Sobre a entrada hMi. Por exemplo. Consequentemente. Agora é construída uma máquina de Turing D com H como uma subrotina. o que é obviamente uma contradição.” [2] 13 . H pára e rejeita se M falha em aceitar w. ser escrito em Pascal. ela é forçada a fazer o oposto. rejeite e se H rejeita. Sipser.hMii. é uma cadeia. Rode H sobre a entrada hM. H pára e aceita se M aceita w. Em suma. Quando D é executado com sua própria descrição hDi tem-se D(hDi) =   aceite se D não aceita hDi  rejeite se D aceita hDi. Em outras palavras. wi) =   aceite se M aceita w  rejeite se M não aceita w. 2. independentemente do que D faz. tem-se que. um compilador é um programa que traduz outros programas. onde M é uma MT: 1. Uma vez que D tenha determinado essa informação. Além disso. D(hM i) =   aceite se M não aceita hMi  rejeite se M aceita hMi. Essa nova MT chama H para determinar o que M faz quando a entrada para M é a própria descrição hM i. e w. ele próprio. aceite. Suponha que H seja um decisor para AM T .” A idéia de rodar uma máquina sobre a sua própria máquina é algo que de fato ocorre ocasionalmente na prática. Um compilador para a linguagem Pascal pode.wi. na qual M é uma MT. Sobre a entrada hM. portanto rodar esse programa sobre si próprio faria sentido. Ou seja. ela rejeita se M aceita e aceita se M não aceita. Michael [2] prova a afirmação feita anteriormente da seguinte forma: “Supomos que AM T seja decidível e obtemos uma contradição. nem a MT D nem a MT H podem existir. Dê como saída o oposto do que H dá como saída. foi provado que O Problema da Parada não é solucionável.Portanto. 14 . uma MT não pode resolver certos problemas.Conclusão Neste trabalho. foi possivel conceber formas para verificar estes limites e que há limites mesmo nos modelos computacionais mais gerais. . que dispositivos com quantidades ilimitadas de memória e modelos computacionais universais não são suficientes para resolver todos os problemas da computação. como a Máquina de Turing. mencionada aqui várias vezes. foi possível perceber. Com este estudo. Mesmo com a MT fazendo tudo que um computador real pode fazer. Tiarajú e Blauth Menezes. Rio de Janeiro. Ed.Máquinas Universais e Computabilidade. Ed. Bookman. 2010. . Isabel.: Introdução à Teoria da Computação.Referências [1] Asmuz Diverio. Revista Brasileira de História da Ciencia. [2] Sipser. [3] Cafezeiro. Michael.: Recontando a computabilidade. Paulo. 2008. Thomson.: Teoria da Computação . 2007. Top Nonfiction on ScribdView MoreSkip carouselcarousel previouscarousel nextThe InnovatorsDispatches from PlutoElon MuskSapiensThe UnwindingYes PleaseThe PrizeA Heartbreaking Work Of Staggering GeniusGrand PursuitThis Changes EverythingThe Emperor of All MaladiesJohn AdamsDevil in the GroveRise of ISISSmart People Should Build ThingsThe Hard Thing About Hard ThingsThe World Is Flat 3.0Team of RivalsThe New Confessions of an Economic Hit ManBad FeministHow To Win Friends and Influence PeopleAngela's AshesSteve JobsTop Fiction on ScribdView MoreSkip carouselcarousel previouscarousel nextThe IncarnationsYou Too Can Have a Body Like MineLeaving BerlinThe Silver Linings PlaybookThe SympathizerExtremely Loud and Incredibly CloseThe Light Between OceansThe First Bad ManWe Are Not OurselvesThe Blazing WorldThe Rosie ProjectBrooklynThe FlamethrowersA Man Called OveBel CantoThe MasterLife of PiThe Love Affairs of Nathaniel P.A Prayer for Owen MeanyThe Cider House RulesThe Perks of Being a WallflowerLovers at the Chameleon Club, Paris 1932The Bonfire of the VanitiesInterpreter of MaladiesBeautiful RuinsThe Kitchen HouseThe Art of Racing in the RainWolf HallThe WallcreeperBilly Lynn's Long Halftime WalkFooter MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Copyright © 2024 DOKUMEN.SITE Inc.