Libro per algoritmi oltre Cormen


21

Ho finito la maggior parte del materiale nel libro Intro to Algorithms di Cormen e sto cercando un libro di algoritmi che copra materiale oltre il libro di Corman. Ci sono dei consigli?

NOTA: l'ho chiesto su StackOverflow ma non ero molto contento della risposta.

NOTA: guardando la maggior parte dei commenti, penso che idealmente vorrei trovare un libro che copra il materiale del corso 787 in questa descrizione del corso .


1
vedi questo
Kaveh,

1
@Kaveh Ho già letto Tardos.
Eugene il

1
"Introduzione agli algoritmi" copre quasi tutto nell'ambito della progettazione e dell'analisi degli algoritmi ed è il libro di testo più popolare al mondo sia per i corsi universitari che per i corsi di laurea. Ogni capitolo fornisce un'introduzione concisa ai materiali correlati e c'è anche un lungo elenco di riferimenti per ulteriori studi alla fine. Se ritieni di aver bisogno di una comprensione più approfondita di un determinato argomento, ad esempio algoritmi grafici, teoria della complessità, ecc., La soluzione migliore è guardare la bibliografia del libro e, se non aiuta, puoi anche chiedere consiglio agli esperti di dominio in questo area particolare.
Ali,

12
"Introduzione agli algoritmi" copre quasi tutto nell'ambito della progettazione e dell'analisi degli algoritmi - Ah, se solo fosse vero.
JeffE,

5
Un libro che mi piace molto è Introduzione agli algoritmi: un approccio creativo , di Udi Manber. A differenza della maggior parte degli altri libri di testo, insegna come elaborare algoritmi da soli. Per ogni algoritmo trattato nel libro di testo, fornisce una progressiva progressione di sezioni, la prima che descrive l'approccio più ovvio e ogni tentativo successivo che corregge gli errori del precedente. Secondo me è un testo eccellente.
Vinayak Pathak,

Risposte:


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

È possibile rispondere a questo in molti modi diversi, a seconda di ciò che si desidera "oltre". Consiglierei di chiedere indicazioni molto più specifiche, poiché è più probabile che tu ottenga risposte specifiche utili. Per quanto riguarda alcune indicazioni generali però:

  • Potresti trovare una manciata di libri generali che esplorano argomenti algoritmici generali in modo più approfondito rispetto a Corman, ma per la maggior parte, devi iniziare a specializzarti se il libro sarà significativamente più approfondito. Altrimenti è probabile che sia gonfio e privo di utilità.
  • Quindi, cerca invece argomenti specifici. C'è un sacco di materiale avanzato se ti concentri su argomenti specifici. Sei interessato a:
    • algoritmi di ordinamento?
    • algoritmi di stringa?
    • algoritmi teorici numerici?
    • algoritmi a matrice?
    • algoritmi grafici?
    • algoritmi geometrici?
    • algoritmi quantistici?
    • algoritmi stocastici / randomizzati?
    • programmazione lineare?
    • modelli di calcolo?
    • teoria della complessità e algoritmo di base?
  • Se vuoi capire come derivare i tuoi algoritmi, concentrati sulla comprensione delle strutture di dati conosciute utilizzate nello spazio problematico che stai investendo (quindi, ottieni una buona profondità delle conoscenze esistenti) e cerca di avere una buona comprensione della teoria della complessità e dei modelli di calcolo. Questi daranno una buona sensazione intuitiva di ciò che è possibile per un determinato problema e quali approcci avranno probabilmente un successo migliore, anche se hai difficoltà a dimostrare formalmente i limiti inferiori.

Libri come i vari di Papadimitriou o Arora / Barak sulla teoria della complessità sarebbero il mio suggerimento per dare seguito a Corman per capire meglio quali algoritmi sono possibili e sviluppare un po 'di intuizione, ma vorrei solo guardare ai moderni documenti di sintesi su aree particolari e cercare di laurearmi e libri di livello di ricerca su argomenti più specifici se si desidera familiarità con il moderno livello di comprensione.


1
Fai un'ottima domanda. Sono interessato agli algoritmi di teoria dei numeri, quindi ho già esaminato la teoria dei numeri algoritmica di Bach e Shallit. Sto cercando libri che costruiranno le mie tecniche di sviluppo algoritmico oltre Cormen.
Eugene,

1
Non sto cercando profondità, ma ampiezza. Non teoria della complessità di base, ma un'introduzione agli algoritmi / strutture di dati di cui ho sentito parlare ma che non sono nel CLRS (o che sono presenti solo come problemi) da aggiungere all'arsenale di programmazione delle cose di cui ho sentito parlare; cose come: una ricerca *, la migliore prima ricerca, i filtri Bloom, la compressione di file / immagini, Burstsort, Hidden Markov Model, classificatori Naive Bayes, algoritmi quantistici, skip list, TimSort, Treaps, Tries, algoritmi del diagramma Voronoi, ecc. Anche se solo una raccolta di articoli interessanti su vari argomenti come Bentley's Programming Pearls.
dr jimbob,

16

Come altri hanno notato, i libri sugli algoritmi (avanzati) sono meglio selezionati per argomento. Un riferimento generale buono ma pesante con analisi rigorose è probabilmente The Art of Computer Programming di Knuth.

Per quanto riguarda le tecniche di analisi, potresti essere interessato a Introduzione all'analisi degli algoritmi di Sedgewick e Flajolet e Combinatoria algoritmica di Flajolet e Sedgewick per ulteriori teorie nella stessa direzione.

Per gli approcci per affrontare i problemi difficili, vedere Algorithmics for Hard Problems di Hromkovič.


5

Hai visto il Manuale di informatica teorica

Se vuoi andare oltre gli algoritmi imperativi e passare alla programmazione funzionale, dai un'occhiata a Strutture di dati puramente funzionali . So che il titolo dice strutture di dati, ma gli algoritmi nel libro potrebbero aprire gli occhi su un modo diverso di programmare.

MODIFICARE

Ho dato un'occhiata alla descrizione del corso per CS 787 e alle classi attuali

Nota

Useremo principalmente articoli della letteratura. Questi saranno resi disponibili come dispense o via web. Diversi libri sugli algoritmi saranno messi in riserva nella biblioteca di Wendt.

Se fossi in me, contatterei la directory degli istruttori . :)


No, non ho visto il manuale. Grazie per il suggerimento!
Eugene,

Wow. Non sono riuscito a trovare le informazioni sul corso. Grazie per il link
Eugene,

-2

Gli algoritmi informatici sono argomenti molto complessi e difficili da comprendere, quindi non esiste un libro migliore, ovvero un solo libro che ti spieghi tutto. Devi leggerne un paio per approfondire questo argomento.

ecco i miei 2 centesimi basati sui miei 10 anni di programmazione e la partecipazione a numerose interviste:

  1. Algorithm Design Manual di Steven S. Skiena
  2. Algorithms ( http://algs4.cs.princeton.edu/home/ ) di Sedgwick
  3. Introduzione agli algoritmi di Thomas Cormen
  4. Algoritmi per le interviste di Adnan Aziz
  5. Algoritmi Python: padroneggiare algoritmi di base in linguaggio Python
  6. Algoritmi sbloccati da Thomas Cormen

Riferimento:


4
E perché mi consigliate questi?
Raffaello

3
In particolare, perché stai raccomandando "Introduzione agli algoritmi" di Cormen et al. In risposta a una domanda che chiede libri che vadano oltre quel libro.
David Richerby,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.