Che tipo di background matematico è necessario per la teoria della complessità?


79

Sono attualmente uno studente universitario, destinato a laurearsi quest'anno. Dopo la laurea, sto pensando di lavorare per un master / dottorato di ricerca in TCS. Ho iniziato a chiedermi quali campi della matematica siano considerati utili per la TCS, in particolare la teoria della complessità (classica).

Quali campi ritieni essenziali per qualcuno che vuole studiare la teoria della complessità? Conosci qualche buon libro di testo che copra questi campi e, in caso affermativo, includi il loro livello di difficoltà (introduttivo, laureato ecc.).

Se consideri un campo che non è molto utilizzato nella teoria della complessità ma lo consideri critico per TCS, ti preghiamo di fare riferimento anche a questo.


14
Ti consiglierei di iniziare a leggere un testo standard sulla teoria della complessità, come Arora / Barak o Papadimitriou, e ogni volta che rimani bloccato perché non capisci la matematica, prova ad imparare la matematica associata in qualche dettaglio prima di procedere.
Robin Kothari,

8
Dopo aver fatto ciò che Robin ha suggerito, inizia a lavorare su alcuni piccoli problemi aperti. Ti sentirai stimolato ad apprendere la matematica che sta dietro. Come studente laureato, non trovo molto efficace imparare un campo matematico solo per motivi di apprendimento.
Alessandro Cosentino,

Risposte:


53

Se guardi le risposte a questa domanda TCEx StackExchange , vedrai che esiste una possibilità che praticamente qualsiasi area della matematica possa essere importante nella teoria della complessità. Quindi, se sei veramente interessato ad un'area della matematica che non sembra essere correlata, vai avanti e studia comunque. Se mai diventasse rilevante per la teoria della complessità, sarai uno dei pochi teorici della complessità a capirla.


20
Questa risposta non significa che non dovresti studiare i campi che sappiamo siano correlati (vedi le altre risposte). Direi che includono l'algebra lineare, la teoria dei grafi, la teoria della probabilità, l'algebra astratta di base e la logica di base.
Peter Shor,

6
Naturalmente, se vuoi fare qualcosa come contribuire al programma di Mulmuley per dimostrare P NP, hai bisogno di molta, molta, molta più matematica di questa.
Peter Shor,

34

Dovresti aggiungere il libro di Dexter Kozen sulla teoria del calcolo al tuo elenco. Comprende le basi della teoria della complessità in modo molto efficace e il formato della lezione breve è eccezionale.

In termini di background matematico, oltre a quanto menzionato sopra:

  • Teoria della probabilità
  • Algebra lineare e algebra astratta
  • teoria dei grafi
  • logica di base

Non penso che tu debba essere un maestro di questi argomenti per iniziare, ma sicuramente aiuta ad avere un certo livello di comfort.


32

AC0

È (per quanto ne sappia) l'unico libro pubblicato che tratta in profondità il "metodo dell'algebra lineare in combinatoria" - uno strumento elegante e potente da conoscere. C'è una bozza di manoscritto di Babai e Frankl che va molto più in profondità, ma non è pubblicato o online:

https://cs.uchicago.edu/page/linear-algebra-methods-combinatorics-applications-geometry-and-computer-science


2
Allo stesso modo, voglio sottolineare la guida magnificamente scritta al metodo entropico, "Entropia e conteggio", di Jaikumar Radhakrishnan. Il metodo entropia è un altro di quegli strumenti slick che sono molto soddisfacenti da applicare quando si presenta l'occasione giusta.
arnab,

27

Le risposte precedenti elencavano già quelle di base: teoria della probabilità, combinatoria, algebra lineare, algebra astratta (campi finiti, teoria dei gruppi, ecc.).

Aggiungerei:

Analisi di Fourier , vedi, ad esempio, il corso di Ryan O'Donnel: http://www.cs.cmu.edu/~odonnell/boolean-analysis/

Teoria dei codici , vedi il corso di Madhu Sudan: http://people.csail.mit.edu/madhu/coding/course.html

Teoria dell'informazione , il libro standard è Elements of Information Theory: http://www.amazon.com/Elements-Information-Theory-Telecommunications-Processing/dp/0471241954

C'è anche teoria della rappresentazione, passeggiate casuali e molte altre che probabilmente dimenticherò ...


5
La maggior parte delle cose che impari mentre vai, a seconda di dove ti porta la ricerca / vita: dai corsi, dalle lezioni, dai collaboratori, dalle carte, ecc.
Dana Moshkovitz,

22

A parte le cose di base, probabilmente:

  • Combinatoria - Potresti ritrovarti a contare le cose abbastanza regolarmente
  • Stocastico - Per analisi di casi medi e algoritmi randomizzati

Mi piace Concrete Mathematics di Knuth. Fornisce una buona panoramica / conoscenza di base di molti strumenti importanti.

Se ti piace funzioni generazione (vedi generationfunctionology da Wilf) come uno strumento, analisi complessa è utile, anche.


Adoro Concrete Math, ma è un po 'esoterico. Consiglierei prima un libro più mainstream, come "Combinatorics" di Cameron.
Emil,

7
Ecco la mia impressione: Concrete Math sembra essere un libro fantastico per imparare a fare un'analisi esatta (o quasi esatta) degli algoritmi, il punto di forza di Knuth. Se è quello che vuoi fare, continua. Ma tieni presente che la maggior parte dei documenti di teoria della complessità fornisce limiti molto meno precisi, quindi le tecniche di CM sono meno rilevanti.
Andy Drucker,

1
Qualcuno potrebbe dire che ciò è dovuto al fatto che i teorici della complessità sono dei pigri barboni. Ma penso che sia perché (a) i limiti esatti possono essere uno sforzo maggiore di quanto non valga la pena, (b) spesso c'è un divario così ampio tra i limiti superiore e inferiore noti che piccoli perfezionamenti su entrambi i lati possono sembrare di scarso valore.
Andy Drucker,

Devo dire che ci sono tutti i tipi di cose interessanti nel libro - le mie osservazioni riguardano principalmente il materiale su soluzioni esatte di sommatoria e relazioni di ricorrenza.
Andy Drucker,

22

Sanjeev Arora ha un bel documento per un corso di laurea (per studenti del 1 ° anno) che ha insegnato chiamato "toolkit del teorico", che contiene molto del materiale di base che uno studente di teoria dovrebbe conoscere. Molte di queste cose puoi aspettare fino a quando la scuola di specializzazione non imparerà, ma ti darà una buona idea di ciò che devi sapere e di alcuni dei prerequisiti.


20

Un paradigma comune, sebbene certamente non universale, per molti ricercatori di successo nella comunità TCS è il seguente: Conoscere alcune basi a livello universitario, come logica, algebra lineare, probabilità, ottimizzazione, teoria dei grafi, combinatoria, algebra astratta di base. Oltre a ciò, non forzarti ad imparare nient'altro fino a quando non pensi davvero di averne bisogno per risolvere il problema con cui stai lottando da mesi, o se pensi che ti piacerebbe davvero imparare qualcosa per il gusto di farlo.

"Come faccio a sapere che ne ho bisogno se non l'ho mai visto prima?", Chiedi? Buona domanda. A volte sei fortunato e lo senti: "Sai cosa, questo sotto-problema sto cercando di affrontare suoni molto simili a quella cosa che trasformerà quattro volte, in cui Fred non starà zitto. Dovrò controllarlo o intrappolare Fred in una stanza e farmi dare una rapida occhiata alle basi. " Altre volte, intrappoli un gruppo di persone più consapevoli di te stesso in una stanza, dici dando un seminario o qualcosa del genere, e piagnucoli su come non puoi risolvere questo problema fino a quando Fred non interviene con "Ehi, scommetto che tu posso risolverlo con Fourier Analysis. Lascia che ti mostri come. " Alla fine, ottieni un documento congiunto con Fred, hai imparato qualcosa di nuovo, e tu e Fred siete i migliori amici ora e uscite a bere ogni altro sabato sera.


18

Penso che un elenco di campi matematici non utili sarebbe molto più breve di un elenco di campi che lo sono! Non riesco a pensare a nessuno.

Studia qualunque cosa la matematica sembri interessante e / o qualunque cosa sembri di cui hai bisogno al momento. Anche se non lo usi direttamente, ti aiuterà ad imparare altre cose che fai.


4
Secondo questa risposta. Qualunque sia la matematica che trovi più interessante, ti guiderà verso quali sono i problemi più interessanti e quelli che sei più adatto a risolvere.
Derrick Stolee,



9

La teoria dei numeri non è stata menzionata, ma è uno strumento molto importante per molte costruzioni crittografiche e teoriche della complessità.


6

La teoria della rappresentazione di gruppi finiti (anche su campi finiti) può essere sorprendentemente utile per vari compiti, tra cui:

  • algoritmi di moltiplicazione di matrici ( Cohn - Kleinberg-Szegedy-Umans )

  • costruzione di codici decodificabili localmente (vedi ad esempio questo articolo di Klim Efremenko)

  • applicazioni nell'informatica quantistica (Problema del sottogruppo nascosto per gruppi nonabeliani, metodo avversario moltiplicativo)

Sn


non dimenticare le costruzioni deterministiche dei grafici di espansione
Sasho Nikolov,

Intendi costruzioni algebriche usando la proprietà (T) a la Lubotzky? In quel caso, questo ha un sapore un po 'diverso rispetto agli esempi sopra (non usare insulti di gruppi finiti).
Marcin Kotowski,

4

Consiglio di leggere il libro di Garey e Johnson

Computer e intrattabilità: una guida alla teoria della completezza NP .

Questo può essere letto con pochissime basi matematiche. Penso che questo libro sia una gioia da leggere, e lo consiglierei come primo libro su Papadimitriou e Arora / Barak. Dopo aver letto questo, puoi immergerti negli altri libri e identificare vari pezzi di matematica necessari per comprendere gli argomenti avanzati a cui sei interessato.


1
Ho imparato la complessità da questo libro, ma lo trovo sbilanciato, con molti dettagli complicati ma alla fine non importanti, eppure manca di copertura su questioni importanti anche al momento della stesura del libro. D'altra parte, è occasionalmente un lavoro di riferimento importante. Al contrario, il testo di Kozen menzionato in un'altra risposta è chiaro, completo e moderno.
András Salamon,

1

Una volta il corso di laurea triennale CS464 (2002) presso UWaterloo CS utilizzava la complessità computazionale di Christos H. Papadimitriou , Addison-Wesley, 1994.

Gli argomenti di base elencati includono macchine di Turing, indecidibilità, complessità temporale e completezza NP.

Per lo sfondo, sfoglia la tua biblioteca vicino a QA267.G57 (Goddard's Introducing the theory of computation , basato su una breve lettura di skim o due e la sua disponibilità per me, sembra coprire il lato CS dello sfondo; ho la sensazione che alcuni set e gruppi sarebbe utile anche la teoria della matematica pura.)


2
Vorrei avere abbastanza reputazione per votare verso il basso. Perché quei riferimenti a un'università e alla sua biblioteca?
Alessandro Cosentino,

2
FWIW, QA267.G57 è un numero di chiamata della Library of Congress, che è uno standard di libreria ampiamente utilizzato. Non è specifico per l'Università di Waterloo (tranne forse per le cifre finali).
Emil Jeřábek,
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.