Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin
En su forma bsica
Introduccin
Caractersticas.
El algoritmo de Backtracking (vuelta atrs)
hace un recorrido en profundidad en un rbol.
El rbol se construye en memoria por eso se dice
que es implcito.
El recorrido en profundidad regresa sobre sus
pasos (retrocede) cada vez que encuentra un
camino por el que no debe o no puede continuar.
Introduccin
Dimensiones.
La altura.
Hay k posibles decisiones que se deben
tomar para llegar a una solucin.
La Anchura.
Cada decisin se debe tomar de un
conjunto de alternativas distintas (dominio).
Introduccin. Dimensiones
Anchura. Nmero de alternativas
(candidatos)
Altura. La
cantidad de
decisiones
que se
deben
tomar
Mtodo General
Un problema puede ser resuelto con un
algoritmo Backtracking, (vuelta atrs),
cuando la solucin puede ser expresada
como una n-tupla [x1, x2, ..., xn] donde
cada una de las componentes xi de este
vector, es elegida en cada etapa de entre
un conjunto finito de valores
Cada etapa representar un nivel en el rbol
de expansin.
Se debe determinar el nmero de la
descomposicin en etapas a realizar y
definir, dependiendo del problema, la n-tupla
que representa la solucin del problema y el
Ejemplo 1
Se tiene n Objetos, cada uno puede o no ser
seleccionado Cules son todas las formas
posibles de tomarlos? De cuntas maneras
se pueden escoger?
Ejemplo 1
Primero pensar como ser el rbol.
En cada nivel se puede decidir si se elige o no el
artculo.
La cantidad de decisiones que se debe tomar
depende de la cantidad de artculos.
Dicha cantidad de decisiones es la profundidad
del rbol.
Ejemplo
Note que al tener una complejidad
exponencial, el backtraking no es una tcnica
muy efectiva, pero su ventaja es que siempre
encontrar la solucin si es que existe.
En este caso, el anlisis de complejidad
permite dar una idea de que tan rpido se puede
obtener la solucin, o si es factible encontrarla,
en caso de no serlo se debe utilizar otras
tcnicas.
Existen tcnicas para podar el rbol, tales
como poda alfa, algoritmo A*, o algn otro tipo.
Esquema General
Ejemplo 2.
Nmero que suman un valor objetivo.
Dado un conjunto de nmeros enteros {2, 3,
6, 1, 5}, encontrar los subconjuntos cuya suma
sea exactamente 9. Por ejemplo: {3, 1 , 5}
suman 9.
Hay que pensar como va hacer el rbol si se
tiene los elementos {2, 3, 6, 1, 5}, entonces se
tendr 5 niveles y en cada nivel se debe decidir si
tomar o no el elemento.
Cdigo