Teoría da computabilidade

A teoría da computabilidade é a parte da computación que estuda os problemas de decisión que poden ser resoltos cun algoritmo ou equivalentemente coa chamada máquina de Turing. A teoría da computabilidade interésase por catro preguntas: Que problemas pode resolver unha máquina de Turing?
Que outros formalismos equivalen ás máquinas de Turing?
Que problemas requiren máquinas máis poderosas?
Que problemas requiren máquinas menos poderosas?
A teoría da complexidade computacional clasifica as funcións computables segundo o uso que fan de diversos recursos en diversos tipos de máquina. Antecedentes
A orixe dos modelos abstractos de computación encádrase na década de 1930, antes de que existisen os computadores modernos, no traballo dos lóxicos Alonzo Church, Kurt Gödel, Stephen Kleene, Emil Leon Post e Alan Turing. Estes traballos iniciais tiveron unha fonda influencia, tanto no desenvolvemento teórico como en abundantes aspectos da práctica da computación; prevendo incluso a existencia de computadores de propósito xeral, a posibilidade de interpretar programas, a dualidade entre software e hardware, e a representación de linguaxes por estruturas formais baseadas en regras de produción.
O punto inicial destes primeiros traballos foron as cuestións fundamentais que David Hilbert formulou en 1900, durante o transcurso dun congreso internacional.
O que Hilbert pretendía era crear un sistema matemático formal completo e consistente no que todas as aseveracións fosen expostas con precisión. A súa intención era atopar un algoritmo que determinase a verdade ou a falsidade de calquera proposición no sistema formal. O problema en cuestión denominouse Entscheidungsproblem. No caso de que Hilbert cumprise o seu obxectivo calquera problema ben definido resolveríase simplemente ao executar o devandito algoritmo.
Porén, foron outros os que mediante unha serie de investigacións mostraron que isto non era posible. En contra desta idea Gödel sacou á luz o seu coñecido Primeiro Teorema de Incompletitude, que vén expresar que todo sistema de primeira orde consistente que conteña os teoremas da aritmética e cuxo conxunto de axiomas sexa recursivo non é completo. Gödel construíu unha fórmula que é satisfactoria pero que non pode ser probada no sistema. Como consecuencia, non é posible atopar o sistema formal desexado por Hilbert no marco da lóxica de primeira orde, a non ser que se tome un conxunto non recursivo de axiomas.
Unha versión posterior, máis xeral, do teorema de incompletitude de Gödel, indica que ningún sistema dedutivo que conteña os teoremas da aritmética, e cos axiomas recursivamente enumerables pode ser consistente e completo á vez. Isto fai pensar, a nivel intuitivo, que non vai ser posible definir un sistema formal. Problemas que pode resolver unha máquina de Turing
Non todos os problemas poden ser resoltos. Un problema indecidible é un que non pode ser resolto cun algoritmo aínda se se dispón de espazo e tempo ilimitado. Actualmente coñécense moitos problemas indecidibles, por exemplo: O Entscheidungsproblem, que se define como: Dada unha frase do cálculo de predicados de primeira orde, decidir se é un teorema. Church e Turing demostraron independentemente que este problema é indecidible (tese de Church-Turing).
O problema da parada, que se define como: Dado un programa e a súa entrada, decidir se ese programa terminará para esa entrada ou se seguirá indefinidamente. Turing demostrou que se trata dun problema indecidible.
Un número computable é un número real que pode ser aproximado por un algoritmo cun nivel de exactitude arbitrario. Turing demostrou que case todos os números non son computables. Por exemplo, a constante de Chaitin non é computable aínda que si que está ben definida. Formalismos que equivalen ás máquinas de Turing
As linguaxes formais que son aceptados por unha máquina de Turing son exactamente aqueles que poden ser xerados por unha gramática formal. O cálculo Lambda é unha forma de definir funcións. As funcións que poden ser computadas co cálculo Lambda son exactamente aquelas que poden ser computadas cunha máquina de Turing. Este tres formalismos, as máquinas de Turing, as linguaxes formais e o cálculo Lambda son formalismos moi desemellantes e foron desenvolvidos por diferentes persoas. Con todo, todos eles son equivalentes e teñen o mesmo poder de expresión. Xeralmente tómase esta notable coincidencia como evidencia de que a tese de Church-Turing é certa, que a afirmación de que a noción intuitiva de algoritmo ou procedemento efectivo de cómputo corresponde á noción de cómputo nunha máquina de Turing.
Os computadores electrónicos, baseados na arquitectura de von Neumann así como as máquinas cuánticas terían exactamente o mesmo poder de expresión que o dunha máquina de Turing se dispuxesen de recursos ilimitados de tempo e espazo. Como consecuencia, as linguaxes de programación teñen como máximo o mesmo poder de expresión que o dos programas para unha máquina de Turing e na práctica non todos o alcanzan. As linguaxes con poder de expresión equivalente ao dunha máquina de Turing denomínanse Turing completos.
Entre os formalismos equivalentes a unha máquina de Turing están: As máquinas de Turing con varias cintas, con cintas bidimensionais, cun número limitado de estados e símbolos para a cinta ou con só dous estados; as máquinas de Turing non determinísticas e as probabilísticas.
Os autómatas finitos con dúas pilas ou con dous contadores.
As gramáticas formais.
A máquina de Post.
O cálculo Lambda.
As funcións recursivas parciais.
Case todas as linguaxes de programación modernas se dispuxesen de memoria ilimitada.
Os autómatas celulares.
O xogo da vida de John Conway.
O Computador cuántico. Problemas que requiren máquinas máis poderosas
Considérase que algunhas máquinas teñen maior poder que as máquinas de Turing. Por exemplo, unha máquina oráculo que utiliza unha caixa negra que pode calcular unha función particular que non é calculable cunha máquina de Turing. A forza de cómputo dunha máquina oráculo vén descrita polo seu grao de Turing. A teoría de cómputos reais estuda máquinas con precisión absoluta nos números reais. Dentro desta teoría, é posible demostrar afirmacións interesantes, tales como «o complemento dun conxunto de Mandelbrot é só parcialmente decidible».