SlideShare una empresa de Scribd logo
Backtracking
 El backtracking es una estrategia usada para
encontrar soluciones a problemas que tienen
una solución completa, en los que el orden de
los elementos no importa, y en los que existen
una serie de variables a cada una de las cuales
 Backtracking (o búsqueda atrás) es una
técnica de programación para hacer
búsqueda sistemática a través de todas las
configuraciones posibles dentro de un
espacio de búsqueda.
 La técnica Backtracking es un método
de búsqueda de soluciones exhaustiva
sobre grafos dirigidos acíclicos, el cual se
acelera mediante poda de ramas poco
prometedoras.
Para lograr esto, los algoritmos de tipo
backtracking construyen posibles soluciones
candidatas de manera sistemática.
En general, dado una solución candidata s :
1. Verifican si s es solución. Si lo es, hacen algo
con ella (depende del problema).
2. Construyen todas las posibles extensiones
de s, e invocan recursivamente al algoritmo
con todas ellas.
 Representación de la solución en una tupla (X1; : : : ; Xn).
 Una función objetivo para determinar si la tupla a analizar es una
solución.
 Unas restricciones a los candidatos para rellenar la tupla:
 Implícitas del problema. Valores que puede tomar cada valor Xi
 Explícitas o externas al problema. Por ejemplo, problema mochila, el
peso no debe superar la capacidad de la mochila.
 Una función de poda para eliminar partes del árbol de Búsqueda
 Organización del problema en un árbol de búsqueda
funcion BACKTRACKING_REC ( k , solucion[n])
para j2Si
si ( PODA (k , j , solucion) == true )
hacer
sol[k]= j
si ( TEST_SOL (solucion) == true ) hacer
devolver solucion
si ( k < n )
BACKTRACKING_REC(k+1,solucion[n])
 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,
Backtracking

Más contenido relacionado

PPTX
Algoritmo de backtracking
PPTX
Backtracking
PPTX
Vuelta atrás (backtraking)
PPT
Backtracking
PPTX
Técnica del backtracking o vuelta atrás
PPTX
Vuelta atrás o (backtracking)
DOCX
Busqueda por backtracking
PPTX
Daniela mendozaestructuradedatosii
Algoritmo de backtracking
Backtracking
Vuelta atrás (backtraking)
Backtracking
Técnica del backtracking o vuelta atrás
Vuelta atrás o (backtracking)
Busqueda por backtracking
Daniela mendozaestructuradedatosii

La actualidad más candente (20)

PPTX
Backtracking
PPTX
Esquema algorítmico del backtracking
PPTX
2. Recursividad
PPTX
Algoritmos
PPTX
Algoritmos
DOCX
Algoritmojulio
PDF
Introducción al análisis de algoritmos
PPTX
Algoritmos
PPTX
Unidad 7 análisis de los algoritmos
DOC
La Torre de Hanoi Monografía vanessa mayo 2010
PPTX
Algoritmos exposición
PPTX
Algoritmos
PPTX
Algoritmo a
PPTX
Complejidad de algoritmos
PPTX
Analisis de algoritmos - Introduccion
PDF
Manual users algoritmos
PPTX
Cuadro comparativo
DOCX
Recursividad
DOCX
PPT
Algoritmos
Backtracking
Esquema algorítmico del backtracking
2. Recursividad
Algoritmos
Algoritmos
Algoritmojulio
Introducción al análisis de algoritmos
Algoritmos
Unidad 7 análisis de los algoritmos
La Torre de Hanoi Monografía vanessa mayo 2010
Algoritmos exposición
Algoritmos
Algoritmo a
Complejidad de algoritmos
Analisis de algoritmos - Introduccion
Manual users algoritmos
Cuadro comparativo
Recursividad
Algoritmos
Publicidad

Similar a Backtracking (20)

PPTX
Esquema algorítmico del backtracking
DOCX
Normalmente.docx
DOCX
Slideshare nelson rodriguez
PPT
Mpinning Gy Alg9(Conteo)
PPTX
3.1.5 Backtracking.pptx
PPTX
Método de Vuelta Atrás (Backtracking)
PPTX
Optimizacion Diusty Mijares
PPTX
Programacion dinamica
PDF
Resumen de algoritmo
PPTX
Pro no num Prog dinamica
PPTX
Programación Dinámica
PDF
Algoritmos por-omor-azuaje2
PPTX
Kuhn tucker
PDF
03.problemas
PPTX
Bac k t r ac k i n luis saltaren
PPTX
Optimización de sistemas y funciones
PDF
PDF
TRABAJO COLABORATIVO 2 ALGEBRA LINEAL UNAD
PPTX
Enfoques
Esquema algorítmico del backtracking
Normalmente.docx
Slideshare nelson rodriguez
Mpinning Gy Alg9(Conteo)
3.1.5 Backtracking.pptx
Método de Vuelta Atrás (Backtracking)
Optimizacion Diusty Mijares
Programacion dinamica
Resumen de algoritmo
Pro no num Prog dinamica
Programación Dinámica
Algoritmos por-omor-azuaje2
Kuhn tucker
03.problemas
Bac k t r ac k i n luis saltaren
Optimización de sistemas y funciones
TRABAJO COLABORATIVO 2 ALGEBRA LINEAL UNAD
Enfoques
Publicidad

Backtracking

  • 2.  El backtracking es una estrategia usada para encontrar soluciones a problemas que tienen una solución completa, en los que el orden de los elementos no importa, y en los que existen una serie de variables a cada una de las cuales
  • 3.  Backtracking (o búsqueda atrás) es una técnica de programación para hacer búsqueda sistemática a través de todas las configuraciones posibles dentro de un espacio de búsqueda.
  • 4.  La técnica Backtracking es un método de búsqueda de soluciones exhaustiva sobre grafos dirigidos acíclicos, el cual se acelera mediante poda de ramas poco prometedoras.
  • 5. Para lograr esto, los algoritmos de tipo backtracking construyen posibles soluciones candidatas de manera sistemática. En general, dado una solución candidata s : 1. Verifican si s es solución. Si lo es, hacen algo con ella (depende del problema). 2. Construyen todas las posibles extensiones de s, e invocan recursivamente al algoritmo con todas ellas.
  • 6.  Representación de la solución en una tupla (X1; : : : ; Xn).  Una función objetivo para determinar si la tupla a analizar es una solución.  Unas restricciones a los candidatos para rellenar la tupla:  Implícitas del problema. Valores que puede tomar cada valor Xi  Explícitas o externas al problema. Por ejemplo, problema mochila, el peso no debe superar la capacidad de la mochila.  Una función de poda para eliminar partes del árbol de Búsqueda  Organización del problema en un árbol de búsqueda
  • 7. funcion BACKTRACKING_REC ( k , solucion[n]) para j2Si si ( PODA (k , j , solucion) == true ) hacer sol[k]= j si ( TEST_SOL (solucion) == true ) hacer devolver solucion si ( k < n ) BACKTRACKING_REC(k+1,solucion[n])
  • 8.  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,