SlideShare una empresa de Scribd logo
1 de 19
El Método del Backtracking
(Vuelta Atrás)
Alejandro Salas
CI: 29.654.473
Estructuras de
Datos II,SAIA-A
Contenido:
 Breve Historia
 Concepto
 Enfoque
 Diseño e Implementación
 Heurísticas
 Ejemplos
 Backtracking para Enumeración
 Aplicaciones
 “Branch & Bound”
Breve Historia:
 El término de backtracking fue
mencionado por primera vez alrededor de
1950 por Derrick Henry Lehmer.
 D.H. Lehmer fue un matemático
estadounidense , quien contribuyó varias e
importantes veces en la teoría de números
para enteros de precisión múltiple
 El Backtracking como tal ha sido
visto como un algoritmo capaz de
aplicarse en la resolución de un
gran número de problemas, en
especial de optimización
Concepto:
 El Backtracking es una técnica
recursiva cuya función es
básicamente encontrar soluciones a
problemas recorriendo sus distintas
alternativas
 La idea del backtracking es
comúnmente aplicada en
recorridos de grafos,
especialmente árboles, que
representan las distintas
soluciones de un problema
 Se dice que el recorrido es exitoso
cuando se puede definir una
solución por completo. De lo
contrario, se regresa hacia atrás
para luego volver a recorrer nodos
sin explorar
Enfoque:
 El backtracking busca una solución a problemas completos,
es decir, problemas que satisfagan un determinado tipo de
restricciones
 Los problemas consisten en un conjunto de “variables” con un
valor asignado sujeto a las restricciones
 Por medio del backtracking se desarrollan todas las posibles
combinaciones de elementos para obtener una solución entre
todas las alternativas
Diseño e Implementación:
 El algortimo está diseñado como una
búsqueda en profundidad en la que se
crea un árbol implícito de decisiones y
alternativas
 La principal diferencia es que se
diseñan funciones de cota que limiten
los recorridos que no conducirán a
una solución óptima
 La técnica se implementa como un
procedimiento recursivo
 En cada llamada se selecciona una
variable y se le asignan sus posibles
valores, para luego llamar
nuevamente al procedimiento para
cada nuevo estado
Heurísticas:
 Para el backtracking, es común el uso de
métodos de heurística para acelerar el proceso
del algoritmo:
 Restricción de
primeras
variables:
 Aprovecha la
flexibilidad del
orden del proceso
para aumentar la
eficiencia
restringiendo las
primeras
variables con el
menor valor
posible
 “Forward
Checking”:
 Verifica qué valor
restringirá el
menor número
posible de valores.
Se anticipa para
preservar una
posible solución o
hace que la
solución
encontrada no
tenga restricciones
 Función de Cotas:
 Examina si es
posible encontrar
una solución a
partir de una
solución parcial,
comprobando si
el fallo de
Ejemplos:
 Situaciones de aplicación:
 Problema de satisfacibilidad:
 Supongamos que “A” contiene la expresión booleana que constituye el
problema. Elegimos un subproblema de A.
 por ejemplo: (x+y+z)(x'+y)(y'+z)(z'+x)(x'+y'+z').
 Elegimos una cláusula con mínimo número de literales.
 Elegimos una variable x, y, z dentro de la cláusula y crear 2
subproblemas reemplazando x=V y x=F.
 En el caso x=V
 Omitir las cláusulas donde aparece x.
 Omitir x' en las cláusulas que aparece x'.
 En el caso x=F
 Omitir las cláusulas donde aparece x'.
 Omitir x en las cláusulas que aparece x.
 Si no quedan cláusulas. STOP. (solución encontrada).
 Si hay una cláusula vacía. DROP.
 En otro caso añadir a A
Ejemplos:
 Situaciones de aplicación:
 Problema de cobertura exacta (Exact Cover)
 Dado un conjunto finito U y una familia se subconjuntos {Tj} de U,
definimos una matriz A donde cada fila se corresponde con un
elemento ui de U y cada columna de A con un subconjunto Tj .
 Ponemos aij=1 si ui U pertenece a Tj y aij=0 en caso contrario. Interpretamos
que xj=1 significa que elegimos Tj y 0 en caso contrario.
 Se trata de averiguar si es factible Ax=1 donde A y x son binarias y
las componentes de 1 son unos.
 Dado S0= un vector de ceros (raíz del árbol), cada nodo S del árbol
es una sucesión x cuyas primeras k componentes le han sido
asignados un 1 o un 0 y el resto de componentes son ceros.
Reemplazamos S por 2 subproblemas Si (i=1,2) poniendo xk+1 =1 y
xk+1=0 respectivamente.
 if Ax=1 STOP
 if Ax>1 DROP Si
 if Ax<1 add Si to A
Ejemplos:
 Problemas
comunes con
aplicando
Backtracking en
C/C++
 Problema de las N
damas:
 Disponemos de
un tablero de
ajedrez de
tamaño NxN, y se
trata de colocar
en él N reinas de
manera que no
se amenacen
según las normas
del ajedrez.
Ejemplos:
Autor: https://elvex.ugr.es/decsai/c/problemas/reinas/reinas2.c
Ejemplos:
 Problemas
comunes con
aplicando
Backtracking en
C/C++
 Problema del
caballo
 Se trata de
colocar
inicialmente el
caballo en una
casilla de un
tablero de ajedrez
y moverlo hasta
haber pisado
todas las casillas
sin haber estado
más de una vez
en la misma
casilla
Ejemplos:
//------------------------------------------------------------------------
void formarMov(void){
MovX[0] = -2; MovY[0] = 1;
MovX[1] = -1; MovY[1] = 2;
MovX[2] = 1; MovY[2] = 2;
MovX[3] = 2; MovY[3] = 1;
MovX[4] = 2; MovY[4] = -1;
MovX[5] = 1; MovY[5] = -2;
MovX[6] = -1; MovY[6] = -2;
MovX[7] = -2; MovY[7] = -1;
}
Autor: https://www.etsisi.upm.es/sites/default/files/asigs/arquitecturas_avanzadas/practicas/MPI/caballo.pdf
Ejemplos:
 Problemas comunes
con aplicando
Backtracking en
C/C++
 Problema del
laberinto
 Se tiene una matriz
bidimensional de nxn
casillas para
representar un
laberinto cuadrado.
Cada casilla está
marcada como
visitada o no visitada.
Se debe ir desde la
casilla (1,1) a la (n,
n) haciendo
movimientos
horizontales y
verticales.
Ejemplos:
Autor: https://runestone.academy/runestone/static/pythoned/Recursion/ExploracionDeUnLaberinto.html
Backtracking para Enumeración
 El problema de la enumeración consiste en
encontrar todas las soluciones del problema, es
por ello que tendremos que recorrer el árbol de
estados al completo.
Aplicaciones:
 El backtracking es una
herramienta muy útil
para la búsqueda de
soluciones de forma
rápida y automática
 Se aplica para el cálculo
de expresiones regulares
y reconocimiento de texto
y sintaxis
 Es muy aplicado también
en el área de inteligencia
artificial gracias al uso de
árboles de búsqueda y
decisión
“Branch & Bound”
 Es un método de búsqueda de soluciones como el
backtracking. Éste hace uso de ramificaciones (branch) y
acotaciones (bound)
 Cada solución tiene asociado un costo y la solución buscada debe
ser óptima, es decir, de menor costo
 Basado en esto, se evita considerar soluciones cuyo costo supera al
óptimo buscado
Gracias por su atención!

Más contenido relacionado

La actualidad más candente

Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalAngel Vázquez Patiño
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)José Antonio Sandoval Acosta
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesossistoperativos
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro Enrique Ruano
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discosJazmín Limón
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de softwareKola Real
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externoFernando Solis
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialNoraVelasquez4
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datospepelebu1313
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 

La actualidad más candente (20)

Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de Kruskal
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
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
 
Mergesort
MergesortMergesort
Mergesort
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesos
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de software
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Quicksort
QuicksortQuicksort
Quicksort
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 

Similar a Método de Vuelta Atrás (Backtracking)

Slideshare nelson rodriguez
Slideshare nelson rodriguezSlideshare nelson rodriguez
Slideshare nelson rodrigueznelro038
 
Optimizacion Osvelis Ruiz
Optimizacion Osvelis RuizOptimizacion Osvelis Ruiz
Optimizacion Osvelis RuizOsvelis Ruiz
 
Backtracking (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)jessenmanuel
 
Metodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesMetodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesDantalian Gremory
 
AEP19. Presentación 2: Teoría de las Probabilidades
AEP19. Presentación 2: Teoría de las ProbabilidadesAEP19. Presentación 2: Teoría de las Probabilidades
AEP19. Presentación 2: Teoría de las ProbabilidadesFrancisco Sandoval
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de BúsquedaPedro Avaria
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretasFrancisco Lambert Obediente
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestroFrancisco Lambert Obediente
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtrackingCesar Mujica
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxjuan gonzalez
 
Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasJaime Martínez Verdú
 

Similar a Método de Vuelta Atrás (Backtracking) (20)

Slideshare nelson rodriguez
Slideshare nelson rodriguezSlideshare nelson rodriguez
Slideshare nelson rodriguez
 
Optimizacion Diusty Mijares
Optimizacion Diusty MijaresOptimizacion Diusty Mijares
Optimizacion Diusty Mijares
 
Video 1 metodos y arreglos
Video 1 metodos y arreglosVideo 1 metodos y arreglos
Video 1 metodos y arreglos
 
Back Tracking
Back TrackingBack Tracking
Back Tracking
 
Optimizacion Osvelis Ruiz
Optimizacion Osvelis RuizOptimizacion Osvelis Ruiz
Optimizacion Osvelis Ruiz
 
Backtracking (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)
 
Metodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferencialesMetodos numericos de ecuaciones diferenciales
Metodos numericos de ecuaciones diferenciales
 
Matematica 1
Matematica 1Matematica 1
Matematica 1
 
Prueba 1
Prueba 1Prueba 1
Prueba 1
 
AEP19. Presentación 2: Teoría de las Probabilidades
AEP19. Presentación 2: Teoría de las ProbabilidadesAEP19. Presentación 2: Teoría de las Probabilidades
AEP19. Presentación 2: Teoría de las Probabilidades
 
Metodos de Búsqueda
Metodos de BúsquedaMetodos de Búsqueda
Metodos de Búsqueda
 
Ecuaciones 78
Ecuaciones 78Ecuaciones 78
Ecuaciones 78
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
 
Busqueda por backtracking
Busqueda por backtrackingBusqueda por backtracking
Busqueda por backtracking
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
8 reinas
8 reinas8 reinas
8 reinas
 
C03.pdf
C03.pdfC03.pdf
C03.pdf
 
Métodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinariasMétodos numéricos para ecuaciones diferenciales ordinarias
Métodos numéricos para ecuaciones diferenciales ordinarias
 

Último

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 

Último (20)

programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 

Método de Vuelta Atrás (Backtracking)

  • 1. El Método del Backtracking (Vuelta Atrás) Alejandro Salas CI: 29.654.473 Estructuras de Datos II,SAIA-A
  • 2. Contenido:  Breve Historia  Concepto  Enfoque  Diseño e Implementación  Heurísticas  Ejemplos  Backtracking para Enumeración  Aplicaciones  “Branch & Bound”
  • 3. Breve Historia:  El término de backtracking fue mencionado por primera vez alrededor de 1950 por Derrick Henry Lehmer.  D.H. Lehmer fue un matemático estadounidense , quien contribuyó varias e importantes veces en la teoría de números para enteros de precisión múltiple  El Backtracking como tal ha sido visto como un algoritmo capaz de aplicarse en la resolución de un gran número de problemas, en especial de optimización
  • 4. Concepto:  El Backtracking es una técnica recursiva cuya función es básicamente encontrar soluciones a problemas recorriendo sus distintas alternativas  La idea del backtracking es comúnmente aplicada en recorridos de grafos, especialmente árboles, que representan las distintas soluciones de un problema  Se dice que el recorrido es exitoso cuando se puede definir una solución por completo. De lo contrario, se regresa hacia atrás para luego volver a recorrer nodos sin explorar
  • 5. Enfoque:  El backtracking busca una solución a problemas completos, es decir, problemas que satisfagan un determinado tipo de restricciones  Los problemas consisten en un conjunto de “variables” con un valor asignado sujeto a las restricciones  Por medio del backtracking se desarrollan todas las posibles combinaciones de elementos para obtener una solución entre todas las alternativas
  • 6. Diseño e Implementación:  El algortimo está diseñado como una búsqueda en profundidad en la que se crea un árbol implícito de decisiones y alternativas  La principal diferencia es que se diseñan funciones de cota que limiten los recorridos que no conducirán a una solución óptima  La técnica se implementa como un procedimiento recursivo  En cada llamada se selecciona una variable y se le asignan sus posibles valores, para luego llamar nuevamente al procedimiento para cada nuevo estado
  • 7. Heurísticas:  Para el backtracking, es común el uso de métodos de heurística para acelerar el proceso del algoritmo:  Restricción de primeras variables:  Aprovecha la flexibilidad del orden del proceso para aumentar la eficiencia restringiendo las primeras variables con el menor valor posible  “Forward Checking”:  Verifica qué valor restringirá el menor número posible de valores. Se anticipa para preservar una posible solución o hace que la solución encontrada no tenga restricciones  Función de Cotas:  Examina si es posible encontrar una solución a partir de una solución parcial, comprobando si el fallo de
  • 8. Ejemplos:  Situaciones de aplicación:  Problema de satisfacibilidad:  Supongamos que “A” contiene la expresión booleana que constituye el problema. Elegimos un subproblema de A.  por ejemplo: (x+y+z)(x'+y)(y'+z)(z'+x)(x'+y'+z').  Elegimos una cláusula con mínimo número de literales.  Elegimos una variable x, y, z dentro de la cláusula y crear 2 subproblemas reemplazando x=V y x=F.  En el caso x=V  Omitir las cláusulas donde aparece x.  Omitir x' en las cláusulas que aparece x'.  En el caso x=F  Omitir las cláusulas donde aparece x'.  Omitir x en las cláusulas que aparece x.  Si no quedan cláusulas. STOP. (solución encontrada).  Si hay una cláusula vacía. DROP.  En otro caso añadir a A
  • 9. Ejemplos:  Situaciones de aplicación:  Problema de cobertura exacta (Exact Cover)  Dado un conjunto finito U y una familia se subconjuntos {Tj} de U, definimos una matriz A donde cada fila se corresponde con un elemento ui de U y cada columna de A con un subconjunto Tj .  Ponemos aij=1 si ui U pertenece a Tj y aij=0 en caso contrario. Interpretamos que xj=1 significa que elegimos Tj y 0 en caso contrario.  Se trata de averiguar si es factible Ax=1 donde A y x son binarias y las componentes de 1 son unos.  Dado S0= un vector de ceros (raíz del árbol), cada nodo S del árbol es una sucesión x cuyas primeras k componentes le han sido asignados un 1 o un 0 y el resto de componentes son ceros. Reemplazamos S por 2 subproblemas Si (i=1,2) poniendo xk+1 =1 y xk+1=0 respectivamente.  if Ax=1 STOP  if Ax>1 DROP Si  if Ax<1 add Si to A
  • 10. Ejemplos:  Problemas comunes con aplicando Backtracking en C/C++  Problema de las N damas:  Disponemos de un tablero de ajedrez de tamaño NxN, y se trata de colocar en él N reinas de manera que no se amenacen según las normas del ajedrez.
  • 12. Ejemplos:  Problemas comunes con aplicando Backtracking en C/C++  Problema del caballo  Se trata de colocar inicialmente el caballo en una casilla de un tablero de ajedrez y moverlo hasta haber pisado todas las casillas sin haber estado más de una vez en la misma casilla
  • 13. Ejemplos: //------------------------------------------------------------------------ void formarMov(void){ MovX[0] = -2; MovY[0] = 1; MovX[1] = -1; MovY[1] = 2; MovX[2] = 1; MovY[2] = 2; MovX[3] = 2; MovY[3] = 1; MovX[4] = 2; MovY[4] = -1; MovX[5] = 1; MovY[5] = -2; MovX[6] = -1; MovY[6] = -2; MovX[7] = -2; MovY[7] = -1; } Autor: https://www.etsisi.upm.es/sites/default/files/asigs/arquitecturas_avanzadas/practicas/MPI/caballo.pdf
  • 14. Ejemplos:  Problemas comunes con aplicando Backtracking en C/C++  Problema del laberinto  Se tiene una matriz bidimensional de nxn casillas para representar un laberinto cuadrado. Cada casilla está marcada como visitada o no visitada. Se debe ir desde la casilla (1,1) a la (n, n) haciendo movimientos horizontales y verticales.
  • 16. Backtracking para Enumeración  El problema de la enumeración consiste en encontrar todas las soluciones del problema, es por ello que tendremos que recorrer el árbol de estados al completo.
  • 17. Aplicaciones:  El backtracking es una herramienta muy útil para la búsqueda de soluciones de forma rápida y automática  Se aplica para el cálculo de expresiones regulares y reconocimiento de texto y sintaxis  Es muy aplicado también en el área de inteligencia artificial gracias al uso de árboles de búsqueda y decisión
  • 18. “Branch & Bound”  Es un método de búsqueda de soluciones como el backtracking. Éste hace uso de ramificaciones (branch) y acotaciones (bound)  Cada solución tiene asociado un costo y la solución buscada debe ser óptima, es decir, de menor costo  Basado en esto, se evita considerar soluciones cuyo costo supera al óptimo buscado
  • 19. Gracias por su atención!