Dove saperne di più su cos'è l'informatica teorica?


15

Sono uno studente laureato in matematica e l'informatica teorica è un dominio di cui non ho mai capito di cosa si tratta perché non sono riuscito a trovare una buona lettura sull'argomento. Voglio sapere di cosa tratta effettivamente questo dominio, di che tipo di argomenti tratta, quali prerequisiti sono necessari per intraprenderlo, ecc. Per ora, voglio solo sapere:

Che cos'è un buon libro introduttivo all'informatica teorica?

Dato che esiste una cosa del genere. Altrimenti, dove dovrebbe iniziare un matematico che abbia una conoscenza di base dell'informatica (cioè che conosca le basi di uno o due linguaggi di programmazione) se vuole capire di cosa tratta l'informatica teorica? Che cosa mi consiglia?

Grazie!


1
Ottima domanda Sono davvero in perdita. Il CS teorico è così ampio e diversificato, dubito che qualcuno abbia tentato di esaminare tutto in un unico posto. Ci sono libri introduttivi, come "Theory of Computation" di Sipser o "Algorithms" di Dasgupta, Papadimitriou e Vazirani. Ma quelli sono come prerequisiti per gli studenti universitari e non daranno un'idea di ciò che l'attuale TCS è "in realtà" ...
usul

6
La domanda è troppo ampia. Si potrebbe quindi anche chiedere: "Dove imparare di più su cos'è la matematica?". Si dovrebbero quindi esaminare i campi della TCS che sono vicini alla matematica, come la teoria della complessità, la crittografia, l'approssimazione. Supponiamo che la complessità del circuito sia solo una parte della Combinatoria Estrema. Il libro di Sipser è davvero eccezionale: è una visione dei matematici al TCS (una piccola parte di esso, inutile dirlo); Lo stesso Sipser è in realtà un matematico.
Stasys,

2
L'imminente testo di Avi Wigderson è una grande risorsa: math.ias.edu/avi/book
András Salamon,

Risposte:


29

In primo luogo, "informatica teorica" ​​significa cose diverse per persone diverse. Penso che per la maggior parte degli utenti su questo sito, una caricatura storica (che riflette alcune tendenze sociologiche moderne) è che ci sono "Teoria A" e "Teoria B" (senza alcuna relazione di ordine implicito tra di loro): La teoria A consiste nella teoria di algoritmi, teoria della complessità, crittografia e simili. La teoria B consiste di cose come la teoria dei linguaggi di programmazione, la teoria degli automi, ecc. A seconda dei tuoi gusti in matematica, potresti preferire l'uno all'altro (o come entrambi allo stesso modo). Ho più familiarità con "Teoria A", quindi lasciatemi dare alcuni riferimenti lì:

  • Inizia con il libro di Sipser. Questo ti darà una buona introduzione ad automi, macchine di Turing, calcolabilità, complessità di Kolmogorov, P vs NP e alcune altre classi di complessità. È scritto molto bene (secondo me è uno dei libri tecnici meglio scritti di sempre )

  • Per gli algoritmi, ho una leggera preferenza per Kleinberg-Tardos, ma ci sono molti buoni libri introduttivi là fuori. Potresti essere particolarmente interessato alla geometria computazionale, che ha il suo set di grandi libri.

  • Dato che sei uno studente laureato in matematica, una delle principali branche della TCS che manca a questi libri è la teoria della complessità algebrica , che spesso è strettamente correlata all'algebra (sia commutativa che non commutativa), teoria della rappresentazione, teoria dei gruppi e geometria algebrica . C'è un testo canonico qui, che è Burgisser-Clausen-Shokrollahi. È un po 'enciclopedico, quindi potrebbe non essere la migliore introduzione, ma non ne sono sicuro sia un libro davvero introduttivo in questo settore. Potresti anche dare un'occhiata ai sondaggi di Chen-Kayal-Wigderson e Shiplka-Yehudayoff.

Successivamente, suggerirei di sfogliare libri più avanzati su argomenti specifici, a seconda dei tuoi gusti matematici:

  • Arora-Barak è la teoria della complessità più moderna (continua su dove finisce il libro di Sipser, per così dire), dandoti un assaggio delle tecniche coinvolte (mix di combinatoria e algebra, per lo più)

  • Il libro di Jukna sulla complessità della funzione booleana è simile, ma più approfondito in particolare per la complessità del circuito booleano (molto combinatoria nel sapore)

  • Teoria della complessità geometrica. Vedi qui o l'introduzione di Landsberg per i geometri .

  • Il libro di O'Donnell Analisi delle funzioni booleane ha una tendenza più analitica di Fourier.

  • Crittografia. Gli aspetti matematici più avanzati qui sono in genere teoria dei numeri e geometria algebrica. Mentre questi aspetti matematici puri rappresentano solo una piccola parte della crittografia, sono importanti che potresti trovare interessanti. Non essendo la mia zona, non sono sicuro di cosa sia un buon libro di partenza.

  • Teoria dei codici. Qui, la teoria matematica spazia dall'imballaggio di sfere (vedi il libro di Conway e Sloane) alla geometria algebrica (ad esempio, il libro di Stichtenoth). Ancora una volta, non la mia area, quindi non sono sicuro che questi siano i migliori punti di partenza, ma sfogliandoli otterrai rapidamente il sapore e deciderai se vuoi approfondire.

E poi ci sono molti altri argomenti matematici che compaiono solo nella letteratura di ricerca, come connessioni con schiume, teoria dei grafi, algebre C * (lasciatemi solo indicare la congettura di Kadison-Singer ), teoria invariante, teoria della rappresentazione, quadrature, e ancora e ancora. Vedi anche queste domande correlate


2
Un buon libro di partenza per la crittografia è Introduzione alla crittografia moderna di Katz-Lindell: cs.umd.edu/~jkatz/imc.html - Un'opzione (più vecchia) alternativa è Foundations of Cryptography di Goldreich: wisdom.weizmann.ac.il /~oded/foc-book.html
Daniel Apon,

4

La natura del calcolo di Cristopher Moore e Stephan Mertens.


Io amo questo libro - non ho consiglio nella mia risposta per lo più per la sua lunghezza, anche se naturalmente si può sempre scegliere i capitoli da leggere.
Joshua Grochow,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.