Basico:
la IA(inteligencia artificial) son métodos para buscar soluciones de forma automática de forma optima eficiente y rápida, esto quiere decir que no es solo un código algoritmo que busca soluciones. consiste no solo en buscar una solución si no en buscar la mas indicada la mas estable la mas rápida, Bueno ya van entendiendo la idea.
Teoria:
para solucionar esto es necesario implementar una técnica básica llamada búsqueda en profundidad o búsqueda en anchura, que consiste en explorar las diferentes opciones de forma ordenada con el fin de obtener una solución a nuestro problema
las técnicas carecen de información sobre el sistema solo conocen las reglas y es necesario indicarle un punto de inicio que puede ser cualquiera.
entonces la regla es la misma que en el ajedrez ; las reinas comen en horizontal en vertical y diagonal.
nuestro objetivo es colocar n reinas en un tablero de NxM sin que se maten.
condición inicial en el punto 1-1 por que es mas fácil iniciar en odre que con métodos aleatorios pero es su decisión.
paso 1 en el nivel 1 siendo y los movimientos verticales sumamos 1 ya que comenzamos en colocar la primera reina en 1-1
paso 2 en el nivel siguiente es necesario buscar la primera posición x en horizontal donde sea posible colocar una reina y sumar un nivel en y
paso 3 si no se puede obtener una solución es necesario restar un nivel borrar la reina de el lugar donde se coloco anteriormente y probar con la siguiente opción de X y repetir el paso 2 y 3.
este metido no nos asegura la solución mas optima pero nos garantiza una solución y se puede implementar para buscar la salida de un lugar o plantear una ruta para llegar a un lugar no solo para solucionar el juego de colocar n reinas en un tablero de NxM.
Reinas es un vector donde su indice depende del nivel Y y su contenido de X
la solución para un cuadro de 4x4 seria
R[2,4,1,3]
para uno de 5 x 5 seria
R[1,3,5,2,4]
para uno de 20 x 20 seria :
este les voy a colocar paso a paso la solución y créanme que toma un muy buen rato solucionarlo y es por esto que se emplean técnicas de este estilo para buscar la solución.
tomen en cuenta que para el computador el 0 es una numero que se cuenta a si que nuestros niveles y valores están entre 0 y 19.
solo voy a colocar parte del procedimiento por que se extendería demasiado y no tendría diferencia si esta o no ya que no creo que lo revisen todo, me enfocare en lo mas importante.
coloque el valor de n : 19
iniciando q: en 0 = -1
iniciando q: en 1 = -1
iniciando q: en 2 = -1
iniciando q: en 3 = -1
iniciando q: en 4 = -1
iniciando q: en 5 = -1
iniciando q: en 6 = -1
iniciando q: en 7 = -1
iniciando q: en 8 = -1
iniciando q: en 9 = -1
iniciando q: en 10 = -1
iniciando q: en 11 = -1
iniciando q: en 12 = -1
iniciando q: en 13 = -1
iniciando q: en 14 = -1
iniciando q: en 15 = -1
iniciando q: en 16 = -1
iniciando q: en 17 = -1
iniciando q: en 18 = -1
iniciando q: en 19 = -1
ciclo de prueba en 0 nivel 0
asignamos x=0 en nivel 0
ciclo de prueba en 1 nivel 1
fallo en el ciclo de prueba 1 nivel 1
cambiamos mx de 0 a 1 en nivel 1
ciclo de prueba en 1 nivel 1
fallo en el ciclo de prueba 1 nivel 1
cambiamos mx de 1 a 2 en nivel 1
ciclo de prueba en 1 nivel 1
ciclo de prueba en 0 nivel 1
asignamos x=2 en nivel 1
ciclo de prueba en 2 nivel 2
fallo en el ciclo de prueba 2 nivel 2
cambiamos mx de 0 a 1 en nivel 2
ciclo de prueba en 2 nivel 2
ciclo de prueba en 1 nivel 2
fallo en el ciclo de prueba 1 nivel 2
cambiamos mx de 1 a 2 en nivel 2
ciclo de prueba en 2 nivel 2
fallo en el ciclo de prueba 2 nivel 2
cambiamos mx de 2 a 3 en nivel 2
ciclo de prueba en 2 nivel 2
ciclo de prueba en 1 nivel 2
fallo en el ciclo de prueba 1 nivel 2
cambiamos mx de 3 a 4 en nivel 2
ciclo de prueba en 2 nivel 2
ciclo de prueba en 1 nivel 2
ciclo de prueba en 0 nivel 2
asignamos x=4 en nivel 2
ciclo de prueba en 3 nivel 3
fallo en el ciclo de prueba 3 nivel 3
.
.
.
fallo en el ciclo de prueba 8 nivel 19
cambiamos mx de 8 a 9 en nivel 19
ciclo de prueba en 19 nivel 19
ciclo de prueba en 18 nivel 19
ciclo de prueba en 17 nivel 19
ciclo de prueba en 16 nivel 19
ciclo de prueba en 15 nivel 19
ciclo de prueba en 14 nivel 19
ciclo de prueba en 13 nivel 19
ciclo de prueba en 12 nivel 19
ciclo de prueba en 11 nivel 19
ciclo de prueba en 10 nivel 19
fallo en el ciclo de prueba 10 nivel 19
cambiamos mx de 9 a 10 en nivel 19
ciclo de prueba en 19 nivel 19
ciclo de prueba en 18 nivel 19
ciclo de prueba en 17 nivel 19
ciclo de prueba en 16 nivel 19
ciclo de prueba en 15 nivel 19
ciclo de prueba en 14 nivel 19
ciclo de prueba en 13 nivel 19
ciclo de prueba en 12 nivel 19
ciclo de prueba en 11 nivel 19
ciclo de prueba en 10 nivel 19
ciclo de prueba en 9 nivel 19
ciclo de prueba en 8 nivel 19
ciclo de prueba en 7 nivel 19
ciclo de prueba en 6 nivel 19
ciclo de prueba en 5 nivel 19
ciclo de prueba en 4 nivel 19
ciclo de prueba en 3 nivel 19
ciclo de prueba en 2 nivel 19
ciclo de prueba en 1 nivel 19
ciclo de prueba en 0 nivel 19
asignamos x=10 en nivel 19
q: en 0 = 0
q: en 1 = 2
q: en 2 = 4
q: en 3 = 1
q: en 4 = 3
q: en 5 = 12
q: en 6 = 14
q: en 7 = 11
q: en 8 = 17
q: en 9 = 19
q: en 10 = 16
q: en 11 = 8
q: en 12 = 15
q: en 13 = 18
q: en 14 = 7
q: en 15 = 9
q: en 16 = 6
q: en 17 = 13
q: en 18 = 5
q: en 19 = 10
entonces Reinas=[0,2,4,1,3,12,14,11,17,19,16,8,15,18,7,9,6,13,5,10]
hay mejores técnicas para la solución de sistemas no informados pero por ahora explico este que es uno de los mas simples de entender.
La técnica de búsqueda en Anchura es mucho mas tediosos ya que abre todas las posibles soluciones de cada nivel antes de seguir buscando en profundidad, lo bueno es que te puede dar la solución mas optimas pero requiere de mucho tiempo.
la IA(inteligencia artificial) son métodos para buscar soluciones de forma automática de forma optima eficiente y rápida, esto quiere decir que no es solo un código algoritmo que busca soluciones. consiste no solo en buscar una solución si no en buscar la mas indicada la mas estable la mas rápida, Bueno ya van entendiendo la idea.
Teoria:
para solucionar esto es necesario implementar una técnica básica llamada búsqueda en profundidad o búsqueda en anchura, que consiste en explorar las diferentes opciones de forma ordenada con el fin de obtener una solución a nuestro problema
las técnicas carecen de información sobre el sistema solo conocen las reglas y es necesario indicarle un punto de inicio que puede ser cualquiera.
entonces la regla es la misma que en el ajedrez ; las reinas comen en horizontal en vertical y diagonal.
nuestro objetivo es colocar n reinas en un tablero de NxM sin que se maten.
condición inicial en el punto 1-1 por que es mas fácil iniciar en odre que con métodos aleatorios pero es su decisión.
entonces como lo solucionamos ?
paso 1 en el nivel 1 siendo y los movimientos verticales sumamos 1 ya que comenzamos en colocar la primera reina en 1-1
paso 2 en el nivel siguiente es necesario buscar la primera posición x en horizontal donde sea posible colocar una reina y sumar un nivel en y
paso 3 si no se puede obtener una solución es necesario restar un nivel borrar la reina de el lugar donde se coloco anteriormente y probar con la siguiente opción de X y repetir el paso 2 y 3.
este metido no nos asegura la solución mas optima pero nos garantiza una solución y se puede implementar para buscar la salida de un lugar o plantear una ruta para llegar a un lugar no solo para solucionar el juego de colocar n reinas en un tablero de NxM.
entonces como escribe la solución ?
Reinas es un vector donde su indice depende del nivel Y y su contenido de X
la solución para un cuadro de 4x4 seria
R[2,4,1,3]
para uno de 5 x 5 seria
R[1,3,5,2,4]
para uno de 20 x 20 seria :
este les voy a colocar paso a paso la solución y créanme que toma un muy buen rato solucionarlo y es por esto que se emplean técnicas de este estilo para buscar la solución.
tomen en cuenta que para el computador el 0 es una numero que se cuenta a si que nuestros niveles y valores están entre 0 y 19.
solo voy a colocar parte del procedimiento por que se extendería demasiado y no tendría diferencia si esta o no ya que no creo que lo revisen todo, me enfocare en lo mas importante.
coloque el valor de n : 19
iniciando q: en 0 = -1
iniciando q: en 1 = -1
iniciando q: en 2 = -1
iniciando q: en 3 = -1
iniciando q: en 4 = -1
iniciando q: en 5 = -1
iniciando q: en 6 = -1
iniciando q: en 7 = -1
iniciando q: en 8 = -1
iniciando q: en 9 = -1
iniciando q: en 10 = -1
iniciando q: en 11 = -1
iniciando q: en 12 = -1
iniciando q: en 13 = -1
iniciando q: en 14 = -1
iniciando q: en 15 = -1
iniciando q: en 16 = -1
iniciando q: en 17 = -1
iniciando q: en 18 = -1
iniciando q: en 19 = -1
ciclo de prueba en 0 nivel 0
asignamos x=0 en nivel 0
ciclo de prueba en 1 nivel 1
fallo en el ciclo de prueba 1 nivel 1
cambiamos mx de 0 a 1 en nivel 1
ciclo de prueba en 1 nivel 1
fallo en el ciclo de prueba 1 nivel 1
cambiamos mx de 1 a 2 en nivel 1
ciclo de prueba en 1 nivel 1
ciclo de prueba en 0 nivel 1
asignamos x=2 en nivel 1
ciclo de prueba en 2 nivel 2
fallo en el ciclo de prueba 2 nivel 2
cambiamos mx de 0 a 1 en nivel 2
ciclo de prueba en 2 nivel 2
ciclo de prueba en 1 nivel 2
fallo en el ciclo de prueba 1 nivel 2
cambiamos mx de 1 a 2 en nivel 2
ciclo de prueba en 2 nivel 2
fallo en el ciclo de prueba 2 nivel 2
cambiamos mx de 2 a 3 en nivel 2
ciclo de prueba en 2 nivel 2
ciclo de prueba en 1 nivel 2
fallo en el ciclo de prueba 1 nivel 2
cambiamos mx de 3 a 4 en nivel 2
ciclo de prueba en 2 nivel 2
ciclo de prueba en 1 nivel 2
ciclo de prueba en 0 nivel 2
asignamos x=4 en nivel 2
ciclo de prueba en 3 nivel 3
fallo en el ciclo de prueba 3 nivel 3
.
.
.
fallo en el ciclo de prueba 8 nivel 19
cambiamos mx de 8 a 9 en nivel 19
ciclo de prueba en 19 nivel 19
ciclo de prueba en 18 nivel 19
ciclo de prueba en 17 nivel 19
ciclo de prueba en 16 nivel 19
ciclo de prueba en 15 nivel 19
ciclo de prueba en 14 nivel 19
ciclo de prueba en 13 nivel 19
ciclo de prueba en 12 nivel 19
ciclo de prueba en 11 nivel 19
ciclo de prueba en 10 nivel 19
fallo en el ciclo de prueba 10 nivel 19
cambiamos mx de 9 a 10 en nivel 19
ciclo de prueba en 19 nivel 19
ciclo de prueba en 18 nivel 19
ciclo de prueba en 17 nivel 19
ciclo de prueba en 16 nivel 19
ciclo de prueba en 15 nivel 19
ciclo de prueba en 14 nivel 19
ciclo de prueba en 13 nivel 19
ciclo de prueba en 12 nivel 19
ciclo de prueba en 11 nivel 19
ciclo de prueba en 10 nivel 19
ciclo de prueba en 9 nivel 19
ciclo de prueba en 8 nivel 19
ciclo de prueba en 7 nivel 19
ciclo de prueba en 6 nivel 19
ciclo de prueba en 5 nivel 19
ciclo de prueba en 4 nivel 19
ciclo de prueba en 3 nivel 19
ciclo de prueba en 2 nivel 19
ciclo de prueba en 1 nivel 19
ciclo de prueba en 0 nivel 19
asignamos x=10 en nivel 19
q: en 0 = 0
q: en 1 = 2
q: en 2 = 4
q: en 3 = 1
q: en 4 = 3
q: en 5 = 12
q: en 6 = 14
q: en 7 = 11
q: en 8 = 17
q: en 9 = 19
q: en 10 = 16
q: en 11 = 8
q: en 12 = 15
q: en 13 = 18
q: en 14 = 7
q: en 15 = 9
q: en 16 = 6
q: en 17 = 13
q: en 18 = 5
q: en 19 = 10
entonces Reinas=[0,2,4,1,3,12,14,11,17,19,16,8,15,18,7,9,6,13,5,10]
hay mejores técnicas para la solución de sistemas no informados pero por ahora explico este que es uno de los mas simples de entender.
La técnica de búsqueda en Anchura es mucho mas tediosos ya que abre todas las posibles soluciones de cada nivel antes de seguir buscando en profundidad, lo bueno es que te puede dar la solución mas optimas pero requiere de mucho tiempo.