Bom livro de matemática sobre algoritmos [fechado]


11

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.


2
Isso é subjetivo; defina "bom". Além disso, embora não tenhamos uma política rígida para perguntas da lista, há uma aversão geral . Observe também esta e esta discussão; convém melhorar sua pergunta para evitar os problemas explicados lá. Se você não tem certeza de como melhorar sua pergunta, talvez possamos ajudá-lo no bate-papo de ciência da computação ?
Raphael


@ Rafael Obrigado. Eu só usei a palavra "bom" no título, na minha pergunta especifiquei o que quero. Embora eu intencionalmente não tenha sido muito específico, deve pelo menos ficar claro que meu foco é (como sugerido) a elegância e o rigor matemáticos . Eu não acho que essa resposta grite por uma lista de livros, porque não deveria haver muitos livros nessa categoria - e, mesmo assim, não acredito nisso “preservando a pureza de uma pergunta estrita— estrutura de resposta ”acontecendo em vários sites de troca de pilha aqui - mas não é minha decisão, eu acho. Não tenho certeza se posso melhorar a questão.
27415 khstst

Além disso, não acho que a "solicitação de referência" seja apropriada para a pergunta. Pelo menos não de acordo com sua descrição: nem procuro artigos nem estou interessado em uma questão específica e restrita. Na verdade, sou bastante aberto quanto ao conteúdo coberto, veja minha segunda frase. Tudo bem se eu remover a etiqueta novamente? Talvez eu pudesse e devesse restringir-me com que tipo de algoritmos eu me contentaria?
27415 khstst

2
Talvez você deva procurar semântica denotacional e verificação de programa.
Yuval Filmus

Respostas:


7

Hendrik Lenstra escreveu em 1992 :

Embora seja, do ponto de vista matemático rigoroso, desejável que eu defina o que quero dizer com algoritmo e seu tempo de execução, não o farei. Minha principal desculpa é que eu mesmo não conheço essas definições. Pior ainda, nunca vi um tratamento da teoria apropriada que seja precisa, elegante e conveniente de se trabalhar. Seria uma empresa louvável preencher essa lacuna aparente na literatura.

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.


?!? "atualmente não existe derivação matemática precisa, elegante e conveniente do conceito de algoritmo ..." que tal uma máquina de Turing!
vzn

11
Lenstra aborda as máquinas de Turing no artigo vinculado, mas acho que a idéia é que elas não forneçam uma análise algébrica completa. A citação é praticamente literal, incluindo a parte "gap", se você quiser lê-la. Vou editar a postagem para remover o "consenso" sugerido, caso seja considerado discutível.

ofc am / foi cientes de que você estava citando Lenstra, mas você pode adicionar aspas ou um longo blockquote de sua notável / discutível / afirmação questionável
vzn

pensam que as máquinas de Turing não podem ser derivadas , pelo contrário, formam o axioma de um sistema computacional (ala a tese de Church-Turing ). é toda a análise Lenstras e o CS em geral que deriva do axioma da existência da MT.
vzn

11
@Raphael, se a mãe disser que seria uma "empresa louvável" limpar meu quarto adequadamente, a essência de seu discurso é "não se preocupe em limpar seu quarto". Estou te entendendo mal ou você está me entendendo mal?

7

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.


Eu temia que essa resposta pudesse surgir. Eu olhei para dentro e não me agradou. "Você não deveria estar muito decepcionado com a matemática." - talvez, mas Knuth também não parece definir coisas, mas ele as apresenta informalmente, explicando-as. Ótimo para transmitir a idéia, não o que eu espero da matemática, no entanto.
27515 khstst

Talvez você possa contribuir com o campo publicando a versão matematicamente ofuscada de seu trabalho. Mas se o que lhe interessa é a "transição contínua da matemática para os algoritmos", um tópico melhor para você pode ser a teoria dos tipos. A relação entre matemática e algoritmos ainda é um tópico de pesquisa.
babou 27/07/2015

11
PS Se você "temia que essa resposta pudesse surgir", deveria ter dito isso na sua pergunta, pois é um dos principais livros de referência. Perguntas completas e documentadas obtêm melhores respostas.
babou 27/07/2015

Só veio a mim depois de ter feito a pergunta, quando eu estava longe do meu computador. Minha observação sobre o livro de Knuth não deve ser tomada de maneira pejorativa (que é como eu acho que você a aceitou pelo comentário “publicando a versão matematicamente ofuscada”) - seria provavelmente o próximo a blasfêmia. O jeito dele também não é o que estou procurando. Talvez simplesmente não há nada parecido com o que eu imagino lá fora ...
k.stm

2
@ k.stm Bem, esqueça a coisa da ofuscação, que é um tópico por si só. O ponto é que acredito que algoritmática não é (ainda?) Matemática. Pode ser que você possa obter formalizações, mas é provável que sejam codificações simples que perdem a substância, com pouco benefício. Isso depende do tópico. Provavelmente é muito menos verdadeiro para a teoria dos autômatos, que possui algoritmos significativos. O ponto é que a identificação adequada da natureza matemática abstrata das estruturas não é óbvia. É uma questão de entendimento, não de formalização, e leva anos. Pense nisso como física
babou
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.