Está en la página 1de 4

La teoría de la computación o teoría de la informática es un conjunto de conocimientos

racionales y sistematizados que se centran en el estudio de la abstracción de los procesos, con el


fin de reproducirlos con ayuda de sistemas formales; es decir, a través de símbolos y reglas lógicas.
La teoría de la computación permite modelar procesos dentro de las limitaciones de dispositivos
que procesan información y que efectúan cálculos; como, por ejemplo, el ordenador. Para ello, se
apoya en la teoría de autómatas, a fin de simular y estandarizar dichos procesos, así como para
formalizar los problemas y darles solución.[cita  requerida]

Índice

 1Principales subramas

o 1.1Teoría de autómatas

o 1.2Teoría de la computabilidad

o 1.3Teoría de la complejidad computacional

 2Otras subramas

 3Historia

 4Referencias

 5Bibliografía

Principales subramas[editar]

Teoría de autómatas[editar]

Artículo principal:  Teoría de autómatas

Esta teoría provee modelos matemáticos que formalizan el concepto


de computadora o algoritmo de manera suficientemente simplificada y general para que se
puedan analizar sus capacidades y limitaciones. Algunos de estos modelos juegan un papel central
en varias aplicaciones de las ciencias de la computación, incluyendo procesamiento de
texto, compiladores, diseño de hardware e inteligencia artificial.

Existen muchos otros tipos de autómatas como las máquinas de acceso aleatorio, autómatas


celulares, máquinas ábaco y las máquinas de estado abstracto; sin embargo en todos los casos se
ha mostrado que estos modelos no son más generales que la máquina de Turing, pues la máquina
de Turing tiene la capacidad de simular cada uno de estos autómatas. Esto da lugar a que se
piense en la máquina de Turing como el modelo universal de computadora.

Teoría de la computabilidad[editar]

Artículo principal:  Teoría de la computabilidad

Véase también:  Indecidibilidad


Esta teoría explora los límites de la posibilidad de solucionar problemas mediante algoritmos. Gran
parte de las ciencias computacionales están dedicadas a resolver problemas de forma algorítmica,
de manera que el descubrimiento de problemas imposibles es una gran sorpresa. La teoría de la
computabilidad es útil para no tratar de resolver algorítmicamente estos problemas, ahorrando así
tiempo y esfuerzo.

Los problemas se clasifican en esta teoría de acuerdo a su grado de imposibilidad:

 Los computables son aquellos para los cuales sí existe un algoritmo que siempre los
resuelve cuando hay una solución y además es capaz de distinguir los casos que no la
tienen. También se les conoce como decidibles, resolubles o recursivos.

 Los semicomputables son aquellos para los cuales hay un algoritmo que es capaz de


encontrar una solución si es que existe, pero ningún algoritmo que determine cuando la
solución no existe (en cuyo caso el algoritmo para encontrar la solución entraría a un bucle
infinito). El ejemplo clásico por excelencia es el problema de la parada. A estos problemas
también se les conoce como listables, recursivamente enumerables o reconocibles, porque
si se enlistan todos los casos posibles del problema, es posible reconocer a aquellos que sí
tienen solución.

 Los incomputables son aquellos para los cuales no hay ningún algoritmo que los pueda
resolver, no importando que tengan o no solución. El ejemplo clásico por excelencia es
el problema de la implicación lógica, que consiste en determinar cuándo una proposición
lógica es un teorema; para este problema no hay ningún algoritmo que en todos los casos
pueda distinguir si una proposición o su negación es un teorema.

Hay una versión más general de esta clasificación, donde los problemas incomputables se
subdividen a su vez en problemas más difíciles que otros. La herramienta principal para lograr
estas clasificaciones es el concepto de reducibilidad: Un problema  se reduce al problema  si bajo
la suposición de que se sabe resolver el problema  es posible resolver al problema ; esto se denota
por , e informalmente significa que el problema  no es más difícil de resolver que el problema . Por
ejemplo, bajo la suposición de que una persona sabe sumar, es muy fácil enseñarle a multiplicar
haciendo sumas repetidas, de manera que multiplicar se reduce a sumar.

Teoría de la complejidad computacional[editar]

Artículo principal:  Complejidad computacional

Véase también:  Clase de complejidad

Aun cuando un problema sea computable, puede que no sea posible resolverlo en la práctica si se
requiere mucha memoria o tiempo de ejecución. La teoría de la complejidad computacional
estudia las necesidades de memoria, tiempo y otros recursos computacionales para resolver
problemas; de esta manera es posible explicar por qué unos problemas son más difíciles de
resolver que otros. Uno de los mayores logros de esta rama es la clasificación de problemas,
similar a la tabla periódica, de acuerdo a su dificultad. En esta clasificación los problemas se
separan por clases de complejidad.
Esta teoría tiene aplicación en casi todas las áreas de conocimiento donde se desee resolver un
problema computacionalmente, porque los investigadores no solo desean utilizar un método para
resolver un problema, sino utilizar el más rápido. La teoría de la complejidad computacional
también tiene aplicaciones en áreas como la criptografía, donde se espera que descifrar un código
secreto sea un problema muy difícil a menos que se tenga la contraseña, en cuyo caso el problema
se vuelve fácil.

Otras subramas[editar]

 Modelos de cómputo Estudia abstracciones de hacer un cómputo. Aquí se incluyen los


clásicos modelos de la teoría de autómatas además de otros modelos como funciones
recursivas, cálculo lambda e inclusive lenguajes de programación.

 Teoría algorítmica de la información Centra su atención en la complejidad para describir


algorítmicamente una secuencia de datos (cadena); aquí la complejidad está medida por la
longitud de su descripción más pequeña.

 Especificación y verificación formal Busca metodologías para garantizar que un problema


esté correctamente modelado y sistemas formales para validar la corrección de la solución
algorítmica.

 La Teoría del aprendizaje computacional busca algoritmos que hagan que las


computadoras modifiquen sus comportamientos de manera autónoma con base en datos
empíricos, y concretamente en ejemplos y contraejemplos. A este tipo de aprendizaje se le
llama aprendizaje supervisado. De forma análoga a la teoría de la complejidad
computacional, en esta teoría las funciones se clasifican por su grado de dificultad de ser
aprendidas.

 Teoría de tipos Busca la clasificación de enunciados de acuerdo a los tipos de valores que


calculan utilizando herramientas de teoría de lenguajes formales.

Historia[editar]

Véanse también:  Entscheidungsproblem  y  Tesis de Church-Turing.

La teoría de la computación comienza propiamente a principios del siglo XX, poco antes que las
computadoras electrónicas fuesen inventadas. En esta época varios matemáticos se preguntaban
si existía un método universal para resolver todos los problemas matemáticos. Para ello debían
desarrollar la noción precisa de método para resolver problemas, es decir, la definición formal
de algoritmo.

Algunos de estos modelos formales fueron propuestos por precursores como Alonzo


Church (cálculo Lambda), Kurt Gödel (funciones recursivas) y Alan Turing (máquina de Turing). Se
ha mostrado que estos modelos son equivalentes en el sentido de que pueden simular los mismos
algoritmos, aunque lo hagan de maneras diferentes. Entre los modelos de cómputo más recientes
se encuentran los lenguajes de programación, que también han mostrado ser equivalentes a los
modelos anteriores; esto es una fuerte evidencia de la conjetura de Church-Turing, de que todo
algoritmo habido y por haber se puede simular en una máquina de Turing, o equivalentemente,
usando funciones recursivas. En 2007 Nachum Dershowitz y Yuri Gurevich publicaron una
demostración de esta conjetura basándose en cierta axiomatización de algoritmos.1

Uno de los primeros resultados de esta teoría fue la existencia de problemas imposibles de
resolver algorítmicamente, siendo el problema de la parada el más famoso de ellos. Para estos
problemas no existe ni existirá ningún algoritmo que los pueda resolver, no importando la
cantidad de tiempo o memoria se disponga en una computadora. Asimismo, con la llegada de las
computadoras modernas se constató que algunos problemas resolubles en teoría eran imposibles
en la práctica, puesto que dichas soluciones necesitaban cantidades irrealistas de tiempo o
memoria para poderse encontrar.

También podría gustarte