Pensamientos seleccionados sobre el diseño de algoritmos
"Algorithm Design" es un libro de bolsillo escrito por Jon Kleinberg/?va Tardos y publicado por People's Posts and Telecommunications Publishing House. El precio de este libro es: 119,00 yuanes, el número de páginas: 503. Y está cuidadosamente compilado de Internet. Los comentarios de algunos lectores después de leerlo, espero que sean útiles para todos.
Reflexiones después de leer "Diseño de algoritmos" (1): Algoritmos
Es un poco como un libro introductorio. No hay código para la implementación específica del algoritmo después de cada parte. Del conocimiento aprendido, habrá algunos en el libro. Los ejemplos y ejercicios son adecuados para personas que desean tener una comprensión general y profunda de los algoritmos informáticos. Este libro contiene muchos algoritmos, que son muy completos y completos. -profundidad (para un novato como yo). Las imágenes y el texto del libro son muy claros y muy cómodos de leer. Todo el libro es relativamente grande y grueso, lo que lo hace incómodo de transportar. Es adecuado para rellenar un monitor.
Pensamientos después de leer "Diseño de algoritmos" (2): Diseño de algoritmos
Echemos un vistazo al autor Jon Kleinberg, miembro de la Academia Nacional de Ciencias (NAS). , la Academia Nacional de Ingeniería (NAE) y las Humanidades Estadounidenses. Es académico de tercer nivel de la Academia de Ciencias (AAAS) y es una figura "legendaria" en el campo de la informática. Además, también ganó el "Premio Newanglina" otorgado por el Congreso Internacional de Matemáticos. Este premio fue establecido por el Congreso de Matemáticos en reconocimiento a importantes contribuciones matemáticas en la ciencia de la información. Leí la versión en inglés una vez y finalmente salió la versión en chino, lo cual es muy emocionante
Pensamientos después de leer "Diseño de algoritmos" (3): la solución más completa para los ejercicios
Este libro no es solo Está lleno de detalles, y los ejercicios con respuestas al final de cada capítulo son el toque final. Generalmente, las respuestas a los ejercicios del libro son la solución final o un análisis simple. Las respuestas sugeridas en este libro tienen casi todos los puntos escritos en el libro. Facilitan que las personas comprendan su significado.
La investigación de algoritmos presentada en este libro comienza a partir de los problemas que surgen en diversas aplicaciones informáticas, se basa en la comprensión de la tecnología de diseño de algoritmos y finalmente obtiene soluciones efectivas a estos problemas.
Comentarios después de leer "Diseño de algoritmos" (4): El autor es un científico con amplia experiencia en algoritmos. "Diseño de algoritmos" se ha convertido en un libro de texto para muchas universidades, como la Universidad de Washington.
"Algorithm Design" es un éxito de ventas desde hace 15 años.
Hay muchos libros de algoritmos, ¿cómo elegir? El libro de algoritmos que Async le recomienda hoy tiene una calificación alta de 4,5 estrellas en Meiya y se ha ganado el reconocimiento de los lectores. Lo que es más digno de mención es que este libro también es un libro de texto de algoritmos seleccionado por muchas universidades extranjeras reconocidas. Este libro es "Diseño de algoritmos". No se puede decir que todos los programadores hayan leído este libro, pero como libro de texto de algoritmos en las universidades, definitivamente es un libro clásico para que los principiantes comiencen. A juzgar por el título del libro, parece que los algoritmos y el "diseño" se combinan, por lo que mucha gente piensa que este puede no ser un libro de algoritmos de nivel básico. Pero, de hecho, este libro incluye conocimientos muy ricos y puede utilizarse como el primer libro de algoritmos para principiantes y como material didáctico básico para que los programadores maestros lo consoliden. ¿Por qué se combina con "diseño"? Comencemos también con los dos autores de la filosofía de los algoritmos de este libro.
1. La tecnología de diseño de algoritmos a los ojos de los científicos
Los autores de "Algorithm Design" son Jon Kleinberg (en adelante, Jon) de Estados Unidos e Igor de Hungría. Eva Tados (en adelante Eva). Respecto a los problemas algorítmicos, presentan este punto de vista: "Los problemas algorítmicos forman el núcleo de la informática, pero rara vez aparecen en forma de problemas matemáticos claros y precisos. Por el contrario, a menudo tienen muchos detalles confusos y específicos del programa que son están enredados por algunos que son cruciales y otros que son intrascendentes". Por lo tanto, argumentan que los problemas algorítmicos constan de dos partes básicas: obtener un núcleo matemáticamente claro del problema y, en segundo lugar, llegar al núcleo del problema. La estructura determina las técnicas de diseño de algoritmos apropiadas. . Las dos partes interactúan entre sí: cuanto más cómodo te sientes con cada técnica de diseño posible, más reconoces las claras descripciones formales de los caóticos problemas del mundo. En su forma más efectiva, las ideas algorítmicas no sólo brindan soluciones a problemas apropiados, sino que constituyen un lenguaje que permite a los programadores que estudian algoritmos expresar problemas básicos con claridad. Por lo tanto, Jon y Eva decidieron incorporar los cálculos de diseño a la investigación de algoritmos.
Son muy conscientes de que el proceso de diseño generalmente comienza con problemas que surgen en diversas aplicaciones informáticas, se basa en la comprensión de las técnicas de diseño de algoritmos y, en última instancia, conduce a soluciones efectivas a estos problemas. Por lo tanto, intentan explorar el papel de las ideas algorítmicas en la informática y relacionar estas ideas con algunos problemas formulados con precisión. Diseñan algoritmos para estos "problemas" y realizan análisis. A partir de dicha investigación surgió el libro "Diseño de algoritmos". Jon y Eva establecieron el objetivo de este libro como: cómo identificar formas descriptivas claras de problemas algorítmicos en problemas complejos en diferentes dominios informáticos y proporcionar sugerencias sobre cómo diseñar algoritmos eficaces para los problemas resultantes. Con este fin, reorganizaron los resultados de su investigación, desde los métodos iniciales más simples hasta incluso las soluciones finales, para ayudar a todos a comprender mejor los algoritmos complejos. Los lectores que hayan leído este libro sentirán que este libro no es el camino más directo desde el planteamiento del problema hasta el algoritmo, pero puede reflejar directamente la forma en que los programadores realmente piensan sobre estos problemas.
2. El científico detrás del trabajo clásico
Jon Kleinberg
Jon es un informático estadounidense que nació en 1996. Recibió su Ph.D. MIT en 2006 y actualmente es profesor de informática en la Universidad de Cornell. Desde 1995, Jon ha estado investigando en IBM Research, centrándose en el análisis matemático y el modelado de estructuras de combinación de información y redes. Jon ha recibido becas de investigación de la Fundación Packard y la Fundación Sloan. Su investigación se centra en algoritmos, especialmente aquellos relacionados con la estructura de redes y la información, y su aplicación en ciencias de la información, optimización, minería de datos y aplicaciones en biología, etc. Su trabajo utilizando centros de información e información autorizada para el análisis web fue fundamental para formar la base de la última generación de motores de búsqueda de Internet. Jon ha ganado numerosos premios en el campo de la informática. Ha recibido premios reconocidos como el Premio a la Carrera de la Fundación Nacional de Ciencias, el Premio al Joven Investigador de la Oficina de Investigación Naval y el Premio a la Innovación Destacada de IBM. Otra autora, Eva, también es profesora de informática en la Universidad de Cornell y matemática.
Eva Tardos
En 1981, Eva estudió un doctorado en la Universidad Eötvös Eötvös en Hungría bajo la dirección de su supervisor András Frank. En 2006, Eva comenzó a desempeñarse como Decana del Departamento de Ciencias de la Computación de la Universidad de Cornell. En 2007, Eva fue elegida miembro de la Academia Nacional de Ingeniería, la Academia de Artes y Ciencias y la Sociedad Filosófica Estadounidense. También es académica de ACM. Eva ha recibido el Premio Fulkerson, el Premio George B. Danziger, el Premio Gödel y el Premio EATCS. En 2019, Eva también recibió la medalla IEEE John von Neumann. Los intereses de investigación de Eva se centran en el diseño de algoritmos y el análisis de problemas de gráficos y redes. Es conocida por su trabajo sobre algoritmos de flujo de red y algoritmos aproximados para problemas de red. Esto incluye la teoría algorítmica de juegos, un campo emergente que se ocupa del diseño de sistemas y algoritmos para usuarios egoístas.
3. Diferentes libros de algoritmos
Este libro es un libro de texto clásico sobre diseño y análisis de algoritmos. Los dos autores lo organizan en torno al diseño de algoritmos y combinan la teoría de los algoritmos con la combinación de problemas prácticos y. Analizar múltiples ejemplos típicos de cada tecnología de algoritmo es extremadamente esclarecedor. Se dedica una gran cantidad de espacio en el libro a la descripción formal de problemas algorítmicos, así como al diseño y análisis de algoritmos para ese problema. La ventaja de este tipo de escritura es que se puede desarrollar el algoritmo utilizando técnicas de diseño adecuadas, probar sus propiedades y analizar su eficiencia. Además de la amplia cobertura de contenido, la característica más importante de este libro es que tiene más de 200 ejercicios interesantes, así como problemas de PSPACE, complejidad de parámetros y otros contenidos.
Esta es la mayor diferencia entre "Diseño de algoritmos" y otros libros de algoritmos. Esto fue parte de los cursos de enseñanza de Jon y Eva en la Universidad de Cornell, y casi todas las preguntas se desarrollaron en tareas fuera de clase o se probaron en cuestionarios en clase. Consideran las preguntas como una parte importante del libro y mantienen la estructura del conjunto de preguntas coherente con su enfoque general del contenido. La mayoría de ellos contienen descripciones textuales detalladas de los problemas que surgen en las aplicaciones informáticas o en otros lugares. Parte del problema también es la práctica de los problemas que analizan en el libro de texto: establecer la notación y formalización necesarias, diseñar un algoritmo y luego analizar este algoritmo y demostrar que es correcto.
Para ayudar a abordar estos problemas, incluyen una sección en cada capítulo llamada "Ejercicios con soluciones" que analiza uno o más problemas y describe cómo formalizar una solución. Por lo tanto, una discusión dedicada a cada ejercicio con soluciones llevaría mucho más tiempo que simplemente escribir una solución completa y correcta. De hecho, la discusión en estas secciones, como el resto del libro, debe verse como un intento de proporcionar una comprensión del proceso más amplio mediante el cual se pueden considerar problemas de este tipo y, en última instancia, conducir a la elaboración de soluciones exactas. Vale la pena mencionar que dado que este libro ha sido ampliamente adoptado por universidades extranjeras, los consejos de Jon y Eva sobre el aprendizaje están más orientados a los estudiantes universitarios. Sugieren que antes de leer este libro, los principiantes deberían tomar primero un curso básico de informática basado en programación y haber escrito programas para implementar algoritmos básicos, manipular estructuras discretas (árboles y gráficos) y aplicar estructuras de datos básicas (como matrices, listas). , colas y pilas).
Siguiendo las ideas anteriores, utilizaron muchos problemas de la informática y campos relacionados para desarrollar técnicas básicas de diseño de algoritmos. Incluye sistemas y aplicaciones de red (almacenamiento en caché, conmutación, enrutamiento entre dominios en Internet), inteligencia artificial (planificación, juegos, redes Hopfield), visión por computadora (segmentación de imágenes), minería de datos (detección de puntos de cambio, agrupación), investigación de operaciones ( programación de rutas) y biología computacional (alineación de secuencias, estructura secundaria de ARN).
"Algorithm Design", del que son coautores Jon y Eva, se organiza en torno al diseño de algoritmos, deconstruye y analiza ejemplos típicos de múltiples tecnologías de algoritmos y combina algoritmos con problemas prácticos. ¡Se puede decir que este es de hecho un libro de algoritmos clásico poco común!