SlideShare a Scribd company logo
1 of 11
ALGORITMO DE BACKTRACKING
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). Por otra parte, el recorrido no tiene
éxito si en alguna etapa la solución parcial construida
hasta el momento no se puede completar. En tal caso,
el recorrido vuelve atrás exactamente igual que en un
recorrido en profundidad, eliminando sobre la marcha
los elementos que se hubieran añadido en cada fase.
Cuando vuelve a un nodo que tiene uno o más vecinos
sin explorar, prosigue el recorrido de una solución
ALGORITMO DE BACKTRACKING
proc Backtracking (↕X[1 . . . i ]: TSolución, ↑ok: B)
variables L: ListaComponentes
iniciosi EsSolución (X) entonces
ok CIERTO
de lo contrario
ok FALSO
L=Candidatos (X)
mientras ¬ok ^ ¬Vacía (L) hacer
X[i + 1] Cabeza (L); L Resto (L)
Backtracking (X, ok)
fin mientras
fin si
fin
ENFOQUES
ALGORITMO DE BACKTRACKING
Los problemas que deben satisfacer un determinado tipo de
restricciones son problemas completos, donde el orden de los
elementos de la solución no importa. estos problemas consisten en
un conjunto (o lista) de variables a la que a cada una se le debe
asignar un valor sujeto a las restricciones del problema. la técnica va
creando todas las posibles combinaciones de elementos para
obtener una solución. su principal virtud es que en la mayoría de las
implementaciones se puede evitar combinaciones, estableciendo
funciones de acotación (o poda) reduciendo el tiempo de ejecución.
vuelta atrás está muy relacionado con la
búsquedas binarias .
DISEÑO E IMPLEMENTACIÓN
BACKTRACKING
Esencialmente, la idea es encontrar la mejor combinación
posible en un momento determinado, por eso, se dice que este
tipo de algoritmo es una búsqueda en profundidad.
Normalmente, se suele implementar este tipo de
algoritmos como un procedimiento recursivo.
La diferencia con la búsqueda en profundidad es que se
suelen diseñar funciones de cota, de forma que no se
generen algunos estados si no van a conducir a ninguna
solución, o a una solución peor de la que ya se tiene. De
esta forma se ahorra espacio en memoria y tiempo de
ejecución.
Algunas heurísticas son comúnmente usadas para
acelerar el proceso. Como las variables se pueden
procesar en cualquier orden, generalmente es más
eficiente intentar ser lo más restrictivo posible con
las primeras (esto es, las primeras con menores
valores posibles). Este proceso poda el árbol de
búsqueda antes de que se tome la decisión y se
llame a la subrutina recursiva.
HEURÍSTICAS
ALGORITMO DE BACKTRACKING
EJEMPLOS DE PROBLEMAS COMUNES
RESUELTOS USANDO VUELTA ATRÁS
Sudoku
Problema de los
movimientos de un
caballo
Las ocho reinas
Algoritmo de Backtracking
Backtracking Recursivo
Backtracking 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. Te invitamos a que leas el
tutorial: Recursividad: La guía definitiva, y
aunque no lo consideres necesario puede
que te sean útiles algunos consejos que te
ayudarán en la formación como
programador.
GRACIAS
Víctor Romero

More Related Content

What's hot

Analisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesAnalisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de Operaciones
Sergio Hernández Ortega
 

What's hot (20)

Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Recursividad
RecursividadRecursividad
Recursividad
 
Algoritmos de Dekker
Algoritmos de DekkerAlgoritmos de Dekker
Algoritmos de Dekker
 
Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractos
 
Analisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesAnalisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de Operaciones
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Administracion de memoria
Administracion de memoriaAdministracion de memoria
Administracion de memoria
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Arbol de costo_minimo
Arbol de costo_minimoArbol de costo_minimo
Arbol de costo_minimo
 
Recursividad
RecursividadRecursividad
Recursividad
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 

Similar to Algoritmo de backtracking

Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtracking
Cesar Mujica
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtracking
Wilmer Quintero
 
Esquema algorítmico del backtracking
Esquema algorítmico del  backtrackingEsquema algorítmico del  backtracking
Esquema algorítmico del backtracking
Wilmer Quintero
 
Monografia problema de la mochila
Monografia   problema de la mochilaMonografia   problema de la mochila
Monografia problema de la mochila
vaneyui
 
Backtracking
BacktrackingBacktracking
Backtracking
Omar 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 saltaren
lszsaltarenzapata
 

Similar to Algoritmo de backtracking (20)

Daniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDaniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosii
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtracking
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Backtracking
BacktrackingBacktracking
Backtracking
 
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
 
Monografia problema de la mochila
Monografia   problema de la mochilaMonografia   problema de la mochila
Monografia problema de la mochila
 
Monografia - Problema de la Mochila
Monografia - Problema de la MochilaMonografia - Problema de la Mochila
Monografia - Problema de la Mochila
 
Busquedas (ia)
Busquedas (ia)Busquedas (ia)
Busquedas (ia)
 
Backtracking
BacktrackingBacktracking
Backtracking
 
2. Recursividad
2. Recursividad2. Recursividad
2. Recursividad
 
Sistemas inteligentes
Sistemas inteligentesSistemas inteligentes
Sistemas inteligentes
 
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
 
Backtracking
BacktrackingBacktracking
Backtracking
 
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
 
Backtracking
BacktrackingBacktracking
Backtracking
 
clase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsxclase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsx
 
Metodo quicksort
Metodo quicksortMetodo quicksort
Metodo quicksort
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamica
 

Algoritmo de backtracking

  • 1.
  • 2. ALGORITMO DE BACKTRACKING 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.
  • 3. 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). Por otra parte, el recorrido no tiene éxito si en alguna etapa la solución parcial construida hasta el momento no se puede completar. En tal caso, el recorrido vuelve atrás exactamente igual que en un recorrido en profundidad, eliminando sobre la marcha los elementos que se hubieran añadido en cada fase. Cuando vuelve a un nodo que tiene uno o más vecinos sin explorar, prosigue el recorrido de una solución
  • 4. ALGORITMO DE BACKTRACKING proc Backtracking (↕X[1 . . . i ]: TSolución, ↑ok: B) variables L: ListaComponentes iniciosi EsSolución (X) entonces ok CIERTO de lo contrario ok FALSO L=Candidatos (X) mientras ¬ok ^ ¬Vacía (L) hacer X[i + 1] Cabeza (L); L Resto (L) Backtracking (X, ok) fin mientras fin si fin
  • 5. ENFOQUES ALGORITMO DE BACKTRACKING Los problemas que deben satisfacer un determinado tipo de restricciones son problemas completos, donde el orden de los elementos de la solución no importa. estos problemas consisten en un conjunto (o lista) de variables a la que a cada una se le debe asignar un valor sujeto a las restricciones del problema. la técnica va creando todas las posibles combinaciones de elementos para obtener una solución. su principal virtud es que en la mayoría de las implementaciones se puede evitar combinaciones, estableciendo funciones de acotación (o poda) reduciendo el tiempo de ejecución. vuelta atrás está muy relacionado con la búsquedas binarias .
  • 6. DISEÑO E IMPLEMENTACIÓN BACKTRACKING Esencialmente, la idea es encontrar la mejor combinación posible en un momento determinado, por eso, se dice que este tipo de algoritmo es una búsqueda en profundidad. Normalmente, se suele implementar este tipo de algoritmos como un procedimiento recursivo. La diferencia con la búsqueda en profundidad es que se suelen diseñar funciones de cota, de forma que no se generen algunos estados si no van a conducir a ninguna solución, o a una solución peor de la que ya se tiene. De esta forma se ahorra espacio en memoria y tiempo de ejecución.
  • 7. Algunas heurísticas son comúnmente usadas para acelerar el proceso. Como las variables se pueden procesar en cualquier orden, generalmente es más eficiente intentar ser lo más restrictivo posible con las primeras (esto es, las primeras con menores valores posibles). Este proceso poda el árbol de búsqueda antes de que se tome la decisión y se llame a la subrutina recursiva. HEURÍSTICAS ALGORITMO DE BACKTRACKING
  • 8. EJEMPLOS DE PROBLEMAS COMUNES RESUELTOS USANDO VUELTA ATRÁS Sudoku Problema de los movimientos de un caballo Las ocho reinas
  • 10. Backtracking Recursivo Backtracking 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. Te invitamos a que leas el tutorial: Recursividad: La guía definitiva, y aunque no lo consideres necesario puede que te sean útiles algunos consejos que te ayudarán en la formación como programador.