[ Cronología ]
Esta pregunta tiene el mismo espíritu de qué documentos deben leer todos y qué videos deben ver todos . Pide libros notables en diferentes áreas de la informática teórica.
Los libros pueden estar orientados a las matemáticas, sin embargo, puede ser excelente para un científico de la computación. Ejemplos:
- Probabilidad
- Desigualdades
- Lógica
- Teoría de grafos
- Combinatoria
- Diseño y Análisis de Algoritmo
- Teoría de la computación / Teoría de la complejidad computacional
Dedique cada respuesta a los libros del mismo tema (por ejemplo, libros sobre combinatoria).
Nota: El título puede ser engañoso. Aquí hay una aclaración: que X e Y sean dos campos en informática. Hay libros que todos
- en el campo X debería leer.
- en el campo Y debería leer.
- en ambos campos deberia leer.
Esta pregunta busca los 3 casos. En otras palabras, NO es específico para este último caso.
Editar: según lo sugerido por Dai Le , resalte las razones por las que también le gusta el libro.
Temas relacionados:
- Referencias para técnicas de prueba TCS
- Libros sobre teoría de autómatas para el autoestudio
- Libros de probabilidad
- Libro de matemáticas popular favorito
- Guía para principiantes de desrandomización
- Referencias sobre límites inferiores del circuito
- Artículo de la encuesta sobre la teoría de las funciones recursivas
- Libros sobre semántica del lenguaje de programación
- ¿Cuáles son los libros recientes de TCS cuyos borradores están disponibles en línea?
- Libros sobre probabilidad
reference-request
soft-question
big-list
books
MS Dousti
fuente
fuente
Respuestas:
Complejidad computacional:
Si está buscando libros de texto de complejidad reciente. Los siguientes dos son imprescindibles.
Complejidad computacional: un enfoque moderno por Sanjeev Arora y Boaz Barak ( página de inicio del libro de texto )
Complejidad computacional: una perspectiva conceptual por Oded Goldreich ( página de inicio del libro de texto )
La mayoría del contenido entre estos dos libros es comparable. Sin embargo, existen algunas diferencias clave: Goldreich dedica más espacio a explorar las bases conceptuales y filosóficas de la teoría de la complejidad, mientras que Arora / Barak cubre una selección más amplia de temas, incluidos modelos concretos de complejidad, computación cuántica y límites inferiores de circuitos que están en su mayoría ausentes. del primero.
Otra opción, un libro de texto antiguo pero intemporal en complejidad es:
Otro clásico (comparativamente) antiguo, pero bastante notable es:
Este es uno de los pocos / primeros libros de texto que incluye explícitamente "Proof Idea:" entre "Theorem:" y "Proof:", y es uno de los libros de texto matemáticos mejor escritos sobre cualquier tema. Por otro lado, es solo una introducción a la complejidad, dedicando solo un capítulo de 50 páginas a "temas avanzados" (incluyendo aproximación, algoritmos probabilísticos, IP = PSPACE y criptografía). Como primer libro sobre complejidad, o como un ejemplo de escritura verdaderamente excelente, este libro es excelente .
Scott Aaronson escribe que este libro tiene "la diversión de un libro popular con el peso intelectual de un libro de texto". Cuenta historias y ofrece muchos ejemplos y referencias entretenidos (Game of Life, y muchos otros ejemplos para máquinas completas de Turing). No profundiza demasiado en la teoría de la complejidad, pero tiene una gran amplitud. Especialmente notables son sus conexiones con la física estadística.
fuente
NP-Completitud:
Bueno, supongo que las Computadoras e Intractabilidad de Garey y Johnson : una guía para la teoría de la integridad de NP se encontrará entre los mejores libros de esta lista.
fuente
Diseño y Análisis de Algoritmos:
Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest y Clifford Stein. Introducción a los algoritmos.
R. Motwani, P. Raghavan. Algoritmos aleatorizados.
Encontré este libro sugerido por Ryan Williams en MathOverflow: Algorithm Design by Kleinberg & Tardos .
Otro libro excelente es Introducción a los algoritmos: un enfoque creativo de Udi Manber . Este libro no es un catálogo de algoritmos; más bien, trata de proporcionar al lector la intuición para "reconocer la estructura matemática en problemas abstractos". (citado de una revisión)
fuente
Matemáticas generales para informática:
Matemáticas concretas: una base para la informática por Graham, Knuth y Patashnik.
The Princeton Companion to Mathematics de Gowers et al.
Pruebas del libro de Aigner y Ziegler.
fuente
Sistemas de tipo y semántica del lenguaje de programación:
Tipos y lenguajes de programación de Benjamin Pierce y el volumen de seguimiento Temas avanzados en Tipos y lenguajes de programación . Proporcionan una visión general sólida pero comprensible del papel de la teoría de tipos en el diseño del lenguaje de programación, junto con el uso de la semántica operativa para expresar la semántica del lenguaje de programación.
fuente
Desigualdades:
Otro libro valioso para cualquier persona en ciencias de la computación que quiera vincular cualquier cantidad (¡así, todos!) Es: La Clase Magistral Cauchy-Schwarz: Una Introducción al Arte de las Desigualdades Matemáticas por Michael Steele.
Un libro enciclopédico sobre el tema es Un diccionario de desigualdades . Si bien este no es un libro para leer de principio a fin, es bueno tenerlo a su disposición. Ver también el suplemento del libro.
Además, Wikipedia tiene una excelente lista de desigualdades .
Para temas específicos, puede consultar:
fuente
Interesante. Nadie mencionó volúmenes de El arte de la programación de computadoras por Donald E. Knuth . Un tratamiento muy detallado de temas con muy buenos ejercicios.
Encontré gemas como 'muestreo de resorvoir' en este libro solo por mencionar un ejemplo.
fuente
Como Sylvain Peyronnet ya mencionó, la lógica es una parte importante de la informática teórica. Sin embargo, no es suficiente aprender lógica de los libros de texto diseñados para matemáticos puros. En otras palabras, también es importante aprender lógica desde una perspectiva más "informática".
Teoría de modelo finito
Queremos aprender técnicas que se ocupen de estructuras finitas. Es bien sabido que muchas herramientas tradicionales de la teoría de modelos, por ejemplo, la compacidad y el teorema de Löwenheim-Skolem, no son aplicables a los modelos finitos. Esto nos lleva al estudio de la teoría de modelos finitos . Para esta área, recomiendo los siguientes excelentes libros:
Una subárea de la teoría de modelos finitos es la complejidad descriptiva , donde queremos caracterizar las clases de complejidad por el tipo de lógica necesaria para definir los lenguajes. La referencia definitiva para la complejidad descriptiva es:
Complejidad de prueba
Otra área importante de la lógica en informática es la complejidad de la prueba , un estudio de la relación de tres vías entre las clases de complejidad, los sistemas lógicos débiles y el sistema de prueba proposicional. Se consideran los siguientes dos aspectos relacionados: (i) la complejidad de las pruebas de fórmulas proposicionales, y (ii) el estudio de teorías débiles de la aritmética, llamada aritmética acotada .
El aspecto (i) tiene que ver con la siguiente pregunta: "¿Existe un sistema de prueba proposicional en el que cada tautología tiene una prueba de polinomio de tamaño en el tamaño de la tautología?"
Para encuestas excelentes sobre la complejidad de la prueba, recomiendo los siguientes dos libros:
El libro de Krajíček es un poco más desafiante ya que asumió que los lectores ya están familiarizados con la lógica matemática y la teoría de modelos (o lo suficientemente dispuestos a aprender los antecedentes necesarios en el camino). Pero aprenderá mucho leyendo y entendiendo este libro.
fuente
Algoritmos Aleatorios:
Probabilidad e informática: algoritmos aleatorios y análisis probabilístico por Michael Mitzenmacher y Eli Upfal.
Gran libro para explicar los conceptos básicos de los algoritmos aleatorios. Los ejemplos y las pruebas se explican muy claramente y son fáciles de seguir. Además, los ejercicios son muy divertidos de hacer.
(respondida por Marcos Villagra)
Análisis de algoritmos aleatorizados:
Cualquier persona que trabaje en algoritmos debe tener Concentración de medida para el análisis de algoritmos aleatorios , que también está disponible para descargar en formato PDF aquí .
fuente
Criptografía:
El libro de dos volúmenes Fundamentos de la criptografía de Oded Goldreich ( Volumen 1: Herramientas básicas y Volumen 2: Aplicaciones básicas ) es un excelente libro sobre el tema. (Los primeros borradores están disponibles en la página de inicio del autor ). También está disponible una versión abreviada de este libro.
Otro excelente libro es Introducción a la criptografía moderna: Principios y protocolos de Katz & Lindell.
Para aquellos interesados en los antecedentes matemáticos de la criptografía, una introducción a la criptografía matemática por Hoffstein et al. Es la elección natural.
Otros libros excelentes son:
Temas Específicos:
fuente
Programacion Funcional
fuente
Algoritmos de aproximación
El libro Algoritmos de aproximación de Vazirani es el mejor libro sobre el tema. Otro libro es Algoritmos de aproximación para problemas NP-difíciles de Hochbaum.
Aquí hay comparaciones de dos revisores:
y
Un libro reciente es El diseño de algoritmos de aproximación de Williamson y Shmoys.
fuente
Combinatoria
Libros introductorios. Cualquiera de los siguientes libros puede servir como una excelente introducción al tema:
Textos más avanzados.
fuente
Combinatoria
Quiero citar Analytics Combinatorics , de Philippe Flajolet y Robert Sedgewick. Proporciona una sólida base matemática para la enumeración y el análisis de algoritmos. También quiero rendir homenaje a Philippe Flajolet, quien murió hace dos días y fue un gran matemático e informático.
fuente
Verificación del programa
fuente
Teoría de la información
Teoría de la información, inferencia y algoritmos de aprendizaje por David MacKay
Otros libros de texto famosos sobre teoría de la información se pueden encontrar en Wikipedia .
fuente
Algoritmos distribuidos
Algoritmos distribuidos por Nancy Lynch Este es un texto clásico escrito por un pionero de la computación distribuida;
Introducción a los algoritmos distribuidos por Gerard Tel Muy buena introducción, también adecuada para cursos de pregrado; centrado en el modelo de transmisión de mensajes
Computación distribuida: fundamentos, simulaciones y temas avanzados por Hagit Attiya y Jennifer Welch Contiene materiales avanzados, adecuados para cursos de nivel de doctorado; se discuten los modelos de paso de mensajes y de memoria compartida
Diseño y análisis de algoritmos distribuidos Por Nicola Santoro Un libro relativamente reciente, puede usarse tanto a nivel de pregrado como de doctorado; los materiales se presentan con énfasis en el diseño del protocolo
fuente
Computación cuántica
Computación cuántica e información cuántica de Nielsen y Chuang , es un gran libro de referencia , ideal para aquellos que desean investigar en el campo. Sin embargo, para empezar, es difícil aprender, y definitivamente no es para autoaprendices. Como el libro carece de ejemplos trabajados, sugiero el siguiente libro:
Problemas y soluciones en computación cuántica e información cuántica por Steeb & Hardy . Este libro incluye muchos ejemplos, pero aún no es para el principiante absoluto. Para empezar, se sugiere el siguiente libro:
Computación cuántica desde Demócrito por Scott Aaronson . Un tour-de-force de mucho más que la computación cuántica, con relaciones con la física, la filosofía, etc.
Otros dos excelentes libros introductorios sobre el tema son:
fuente
Mejoramiento
Me gustó Cuando menos es mejor de Paul Nahin .
Esencialmente, una linda historia de optimización a través de problemas y personalidades. Hay una buena revisión en las páginas 32-36 en una de las columnas de Bill Gasarch.
fuente
Complejidad de comunicación:
Complejidad de comunicación de Eyal Kushilevitz y Noam Nisan.
Este es un libro clásico y muy bien escrito. Aunque ya es un poco viejo, sigue siendo el mejor libro de introducción al campo. Además, los ejercicios son extremadamente divertidos y se dan exactamente después de explicar los conceptos para que pueda arreglar lo que acaba de aprender.
La parte de la complejidad de la comunicación aleatoria debe complementarse con partes del primer libro.
Complejidad de la comunicación y computación paralela por Juraj Hromkovič.
Muy completo, aunque a veces un poco difícil de leer. Las explicaciones intuitivas son muy claras y muy buenos ejercicios. En la segunda parte presenta las conexiones a la computación paralela.
fuente
Los libros de Matousek & Chazelle sobre Discrepancy son excelentes.
Casi todos los libros de Matousek , de hecho, vale la pena leerlos hasta cierto punto.
Los libros de Douglas West sobre teoría de grafos ( [1] y [2] ) son buenos.
fuente
Álgebra Computacional
Como Shiva dijo en esta respuesta , la literatura en este campo está dispersa por todo el lugar, sin terminologías comunes. Se pueden encontrar referencias útiles buscando "cálculo simbólico", "teoría de la complejidad algebraica", "álgebra computacional" o "álgebra computacional". Como se sugiere en las respuestas a esta pregunta ,
Análisis computacional
Un campo interesante también, que se ocupa de los cálculos en funciones reales. También conocido como "análisis computable" o "cálculo computable".
fuente
Combinatoria
La función de generación , de Herbert S. Wilf, es una excelente introducción a la teoría de las funciones generadoras, escrita de manera fluida y llena de ejercicios. Si él escribe todos sus libros así, no puedo esperar para comenzar con otro.
Enumerative Combinatorics de Richard Stanley es una gran referencia (avanzada).
Combinatoria: temas, técnicas, algoritmos de Peter Cameron e Invitación a las Matemáticas Discretas de Matousek y Nesetril son buenas introducciones a la combinatoria.
La combinatoria aplicada de Roberts y Tesman es una referencia enciclopédica sobre combinatoria aplicada.
fuente
Lógica:
Esta es una literal de mi respuesta a esta pregunta .
El conocimiento de la lógica matemática básica es, en mi opinión, una ventaja. Puedes echar un vistazo a los dos libros de Cori y Lascar.
Lógica Matemática: Un Curso con Ejercicios Parte I
Lógica Matemática: Un Curso con Ejercicios Parte II
fuente
Escritura lógica / de prueba:
fuente
Teoría de los números
Encontré varios libros frecuentemente citados en muchos periódicos. Son excelentes en el tema, pero algunos de ellos son bastante viejos. Aquí hay una lista de lo que recuerdo:
fuente
Hipergrafías
No hay muchos libros dedicados exclusivamente a las hipergrafías. Uno de esos libros es
Berge C. Hipergrafías: combinatoria de conjuntos finitos .
fuente
Teoría de la prueba
El libro de Troelstra y Schwichtenberg Basic Proof Theory es el texto de facto sobre el tema ahora.
Las pruebas y tipos de Girard, Taylor & LaFont son un libro más corto sobre el tema, y una versión del mismo está disponible para su descarga en http://www.paultaylor.eu/stable/Proofs%2BTypes.html
fuente
Teoría de grafos
Para la introducción a la teoría de grafos: Introducción a la teoría de grafos de West
Más sobre teoría de grafos: Teoría de grafos de Bondy y Murty
El libro completo que contiene nuevos desarrollos, así como antiguos resultados clásicos en teoría de grafos:
Teoría de grafos: Reinhard Diestel .
Para gráficos en superficies con enfoque combinatorio:
Gráficos en superficies
Y para los dígrafos:
Dígrafos: teoría, algoritmos y aplicaciones
fuente
Diseño VLSI
No estoy en el hardware. Sin embargo, como las preguntas frecuentes incluyen VLSI como uno de los subcampos de TCS, le pregunté a un experto sobre libros famosos en el diseño de VLSI. Aquí están:
fuente