2.1 Evaluación de la función de evaluación [Inteligencia Artificial]

Iniciado por Andrey, Octubre 16, 2017, 11:02:31 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Respuesta del ejercicio anterior.

Retroalimentación:

El nivel inferior es fácil de calcular, es solo el número de movimientos disponibles para el jugador "O", a continuación, el segundo nivel es un nivel máximo. Así que tomamos el máximo en cada nivel y lo propagamos a las ramificaciones superiores.

Ahora si tratamos de llenar los valores para todo el árbol Minimax. Utilizando los movimientos del nivel inferior y propagarlos hasta la parte superior del árbol Minimax.

Puesto que es demasiado y poco optimo mostrar todo el árbol aquí, vamos a utilizar una versión simplificada en su lugar.

Aquí están los valores que dan como resultado, no hay mucha variación aquí, pero hay un buen número de opciones.


Se pueden ver tres ramas que tienen un valor de 2, el jugador de la computadora probablemente tomara el movimiento a la izquierda de forma automática, por lo que vamos a tomar esta medida para empezar.

Recuerde que cuando tuvimos nuestro simple tablero de aislamiento de cinco movimientos y se realizaron búsquedas para terminar el juego.

Se encontró que el jugador siempre se ganaría menos que se trasladó a una del centro posicional primero.
La pregunta es ¿Nuestra función de evaluación de mis movimientos predice que ramificación dará lugar a una victoria y cuáles van a llevar a una derrota?
Así es.

¿Qué ocurre si hacemos lo mismo de propagar los movimientos, pero suponemos que solo se puede ir en dos niveles de profundidad en nuestro árbol de búsqueda?

Ahora vamos a suponer que solo podemos buscar al nivel dos de nuestro árbol Minimax.

Estos son los valores que obtenemos después de buscar hasta el nivel dos de nuestro árbol de juego. Podemos ver que los valores son significativamente diferentes de cuando se buscaron los valores hasta el nivel tres.


Anteriormente se hubieran elegido uno de los tres nodos con el valor 2, por que se recibia de ellos el valor más alto en nuestra función de evaluación.

Sin embargo, después de solo buscar al nivel dos, vemos que en realidad son los otros nodos los que reciben un valor más alto en nuestra función de evaluación.

Por lo tanto en este caso, nuestro jugador de la computadora podría elegir uno de los dos movimientos con el valor de "3", y si se toma el movimiento de la izquierda primero, elegiría el primer movimiento con 3 en valor máximo (la segunda ramificación), el cual, es una elección diferente de lo que hubiera hecho después de subir al nivel tres.
Con el límite de profundidad de dos, obtenemos un resultado muy diferente que con el límite de tres.
En el nivel dos, el centro perdedor mueve. Ambos tienen puntuaciones de tres, mientras que los movimientos ganadores tienen puntuaciones más pequeñas.

Esto no significa que nuestra función de evaluación es mala, puede significar que no estamos buscando la profundidad suficiente para obtener buenas respuestas.
Una forma de comprobar es ver que se ramifica el algoritmo Minimax recomienda en cada nivel de búsqueda. Si los resultados varían ampliamente entre ciertos niveles, puede ser debido a una decisión crítica que se está haciendo en esos niveles.




"Es un mundo brutal y peligroso el que hay allá afuera... Pero encontré mi camino. El caos es mi hogar, y me aseguraré de que no escapes de el"...

"Solo se necesita una excusa para cambiar el mundo"