Algoritmos: ¿Cómo visualizo y resuelvo problemas de retroceso?

Así que recientemente he estado lidiando mucho con problemas de teoría de grafos y también he tenido problemas con eso.

He intentado varias soluciones, como sentarme con los ojos cerrados e intentar dibujar líneas, pero nada de eso parecía funcionar. Luego me topé con una solución recientemente que me ha ayudado enormemente.

El método es bastante fácil, lo que emplea es una estructura de árbol genérica. Dibuje un árbol con un nodo y dos ramas, una rama que simboliza un curso de acción y la otra que simboliza otro. Luego dibuja dos ramas para cada uno de ellos hasta que finalmente llegues a la respuesta correcta. No es tan loco como la fuerza bruta y probar cada posibilidad, pero no voy a mentir, lleva un tiempo ser bueno en eso. Si su condición, llamémosla ‘x’ por simplicidad, se cumple en un punto, pare y tome ese camino. Si no, retroceda hasta el nodo inicial original y comience de nuevo, con esta ruta eliminada. Es una solución recursiva para los algoritmos de retroceso y no emplea mucha iteración. Si eres recurrente indefinidamente, puedes obtener un error de desbordamiento de pila, si tienes, 100,000 rutas diferentes para usar. Me pasó una vez en un entorno en línea, pero nunca en la computadora portátil de mi casa.

Me ayudó a visualizarlo un poco y eventualmente me volví bastante bueno en eso, espero que te ayude de la misma manera.

¡Buena suerte!
Gracias por la A2A
Si tiene problemas más específicos, hágame preguntas o envíeme un mensaje.

Siempre usé el enfoque de resolución de laberintos para explicar, retroceder:

1. Llegas a un punto con múltiples ramas posibles.
2. Usted elige una rama y continúa reenviando.
3. Si golpeas un bloque. Regresas a la unión de varias ramas y eliges una rama diferente, hasta que puedas resolver el laberinto.

Esto es lo que recomiendo a todos IDeserve
Es una plataforma genial donde puede visualizar los algoritmos y las estructuras de datos dentro de ella.
Creo que es la mayor fuente de algoritmos que puede visualizar, incluidos los problemas de retroceso.
Es genial ver algoritmos ejecutados y animados sobre la marcha.

More Interesting

¿Qué problemas alguna vez se pensó que no podían resolverse en el tiempo polinómico, pero finalmente lo fueron?

¿Cuál es la complejidad computacional de un problema de clasificación? ¿Es P o NP?

Si soy bueno en matemáticas, ¿seré bueno en programación?

¿Cómo podemos entender profundamente la criptografía de curva elíptica y su implementación en cualquier lenguaje de programación?

Empleos y carreras: ¿Puedo conseguir un trabajo en un lugar como Google, Facebook, etc. con un título en matemáticas?

¿Cuáles son algunos problemas simplemente en teoría de grafos o combinatoria para estudiantes universitarios?

¿Qué habilidades matemáticas te ayudarán a prepararte para obtener un título en ciencias de la computación?

Informática teórica: ¿se puede crear una máquina que sea más poderosa que una máquina de turing?

¿Cómo fueron procesadas las tiras de cinta por modelos posteriores de la Máquina Turing y por qué usar cinta?

¿Podemos crear música original a través de la permutación digital?

¿Cómo se puede lograr acceso aleatorio en O (log n)?

¿La teoría de números todavía parece ser central o el área más importante de las matemáticas?

¿Qué oración en el lenguaje de la aritmética de Peano es equivalente a decir que un programa dado se detendrá?

¿Cuál es la diferencia entre la informática teórica y las matemáticas discretas?

¿Cuál sería la relación más efectiva entre las matemáticas y la programación en educación?