Sei sulla pagina 1di 2

Inteligencia artificial y juegos

Los juegos nos permiten poner en prctica algoritmos como los vistos hasta ahora
en entornos ms o menos reales.
Hay muchos tipos de juegos, nos centraremos en una clase especial de juegos
que tienen las siguientes caractersticas.

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 informacin referente al juego incluyendo las jugadas que realiza el
oponente.
En cada jugada, las reglas o movimientos posibles estn perfectamente
articulados, son precisos y no interviene al azar (como en juegos de cartas
o dados.

Dentro de esta categora entran juegos como tres en raya, ajedrez, damas, o
conecta 4, as como la mayora de los juegos de tablero.
En general, podemos considerar a los juegos como problemas de bsqueda en los
que habitualmente se utiliza alguna heurstica. 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 funcin de evaluacin 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 evala y se le
asigna el valor +1, -1 o 0 segn la funcin de evaluacin. 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 ms 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 funcin de
evaluacin 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 funcin 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 tcnica que nos permite mejorar el rendimiento del
algoritmo minimax. La idea bsica consiste en no examinar aquellas partes del
rbol que sabemos que no nos van a aportar ms informacin de la que ya
disponemos. El nombre de poda proviene del hecho de que al no examinar ciertas
ramas es como si las podramos. 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 distribucin de los nodos y
sus valores segn la funcin de evaluacin.

Otros tipos de juegos


Nos hemos centrado durante el captulo en lo que se denominan juegos
perfectamente informados. Siempre para dos componentes. Adems, 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 tcnicamente que podemos usar para juegos de ms de dos
jugadores y los juegos en los que interviene el azar.
En juegos donde compiten ms de dos jugadores, como pueden ser el parchs, 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
funcin de evaluacin 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 puntuacin de ambos jugadores ya
que al tratarse de juego de suma cero, el valor obviado del otro jugador podamos
suponerlo igual al ofrecido por la funcin de evaluacin pero con signo contrario.

Potrebbero piacerti anche