Vamos olhar para o futuro daqui a 30 anos. Vamos ser otimistas e assumir que as áreas relacionadas ao aprendizado de máquina continuam se desenvolvendo tão rapidamente quanto o que vimos nos últimos 10 anos. Isso seria ótimo, mas qual seria o papel da algorítmica tradicional em um futuro tão próximo?
Aqui, por "algoritmos tradicionais", refiro-me ao processo usual que seguimos no TCS: formalizar um problema computacional bem definido , projetar algoritmos para resolver o problema e provar garantias formais de desempenho .
Agora, quais são as áreas de aplicação nas quais devemos usar o design e a análise tradicionais de algoritmos também no futuro, e é altamente improvável que quaisquer avanços no aprendizado de máquina tornem a algorítmica tradicional principalmente irrelevante?
No começo, isso pode parecer uma pergunta boba: é claro que precisaremos ser capazes de ordenar, pesquisar, indexar etc. também no futuro! É claro que precisamos fazer transformações de Fourier com eficiência, multiplicar matrizes grandes, encontrar caminhos mais curtos, resolver problemas de otimização linear!
Mas, novamente, uma vez que você começa a analisar mais profundamente os aplicativos em que tradicionalmente usamos os algoritmos que projetamos, não está claro que o design e a análise tradicionais de algoritmos sejam a resposta certa para esses problemas: em aplicativos relacionados à pesquisa , geralmente estamos interessados em encontrar algo que seja parecido com o ser humano em algum sentido vago e mal definido (por exemplo, semelhança semântica), e não algo que seja ideal em algum sentido matemático (por exemplo, distância mínima de edição). Em aplicativos relacionados ao planejamento de rotas, geralmente estamos interessados em encontrar rotas que sejam boas com base em exemplos (por exemplo, outras pessoas o preferem), e não em rotas que sejam ótimas em algum sentido matemático (por exemplo, distância mais curta ou preço mais barato). E uma vez que você tenha algum componente humano vago e mal definido, talvez seja melhor tentarmos ensinar o computador a produzir boas respostas com base em exemplos, em vez de tentar permitir que um pesquisador da TCS apareça com um problema computacional formal que podemos resolver por meio do design e análise tradicionais de algoritmos.
Então, quais são as áreas de aplicação (de preferência aplicações industriais reais e diretas) nas quais é absolutamente claro que o que temos feito em algoritmos no passado também será o caminho certo (e o único caminho possível) para progredir no futuro?
Os algoritmos usados como sub-rotinas nas técnicas de aprendizado de máquina parecem um candidato óbvio à prova do futuro, mas isso depende muito da técnica de aprendizado de máquina que usamos e, como vimos nos últimos dez anos, isso pode mudar rapidamente .