Backtracking VentajasyDesventajas Esquema Búsqueda TU CAMINO 13 de Agosto 2022 Interactiva














19 Busqueda e interseccion en vectores adecuados 14 Perfil de un programa 21 Utilizar las estructuras de datos 8 Método de Ir Hacia Atrás (Backtracking) Conjuntos32 TU CAMINO 13 de Agosto 2022 Búsqueda Interactiva







PASATIEMPOS EDITOR(A) Myrlet Ruiz Veronica Torres JEFE DE MULTIMEDIA Myrlet Ruiz Veronica Torres DISEÑADORA WEB Myrlet Ruiz Veronica Torres REDES SOCIALES Myrlet Ruiz Veronica Torres 2022 Editorial Tu Camino Todos los derechos reservados TU CAMINO 13 de Agosto 2022 Búsqueda Interactiva







Este famoso método hacia atrás o también conocido como backtracking, tiene como función encontrar una solución intentando con una de varias opciones, en la que dado el caso la elección es incorrecta, el cómputo retrocede o vuelve a comenzar desde el punto de decisión anterior y lo intenta con otra opción, básicamente consiste en una técnica de recursión intensiva que busca resolver problemas por partes o etapas, existe una manera muy práctica de entenderlo y es que este método utiliza como árbol de decisiones la propia organización de la recursión, a través del cual si ejerce la función de avance de etapa, hace lo que comúnmente conocemos como un llamado recursivo, si por el contrario retrocede, finalizara el proceso recursivo, permitiéndole volver al estado anterior por la pila de entornos creada en la misma recursión, es por esta razón que este método se relaciona como un árbol implícito, normalmente denominado árbol de expansión o espacio de búsqueda, en este sentido este método recursivo tiene como principal objetivo brindar soluciones por etapas de manera exhaustiva, usando prueba y error para obtener la solución completa del problema añadiendo decisiones a las soluciones parciales.
MétododeIr HaciaAtrás (Backtracking)
Derrick Henry " Dick"Lehmer Nacio el 23 de febrero de 1905 ,murio el 22 de mayo de 1991, casi siempre citado como DH Lehmer , fue un matemático estadounidense importante para el desarrollo de la teoría computacional de números.
Lehmer recibió una maestría y un doctorado. , ambos de la Universidad de Brown, en 1929 y 1930, respectivamente; su esposa también obtuvo una maestría en 1930, entrenando matemáticas para complementar los ingresos familiares, mientras ayudaba a su esposo a escribir su doctorado. tesis, Una teoría extendida de las funciones de Lucas , que escribió con Jacob Tamarkin .




a. Representación de la solución en una lista ordenada (X1, X2,…, Xn).
MétododeIr HaciaAtrás (Backtracking)
g. En cada paso se elige un candidato y se añade a la solución, y se avanza en la solución h.parcial.Sino es posible continuar en la construcción hacia una solución completa, se abandona ésta y la última componente se cambia por otro valor.
En su forma básica, la idea de backtracking se asemeja a un recorrido en profundidad dentro de un grafo dirigido. El grafo en cuestión suele ser un árbol, o por lo menos no contiene ciclos, sea cual sea su estructura, existe sólo implícitamente. El objetivo del recorrido es encontrar soluciones para algún problema, el recorrido tiene éxito si, procediendo de esta forma, se puede definir por completo una solución, en este caso el algoritmo puede bien detenerse, si lo único que se necesita es una solución del problema o bien seguir buscando soluciones alternativas si deseamos examinarlas todas.
c. Unas restricciones a los candidatos para rellenar la lista: Implícitas del problema. Valores que puede tomar cada valor Xi Explícitas o externas al problema d. Una función de poda para eliminar partes del árbol de búsqueda e. Organización del problema en un árbol de búsqueda. f. Construir la solución al problema en distintas etapas.
i. Si no quedan más valores por probar, se retrocede al candidato anterior, se desecha, y se selecciona otro candidato.
Es importante tener en cuenta que al diseñar este algoritmo se debe considerar los siguientes elementos:
b. Una función objetivo para determinar si la lista a analizar es una solución.





Dada la gran la existencia de problemas que no tienen un algoritmo claro y fuerte para su resolución o al menos, no cuentan con un algoritmo eficiente para calcular su solución, surge la necesidad de implementar este método de recursión, ya que es una exploración directa de todas las posibilidades, lo que posteriormente podrá dirigir a resultados concretos, es así como se puede destacar el papel protagónico que juega este el mismo, debido a que posee una amplia gama de aplicaciones y usos.
¿Para qué se utiliza este método?
Dentro de los cuales se puede resaltar, el método matemático de optimización programación dinámica, ya que permite resolver diversas ecuaciones, tambien en la teoría de juegos, gracias a su habilidad para calcular el equilibrio perfecto en los juegos secuenciales, donde hay que tener en cuenta que la optimización implica un solo tomador de decisiones, este se encarga de hacer la elección en un determinado intervalo de tiempo, incluso podemos notar la presencia de este método en el ajedrez bajo una característica retrospectiva, en los campos relacionados con la planificación, programación y demostración automática de teoremas, este método resulta indispensable, es importante destacar que la técnica de Backtracking es usada en muchos ámbitos de la programación, por ejemplo, para el cálculo de expresiones regulares o para tareas de reconocimiento de texto y de sintaxis de lenguajes regulares, también es usado incluso en la implementación de algunos lenguajes de programación, tales como Planner o Prolog y da soporte a muchos algoritmos en inteligencia artificial.









Es muy intuitivo de codificar. Es casi como un niño pequeño tratando de resolver el Esproblema.muyfácil de implementar y contiene menos LOC. La mayoría de los códigos de seguimiento son generalmente pocas líneas de código de función recursivo. Se adapta a características en especifico de el problema.
Ventajasdelmétodo Backtracking






Thrashing: Ocurre porque el algoritmo estándar de backtracking no identifica la verdadera razón del conflicto, es decir, las variables en conflicto. Por lo tanto, la búsqueda en diferentes partes del espacio sigue fallando por la misma razón.
Trabajo redundante. Incluso si los valores en conflicto de las variables se identifican durante el retroceso inteligente, no se recuerdan para la detección inmediata del mismo conflicto en un cálculo posterior.
Hay tres inconvenientes principales del esquema de retroceso estándar.
Detecta el conflicto demasiado tarde .ya que no es capaz de detectar el conflicto antes de que realmente ocurra, es decir, después de asignar los valores a todas las variables de la restricción en conflicto. Sin embargo este inconveniente se puede evitar aplicando técnicas de consistencia para verificar hacia adelante los posibles conflictos.
Desventajasdel método Backtracking







Método de resolución Es un esquema que de manera sistemática y organizada, genera y recorre un espacio que abarca todas las posibles secuencias de decisiones. Pertenece a un recorrido en profundidad o en preorden.
(Caracterización de los problemas de Backtracking y Método de resolución)
Este espacio se denomina el espacio de búsqueda del problema o el espacio de Primerasolucionesimplicación: Si existe solución, seguro que la encuentra.
Esquema de vuelta atrás: Backtracking
Caracterización de los Problemas: Suelen ser problemas de optimización, con o sin limitaciones.
La solución se puede expresar como una serie de decisiones. Hay una función denominada factible que puede decir si la secuencia de decisiones, la solución actual, viola las restricciones o no. Hay una función denominada solución, que ayuda a determinar si una posible secuencia de decisión es la solución al problema programado.




La secuencia de decisiones factible formada por los nodos en el camino que va desde la raíz a v se denomina solución en curso, y v es el nodo en curso.
ESPACIO DE BÚSQUEDA Dimensiones Topología Terminología de vuelta atrás: Backtracking (Caracterización de los problemas de Backtracking y Método de resolución)
Una secuencia de decisiones es factible si no viola las restricciones.
Todos los nodos que forman parte de cualquier ruta desde la raíz del espacio de búsqueda hasta cualquier nodo del espacio de búsqueda representan una cadena de decisiones.
La anchura del espacio: cada decisión tiene asociado un dominio formado por j valores distintos.
La altura del espacio: hay k decisiones que tomar para formar una solución.
En otros casos el concepto de solución es más amplio y cualquier secuencia factible, prolongable o no_prolongable, se considera solución.
Esquema
Para muchos problemas se tiene que una solución es cualquier secuencia de decisiones factible y no prolongable → sólo cuando se está en una hoja se tiene una solución.
Una secuencia de decisiones es prolongable si es posible añadir más decisiones a la secuencia y no prolongable en caso contrario. Que una secuencia sea no prolongable equivale a que el último nodo de la secuencia es una hoja del espacio de búsqueda.
Habitualmente el espacio de búsqueda es un árbol, aunque puede ser un grafo como en el caso de los grafos de juego.

Esquema de vuelta atrás: Backtracking (Caracterización de los problemas de Backtracking y Método de resolución) coste El tiempo necesario para recorrerlo es del mismo orden. Segunda implicación: el coste exponencial en el caso peor de Vuelta Atrás.



(Caracterización de los problemas de Backtracking y Método de resolución) Esquema
Esquema de vuelta atrás: Backtracking
Vuelta Atrás hace un recorrido en profundidad del espacio de búsqueda partiendo de la raiz El recorrido en profundidad regresa sobre sus pasos, retrocede, cada vez que Encuentra un camino que se ha acabado o por el que no puede continuar En un recorrido en profundidad o en un recordo en anchura de un espacio de búsqueda se conoce de antemano el orden en que se van a generar, recorrer, sus nodos Son recorridos ciegos porque fijado un nodo del espacio se sabe cual es el siguiente que se va a generar.


Esquema de vuelta atrás: Backtracking (Caracterización de los problemas de Backtracking y Método de resolución) Una solución




Esquema de vuelta atrás: Backtracking (Caracterización de los problemas de Backtracking y Método de resolución) Todas las soluciones



Esquema de vuelta atrás: Backtracking (Caracterización de los problemas de Backtracking y Método de resolución) Mejor solución



Programa de la vida real utilizando este método de Ir Hacia Atrás. (Backtracking) en C++ Es adecuado para resolver un Sudoku, donde podemos asimilar cada combinación posible de números en el tablero como un nodo del árbol.



Programa de la vida real utilizando este método de Ir Hacia Atrás. (Backtracking) en C++


Programa de la vida real utilizando este método de Ir Hacia Atrás. (Backtracking) en C++


Programa de la vida real utilizando este método de Ir Hacia Atrás. (Backtracking) en C++







PASATIEMPO





PASATIEMPO



