30
Búsqueda entre adversarios Presenta: Geovany Pérez Santa Cruz Donde examinaremos los problemas que surgen cuando tratamos de planear en un mundo donde otros agentes planean contra nosotros.

Busqueda entre adversarios

  • Upload
    gvnyps

  • View
    2.082

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Busqueda entre adversarios

Búsqueda entre adversarios

Presenta:Geovany Pérez Santa Cruz

Donde examinaremos los problemas que surgen cuando tratamos de planear en un mundo donde otros agentes planean contra nosotros.

Page 2: Busqueda entre adversarios

SUBTEMAS

6.1 Juegos.

6.2 Decisiones óptimas en juegos.

6.3 Poda alfa-beta.

6.4 Decisiones en tiempo real imperfectas.

6.5 Juegos que incluyen un elemento de posibilidad.

Page 3: Busqueda entre adversarios

6.1 Juegos

En IA, los juegos son, por lo general, una clase más especializada (que los teóricos de juegos llaman juegos de suma cero, de dos jugadores, por turnos, determinista, de información perfecta).

Por ejemplo, si un jugador gana un juego de ajedrez (+ 1), el otro jugador necesariamente pierde (- 1). Esta oposición entre las funciones de utilidad de los agentes hace la situación entre adversarios.

Los juegos han ocupado las facultades intelectuales de la gente (a veces a un grado alarmante) mientras ha existido la civilización. Para los investigadores de IA, la naturaleza abstracta de los juegos los hacen un tema atractivo a estudiar.

El jugar a juegos fue una de las primeras tareas emprendidas en IA. Hacia 1950, casi tan pronto como los computadores se hicieron programables, el ajedrez fue abordado por Konrad Zuse (el inventor del primer computador programable y del primer lenguaje de programación), por Claude Shannon (el inventor de la teoría de información), por Norbert Wiener (el creador de la teoría de control moderna), y por Alan Turing.

Page 4: Busqueda entre adversarios

Los juegos, como el mundo real, requieren la capacidad de tomar alguna decisión cuando es infactible calcular la decisión óptima. Los juegos también castigan la ineficiencia con severidad. Mientras que una implementación de la búsqueda A* que sea medio eficiente costará simplemente dos veces más para ejecutarse por completo, un programa de ajedrez que sea medio eficiente en la utilización de su tiempo disponible, probablemente tendrá que descartarse si no intervienen otros factores.

La poda nos permite ignorar partes del árbol de búsqueda que no marcanninguna diferencia para obtener la opción final, y las funciones de evaluación heurísticas nos permiten aproximar la utilidad verdadera de un estado sin hacer una búsqueda completa.

Finalmente, veremos cómo se desenvuelven los programas de juegos contra la oposición humana y las direcciones para el desarrollo futuro.

Page 5: Busqueda entre adversarios

6.2 Decisiones óptimas en juegos

Consideraremos juegos con dos jugadores, que llamaremos M AX y MIN por motivos que pronto se harán evidentes. MAX mueve primero, y luego mueven por turno hasta que el juego se termina. Al final de juego, se conceden puntos al jugador ganador y penalizaciones al perdedor.

Un juego puede definirse formalmente como una clase de problemas de búsqueda con los componentes siguientes:

El estado inicial, que incluye la posición del tablero e identifica al jugador quemueve.

Una función sucesor, que devuelve una lista de pares (movimiento, estado), indicando un movimiento legal y el estado que resulta.

Un test terminal, que determina cuándo se termina el juego. A los estados donde el juego se ha terminado se les llaman estados terminales.

Page 6: Busqueda entre adversarios

Una función utilidad (también llamada función objetivo o función de rentabilidad), que da un valor numérico a los estados terminales. En el ajedrez, el resultado es un triunfo, pérdida, o empate, con valores + 1, - 1 o 0. Algunos juegos tienen una variedad más amplia de resultados posibles: las rentabilidades en el backgammon se extienden desde + 192 a - 192. Este capitulo trata principalmente juegos de suma cero, aunque mencionemos brevemente juegos con «suma no cero».

El estado inicial y los movimientos legales para cada lado definen el árbol de Juegos.

La Figura 6.1 muestra la parte del árbol de juegos para el tic-tac-toe (tres en raya). Desde el estado inicial, MAX tiene nueve movimientos posibles. El juego alterna entre la colocación de una X para MAX y la colocación de un O para MIN, hasta que alcancemos nodos hoja correspondientes a estados terminales, de modo que un jugador tenga tres en raya o todos los cuadrados estén llenos.

Page 7: Busqueda entre adversarios

Estrategias óptimas

En un problema de búsqueda normal, la solución óptima sería una secuencia de movimientos que conducen a un estado objetivo (un estado terminal que es ganador). En un juego, por otra parte, MIN tiene algo que decir sobre ello. MAX por lo tanto debe encontrar una estrategia contingente, que especifica el movimiento MAX en el estado inicial, después los movimientos de MAX en los estados que resultan de cada respuesta posible de MIN, después los movimientos de MAX en los estados que resultan de cada respuesta posible de MIN de los anteriores movimientos, etcétera.

Page 8: Busqueda entre adversarios
Page 9: Busqueda entre adversarios

Incluso un juego simple como tic-tac-toe es demasiado complejo para dibujar el árbol de juegos entero, por tanto cambiemos al juego trivial de la Figura 6.2. Los movimientos posibles para MAX, en el nodo raíz, se etiquetan por y . Las respuestas posibles a , para MIN, son , etc.

3a 1a 321 ,, bbb21,aa

Este juego particular finaliza después de un movimiento para MAX y MIN. (En el lenguaje de juegos, decimos que este árbol es un movimientoen profundidad, que consiste en dos medios movimientos, cada uno de los cuales se llama capa.) Las utilidades de los estados terminales en este juego varía desde dos a 14.

Considerando un árbol de juegos, la estrategia Óptima puede determinarse examinando el valor mínimax de cada nodo, que escribimos como el VALOR-MINIMAX(n). El valor minimax de un nodo es la utilidad (para MAX) de estar en el estado correspondiente, asumiendo que ambos jugadores juegan óptimamente desde allí al final del juego.

Page 10: Busqueda entre adversarios

Además, considerando una opción, MAX preferirá moverse a un estado de valor máximo, mientras que MIN prefiere un estado de valor mínimo. Entonces tenemos lo siguiente:

Page 11: Busqueda entre adversarios
Page 12: Busqueda entre adversarios

El algoritmo minimax

El algoritmo minimax (Figura 6.3) calcula la decisión minimax del estado actual. Usa un cálculo simple recurrente de los valores minimax de cada estado sucesor, directamente implementando las ecuaciones de la definición. La recursión avanza hacia las hojas del árbol, y entonces los valores minimax retroceden por el árbol cuando la recursión se va deshaciendo. Por ejemplo, en la Figura 6.2, el algoritmo primero va hacia abajo a los tres nodos izquierdos, y utiliza la función UTILIDAD para descubrir que sus valores son3, 12 y 8 respectivamente.

Page 13: Busqueda entre adversarios
Page 14: Busqueda entre adversarios

Decisiones óptimas en juegos multi-jugador

Muchos juegos populares permiten más de dos jugadores.

Primero, tenemos que sustituir el valor para cada nodo con un vector de valores. Por ejemplo, en un juego de tres jugadores con jugadores A, B y C, un vector asociado con cada nodo. Para los estados terminales, este vector dará la utilidad del estado desde el punto de vista de cada jugador. (En dos jugadores, en juegos de suma cero, el vector de dos elementos puede reducirse a un valor porque los valores son siempre opuestos.)

3,2,4CV

BV

AV

Ahora tenemos que considerar los estados no terminales. Consideremos el nodo marcado con X en el árbol de juegos de la Figura. 6.4. En ese estado, el jugador C elige que hacer. Las dos opciones conducen a estados terminales con el vector de utilidad y . Como 6 es más grande que 3, C debería elegirlo como primer movimiento. Esto significa que si se alcanza el estado X, el movimiento siguiente conducirá a un estado terminal con utilidades . De ahí, que el valor que le llega a X es este vector.

6,2,1CV

BV

AV 3,2,4

CV

BV

AV

6,2,1CV

BV

AV

Page 15: Busqueda entre adversarios
Page 16: Busqueda entre adversarios

6.3 Poda alfa-beta

El problema de la búsqueda minimax es que el número de estados que tiene que examinar es exponencial en el número de movimientos. Lamentablemente no podemos eliminar el exponente, pero podemos dividirlo, con eficacia, en la mitad.

A la técnica que examinaremos se le llama poda alfa-beta.Cuando lo aplicamos a un árbol minimax estándar, devuelve el mismo movimiento que devolvería minimax, ya que podar las ramas no puede influir, posiblemente, en la decisión final.

Page 17: Busqueda entre adversarios
Page 18: Busqueda entre adversarios

Otro modo de verlo es como una simplificación de la fórmula VALOR-MINIMA X. Los dos sucesores no evaluados del nodo C de la Figura 6.5 tienen valores x e y, y sea z el mínimo entre x e y. El valor del nodo raíz es

MINIMA X- EVALUE (raíz)= max(min(3,12 , 8),min(2,x , y), min(14,5 , 2)) = max(3, min(2, x, y),2) = max(3, z, 2) donde z ≤ 2 = 3

En otras palabras, el valor de la raíz y de ahí la decisión minimax son independientes de los valores de las hojas podadas x e y.

La poda alfa-beta puede aplicarse a árboles de cualquier profundidad, y, a menudo, es posible podar subárboles enteros. El principio general es: considere un nodo n en el árbol (véase la Figura 6.6), tal que el Jugador tiene una opción de movimiento a ese nodo.Si el Jugador tiene una mejor selección m en el nodo padre de n o en cualquier punto más lejano, entonces n nunca será alcanzado en el juego actual.

Page 19: Busqueda entre adversarios
Page 20: Busqueda entre adversarios

La poda alfa-beta consigue su nombre de los dos parámetros que describen los límites sobre los valores hacia atrás que aparecen a lo largo del camina:

α = el valor de la mejor opción (es decir, valor mas alto) que hemos encontrado hasta ahora en cualquier punto elegido a Io largo del camino para MAX.

β = el valor de la mejor opción (es decir, valor más bajo) que hemos encontrado hasta ahora en cualquier punto elegido a lo largo del camino para MIN.

La búsqueda alfa-beta actualiza el valor de α y β según se va recorriendo el árbol y poda las ramas restantes en un nodo(es decir, termina la llamada recurrente) tan pronto como el valor del nodo actual es peor que el actual valor α o β para MAX o MIN, respectivamente.

La Figura 6.7 nos da el algoritmo completo. Animamos al lector a trazar su comportamiento cuando lo aplicamos al árbol de la Figura 6.5.

Page 21: Busqueda entre adversarios
Page 22: Busqueda entre adversarios

6.4 Decisiones en tiempo real imperfectas

El algoritmo minimax genera el espacio de búsqueda entero, mientras que el algoritmo alfa-beta permite que podemos partes grandes de él. Sin embargo, alfa-beta todavía tiene que buscar en todos los caminos, hasta los estados terminales, para una parte del espacio de búsqueda. Esta profundidad no es, por lo general, práctica porque los movimientos deben hacerse en una cantidad razonable de tiempo (típicamente, unos minutos como máximo).

Page 23: Busqueda entre adversarios

Funciones de evaluación

Una función de evaluación devuelve una estimación de la utilidad esperada de una posición dada, tal como hacen las funciones heurísticas que devuelven una estimación de la distancia al objetivo. La idea de una estimación no era nueva cuando Shannon la propuso. Durante siglos, los jugadores de ajedrez (y aficionados de otros juegos) han desarrollado modos de juzgar el valor de una posición, debido a que la gente es aún más limitada, en cantidad de la búsqueda, que los programas de computador.

En la práctica, esta clase de análisis requiere demasiadas categorías y demasiada experiencia para estimar todas las probabilidades de ganar. En cambio, la mayoría de las funciones de evaluación calculan las contribuciones numéricas de cada característica y luego las combinan para encontrar el valor total.

Page 24: Busqueda entre adversarios

Corte de la búsqueda

El siguiente paso es modificar la BUSQUEDA-ALFA-BETA de modo que llame a la función heurística EVAL cuando se corte la búsqueda. En términos de implementación, sustituimos las dos líneas de la Figura 6.7, que mencionan al TEST-TERMINAL , con la línea siguiente:

si TEST-CORTE(estado profundidad) entones devolver EVAL(estado).

También debemos llevar la contabilidad de la profundidad de modo que la profundidad actual se incremente sobre cada llamada recursiva. La aproximación más sencilla para controlar la cantidad de búsqueda es poner un límite de profundidad fijo, de modo que TEST-CORTE(estado, profundidad) devuelva verdadero para toda profundidad mayor que alguna profundidad fija d. (También debe devolver verdadero para todos los estados terminales, tal como hizo el TEST-TERMINAL.) La profundidad d se elige de modo que la cantidad de tiempo usado no exceda de lo que permiten las reglas del juego.

Page 25: Busqueda entre adversarios

6.5 Juegos que incluyen un elemento de posibilidad

En la vida real, hay muchos acontecimientos imprevisibles externos que nos ponen en situaciones inesperadas. Muchos juegos reflejan esta imprevisibilidad con la inclusión de un elemento aleatorio, como el lanzamiento de dados.

Backgammon es un juego típico que combina la suerte y la habilidad. Se hacen rodar unos dados, al comienzo del turno de un jugador, para determinar los movimientos legales. En la posición backgammon de la Figura 6.10, por ejemplo, Blanco ha hecho rodar un 6-5, y tiene cuatro movimientos posibles.

Aunque Blanco sabe cuáles son sus propios movimientos legales, no sabe lo que le va a salir a Negro con los dados y por eso no sabe cuales serán sus movimientos legales. Esto significa que Blanco no puede construir un árbol de juegos estándar de la forma que vimos en el ajedrez y tic-tac-toe.

Page 26: Busqueda entre adversarios

Un árbol de juegos en el backgammon debe incluir nodos de posibilidad además de los nodos MAX y MIN. En la Figura 6.1 I se rodean con círculos los nodos de posibilidad. Las ramas que salen desde cada nodo posibilidaddenotan las posibles tiradas, y cada una se etiqueta con la tirada y la posibilidad de que ocurra. Hay 36 resultados al hacer rodar dos dados, cada uno igualmente probable; pero como un 6-5 es lo mismo que un 5-6, hay sólo 21 resultado distintos. Los seis dobles (1-1 a 6-6) tienen una posibilidad de 1/36, los otros 15 resultados distintos un 1/18 cada uno.

Page 27: Busqueda entre adversarios
Page 28: Busqueda entre adversarios
Page 29: Busqueda entre adversarios

El promedio ponderado de los valores que se obtienen de todos los resultados posibles, es decir,

donde la función sucesor para un nodo de posibilidad n simplemente aumenta el estado n con cada resultado posible para producir cada sucesor s, y P(s) es la probabilidad de que ocurra ese resultado. Estas ecuaciones pueden aplicarse recursivamente hasta la raíz del árbol, como en minimax.

Page 30: Busqueda entre adversarios

FIN