Que tipo de formação matemática é necessária para a teoria da complexidade?

79

Atualmente, sou estudante de graduação, que deve se formar este ano. Após a formatura, estou pensando em trabalhar para um mestrado / doutorado em TCS. Comecei a me perguntar que campos da matemática são considerados úteis para o TCS, especialmente a teoria da complexidade (clássica).

Quais campos você considera essenciais para alguém que deseja estudar a teoria da complexidade? Você conhece algum bom livro didático que cubra esses campos e, em caso afirmativo, inclua o nível de dificuldade (introdutório, de pós-graduação etc.).

Se você considerar um campo que não é muito usado na teoria da complexidade, mas o considera crítico para o TCS, consulte-o também.

chazisop
fonte
14
Eu recomendo que você comece a ler um texto padrão sobre a teoria da complexidade, como Arora / Barak ou Papadimitriou, e sempre que ficar preso por não entender a matemática, tente aprender a matemática associada com mais detalhes antes de prosseguir.
Robin Kothari
8
Depois de fazer o que Robin sugeriu, comece a trabalhar em alguns pequenos problemas abertos. Você se sentirá estimulado a aprender a matemática que está por trás disso. Como estudante de pós-graduação, não acho muito eficiente aprender algum campo matemático apenas para aprender.
Alessandro Cosentino

Respostas:

53

Se você olhar as respostas para esta pergunta do TCS StackExchange , verá que existe a possibilidade de praticamente qualquer área da matemática ser importante na teoria da complexidade. Portanto, se você está realmente interessado em alguma área da matemática que não parece relacionada, vá em frente e estude-a assim mesmo. Se alguma vez se tornar relevante para a teoria da complexidade, você será um dos poucos teóricos da complexidade que a entenderá.

Peter Shor
fonte
20
Esta resposta não significa que você não deve estudar os campos que sabemos que estão relacionados (consulte as outras respostas). Eu diria que eles incluem álgebra linear, teoria dos grafos, teoria das probabilidades, álgebra abstrata básica e lógica básica.
quer
6
34

Você deve adicionar o livro de Dexter Kozen sobre a teoria da computação à sua lista. Abrange os conceitos básicos da teoria da complexidade de maneira muito eficaz, e o formato de palestra curta é ótimo.

Em termos de formação matemática, além do mencionado acima:

  • Teoria da probabilidade
  • Álgebra linear e álgebra abstrata
  • teoria dos grafos
  • lógica básica

Não acho que você precise dominar esses tópicos para começar, mas definitivamente ajuda a ter um certo nível de conforto.

Suresh Venkat
fonte
32

AC0

É (que eu saiba) o único livro publicado que trata o 'método da álgebra linear em combinatória' em profundidade - uma ferramenta inteligente e poderosa para se conhecer. Há um rascunho de manuscrito de Babai e Frankl que é muito mais aprofundado, mas não publicado ou on-line:

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

Andy Drucker
fonte
2
Na mesma linha, quero destacar o guia maravilhosamente escrito do método de entropia, "Entropia e Contagem", de Jaikumar Radhakrishnan. O método de entropia é outra daquelas ferramentas inteligentes que são muito satisfatórias para aplicar quando a oportunidade certa aparecer.
arnab
27

As respostas anteriores já listavam as básicas: teoria das probabilidades, combinatória, álgebra linear, álgebra abstrata (campos finitos, teoria de grupos, etc.).

Eu adicionaria:

Análise de Fourier , veja, por exemplo, o curso de Ryan O'Donnel: http://www.cs.cmu.edu/~odonnell/boolean-analysis/

Teoria da codificação , veja o curso de Madhu Sudão: http://people.csail.mit.edu/madhu/coding/course.html

Teoria da informação , o livro padrão é Elements of Information Theory: http://www.amazon.com/Elements-Information-Theory-Telecommunications-Processing/dp/0471241954

Também há teoria das representações, passeios aleatórios e muito mais que eu provavelmente esqueço ...

Dana Moshkovitz
fonte
5
A maioria das coisas que você acabou de aprender como você vai, dependendo de onde a pesquisa / vida leva-o: de cursos, de palestras, de colaboradores, de papéis, etc.
Dana Moshkovitz
22

Além das coisas básicas, provavelmente:

  • Combinatória - Você pode se contar contando coisas regularmente
  • Estocástica - Para análises de casos médios e algoritmos aleatórios

Eu gosto de matemática concreta por Knuth. Ele fornece uma boa visão geral / conhecimento básico de muitas ferramentas importantes.

Se você gosta de geração de funções (ver generationfunctionology por Wilf) como uma ferramenta, análise complexa vem a calhar também.

Rafael
fonte
Eu amo a matemática concreta, mas é um pouco esotérica. Eu recomendaria um livro mais popular primeiro, como "Combinatorics", de Cameron.
Emil
7
Aqui está minha impressão: Concrete Math parece ser um livro incrível para aprender a fazer análises exatas (ou quase exatas) de algoritmos, o forte de Knuth. Se é isso que você quer fazer, continue. Mas lembre-se de que a maioria dos trabalhos de teoria da complexidade oferece limites muito menos precisos; portanto, as técnicas de CM são menos relevantes.
Andy Drucker
1
Alguns podem dizer que isso ocorre porque os teóricos da complexidade são vagabundos preguiçosos. Mas acho que é porque (a) limites exatos podem ser mais trabalhosos do que valem, (b) geralmente há uma lacuna tão grande entre os limites superior e inferior conhecidos que pequenos refinamentos de ambos os lados podem parecer de pouco valor.
Andy Drucker
Devo dizer que há todo tipo de coisas legais no livro - minhas observações dizem principalmente respeito ao material sobre soluções exatas de somatórios e relações de recorrência.
Andy Drucker
22

Sanjeev Arora tem um bom documento para um curso de graduação (para alunos do primeiro ano do ensino médio) que ele ensinou chamado "kit de ferramentas do teórico", que possui grande parte do material básico que um aluno de teoria deve conhecer. Você pode esperar muitas dessas coisas até a escola para aprender, mas isso lhe dará uma boa idéia do que você precisa saber e de alguns dos pré-requisitos.

Lev Reyzin
fonte
20

Um paradigma comum, embora certamente não universal, para muitos pesquisadores bem-sucedidos na comunidade do TCS é o seguinte: Conheça algumas noções básicas de graduação, como lógica, álgebra linear, probabilidade, otimização, teoria de grafos, combinatória e álgebra abstrata básica. Além disso, não se force a aprender mais nada até que você realmente pense que precisa resolver o problema com o qual está lutando há meses, ou se você acha que realmente gostaria de aprender algo por causa disso.

"Como sei que preciso se nunca o vi antes?", Você pergunta? Boa pergunta. Às vezes, você tem sorte e sente: "Sabe, este sub-problema que estou tentando resolver soa muito parecido com aquela coisa de transformação de quatro quarteirões que Fred não cala a boca. Vou ter que verificar isso ou prender Fred em uma sala e peça para ele me dar uma rápida olhada no básico ". Outras vezes, você prende um grupo de pessoas mais instruídas do que você em uma sala, por exemplo, dando uma palestra em um seminário ou algo assim, e se queixa de como não pode resolver esse problema até que Fred grite com "Ei, aposto que você pode resolver isso com a análise de Fourier. Deixe-me mostrar como. " No final, você recebe um documento conjunto com Fred, aprendeu algo novo, e você e Fred são melhores amigos agora e saem para beber todos os sábados à noite.

TCSgradstudent
fonte
18

Eu acho que uma lista de campos de matemática que não são úteis seria muito menor do que uma lista de campos que são! Não consigo pensar em nada.

Estude qualquer matemática que pareça interessante e / ou o que parecer que você precisa no momento. Mesmo que você não o use diretamente, isso ajudará você a aprender outras coisas que você faz.

Jeffε
fonte
4
Eu vou responder esta resposta. Qualquer que seja a matemática que você achar mais interessante, irá guiá-lo para quais problemas são mais interessantes e para os quais você é mais adequado para resolver.
Derrick Stolee
12

Eu recomendo dar uma olhada nestes livros:

Além disso, os tópicos da conferência MFCS (Mathematics Foundations of Computer Science) podem levar você a que tipo de histórico você pode precisar. (Advertência: a conferência inclui tópicos altamente avançados. Você não precisa dominá-los. Apenas tente entender tudo.)

MS Dousti
fonte
9

A teoria dos números não foi mencionada, mas é uma ferramenta muito importante para muitas construções criptográficas e teóricas da complexidade.

arnab
fonte
6

A teoria da representação de grupos finitos (também sobre campos finitos) pode ser surpreendentemente útil para várias tarefas, incluindo:

  • algoritmos de multiplicação de matrizes ( Cohn - Kleinberg-Szegedy-Umans )

  • construção de códigos decodificáveis ​​localmente (veja, por exemplo, este artigo de Klim Efremenko)

  • aplicações em computação quântica (problema de subgrupo oculto para grupos não-belianos, método multiplicativo de adversários)

Sn

Marcin Kotowski
fonte
não se esqueça construções deterministas de gráficos expansor
Sasho Nikolov
Você quer dizer construções algébricas usando a propriedade (T) à la Lubotzky? Nesse caso, o sabor é um pouco diferente dos exemplos acima (não use irreps de grupos finitos).
Marcin Kotowski
4

Eu recomendo a leitura do livro de Garey e Johnson

Computadores e Intratabilidade: Um Guia para a Teoria da Completude NP .

Isso pode ser lido com muito pouco conhecimento matemático. Acho que este livro é uma alegria de ler, e eu o recomendaria como primeiro livro sobre Papadimitriou e Arora / Barak. Depois de ler isso, você poderá se aprofundar nos outros livros e identificar vários pedaços de matemática necessários para entender os tópicos avançados nos quais está interessado.

Emil
fonte
1
Aprendi a complexidade deste livro, mas o considero desequilibrado, com muitos detalhes complicados, mas no final sem importância, ainda falta cobertura de questões importantes mesmo na época em que o livro foi escrito. Por outro lado, é ocasionalmente um importante trabalho de referência. Em contraste, o texto de Kozen mencionado em outra resposta é claro, abrangente e moderno.
András Salamon
1

Era uma vez o curso de graduação CS464 (2002) na UWaterloo CS, que usava a complexidade computacional de Christos H. Papadimitriou , Addison-Wesley, 1994.

Os tópicos de segundo plano listados incluem máquinas de Turing, indecidibilidade, complexidade de tempo e integridade do NP.

Como pano de fundo, navegue pela sua biblioteca perto de QA267.G57 (A introdução da teoria da computação de Goddard , com base em uma leitura rápida ou duas e sua disponibilidade para mim, parece cobrir o lado CS do plano de fundo; tenho a sensação de que algum conjunto e grupo a teoria do lado da matemática pura também seria útil.)

josh0
fonte
2
Eu gostaria de ter reputação suficiente para votar. Por que essas referências a uma universidade e sua biblioteca?
Alessandro Cosentino
2
FWIW, QA267.G57 é um número de chamada da Biblioteca do Congresso, que é um padrão de biblioteca amplamente usado. Não é específico para a Universidade de Waterloo (exceto possivelmente para os dígitos finais).
Emil Jerabek