¿Dónde aprender más sobre qué es la informática teórica?

15

Soy un estudiante graduado en matemáticas, y la informática teórica es un dominio del que nunca entendí de qué se trata porque no pude encontrar una buena lectura sobre el tema. Quiero saber de qué se trata este dominio, qué tipo de temas le conciernen, qué requisitos previos se necesitan para iniciarlo, etc. Por ahora, solo quiero saber:

¿Qué es un buen libro introductorio a la informática teórica?

Dado que existe tal cosa. Si no es así, ¿dónde debería comenzar un matemático que tiene conocimientos básicos sobre informática (es decir, conoce los conceptos básicos de uno o dos lenguajes de programación) si quiere comprender de qué se trata la informática teórica? ¿Que recomiendas?

¡Gracias!


fuente
1
Gran pregunta Estoy realmente perdido. El CS teórico es tan amplio y diverso que dudo que alguien haya intentado estudiarlo todo en un solo lugar. Hay libros de introducción, como "Theory of Computation" o "Algorithms" de Sipser de Dasgupta, Papadimitriou y Vazirani. Pero esos son como requisitos previos de grado y no va a dar una idea de lo corriente TCS es "realmente acerca de" ...
usul
66
La pregunta es demasiado amplia. Entonces se podría preguntar igualmente: "¿Dónde aprender más sobre qué es la matemática?". Por lo tanto, uno debe mirar los campos de TCS que están cerca de las matemáticas, como la teoría de la complejidad, la criptografía, la aproximación. Digamos que la complejidad del circuito es solo una parte de la Combinación Extremal. El libro de Sipser es realmente genial: es una visión matemática en TCS (una pequeña parte, no hace falta decirlo); Sipser mismo es en realidad un matemático.
Stasys
2
El próximo texto de Avi Wigderson es un gran recurso: math.ias.edu/avi/book
András Salamon

Respuestas:

29

Primero, "informática teórica" ​​significa cosas diferentes para diferentes personas. Creo que para la mayoría de los usuarios en este sitio, una caricatura histórica (que refleja algunas tendencias sociológicas modernas) es que hay "Teoría A" y "Teoría B" (sin una relación de orden implícita entre ellas): la Teoría A consiste en la teoría de algoritmos, teoría de la complejidad, criptografía y similares. La teoría B consiste en cosas como la teoría de los lenguajes de programación, la teoría de los autómatas, etc. Dependiendo de sus gustos matemáticos, puede preferir uno sobre el otro (o los dos por igual). Estoy más familiarizado con la "Teoría A", así que permítanme dar algunas referencias allí:

  • Comience con el libro de Sipser. Esto le dará una buena introducción a los autómatas, las máquinas de Turing, la computabilidad, la complejidad de Kolmogorov, P vs NP y algunas otras clases de complejidad. Está muy bien escrito (en mi opinión, es uno de los libros mejor escritos técnicos cada vez )

  • Para los algoritmos, tengo una ligera preferencia por Kleinberg-Tardos, pero hay muchos buenos libros introductorios. Es posible que esté especialmente interesado en la geometría computacional, que tiene su propio conjunto de excelentes libros.

  • Dado que usted es un estudiante graduado de matemáticas, una de las ramas principales de TCS que falta en estos libros es la teoría de la complejidad algebraica , que a menudo está estrechamente relacionada con el álgebra (conmutativa y no conmutativa), la teoría de la representación, la teoría de grupos y la geometría algebraica. . Aquí hay un texto canónico, que es Burgisser-Clausen-Shokrollahi. No deja de ser enciclopédica, por lo que puede no ser la mejor carta de presentación, pero no estoy seguro de que es un libro muy introductoria en esta área. También puede consultar las encuestas de Chen-Kayal-Wigderson y Shiplka-Yehudayoff.

Después de eso, sugeriría navegar a través de libros más avanzados sobre temas particulares, dependiendo de su gusto matemático:

  • Arora-Barak es una teoría de la complejidad más moderna (continúa donde termina el libro de Sipser, por así decirlo), brindándole una idea de las técnicas involucradas (mezcla de combinatoria y álgebra, principalmente)

  • El libro de Jukna sobre la complejidad de la función booleana es similar, pero más profundo para la complejidad del circuito booleano en particular (sabor muy combinatorio)

  • Teoría de la complejidad geométrica. Vea aquí o la introducción de Landsberg para geómetras .

  • El libro Análisis de funciones booleanas de O'Donnell tiene una inclinación más analítica de Fourier.

  • Criptografía. Los aspectos matemáticos más avanzados aquí son típicamente teoría de números y geometría algebraica. Si bien estos aspectos matemáticos puros representan solo una pequeña porción de la criptografía, son importantes y pueden resultarle interesantes. Al no ser mi área, no estoy seguro de lo que es un buen libro de partida aquí.

  • Teoría de la codificación. Aquí, la teoría matemática abarca desde el empaquetamiento de esferas (ver el libro de Conway y Sloane) hasta la geometría algebraica (por ejemplo, el libro de Stichtenoth). Nuevamente, no es mi área, por lo que no estoy seguro de si estos son los mejores puntos de partida, pero si los hojea rápidamente obtendrá el sabor y decidirá si desea profundizar más.

Y luego hay muchos otros temas matemáticos que solo aparecen en la literatura de investigación, como conexiones con espumas, teoría de grafos, álgebras C * (déjenme señalarles la conjetura de Kadison-Singer ), teoría invariante, teoría de representación, cuadraturas, y así sucesivamente. Ver también estas preguntas relacionadas

Joshua Grochow
fuente
2
Un buen libro de partida para la criptografía es Introducción a la criptografía moderna de Katz-Lindell: cs.umd.edu/~jkatz/imc.html : una opción alternativa (más antigua) es Fundamentos de la criptografía de Goldreich: wisdom.weizmann.ac.il /~oded/foc-book.html
Daniel Apon
4

La naturaleza de la computación por Cristopher Moore y Stephan Mertens.

John Donn
fuente
Me encanta este libro, no lo recomendé en mi respuesta principalmente por su extensión, aunque, por supuesto, uno siempre puede elegir los capítulos para leer.
Joshua Grochow