Sou um otário pela elegância e rigor matemáticos e agora estou procurando essa literatura sobre algoritmos e análise de algoritmos. Agora, não importa muito para mim quais algoritmos são abordados, mas muito como eles são apresentados e tratados. ”Eu valorizo muito uma linguagem muito clara e precisa, que define todas as noções usadas de maneira estrita e abstrata.
Descobri que o clássico Introdução aos Algoritmos , de Cormen, Leiserson, Rivest e Stein, é bastante elegante, mas não lida bem com a matemática e é bastante informal com suas provas e definições. A Introdução de Sipser à Teoria da Computação parece melhor nesse sentido, mas ainda não oferece uma transição perfeita da matemática para os algoritmos.
Alguém pode recomendar algo?
¹: Os algoritmos devem pelo menos invocar o gerenciamento de seus dados necessários usando estruturas de dados abstratas não triviais clássicas, como gráficos, matrizes, conjuntos, listas, árvores e assim por diante - de preferência também operando nessas estruturas de dados. Eu não estaria muito interessado se a questão do uso e gerenciamento das estruturas de dados fosse completamente ignorada. Eu não me importo muito com os problemas resolvidos com eles, no entanto.
Respostas:
Hendrik Lenstra escreveu em 1992 :
Não sei se houve algum progresso desde então ou se isso é considerado uma "lacuna" pelo consenso. Mas o argumento é que pelo menos alguns eminentes matemáticos ficaram insatisfeitos com o rigor matemático da derivação de algoritmos. Portanto, pode ser que não exista um livro com o nível de formalismo desejado pelo OP.
A cornucópia de perspectivas práticas que temos devido a Knuth, Gries , Stepanov e outros visa ajudar os programadores mais do que a matemática e, portanto, inevitavelmente ficam aquém do rigor e da subjetividade.
No entanto, o trabalho de Stepanov é amplamente aclamado no Vale do Silício como uma das melhores tentativas de uma síntese científica.
Em Elements of Programming , Alexander Stepanov e Paul McJones tentam estabelecer as bases algébricas abstratas dos algoritmos. O livro começa com definições axiomáticas reconhecidamente informais de entidades, valores e seus atributos, mas em 288 páginas progride dedutivamente por meio de uma série de lemas para os fundamentos da Biblioteca de Modelos Padrão.
O sumário, o prefácio e um capítulo de amostra sobre Transformações e suas órbitas podem ser encontrados aqui e uma palestra introdutória aqui .
O livro mais recente e descontraído de Stepanov, De matemática para programação genérica , é estruturado mais por um roteiro da história da matemática, da multiplicação egípcia a monoides, semigrupos e teorema de Lagrange, desenvolvendo estruturas de dados modernas com seus iteradores e algoritmos usados em o STL.
fonte
Eu acho que o livro que você descreve tem um nome. Está em sete volumes, dos quais apenas três e metade foram publicados. É chamado The Art of Computer Programming (TAOCP) e é escrito por Donald Knuth.
Pode ser que ele às vezes descreva aplicativos. Mas você sempre pode pular isso, e eu duvido que faça muito do conteúdo. Você não deve ficar muito decepcionado com a matemática.
fonte