Livro para algoritmos além de Cormen

21

Eu terminei a maior parte do material no livro Introdução a algoritmos de Cormen e estou procurando um livro de algoritmos que cubra material além do livro de Corman. Existem recomendações?

NOTA: Perguntei isso no stackoverflow, mas não fiquei muito feliz com a resposta.

NOTA: Examinando a maioria dos comentários, acho ideal que eu gostaria de encontrar um livro que cubra o material do curso 787 nesta descrição do curso .

Eugene
fonte
1
veja este
Kaveh
1
@ Kaveh Eu já li o Tardos.
187 Eugene
1
"Introdução aos algoritmos" abrange quase tudo no escopo do design e análise de algoritmos e é o livro mais popular do mundo para cursos de graduação e pós-graduação. Cada capítulo fornece uma introdução concisa aos materiais relacionados, e também há uma lista muito longa de referências para estudos adicionais no final. Se você acha que precisa de uma compreensão mais profunda de um determinado tópico, por exemplo, algoritmos de gráficos, teoria da complexidade, etc., sua melhor aposta é examinar a bibliografia do livro e, se isso não ajudar, você também pode procurar aconselhamento de especialistas no domínio. área particular.
27412 Ali Ali
12
"Introdução aos algoritmos" abrange quase tudo no escopo do design e análise de algoritmos - Ah, se isso fosse verdade.
Jeffe
5
Um livro que eu realmente gosto é Introdução aos algoritmos: uma abordagem criativa , de Udi Manber. Diferente da maioria dos outros livros, ele ensina como criar algoritmos por conta própria. Para cada algoritmo abordado no livro, ele fornece uma progressão crescente de seções, a primeira descrevendo a abordagem mais óbvia e cada tentativa sucessiva de corrigir os erros da anterior. É um excelente texto na minha opinião.
Vinayak Pathak

Respostas:

9
I am looking for an algorithms book that covers material beyond Corman's book.

Isso pode ser respondido de várias maneiras diferentes, dependendo do que você deseja "além". Eu recomendaria perguntar direções muito mais específicas, pois é mais provável que você obtenha respostas específicas que sejam úteis. Quanto a algumas orientações gerais, porém:

  • Você pode encontrar vários livros gerais que exploram tópicos algorítmicos gerais com mais profundidade do que Corman, mas, na maioria das vezes, é necessário começar a se especializar se o livro for significativamente mais aprofundado. Caso contrário, é provável que esteja inchado e sem utilidade.
  • Portanto, procure tópicos específicos. Há muito material avançado se você se concentrar em tópicos específicos. Você está interessado em:
    • algoritmos de classificação?
    • algoritmos de string?
    • algoritmos teóricos dos números?
    • algoritmos de matriz?
    • algoritmos de grafos?
    • algoritmos geométricos?
    • algoritmos quânticos?
    • algoritmos estocásticos / randomizados?
    • programação linear?
    • modelos de computação?
    • teoria da complexidade fundamental e algoritmos?
  • Se você deseja entender como derivar seus próprios algoritmos, concentre-se em entender as estruturas de dados conhecidas usadas no espaço do problema que você está investindo (para obter uma boa profundidade do conhecimento existente) e procure ter um bom entendimento da teoria da complexidade e dos modelos de computação. Isso fornecerá uma boa sensação intuitiva do que é possível para um determinado problema, e quais abordagens provavelmente terão melhor sucesso, mesmo se você tiver dificuldade em provar formalmente os limites mais baixos.

Livros como os diversos de Papadimitriou ou Arora / Barak on Complexity Theory seriam minha sugestão para acompanhar Corman para entender melhor quais algoritmos são possíveis e criar alguma intuição, mas eu iria apenas olhar para os documentos de visão geral modernos sobre áreas específicas e para me formar e livros de nível de pesquisa sobre tópicos mais específicos, se você deseja familiarizar-se com o nível moderno de entendimento.

ex0du5
fonte
1
Você faz uma pergunta muito boa. Estou interessado em algoritmos da teoria dos números, por isso já examinei a Teoria dos Números Algorítmicos de Bach e Shallit. No entanto, estou procurando livros que desenvolvam minhas técnicas de desenvolvimento algorítmico além de Cormen.
Eugene
1
Não estou procurando profundidade, mas largura. Não é a teoria da complexidade fundamental, mas uma introdução às estruturas de algoritmos / dados de que ouvi falar, mas não estão no CLRS (ou apenas apresento como problemas) para adicionar ao arsenal de programação de coisas que ouvi falar; coisas como: pesquisa A *, melhor pesquisa inicial, filtros Bloom, compactação de arquivos / imagens, Burstsort, modelo Markov oculto, classificadores Naive Bayes, algoritmos quânticos, listas de pulos, TimSort, Treaps, Tries, algoritmos de diagrama de Voronoi, etc. apenas uma coleção de artigos interessantes sobre diversos tópicos, como as Pérolas de Programação da Bentley.
dr jimbob
16

Como outros observaram, os livros sobre algoritmos (avançados) são mais bem selecionados por tópico. Uma boa referência geral, porém pesada, com análise rigorosa é provavelmente a arte da programação de computadores de Knuth.

Quanto às técnicas de análise, você pode se interessar em Introdução à análise de algoritmos de Sedgewick e Flajolet e Combinatória algorítmica de Flajolet e Sedgewick para obter mais teorias na mesma direção.

Para abordagens sobre como resolver problemas difíceis, consulte Algoritmics for Hard Problems, de Hromkovič.

Rafael
fonte
5

Você já viu o Manual de Ciência da Computação Teórica

Se você quiser ir além dos algoritmos imperativos e entrar na programação funcional, dê uma olhada em Estruturas de dados puramente funcionais . Eu sei que o título diz estruturas de dados, mas os algoritmos do livro podem abrir seus olhos para uma maneira diferente de programação.

EDITAR

Dei uma olhada na descrição do curso do CS 787 e nas aulas atuais

Observa

Usaremos principalmente artigos da literatura. Estes serão disponibilizados como folhetos ou via web. Vários livros sobre algoritmos serão colocados em reserva na biblioteca Wendt.

Se fosse eu, entraria em contato com o diretório do instrutor . :)

Guy Coder
fonte
Não, eu não vi o manual. Obrigado pela sugestão!
27512 Eugene
Uau. Não consegui encontrar as informações do curso. Obrigado pelo link.
29412 Eugene
-2

Os algoritmos de computador são muito complexos e difíceis de entender, portanto, não existe um melhor livro, ou seja, apenas um livro que explique tudo. Você precisa ler alguns deles para se apossar deste tópico.

aqui estão meus 2 centavos com base em meus 10 anos de programação e participando de inúmeras entrevistas:

  1. Manual de Design do Algoritmo por Steven S. Skiena
  2. Algoritmos ( http://algs4.cs.princeton.edu/home/ ) por Sedgwick
  3. Introdução aos Algoritmos Por Thomas Cormen
  4. Algoritmos para entrevistas de Adnan Aziz
  5. Algoritmos Python: Dominando Algoritmos Básicos na Linguagem Python
  6. Algoritmos Desbloqueados por Thomas Cormen

Referência:

Kris
fonte
4
E por que você recomenda isso?
Raphael
3
Em particular, por que você está recomendando "Introdução aos algoritmos", de Cormen et al., Em resposta a uma pergunta que pede livros que vão além desse livro.
David Richerby