SlideShare ist ein Scribd-Unternehmen logo
1 von 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/

Weitere ähnliche Inhalte

Was ist angesagt?

Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
EIGRP - Enhanced Interior Gateway Routing Protocol v1.0
EIGRP - Enhanced Interior Gateway Routing Protocol v1.0EIGRP - Enhanced Interior Gateway Routing Protocol v1.0
EIGRP - Enhanced Interior Gateway Routing Protocol v1.0Gianpietro Lavado
 
(2) enrutamiento estático
(2) enrutamiento estático(2) enrutamiento estático
(2) enrutamiento estáticoEliza Gelves
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Liz Ocampo
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Selection sort and insertion sort
Selection sort and insertion sortSelection sort and insertion sort
Selection sort and insertion sortMay Ann Mendoza
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmosRawel Luciano
 
Cuadro Comparativo
Cuadro ComparativoCuadro Comparativo
Cuadro ComparativoMartha
 
Estructura de Datos, Multilistas
Estructura de Datos, MultilistasEstructura de Datos, Multilistas
Estructura de Datos, MultilistasCristhian Rosales
 
Data Structures : hashing (1)
Data Structures : hashing (1)Data Structures : hashing (1)
Data Structures : hashing (1)Home
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialNoraVelasquez4
 

Was ist angesagt? (20)

Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
EIGRP - Enhanced Interior Gateway Routing Protocol v1.0
EIGRP - Enhanced Interior Gateway Routing Protocol v1.0EIGRP - Enhanced Interior Gateway Routing Protocol v1.0
EIGRP - Enhanced Interior Gateway Routing Protocol v1.0
 
(2) enrutamiento estático
(2) enrutamiento estático(2) enrutamiento estático
(2) enrutamiento estático
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Algoritmos Voraces
Algoritmos VoracesAlgoritmos Voraces
Algoritmos Voraces
 
Selection sort and insertion sort
Selection sort and insertion sortSelection sort and insertion sort
Selection sort and insertion sort
 
Recursividad en Java
Recursividad en JavaRecursividad en Java
Recursividad en Java
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Practica1 CCNA2 Capitulo 3
Practica1 CCNA2 Capitulo 3Practica1 CCNA2 Capitulo 3
Practica1 CCNA2 Capitulo 3
 
(gramatica atribuida)
(gramatica atribuida)(gramatica atribuida)
(gramatica atribuida)
 
Cuadro Comparativo
Cuadro ComparativoCuadro Comparativo
Cuadro Comparativo
 
Estructura de Datos, Multilistas
Estructura de Datos, MultilistasEstructura de Datos, Multilistas
Estructura de Datos, Multilistas
 
Data Structures : hashing (1)
Data Structures : hashing (1)Data Structures : hashing (1)
Data Structures : hashing (1)
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 
4.4 hashing
4.4 hashing4.4 hashing
4.4 hashing
 
Recuperación de-datos-en-my sql
Recuperación de-datos-en-my sqlRecuperación de-datos-en-my sql
Recuperación de-datos-en-my sql
 
Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)Método de Vuelta Atrás (Backtracking)
Método de Vuelta Atrás (Backtracking)
 

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie 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
 
Algoritmo de backtracking
Algoritmo de backtrackingAlgoritmo de backtracking
Algoritmo de backtrackingVictor Gonzalez
 
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
 

Ähnlich wie 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
 
Algoritmo de backtracking
Algoritmo de backtrackingAlgoritmo de backtracking
Algoritmo de 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
 
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
 
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
 

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