¿Hay alguna referencia (en línea o en forma de libro) que organice y discuta los teoremas de TCS mediante la técnica de prueba? Garey y Johnson hacen esto para los diversos tipos de construcciones de widgets necesarios para las pruebas de integridad de NP (particularmente en el capítulo 3 de su libro), pero me pregunto si hay algo que trate las técnicas de prueba en TCS de manera más amplia.
Entonces, por ejemplo, los temas pueden incluir la diagonalización, desglosada por el tipo de construcción utilizada; pruebas por historiales de cómputo; construcciones de cuadros; argumentos de incompresibilidad, etc. Supongo que podría cortar una teoría estándar del texto de cómputo y reorganizar las secciones, pero sería genial si hay algo por ahí que también proporcione algunos comentarios adicionales y muestre dónde hay puntos en común entre las técnicas que están siendo usado.
Para ser claros, dado que cualquier texto va a usar pruebas, lo que realmente me interesa encontrar es una referencia donde las técnicas de prueba en sí sean el tema real.
Además del capítulo 3 de Garey y Johnson, aquí hay otro ejemplo parcial que se me acaba de ocurrir: en Li y Vitanyi , en el capítulo 6, discuten el método de incompresibilidad y dan ejemplos de cómo aplicar la técnica.
Respuestas:
The Complexity Theory Companion por Hemaspaandra y Ogihara . No es exhaustivo en términos de técnicas (imagino que tal libro no lo es), pero creo que califica como una respuesta a su pregunta. Aquí están los títulos de los capítulos:
fuente
Aquí hay otro libro donde los capítulos están más enfocados en técnicas de prueba.
"Combinatoria extrema con aplicaciones en informática", por Stasys Jukna. Es un buen libro y cubre una gran cantidad de combinatoria que puede necesitar en TCS. Por supuesto, su tema no incluye diagonalización, cuadros, etc., pero es una colección de técnicas combinadas ordenadas que buscan una aplicación (y en varios lugares del texto, las aplicaciones se detallan).
Un "primer borrador" de la segunda edición está disponible aquí .
fuente
Sanjeev Arora tiene un buen conjunto de notas que él llama "El juego de herramientas de un teórico"
fuente
El libro "Gemas de la informática teórica" es una buena manera de aprender muchas técnicas diferentes (aunque cada una de ellas se aplica solo una vez):
http://www.calvin.edu/~rpruim/publications/gems/
fuente
Hay un wiki dedicado a diferentes técnicas de prueba: http://www.tricki.org/ (parece estar inspirado en Timothy Gowers).
fuente
Otra técnica que es útil en muchas partes de la informática teórica:
Noga Alon y Joel H. Spencer, The Probabilistic Method (3rd edition), Wiley, ISBN 0470170204.
fuente
S. Fenner, L. Fortnow, S. Kurtz y L. Li. El juego de herramientas de un constructor de oráculo. Information and Computation, 182 (2): 95-136, 2003. (también disponible en la página de inicio de Lance ).
Este es básicamente un documento de encuesta sobre el uso de la genérica en la construcción de "oráculos de diseño" (es decir, oráculos diseñados para tener varias propiedades). Aunque es un documento, creo que califica como una respuesta a la pregunta porque se centra en la técnica y sus usos, en lugar de cualquier resultado en particular. [Pero esto es mucho más específico que el Complexity Theory Companion, por lo que pensé que debería estar en una respuesta separada].
fuente
Hemos comenzado algunas preguntas de referencia sobre cs.SE que cubren problemas TCS típicos (hasta ahora introductorios). Además de la relevancia general, algunas respuestas contienen métodos que pueden no ser conocidos por todos los investigadores, por ejemplo en estos:
También tenemos ¿Cómo no resolver P = NP? que es más sobre antitecnicas.
fuente
En el mismo espíritu de las notas de Sanjeev Arora que publicó @umar, me gustan las notas de clase y los ejercicios de Madhur Tulsiani para su clase "Mathematical Toolkit" publicada en la página web del curso . Además del excelente material de Arora, sus notas tienen una buena cobertura de la teoría de gráficos espectrales, así como del método de actualización de pesos multiplicativos.
fuente