Articulo de referencia

informática teórica

Un autómata de estados finitos de la teoría de autómatas , una rama de la informática teórica. La informática teórica es un subcampo de la informática y las matemáticas que se c...

Un autómata de estados finitos de la teoría de autómatas , una rama de la informática teórica.

La informática teórica es un subcampo de la informática y las matemáticas que se centra en los fundamentos abstractos y matemáticos de la computación .

Es difícil delimitar con precisión las áreas teóricas. El Grupo de Interés Especial en Algoritmos y Teoría de la Computación (SIGACT) de la ACM proporciona la siguiente descripción: [ 1 ]

TCS abarca una amplia variedad de temas, incluyendo algoritmos , estructuras de datos , complejidad computacional , computación paralela y distribuida , computación probabilística , computación cuántica , teoría de autómatas , teoría de la información , criptografía , semántica y verificación de programas , teoría de juegos algorítmica , aprendizaje automático , biología computacional , economía computacional , geometría computacional y teoría y álgebra computacional de números . El trabajo en este campo se distingue a menudo por su énfasis en la técnica y el rigor matemáticos .

Historia

La informática teórica está estrechamente relacionada con las matemáticas y la lógica. En el siglo XX, se independizó y se convirtió en una disciplina propia. Entre sus pioneros se encuentran Kurt Gödel , Alonzo Church , Alan Turing , Stephen Cole Kleene , Claude Shannon , John von Neumann y Noam Chomsky . Si bien la inferencia lógica y la demostración matemática ya existían, en 1931 Kurt Gödel demostró, con su teorema de incompletitud , que existen limitaciones fundamentales en cuanto a las proposiciones que pueden probarse o refutarse.

La teoría de la información se incorporó al campo con la teoría matemática de la comunicación de Claude Shannon en 1948. En la misma década, Donald Hebb introdujo un modelo matemático del aprendizaje en el cerebro. Con la creciente evidencia biológica que respaldaba esta hipótesis con algunas modificaciones, se establecieron los campos de las redes neuronales y el procesamiento distribuido en paralelo . En 1971, Stephen Cook y, trabajando de forma independiente , Leonid Levin , demostraron que existen problemas prácticamente relevantes que son NP-completos , un resultado trascendental en la teoría de la complejidad computacional . [ 2 ]

La investigación moderna en informática teórica se basa en estos desarrollos fundamentales, pero incluye muchos otros problemas matemáticos e interdisciplinarios que se han planteado, como se muestra a continuación:

Temas

Algoritmos

Un algoritmo es un procedimiento paso a paso para realizar cálculos. Los algoritmos se utilizan para el cálculo , el procesamiento de datos y el razonamiento automatizado .

Un algoritmo es un método eficaz expresado como una lista finita [ 3 ] de instrucciones bien definidas [ 4 ] para calcular una función . [ 5 ] Partiendo de un estado inicial y una entrada inicial (quizás vacía ), [ 6 ] las instrucciones describen un cálculo que, al ejecutarse , procede a través de un número finito [ 7 ] de estados sucesivos bien definidos, produciendo finalmente una "salida" [ 8 ] y terminando en un estado final. La transición de un estado al siguiente no es necesariamente determinista ; algunos algoritmos, conocidos como algoritmos aleatorios , incorporan una entrada aleatoria. [ 9 ]

teoría de autómatas

La teoría de autómatas estudia las máquinas abstractas y los autómatas , así como los problemas computacionales que pueden resolverse mediante ellos. Es una teoría de la informática teórica, perteneciente a las matemáticas discretas (una rama de las matemáticas y también de la informática ). El término autómata proviene de la palabra griega αὐτόματα, que significa "autoaccionante".

La teoría de autómatas es el estudio de máquinas virtuales autooperadas para ayudar en la comprensión lógica del proceso de entrada y salida, con o sin etapa(s) intermedia(s) de computación (o cualquier función /proceso).

Teoría de la codificación

La teoría de la codificación estudia las propiedades de los códigos y su idoneidad para una aplicación específica. Los códigos se utilizan para la compresión de datos , la criptografía , la corrección de errores y, más recientemente, también para la codificación de redes . Diversas disciplinas científicas, como la teoría de la información , la ingeniería eléctrica , las matemáticas y la informática , estudian los códigos con el fin de diseñar métodos de transmisión de datos eficientes y fiables . Esto suele implicar la eliminación de redundancias y la corrección (o detección) de errores en los datos transmitidos.

Teoría de la complejidad computacional

La teoría de la complejidad computacional es una rama de la teoría de la computación que se centra en clasificar los problemas computacionales según su dificultad inherente y en relacionar dichas clases entre sí. Un problema computacional se entiende como una tarea que, en principio, puede ser resuelta por una computadora, lo que equivale a afirmar que el problema puede resolverse mediante la aplicación mecánica de pasos matemáticos, como un algoritmo .

Un problema se considera intrínsecamente difícil si su solución requiere recursos significativos, independientemente del algoritmo utilizado. La teoría formaliza esta intuición mediante la introducción de modelos matemáticos de computación para estudiar estos problemas y cuantificar la cantidad de recursos necesarios para resolverlos, como el tiempo y el almacenamiento. También se utilizan otras medidas de complejidad , como la cantidad de comunicación (utilizada en la complejidad de la comunicación ), el número de compuertas en un circuito (utilizado en la complejidad del circuito ) y el número de procesadores (utilizado en la computación paralela ). Una de las funciones de la teoría de la complejidad computacional es determinar los límites prácticos de lo que las computadoras pueden y no pueden hacer.

Geometría computacional

La geometría computacional es una rama de la informática dedicada al estudio de algoritmos que pueden expresarse en términos geométricos . Algunos problemas puramente geométricos surgen del estudio de algoritmos geométricos computacionales, y dichos problemas también se consideran parte de la geometría computacional.

El principal impulso para el desarrollo de la geometría computacional como disciplina fue el progreso en los gráficos por computadora y el diseño y fabricación asistidos por computadora ( CAD / CAM ), pero muchos problemas en geometría computacional son de naturaleza clásica y pueden provenir de la visualización matemática .

Otras aplicaciones importantes de la geometría computacional incluyen la robótica (planificación de movimiento y problemas de visibilidad), los sistemas de información geográfica (SIG) (localización y búsqueda geométrica, planificación de rutas), el diseño de circuitos integrados (diseño y verificación de la geometría de los circuitos integrados), la ingeniería asistida por ordenador (CAE) (generación de mallas) y la visión por ordenador (reconstrucción 3D).

Teoría del aprendizaje computacional

Los resultados teóricos en aprendizaje automático se centran principalmente en un tipo de aprendizaje inductivo llamado aprendizaje supervisado. En este tipo de aprendizaje, se le proporcionan a un algoritmo muestras etiquetadas de forma útil. Por ejemplo, las muestras podrían ser descripciones de setas, y las etiquetas podrían indicar si las setas son comestibles o no. El algoritmo toma estas muestras previamente etiquetadas y las utiliza para generar un clasificador. Este clasificador es una función que asigna etiquetas a las muestras, incluidas aquellas que el algoritmo nunca ha visto antes. El objetivo del algoritmo de aprendizaje supervisado es optimizar alguna medida de rendimiento, como minimizar el número de errores cometidos con muestras nuevas.

Teoría computacional de números

La teoría computacional de números , también conocida como teoría algorítmica de números , es el estudio de algoritmos para realizar cálculos de teoría de números . El problema más conocido en este campo es la factorización de enteros .

Criptografía

La criptografía es la práctica y el estudio de técnicas para la comunicación segura en presencia de terceros (llamados adversarios ). [ 10 ] En términos más generales, se trata de construir y analizar protocolos que superen la influencia de los adversarios [ 11 ] y que estén relacionados con diversos aspectos de la seguridad de la información, como la confidencialidad de los datos , la integridad de los datos , la autenticación y el no repudio . [ 12 ] La criptografía moderna se cruza con las disciplinas de las matemáticas , la informática y la ingeniería eléctrica . Las aplicaciones de la criptografía incluyen tarjetas de cajero automático , contraseñas de computadora y comercio electrónico .

La criptografía moderna se basa en gran medida en la teoría matemática y la práctica de la informática; los algoritmos criptográficos se diseñan en torno a supuestos de dificultad computacional , lo que hace que sean difíciles de romper en la práctica por cualquier adversario. Si bien teóricamente es posible romper un sistema de este tipo, resulta inviable hacerlo por cualquier medio práctico conocido. Por lo tanto, estos esquemas se denominan computacionalmente seguros; los avances teóricos, como las mejoras en los algoritmos de factorización de enteros y la mayor velocidad de la tecnología informática, exigen que estas soluciones se adapten continuamente. Existen esquemas teóricamente seguros desde el punto de vista de la información que, demostrablemente, no pueden romperse ni siquiera con una capacidad de cómputo ilimitada —un ejemplo es el cifrado de un solo uso— , pero estos esquemas son más difíciles de implementar que los mejores mecanismos teóricamente rompibles pero computacionalmente seguros.

Estructuras de datos

Una estructura de datos es una forma particular de organizar los datos en una computadora para que puedan usarse de manera eficiente . [ 13 ] [ 14 ]

Los distintos tipos de estructuras de datos se adaptan a diferentes tipos de aplicaciones, y algunas están altamente especializadas para tareas específicas. Por ejemplo, las bases de datos utilizan índices B-tree para recuperar pequeños porcentajes de datos, y los compiladores y las bases de datos utilizan tablas hash dinámicas como tablas de consulta.

Las estructuras de datos proporcionan un medio para gestionar grandes cantidades de datos de forma eficiente para usos como bases de datos de gran tamaño y servicios de indexación de internet . Generalmente, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes . Algunos métodos de diseño formal y lenguajes de programación hacen hincapié en las estructuras de datos, en lugar de los algoritmos, como el factor organizativo clave en el diseño de software. El almacenamiento y la recuperación de datos pueden realizarse tanto en la memoria principal como en la memoria secundaria .

Computación distribuida

La computación distribuida estudia los sistemas distribuidos. Un sistema distribuido es un sistema de software en el que los componentes ubicados en computadoras en red se comunican y coordinan sus acciones mediante el intercambio de mensajes . [ 15 ] Los componentes interactúan entre sí para lograr un objetivo común. Tres características significativas de los sistemas distribuidos son: la concurrencia de los componentes, la ausencia de un reloj global y la posibilidad de fallos independientes de los componentes. [ 15 ] Ejemplos de sistemas distribuidos abarcan desde sistemas basados ​​en SOA hasta juegos multijugador masivos en línea, aplicaciones peer -to-peer y redes blockchain como Bitcoin .

Un programa informático que se ejecuta en un sistema distribuido se denomina programa distribuido , y la programación distribuida es el proceso de escribir dichos programas. [ 16 ] Existen muchas alternativas para el mecanismo de paso de mensajes, incluidos los conectores tipo RPC y las colas de mensajes . Un objetivo y un desafío importante de los sistemas distribuidos es la transparencia de ubicación .

Complejidad basada en la información

La complejidad basada en la información (IBC, por sus siglas en inglés) estudia los algoritmos óptimos y la complejidad computacional para problemas continuos. La IBC ha estudiado problemas continuos como la integración de trayectorias, ecuaciones diferenciales parciales, sistemas de ecuaciones diferenciales ordinarias, ecuaciones no lineales, ecuaciones integrales, puntos fijos e integración de muy alta dimensión.

Métodos formales

Los métodos formales son un tipo particular de técnicas basadas en las matemáticas para la especificación , el desarrollo y la verificación de sistemas de software y hardware . [ 17 ] El uso de métodos formales para el diseño de software y hardware está motivado por la expectativa de que, como en otras disciplinas de ingeniería, realizar un análisis matemático apropiado puede contribuir a la fiabilidad y robustez de un diseño. [ 18 ]

Los métodos formales se describen mejor como la aplicación de una amplia variedad de fundamentos teóricos de la informática, en particular cálculos lógicos , lenguajes formales , teoría de autómatas y semántica de programas , pero también sistemas de tipos y tipos de datos algebraicos a problemas de especificación y verificación de software y hardware. [ 19 ]

teoría de la información

La teoría de la información es una rama de las matemáticas aplicadas , la ingeniería eléctrica y la informática que involucra la cuantificación de la información . Fue desarrollada por Claude E. Shannon para encontrar límites fundamentales en las operaciones de procesamiento de señales , como la compresión de datos y el almacenamiento y la comunicación confiable de datos. Desde su inicio, se ha ampliado para encontrar aplicaciones en muchas otras áreas, incluyendo la inferencia estadística , el procesamiento del lenguaje natural , la criptografía , la neurobiología , [ 20 ] la evolución [ 21 ] y la función [ 22 ] de los códigos moleculares, la selección de modelos en estadística, [ 23 ] la física térmica, [ 24 ] la computación cuántica , la lingüística , la detección de plagio, [ 25 ] el reconocimiento de patrones , la detección de anomalías y otras formas de análisis de datos . [ 26 ]

Las aplicaciones de temas fundamentales de la teoría de la información incluyen la compresión de datos sin pérdida (por ejemplo, archivos ZIP ), la compresión de datos con pérdida (por ejemplo , MP3 y JPEG ) y la codificación de canales (por ejemplo, para la Línea de Abonado Digital (DSL) ). Este campo se encuentra en la intersección de las matemáticas , la estadística , la informática , la física , la neurobiología y la ingeniería eléctrica . Su impacto ha sido crucial para el éxito de las misiones Voyager al espacio profundo, la invención del disco compacto, la viabilidad de los teléfonos móviles, el desarrollo de Internet , el estudio de la lingüística y la percepción humana, la comprensión de los agujeros negros y muchos otros campos. Los subcampos importantes de la teoría de la información son la codificación de fuentes , la codificación de canales , la teoría de la complejidad algorítmica , la teoría de la información algorítmica , la seguridad basada en la teoría de la información y las medidas de información.

Aprendizaje automático

El aprendizaje automático es una disciplina científica que se ocupa de la construcción y el estudio de algoritmos que pueden aprender de los datos. [ 27 ] Dichos algoritmos operan construyendo un modelo basado en entradas [ 28 ] : 2 y usándolo para hacer predicciones o tomar decisiones, en lugar de seguir solo instrucciones programadas explícitamente.

El aprendizaje automático puede considerarse un subcampo de la informática y la estadística . Tiene fuertes vínculos con la inteligencia artificial y la optimización , que aportan métodos, teoría y dominios de aplicación al campo. El aprendizaje automático se emplea en diversas tareas informáticas donde el diseño y la programación de algoritmos explícitos basados ​​en reglas resultan inviables. Algunos ejemplos de aplicaciones incluyen el filtrado de spam , el reconocimiento óptico de caracteres (OCR), [ 29 ] los motores de búsqueda y la visión artificial . A veces, el aprendizaje automático se confunde con la minería de datos , [ 30 ] aunque esta última se centra más en el análisis exploratorio de datos. [ 31 ] El aprendizaje automático y el reconocimiento de patrones "pueden considerarse dos facetas del mismo campo". [ 28 ] : vii

Computación natural

La computación natural , [ 32 ] [ 33 ] también llamada computación natural, es una terminología introducida para abarcar tres clases de métodos: 1) aquellos que se inspiran en la naturaleza para el desarrollo de nuevas técnicas de resolución de problemas; 2) aquellos que se basan en el uso de computadoras para sintetizar fenómenos naturales; y 3) aquellos que emplean materiales naturales (por ejemplo, moléculas) para computar. Los principales campos de investigación que componen estas tres ramas son las redes neuronales artificiales , los algoritmos evolutivos , la inteligencia de enjambre , los sistemas inmunes artificiales , la geometría fractal, la vida artificial , la computación de ADN y la computación cuántica , entre otros. Sin embargo, el campo está más relacionado con la computación biológica .

Los paradigmas computacionales estudiados por la computación natural se abstraen de fenómenos naturales tan diversos como la autorreplicación , el funcionamiento del cerebro , la evolución darwiniana , el comportamiento grupal , el sistema inmunitario , las propiedades que definen las formas de vida, las membranas celulares y la morfogénesis . Además del hardware electrónico tradicional, estos paradigmas computacionales pueden implementarse en medios físicos alternativos como biomoléculas (ADN, ARN) o dispositivos de computación cuántica de iones atrapados .

De manera dual, se pueden considerar los procesos que ocurren en la naturaleza como procesamiento de información. Estos procesos incluyen el autoensamblaje , los procesos de desarrollo , las redes de regulación génica , las redes de interacción proteína-proteína , las redes de transporte biológico ( transporte activo , transporte pasivo ) y el ensamblaje de genes en organismos unicelulares . Los esfuerzos por comprender los sistemas biológicos también incluyen la ingeniería de organismos semisintéticos y la comprensión del universo mismo desde el punto de vista del procesamiento de información. De hecho, incluso se planteó la idea de que la información es más fundamental que la materia o la energía. La tesis de Zuse-Fredkin, que data de la década de 1960, afirma que todo el universo es un enorme autómata celular que actualiza continuamente sus reglas. [ 34 ] [ 35 ] Recientemente se ha sugerido que todo el universo es una computadora cuántica que calcula su propio comportamiento. [ 36 ] El universo/naturaleza como mecanismo computacional se aborda mediante [ 37 ] la exploración de la naturaleza con la ayuda de las ideas de computabilidad, y [ 38 ] el estudio de los procesos naturales como computaciones (procesamiento de información).

[ 39 ]

Computación paralela

La computación paralela es una forma de computación en la que se realizan muchos cálculos simultáneamente, [ 40 ] operando bajo el principio de que los problemas grandes a menudo se pueden dividir en otros más pequeños, que luego se resuelven "en paralelo" . Hay varias formas diferentes de computación paralela: paralelismo a nivel de bits , a nivel de instrucciones , de datos y de tareas . El paralelismo se ha empleado durante muchos años, principalmente en computación de alto rendimiento , pero el interés en él ha crecido últimamente debido a las limitaciones físicas que impiden el escalado de frecuencia . [ 41 ] Como el consumo de energía (y, en consecuencia, la generación de calor) de las computadoras se ha convertido en una preocupación en los últimos años, [ 42 ] la computación paralela se ha convertido en el paradigma dominante en la arquitectura de computadoras , principalmente en forma de procesadores multinúcleo . [ 43 ]

Los programas informáticos paralelos son más difíciles de escribir que los secuenciales, [ 44 ] porque la concurrencia introduce varias clases nuevas de posibles errores de software , de los cuales las condiciones de carrera son las más comunes. La comunicación y la sincronización entre las diferentes subtareas suelen ser algunos de los mayores obstáculos para lograr un buen rendimiento de los programas paralelos.

La máxima aceleración posible de un solo programa como resultado de la paralelización se conoce como la ley de Amdahl .

Teoría de los lenguajes de programación y semántica de los programas

La teoría de los lenguajes de programación es una rama de la informática que se ocupa del diseño, la implementación, el análisis, la caracterización y la clasificación de los lenguajes de programación y sus características individuales . Se enmarca dentro de la informática teórica, y depende de las matemáticas , la ingeniería de software y la lingüística , a la vez que las influye . Es un área de investigación activa, con numerosas revistas académicas especializadas.

En la teoría de los lenguajes de programación , la semántica es el campo que se ocupa del estudio matemático riguroso del significado de los lenguajes de programación . Para ello, evalúa el significado de cadenas sintácticamente válidas definidas por un lenguaje de programación específico, mostrando la computación involucrada. Si la evaluación se realizara sobre cadenas sintácticamente inválidas, el resultado sería la ausencia de computación. La semántica describe los procesos que sigue un ordenador al ejecutar un programa en ese lenguaje específico. Esto se puede demostrar describiendo la relación entre la entrada y la salida de un programa, o explicando cómo se ejecutará el programa en una plataforma determinada , creando así un modelo de computación .

Computación cuántica

Una computadora cuántica es un sistema de computación que utiliza directamente fenómenos de la mecánica cuántica , como la superposición y el entrelazamiento , para realizar operaciones con datos . [ 45 ] Las computadoras cuánticas son diferentes de las computadoras digitales basadas en transistores . Mientras que las computadoras digitales requieren que los datos se codifiquen en dígitos binarios ( bits ), cada uno de los cuales siempre está en uno de dos estados definidos (0 o 1), la computación cuántica utiliza cúbits (bits cuánticos), que pueden estar en superposiciones de estados. Un modelo teórico es la máquina de Turing cuántica , también conocida como la computadora cuántica universal. Las computadoras cuánticas comparten similitudes teóricas con las computadoras no deterministas y probabilísticas ; un ejemplo es la capacidad de estar en más de un estado simultáneamente. El campo de la computación cuántica fue introducido por primera vez por Yuri Manin en 1980 [ 46 ] y Richard Feynman en 1982. [ 47 ] [ 48 ] También se formuló una computadora cuántica con espines como bits cuánticos para su uso como espacio-tiempo cuántico en 1968. [ 49 ]

Se han realizado experimentos en los que se ejecutaron operaciones de computación cuántica en un número muy pequeño de cúbits. [ 50 ] La investigación, tanto práctica como teórica, continúa, y muchos gobiernos nacionales y agencias de financiación militar apoyan la investigación en computación cuántica para desarrollar computadoras cuánticas con fines civiles y de seguridad nacional, como el criptoanálisis . [ 51 ]

Computación simbólica

El álgebra computacional , también llamada computación simbólica o computación algebraica, es un área científica que se refiere al estudio y desarrollo de algoritmos y software para manipular expresiones matemáticas y otros objetos matemáticos . Si bien, en rigor, el álgebra computacional debería ser un subcampo de la computación científica , generalmente se consideran campos distintos porque la computación científica se basa habitualmente en cálculos numéricos con números de coma flotante aproximados , mientras que la computación simbólica enfatiza los cálculos exactos con expresiones que contienen variables que no tienen ningún valor dado y, por lo tanto, se manipulan como símbolos (de ahí el nombre de computación simbólica ).

Las aplicaciones de software que realizan cálculos simbólicos se denominan sistemas de álgebra computacional , y el término sistema alude a la complejidad de las aplicaciones principales que incluyen, como mínimo, un método para representar datos matemáticos en un ordenador, un lenguaje de programación de usuario (normalmente diferente del lenguaje utilizado para la implementación), un gestor de memoria dedicado, una interfaz de usuario para la entrada/salida de expresiones matemáticas, un amplio conjunto de rutinas para realizar operaciones habituales, como la simplificación de expresiones, la diferenciación mediante la regla de la cadena , la factorización de polinomios , la integración indefinida , etc.

Integración a muy gran escala

La integración a muy gran escala ( VLSI ) es el proceso de crear un circuito integrado (CI) combinando miles de transistores en un solo chip. La VLSI surgió en la década de 1970, cuando se desarrollaban tecnologías complejas de semiconductores y comunicaciones . El microprocesador es un dispositivo VLSI. Antes de la introducción de la tecnología VLSI, la mayoría de los CI tenían un conjunto limitado de funciones. Un circuito electrónico podía constar de una CPU , ROM , RAM y otros componentes lógicos . La VLSI permite a los fabricantes de CI integrar todos estos circuitos en un solo chip.

Organizaciones

Revistas y boletines informativos

Conferencias

Véase también

Notas

  1. "SIGACT" . Consultado el 19 de enero de 2017 .
  2. Cook, Stephen A. (1971). «La complejidad de los procedimientos de demostración de teoremas». Actas del tercer simposio anual de la ACM sobre Teoría de la Computación - STOC '71 . págs. 151–158 . doi : 10.1145/800157.805047 . ISBN  978-1-4503-7464-4.
  3. "Cualquier algoritmo matemático clásico, por ejemplo, puede describirse con un número finito de palabras en inglés". Rogers, Hartley Jr. (1967). Theory of Recursive Functions and Effective Computability . McGraw-Hill.Página 2.
  4. Bien definido con respecto al agente que ejecuta el algoritmo: "Hay un agente computacional, generalmente humano, que puede reaccionar a las instrucciones y llevar a cabo los cálculos" ( Rogers 1967 , p. 2) . 
  5. "un algoritmo es un procedimiento para calcular una función (con respecto a alguna notación elegida para enteros) ... esta limitación (a funciones numéricas) no resulta en pérdida de generalidad", ( Rogers 1967 , p. 1) . 
  6. "Un algoritmo tiene cero o más entradas, es decir, cantidades que se le dan inicialmente antes de que el algoritmo comience" (Knuth 1973:5).
  7. "Un procedimiento que tiene todas las características de un algoritmo excepto que posiblemente carece de finitud puede llamarse 'método computacional'" (Knuth 1973:5).
  8. "Un algoritmo tiene una o más salidas, es decir cantidades que tienen una relación específica con las entradas" (Knuth 1973:5).
  9. Si un proceso con procesos internos aleatorios (sin incluir la entrada) es un algoritmo o no es discutible. Rogers opina que: "un cálculo se lleva a cabo de manera discreta y por pasos, sin el uso de métodos continuos o dispositivos analógicos... se lleva adelante de forma determinista, sin recurrir a métodos o dispositivos aleatorios, por ejemplo, dados" ( Rogers 1967 , p. 2) . 
  10. Rivest, Ronald L. (1990). "Criptología". En J. Van Leeuwen (ed.). Manual de informática teórica . Vol. 1. Elsevier. 
  11. ^ Bellare, Mihir; Rogaway, Phillip (21 de septiembre de 2005). "Introducción". Introducción a la criptografía moderna . pag. 10. 
  12. Menezes, AJ; van Oorschot, PC; Vanstone, SA (1997). Manual de criptografía aplicada . Taylor & Francis. ISBN 978-0-8493-8523-0.
  13. Paul E. Black (ed.), entrada para estructura de datos en el Diccionario de algoritmos y estructuras de datos . Instituto Nacional de Estándares y Tecnología de EE . UU. 15 de diciembre de 2004. Versión en línea consultada el 21 de mayo de 2009.
  14. Estructura de datos de entradaen la Encyclopædia Britannica (2009). Entrada en línea consultada el 21 de mayo de 2009.
  15. 1 2 Coulouris, George; Jean Dollimore; Tim Kindberg; Gordon Blair (2011). Sistemas distribuidos: conceptos y diseño (5.ª ed.). Boston: Addison-Wesley. ISBN  978-0-132-14301-1.
  16. Ghosh, Sukumar (2007). Sistemas distribuidos: un enfoque algorítmico . Chapman & Hall/CRC. pág. 10. ISBN  978-1-58488-564-1.
  17. RW Butler (6 de agosto de 2001). "¿Qué son los métodos formales?" . Consultado el 16 de noviembre de 2006 .
  18. C. Michael Holloway. "Por qué los ingenieros deberían considerar los métodos formales" (PDF) . 16.ª Conferencia de Sistemas de Aviónica Digital (27-30 de octubre de 1997). Archivado del original (PDF) el 16 de noviembre de 2006. Consultado el 16 de noviembre de 2006 .
  19. Monin, págs. 3-4
  20. F. Rieke; D. Warland; R Ruyter van Steveninck; W. Bialek (1997). Spikes: explorando el código neuronal . La prensa del MIT. ISBN 978-0262681087.
  21. Huelsenbeck, JP; Ronquist, F.; Nielsen, R.; Bollback, JP (2001-12-14). "Inferencia bayesiana de la filogenia y su impacto en la biología evolutiva". Science . 294 (5550). Asociación Estadounidense para el Avance de la Ciencia (AAAS): 2310– 2314. Bibcode : 2001Sci...294.2310H . doi : 10.1126/science.1065889 . ISSN 0036-8075 . PMID 11743192 . S2CID 2138288 .   
  22. Rando Allikmets, Wyeth W. Wasserman, Amy Hutchinson, Philip Smallwood, Jeremy Nathans, Peter K. Rogan, Thomas D. Schneider , Michael Dean (1998) Organización del gen ABCR: análisis de las secuencias del promotor y de la unión de empalme, Gene 215 :1, 111–122
  23. Burnham, KP y Anderson DR (2002) Selección de modelos e inferencia multimodelos: un enfoque práctico basado en la teoría de la información, segunda edición (Springer Science, Nueva York) ISBN 978-0-387-95364-9.
  24. Jaynes, ET (15 de mayo de 1957). "Teoría de la información y mecánica estadística". Physical Review . 106 (4). American Physical Society (APS): 620– 630. Bibcode : 1957PhRv..106..620J . doi : 10.1103/physrev.106.620 . ISSN 0031-899X . S2CID 17870175 .  
  25. Charles H. Bennett, Ming Li y Bin Ma (2003) Cartas en cadena e historias evolutivas. Archivado el 7 de octubre de 2007 en Wayback Machine , Scientific American 288 :6, 76–81
  26. David R. Anderson (1 de noviembre de 2003). "Algunos antecedentes sobre por qué las personas en las ciencias empíricas podrían querer comprender mejor los métodos de la teoría de la información" (PDF) . Archivado del original (PDF) el 23 de julio de 2011. Recuperado el 23 de junio de 2010 .
  27. Ron Kovahi; Foster Provost (1998). "Glosario de términos" . Aprendizaje automático . 30 : 271–274 . doi : 10.1023/A:1007411609915 .
  28. 1 2 C. M. Bishop (2006). Reconocimiento de patrones y aprendizaje automático . Springer. ISBN 978-0-387-31073-2.
  29. Wernick, Yang, Brankov, Yourganov y Strother, Aprendizaje automático en imágenes médicas, IEEE Signal Processing Magazine , vol. 27, n.º 4, julio de 2010, págs. 25-38
  30. Mannila, Heikki (1996). Minería de datos: aprendizaje automático, estadística y bases de datos . Conferencia Internacional sobre Gestión de Bases de Datos Científicas y Estadísticas. IEEE Computer Society.
  31. Friedman, Jerome H. (1998). "Minería de datos y estadística: ¿Cuál es la conexión?". Ciencias de la computación y estadística . 29 (1): 3– 9.
  32. G. Rozenberg, T. Back, J. Kok, Editores, Manual de Computación Natural, Springer Verlag, 2012
  33. A. Brabazon, MO'Neill, S. McGarraghy. Algoritmos de computación natural , Springer Verlag, 2015
  34. Fredkin, F. Mecánica digital: Un proceso informacional basado en CA universal reversible. Physica D 45 (1990) 254-270
  35. Zuse, K. Rechnender Raum. Elektronische Datenverarbeitung 8 (1967) 336-344
  36. Lloyd, S. Programando el universo: Un científico de la computación cuántica aborda el cosmos . Knopf, 2006
  37. Zenil, H. Un universo computable: comprender y explorar la naturaleza como computación . World Scientific Publishing Company, 2012
  38. Dodig-Crnkovic, G. y Giovagnoli, R. COMPUTING NATURE . Springer, 2013
  39. Rozenberg, Grzegorz (2001). «Computación natural». Tendencias actuales en informática teórica . págs. 543–690 . doi : 10.1142/9789812810403_0005 . ISBN  978-981-02-4473-6.
  40. Gottlieb, Allan; Almasi, George S. (1989). Computación altamente paralela . Redwood City, California: Benjamin/Cummings. ISBN 978-0-8053-0177-9.
  41. SV Adve et al. (noviembre de 2008). "Investigación en computación paralela en Illinois: La agenda del UPCRC". Archivado el 9 de diciembre de 2008 en Wayback Machine (PDF). Parallel@Illinois, Universidad de Illinois en Urbana-Champaign. "Las principales técnicas para obtener estas ventajas de rendimiento —mayor frecuencia de reloj y arquitecturas más inteligentes pero cada vez más complejas— están llegando al llamado límite de potencia. La industria informática ha aceptado que los futuros aumentos de rendimiento deben provenir en gran medida de incrementar el número de procesadores (o núcleos) en un chip, en lugar de hacer que un solo núcleo funcione más rápido".
  42. Asanovic et al. Antigua [sabiduría convencional]: La energía es gratis, pero los transistores son caros. Nueva [sabiduría convencional] es que la energía es cara, pero los transistores son "gratis".
  43. Asanovic, Krste et al. (18 de diciembre de 2006). "El panorama de la investigación en computación paralela: una perspectiva desde Berkeley" (PDF). Universidad de California, Berkeley. Informe técnico n.° UCB/EECS-2006-183. "Antigua [sabiduría convencional]: aumentar la frecuencia de reloj es el método principal para mejorar el rendimiento del procesador. Nueva [sabiduría convencional]: aumentar el paralelismo es el método principal para mejorar el rendimiento del procesador ... Incluso representantes de Intel, una empresa generalmente asociada con la postura de que 'a mayor velocidad de reloj, mejor', advirtieron que los enfoques tradicionales para maximizar el rendimiento mediante la maximización de la velocidad de reloj han llegado a su límite."
  44. Hennessy, John L.; Patterson, David A.; Larus, James R. (1999). Organización y diseño de computadoras : la interfaz hardware/software (2.ª ed., 3.ª reimpresión ). San Francisco: Kaufmann. ISBN   978-1-55860-428-5.
  45. Artículo" Computación cuántica con moléculas " en Scientific American por Neil Gershenfeld e Isaac L. Chuang
  46. Manin, Yu. I. (1980). Vychislimoe i nevychislimoe [ Computable y no computable ] (en ruso). Sov.Radio. pp. 13– 15. Archivado del original el 10 de mayo de 2013. Recuperado el 4 de marzo de 2013 . 
  47. Feynman, RP (1982). "Simulación de la física con ordenadores". Revista Internacional de Física Teórica . 21 (6): 467– 488. Bibcode : 1982IJTP...21..467F . CiteSeerX 10.1.1.45.9310 . doi : 10.1007/BF02650179 . S2CID 124545445 .  
  48. Deutsch, David (1992-01-06). "Computación cuántica". Physics World . 5 (6): 57– 61. doi : 10.1088/2058-7058/5/6/38 .
  49. Finkelstein, David (1968). "Estructura espacio-temporal en interacciones de alta energía". En Gudehus, T.; Kaiser, G. (eds.). Interacciones fundamentales a alta energía . Nueva York: Gordon & Breach.
  50. "El nuevo control de cúbits augura un buen futuro para la computación cuántica" . Consultado el 26 de octubre de 2014 .
  51. Consulte la hoja de ruta de la ciencia y la tecnología de la información cuántica para tener una idea de hacia dónde se dirige la investigación.
  52. 1 2 3 4 5 El Ranking australiano de conferencias de TIC de 2007 Archivado el 2 de octubre de 2009 en Wayback Machine : nivel A+.
  53. 1 2 3 4 5 6 7 8 9 10 El Ranking Australiano de Conferencias de TIC de 2007 Archivado el 2 de octubre de 2009 en Wayback Machine : nivel A.
  54. "MFCS 2017" . Archivado del original el 10 de enero de 2018. Consultado el 9 de enero de 2018 .
  55. FCT 2011 (consultado el 3 de junio de 2013)
  56. Página web de SOFSEM (consultada el 3 de septiembre de 2024)
  57. RSC 2018

Lecturas adicionales

  • Directorio SIGACT con enlaces a teoría adicional (archivado el 15 de julio de 2017)
  • Wiki de Theory Matters Wiki de defensa de la informática teórica (TCS)
  • Lista de conferencias académicas en el área de la informática teórica en confsearch
  • Informática teórica – StackExchange , un sitio de preguntas y respuestas para investigadores en informática teórica.
  • Informática animada
  • Teoría de la computación en el Instituto Tecnológico de Massachusetts