Sie sind auf Seite 1von 6

FACULTAD DE INGENIERA

E. A. P. INGENIERA DE SISTEMAS E INFORMTICA



Backtracking y Recursividad

DOCENTE :
Ramrez Milla Luis.
CURSO :
Tpicos I
INTEGRANTES :
Zuleta Cortez Bill Junior
Vsquez Muoz Luis Alberto






Junio del 2014
Tpicos I 2014

2



BACKTRACKING
La tcnica de Backtracking es usada en muchos mbitos de la programacin, por ejemplo,
para el clculo de expresiones regulares o para tareas de reconocimiento de texto y de
sintaxis de lenguajes regulares. Tambin es usado incluso en la implementacin de
algunos lenguajes de programacin, tales como Planner o Prolog y da soporte a muchos
algoritmos en inteligencia artificial.

La tcnica Backtracking es un mtodo de bsqueda de soluciones exhaustiva sobre
grafos dirigidos acclicos, el cual se acelera mediante poda de ramas poco prometedoras.


Esto es:

Se representan todas las posibilidades en un rbol.
Se resuelve buscando la solucin por el rbol (de una determinada manera).
Hay zonas que se evitan por no contener soluciones (poda).
La solucin del problema se representa en una n-tupla (X1; X2; : : : ; Xn) (no
llenando necesariamente todas las componentes) cada Xi se escoge de un
conjunto de candidatos a cada n-tupla se le llama estado.
Se trata de buscar estados solucin del problema.

Condiciones de parada

Cuando se consiga un estado solucin
Cuando se consigan todos los estados solucin


Elementos de la Tcnica

Al disear un algoritmo backtraking debemos considerar los siguientes elementos:

Representacin de la solucin en una tupla (X1; : : : ; Xn)

Una funcin objetivo para determinar si la tupla a analizar es una solucin

Unas restricciones a los candidatos para rellenar la tupla: Implcitas del problema.
Valores que puede tomar cada valor Xi Explcitas o externas al problema. Por
ejemplo, problema mochila, el peso no debe superar la capacidad de la mochila

Una funcin de poda para eliminar partes del rbol de bsqueda Organizacin del
problema en un rbol de bsqueda




Tpicos I 2014

3



El backtracking o vuelta atrs es una tcnica algortmica de resolucin general de
problemas mediante una bsqueda sistemtica de soluciones. Se descompone la tarea a
realizar en tareas parciales y se prueba sistemticamente cada una de estas, que a su
vez se descompondrn en sub-tareas. Cuando al elegir una tarea se comprueba que no
lleva a una solucin, se debe volver atrs, y probar con otra.

Ejemplo el de las N-Reinas:

Supongamos que tenemos un tablero de ajedrez.



Cmo podemos colocar 8 Reinas sin que se ataquen?

Recordemos que las reinas se mueven por el tablero

Cualquier nmero de casillas en horizontal
Cualquier nmero de casillas en vertical
Cualquier nmero de casillas en diagonal




Tpicos I 2014

4



Entonces no puede haber dos reinas

En la misma fila
En la misma columna
En la misma diagonal

Una solucin al problema:




Elementos de la tcnica backtracking:

Representacin del problema.
En n-tuplas (x1; x2; : : : ; xn), donde xi es la fila donde est la reina de la columna i
Restricciones implicitas.
Las componentes xi
Restricciones explicitas.
No puede haber dos reinas en la misma fila, columna y diagonal
rbol de estados.
En el nivel i se obtiene la posicin de la reina i
Funcin objetivo.
La n-tupla est completa y cumple las restricciones.
Funcin poda.
Dada por las restricciones explicitas





Tpicos I 2014

5


Algoritmo N-Reinas



























Funcin Poda
Funcin Objetivo
Tpicos I 2014

6

Das könnte Ihnen auch gefallen