SlideShare uma empresa Scribd logo
1 de 16
VUELTA ATRÁS O
(BACKTRACKING)
Giancarlo Ciliberti G.
Ing. Sistemas
¿QUE ES ?
 Es una estrategia usada para solucionar problemas
que tienen soluciones completas.
 Este algoritmo esta diseñado para la solución que
consta de una serie de decisiones.
 Para la implementación de este algoritmo se usan
los algoritmos recursivos, la cual llaman unos valores a
un determinado punto de la posible solución.
ESQUEMA GENERAL
En la siguiente PPT se mostrara el algoritmo
de forma general y se mostraran también una
pequeña descripción de cada una de sus
partes y las funciones que cada una llama:
 En la parte roja, se puede
cambiar encontrar la mejor
solución, eliminaremos esta
instrucción. Y en su lugar
compararemos la solución
obtenida con una de
referencia, para ver si
tenemos que actualizar la
mejor solución obtenida hasta
el momento.
 En la parte roja: Si
queremos todas las
soluciones la instrucción
cambiaria por
NoQuedanOpciones(o)
para conseguir así todas
las soluciones posibles.
También habría que hacer
esto para la mejor
solución.
EXPLICACIÓN DE
FUNCIONES
INICIAROPCIONES
(ETAPA I, GRUPOOPCIONES
O)
 En base a las alternativas elegidas en la solución
parcial i que nos llega como parámetro, introducimos
en “O” el grupo de opciones posibles que podemos
probar en la etapa actual. Si ninguno de estos valores
condujese a una solución válida, la llamada a la
función finalizaría y volveríamos a una etapa posterior.
SELECCIONARNUEVAOPCION
(GRUPOOPCIONES
O, OPCION N)
 De entre todas las alternativas posibles que tenemos
en „O‟, elegimos una. Aquí podemos realizar funciones
de Poda, que pueden ser muy beneficiosas en ciertos
algoritmos, proporcionando opciones que tienen una
alta probabilidad de convertirse en solución y vitando
muchas pruebas innecesarias con valores que según
nuestra estimación no nos conducirán al éxito.
ACEPTABLE(OPCIÓN N)
 Esta función es por tanto de vital importancia,
porque tiene funciones de poda que pueden convertir
el algoritmo en mucho más eficiente. Para construirla,
se suele llevar a cabo un análisis exhaustivo del
problema a tratar, para identificar esas situaciones de
la solución parcial en la que no debemos expandir más
porque nunca llegaremos a una solución.
ANOTAROPCION(ETAPA
I, OPCIÓN N)
 Anota la opción n elegida en las funciones anteriores dentro
de la solución parcial que llevamos construida hasta la etapa i.
Esta opción fue elegida en Seleccionar Nueva Acción y
comprobada como válida en Aceptable, de manera que tenemos
asegurado que es una alternativa que aún no hemos probado, y
que no incumple ninguna de las reglas de poda que hayamos
introducido en nuestro programa.
CANCELAMOSANOTACION(ET
APA I, OPCION N)
Realiza la acción contraria. Debido a que esa
opción n que habíamos anotado no ha llevado a
una solución, o estamos buscando soluciones
alternativas, la eliminamos de la solución parcial
en la etapa i, para que podamos probar con otra
si es que existe.
NOQUEDANOPCIONES(O)
 Indica si todavía existe en el grupo inicial que
calculamos en cada función recursiva, alguna alternativa
más que probar. Si no queda ninguna opción,
inevitablemente hemos terminado de buscar en la etapa
actual, y debemos ir hacia atrás a la anterior llamada
recursiva para buscar nuevas alternativas por donde
expandir el árbol de posibilidades.
ARBOL DE BUSQUEDA
APLICACIONES
 Vuelta atrás se usa en la implementación de
los lenguajes de programación tales como Lenguaje de
programación Planar y Prologo. Además, se usa en los
análisis sintácticos de los compiladores. Su uso
en inteligencia artificial ha sido muy importante, dando
lugar a nuevos tipos de búsquedas como el A estrella.
GRACIAS

Mais conteúdo relacionado

Mais procurados

Mais procurados (18)

Recursividad en POO - Java
Recursividad en POO - JavaRecursividad en POO - Java
Recursividad en POO - Java
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Estructuras basicas de un algoritmo
Estructuras basicas de un algoritmoEstructuras basicas de un algoritmo
Estructuras basicas de un algoritmo
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Logica difusa grupo 2
Logica difusa grupo 2Logica difusa grupo 2
Logica difusa grupo 2
 
Algoritmo , MATEMÁTICA
Algoritmo ,  MATEMÁTICAAlgoritmo ,  MATEMÁTICA
Algoritmo , MATEMÁTICA
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmos
 
metodos de programacion no lineal
metodos de programacion no linealmetodos de programacion no lineal
metodos de programacion no lineal
 
Metodos de programacion no-lineal
Metodos de programacion no-linealMetodos de programacion no-lineal
Metodos de programacion no-lineal
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
LaGrange.
LaGrange.LaGrange.
LaGrange.
 
Daniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosiiDaniela mendozaestructuradedatosii
Daniela mendozaestructuradedatosii
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Método de Runge-Kutta
Método de Runge-KuttaMétodo de Runge-Kutta
Método de Runge-Kutta
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Optimización de sistemas y funciones
Optimización de sistemas y funcionesOptimización de sistemas y funciones
Optimización de sistemas y funciones
 
Programación
ProgramaciónProgramación
Programación
 

Destaque (9)

Vuelta Atras
Vuelta AtrasVuelta Atras
Vuelta Atras
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Vuelta Atras
Vuelta AtrasVuelta Atras
Vuelta Atras
 
Vuelta atrás (backtraking)
Vuelta atrás (backtraking)Vuelta atrás (backtraking)
Vuelta atrás (backtraking)
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
SUDOKU
SUDOKUSUDOKU
SUDOKU
 
Ebook -sudoku_-_100_ejercicios
Ebook  -sudoku_-_100_ejerciciosEbook  -sudoku_-_100_ejercicios
Ebook -sudoku_-_100_ejercicios
 
-Sudoku
-Sudoku-Sudoku
-Sudoku
 
Técnica del backtraking manuel niño
Técnica del backtraking manuel niñoTécnica del backtraking manuel niño
Técnica del backtraking manuel niño
 

Semelhante a Vuelta atrás o (backtracking)

Semelhante a Vuelta atrás o (backtracking) (20)

luis
luisluis
luis
 
Presentación optimizacion de sistema
Presentación optimizacion de sistemaPresentación optimizacion de sistema
Presentación optimizacion de sistema
 
Teoría de optimización
Teoría de optimizaciónTeoría de optimización
Teoría de optimización
 
Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)
 
Optimizacion de Sistemas y Funciones por Jhonnathan Arrieta
Optimizacion de Sistemas y Funciones por Jhonnathan ArrietaOptimizacion de Sistemas y Funciones por Jhonnathan Arrieta
Optimizacion de Sistemas y Funciones por Jhonnathan Arrieta
 
Maps
MapsMaps
Maps
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
1 Problemas
1 Problemas1 Problemas
1 Problemas
 
Manual de usuario
Manual de usuarioManual de usuario
Manual de usuario
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmos
 
Teoria optimizacion
Teoria optimizacionTeoria optimizacion
Teoria optimizacion
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
1 conceptos algoritmos
1 conceptos algoritmos1 conceptos algoritmos
1 conceptos algoritmos
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
Programacion no lineal
Programacion no linealProgramacion no lineal
Programacion no lineal
 
11 solveroptimización
11 solveroptimización11 solveroptimización
11 solveroptimización
 
presentacionalgoritmos-111003021701-phpapp01.pdf
presentacionalgoritmos-111003021701-phpapp01.pdfpresentacionalgoritmos-111003021701-phpapp01.pdf
presentacionalgoritmos-111003021701-phpapp01.pdf
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
Programacion lineal
Programacion linealProgramacion lineal
Programacion lineal
 
Algorithm
AlgorithmAlgorithm
Algorithm
 

Vuelta atrás o (backtracking)

  • 1. VUELTA ATRÁS O (BACKTRACKING) Giancarlo Ciliberti G. Ing. Sistemas
  • 2. ¿QUE ES ?  Es una estrategia usada para solucionar problemas que tienen soluciones completas.  Este algoritmo esta diseñado para la solución que consta de una serie de decisiones.  Para la implementación de este algoritmo se usan los algoritmos recursivos, la cual llaman unos valores a un determinado punto de la posible solución.
  • 3. ESQUEMA GENERAL En la siguiente PPT se mostrara el algoritmo de forma general y se mostraran también una pequeña descripción de cada una de sus partes y las funciones que cada una llama:
  • 4.  En la parte roja, se puede cambiar encontrar la mejor solución, eliminaremos esta instrucción. Y en su lugar compararemos la solución obtenida con una de referencia, para ver si tenemos que actualizar la mejor solución obtenida hasta el momento.
  • 5.  En la parte roja: Si queremos todas las soluciones la instrucción cambiaria por NoQuedanOpciones(o) para conseguir así todas las soluciones posibles. También habría que hacer esto para la mejor solución.
  • 7. INICIAROPCIONES (ETAPA I, GRUPOOPCIONES O)  En base a las alternativas elegidas en la solución parcial i que nos llega como parámetro, introducimos en “O” el grupo de opciones posibles que podemos probar en la etapa actual. Si ninguno de estos valores condujese a una solución válida, la llamada a la función finalizaría y volveríamos a una etapa posterior.
  • 8. SELECCIONARNUEVAOPCION (GRUPOOPCIONES O, OPCION N)  De entre todas las alternativas posibles que tenemos en „O‟, elegimos una. Aquí podemos realizar funciones de Poda, que pueden ser muy beneficiosas en ciertos algoritmos, proporcionando opciones que tienen una alta probabilidad de convertirse en solución y vitando muchas pruebas innecesarias con valores que según nuestra estimación no nos conducirán al éxito.
  • 9. ACEPTABLE(OPCIÓN N)  Esta función es por tanto de vital importancia, porque tiene funciones de poda que pueden convertir el algoritmo en mucho más eficiente. Para construirla, se suele llevar a cabo un análisis exhaustivo del problema a tratar, para identificar esas situaciones de la solución parcial en la que no debemos expandir más porque nunca llegaremos a una solución.
  • 10. ANOTAROPCION(ETAPA I, OPCIÓN N)  Anota la opción n elegida en las funciones anteriores dentro de la solución parcial que llevamos construida hasta la etapa i. Esta opción fue elegida en Seleccionar Nueva Acción y comprobada como válida en Aceptable, de manera que tenemos asegurado que es una alternativa que aún no hemos probado, y que no incumple ninguna de las reglas de poda que hayamos introducido en nuestro programa.
  • 11. CANCELAMOSANOTACION(ET APA I, OPCION N) Realiza la acción contraria. Debido a que esa opción n que habíamos anotado no ha llevado a una solución, o estamos buscando soluciones alternativas, la eliminamos de la solución parcial en la etapa i, para que podamos probar con otra si es que existe.
  • 12. NOQUEDANOPCIONES(O)  Indica si todavía existe en el grupo inicial que calculamos en cada función recursiva, alguna alternativa más que probar. Si no queda ninguna opción, inevitablemente hemos terminado de buscar en la etapa actual, y debemos ir hacia atrás a la anterior llamada recursiva para buscar nuevas alternativas por donde expandir el árbol de posibilidades.
  • 14.
  • 15. APLICACIONES  Vuelta atrás se usa en la implementación de los lenguajes de programación tales como Lenguaje de programación Planar y Prologo. Además, se usa en los análisis sintácticos de los compiladores. Su uso en inteligencia artificial ha sido muy importante, dando lugar a nuevos tipos de búsquedas como el A estrella.