Livre pour des algorithmes au-delà de Cormen

21

J'ai terminé la plupart des éléments du livre Intro to Algorithms de Cormen et je suis à la recherche d'un livre d'algorithmes qui couvre le matériel au-delà du livre de Corman. Y a-t-il des recommandations?

REMARQUE: J'ai posé cette question sur stackoverflow mais je n'étais pas trop satisfait de la réponse.

NOTE: En regardant la plupart des commentaires, je pense que dans l'idéal, je voudrais trouver un livre qui couvrirait le matériel du cours 787 dans cette description de cours .

Eugène
la source
1
voir cela
Kaveh
1
@Kaveh J'ai déjà lu Tardos.
Eugene
1
"Introduction aux algorithmes" couvre presque tout dans le domaine de la conception et de l'analyse d'algorithmes, et est le manuel le plus populaire au monde pour les cours de premier cycle et de deuxième cycle. Chaque chapitre fournit une brève introduction aux documents connexes, et il y a aussi une très longue liste de références pour une étude plus approfondie à la fin. Si vous sentez que vous avez besoin d'une compréhension plus approfondie d'un certain sujet, par exemple les algorithmes de graphes, la théorie de la complexité, etc., votre meilleur pari est de consulter la bibliographie du livre, et si cela ne vous aide pas, vous pouvez également demander conseil à des experts du domaine dans ce domaine. zone particulière.
Ali
12
"Introduction aux algorithmes" couvre presque tout dans le domaine de la conception et de l'analyse d'algorithmes - Ah, si seulement c'était vrai.
JeffE
5
Un livre que j'aime vraiment est Introduction aux algorithmes: une approche créative , par Udi Manber. Contrairement à la plupart des autres manuels, il enseigne comment créer des algorithmes par vous-même. Pour chaque algorithme traité dans le manuel, il fournit une progression croissante des sections, la première décrivant l'approche la plus évidente et chaque tentative successive de rectification des erreurs de la précédente. C'est un excellent texte à mon avis.
Vinayak Pathak

Réponses:

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

Cela peut être répondu de nombreuses manières différentes, selon ce que vous voulez "au-delà". Je recommanderais de demander des instructions beaucoup plus spécifiques, car vous êtes plus susceptible d'obtenir des réponses spécifiques qui sont utiles. Quant à quelques conseils généraux cependant:

  • Vous pouvez trouver une poignée de livres généraux qui explorent des sujets algorithmiques généraux plus en profondeur que Corman, mais pour la plupart, vous devez commencer à vous spécialiser si le livre va être beaucoup plus approfondi. Sinon, il risque d'être gonflé et de manquer d'utilité.
  • Alors, recherchez plutôt des sujets spécifiques. Il y a beaucoup de matériel avancé si vous vous concentrez sur des sujets spécifiques. Êtes-vous intéressé par:
    • algorithmes de tri?
    • algorithmes de chaîne?
    • algorithmes théoriques des nombres?
    • algorithmes matriciels?
    • algorithmes graphiques?
    • algorithmes géométriques?
    • algorithmes quantiques?
    • algorithmes stochastiques / randomisés?
    • programmation linéaire?
    • modèles de calcul?
    • théorie de la complexité fondamentale et algorithmique?
  • Si vous voulez comprendre comment dériver vos propres algorithmes, concentrez-vous sur la compréhension des structures de données connues utilisées dans l'espace de problème que vous étudiez (donc, obtenez une bonne profondeur des connaissances existantes) et cherchez à avoir une bonne compréhension de la théorie de la complexité et des modèles de calcul. Ceux-ci donneront une bonne idée intuitive de ce qui est possible pour un problème donné et des approches qui auront probablement plus de succès, même si vous avez du mal à prouver formellement les limites inférieures.

Des livres comme plusieurs de Papadimitriou ou Arora / Barak sur la théorie de la complexité seraient ma suggestion pour le suivi de Corman pour mieux comprendre quels algorithmes sont possibles et construire une certaine intuition, mais je me contenterais de consulter des articles de synthèse modernes sur des domaines particuliers et de terminer recherchez des livres de niveau sur des sujets plus spécifiques si vous voulez vous familiariser avec le niveau de compréhension moderne.

ex0du5
la source
1
Vous posez une très bonne question. Je m'intéresse aux algorithmes théoriques des nombres, j'ai donc déjà examiné la théorie algorithmique des nombres de Bach et Shallit. Je cherche des livres qui développeront mes techniques de développement algorithmique au-delà de Cormen.
Eugene
1
Je ne cherche pas la profondeur, mais la largeur. Pas une théorie fondamentale de la complexité, mais une introduction aux algorithmes / structures de données dont j'entends parler mais qui ne sont pas dans CLRS (ou qui ne sont que des problèmes) pour ajouter à l'arsenal de programmation des choses dont j'ai entendu parler; des trucs comme: recherche A *, meilleure première recherche, filtres Bloom, compression de fichiers / images, Burstsort, modèle de Markov caché, classificateurs Naive Bayes, algorithmes quantiques, listes de sauts, TimSort, Treaps, Tries, algorithmes de diagramme de Voronoi, etc. Même si son juste une collection d'articles intéressants sur une variété de sujets comme Bentley's Programming Pearls.
dr jimbob
16

Comme d'autres l'ont noté, les livres sur les algorithmes (avancés) sont mieux sélectionnés par sujet. Une référence générale bonne mais lourde avec une analyse rigoureuse est probablement The Art of Computer Programming de Knuth.

En ce qui concerne les techniques d'analyse, vous pourriez être intéressé par An Introduction to the Analysis of Algorithms par Sedgewick et Flajolet, et Algorithmic Combinatorics par Flajolet et Sedgewick pour plus de théorie dans la même direction.

Pour des approches sur la résolution des problèmes difficiles, voir Algorithmics for Hard Problems par Hromkovič.

Raphael
la source
5

Avez-vous consulté le Manuel de l'informatique théorique

Si vous voulez aller au-delà des algorithmes impératifs et passer à la programmation fonctionnelle, jetez un œil aux structures de données purement fonctionnelles . Je sais que le titre indique les structures de données, mais les algorithmes du livre peuvent vous ouvrir les yeux sur une manière différente de programmer.

ÉDITER

J'ai jeté un coup d'œil à la description du cours pour CS 787 et aux cours actuels

Il note

Nous utiliserons principalement des articles de la littérature. Ceux-ci seront mis à disposition sous forme de documents ou via le Web. Plusieurs livres sur les algorithmes seront mis en réserve à la bibliothèque Wendt.

Si c'était moi, je contacterais l' annuaire des instructeurs . :)

Guy Coder
la source
Non, je n'ai pas vu le manuel. Merci pour la suggestion!
Eugene
Sensationnel. Je n'ai pas pu trouver les informations sur le cours. Merci pour le lien.
Eugene
-2

Les algorithmes informatiques sont très complexes et difficiles à comprendre, il n'y a donc pas de meilleur livre, c'est-à-dire un seul livre qui vous expliquera tout. Vous devez en lire quelques-uns pour vous familiariser avec ce sujet.

voici mes 2 cents basés sur mes 10 années de programmation et en assistant à de nombreuses interviews:

  1. Manuel de conception d'algorithmes par Steven S. Skiena
  2. Algorithmes ( http://algs4.cs.princeton.edu/home/ ) par Sedgwick
  3. Introduction aux algorithmes Par Thomas Cormen
  4. Algorithmes pour les interviews par Adnan Aziz
  5. Algorithmes Python: Maîtriser les algorithmes de base dans le langage Python
  6. Algorithmes déverrouillés par Thomas Cormen

Référence:

Kris
la source
4
Et pourquoi les recommandez-vous?
Raphael
3
En particulier, pourquoi recommandez-vous "Introduction to Algorithms" de Cormen et al. En réponse à une question demandant des livres qui vont au-delà de ce livre.
David Richerby