Quali documenti dovrebbero leggere tutti?


454

Questa domanda è (ispirata a) / (vergognosamente rubata da) una domanda simile a MathOverflow , ma mi aspetto che le risposte qui siano piuttosto diverse.

Tutti noi abbiamo articoli preferiti nelle nostre rispettive aree di teoria. Di tanto in tanto, si trova un documento così sorprendente (ad esempio, importante, avvincente, ingannevolmente semplice, ecc.) Che si desidera condividerlo con tutti. Quindi elenca questi documenti qui! Non devono provenire dall'informatica teorica, tutto ciò che pensi possa fare appello alla comunità è una buona risposta.

Puoi dare tutte le risposte che vuoi; per favore, metti un foglio per risposta ! Inoltre, nota che questo è wiki della community, quindi vota tutto quello che ti piace!

(Nota che c'è stata una domanda precedente sugli articoli nella complessità teorica della ricorsione, ma che è piuttosto specializzata.)


65
Nelle risposte, vorrei vedere più enfasi sul fatto che sia davvero una buona idea leggere il documento originale al giorno d'oggi (o se ha molto più senso leggere una sua moderna esposizione da manuale). Ho visto troppo spesso articoli di TCS che sono veramente fondamentali, ma preferirei salvare i miei colleghi dal dolore di provare a decifrare la scrittura originale - che è troppo spesso un estratto di una conferenza di 10 pagine scritto in fretta, con riferimenti a una "versione completa" che non è mai apparsa ...
Jukka Suomela,

7
Sì, spero che sia chiaro che documenti di questo tipo non fanno bene alla lista (se vuoi condividerlo con tutti, non dovrebbe essere una seccatura da leggere)
Ryan Williams

30
Troppe persone stanno solo pubblicando una riga. Chiunque può pubblicare centinaia di documenti unici senza pensarci. Per favore pubblica perché pensi che tutti dovrebbero leggere quei documenti. Ciò significa giustificare il motivo per cui dovrebbero leggere quel documento invece di qualcun altro scrivere di quel risultato e cosa c'è di così straordinario nel documento che tutti dovrebbero leggerlo.
Robin Kothari,

Buona domanda. La mia opinione è che se vuoi capire le menti degli inventori e possibilmente capire come inventare le cose, devi leggere le loro stesse parole. Più lavori, più ti avvicini al loro effettivo processo di pensiero.
ixtmixilix,

Risposte:



145

Il documento del 1936 che probabilmente iniziò l'informatica stessa:

  • Alan Turing, "Sui numeri calcolabili, con un'applicazione al problema Entscheidungs", Atti della London Mathematical Society s2-42, 230–265, 1937. doi: 10.1112 / plms / s2-42.1.230

In sole 36 pagine, Turing formula (ma non nomina) la Turing Machine, riformula il famoso primo teorema di incompletezza di Gödel in termini di calcolo, descrive il concetto di universalità e nell'appendice mostra che la calcolabilità delle macchine di Turing equivale alla calcolabilità di - funzioni definibili (come studiato da Church e Kleene).λ


7
È anche molto accessibile e leggibile ...
Sariel Har-Peled,

25
e con esso The Annotated Turing di Charles Petzold [Altamente raccomandato]
Pratik Deoghare


123

" Reflections on Trusting Trust " di Ken Thompson . Breve, dolce e strabiliante.


5
Inoltre, molto accessibile. L'ho letto un po 'di tempo fa, quando praticamente non avevo un background CS, nessuna esperienza di programmazione e non sapevo nemmeno cosa fosse un compilatore.
Jörg W Mittag,

1
"La scorsa settimana, il googler Ken Thompson ha ricevuto il premio giapponese per l'informazione e le comunicazioni per i suoi primi lavori sul sistema operativo UNIX." (src: Buzz post di Life at Google)
Sebastián Grignoli,

4
Penso che questo documento sarebbe piuttosto difficile da digerire senza almeno sapere cos'è un compilatore.
Fixee,

2
Nel documento, penso che le figure 2.1 e 2.2 vengano scambiate.
Dennis,

1
Non sono d'accordo - niente di eccezionale o sconvolgente in questo documento. TL; DR 6 pagine della metà degli anni '80 sul "bisogno di cambiare il codice penale per iniziare a punire gli hacker [proprio come ladri o ladri]". Oh sì, menziona un quine , senza chiamarlo per nome.
c69,

94

Ciò che ogni scienziato informatico dovrebbe sapere sull'aritmetica a virgola mobile

Questo documento spiega e rafforza l'idea che il virgola mobile non sia magico. Spiega overflow, underflow, quali sono i numeri denormalizzati, quali NaN sono, che cos'è inf e tutte le cose che ciò implica. Dopo aver letto questo articolo, saprai perché a == a + 1.0 può essere vero, perché a == a può essere falso, perché eseguire il codice su due macchine diverse può darti due risposte diverse, perché sommare i numeri in un diverso l'ordine può darti un ordine di differenza di grandezza e tutte le cose stravaganti che accadono nel mondo della mappatura di un insieme infinito di numeri infiniti su un insieme numerabile finito.

Una versione modificata è disponibile anche sul Web.


3
Per favore, correggi il link. È rotto.
Oscar Mederos,

1
Da quando Oracle ha acquisito Sun, ha rovinato la maggior parte dei collegamenti dalla pagina Web di Sun. Sebbene sia possibile raggiungere il documento originale da qui .
systemfault,


1
Risolto il problema con il collegamento interrotto.
Ryan,

85

Come leggere un documento di Keshav . Puoi anche scaricare il documento da qui .


Bella lettura davvero.
Anthony Labarre,

Penso sempre che i documenti di ricerca CS siano scritti in una lingua straniera.
Berlin Brown,

3
Molto bene! Vale la pena di essere messo sul banner tagline sul sito per essere sicuri che nessuno studente lo perda.
Vag,

Il secondo collegamento è attualmente interrotto
Christopher Manning il

2
Questo è il mio preferito dalla lista. Si noti inoltre che questo è un documento vivente, a differenza della maggior parte degli articoli che non ricevono aggiornamenti dopo essere stati pubblicati.
Dennis,

67

Percorsi, alberi e fiori di J. Edmonds. Questo articolo sul classico problema di ottimizzazione combinatoria non è solo ben scritto, ma afferma anche che la nozione di "algoritmi del tempo polinomiale" è essenzialmente sinonimo di efficienza.


61

Riducibilità tra i problemi combinatori di Richard Karp. L'articolo contiene quelli che vengono spesso definiti i "problemi originali 21 NP completi di Karp". In molti modi, questo documento ha motivato veramente lo studio della completezza NP dimostrando la sua applicabilità a un dominio più ampio. Molto leggibile


6
Mi piace questo articolo, ma alcune riduzioni sono davvero imprecise e difficili da seguire. Vedi qualsiasi testo di complessità per maggiori dettagli.
András Salamon,

2
@Andras Salamon Sono d'accordo al 100%.
Tayfun paga il

52

Hartmanis e Stearns, "Sulla complessità computazionale degli algoritmi" , Transactions of the American Mathematical Society 117: 285–306 (1965)

Questo è stato il primo documento che ha preso sul serio lo studio della complessità temporale, e sicuramente è stato l'impulso principale per il premio congiunto Turing di Hartmanis e Stearns. Mentre le loro definizioni iniziali non sono esattamente ciò che usiamo oggi, il documento rimane estremamente leggibile. Hai davvero la sensazione di come fossero le cose nella vecchia frontiera "Wild West" degli anni '60.



51

Quantum Mechanical Computers (PDF) di Richard Feynman.

Introduce l'idea del calcolo quantistico, descrive i circuiti quantistici, spiega come i circuiti classici possono essere simulati dai circuiti quantistici e mostra come i circuiti quantistici possono calcolare le funzioni senza molti qubit di immondizia (usando la non-computazione).

Quindi mostra come qualsiasi circuito classico può essere codificato in un Hamiltoniano indipendente dal tempo! La sua prova è valida anche per i circuiti quantistici, dimostrando quindi che il tempo in evoluzione degli hamiltoniani è difficile dal BQP! La sua costruzione hamiltoniana è anche usata nella dimostrazione della versione quantistica del teorema di Cook-Levin, dimostrata da Kitaev, che dimostra che l'hamiltoniano k-local è completo di QMA.


Il link non è valido Hai un'altra fonte? modifica> Ricerca su google: wjzeng.net/Ref/Feynman_QuantumMechanicalComputers.pdf È questo?
Klaim,

È lui. Ho aggiunto un nuovo collegamento e un collegamento alla relativa pagina sul sito Web dell'editore.
Robin Kothari,

Esistevano le nozioni di BQP e QMA quando Feynman scrisse questo articolo? O c'è un recente documento che disegna questa connessione? Qualche riferimento / esposizione di questo fatto che k-local Hamiltonian è QMA completo?
Anirbit

48

I grafici degli espansori e le loro applicazioni, S. Hoory, N. Linial e A. Wigderson sono un bellissimo sondaggio sui grafici degli espansori. Non sorprende che abbia vinto il premio AMS Conant del 2008.

Voglio ricordare che i grafici di espansione sono l'ingrediente chiave nelle recenti scoperte nel TCS, ad es.

e non così recente:


1
Dovresti cercare precondizionatori combinatori o di supporto. I grafici di Expander sono persino usati oggi nell'analisi numerica.
shuhalo,


44

Sono sorpreso che nessuno abbia escogitato "Some Optimal Inapproximability Results" di Hastad (JACM 2001; originariamente STOC 1997). Questo documento di riferimento è stato scritto così bene, che puoi arrivarci con poco più che maturità matematica e ti farà desiderare di imparare diverse cose bene, come le sue tecniche di Fourier, la ripetizione parallela, i gadget e quant'altro.


44

O((logN)3)O(exp((649b)13(logb)23))


42

The Valory of the Learnable (1984) di Les Valiant ha fissato l'agenda della teoria dell'apprendimento per decenni, ed è un documento piacevole e leggibile!

C'è anche un po 'di spiegazione intuitiva nel documento che lo rende divertente e avvincente. Varie parti di questo documento sono ancora regolarmente citate nei colloqui COLT / ALT.




37

La complessità delle procedure di dimostrazione di teoremi di Stephen A. Cook. Questo documento dimostra che tutte le lingue decise dalle macchine turing non deterministiche di Polytime possono essere (Cook-) ridotte all'insieme delle tautologie proposizionali.

L'importanza di questo risultato è (almeno) duplice: in primo luogo, mostra che esistono in NP problemi che sono almeno tanto difficili quanto l'intera classe, i problemi NP completi; inoltre, fornisce un esempio concreto di tale problema, che può quindi essere ridotto ad altri per dimostrarli completi.

Oggi le riduzioni di Karp sono più comunemente usate delle riduzioni di Cook, ma la prova principale di questo documento può essere facilmente adattata per dimostrare che SAT è NP- completo rispetto alle riduzioni di Karp.


7
Questo è uno di quegli articoli per conferenze per i quali non è mai apparsa alcuna versione di giornale, ma vale sicuramente la pena di tornare a questo: ben scritto e pieno di grandi commenti collaterali.
András Salamon,


36

CAR Hoare, una base assiomatica per la programmazione informatica .

Dall'abstract: in questo articolo si tenta di esplorare le basi logiche della programmazione informatica utilizzando tecniche che sono state applicate per la prima volta nello studio della geometria e successivamente sono state estese ad altri rami della matematica.

Ha sei pagine che sono abbastanza facili da seguire.


34

Alon, Matias e Szegedy, La complessità spaziale dell'approssimazione dei momenti di frequenza , JCSS 58 (1): 137-147, 1999.

Questo documento piuttosto magico è stato il primo a formalizzare algoritmi di streaming e dimostrare limiti superiori e inferiori rigorosi per le attività di base nel modello di streaming. Le sue tecniche sono semplici, le sue prove sono meravigliose e il suo impatto è stato profondo. Il lavoro ha vinto Alon, Matias e Szegedy il premio Gödel nel 2005.


dang. Stavo per aggiungere questo :)
Suresh Venkat,

30

Il documento di Immerman che dimostra il teorema ora noto come teorema di Immerman – Szelepcsényi, è un ottimo esempio di documento di facile lettura, intelligente e breve. Adoro la storia raccontata nell'introduzione.

N. Immerman, lo spazio non deterministico è chiuso sotto integrazione, SIAM Journal on Computing 17, 1988, pagg. 935-938.


1
Ad essere onesti, l'articolo di Szelepcsényi, "Il metodo di enumerazione forzata per automi non deterministici", è altrettanto bello.
Lev Reyzin




24

Estrattori e generatori pseudocasuali di Luca Trevisan. In questo documento un buon estrattore di casualità è costruito per mezzo di codici di correzione degli errori e disegni combinatori. La costruzione è abbastanza facile da capire ma è assolutamente sbalorditiva, perché non è affatto evidente quale sia la connessione tra estrattori, codici e progetti.

Dopotutto, è un buon esempio di risultato in TCS che richiede una combinazione combinatoria.


24

Come scrivere una prova , di Leslie Lamport.


5
Ho letto questo e ho letto A Mathematician's Lament di Lockhart ( maa.org/devlin/LockhartsLament.pdf ). IMHO Credo che la strategia suggerita da Lamport sia contraria a quanto sostiene Lockhart sulla bellezza della matematica.
Marcos Villagra,

5
Lettura molto interessante. Capisco la tua opinione, ma se non sbaglio, Lamport punta il suo messaggio verso le persone che sono più "educate matematicamente" rispetto a quelle prese di mira da Lockhart, che mira ad aiutare gli studenti a sviluppare un gusto per la matematica. Devo anche ammettere che seguire un formato rigoroso rende le prove piuttosto noiose da leggere, ma concordo con Lamport sull'idea delle prove per livelli: non sempre vuoi / hai bisogno / hai tempo di leggere tutto in dettaglio, e anche quando fare, avere un riassunto di ciò che verrà può essere molto utile. Molto più di quelli "facili da vedere / chiaramente / wlog / ..." ;-)
Anthony Labarre,


19

Se potessi citare Sarah Palin su questo tema: "Tutti loro".

Più seriamente, penso che la maggior parte dei documenti non dovrebbe essere letta nell'originale. Col passare del tempo le persone escogitano un modo migliore per comprendere e presentare il problema / soluzione originale. Ad eccezione del documento originale di Turing, che è di importanza storica, non consiglierei di leggere la maggior parte dei documenti originali se ci fosse un lavoro di follow-up che lo ripulisse. In particolare, molte cose sono presentate molto meglio nei libri che nell'originale.


16
Questo commento è vero in generale, ma Ryan chiede esplicitamente esempi per i quali ciò non è vero. Ci sono molti documenti classici che contengono congetture non ancora provate, tecniche che sono state trascurate o risultati che tendono ad essere dimenticati ma che potrebbero essere rispolverati e usati per nuovi usi.
András Salamon,

12
Non sono d'accordo. È vero che i documenti originali a volte sono illeggibili e le opere secondarie offrono una migliore esposizione dei risultati, ma a volte i documenti originali contengono idee che sono state omesse nelle opere successive. Anche leggere articoli originali può insegnarci come l'autore ha avuto l'idea. Dai un'occhiata a questo post di Timothy Chow su MO: mathoverflow.net/questions/28268/do-you-read-the-masters
Kaveh

4
È fantastico quando questo accade. Dico solo che è un po 'raro.
Sariel Har-Peled,

6
Dici "Tutti", ma non discuti per "Nessuno di loro"?
Peter Taylor,

2
@Peter Taylor, penso sia per questo che Sarah è menzionata. :)
Radu GRIGore,

18

Chomsky analizza come i modelli matematici possono essere usati per descrivere il linguaggio naturale, da un punto di vista linguistico.


3
A proposito, non sto sostenendo questo documento, solo modificato per correggere errori di battitura e aggiungere un collegamento. Preferisco la carta di Gold se si desidera una carta classica sulla lingua.
András Salamon,

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.