Quel type d'arrière-plan mathématique est nécessaire pour la théorie de la complexité?


79

Je suis actuellement un étudiant de premier cycle, obligé d'obtenir un diplôme cette année. Après avoir obtenu mon diplôme, j’envisage d’obtenir un master / doctorat en sciences de la technologie. J'ai commencé à me demander quels domaines des mathématiques sont considérés comme utiles pour le SDC, en particulier la théorie de la complexité (classique).

Quels domaines considérez-vous comme essentiels pour quelqu'un qui veut étudier la théorie de la complexité? Connaissez-vous de bons manuels couvrant ces domaines et, dans l’affirmative, veuillez indiquer leur niveau de difficulté (débutant, diplômé, etc.).

Si vous considérez un domaine qui n'est pas fortement utilisé dans la théorie de la complexité mais que vous considérez comme critique pour le SDC, veuillez également le renvoyer.


14
Je vous recommande de commencer à lire un texte standard sur la théorie de la complexité, comme Arora / Barak ou Papadimitriou, et chaque fois que vous êtes bloqué parce que vous ne comprenez pas les calculs, essayez d’apprendre les détails des mathématiques associées avant de poursuivre.
Robin Kothari

8
Après avoir fait ce que Robin a suggéré, commencez à travailler sur quelques petits problèmes en suspens. Vous vous sentirez stimulé pour apprendre les mathématiques qui se cachent derrière. En tant qu'étudiant diplômé, je ne trouve pas très efficace d'apprendre un domaine mathématique juste pour apprendre.
Alessandro Cosentino

Réponses:


53

Si vous examinez les réponses à cette question de TCS StackExchange , vous verrez qu'il est possible que pratiquement tous les domaines des mathématiques jouent un rôle important dans la théorie de la complexité. Donc, si vous êtes vraiment intéressé par un domaine des mathématiques qui ne semble pas être lié, allez-y et étudiez-le quand même. Si cela devient un jour pertinent pour la théorie de la complexité, vous serez l’un des rares théoriciens de la complexité à la comprendre.


20
Cette réponse ne signifie pas que vous ne devriez pas étudier les domaines dont nous savons qu’ils sont liés (voir les autres réponses). Je dirais que ceux-ci incluent l'algèbre linéaire, la théorie des graphes, la théorie des probabilités, l'algèbre abstraite de base et la logique de base.
Peter Shor

6
Bien sûr, si vous voulez faire quelque chose comme contribuer au programme de démonstration de P NP de , vous avez besoin de beaucoup, beaucoup plus de mathématiques que cela.
Peter Shor

34

Vous devriez ajouter le livre de Dexter Kozen sur la théorie du calcul à votre liste. Couvre très efficacement les bases de la théorie de la complexité, et le format de conférence courte est excellent.

En termes de fond mathématique, en plus de ce qui est mentionné ci-dessus:

  • Théorie des probabilités
  • Algèbre linéaire et algèbre abstraite
  • la théorie des graphes
  • logique de base

Je ne pense pas que vous ayez besoin de maîtriser ces sujets pour commencer, mais il est certainement utile d’avoir un certain niveau de confort.


32

A C 0 Le livre Extremal Combinatorics , de Stasys Jukna, est trop peu connu de l’OMI au sein de la communauté de la complexité. C'est un grand ensemble de techniques combinatoires écrites en grande partie en vue de leurs applications dans le TCS (principalement la complexité). Un certain nombre de techniques de complexité importantes sont discutées dans leur contexte de combinatoire, y compris des résultats célèbres tels que des limites inférieures de circuits monotones et , mais également des résultats très intéressants que vous ne pourriez pas rencontrer autrement. Et il y a beaucoup d'exercices.AC0

C'est (à ma connaissance) le seul livre publié qui traite en profondeur de la méthode de l'algèbre linéaire en combinatoire - un outil simple et puissant à connaître. Il y a un projet de manuscrit de Babai et Frankl qui va beaucoup plus en profondeur, mais ce n'est pas publié ni en ligne:

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

Comme vous le savez probablement, la méthode probabiliste en combinatoire est très importante, voire centrale, dans la théorie de la complexité. Le livre de Jukna le couvre, mais il est traité plus en profondeur (avec beaucoup d'autres beaux exemples) par le célèbre livre de Alon and Spencer, The Probabilistic Method.


2
Dans le même ordre d'idées, je tiens à souligner le guide magnifiquement rédigé de la méthode de l'entropie "Entropy and Counting" de Jaikumar Radhakrishnan. La méthode de l'entropie est un autre de ces outils astucieux qui sont très satisfaisants à appliquer lorsque l'occasion se présente.
arnab

27

Les réponses précédentes indiquaient déjà les bases: théorie des probabilités, combinatoire, algèbre linéaire, algèbre abstraite (champs finis, théorie des groupes, etc.).

J'ajouterais:

Analyse de Fourier , voir par exemple le cours de Ryan O'Donnel: http://www.cs.cmu.edu/~odonnell/boolean-analysis/

Théorie du codage , voir le cours de Madhu Sudan: http://people.csail.mit.edu/madhu/coding/course.html

Théorie de l’information , le livre type est Elements of Information Theory: http://www.amazon.com/Elements-Information-Theory-Telecommunications-Processing/dp/0471241954

Il y a aussi la théorie de la représentation, des marches aléatoires et bien d'autres que j'oublie probablement ...


5
La plupart des choses que vous venez d'apprendre au fur et à mesure, en fonction du lieu de la recherche / de la vie: des cours, des conférences, des collaborateurs, des communications, etc.
Dana Moshkovitz

22

En dehors des choses de base, probablement:

  • Combinatoire - Vous pourriez vous retrouver à compter les choses assez régulièrement
  • Stochastics - Pour les analyses de cas moyennes et les algorithmes aléatoires

J'aime les mathématiques concrètes de Knuth. Il donne une bonne vue d'ensemble / connaissance de base de nombreux outils importants.

Si vous aimez générer des fonctions (voir generationfunctionology de Wilf) en tant qu’outil, une analyse complexe est également utile.


J'aime Concrete Math, mais c'est un peu ésotérique. Je recommanderais d'abord un livre plus traditionnel, comme "Combinatorics" de Cameron.
Emil

7
Voici mon impression - Concrete Math semble être un livre génial pour apprendre à analyser des algorithmes avec exactitude (ou presque), le point fort de Knuth. Si c'est ce que vous voulez faire, continuez. Mais sachez que la plupart des articles sur la théorie de la complexité donnent des limites beaucoup moins précises, de sorte que les techniques de CM sont moins pertinentes.
Andy Drucker

1
Certains pourraient dire que c'est parce que les théoriciens de la complexité sont des paresseux. Mais je pense que c’est parce que (a) les limites exactes peuvent demander plus d’efforts qu’elles ne valent la peine, (b) il existe souvent un écart tellement grand entre les limites supérieure et inférieure connues que de petites améliorations de chaque côté peuvent sembler sans grande valeur.
Andy Drucker

Je devrais dire, il y a toutes sortes de choses intéressantes dans le livre - mes remarques concernent principalement le matériel sur les solutions exactes des sommations et les relations de récurrence.
Andy Drucker

22

Sanjeev Arora a un beau document pour un cours de troisième cycle (pour les étudiants de 1ère année) qu'il a enseigné appelé "boîte à outils du théoricien", qui contient beaucoup de matériel de base qu'un étudiant en théorie devrait connaître. Vous pouvez attendre de nombreuses études supérieures pour apprendre beaucoup de ces choses, mais cela vous donnera une bonne idée de ce que vous devez savoir et de certaines conditions préalables.


20

Un paradigme commun, mais certainement pas universel, pour de nombreux chercheurs performants de la communauté TCS est le suivant: Connaître quelques notions de base au niveau du premier cycle, telles que la logique, l’algèbre linéaire, les probabilités, l’optimisation, la théorie des graphes, la combinatoire, l’algèbre abstraite de base. Au-delà de cela, ne vous forcez pas à apprendre autre chose avant de penser que vous en avez réellement besoin pour résoudre le problème avec lequel vous vous débattez depuis des mois ou si vous pensez que vous aimeriez vraiment apprendre quelque chose pour le plaisir de le faire.

"Comment puis-je savoir que j'en ai besoin si je ne l'ai jamais vu auparavant?", Demandez-vous? Bonne question. Parfois, vous avez de la chance et vous le sentez: "Vous savez quoi, ce sous-problème que je tente de résoudre ressemble beaucoup à ce truc de transformation de fourier, Fred ne se taira pas. Je vais devoir vérifier ou piéger Fred dans une pièce et faites-le me donner un aperçu rapide des bases. " D’autres fois, vous emprisonnez dans une pièce un groupe de personnes plus avisées que vous, disons en prononçant un discours dans un séminaire ou quelque chose du genre, et en gémissant sur le fait que vous ne pouvez pas résoudre ce problème avant que Fred ne sonne avec "Hey, je vous parie que vous peut résoudre cela avec l'analyse de Fourier. Laissez-moi vous montrer comment. " En fin de compte, vous obtenez un document commun avec Fred, vous avez appris quelque chose de nouveau et Fred et vous êtes maintenant vos meilleurs amis et sortez boire un verre tous les samedis soirs.


18

Je pense qu'une liste de champs de mathématiques qui ne sont pas utiles serait beaucoup plus courte qu'une liste de champs! Je ne peux pas penser à aucun.

Étudiez tout ce qui vous semble intéressant en mathématiques et / ou ce dont vous avez besoin pour le moment. Même si vous ne l'utilisez pas directement, cela vous aidera à apprendre d'autres choses que vous faites.


4
J'appuie cette réponse. Les mathématiques les plus intéressantes vous guideront vers les problèmes les plus intéressants et les problèmes que vous êtes bien à même de résoudre.
Derrick Stolee


12

Je recommande de jeter un oeil à ces livres:

De plus, les sujets de la conférence MFCS (Fondements mathématiques en informatique) peuvent vous indiquer le type de formation dont vous pourriez avoir besoin. (Mise en garde: la conférence comprend des sujets très avancés. Vous n'avez pas besoin de les maîtriser. Essayez simplement d'avoir une vue d'ensemble.)


9

La théorie des nombres n'a pas été mentionnée, mais c'est un outil très important pour de nombreuses constructions cryptographiques et théoriques de la complexité.


6

La théorie de la représentation des groupes finis (également sur des corps finis) peut être étonnamment utile pour diverses tâches, notamment:

  • algorithmes de multiplication matricielle ( Cohn - Kleinberg-Szegedy-Umans )

  • construire des codes décodables localement (voir par exemple cet article de Klim Efremenko)

  • applications en informatique quantique (problème de sous-groupe caché pour les groupes non-labeliens, méthode de l'adversaire multiplicatif)

Bien que, pour être honnête, la théorie de la représentation au niveau requis ci-dessus puisse être apprise en deux soirées (peut-être trois si vous voulez apprendre la théorie de la représentation du groupe symétrique ), vous ne devriez donc pas être obligé de l'apprendre à l'avance.Sn


n'oubliez pas les constructions déterministes des graphes de expandeurs
Sasho Nikolov

Vous voulez dire des constructions algébriques utilisant la propriété (T) a la Lubotzky? Dans ce cas, ceci a une saveur quelque peu différente de celle des exemples ci-dessus (n'utilisez pas d'irréfaction de groupes finis).
Marcin Kotowski

4

Je recommande de lire le livre de Garey et Johnson

Computers and Intractability: Guide de la théorie de la NP-complétude .

Cela peut être lu avec très peu de fond mathématique. Je pense que ce livre est un plaisir à lire, et je le recommanderais comme premier livre par rapport à Papadimitriou et Arora / Barak. Une fois que vous avez lu ceci, vous pouvez vous plonger dans les autres livres et identifier différentes mathématiques dont vous avez besoin pour comprendre les sujets avancés qui vous intéressent.


1
J'ai appris la complexité de ce livre, mais je le trouve déséquilibré, avec beaucoup de détails fastidieux mais finalement sans importance, mais il manque une couverture des problèmes importants même au moment de la rédaction du livre. En revanche, il s’agit parfois d’un ouvrage de référence important. En revanche, le texte de Kozen mentionné dans une autre réponse est clair, complet et moderne.
András Salamon

1

Il était une fois le cours de premier cycle CS464 (2002) à UWaterloo. CS utilisait la complexité informatique de Christos H. Papadimitriou , Addison-Wesley, 1994.

Les matières d'arrière-plan répertoriées incluent les machines de Turing, l'indécidabilité, la complexité temporelle et le caractère NP complet.

Pour vous renseigner, parcourez votre bibliothèque proche de QA267.G57 ( Introduction de Goddard à la théorie du calcul , basée sur une ou plusieurs lectures rapides et sa disponibilité, me semble couvrir le côté fond de l’arrière-plan; j’ai le sentiment que certains la théorie du côté des mathématiques pures serait également utile.)


2
J'aimerais avoir assez de réputation pour refuser. Pourquoi ces références à une université et à sa bibliothèque?
Alessandro Cosentino

2
FWIW, QA267.G57 est un numéro d'appel de la Library of Congress, un standard largement utilisé dans les bibliothèques. Ce n'est pas spécifique à l'Université de Waterloo (sauf éventuellement pour les derniers chiffres).
Emil Jeřábek
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.