Libro para algoritmos más allá de Cormen


21

He terminado la mayor parte del material en el libro de Introducción a Algoritmos de Cormen y estoy buscando un libro de algoritmos que cubra material más allá del libro de Corman. ¿Hay alguna recomendación?

NOTA: pregunté esto en stackoverflow pero no estaba muy contento con la respuesta.

NOTA: Mirando la mayoría de los comentarios, creo que idealmente me gustaría encontrar un libro que cubra el material del curso 787 en esta descripción del curso .


1
ver esto
Kaveh

1
@Kaveh Ya he leído Tardos.
Eugene

1
"Introducción a los algoritmos" cubre casi todo en el ámbito del diseño y análisis de algoritmos, y es el libro de texto más popular del mundo para cursos de pregrado y posgrado. Cada capítulo proporciona una breve introducción a los materiales relacionados, y también hay una lista muy larga de referencias para su posterior estudio al final. Si cree que necesita una comprensión más profunda de un tema determinado, por ejemplo, algoritmos de gráficos, teoría de la complejidad, etc., lo mejor es mirar la bibliografía del libro, y si no ayuda, también puede buscar el asesoramiento de expertos en el tema. Area en particular.
Ali

12
La "Introducción a los algoritmos" cubre casi todo en el ámbito del diseño y análisis de algoritmos . Ah, si eso fuera cierto.
JeffE

55
Un libro que realmente me gusta es Introducción a los algoritmos: un enfoque creativo , de Udi Manber. A diferencia de la mayoría de los otros libros de texto, él enseña cómo desarrollar algoritmos por su cuenta. Para cada algoritmo cubierto en el libro de texto, proporciona una progresión creciente de secciones, la primera describe el enfoque más obvio y cada intento sucesivo rectifica los errores del anterior. Es un excelente texto en mi opinión.
Vinayak Pathak

Respuestas:


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

Esto se puede responder de muchas maneras diferentes, dependiendo de lo que quiera "más allá". Recomiendo pedir instrucciones mucho más específicas, ya que es más probable que obtenga respuestas específicas que sean útiles. Sin embargo, en cuanto a alguna orientación general:

  • Puede encontrar un puñado de libros generales que exploran temas algorítmicos generales con más profundidad que Corman, pero en su mayor parte, debe comenzar a especializarse si el libro va a ser significativamente más profundo. De lo contrario, es probable que esté hinchado y carezca de utilidad.
  • Por lo tanto, busque temas específicos. Hay mucho material avanzado si te enfocas en temas específicos. ¿Estás interesado en:
    • algoritmos de clasificación?
    • algoritmos de cadena?
    • algoritmos teóricos de números?
    • algoritmos matriciales?
    • algoritmos de gráficos?
    • algoritmos geométricos?
    • algoritmos cuánticos?
    • algoritmos estocásticos / aleatorizados?
    • ¿programación lineal?
    • modelos de computación?
    • ¿Teoría de la complejidad fundamental y algoritmos?
  • Si desea comprender cómo derivar sus propios algoritmos, concéntrese en comprender las estructuras de datos conocidas utilizadas en el espacio del problema que está investigando (por lo tanto, obtenga una buena profundidad del conocimiento existente) y busque tener una buena comprensión de la teoría de la complejidad y los modelos de cálculo. Esto le dará una buena sensación intuitiva de lo que es posible para un problema dado, y qué enfoques probablemente tendrán un mejor éxito, incluso si tiene dificultades para demostrar formalmente los límites inferiores.

Libros como Papadimitriou's varios o Arora / Barak on Complexity Theory serían mi sugerencia para hacer un seguimiento de Corman para comprender mejor qué algoritmos son posibles y desarrollar cierta intuición, pero solo buscaría documentos de resumen modernos sobre áreas particulares y buscaría graduarme y busque libros de nivel sobre temas más específicos si desea familiarizarse con el nivel moderno de comprensión.


1
Haces una muy buena pregunta. Estoy interesado en los algoritmos de teoría de números, así que ya he mirado la teoría de números algorítmicos de Bach y Shallit. Sin embargo, estoy buscando libros que desarrollen mis técnicas de desarrollo algorítmico más allá de Cormen.
Eugene

1
No busco profundidad, sino amplitud. No es una teoría de la complejidad fundamental, sino una introducción a algoritmos / estructuras de datos de las que escucho pero que no estoy en CLRS (o solo estoy presente como problemas) para agregar al arsenal de programación de cosas que he escuchado; cosas como: búsqueda A *, Best First Search, filtros Bloom, compresión de archivos / imágenes, Burstsort, modelo Hidden Markov, clasificadores Naive Bayes, algoritmos cuánticos, listas de omisión, TimSort, Treaps, Tries, algoritmos de diagrama de Voronoi, etc. Incluso si es solo una colección de artículos interesantes sobre una variedad de temas como Bentley's Programming Pearls.
dr jimbob

16

Como otros han señalado, los libros sobre algoritmos (avanzados) se seleccionan mejor por tema. Una referencia general buena pero pesada con un análisis riguroso es probablemente The Art of Computer Programming de Knuth.

En cuanto a las técnicas de análisis, es posible que le interese una Introducción al análisis de algoritmos de Sedgewick y Flajolet, y Combinatoria algorítmica de Flajolet y Sedgewick para obtener más teoría en la misma dirección.

Para obtener información sobre cómo abordar problemas difíciles, consulte Algoritmos para problemas difíciles de Hromkovič.


5

¿Has mirado el Manual de informática teórica

Si desea ir más allá de los algoritmos imperativos y pasar a la programación funcional, eche un vistazo a las estructuras de datos puramente funcionales . Sé que el título dice estructuras de datos, pero los algoritmos en el libro pueden abrir sus ojos a una forma diferente de programación.

EDITAR

Eché un vistazo a la descripción del curso para CS 787 y las clases actuales

Nota

Utilizaremos principalmente artículos de la literatura. Estos estarán disponibles ya sea como folletos o en la web. Se reservarán varios libros sobre algoritmos en la biblioteca Wendt.

Si fuera yo, me pondría en contacto con el directorio de instructores . :)


No, no he visto el manual. ¡Gracias por la sugerencia!
Eugene

Guau. No pude encontrar la información del curso. Gracias por el enlace.
Eugene

-2

Los algoritmos informáticos son un tema muy complejo y difícil de entender, por lo que no existe el mejor libro, es decir, solo un libro que le explique todo. Necesita leer un par de ellos para familiarizarse con este tema.

Aquí están mis 2 centavos basados ​​en mis 10 años de programación y asistiendo a numerosas entrevistas:

  1. Manual de diseño de algoritmos de Steven S. Skiena
  2. Algoritmos ( http://algs4.cs.princeton.edu/home/ ) por Sedgwick
  3. Introducción a los algoritmos de Thomas Cormen
  4. Algoritmos para entrevistas de Adnan Aziz
  5. Algoritmos de Python: Dominar Algoritmos Básicos en el Lenguaje Python
  6. Algoritmos desbloqueados por Thomas Cormen

Referencia:


44
¿ Y por qué me recomiendan estos?
Raphael

3
En particular, ¿por qué recomienda la "Introducción a los algoritmos" de Cormen et al. En respuesta a una pregunta que solicita libros que van más allá de ese libro?
David Richerby
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.