Upload
erick-garcia
View
219
Download
0
Embed Size (px)
DESCRIPTION
A simple explanation of Backtraking and Divide and Conquer Method of Recusive progamming i hope i can help you guys out.
Citation preview
BacktrackingErick GarcaEl backtracking es un algoritmo de para encontrar todas, o algunas soluciones para algunos problemas computacionales, siendo estos problemas que deben satisfacer ciertas restricciones, El termino backtrack fue usado por primera vez por un matemtico norte americano D.H Lehmer en la dcada de los 50. La tcnica consiste de constantemente ir creando candidatos para las soluciones e ir abandonado cada candidato parcial o incompleto as que es determinado que dicha respuesta no puede ser finalizada como una solucin vlida. Se puede comparar con el recorrer un diagrama de rbol hasta llegar a un valor base que nos permita as retroceder y resolver los otros candidatos a solucin.El ejemplo ms clsico para esta tcnica seria el problema de las 8 reinas el cual consiste en poner 8 reinas en un tablero de ajedrez sin que ninguna de ellas se amenace este problema fue propuesto por un ajedrecista alemn llamado Max Bezzel. Para resolver este problema se debe tener claro que en el juego del ajedrez la reina amenaza a cualquier pieza que se encuentra en su misma fila, columna o diagonal.A seguir se encuentra un ejemplo de solucin al programa utilizando malloc y recursividad por backtracking:#include #include
int Queen=0;void Queens(int i,int *vector,int *Position,int *AuxDiag2,int *AuxDiag1){ int z; for (z=0;z