SlideShare una empresa de Scribd logo
BACKTRACKING
ANTONIO CANTILLO
Que es ?
• Es una técnica algorítmica que consiste en la resolución de
problemas mediante la búsqueda sistemática de soluciones
exhaustivas. Comúnmente, esta técnica hace uso de la
recursividad, y es importante que domines la implementación de
las llamadas recursivas con destreza antes de continuar
¿Cómo trabaja?
• El procedimiento general se basa en la descomposición de la tarea a
realizar en su tareas o soluciones parciales. El método proporciona una
manera sistemática de generar todas las posibles soluciones, La
descripción natural del proceso se representa mediante un árbol de
búsqueda en el que se muestra como cada tarea se descompone o se
ramifica en su tareas
EJEMPLO
• Considerando el conjunto {1, 2, 3}, encontrar todos los subconjuntos que
entre sus elementos sumen 4. Tomando en cuenta el orden de los
elementos; es decir, el subconjunto {1, 3} será distinto de {3, 1}.
Alternativas: 1, 2 y 3
Subtarea: suma
acumulativa
Solución: suma
igual a 4
El recorrido se construye eligiendo una alternativa del conjunto de
opciones disponibles de cada subtarea del proceso, por cada subtarea
se verifica si cumple con la solución del problema; si se encuentra una
alternativa incorrecta, la búsqueda retrocede hasta el paso anterior y
toma la siguiente alternativa. Cuando se han terminado las
posibilidades, se vuelve a la elección anterior y se toma la siguiente
opción. Si no hay más alternativas la búsqueda falla.
BACKTRACKING RECURSIVO E
ITERATIVO
• La resolución de cada subtarea es similar a la resolución de la tarea
padre, por ello, es común que para implementar algoritmos con
BACKTRACKING se hace uso de las funciones recursivas, en cada llamada
a la función se asigna diferentes valores, probando todos los valores
posibles, y manteniendo aquella que haya tenido éxito en las anteriores
llamadas recursivas.
TIPOS DE BACKTRACKING
• En el esquema general el backtracking encuentra una única
solución, independientemente de que hubiesen más, pero existen
variantes del esquema que ofrecen más posibilidades a la hora de buscar
soluciones.
LA PRIMERA SOLUCIÓN
• Este es el esquema general, donde el algoritmo se detiene y se devuelve
al momento de encontrar la primera solución, sin considerar el resto de
las ramas del árbol de exploración, ni siquiera que la que ha conseguido
no sea la mejor. El siguiente “pseudocódigo” muestra una plantilla del
esquema general.
Backtracking
TODAS LAS SOLUCIONES
• Explora todo el espacio de búsqueda para obtener el conjunto de todas las
soluciones que satisfacen el problema. Cada vez que se encuentre con una
solución completa, la guarda en una estructura de datos y continúa el
recorrido hasta que no queden más posibilidades por explorar. El esquema
general se puede modificar para que adopte esta variante.
Backtracking
LA MEJOR SOLUCIÓN
• Procesa todo el espacio de búsqueda, similar a la anterior, a diferencia en
que a medida que se van obteniendo nuevas soluciones se compararan
con la mejor que se tenía hasta los momentos, y de ser mejor se queda
con la nueva
http://www.widget-101.com/codigo/backtracking-recursivo/

Más contenido relacionado

PDF
LR(1) CLR(1) Parser with Example
PPTX
Método de Búsqueda Hash
PPT
PPT
Backtracking
PDF
11 Curso de POO en java - métodos constructores y toString()
PDF
Algoritmo de ordenamiento: Heap Sort
PDF
Polimorfismo
PPTX
Búsqueda A*
LR(1) CLR(1) Parser with Example
Método de Búsqueda Hash
Backtracking
11 Curso de POO en java - métodos constructores y toString()
Algoritmo de ordenamiento: Heap Sort
Polimorfismo
Búsqueda A*

La actualidad más candente (20)

PPTX
hashing y colisiones
PPTX
Threaded Binary Tree
PDF
Revisando la jerarquía de chomsky
PPTX
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
PPTX
Tablas Hash
PPTX
Método de Vuelta Atrás (Backtracking)
DOCX
Pilas como estructura de datos..
PPT
Pilas En C++
PDF
Analisis sintactico
PDF
PL/SQL TRIGGERS
PDF
TABLA DE SÍMBOLOS
DOCX
ADT STACK and Queues
DOCX
Listas como estructura de datos..
PPTX
Loops in C
PDF
Colecciones en Python
PPTX
Herencia y Polimorfismo
PDF
Punteros y Arreglos
PPTX
2.3.3 Busqueda Hash.pptx
PDF
Cuadro combinado filtrado microsoft access - todoexpertos.com
PPTX
Getters_And_Setters.pptx
hashing y colisiones
Threaded Binary Tree
Revisando la jerarquía de chomsky
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Tablas Hash
Método de Vuelta Atrás (Backtracking)
Pilas como estructura de datos..
Pilas En C++
Analisis sintactico
PL/SQL TRIGGERS
TABLA DE SÍMBOLOS
ADT STACK and Queues
Listas como estructura de datos..
Loops in C
Colecciones en Python
Herencia y Polimorfismo
Punteros y Arreglos
2.3.3 Busqueda Hash.pptx
Cuadro combinado filtrado microsoft access - todoexpertos.com
Getters_And_Setters.pptx
Publicidad

Destacado (20)

PDF
Baterias para buses electricos: Caracteristicas, riesgos y ventajas
PPTX
Autores frank y mark
PPTX
Recursos renovalbles
PPTX
Diapositivas proyecto
PPTX
Franquicia venta online
PPTX
Competencia perfecta
PPTX
Pat final
PPT
1. marco conceptual reese jun 2013
PPT
PPT
10 andrea tutorial 1
PPTX
Tutorias ana
PPTX
Aprendizaje colaborativo
PPTX
Pp spss 4.2
PPTX
Como subir un video a blogger
PPTX
Presentation10
PPTX
Mesopotamia
PDF
Mapa mental contrato incapacidad.-derecho romano-24-10-15.
PPTX
Culturas preincas2
PPTX
Abstracción relación entre tiempo y espacio
PPTX
Fundamentos de la educacion
Baterias para buses electricos: Caracteristicas, riesgos y ventajas
Autores frank y mark
Recursos renovalbles
Diapositivas proyecto
Franquicia venta online
Competencia perfecta
Pat final
1. marco conceptual reese jun 2013
10 andrea tutorial 1
Tutorias ana
Aprendizaje colaborativo
Pp spss 4.2
Como subir un video a blogger
Presentation10
Mesopotamia
Mapa mental contrato incapacidad.-derecho romano-24-10-15.
Culturas preincas2
Abstracción relación entre tiempo y espacio
Fundamentos de la educacion
Publicidad

Similar a Backtracking (20)

DOCX
Busqueda por backtracking
PPTX
3.1.5 Backtracking.pptx
PPTX
Esquema algorítmico del backtracking
PPTX
Esquema algorítmico del backtracking
PPTX
Algoritmo de backtracking
PPTX
Daniela mendozaestructuradedatosii
PPTX
TECNICAS DE RESOLUCION DE PROBLEMAS
PPTX
Backtracking
PPTX
2. Recursividad
PPTX
Bac k t r ac k i n luis saltaren
PPTX
Técnica del backtracking o vuelta atrás
PDF
Algoritmos por-omor-azuaje2
PPTX
No regresan valor c3. p3.
PPTX
Backtracking
PPTX
No regresan valor c3. p3.
PPT
3401667.ppt
PPTX
No regresan valor c3. p3.
PPTX
No regresan valor c2. p3.
PPTX
Analisis y diseño de algoritmo
DOCX
Teoria de optimizacion by. manuel rivas
Busqueda por backtracking
3.1.5 Backtracking.pptx
Esquema algorítmico del backtracking
Esquema algorítmico del backtracking
Algoritmo de backtracking
Daniela mendozaestructuradedatosii
TECNICAS DE RESOLUCION DE PROBLEMAS
Backtracking
2. Recursividad
Bac k t r ac k i n luis saltaren
Técnica del backtracking o vuelta atrás
Algoritmos por-omor-azuaje2
No regresan valor c3. p3.
Backtracking
No regresan valor c3. p3.
3401667.ppt
No regresan valor c3. p3.
No regresan valor c2. p3.
Analisis y diseño de algoritmo
Teoria de optimizacion by. manuel rivas

Backtracking

  • 2. Que es ? • Es una técnica algorítmica que consiste en la resolución de problemas mediante la búsqueda sistemática de soluciones exhaustivas. Comúnmente, esta técnica hace uso de la recursividad, y es importante que domines la implementación de las llamadas recursivas con destreza antes de continuar
  • 3. ¿Cómo trabaja? • El procedimiento general se basa en la descomposición de la tarea a realizar en su tareas o soluciones parciales. El método proporciona una manera sistemática de generar todas las posibles soluciones, La descripción natural del proceso se representa mediante un árbol de búsqueda en el que se muestra como cada tarea se descompone o se ramifica en su tareas
  • 4. EJEMPLO • Considerando el conjunto {1, 2, 3}, encontrar todos los subconjuntos que entre sus elementos sumen 4. Tomando en cuenta el orden de los elementos; es decir, el subconjunto {1, 3} será distinto de {3, 1}. Alternativas: 1, 2 y 3 Subtarea: suma acumulativa Solución: suma igual a 4
  • 5. El recorrido se construye eligiendo una alternativa del conjunto de opciones disponibles de cada subtarea del proceso, por cada subtarea se verifica si cumple con la solución del problema; si se encuentra una alternativa incorrecta, la búsqueda retrocede hasta el paso anterior y toma la siguiente alternativa. Cuando se han terminado las posibilidades, se vuelve a la elección anterior y se toma la siguiente opción. Si no hay más alternativas la búsqueda falla.
  • 6. BACKTRACKING RECURSIVO E ITERATIVO • La resolución de cada subtarea es similar a la resolución de la tarea padre, por ello, es común que para implementar algoritmos con BACKTRACKING se hace uso de las funciones recursivas, en cada llamada a la función se asigna diferentes valores, probando todos los valores posibles, y manteniendo aquella que haya tenido éxito en las anteriores llamadas recursivas.
  • 7. TIPOS DE BACKTRACKING • En el esquema general el backtracking encuentra una única solución, independientemente de que hubiesen más, pero existen variantes del esquema que ofrecen más posibilidades a la hora de buscar soluciones.
  • 8. LA PRIMERA SOLUCIÓN • Este es el esquema general, donde el algoritmo se detiene y se devuelve al momento de encontrar la primera solución, sin considerar el resto de las ramas del árbol de exploración, ni siquiera que la que ha conseguido no sea la mejor. El siguiente “pseudocódigo” muestra una plantilla del esquema general.
  • 10. TODAS LAS SOLUCIONES • Explora todo el espacio de búsqueda para obtener el conjunto de todas las soluciones que satisfacen el problema. Cada vez que se encuentre con una solución completa, la guarda en una estructura de datos y continúa el recorrido hasta que no queden más posibilidades por explorar. El esquema general se puede modificar para que adopte esta variante.
  • 12. LA MEJOR SOLUCIÓN • Procesa todo el espacio de búsqueda, similar a la anterior, a diferencia en que a medida que se van obteniendo nuevas soluciones se compararan con la mejor que se tenía hasta los momentos, y de ser mejor se queda con la nueva