¿Es normal no entender el algoritmo de Dijkstra si no tengo ningún conocimiento previo sobre algoritmos?

Me encontré por primera vez con el algoritmo de Dijkstra en mis cursos de pregrado cuando tenía 20 años en el año 2000. Fue a través de un libro de texto muy difícil de leer. Era casi imposible entender la lógica de relajación del borde.

Tradicionalmente, el conocimiento ha sido protegido por un grupo de élite y lo hicieron muy difícil de entender para la gente común. Los autores se aseguran de que no haya suficiente ilustración para las ecuaciones matemáticas o que esperen que sus lectores tengan un alto nivel de experiencia en matemáticas y / u otros dominios adyacentes. Hay muchos algoritmos que nunca hubiera entendido si simplemente mirara sus modelos matemáticos como se describe en los libros de texto. Lo mismo ocurre con el algoritmo de Dijkstra.

Pero hoy vivimos en un mundo diferente. Desearía tener todos los recursos disponibles en aquellos días. Puede ir a sitios web como Khan Academy o ver videos en YouTube donde las personas ofrecen una ilustración gráfica muy agradable y fácil de entender del algoritmo en acción. Esto hace que el conocimiento esté al alcance de la gente común.

Recuerdo una cita a la que Einstein hizo referencia en su libro “Un supuesto descubrimiento científico no tiene mérito a menos que pueda explicarse a una camarera”. (La cita se atribuye popularmente a Lord Rutherford de Nelson)

Finalmente para responder a su pregunta, está perfectamente bien no entender el algoritmo de Dijkstra la primera vez. Puede llevarme hasta 30 minutos escribir el software correcto para el algoritmo Dijsktra’a incluso hoy, por lo que no es un problema muy trivial. Puedes ver videos de YouTube o tutoriales de la Academia Khan y una vez que entiendes puedes leer tu libro de texto original nuevamente y esta vez la web es mucho mejor.

Punto de bonificación: pruebe el algoritmo de Dijkstra con pesos negativos.

Se espera

No puede simplemente, sin saber nada sobre un campo de la ciencia, elegir un problema en el campo y comprenderlo bien, porque carece del conocimiento previo requerido que adquiriría al leer un libro completo sobre el tema o un curso (o más dependiendo de lo complejo que sea) sobre el tema. Esto se aplica a casi todo y, por supuesto, también a los algoritmos.

Mi sugerencia es conseguir un libro sobre el tema e ir desde el principio. Los “Algoritmos en C” de Sedgewick me enseñaron bastante, antes de firmar un curso de maestría donde aprendí muchas más cosas que no puedes simplemente aprender de un libro. Es una lectura bastante fácil y no requiere un amplio conocimiento de matemáticas y le sugiero que vaya desde allí.