Inteligencia Artificial y Juegos

3
Inteligencia artificial y juegos Los juegos nos permiten poner en práctica algoritmos como los vistos hasta ahora en entornos más o menos reales. Hay muchos tipos de juegos, nos centraremos en una clase especial de juegos que tienen las siguientes características. Son juegos con adversario, es decir compiten dos jugadores con intereses opuestos. Son juegos de los denominados de suma cero. Son juegos perfectamente informados, lo que quiere decir que conocemos toda la información referente al juego incluyendo las jugadas que realiza el oponente. En cada jugada, las reglas o movimientos posibles están perfectamente articulados, son precisos y no interviene al azar (como en juegos de cartas o dados. Dentro de esta categoría entran juegos como tres en raya, ajedrez, damas, o conecta 4, así como la mayoría de los juegos de tablero. En general, podemos considerar a los juegos como problemas de búsqueda en los que habitualmente se utiliza alguna heurística. La mayor diferencia estriba en que ahora hay un oponente que no sabemos qué movimiento realizara en la siguiente jugada, y por lo tanto analizar todos los posibles movimientos. De forma visual, el despliegue de una partida puede representarse mediante un árbol. El algoritmo de minimax El nombre del algoritmo minimax proviene del hecho de que vamos a denominar como MAX al turno del ordenador y MIN al turno del oponente humano al que hay que vencer. El turno del ordenador se llama max porque el algoritmo trata de maximizar las posibilidades de vencer y el turno del oponente se llama

description

Inteligencia artificial relacionada a juegos(minimax)

Transcript of Inteligencia Artificial y Juegos

Inteligencia artificial y juegos

Los juegos nos permiten poner en práctica algoritmos como los vistos hasta ahora en entornos más o menos reales.

Hay muchos tipos de juegos, nos centraremos en una clase especial de juegos que tienen las siguientes características.

Son juegos con adversario, es decir compiten dos jugadores con intereses opuestos.

Son juegos de los denominados de suma cero. Son juegos perfectamente informados, lo que quiere decir que conocemos

toda la información referente al juego incluyendo las jugadas que realiza el oponente.

En cada jugada, las reglas o movimientos posibles están perfectamente articulados, son precisos y no interviene al azar (como en juegos de cartas o dados.

Dentro de esta categoría entran juegos como tres en raya, ajedrez, damas, o conecta 4, así como la mayoría de los juegos de tablero.

En general, podemos considerar a los juegos como problemas de búsqueda en los que habitualmente se utiliza alguna heurística. La mayor diferencia estriba en que ahora hay un oponente que no sabemos qué movimiento realizara en la siguiente jugada, y por lo tanto analizar todos los posibles movimientos. De forma visual, el despliegue de una partida puede representarse mediante un árbol.

El algoritmo de minimax

El nombre del algoritmo minimax proviene del hecho de que vamos a denominar como MAX al turno del ordenador y MIN al turno del oponente humano al que hay que vencer. El turno del ordenador se llama max porque el algoritmo trata de maximizar las posibilidades de vencer y el turno del oponente se llama min porque es necesario minimizar sus posibilidades de vencer.

Un nodo terminal es aquel en el que gana alguno de los jugadores o hay empate (tablas). El algoritmo minimax, al igual que ocurre con los algoritmos estudiados anteriormente, utilizar una función de evaluación que ahora, por ahora, utilizaremos para evaluar los nodos terminales.

El algoritmo de mini max es un algoritmo que recorre el árbol de juego en profundidad hasta alcanzar un nodo terminal. Una vez alcanzado se evalúa y se le asigna el valor +1, -1 o 0 según la función de evaluación. Una vez marcado el nodo terminal con su con su valor correspondiente, el algoritmo minimax ira propagando estos valores hacia los nodos padre tiene dos o más hijos con distintos valores, este hereda el valor menor si se trata de un nodo min (es el turno

del jugador humano) o el valor mayor si es un nodo max (es el turno del ordenador). Este comportamiento es totalmente coherente con el objetivo que perseguimos. Si es el turno del jugador max queremos maximizar la función de evaluación para que el ordenador gane la partida; es decir, seleccionamos el valor mas alto entre todos los nodos hijo (idealmente el valor +1). Si es el turno de min queremos minimizar la función de evaluar por lo que escogeremos el nodo hijo con el valor mas bajo (idealmente el valor -1).

Poda alfa-beta

La poda alfa-beta es una técnica que nos permite mejorar el rendimiento del algoritmo minimax. La idea básica consiste en no examinar aquellas partes del árbol que sabemos que no nos van a aportar más información de la que ya disponemos. El nombre de poda proviene del hecho de que al no examinar ciertas ramas es como si las podáramos. Se estima que al usar la poda alfa-beta obtenemos una mejora media del 30% de rendimiento respecto al algoritmo minimax aunque, como veremos, todo depende de la distribución de los nodos y sus valores según la función de evaluación.

Otros tipos de juegos

Nos hemos centrado durante el capítulo en lo que se denominan juegos perfectamente informados. Siempre para dos componentes. Además, ninguno de estos juegos tienen ninguna componente aleatoria o de azar como pueden ser las cartas o juegos en los que intervienen el uso de dados. Vamos a revisar someramente las técnicamente que podemos usar para juegos de más de dos jugadores y los juegos en los que interviene el azar.

En juegos donde compiten más de dos jugadores, como pueden ser el parchís, el domino o cualquier otro juego similar, será necesario hacer algunas adaptaciones al algoritmo minimax para que nos siga siendo útil. Supongamos un juego de tres jugadores A, B y C. en cada nodo tendremos un vector con los valores para la función de evaluación correspondiente a cada jugador, en este caso el vector con valores donde el primer valor corresponde al jugador A, el segundo al jugador B y el tercero al C. En el árbol minimax correspondiente a dos jugadores que hemos analizado al principio no era necesario poner la puntuación de ambos jugadores ya que al tratarse de juego de suma cero, el valor obviado del otro jugador podíamos suponerlo igual al ofrecido por la función de evaluación pero con signo contrario.