Buenas Jorge, una duda, ¿por qué al calcular la distancia Manhattan no podemos contar las casillas en diagonal si el enunciado nos permite hacer dicho movimiento? Por ejemplo yendo de 5 a D serían 14+14= 28 en diagonal en vez de 40 como calculamos en la resolución.
Porque utiliza la distancia de Manhattan, esta calcula la distancia que hay entre la posicion actual y la final, restando la una a la otra... por ejemplo: si D está en la posicion (x=1,y=2) y 5 está en la posicion (x=3,y=4) la distancia entre una y la otra sería el valor absoluto de |xf - xi| + |yf - yi| es decir, (3-1 + 4-2) = (2+2) = 4... el numero de casillas que la separan... 4 * 10 = 40
Una pequeña consulta, Cuando estamos en el nodo "9", ¿por qué no se actualiza el nodo de la derecha (el que tiene el valor 96 en F, procedente del nodo "8")?
Me parece que es porque la nueva G sería mayor que la antigua (52 del "nodo 9" + 10 por el desplazamiento horizontal) y la idea es actualizar solamente cuando el nuevo G resulte menor que el anterior (y por lo tanto el nuevo F también).
Hola Jader! Cuando se exploró previamente ese nodo (y se incluyó por primera vez en la lista abierta que contiene los nodos candidatos a ser procesados) desde el nodo procesado 8 obtuvo una G=52 (distancia real más corta hasta el momento desde el origen). Posteriormente, como bien dices, vuelve a ser candidato a ser actualizado desde el nodo 9 pues está entre sus adyacentes. Sin embargo, la G pasando por 9 sería de 52 (valor de G en 9) + 10 (distancia entre celdas adyacentes en horizontal) = 62, que es mayor que el G previo desde 8 (52), por lo que no se actualiza ese nodo ya que el camino más corto sigue siendo llegar en diagonal desde 8. Solo se actualiza un nodo cuando mejora su G y, si el nodo llega a ser procesado (es el de menor G en la lista abierta) y se etiqueta con un número como en el ejemplo de este vídeo, ya nunca podrá volver a ser actualizado pues contiene la distancia G más corta posible desde el origen (por eso se saca de la lista abierta y se mete en la lista cerrada).
Muy bien explicado, hacen falta mas maestros así
Muy buen video, una explicación sencilla y fácil de entender
Buenas Jorge, una duda, ¿por qué al calcular la distancia Manhattan no podemos contar las casillas en diagonal si el enunciado nos permite hacer dicho movimiento? Por ejemplo yendo de 5 a D serían 14+14= 28 en diagonal en vez de 40 como calculamos en la resolución.
Muy buena explicación. 🤓
Porque utiliza la distancia de Manhattan, esta calcula la distancia que hay entre la posicion actual y la final, restando la una a la otra... por ejemplo: si D está en la posicion (x=1,y=2) y 5 está en la posicion (x=3,y=4) la distancia entre una y la otra sería el valor absoluto de |xf - xi| + |yf - yi| es decir, (3-1 + 4-2) = (2+2) = 4... el numero de casillas que la separan... 4 * 10 = 40
Una pequeña consulta, Cuando estamos en el nodo "9", ¿por qué no se actualiza el nodo de la derecha (el que tiene el valor 96 en F, procedente del nodo "8")?
Me parece que es porque la nueva G sería mayor que la antigua (52 del "nodo 9" + 10 por el desplazamiento horizontal) y la idea es actualizar solamente cuando el nuevo G resulte menor que el anterior (y por lo tanto el nuevo F también).
Hola Jader! Cuando se exploró previamente ese nodo (y se incluyó por primera vez en la lista abierta que contiene los nodos candidatos a ser procesados) desde el nodo procesado 8 obtuvo una G=52 (distancia real más corta hasta el momento desde el origen). Posteriormente, como bien dices, vuelve a ser candidato a ser actualizado desde el nodo 9 pues está entre sus adyacentes. Sin embargo, la G pasando por 9 sería de 52 (valor de G en 9) + 10 (distancia entre celdas adyacentes en horizontal) = 62, que es mayor que el G previo desde 8 (52), por lo que no se actualiza ese nodo ya que el camino más corto sigue siendo llegar en diagonal desde 8. Solo se actualiza un nodo cuando mejora su G y, si el nodo llega a ser procesado (es el de menor G en la lista abierta) y se etiqueta con un número como en el ejemplo de este vídeo, ya nunca podrá volver a ser actualizado pues contiene la distancia G más corta posible desde el origen (por eso se saca de la lista abierta y se mete en la lista cerrada).
Ojalá fueras mi profesor de IA :)
mmmta