SlideShare una empresa de Scribd logo
4
Lo más leído
7
Lo más leído
ESQUEMA
ALGORÍTMICO DEL
BACKTRACKING
WILMER QUINTERO
INTRODUCCIÓN
 El backtracking es una estrategia usada para encontrar soluciones a
problemas que tienen una solución completa, en los que el orden de los
elementos no importa, y en
 los que existen una serie de variables a cada una de las cuales
debemos asignarle un valor teniendo en cuenta unas estricciones
dadas
 Este esquema algorítmico es utilizado para resolver problemas en los
que la solución consta de una serie de decisiones adecuadas hacia
nuestro objetivo. El backtracking está muy relacionado con la
búsqueda combinatoria. De manera más exacta podemos indicar que
los problemas a considerar son lo siguientes:
 1. Problemas de Decisión:
 Búsqueda de las soluciones que satisfacen ciertas restricciones.
 2. Problemas de Optimización:
 Búsqueda de la mejor solución en base a una función objetivo.
Aplicaciones del Método
algorítmico.
 La técnica Backtracking es un método de búsqueda
de soluciones exhaustiva sobre grafos dirigidos
acíclicos, el cual se acelera mediante poda de
ramas poco prometedoras
 La técnica de Backtracking es usada en muchos
ámbitos de la programación, por ejemplo, para el
cálculo de expresiones regulares o para tareas de
reconocimiento de texto y de sintaxis de lenguajes
regulares. También es usado incluso en la
implementación de algunos lenguajes de
programación, tales como Planner o Prolog y da
soporte a muchos algoritmos en inteligencia artificial.
esquema general.
Variantes del esquema
general
 Hasta ahora hemos considerado que los
problemas que se resuelven con esta técnica
sólo encontraban una única solución,
independientemente de que hubiese más. A
continuación veremos que este esquema
ofrece más posibilidades a la hora de buscar
soluciones. Básicamente, las variantes se
dividen en tres grandes grupos que
estudiaremos seguidamente:
implementaciones que calculan una solución
cualquiera, todas las soluciones y la mejor de
todas las soluciones.
Esquema algorítmico del  backtracking
Eficiencia y costes
 Como ya hemos dicho anteriormente en algunas ocasión es los algoritmos de backtracking
no son eficientes , ya que se basan en el método de prueba y error, y en muchas o
casiones para conseguir solución se tiene que recorrer todo el árbol de búsqueda o gran
parte de él. También tendremos que achacar que la recursividad contribuye a su
ineficiencia, por la memoria que gasta durante las diferentes llamadas recursivas.
 Ahora bien hay que decir que la eficiencia depende de:
 El número de nodos del árbol de búsqueda que se visitan para conseguir la solución →v(n).
 El trabajo realizado en cada nodo, esto es, el coste de la función de solución completa o
ver si la solución es aceptable hasta el momento. Este coste lo podemos expresar como
→p(n), ya que generalmente será polinómico.
 El coste en general será: O(p(n)v(n)), este coste será exponencial en el peor caso.
Árboles de búsqueda.
Cómo ya hemos comentado anteriormente el
algoritmo de vuelta atrás proporciona una manera
sistemática de generar las todas las posibles
soluciones siempre que se puedan resolver por
etapas, lo que se asemeja mucho a una búsqueda
combinatoria (probar todas la posibles
combinaciones).
Para conseguir este estudio tan exhaustivo del
problema, se considera que se trabaja con un árbol
(figura 1) que cuya existencia es sólo implícita, para
nosotros cada nodo del nivel k representa una parte
de la solución y nuestro árbol estará formados por las k
etapas que se considerarán ya realizadas.
Esquema algorítmico del  backtracking
Muchas gracias

Más contenido relacionado

DOCX
Ejercicios de matrices y vectores en c++
PPTX
Topicos avanzados de programacion
DOC
redes neuronales Kohonen
PPT
48690471 redes-neuronales
PPT
4.2 mecanismos y_funciones_de_los_manejadores_de_dispositivos
PDF
Casos de uso
DOCX
Investigacion unidad 3
PPTX
Eficiencia en uso en algoritmos- tiempo de ejecución
 
Ejercicios de matrices y vectores en c++
Topicos avanzados de programacion
redes neuronales Kohonen
48690471 redes-neuronales
4.2 mecanismos y_funciones_de_los_manejadores_de_dispositivos
Casos de uso
Investigacion unidad 3
Eficiencia en uso en algoritmos- tiempo de ejecución
 

La actualidad más candente (20)

PPT
Niveles De Aislamiento
PPTX
Lenguaje ensamblador
PPTX
Técnica del backtracking o vuelta atrás
PPTX
Ejercicio de subneteo vlsm y cidr
PDF
Integración por sustitución
PDF
Alfabetos-Lenguajes y Automatas 1
PPTX
TIPOS DE HERRAMIENTAS CASE.pptx
DOCX
Metodos de-ordenamiento
PPTX
Etapa de estudio de viabilidad de un proyecto informático c4
PPT
APLICACIONES DE LA DERIVADAS EN LAS TELECOMUNICACIONES_TALLER 2
PPTX
PDF
Programacion concurrente
PPTX
Tablas Hash
PPTX
Grafos
DOCX
Importancia del sistema digital
PPT
REDES NEURONALES ADALINE
PPT
Clase 3 Modelo Entidad Relacion
PDF
Palabras Reservadas en C++
PPTX
Fundamentos de Programación - Unidad I: Diseño Algorítmico
Niveles De Aislamiento
Lenguaje ensamblador
Técnica del backtracking o vuelta atrás
Ejercicio de subneteo vlsm y cidr
Integración por sustitución
Alfabetos-Lenguajes y Automatas 1
TIPOS DE HERRAMIENTAS CASE.pptx
Metodos de-ordenamiento
Etapa de estudio de viabilidad de un proyecto informático c4
APLICACIONES DE LA DERIVADAS EN LAS TELECOMUNICACIONES_TALLER 2
Programacion concurrente
Tablas Hash
Grafos
Importancia del sistema digital
REDES NEURONALES ADALINE
Clase 3 Modelo Entidad Relacion
Palabras Reservadas en C++
Fundamentos de Programación - Unidad I: Diseño Algorítmico
Publicidad

Similar a Esquema algorítmico del backtracking (20)

PPTX
Bac k t r ac k i n luis saltaren
DOCX
Busqueda por backtracking
PPTX
Pro no num Prog dinamica
PPTX
Presentación optimizacion de sistema
PPTX
Backtracking
DOCX
Teoria de optimizacion by. manuel rivas
DOCX
Teoría de optimización
PPTX
Daniela mendozaestructuradedatosii
PPTX
Programación Dinámica
PPTX
Backtracking
DOC
Teoria de Optimizacion
DOCX
Teoria optimizacion
PPTX
TECNICAS DE RESOLUCION DE PROBLEMAS
PPTX
Cap1.3
PPTX
3.1.5 Backtracking.pptx
PPTX
Algoritmo
PPTX
Análisis y Diseño de Algoritmos
PPT
Algoritmos Voraces (Greedy)
PPTX
Proyecto Final de Investigación Operativa
PDF
Programacion dinamica
Bac k t r ac k i n luis saltaren
Busqueda por backtracking
Pro no num Prog dinamica
Presentación optimizacion de sistema
Backtracking
Teoria de optimizacion by. manuel rivas
Teoría de optimización
Daniela mendozaestructuradedatosii
Programación Dinámica
Backtracking
Teoria de Optimizacion
Teoria optimizacion
TECNICAS DE RESOLUCION DE PROBLEMAS
Cap1.3
3.1.5 Backtracking.pptx
Algoritmo
Análisis y Diseño de Algoritmos
Algoritmos Voraces (Greedy)
Proyecto Final de Investigación Operativa
Programacion dinamica
Publicidad

Esquema algorítmico del backtracking

  • 2. INTRODUCCIÓN  El backtracking es una estrategia usada para encontrar soluciones a problemas que tienen una solución completa, en los que el orden de los elementos no importa, y en  los que existen una serie de variables a cada una de las cuales debemos asignarle un valor teniendo en cuenta unas estricciones dadas  Este esquema algorítmico es utilizado para resolver problemas en los que la solución consta de una serie de decisiones adecuadas hacia nuestro objetivo. El backtracking está muy relacionado con la búsqueda combinatoria. De manera más exacta podemos indicar que los problemas a considerar son lo siguientes:  1. Problemas de Decisión:  Búsqueda de las soluciones que satisfacen ciertas restricciones.  2. Problemas de Optimización:  Búsqueda de la mejor solución en base a una función objetivo.
  • 3. Aplicaciones del Método algorítmico.  La técnica Backtracking es un método de búsqueda de soluciones exhaustiva sobre grafos dirigidos acíclicos, el cual se acelera mediante poda de ramas poco prometedoras  La técnica de Backtracking es usada en muchos ámbitos de la programación, por ejemplo, para el cálculo de expresiones regulares o para tareas de reconocimiento de texto y de sintaxis de lenguajes regulares. También es usado incluso en la implementación de algunos lenguajes de programación, tales como Planner o Prolog y da soporte a muchos algoritmos en inteligencia artificial.
  • 5. Variantes del esquema general  Hasta ahora hemos considerado que los problemas que se resuelven con esta técnica sólo encontraban una única solución, independientemente de que hubiese más. A continuación veremos que este esquema ofrece más posibilidades a la hora de buscar soluciones. Básicamente, las variantes se dividen en tres grandes grupos que estudiaremos seguidamente: implementaciones que calculan una solución cualquiera, todas las soluciones y la mejor de todas las soluciones.
  • 7. Eficiencia y costes  Como ya hemos dicho anteriormente en algunas ocasión es los algoritmos de backtracking no son eficientes , ya que se basan en el método de prueba y error, y en muchas o casiones para conseguir solución se tiene que recorrer todo el árbol de búsqueda o gran parte de él. También tendremos que achacar que la recursividad contribuye a su ineficiencia, por la memoria que gasta durante las diferentes llamadas recursivas.  Ahora bien hay que decir que la eficiencia depende de:  El número de nodos del árbol de búsqueda que se visitan para conseguir la solución →v(n).  El trabajo realizado en cada nodo, esto es, el coste de la función de solución completa o ver si la solución es aceptable hasta el momento. Este coste lo podemos expresar como →p(n), ya que generalmente será polinómico.  El coste en general será: O(p(n)v(n)), este coste será exponencial en el peor caso.
  • 8. Árboles de búsqueda. Cómo ya hemos comentado anteriormente el algoritmo de vuelta atrás proporciona una manera sistemática de generar las todas las posibles soluciones siempre que se puedan resolver por etapas, lo que se asemeja mucho a una búsqueda combinatoria (probar todas la posibles combinaciones). Para conseguir este estudio tan exhaustivo del problema, se considera que se trabaja con un árbol (figura 1) que cuya existencia es sólo implícita, para nosotros cada nodo del nivel k representa una parte de la solución y nuestro árbol estará formados por las k etapas que se considerarán ya realizadas.