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

Weitere ähnliche Inhalte

Was ist angesagt?

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de PilaPablo Guerra
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesossistoperativos
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacionErika Vazquez
 
Diferencas , ventajas y desventajas
Diferencas , ventajas y desventajasDiferencas , ventajas y desventajas
Diferencas , ventajas y desventajasbane12
 
Sesión 6: funciones en matlab
Sesión 6: funciones en matlabSesión 6: funciones en matlab
Sesión 6: funciones en matlabmatlab_usc
 
Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás lensen
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
3 analisis y diseño resumen
3  analisis  y diseño resumen3  analisis  y diseño resumen
3 analisis y diseño resumenfelixzenon
 

Was ist angesagt? (20)

Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
Relojes
RelojesRelojes
Relojes
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Ejemplos acid
Ejemplos acidEjemplos acid
Ejemplos acid
 
UNIDAD III y IV
UNIDAD III y IVUNIDAD III y IV
UNIDAD III y IV
 
Casos de pruebas
Casos de pruebasCasos de pruebas
Casos de pruebas
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesos
 
calidad de los sistemas de informacion
calidad de los sistemas de informacioncalidad de los sistemas de informacion
calidad de los sistemas de informacion
 
Diferencas , ventajas y desventajas
Diferencas , ventajas y desventajasDiferencas , ventajas y desventajas
Diferencas , ventajas y desventajas
 
Sesión 6: funciones en matlab
Sesión 6: funciones en matlabSesión 6: funciones en matlab
Sesión 6: funciones en matlab
 
Iso 14764
Iso 14764Iso 14764
Iso 14764
 
SPICE
SPICESPICE
SPICE
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás Evaluación de expresiones - Método divide y vencerás
Evaluación de expresiones - Método divide y vencerás
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Normas ISO 9126 - 25000
Normas ISO 9126 - 25000Normas ISO 9126 - 25000
Normas ISO 9126 - 25000
 
3 analisis y diseño resumen
3  analisis  y diseño resumen3  analisis  y diseño resumen
3 analisis y diseño resumen
 

Ähnlich wie Algoritmo de backtracking

Daniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDaniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDanielaMendoza117
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtrackingCesar Mujica
 
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
 
Monografia problema de la mochila
Monografia   problema de la mochilaMonografia   problema de la mochila
Monografia problema de la mochilavaneyui
 
Monografia - Problema de la Mochila
Monografia - Problema de la MochilaMonografia - Problema de la Mochila
Monografia - Problema de la Mochilavaneyui
 
Busquedas (ia)
Busquedas (ia)Busquedas (ia)
Busquedas (ia)Yamnibel
 
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
 
clase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsxclase1_TecDiseño_2021.ppsx
clase1_TecDiseño_2021.ppsxCesarR26
 
Pro no num Prog dinamica
Pro no num Prog dinamicaPro no num Prog dinamica
Pro no num Prog dinamicaRuben Gonzalez
 

Ähnlich wie 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.