SlideShare uma empresa Scribd logo
1 de 13
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.
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.
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/

Mais conteúdo relacionado

Mais procurados (20)

Grafos
GrafosGrafos
Grafos
 
Ejercicios parcial1
Ejercicios parcial1Ejercicios parcial1
Ejercicios parcial1
 
Técnica del backtracking o vuelta atrás
Técnica del backtracking o vuelta atrásTécnica del backtracking o vuelta atrás
Técnica del backtracking o vuelta atrás
 
Busquedas a Heuristicas
Busquedas a HeuristicasBusquedas a Heuristicas
Busquedas a Heuristicas
 
Control de flujo por hardware o software,
Control de flujo  por hardware o software,Control de flujo  por hardware o software,
Control de flujo por hardware o software,
 
Pilas
PilasPilas
Pilas
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Mètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsquedaMètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsqueda
 
Dijkstra
DijkstraDijkstra
Dijkstra
 
Guia de ejercicio sql
Guia de ejercicio sqlGuia de ejercicio sql
Guia de ejercicio sql
 
IA CAPITULO 4
IA  CAPITULO 4IA  CAPITULO 4
IA CAPITULO 4
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Búsqueda informada y exploración
Búsqueda informada y exploraciónBúsqueda informada y exploración
Búsqueda informada y exploración
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Autómatas Finitos
Autómatas FinitosAutómatas Finitos
Autómatas Finitos
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdf
 
Patrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. graspPatrones para asignar responsabilidades. grasp
Patrones para asignar responsabilidades. grasp
 
Infografia
InfografiaInfografia
Infografia
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 

Destaque

Destaque (20)

Baterias para buses electricos: Caracteristicas, riesgos y ventajas
Baterias para buses electricos: Caracteristicas, riesgos y ventajasBaterias para buses electricos: Caracteristicas, riesgos y ventajas
Baterias para buses electricos: Caracteristicas, riesgos y ventajas
 
Autores frank y mark
Autores frank y markAutores frank y mark
Autores frank y mark
 
Recursos renovalbles
Recursos renovalblesRecursos renovalbles
Recursos renovalbles
 
Diapositivas proyecto
Diapositivas proyectoDiapositivas proyecto
Diapositivas proyecto
 
Franquicia venta online
Franquicia venta onlineFranquicia venta online
Franquicia venta online
 
Competencia perfecta
Competencia perfectaCompetencia perfecta
Competencia perfecta
 
Pat final
Pat finalPat final
Pat final
 
1. marco conceptual reese jun 2013
1. marco conceptual   reese jun 20131. marco conceptual   reese jun 2013
1. marco conceptual reese jun 2013
 
Stefaanii
StefaaniiStefaanii
Stefaanii
 
10 andrea tutorial 1
10 andrea tutorial 110 andrea tutorial 1
10 andrea tutorial 1
 
Tutorias ana
Tutorias anaTutorias ana
Tutorias ana
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
Pp spss 4.2
Pp spss 4.2Pp spss 4.2
Pp spss 4.2
 
Como subir un video a blogger
Como subir un video a bloggerComo subir un video a blogger
Como subir un video a blogger
 
Presentation10
Presentation10Presentation10
Presentation10
 
Mesopotamia
MesopotamiaMesopotamia
Mesopotamia
 
Mapa mental contrato incapacidad.-derecho romano-24-10-15.
Mapa mental contrato incapacidad.-derecho romano-24-10-15.Mapa mental contrato incapacidad.-derecho romano-24-10-15.
Mapa mental contrato incapacidad.-derecho romano-24-10-15.
 
Culturas preincas2
Culturas preincas2Culturas preincas2
Culturas preincas2
 
Abstracción relación entre tiempo y espacio
Abstracción relación entre tiempo y espacioAbstracción relación entre tiempo y espacio
Abstracción relación entre tiempo y espacio
 
Fundamentos de la educacion
Fundamentos de la educacionFundamentos de la educacion
Fundamentos de la educacion
 

Semelhante a Backtracking

Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtrackingCesar Mujica
 
3.1.5 Backtracking.pptx
3.1.5 Backtracking.pptx3.1.5 Backtracking.pptx
3.1.5 Backtracking.pptxFernando Solis
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtrackingWilmer Quintero
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtrackingWilmer Quintero
 
Daniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDaniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDanielaMendoza117
 
TECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMASTECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMASFernando Solis
 
Backtracking
BacktrackingBacktracking
BacktrackingOmar Daza
 
Bac k t r ac k i n luis saltaren
Bac k t r ac k i n luis saltarenBac k t r ac k i n luis saltaren
Bac k t r ac k i n luis saltarenlszsaltarenzapata
 
Algoritmos por-omor-azuaje2
Algoritmos por-omor-azuaje2Algoritmos por-omor-azuaje2
Algoritmos por-omor-azuaje2OmarAzuaje3
 
Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmoJose Lluberes
 
Teoria de optimizacion by. manuel rivas
Teoria de optimizacion by. manuel rivasTeoria de optimizacion by. manuel rivas
Teoria de optimizacion by. manuel rivasmanuelrivasv95
 
optimizacion de sistemas vanessa romero
optimizacion de sistemas vanessa romero optimizacion de sistemas vanessa romero
optimizacion de sistemas vanessa romero vaneeromero
 

Semelhante a Backtracking (20)

Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtracking
 
3.1.5 Backtracking.pptx
3.1.5 Backtracking.pptx3.1.5 Backtracking.pptx
3.1.5 Backtracking.pptx
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtracking
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtracking
 
Daniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDaniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosii
 
TECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMASTECNICAS DE RESOLUCION DE PROBLEMAS
TECNICAS DE RESOLUCION DE PROBLEMAS
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Backtracking
BacktrackingBacktracking
Backtracking
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
Bac k t r ac k i n luis saltaren
Bac k t r ac k i n luis saltarenBac k t r ac k i n luis saltaren
Bac k t r ac k i n luis saltaren
 
Algoritmos por-omor-azuaje2
Algoritmos por-omor-azuaje2Algoritmos por-omor-azuaje2
Algoritmos por-omor-azuaje2
 
No regresan valor c3. p3.
No regresan valor c3. p3.No regresan valor c3. p3.
No regresan valor c3. p3.
 
Backtracking
BacktrackingBacktracking
Backtracking
 
No regresan valor c3. p3.
No regresan valor  c3. p3.No regresan valor  c3. p3.
No regresan valor c3. p3.
 
3401667.ppt
3401667.ppt3401667.ppt
3401667.ppt
 
No regresan valor c3. p3.
No regresan valor  c3. p3.No regresan valor  c3. p3.
No regresan valor c3. p3.
 
No regresan valor c2. p3.
No regresan valor c2. p3.No regresan valor c2. p3.
No regresan valor c2. p3.
 
Analisis y diseño de algoritmo
Analisis y diseño de algoritmoAnalisis y diseño de algoritmo
Analisis y diseño de algoritmo
 
Teoria de optimizacion by. manuel rivas
Teoria de optimizacion by. manuel rivasTeoria de optimizacion by. manuel rivas
Teoria de optimizacion by. manuel rivas
 
optimizacion de sistemas vanessa romero
optimizacion de sistemas vanessa romero optimizacion de sistemas vanessa romero
optimizacion de sistemas vanessa romero
 

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.
  • 9.
  • 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.
  • 11.
  • 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