stringtranslate.com

teoría de la computación

Una representación artística de una máquina de Turing . Las máquinas de Turing se utilizan con frecuencia como modelos teóricos para la informática.

En informática teórica y matemáticas , la teoría de la computación es la rama que se ocupa de qué problemas se pueden resolver en un modelo de computación, utilizando un algoritmo , con qué eficiencia se pueden resolver o en qué grado (por ejemplo, soluciones aproximadas versus soluciones precisas). ). El campo se divide en tres ramas principales: teoría de autómatas y lenguajes formales , teoría de la computabilidad y teoría de la complejidad computacional , que están unidas por la pregunta: "¿Cuáles son las capacidades y limitaciones fundamentales de las computadoras?". [1]

Para realizar un estudio riguroso de la computación, los informáticos trabajan con una abstracción matemática de las computadoras llamada modelo de computación . Hay varios modelos en uso, pero el más comúnmente examinado es la máquina de Turing . [2] Los científicos informáticos estudian la máquina de Turing porque es simple de formular, puede analizarse y usarse para probar resultados, y porque representa lo que muchos consideran el modelo de computación "razonable" más poderoso posible (ver tesis de Church-Turing ). [3] Podría parecer que la capacidad de memoria potencialmente infinita es un atributo irrealizable, pero cualquier problema decidible [4] resuelto por una máquina de Turing siempre requerirá sólo una cantidad finita de memoria. Entonces, en principio, cualquier problema que pueda resolverse (decidirse) mediante una máquina de Turing puede resolverse mediante una computadora que tenga una cantidad finita de memoria.

Historia

La teoría de la computación puede considerarse la creación de modelos de todo tipo en el campo de la informática. Por tanto, se utilizan las matemáticas y la lógica . En el siglo pasado, se convirtió en una disciplina académica independiente y se separó de las matemáticas. [ cita necesaria ]

Algunos pioneros de la teoría de la computación fueron Ramon Llull , Alonzo Church , Kurt Gödel , Alan Turing , Stephen Kleene , Rózsa Péter , John von Neumann y Claude Shannon .

Sucursales

Teoría de los autómatas

La teoría de los autómatas es el estudio de las máquinas abstractas (o más apropiadamente, máquinas o sistemas "matemáticos" abstractos) y los problemas computacionales que pueden resolverse utilizando estas máquinas. Estas máquinas abstractas se llaman autómatas. Autómata proviene de la palabra griega (Αυτόματα) que significa que algo está haciendo algo por sí mismo. La teoría de los autómatas también está estrechamente relacionada con la teoría del lenguaje formal , [5] ya que los autómatas a menudo se clasifican según la clase de lenguajes formales que son capaces de reconocer. Un autómata puede ser una representación finita de un lenguaje formal que puede ser un conjunto infinito. Los autómatas se utilizan como modelos teóricos para máquinas informáticas y para pruebas sobre computabilidad.

Teoría del lenguaje formal

La jerarquía de Chomsky
Conjunto de inclusiones descritas por la jerarquía de Chomsky

La teoría del lenguaje es una rama de las matemáticas que se ocupa de describir los lenguajes como un conjunto de operaciones sobre un alfabeto . Está estrechamente relacionado con la teoría de los autómatas, ya que los autómatas se utilizan para generar y reconocer lenguajes formales. Hay varias clases de lenguajes formales, cada una de las cuales permite una especificación del lenguaje más compleja que la anterior, es decir, la jerarquía de Chomsky , [6] y cada una corresponde a una clase de autómatas que la reconoce. Debido a que los autómatas se utilizan como modelos de cálculo, los lenguajes formales son el modo preferido de especificación para cualquier problema que deba calcularse.

Teoría de la computabilidad

La teoría de la computabilidad trata principalmente de la cuestión de hasta qué punto un problema se puede resolver en una computadora. La afirmación de que el problema de la detención no puede resolverse con una máquina de Turing [7] es uno de los resultados más importantes de la teoría de la computabilidad, ya que es un ejemplo de un problema concreto que es fácil de formular e imposible de resolver utilizando una máquina de Turing. . Gran parte de la teoría de la computabilidad se basa en el resultado del problema de detención.

Otro paso importante en la teoría de la computabilidad fue el teorema de Rice , que establece que para todas las propiedades no triviales de funciones parciales, es indecidible si una máquina de Turing calcula una función parcial con esa propiedad. [8]

La teoría de la computabilidad está estrechamente relacionada con la rama de la lógica matemática llamada teoría de la recursividad , que elimina la restricción de estudiar únicamente modelos de computación que sean reducibles al modelo de Turing. [9] Muchos matemáticos y teóricos computacionales que estudian la teoría de la recursión se referirán a ella como teoría de la computabilidad.

Teoría de la complejidad computacional

Una representación de la relación entre clases de complejidad.

La teoría de la complejidad considera no sólo si un problema puede resolverse en una computadora, sino también con qué eficiencia se puede resolver el problema. Se consideran dos aspectos principales: la complejidad del tiempo y la complejidad del espacio, que son, respectivamente, cuántos pasos se necesitan para realizar un cálculo y cuánta memoria se requiere para realizar ese cálculo.

Para analizar cuánto tiempo y espacio requiere un algoritmo determinado , los informáticos expresan el tiempo o espacio necesario para resolver el problema en función del tamaño del problema de entrada. Por ejemplo, encontrar un número particular en una larga lista de números se vuelve más difícil a medida que la lista de números crece. Si decimos que hay n números en la lista, entonces, si la lista no está ordenada o indexada de ninguna manera, es posible que tengamos que mirar cada número para encontrar el número que estamos buscando. Así decimos que para resolver este problema, la computadora necesita realizar una serie de pasos que crecen linealmente en el tamaño del problema.

Para simplificar este problema, los informáticos han adoptado la notación Big O , que permite comparar funciones de una manera que garantiza que no sea necesario considerar aspectos particulares de la construcción de una máquina, sino solo el comportamiento asintótico a medida que los problemas se vuelven grandes. Entonces, en nuestro ejemplo anterior, podríamos decir que el problema requiere pasos para resolverlo.

Quizás el problema abierto más importante en toda la informática sea la cuestión de si una cierta clase amplia de problemas denominados NP pueden resolverse eficientemente. Esto se analiza con más detalle en las clases de Complejidad P y NP , y el problema P versus NP es uno de los siete Problemas del Premio del Milenio declarados por el Clay Mathematics Institute en 2000. La descripción oficial del problema fue dada por el ganador del Premio Turing Stephen Cook .

Modelos de computacion

Aparte de una máquina de Turing , se utilizan otros modelos de cálculo equivalentes (ver: tesis de Church-Turing ).

cálculo lambda
Un cálculo consta de una expresión lambda inicial (o dos si desea separar la función y su entrada) más una secuencia finita de términos lambda, cada uno deducido del término anterior mediante una aplicación de reducción Beta .
Lógica combinatoria
es un concepto que tiene muchas similitudes con el cálculo, pero también existen diferencias importantes (por ejemplo, el combinador de punto fijo Y tiene forma normal en lógica combinatoria pero no en cálculo). La lógica combinatoria se desarrolló con grandes ambiciones: comprender la naturaleza de las paradojas, hacer que los fundamentos de las matemáticas sean más económicos (conceptualmente), eliminar la noción de variables (aclarando así su papel en las matemáticas).
funciones μ-recursivas
un cálculo consta de una función mu-recursiva, es decir , su secuencia definitoria, cualquier valor de entrada y una secuencia de funciones recursivas que aparecen en la secuencia definitoria con entradas y salidas. Por lo tanto, si en la secuencia definitoria de una función recursiva aparecen las funciones y , entonces podrían aparecer términos de la forma 'g(5)=7' o 'h(3,2)=10'. Cada entrada en esta secuencia debe ser una aplicación de una función básica o seguir las entradas anteriores usando composición , recursividad primitiva o recursividad μ . Por ejemplo, si , para que aparezca 'f(5)=3', términos como 'g(5)=6' y 'h(5,6)=3' deben aparecer arriba. El cálculo termina sólo si el término final da el valor de la función recursiva aplicada a las entradas.
algoritmo de markov
un sistema de reescritura de cadenas que utiliza reglas similares a las gramaticales para operar con cadenas de símbolos.
Registrar maquina
es una idealización teóricamente interesante de una computadora. Hay varias variantes. En la mayoría de ellos, cada registro puede contener un número natural (de tamaño ilimitado) y las instrucciones son simples (y pocas), por ejemplo, sólo existen decremento (combinado con salto condicional) e incremento (y parada). La falta de un almacén externo infinito (o que crece dinámicamente) (que se ve en las máquinas de Turing) puede entenderse reemplazando su papel con técnicas de numeración de Gödel : el hecho de que cada registro contenga un número natural permite la posibilidad de representar una cosa complicada (por ejemplo, un secuencia, o una matriz, etc.) por un número natural apropiadamente enorme; la falta de ambigüedad tanto de la representación como de la interpretación se puede establecer mediante los fundamentos teóricos numéricos de estas técnicas.

Además de los modelos computacionales generales, algunos modelos computacionales más simples son útiles para aplicaciones especiales y restringidas. Las expresiones regulares , por ejemplo, especifican patrones de cadenas en muchos contextos, desde software de productividad de oficina hasta lenguajes de programación . Otro formalismo matemáticamente equivalente a las expresiones regulares, los autómatas finitos se utilizan en el diseño de circuitos y en algunos tipos de resolución de problemas. Las gramáticas libres de contexto especifican la sintaxis del lenguaje de programación. Los autómatas pushdown no deterministas son otro formalismo equivalente a las gramáticas libres de contexto. Las funciones recursivas primitivas son una subclase definida de las funciones recursivas.

Diferentes modelos de computación tienen la capacidad de realizar diferentes tareas. Una forma de medir el poder de un modelo computacional es estudiar la clase de lenguajes formales que el modelo puede generar; de tal manera se obtiene la jerarquía de lenguas de Chomsky .

Referencias

  1. ^ Michael Sipser (2013). Introducción a la Teoría de la Computación 3º . Aprendizaje Cengage. ISBN 978-1-133-18779-0. Áreas centrales de la teoría de la computación: autómatas, computabilidad y complejidad. (Página 1)
  2. ^ Hodges, Andrés (2012). Alan Turing: El Enigma (Edición del Centenario). Prensa de la Universidad de Princeton . ISBN 978-0-691-15564-7.
  3. ^ Rabin, Michael O. (junio de 2012). Turing, Church, Gödel, Computabilidad, complejidad y aleatorización: una visión personal.
  4. ^ Monje Donald (1976). Lógica Matemática . Springer-Verlag. ISBN 9780387901701.
  5. ^ Hopcroft, John E. y Jeffrey D. Ullman (2006). Introducción a la teoría, los lenguajes y la computación de autómatas. 3ª edición . Lectura, MA: Addison-Wesley. ISBN 978-0-321-45536-9.
  6. ^ Jerarquía de Chomsky (1956). "Tres modelos para la descripción del lenguaje". Teoría de la información, Transacciones IRE en . IEEE. 2 (3): 113–124. doi :10.1109/TIT.1956.1056813. S2CID  19519474.
  7. ^ Alan Turing (1937). "Sobre números computables, con aplicación al Entscheidungsproblem". Actas de la Sociedad Matemática de Londres . IEEE. 2 (42): 230–265. doi :10.1112/plms/s2-42.1.230. S2CID  73712 . Consultado el 6 de enero de 2015 .
  8. ^ Arroz Henry Gordon (1953). "Clases de conjuntos enumerables recursivamente y sus problemas de decisión". Transacciones de la Sociedad Matemática Estadounidense . Sociedad Matemática Estadounidense. 74 (2): 358–366. doi : 10.2307/1990888 . JSTOR  1990888.
  9. ^ Martín Davis (2004). Lo indecidible: artículos básicos sobre proposiciones indecidibles, problemas irresolubles y funciones computables (Dover Ed) . Publicaciones de Dover. ISBN 978-0486432281.

Otras lecturas

Libros de texto dirigidos a informáticos.

(Hay muchos libros de texto en esta área; esta lista necesariamente está incompleta).

Libros sobre la teoría de la computabilidad desde una perspectiva matemática (más amplia)
Perspectiva historica

enlaces externos