Teoria da computabilidade

A teoria da computabilidade, também conhecida como teoria da recursão, é um ramo da lógica matemática que surgiu na década de 1930 com o estudo das funções computáveis e do grau de Turing[1]. O campo se expandiu para incluir o estudo generalizado da computabilidade e definibilidade. Nessas áreas, a teoria da recursão se sobrepõe à teoria da prova e à teoria descritiva efetiva de conjuntos[2].
As questões básicas envolvidas na teoria da recursão são: "O que significa para uma função (N->N) ser computável?" e "Como as funções não-computáveis são classificadas em uma teoria baseada em seus níveis de não-computabilidade?"[2] [2]. As respostas a essas perguntas levaram a uma rica teoria que ainda está sendo estudada atualmente. A teoria da computabilidade também se aproximou da ciência da computação[3].
Estudiosos da recursão em lógica matemática frequentemente estudam a teoria da computabilidade relativa, noções de redutibilidade e estruturas de grau, como as descritas neste artigo[4]. Isso contrasta com a teoria das hierarquias subrecursivas, métodos formais e linguagens formais que são comuns no estudo da teoria da computabilidade na ciência da computação[5]. Existe uma sobreposição considerável no conhecimento e nos métodos entre essas duas comunidades de pesquisa, embora não haja uma grande separação entre elas[5].
Conjuntos Computáveis e Não Computáveis
[editar | editar código-fonte]A teoria da recursão teve origem com o trabalho de Kurt Gödel, Alonzo Church, Alan Turing, Stephen Kleene e Emil Post na década de 1930[1].
Os resultados fundamentais obtidos por esses pesquisadores estabeleceram a computabilidade de Turing como uma formalização correta da ideia informal de cálculo efetivo[6]. Esses resultados levaram Stephen Kleene (1952) a cunhar os termos "Tese de Church" e "Tese de Turing"[7]. Atualmente, essas hipóteses são consideradas uma única, a Tese de Church-Turing, que afirma que qualquer função que é computável por um algoritmo é uma função computável[8]. Apesar de ser inicialmente cético, Gödel argumentou a favor dessa tese por volta de 1946[9].
Citação: Tarski enfatizou nesta lição (e eu pensei justamente) a grande importância do conceito de recursividade geral (ou computabilidade de Turing). Parece-me que esta importância é grande devido ao fato de que, com esse conceito, pela primeira vez foi dada uma noção absoluta para uma noção epistemologicamente interessante, i.e., não dependendo do formalismo escolhido. [9]
Com a definição do cálculo efetivo, surgiram as primeiras provas de que existem problemas na matemática que não podem ser efetivamente decididos[6]. Church (1936a, 1936b) e Turing (1936), inspirados por técnicas utilizadas por Gödel (1931) para provar seus teoremas de incompletude, demonstraram independentemente que o Problema de Entscheidung não é efetivamente decidível[6][10]. Esse resultado mostrou que não existe um procedimento algorítmico que possa decidir corretamente se proposições matemáticas arbitrárias são verdadeiras ou falsas[6].
Muitos problemas da matemática foram mostrados como indecidíveis após esses exemplos iniciais[11]. Em 1947, Markov e Post publicaram artigos independentes mostrando que o problema da palavra para semigrupos não pode ser efetivamente decidido[12]. Ampliando esse resultado, Pyotr Novikov e William Boone mostraram independentemente nos anos 1950 que o problema da palavra para grupos não é efetivamente resolvível: não existe um procedimento eficaz que, dada uma palavra em um grupo finito, decidirá se um elemento representado pela palavra é um elemento identificador do grupo[13][14]. Em 1970, Yuri Matiyasevich provou (usando resultados de Julia Robinson) o Teorema de Matiyasevich, o que implica que o Décimo problema de Hilbert não tem solução eficaz; esse problema questionava se existe um procedimento efetivo para decidir se uma equação diofantina sobre os inteiros tem uma solução no conjunto dos inteiros[15]. A lista de problemas indecidíveis tem exemplos adicionais de problemas sem solução computável[1].
O estudo de construções matemáticas que podem ser realizadas efetivamente é às vezes chamado de matemática recursiva; o livro Handbook of Recursive Mathematics (Ershov et al. 1998) cobre muitos dos resultados conhecidos neste campo[16].
Computabilidade de Turing
[editar | editar código-fonte]A forma principal de computabilidade estudada na teoria da recursão foi introduzida por Turing (1936)[10]. Um conjunto de números naturais é dito ser um conjunto computável (também chamado de decidível, recursivo ou conjunto Turing computável) se existe uma Máquina de Turing que, dado um número n, para com saída 1 se n está no conjunto e para com saída 0 se n não está no conjunto[17]. Uma função f dos números naturais para eles mesmos é uma função recursiva ou (Turing) computável se existe uma máquina de Turing que, com entrada n, para e retorna f(n)[17]. O uso de máquinas de Turing aqui não é estritamente necessário: existem muitos outros modelos de computação que têm o mesmo poder de computação que máquinas de Turing; por exemplo, as funções μ-recursivas obtidas da recursão primitiva e do operador μ[2].
A terminologia para funções recursivas e conjuntos não é completamente padronizada[18]. A definição em termos de funções μ-recursivas, bem como uma definição diferente de funções recursivas de Gödel, levou à tradicional palavra "recursividade" para conjuntos e funções computáveis por máquinas de Turing[18]. A palavra "decidibilidade" nasce da palavra alemã Entscheidungsproblem, que foi usada nos artigos originais de Turing e outros[18]. Atualmente, o termo "função computável" tem uma variedade de definições: de acordo com Cutland (1980), é uma função parcialmente recursiva (que pode ser indefinida para algumas entradas), enquanto de acordo com Soare (1987) é uma função recursiva total (equivalentemente, recursiva geral)[2][1]. Este artigo segue a segunda convenção. Soare (1996) deu comentários adicionais a respeito da terminologia[18].
Nem todo conjunto de números naturais é computável[17]. O Problema da parada, que é um conjunto de (descrições de) máquinas de Turing que param com entrada 0, é um exemplo bem conhecido de conjunto não-computável[17]. A existência de muitos conjuntos não-computáveis segue dos fatos de que existem somente muitas máquinas de Turing contáveis, logo somente muitos conjuntos computáveis contáveis, mas existem muitos conjuntos de números naturais incontáveis[17].
Apesar de o problema da parada não ser computável, é possível simular a execução do programa e produzir uma lista infinita de programas que param[1]. Logo, o problema da parada é um exemplo de um conjunto recursivamente enumerável (também conhecido como computavelmente enumerável ou semidecidível), que é um conjunto que pode ser enumerado por uma máquina de Turing[1]. Equivalentemente, um conjunto é recursivamente enumerável se e somente se ele for a imagem de alguma função computável[1]. Os conjuntos recursivamente enumeráveis, embora não decidíveis em geral, têm sido estudados em detalhes na teoria da recursão[1].
Áreas de Pesquisa
[editar | editar código-fonte]Começando com a teoria dos conjuntos recursivos e funções descritas abaixo, o ramo da teoria da recursão tem crescido de forma a abranger o estudo de vários tópicos relacionados[1]. Essas áreas não são independentes de pesquisa: cada uma delas utiliza ideias e resultados das outras, e muitos teóricos da recursividade possuem familiaridade com a maioria delas[1].
Computabilidade Relativa e os Graus de Turing
[editar | editar código-fonte]A teoria da recursão na lógica matemática tem tradicionalmente ênfase na computabilidade relativa, uma generalização da computabilidade de Turing definida utilizando máquinas de Turing com oráculo, introduzidas por Turing (1939)[19]. Uma máquina de Turing com oráculo é um dispositivo hipotético que, além de realizar as ações de uma máquina de Turing regular, é capaz de fazer perguntas a um oráculo, que é um conjunto particular de números naturais[1]. A máquina oráculo deve apenas fazer perguntas da forma "n está no conjunto oráculo?". Cada questão será imediatamente respondida corretamente, mesmo se o conjunto oráculo não for computável[1]. Assim, uma máquina oráculo com um oráculo não-computável será capaz de computar conjuntos que não são computáveis sem um oráculo[1].
Informalmente, um conjunto de números naturais A é Turing redutível para um conjunto B se existe uma máquina oráculo que diz corretamente se números estão em A quando executados com B como um conjunto oráculo (neste caso, o conjunto A é também dito ser (relativamente) computável de B e recursivo em B)[1]. Se um conjunto A é Turing redutível para um conjunto B e B é Turing redutível a A, então os conjuntos são ditos terem o mesmo grau de Turing (também chamado de grau de indecidibilidade)[1]. O grau de Turing de um conjunto dá uma medida precisa de quão não-computável esse conjunto é[1].
Os exemplos naturais de conjuntos que não são computáveis, incluindo vários conjuntos diferentes que codificam variantes do problema da parada, possuem duas propriedades em comum:
- Eles são recursivamente enumeráveis[1].
- Cada um pode ser transformado em outro através de uma redução de muitos-um[1]. Isto é, dados tais conjuntos A e B, existe uma função total computável f tal que A = {x : f(x) ∈ B}[1]. Esses conjuntos são ditos serem muitos-um equivalentes (ou m-equivalentes)[1].
Reduções muitos-um são "mais fortes" que reduções de Turing: se um conjunto A é muitos-um redutível a um conjunto B, então A é Turing redutível a B, mas o contrário nem sempre é verdadeiro[1]. Embora exemplos naturais de conjuntos não-computáveis sejam todos muitos-um equivalentes, é possível construir recursivamente conjuntos enumeráveis A e B tal que A é Turing redutível a B mas não muitos-um redutível a B[1]. Pode-se mostrar que todo conjunto recursivamente enumerável é muitos-um redutível ao problema da parada, e assim o problema da parada é o conjunto recursivamente enumerável mais complicado com respeito à redutibilidade muitos-um e com respeito à Turing redutibilidade[1].
Post (1944) questionou se todo conjunto recursivamente enumerável é tanto computável quanto Turing equivalente ao problema da parada, ou seja, se não existe conjunto recursivamente enumerável com um grau de Turing intermediário entre os dois[11]. Esse problema se tornou conhecido como o problema de Post[11]. Como resultados intermediários, Post definiu tipos naturais de conjuntos recursivamente enumeráveis como conjuntos simples, supersimples e supersupersimples[11]. Post mostrou que esses conjuntos estão estritamente entre os conjuntos computáveis e o problema da parada com respeito à redutibilidade muitos-um[11]. Post mostrou também que alguns deles são estritamente intermediários sob outras noções de redutibilidade mais fortes que a redutibilidade de Turing[11].
Porém, Post deixou em aberto o principal problema da existência de conjuntos recursivamente enumeráveis do grau intermediário de Turing[11]. Após dez anos, Kleene e Post mostraram em 1954 que existem graus intermediários de Turing entre aqueles dos conjuntos computáveis e o problema da parada, mas eles não conseguiram mostrar que algum desses graus contém um conjunto recursivamente enumerável[1]. Pouco tempo depois, Friedberg e Muchnik resolveram independentemente o problema de Post, estabelecendo a existência de conjuntos recursivamente enumeráveis de grau intermediário[1]. Essa inovação resultou na abertura de uma grande área de estudo dos graus de Turing dos conjuntos recursivamente enumeráveis que passaram a possuir uma estrutura muito complicada e não-trivial[1].
Existem muitos conjuntos incontáveis que não são recursivamente enumeráveis, e a investigação dos graus de Turing de todos esses conjuntos é tão importante na teoria da recursão quanto a investigação dos graus de Turing recursivamente enumeráveis[1]. Muitos graus com propriedades especiais foram construídos: graus livres de superimunidade onde toda função computável relativa àquele grau é majorizada por uma (não-relativizada) função computável; altos graus relativos aos quais se pode computar a função f que domina toda função computável g no sentido de que existe uma constante c dependendo de g tal que g(x) < f(x) para todo x > c; graus aleatórios contendo conjuntos algoritmicamente aleatórios; graus 1-genéricos de conjuntos 1-genéricos; e os graus abaixo do problema da parada dos conjuntos limite-recursivos[1].
O estudo de graus de Turing arbitrários (não necessariamente recursivamente enumeráveis) envolve o estudo do salto de Turing[1]. Dado um conjunto A, o salto de Turing de A é um conjunto de números naturais codificando uma solução para o problema da parada para máquinas de Turing oráculo rodando com um oráculo A[1]. O salto de Turing de qualquer conjunto é sempre de um grau mais alto de Turing que o do conjunto original, e o teorema de Friedberg mostra que qualquer conjunto que computa o problema da parada pode ser obtido como o salto de Turing de outro conjunto[1]. O teorema de Post estabelece um relacionamento próximo entre a operação do salto de Turing e a hierarquia aritmética, que é uma classificação de certos subconjuntos dos números naturais baseados nas suas definibilidades na aritmética[1].
Várias pesquisas recentes nos graus de Turing têm focado na estrutura global do conjunto dos graus de Turing e o conjunto dos graus de Turing contendo conjuntos recursivamente enumeráveis[20]. Um teorema específico de Shore e Slaman (1999) estabelece que a função que mapeia um grau x para um grau do seu salto de Turing é definível na ordem parcial dos graus de Turing[21]. Um estudo recente de Ambos-Spies e Fejer (2006) dá uma visão dessa pesquisa e sua progressão histórica[20].
Outras Redutibilidades
[editar | editar código-fonte]Uma área contínua de pesquisa em teoria da recursão estuda relações de redutibilidade que não são redutibilidades de Turing[1]. Post (1944) introduziu várias redutibilidades fortes, nomeadas assim porque elas implicam na redutibilidade de tabela-verdade[11]. Uma máquina de Turing implementando uma redutibilidade forte vai computar uma função total, independentemente de com qual oráculo ela é apresentada[1]. Redutibilidades fracas são aquelas onde o processo de redução talvez não termine para todos os oráculos; redutibilidade de Turing é um exemplo[1].
As redutibilidades fortes incluem:
- Redutibilidade um-um (1-redutibilidade): A é um-um redutível a B se existe uma função injetiva total computável f tal que cada n está em A se e somente se f(n) está em B[1].
- Redutibilidade muitos-um (m-redutibilidade): é essencialmente a redutibilidade um-um sem a condição de f ser injetiva. A é muitos-um redutível a B se existe uma função computável total tal que cada n está em A se e somente se f(n) está em B[1].
- Redutibilidade tabela-verdade: A é tabela-verdade redutível a B se A é Turing redutível a B através de uma máquina de Turing oráculo que computa uma função total independentemente do oráculo dado[1]. Por causa da compactação do espaço de Cantor, isso é equivalente a dizer que a redução apresenta uma lista única de perguntas (dependendo somente da entrada) para o oráculo simultaneamente, e assim, tendo visto as respostas, é capaz de produzir uma saída sem perguntas adicionais independentemente da resposta do oráculo para as consultas iniciais[1]. Muitas variantes da tabela-verdade redutibilidade têm sido estudadas também[1].
O principal estudo nas redutibilidades fortes tem sido para comparar suas teorias, tanto para a classe de todos os conjuntos recursivamente enumeráveis quanto para a classe de todos os subconjuntos dos números naturais[1]. Além disso, as relações entre as redutibilidades têm sido estudadas[1]. Por exemplo, é sabido que todo grau de Turing é tanto um grau tabela-verdade quanto uma união de infinitos muitos graus tabela-verdade[1].
Redutibilidades mais fracas que a redutibilidade de Turing (isto é, redutibilidades que estão implícitas por Turing redutibilidade) também têm sido estudadas[1]. As mais conhecidas são redutibilidade aritmética e redutibilidade hiperaritmética[1]. Essas redutibilidades estão fortemente conectadas com definibilidade sob o modelo padrão da aritmética[1].
Teorema de Rice e a Hierarquia Aritmética
[editar | editar código-fonte]Rice mostrou que para toda classe C não-trivial (que contém alguns, mas não todos os conjuntos recursivamente enumeráveis) o índice E = {e: o n-ésimo conjunto r.e. We está em C} tem uma propriedade que tanto o problema da parada quanto seu complemento são muitos-um redutíveis a E[1] (veja o teorema de Rice para mais detalhes). Porém, muitos desses conjuntos de índices são ainda mais complicados que o problema da parada[1]. Esses tipos de conjuntos podem ser classificados utilizando a hierarquia aritmética[1]. Por exemplo, o conjunto de índices FIN de uma classe de todos os conjuntos finitos está no nível Σ2, o conjunto de índices REC da classe de todos os conjuntos recursivos está no nível Σ3, o conjunto de índices COFIN de todos os conjuntos cofinitos está também no nível Σ3 e o conjunto de índices COMP da classe de todos os conjuntos Turing-completos em Σ4[1]. Esses níveis de hierarquia são definidos indutivamente, onde Σn+1 contém exatamente todos os conjuntos que são recursivamente enumeráveis relativo a Σn; Σ1 contém todos os conjuntos recursivamente enumeráveis[1]. Os conjuntos de índices dados aqui são ainda mais completos para seus níveis, ou seja, todos os conjuntos nesses níveis podem ser muitos-um reduzidos para o conjunto de índices dados[1].
Matemática Reversa
[editar | editar código-fonte]O programa de matemática reversa pergunta quais axiomas de existência dos conjuntos são necessários para provar teoremas particulares da matemática em subsistemas de aritmética de segunda ordem[22]. Esse estudo se iniciou por Harvey Friedman e foi estudado em detalhes por Stephen G. Simpson e outros; Simpson (1999) oferece uma discussão detalhada do programa[22]. Os axiomas de existência de conjuntos em questão correspondem informalmente a axiomas que afirmam que a força do conjunto dos números naturais está relacionada com variadas noções de redutibilidade[22]. O axioma mais fraco estudado em matemática reversa é a compreensão recursiva, que estabelece que a força do conjunto dos naturais está um pouco abaixo da redutibilidade de Turing[22].
Numerações
[editar | editar código-fonte]Uma numeração é uma enumeração de funções; possui dois parâmetros, e e x, e fornece como saída o valor da e-ésima função na numeração da entrada x[1]. Numerações podem ser recursivas parciais, embora alguns de seus membros sejam recursivos totais, ou seja, funções computáveis[1]. Numerações aceitáveis ou de Gödel são aquelas onde todas as outras podem ser transformadas[1]. Uma numeração de Friedberg (nomeada após sua descoberta) é uma numeração um-um de todas as funções recursivas parciais; é necessariamente uma numeração não aceitável[1]. Pesquisas posteriores lidaram também com numerações de outras classes, como classes de conjuntos recursivamente enumeráveis[1]. Goncharov descobriu, por exemplo, uma classe de conjuntos recursivamente enumeráveis na qual as numerações se dividiram em exatamente duas classes com respeito a isomorfismos recursivos[1].
O Método da Prioridade
[editar | editar código-fonte]O problema de Post foi solucionado com um método chamado método da prioridade; uma prova usando esse método é chamada de argumento de prioridade[1]. Esse método é primeiramente usado para construir recursivamente conjuntos enumeráveis com propriedades particulares[1]. Para utilizar esse método, as propriedades desejadas do conjunto a ser construído são divididas em uma lista infinita de itens, chamados de requisitos, tal que satisfazendo todos os requisitos, o conjunto construído terá as propriedades desejadas[1]. A cada requisito é atribuído um número natural que representa a prioridade desse requisito; então 0 é atribuído ao item mais importante, 1 ao segundo mais importante, e assim por diante[1]. O conjunto é então construído em estágios, cada estágio com o intuito de satisfazer um ou mais requisitos através de adição de números ao conjunto ou eliminação de números do conjunto para que o conjunto final satisfaça o requisito[1]. É provável que o fato de satisfazer um requerimento cause a não-satisfação de outro; a ordem de prioridade é usada para decidir o que fazer em um evento[1].
Argumentos de prioridade têm sido empregados para resolução de muitos problemas na teoria da recursão, e têm sido classificados em uma hierarquia baseada em suas complexidades (Soare 1987)[1]. Pelo fato de argumentos de prioridade complexos poderem ser técnicos e difíceis de acompanhar, tem-se tradicionalmente considerado desejável a prova de resultados sem argumentos de prioridade, ou para ver se os resultados provados com argumentos de prioridade podem também ser provados sem eles[1]. Por exemplo, Kummer publicou um artigo em uma prova para existência das numerações de Friedberg sem usar o método de prioridade[1].
A Estrutura dos Conjuntos Recursivamente Enumeráveis
[editar | editar código-fonte]Quando Post definiu a noção de um conjunto simples como um conjunto recursivamente enumerável (r.e.), ele começou a estudar a estrutura dos conjuntos recursivamente enumeráveis sob inclusão[11]. Essa estrutura se tornou muito conhecida[1]. Conjuntos recursivos podem ser definidos nessa estrutura pelo resultado básico de que um conjunto é recursivo se e somente se o conjunto e seu complemento são ambos recursivamente enumeráveis[1]. Infinitos conjuntos r.e. possuem sempre subconjuntos recursivos; por outro lado, conjuntos simples existem, mas não têm um superconjunto recursivo co-infinito[1].
Post (1944) introduziu conjuntos hipersimples e hiper-hipersimples; posteriormente, conjuntos r.e. máximos foram construídos de tal forma que todo superconjunto r.e. é tanto uma variante finita do conjunto máximo dado quanto cofinito[11]. A motivação original de Post no estudo dessa estrutura era encontrar uma noção estrutural tal que todo conjunto que satisfizesse essa propriedade não pertencesse ao grau de Turing dos conjuntos recursivos nem ao grau de Turing do problema da parada[11]. Post não encontrou essa propriedade e, em vez disso, a solução para o seu problema aplicou métodos de prioridade; Harrington e Soare (1991) eventualmente encontraram uma propriedade[1].
Problemas de Automorfismo
[editar | editar código-fonte]Outra questão importante é a existência de automorfismos em estruturas teórico-recursivas[1]. Uma dessas estruturas é a dos conjuntos recursivamente enumeráveis sob inclusão do módulo de diferenças finitas; nessa estrutura, A está abaixo de B se e somente se o conjunto de diferenças B - A é finito[1]. Conjuntos máximos (de acordo com a definição do parágrafo anterior) têm a propriedade de que eles não podem ser automorfismos para conjuntos não-máximos, ou seja, se existe um automorfismo dos conjuntos recursivamente enumeráveis sob a estrutura mencionada, então todo conjunto máximo é mapeado para outro conjunto máximo[1]. Soare (1974) mostrou que o inverso também se mantém, ou seja, todo par de conjuntos máximos é automorfismo[1]. Assim, os conjuntos máximos formam uma órbita, ou seja, todo automorfismo preserva maximalidade e quaisquer dois conjuntos máximos são transformados uns nos outros através de um automorfismo[1]. Harrington deu outro exemplo de uma propriedade automorfica: os conjuntos criativos, que são muitos-um equivalentes ao problema da parada[1].
Além da estrutura dos conjuntos recursivamente enumeráveis, automorfismos também são estudados para a estrutura dos graus de Turing de todos os conjuntos, bem como para a estrutura dos graus de Turing dos conjuntos r.e.[1]. Em ambos os casos, Cooper alega ter construído automorfismos não-triviais que mapeiam alguns graus em outros graus; contudo, essa construção não tem sido verificada e alguns estudiosos acreditam que a construção contém erros e que a questão da existência de um automorfismo não-trivial nos graus de Turing ainda é uma das principais questões não-resolvidas nessa área (Slaman e Woodin 1986, Ambos-Spies e Fejer 2006)[20].
A Complexidade de Kolmogorov
[editar | editar código-fonte]O ramo da complexidade de Kolmogorov e aleatoriedade algorítmica foi desenvolvido durante as décadas de 1960 e 1970 por Chaitin, Kolmogorov, Levin, Martin-Löf e Solomonoff (os nomes são dados aqui em ordem alfabética; muitas das pesquisas foram independentes, e a unidade do conceito de aleatoriedade não foi compreendida na época)[1]. A ideia principal é considerar uma máquina de Turing universal U e medir a complexidade de um número (ou string) x como o tamanho da menor entrada p tal que U(p) gera x como saída[1]. Esta abordagem revolucionou os métodos conhecidos até então para determinar quando uma sequência infinita (equivalentemente, função característica do subconjunto dos números naturais) é aleatória ou não, invocando uma noção de aleatoriedade para objetos finitos[1]. A complexidade de Kolmogorov tornou-se não só tema de estudo independente, mas também foi aplicada a outros temas como ferramenta de obtenção de provas[1]. Existem ainda muitos problemas em aberto nessa área[1]. Por essa razão, uma conferência de pesquisa recente nessa área foi realizada em janeiro de 2007[23] e uma lista de problemas abertos é mantida por Joseph Miller e Andre Nies[24].
Cálculo da Frequência
[editar | editar código-fonte]Esse ramo da teoria da recursão analisou a seguinte questão: para fixos m e n com 0 < m < n, para quais funções A é possível computar para quaisquer entradas n diferentes x1, x2, ..., xn uma tupla de n números y1, y2, ..., yn tal que ao menos m das equações A(xk) = yk sejam verdadeiras[1]. Tais conjuntos são conhecidos como conjuntos (m,n)-recursivos[1]. O primeiro principal resultado nesse ramo da teoria da recursão é o resultado de Trakhtenbrot, onde um conjunto é computável se ele for (m,n)-recursivo para algum m,n com 2m > n[1]. Por outro lado, os conjuntos semirrecusivos de Jockusch (os quais já eram conhecidos informalmente antes de Jockusch introduzi-los em 1968) são exemplos de um conjunto o qual é (m,n)-recursivo se e somente se 2m < n + 1[1]. Existem muitos desses conjuntos e também alguns recursivamente enumeráveis, mas conjuntos não-computáveis desse tipo[1]. Posteriormente, Degtev estabeleceu uma hierarquia de conjuntos recursivamente enumeráveis que são (1, n + 1)-recursivos, mas não (1, n)-recursivos[1]. Após um longo tempo de pesquisas realizadas por cientistas russos, esse tema se popularizou no ocidente com a tese de Beigel em consultas limitadas, as quais relacionaram cálculo de frequência com as redutibilidades limitadas mencionadas anteriormente e outras noções relacionadas[1]. Um dos principais resultados foi a Teoria de Cardinalidade de Kummer, segundo a qual um conjunto A é computável se e somente se existe um n tal que algum algoritmo enumera para cada tupla de n números diferentes até n possíveis escolhas da cardinalidade desse conjunto de n números intersectado com A; essas escolhas devem conter a cardinalidade verdadeira, mas descartar ao menos uma falsa[1].
Inferência Indutiva
[editar | editar código-fonte]Esse é o ramo teórico-recursivo da teoria da aprendizagem[1]. É baseado no modelo de Gold de aprendizado do limite de 1967 e tem sido desenvolvidos desde então muitos e muitos modelos de aprendizado[1]. O cenário geral é o seguinte: Dada uma classe S de funções computáveis, existe um aprendiz (isto é, funcional recursivo) que dá como saída para qualquer entrada da forma (f(0), f(1), ..., f(n)) uma hipótese[1]. Um aprendiz M aprende a função f se quase todas as hipóteses têm o mesmo índice e de f com respeito ao acertado anteriormente em uma numeração aceitável de todas as funções computáveis; M aprende S se M aprende todo f em S[1]. Resultados básicos são todos os conjuntos recursivamente enumeráveis de dados positivos, que são um tópico estudado do artigo pioneiro de Gold em 1967 em diante[1].
Generalizações da Computabilidade de Turing
[editar | editar código-fonte]A teoria da recursão inclui o estudo de noções generalizadas desse tópico, como redutibilidade aritmética, redutibilidade hiperaritmética e a teoria α-recursão, como descrito por Sacks (1990)[25]. Essas noções generalizadas incluem redutibilidades que não podem ser executadas por máquinas de Turing, mas não obstante são generalizações naturais da redutibilidade de Turing[25]. Esses estudos incluem aproximações para investigar a hierarquia analítica, que difere da hierarquia aritmética através da permissão da quantificação sob conjuntos de números naturais em adição à quantificação sob números individuais[25]. Essas áreas estão relacionadas às teorias de formação de palavras; por exemplo, o conjunto de todos os índices de árvores (não-binárias) recursivas sem ramos infinitos é completo para o nível da hierarquia analítica[25]. Tanto a redutibilidade quanto a redutibilidade hiperaritmética são importantes no ramo da teoria descritiva dos conjuntos[25]. Uma noção ainda mais geral de graus de construtibilidade é estudada na teoria dos conjuntos[25].
Teoria da Computabilidade Contínua
[editar | editar código-fonte]A teoria da computabilidade para computação digital é bem desenvolvida[26]. A teoria da computabilidade é menos bem desenvolvida para computação analógica que ocorre em computadores analógicos, processamento de sinal analógico, eletrônica analógica, redes neurais e teoria de controle de tempo contínuo, modelados por diferentes equações e sistemas dinâmicos contínuos[26][27].
Relacionamentos entre Definibilidade, Prova e Computabilidade
[editar | editar código-fonte]Existem fortes ligações entre os graus de Turing de um conjunto de números naturais e a dificuldade (em termos da hierarquia aritmética) em definir o conjunto usando fórmula de primeira ordem[1]. Um relacionamento é feito precisamente pelo teorema de Post[11]. Um relacionamento mais fraco foi demonstrado por Kurt Gödel nas provas do seu teorema da completude e teoremas de incompletude[9]. As provas de Gödel mostram que o conjunto de consequências lógicas de uma teoria efetiva de primeira ordem é um conjunto recursivamente enumerável, e que se a teoria é forte o suficiente, esse conjunto será não computável[9]. Similarmente, o teorema da indefinibilidade de Tarski pode ser interpretado tanto em termos de definibilidade quanto em termos de computabilidade[1].
A teoria da recursão também está relacionada com a aritmética de segunda ordem, uma teoria formal dos números naturais e conjuntos de números naturais[22]. O fato de que certos conjuntos são computáveis ou relativamente computáveis frequentemente implica que esses conjuntos podem ser definidos em fracos subsistemas de aritmética de segunda ordem[22]. O programa de matemática reversa usa esses subsistemas para medir a não-computabilidade herdada em teoremas matemáticos conhecidos[22]. Simpson (1999) discute vários aspectos de aritmética de segunda ordem e matemática reversa[22].
O ramo da teoria da prova inclui o estudo da aritmética de segunda ordem e da aritmética de Peano, bem como teorias formais dos números naturais mais fracas que a aritmética de Peano[28]. Um método de classificar a força desses sistemas fracos é caracterizando as funções computáveis que o sistema pode provar serem totais (veja Fairtlough e Wainer (1998))[28]. Por exemplo, a recursividade primitiva, enquanto a aritmética de Peano prova que funções como a de Ackermann, as quais não são recursivas primitivas, são totais[28]. Nem toda função total computável é comprovadamente total na aritmética de Peano, contudo; um exemplo de uma função é obtido pelo teorema de Goodstein[28].
Nome do tema
[editar | editar código-fonte]O campo de lógica matemática lidando com computabilidade e suas generalizações tem sido chamado "teoria da recursão" desde os antepassados. Robert I. Soare, um proeminente pesquisador no ramo, tem proposto (Soare 1996) que o ramo deve ser chamado na verdade "teoria da computabilidade" . Ele argumenta que a terminologia de Turing usando a palavra "computável" é mais natural e mais abrangente entendida do que a terminologia usando a palavra "recursiva" introduzida por Kleene. Muitos pesquisadores contemporâneos também usam a terminologia como função parcial computável e conjunto computável enumerável (c.e.) ao invés de função parcial recursiva e conjunto recursivamente enumerável (r.e.). Nem todos os pesquisadores têm se convencido, contudo, como explicado por Fortnow e Simpson. Alguns comentaristas argumentam que tanto os nomes teoria da recursão e teoria da computabilidade falharam em transmitir que o fato que a maioria dos objetos estudados em teoria da recursão não são computáveis.
Rogers (1967) tem sugerido que uma propriedade chave da teoria da recursão é que seus resultados e estruturas devam ser invariantes sob bijeções computáveis nos números naturais (essa sugestão desenha nas ideias do programa de Erlangen em geometria). A ideia é que uma bijeção computável apenas renomeia números em um conjunto, ao invés de indicar alguma estrutura no conjunto, como uma rotação do plano Euclidiano não muda nenhum aspecto geométrico das linhas desenhadas nele. Uma vez que quaisquer dois conjuntos infinitos computáveis são interligados por uma bijeção computável, essa proposta identifica todos os conjuntos computáveis infinitos (os conjuntos finitos computáveis são vistos como triviais). De acordo com Rogers, os conjuntos de interesse em teoria da recursão são conjuntos não computáveis, particionados em classes de equivalência por bijeções computáveis dos números naturais.
Referências
[editar | editar código-fonte]- ↑ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl bm bn bo bp bq br bs bt bu bv bw bx by bz ca cb cc cd ce cf cg ch ci cj ck cl cm cn co cp cq cr cs ct Soare, Robert I. (1987). Recursively Enumerable Sets and Degrees. Springer-Verlag. p. 1. ISBN 0-387-15299-7.
- ↑ a b c d Cutland, Nigel J. (1980). Computability: An Introduction to Recursive Function Theory. Cambridge University Press. p. 1. ISBN 0-521-29465-7.
- ↑ Slaman, Theodore A. (1999). "Theories of Recursion". In The Handbook of Computability Theory. Elsevier. p. 231-255.
- ↑ Davis, Martin (1965). The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. Dover Publications. p. 3.
- ↑ a b Rogers, Hartley (1987). Theory of Recursive Functions and Effective Computability. MIT Press. p. 1. ISBN 0-262-68052-1.
- ↑ a b c d Church, Alonzo (1936). "An Unsolvable Problem of Elementary Number Theory". American Journal of Mathematics. 58 (2): 345–363.
- ↑ Kleene, Stephen Cole (1952). Introduction to Metamathematics. North-Holland.
- ↑ Boolos, George S.; Burgess, John P.; Jeffrey, Richard C. (2002). Computability and Logic. 4th ed. Cambridge University Press. p. 25.
- ↑ a b c d Gödel, Kurt (1946). "Remarks before the Princeton Bicentennial Conference on Problems in Mathematics". In Davis, Martin (1965). The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. Dover Publications. p. 84.
- ↑ a b Turing, Alan M. (1936). "On Computable Numbers, with an Application to the Entscheidungsproblem". Proceedings of the London Mathematical Society. 2 (42): 230–265.
- ↑ a b c d e f g h i j k l Post, Emil L. (1944). "Recursively Enumerable Sets of Positive Integers and Their Decision Problems". Bulletin of the American Mathematical Society. 50 (5): 284–316.
- ↑ Markov, Andrey A. (1947). "On Unsolvable Problems Concerning Matrices". Doklady Akademii Nauk SSSR. 57: 35–38. (em russo)
- ↑ Novikov, Pyotr S. (1955). "On the Algorithmic Unsolvability of the Problem of Identity in Group Theory". Doklady Akademii Nauk SSSR. 103: 981–983. (em russo)
- ↑ Boone, William W. (1959). "The Word Problem". Annals of Mathematics. 70 (2): 207–265.
- ↑ Matiyasevich, Yuri (1970). "Diophantine Representation of Recursively Enumerable Predicates". Doklady Akademii Nauk SSSR. 191: 279–282. (em russo)
- ↑ Ershov, Yuri L.; Goncharov, Sergei S.; Nerode, Anil; Remmel, Jeffrey B. (Eds.). (1998). Handbook of Recursive Mathematics. Volumes 1 and 2. North-Holland.
- ↑ a b c d e Odifreddi, Piergiorgio (1989). Classical Recursion Theory. Volume 1. North-Holland. p. 5.
- ↑ a b c d Soare, Robert I. (1996). "Computability and Recursion". Bulletin of Symbolic Logic. 2 (3): 283–305.
- ↑ Turing, Alan M. (1939). "Systems of Logic Based on Ordinals". Proceedings of the London Mathematical Society. 2 (45): 161–228.
- ↑ a b c Ambos-Spies, Klaus; Fejer, Peter (2006). "Degrees of Unsolvability". In Gabbay, Dov M.; Woods, John (Eds.). Handbook of the History of Logic. Vol. 5: Logic and the Foundations of Mathematics. Elsevier. p. 303–372.
- ↑ Shore, Richard A.; Slaman, Theodore A. (1999). "Defining the Turing Jump". Mathematica Scandinavica. 84 (2): 185–198.
- ↑ a b c d e f g h Simpson, Stephen G. (1999). Subsystems of Second Order Arithmetic. Springer-Verlag. ISBN 3-540-64882-8.
- ↑ Miller, Joseph (2007). "Kolmogorov Complexity and Applications Conference".
- ↑ Miller, Joseph; Nies, Andre. "Open Problems in Algorithmic Randomness".
- ↑ a b c d e f Sacks, Gerald E. (1990). Higher Recursion Theory. Springer-Verlag. ISBN 0-387-96153-9.
- ↑ a b Siegelmann, Hava; Sontag, Eduardo D. (1995). "On the computational power of neural nets". Journal of Computer and System Sciences. 50 (1): 132–150.
- ↑ Moore, Cristopher (1996). "Undecidability and Unpredictability in Analog Computation". Physical Review Letters. 76 (21): 3915–3918.
- ↑ a b c d Fairtlough, Matthew; Wainer, Stanley S. (1998). "Remarks on the Complexity of Proofs". In Ershov, Yuri L.; Goncharov, Sergei S.; Nerode, Anil; Remmel, Jeffrey B. (Eds.). Handbook of Recursive Mathematics. Volume 1. North-Holland. p. 111-140.
Organizações profissionais
[editar | editar código-fonte]A principal organização profissional para teoria da recursão é a Association for Symbolic Logic, a qual mantém muitas conferências todo ano. A CiE(Association Computability in Europe) também organiza uma série de conferências anuais. CiE 2012 será a Turing Centenary Conference, mantida em Cambridge como parte do Alan Turing Year.