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

Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Cuestionario
CuestionarioCuestionario
CuestionarioJose Nava
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesJaqueline Luna
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialNoraVelasquez4
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura RestIsrael Rey
 
Logica Difusa Introduccion
Logica Difusa IntroduccionLogica Difusa Introduccion
Logica Difusa IntroduccionESCOM
 
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 ordenamientoJosé Antonio Sandoval Acosta
 
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
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 

La actualidad más candente (20)

Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Metodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móvilesMetodologías para el desarrollo de aplicaciones móviles
Metodologías para el desarrollo de aplicaciones móviles
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Logica Difusa Introduccion
Logica Difusa IntroduccionLogica Difusa Introduccion
Logica Difusa Introduccion
 
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
 
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)
 
Diagramas de Casos de Uso del Negocio y del Sistema
 Diagramas de Casos de Uso del Negocio y del Sistema Diagramas de Casos de Uso del Negocio y del Sistema
Diagramas de Casos de Uso del Negocio y del Sistema
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 

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
 
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
 
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
 
Tutorial rapido de octave
Tutorial rapido de octaveTutorial rapido de octave
Tutorial rapido de octave
 

Último

2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
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
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 

Último (20)

2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
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
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 

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!