búsqueda entre adversarios

8
Búsqueda entre Adversarios Juegos Los juegos son una de las áreas más interesantes y más antiguas en el campo de la inteligencia artificial. Fueron uno de los primeros problemas en ser abordados cuando las computadoras se volvieron programables y como era de esperar se obtuvieron resultados muy importantes en esta área, siendo así que hasta cierto punto las máquinas han superado a las personas en algunos juegos como son el ajedrez, damas y otros juegos en los cuales campeones mundiales se han visto superados por las computadoras. La importancia de los juegos en la inteligencia artificial nace de los entornos multiagente en los cuales los agentes deben considerar las acciones de otros y como estas les afectan. Esto se lo puede apreciar mejor en entornos multiagente competitivos en los cuales los intereses de los agentes entran en conflicto y se crean los problemas de búsqueda entre adversarios. En la Inteligencia artificial uno de los más estudiados son los llamados “Juegos de Suma cero” los cuales son entornos deterministas, totalmente observables en los cuales existen dos agentes cuyas acciones se alternan y los cuales poseerán valores de utilidad iguales y opuestos, algunos ejemplos de estos juegos son: ajedrez, damas, tres en raya etc. Estos juegos se caracterizan porque cada jugador conoce las posibles jugadas del contrario, no interviene el azar en la elección de la mejor jugada y por tanto se genera un árbol finito. Sin embargo este árbol puede llegar a ser de un tamaño realmente considerable incluso para los juegos más sencillos. Como ejemplo de esto podemos tomar

Upload: israel-rey

Post on 25-Jul-2015

32 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Búsqueda entre adversarios

Búsqueda entre Adversarios

Juegos

Los juegos son una de las áreas más interesantes y más antiguas en el campo de la inteligencia artificial. Fueron uno de los primeros problemas en ser abordados cuando las computadoras se volvieron programables y como era de esperar se obtuvieron resultados muy importantes en esta área, siendo así que hasta cierto punto las máquinas han superado a las personas en algunos juegos como son el ajedrez, damas y otros juegos en los cuales campeones mundiales se han visto superados por las computadoras.

La importancia de los juegos en la inteligencia artificial nace de los entornos multiagente en los cuales los agentes deben considerar las acciones de otros y como estas les afectan. Esto se lo puede apreciar mejor en entornos multiagente competitivos en los cuales los intereses de los agentes entran en conflicto y se crean los problemas de búsqueda entre adversarios.  

En la Inteligencia artificial uno de los más estudiados son los llamados “Juegos de Suma cero” los cuales son entornos deterministas, totalmente observables en los cuales existen dos agentes cuyas acciones se alternan y los cuales poseerán valores de utilidad iguales y opuestos, algunos ejemplos de estos juegos son: ajedrez, damas, tres en raya etc. Estos juegos se caracterizan porque cada jugador conoce las posibles jugadas del contrario, no interviene el azar en la elección de la mejor jugada y por tanto se genera un árbol finito. Sin embargo este árbol puede llegar a ser de un tamaño realmente considerable incluso para los juegos más sencillos. Como ejemplo de esto podemos tomar como referencia el ajedrez (ejemplo tomado de (Alcalá)) considerando su árbol de la siguiente manera:

Juega blancas: Peón 1 escaque x8 Peón 2 escaques x8 Caballo x4 20 movimientos posibles

Juega negras: Las mismas posibilidades

A nivel 2 hay 400 posibilidades A nivel 4 hay unas 20.000 posibilidades

Page 2: Búsqueda entre adversarios

Como podemos notar se comienza a formar un patrón en el cual el crecimiento es exponencial y por tanto desarrollar el árbol completo genera más posibilidades que átomos hay en la galaxia. El tiempo necesario para recorrer un árbol de tal magnitud es inimaginable y por tanto demasiado costoso por estos motivo que resulta sumamente importante buscar formas de optimizar el tiempo y también así poder tomar la decisión más óptima. Es por eso que se han creado técnicas como la poda que nos permite ignorar ciertas partes del árbol que no marcan ninguna diferencia para obtener la opción final y las funciones de evaluación heurísticas que nos permiten aproximar la utilidad verdadera de un estado sin tener que realizar una búsqueda completa.

Decisiones Óptimas

Al juego se lo define como una clase de problemas de búsqueda.

Consta de los siguientes componentes:

El estado inicial.

Una función sucesor, que devuelve una lista de pares (movimiento, estado)

Un test terminal, que determina cuándo termina el juego (por estructura o propiedades o función utilidad)

Una función utilidad conocida también como función objetivo donde se determina el estado terminal

Pero en los juegos no solo consiste en realizar un conjunto de movimientos y llegar al objetivo o función utilidad el cual es ganar, también se analiza la estrategia más óptima dependiendo de los movimientos que realice el adversario.

Minimax

En teoría de juegos, Minimax es un método de decisión para minimizar la pérdida máxima esperada en juegos con adversario y con información perfecta. Minimax es un algoritmo recursivo.

El espacio de estados se representa mediante árboles alternados, donde: Nodo: Representa una situación del juego Sucesores de un nodo: Situaciones del juego a las que se accede por

movimientos legales aplicando sus reglas Nivel: Contiene todas las situaciones posibles para uno de los jugadores

Page 3: Búsqueda entre adversarios

El algoritmo Minimax es un procedimiento recursivo y el corte de la recursión está dado por alguna de las siguientes condiciones:

Gana algún jugador Se han explorado N capas, siendo N el límite establecido Se ha agotado el tiempo de exploración Se ha llegado a una situación estática donde no hay grandes cambios de un nivel

a otro.

Pasos del Algoritmo Minimax

1. Generación del árbol de juego. Se generarán todos los nodos hasta llegar a un estado terminal.2. Cálculo de los valores de la función de utilidad para cada nodo terminal. 3. Calcular el valor de los nodos superiores a partir del valor de los inferiores.Alternativamente se elegirán los valores mínimos y máximos representando los movimientos del jugador y del oponente, de ahí el nombre de Minimax.4. Elegir la jugada valorando los valores que han llegado al nivel superior.

El algoritmo explorará los nodos del árbol asignándoles un valor numérico mediante una función de utilidad, empezando por los nodos terminales y subiendo hacia la raíz.

Colocar 0 ó 1 en los nodos terminales dependiendo si gana MIN o MAX La función de utilidad definirá lo buena que es la posición para un jugador

cuando la alcanza. Se requiere de una estrategia que garantice llegar a estados terminales ganadores

independientemente de lo que haga el oponente. Un valor positivo indica la ventaja de un jugador y uno negativo la ventaja del

otro. El jugador que espera valores positivos se conoce como maximizador El jugador que espera valores negativos se conoce como minimizador El maximizador busca movimientos que lo conduzcan al mayor número positivo El minimizador busca movimientos que lo conduzcan al menor número negativo

Ejemplo:

Page 4: Búsqueda entre adversarios

• El maximizador: Puede esperar llegar a un valor de 8 Sabe que el minimizador puede escoger un movimiento que lo lleve a un valor

de 1 Desde el punto de vista del maximizador, el minimizador puede escoger 2 ó 1 Los resultados de un nivel determinan la acción y el resultado del nivel

inmediato superiorEJEMPLO

Funcionamiento de Minimax en un árbol generado para un juego imaginario. Los posibles valores de la función de utilidad tienen un rango de [1-9]. En los movimientos del contrincante suponemos que escogerá los movimientos

que minimicen nuestra utilidad En nuestros movimientos suponemos que escogeremos los movimientos que

maximizan nuestra utilidad. 1er. Paso: Calcular los nodos terminales, en verde. 2º. Paso: Calcular el cuarto nivel, movimiento MIN, minimizando lo elegido (5,

2 y 1). 3er. Paso: Calcular el tercer nivel, movimiento MAX, maximizando la utilidad

(5, 9). El segundo nivel es un movimiento MIN (5, 3 y 1). Finalmente llegamos al primer nivel, el movimiento actual, elegiremos el nodo

que maximice nuestra utilidad (5).

Page 5: Búsqueda entre adversarios

Decisiones óptimas en multi-jugador

Son las decisiones óptimas que deben tomar diversos adversarios en conflicto, pudiendo definirse como el estudio de modelos matemáticos que describen el conflicto y la cooperación entre entes inteligentes que toman decisiones. Tales decisiones se consideran estratégicas, es decir, que los entes que participan en el juego actúan teniendo en cuenta las acciones que tomarían los demás, es decir cualquier agente tiene que considerar las acciones de otros agentes, y esto sería un entorno multiagente ya sean cooperativos o competitivos.

Los juegos de suma cero son aquellos que todo lo que gana un participante es igual a todo lo que pierde el otro participante.

Un caso de un juego suma cero:  

El ajedrez, cada vez que un jugador le gana una pieza a su contrincante, este pierde esa pieza,  y el resultado será un ganador y un perdedor, es decir que todo lo que beneficia a uno de los jugadores perjudica al otro jugador.

Un caso de un juego suma no cero, que sería un juego multi-jugador, con cuatro jugadores en vez de dos.

Partido de tenis de dobles, ya no es uno contra uno, es dos contra dos, si el compañero marca un punto se gana, es decir lo que haga el compañero, puede beneficiar o no, ambos ganan o ambos pierden.

Page 6: Búsqueda entre adversarios

Bibliografía

Russell, S. J., & Norvig, P. (2004). Inteligencia Artificial: un enfoque moderno.