15
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA ELECTRICA UNIDAD CULHUACAN INGENIERIA EN COMPUTACIÓN PROGRAMACIÓN LOGICA JUEGOS Grupo: C6M1 10 Octubre de 2003 JUEGOS 5.1 introducción: LOS JUEGOS COMO PROBLEMAS DE BÚSQUEDA Los juegos han ocupado la atención de las facultades intelectuales del ser humano, en ocasiones en grado alarmante. Juegos de tablero, como el ajedrez y el Go, en parte son interesantes debido a que en ellos se libra una lucha pura, abstracta, sin tener que pasar los trabajos y penas que implica organizar dos ejércitos y, con ellos, librar batallas. Esta característica de abstracción es lo que hace atractivos a los juegos para la IA. Es fácil representar el estado del juego, los agentes generalmente están restringidos a una cantidad bastante reducida de acciones bien definidas. De esta forma, los juegos constituyen una idealización de mundos en los que los agentes hostiles actúan de manera que logren disminuir nuestro bienestar. Por otra parte, los juegos son uno de los campos de trabajo más antiguos de la I.A. En 1950, casi, en cuanto fue posible programar las computadoras, Claude Shannon, inventor de la teoría de la información, y Alan Turing elaboraron los primeros programas de ajedrez. Desde entonces, se han realizando continuos avances en el juego, al grado de que los sistemas actuales son capaces de desafían a campeones mundiales humanos sin temor de que puedan hacer el ridículo. Los primeros investigadores eligieron para su trabajo al ajedrez por varias razones. Una computadora capaz de jugar ajedrez seria la prueba viviente de una máquina que podía realizar algo para la que se consideraba era necesario tener inteligencia. Además, la sencillez de las reglas, y el hecho de que el programa pueda acceder totalmente al estado del mundo significa que es fácil representará Juego como una búsqueda a través de un espacio de posibles posiciones de juego. De hecho, la representación en computadora del juego es correcta, en todos sus detalles, a diferencia de la representación del problema de librar una batalla, por ejemplo. Pero lo que singulariza realmente a los juegos es que por lo común es excesivamente difícil resolverlos. El ajedrez, por ejemplo, tiene un factor de ramificación promedio de 35; las partidas frecuentemente llegan a 50 jugadas por cada contrincante, por lo que el árbol de búsqueda tiene 35100 nodos (aunque haya "sólo" aproximadamente 1040 posiciones legales distintas). Tres en línea (ta-te-ti, gato) resulta aburrido para un adulto precisamente porque es muy fácil saber cuál es la jugada adecuada. La complejidad de los juegos trae aparejado un tipo de incertidumbre totalmente nuevo, no visto hasta ahora; la incertidumbre no es consecuencia de la información faltante, sino debido a que no hay tiempo suficiente para calcular las consecuencias exactas de una jugada. Sólo se intenta deducir lo que seria lo mejor con base en experiencias pasadas y proceder, sin estar completamente seguro de cuál seria la mejor acción. En este sentido, los juegos 1

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... Artificial... · el juego, al grado de que los sistemas actuales son capaces de desafían a campeones mundiales humanos sin

Embed Size (px)

Citation preview

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA MECANICA ELECTRICA

UNIDAD CULHUACAN

INGENIERIA EN COMPUTACIÓN

PROGRAMACIÓN LOGICA

JUEGOS

Grupo: C6M1

10 Octubre de 2003

JUEGOS

5.1 introducción: LOS JUEGOS COMO PROBLEMAS DE BÚSQUEDA

Los juegos han ocupado la atención de las facultades intelectuales del ser humano, en ocasiones en gradoalarmante. Juegos de tablero, como el ajedrez y el Go, en parte son interesantes debido a que en ellos se librauna lucha pura, abstracta, sin tener que pasar los trabajos y penas que implica organizar dos ejércitos y, conellos, librar batallas. Esta característica de abstracción es lo que hace atractivos a los juegos para la IA. Esfácil representar el estado del juego, los agentes generalmente están restringidos a una cantidad bastantereducida de acciones bien definidas. De esta forma, los juegos constituyen una idealización de mundos enlos que los agentes hostiles actúan de manera que logren disminuir nuestro bienestar.

Por otra parte, los juegos son uno de los campos de trabajo más antiguos de la I.A. En 1950, casi, en cuantofue posible programar las computadoras, Claude Shannon, inventor de la teoría de la información, y AlanTuring elaboraron los primeros programas de ajedrez. Desde entonces, se han realizando continuos avances enel juego, al grado de que los sistemas actuales son capaces de desafían a campeones mundiales humanos sintemor de que puedan hacer el ridículo.

Los primeros investigadores eligieron para su trabajo al ajedrez por varias razones. Una computadora capaz dejugar ajedrez seria la prueba viviente de una máquina que podía realizar algo para la que se consideraba eranecesario tener inteligencia. Además, la sencillez de las reglas, y el hecho de que el programa pueda accedertotalmente al estado del mundo significa que es fácil representará Juego como una búsqueda a través de unespacio de posibles posiciones de juego. De hecho, la representación en computadora del juego es correcta, entodos sus detalles, a diferencia de la representación del problema de librar una batalla, por ejemplo.

Pero lo que singulariza realmente a los juegos es que por lo común es excesivamente difícil resolverlos. Elajedrez, por ejemplo, tiene un factor de ramificación promedio de 35; las partidas frecuentemente llegan a 50jugadas por cada contrincante, por lo que el árbol de búsqueda tiene 35100 nodos (aunque haya "sólo"aproximadamente 1040 posiciones legales distintas). Tres en línea (ta−te−ti, gato) resulta aburrido para unadulto precisamente porque es muy fácil saber cuál es la jugada adecuada. La complejidad de los juegos traeaparejado un tipo de incertidumbre totalmente nuevo, no visto hasta ahora; la incertidumbre no esconsecuencia de la información faltante, sino debido a que no hay tiempo suficiente para calcular lasconsecuencias exactas de una jugada. Sólo se intenta deducir lo que seria lo mejor con base en experienciaspasadas y proceder, sin estar completamente seguro de cuál seria la mejor acción. En este sentido, los juegos

1

se asemejan más al mundo real que los problemas de búsqueda estándar que hasta ahora se han estudiado.

Dado que por lo general hay un limite de tiempo, los juegos también penalizan con severidad la ineficiencia.En tanto que la implantación de una búsqueda A*, que es 10% menos eficiente, el costo de su terminaciónsólo implicará un valor un poco mayor, en el caso de un programa de ajedrez con 10% menos de efectividaden el uso del tiempo disponible posiblemente resulte derrotado, considerando que los demás factores son losmismos. Por ello, la investigación en los juegos ha generado una gran cantidad de interesantes ideas sobrecómo utilizar de la mejor manera el tiempo para obtener buenas decisiones, cuando la obtención de lasóptimas es imposible.

La poda nos servirá para ignorar partes del árbol de búsqueda que son irrelevantes para la decisión final; lasfunciones de evaluación heurística nos permitirán darnos 'una idea de la verdadera utilidad de un estado sinnecesidad de realizar una búsqueda completa.

DECISIONES PERFECTAS EN JUEGOS DE DOS PARTICIPANTES•

Ahora consideraremos el caso general de un juego con dos participantes,−al que se denominara máx y min.MAX es el que inicia el juego, y los jugadores alternan su participación hasta que concluye el juego. Al finalde éste se dan puntos al vencedor (otras veces se asignan castigos al perdedor) . Una definición formal dejuego seria la de un tipo de problema de búsqueda integrado por lo siguiente:

El estado inicial, que incluye la posición en el tablero y una indicación de a quién toca jugar.• Un conjunto de operadores, quienes definen qué jugadas están permitidas a un jugador.• Una prueba terminal que define el término del juego. Los estados en donde termina el juego sedenominan estados terminales.

Una función de utilidad (también conocida como función de resultado) asigna un valor numérico alresultado obtenido en un juego. En el caso del ajedrez, los resultados posibles son ganar, perder oempatar, lo que se puede representar mediante los valores numéricos +1, −1 o 0.

Si se tratara de un problema de búsqueda normal, lo único que tendría que hacer max es determinar lasecuencia de jugadas que conduzca a un estado terminal ganador (de acuerdo con lo indicado por la funciónde utilidad), y proceder a efectuar la primera jugada de la secuencia. Desafortunadamente, en esto mintambién tiene algo que decir. Por lo tanto, max tiene que encontrar una estrategia que lo conduzca a un estadoterminal ganador, independientemente de lo que haga min; en la estrategia de lo anterior define la jugadacorrecta de max considerando todas las posibles jugadas de min.

Empezaremos por mostrar cómo determinar la estrategia óptima (o racional), aun cuando normalmente nohaya suficiente tiempo para calcularla.

En la figura 5.1 se muestra parle del árbol de búsqueda correspondiente al juego Tres en línea. En el estadoinicial, max puede elegir nueve jugadas posibles. El juego alterna entre las X que pone max y las O que poneMIN, hasta llegar a los nodos hoja correspondientes a los estados terminales: estados en donde un jugadorlogra poner tres marcas en línea, o cuando se llenan todos los cuadros. El numero de cada nodo hoja indica elvalor de utilidad del estado terminal desde el punto de vista de max; los valores altos se consideran buenospara max y malos para min (esta es la razón de la asignación de sus respectivos nombres). Toca a maxutilizar el árbol de búsqueda (en especial, la utilidad de estados terminales) para determinar cuál es la mejorjugada.

CAPASMINIMAX

Incluso juegos tan simples como Tres en línea son demasiado complejos como para permitir mostrar todo el

2

árbol de búsqueda, por lo que ahora veremos el juego totalmente trivial de la figura 5.2. Las jugadas posiblespara max se identifican como A11, A12 y A13. Las posibles respuestas de min a A1 son A11 A12, A13,etcétera. El juego termina luego de que tanto max como min hacen una jugada. (En la jerga de los juegos, sedice que la profundidad del juego es de uno, consta de dos medias jugadas o dos capas.) Las utilidades de losestados terminales de este juego van de 2 a 14.

El algoritmo minimax sirve para determinar la estrategia óptima para max, y decidir así cuál es la mejorjugada. Los algoritmos se componen de cinco pasos:

Generación de todo el árbol de juego, completamente hasta alcanzar los estados terminales.• Aplicación de la función de utilidad a cada estado terminal y obtención de su valor respectivo• Uso de la utilidad de los estados terminales para calcular la utilidad de los nodos del siguiente nivelsuperior en el árbol de búsqueda. Considérense los nodos de hoja que están en el extremo izquierdo,en la figura 5.2. En el nodo V que está arriba, min puede optar por desplazarse, y lo mejor que MINpuede hacer es escoger a11 que le produce el resultado mínimo 3.

3

Es decir, aunquela función de utilidad no se pueda aplicar de inmediato a este nodo " se le puede asignar elvalor de utilidad 3, suponiendo que min hará lo correcto. Por un razonamiento similar, a los otros dos nodos", se les asigna el valor de utilidad 2.

Continuación del respaldo a los valores de los nodos hojas, en dirección a la raíz, una capa a la vez.• Finalmente, los valores respaldados llegan a la parte superior del árbol; en ese sitio. MAX elige lajugada que le permita obtener el valor más alto. En el nodo " del extremo superior de la figura 5.2,MAX puede optar por tres Jugadas que le llevarán a estados cuya utilidad es 3, 2 y 2,respectivamente. Por lo tanto, la mejor opción de max para iniciar el Juego es a11 A esta ultima se leconoce como decisión minimax, porque permite obtener el máximo de utilidad bajo el supuesto queel oponente jugara enteramente para reducirla al mínimo.

La función del nivel superior, decisión−minimax, escoge una de las Jugadas disponibles, las que a su vez seevalúan mediante la función valor−minimax.

Si la profundidad máxima del árbol es m, y b representa las jugadas permitidas en cada punto, la complejidaden tiempo del algoritmo minimax es 0(bm). El algoritmo es una búsqueda preferente por profundidad (si bienen este caso la implantación se realiza por repetición en vez de utilizar una lista de espera de nodos) por lo quela capacidad de memoria necesitada es lineal en m y b. Desde luego que en los juegos reales es absolutamenteimpráctico usar el costo de tiempo, sin embargo este algoritmo es útil como punto de partida en el caso demétodos más realistas y en el análisis matemático de los juegos.

4

5.3DECISIONES IMPERFECTAS

El algoritmo minimax parte del supuesto de que el programa dispone de todo el tiempo necesario paraefectuar una búsqueda hasta que logre llegar a los estados terminales, supuesto que por !o general no espráctico. En el primer articulo de Shannon sobre ajedrez, se proponía que en vez de llegar hasta los estadosterminales utilizando la función de utilidad, el programa debería suspender antes la búsqueda y aplicar a lashojas del árbol una función de evaluación heurística. En otras palabras, se está sugiriendo modificar minimaxde dos maneras: la función de utilidad se reemplaza mediante una función de evaluación eval y la pruebaterminal se reemplaza por la llamada prueba−suspensión..

Funciones De Evaluación

Las funciones de evaluación producen una estimación de la utilidad esperada de un juego correspondiente auna posición determinada. Cuando Shannon la propuso, la idea no era nueva. Durante siglos, ajedrecistas (y,desde luego, aficionados a otros juegos) habían concebido diversos métodos para evaluar las posibilidades deganar de cada participante, basándose en características fácilmente calculables de una posición. Por ejemplo, ,en los libros básicos de ajedrez se asigna un valor material a cada una de las piezas: los peones valen 1, uncaballo o un alfil, 3; una torre, 5; y la reina, 9. Además "una buena estructura de peones" y "la seguridad delrey", cuyo valor es, por decir algo, de medio peón. En igualdad de condiciones, aquel que tenga una seguraventaja material sobre uno o más peones es muy probable que gane el juego, una ventaja de 3 puntos essuficiente para considerar que se está próximo a la victoria segura. En la figura 5.4 se muestran cuatroposiciones y sus respectivas valoraciones.

5

Conviene aclarar que el desempeño de un programa para juegos depende considerablemente de la calidad desu función de evaluación. Si ésta no es exacta, llevará al programa a posiciones que aparentemente son"buenas", pero que en realidad resultan desastrosas.

¿Cómo se mide exactamente la calidad?

Primero, la función de evaluación deberá coincidir con la función de utilidad de los estados terminales.Segundo, ¡su cálculo no debe ser muy tardado, se establece un compromiso entre precisión de la función deevaluación y su respectivo costo en tiempo. Tercero, la función de evaluación deberá reflejar con precisión lasposibilidades reales de poder ganar.

Qué quiere decir "posibilidades de ganar". Para dar un ejemplo concreto, supóngase que la función deevaluación sólo considera el valor material. Asi, en la posición de inicio, la evaluación es O, puesto que enambos lados el material es el mismo. La evaluación de todas las posiciones, hasta la primera captura de unapieza, es 0. Si max logra la toma de un alfil sin perder una sola pieza, la evaluación de la posición resultanteserá de 3. Lo importante es que un determinado valor de la evaluación abarca a varias posiciones diferentes:todas aquellas posiciones en las que max lleva la ventaja de un alfil se agrupan dentro de una categoría a laque se asigna la etiqueta "3".

Resulta ahora claro el porqué de la palabra "posibilidad": la función de evaluación tiene que reflejar laposibilidad de que una posición escogida al azar correspondiente a esa categoría permita ganar (o empatar operder), con base en experiencias previas.

Lo anterior estaría sugiriendo que la especificación de la función de evaluación se realice a través de las reglasde la probabilidad: si la posición A tiene 100% de posibilidades de ganar, su evaluación debe ser de 1.00; si laposición B tiene 50% de posibilidades de ganar, 25% de perder y 25% de empate, su evaluación es: +1 X .50+ −1 X .2 X + O X .25 = .25. En realidad no es necesario ser tan preciso; los valores reales de la función deevaluación no son importantes, lo que importa es que A obtenga un valor mayor que B.

En la función de evaluación de la ventaja material se parte del supuesto de que el valor de una pieza puedecalcularse independientemente de las otras piezas que estén en el tablero. A este tipo de función de evaluaciónse le denomina función lineal ponderada, que se expresa de la siguiente manera:

W1f1 + w2f2 + ... + wnfn.

6

en donde las w son los pesos, las f son las características de una posición determinada. Las w serian losvalores de las piezas (1 para el peón, 3 para el alfil,

etcétera) y las f serían los números de cada una de las piezas que están en el tablero. Resultara ahora más claroel porqué del valor asignado a una pieza en particular: constituyen el valor más aproximado a la posibilidad deganar en las categorías individuales.

Suspensión De Una Búsqueda

La forma más directa de controlar la cantidad de búsqueda consiste en definir un limite de profundidad fijo, demanera que la prueba de suspensión concluya en todos los nodos que estén por encima o justo en laprofundidad d. La profundidad se escoge de manera que la cantidad de tiempo invertida no exceda lopermitido por las reglas del juego. Un procedimiento un poco más sólido seria el de aplicar la profundizacióniterativa, como se le definió en el capitulo 3. En el momento que se agota el tiempo, el programa propone lajugada determinada durante la más profunda de las búsquedas hasta entonces llevadas a cabo. Procedimientoscomo éstos pueden traer aparejadas desastrosas consecuencias debido a la naturaleza aproximada de lafunción de evaluación. Considérese nuevamente la sencilla función de evaluación para el ajedrez que se basaen la ventaja material. Supóngase que. el programa efectúa la búsqueda hasta el limite de profundidad, y llegaa la posición que se muestra en al figura 5.4(d).

De acuerdo con la función material, el blanco lleva ventaja por un caballo y es casi seguro que ganara. Sinembargo, ahora es el tumo de las negras y la reina blanca está perdida puesto que el caballo negro está enposibilidad de tomarla, sin ninguna ganancia para las blancas. Asi pues, en realidad la posición es de triunfopara las negras, lo que sólo se puede ver anticipándose una capa o media jugada más.

La función de evaluación podrá utilizarse sólo en el caso de posiciones que están en reposo, es decir, aquellascuyos valores es poco probable que sufran grandes fluctuaciones en. un futuro cercano. Por ejemplo, en elajedrez no se consideran en reposo aquellas posiciones en que se pueden efectuar capturas de piezas a favor enfunciones de evaluación en las que sólo se considera la ventaja material.

Se pueden expandir posiciones que no están en reposo hasta obtener posiciones en reposo. A esta búsquedaadicional se le denomina búsqueda de reposo; a veces se le restringe a tomar en cuenta sólo cierto tipo dejugadas, como las de captura de pieza, lo que despeja de inmediato las incertidumbres de una posición.

Es más difícil eliminar el problema de horizonte. Surge cuando el programa enfrenta una jugada delcontrincante que causa un grave daño y que finalmente es inevitable. Considérese el juego de ajedrez de lafigura 5.5.

Juegan las negras

7

Figura 5.5 El problema del horizonte. La serie de jaques de la torre negra fuerzan la inevitable Jugada decoronación de las blancas "encima del horizonte" y parecería que esta posición es ligeramente más ventajosapara las negras, cuando en realidad es seguro el triunfo de las blancas.

Las negras tienen una ligera ventaja material, pero si las blancas logran avanzar su peón de la fila séptima a laoctava, se convertirá en reina y será muy fácil que las blancas ganen. Las negras podrían anticipar lo anterior através de una docena de capas, verificando la situación de las blancas en relación con la torre, pero lo que seráinevitable es que el peón se convierta en reina.

5.4 poda ALFA−BETA

Supongamos que se ha logrado implantar una búsqueda minimax que cuenta con una función de evaluaciónrazonable para el ajedrez y una razonable prueba de suspensión con una búsqueda de reposo Contando con unprograma bien elaborado, y una computadora normal, probablemente se podrán buscar 1000 posiciones porsegundo. ¿Qué tan bien jugará el programa? En los torneos de ajedrez, se dispone de unos 150 segundos paracada jugada, por lo que hay tiempo para explorar 150,000 posiciones.

En el caso del ajedrez, el factor de ramificación es de aproximadamente 35, es decir, el programa sólo podráexplorar tres o cuatro capas y su juego tendrá el nivel de ¡novato! Incluso los jugadores humanos promediopueden anticipar sus jugadas seis u ocho capas: nuestro programa perdería sin mayor dificultad.

Afortunadamente es posible calcular la decisión minimax correcta sin tener que explorar todo los nodos delárbol de búsqueda. Al proceso para evitar la exploración de una de las ramas del árbol de búsqueda se leconoce como poda del árbol de búsqueda. A la técnica que consideraremos en particular se le conoce comopoda alfa−beta. Aplicada a un árbol minimax estándar, produce la mismo jugada que se obtendría conminimax, pero elimina todas las ramas que posiblemente no influirán en la decisión final.

8

Considérese el árbol de juego de dos capas de la figura 5.6.

La búsqueda procede como en el caso anterior: A1, luego A11, A12, A12; el nodo que esta bajo a1 tiene valorminimax de 3. Ahora continuamos con A2 y A21, cuyo valor es de 2. Podemos darnos cuenta ahora de que sima−x juega A;, min tiene la opción de llegar a la posición que vale 2, así como otras opciones cercanas. Así,ya es posible concluir que la jugada A2 para max es como máximo 2 Como ya sabemos que la jugada A1 vale3, no tiene caso seguir buscando más debajo de A2. Es decir, en este sitio se poda el árbol de búsqueda, ypodemos estar seguros de que dicha poda no repercutirá en el resultado.

El principio general es el siguiente: considérese un nodo n del árbol (véase la figura 5.7). tal que exista laposibilidad de que el jugador pueda ir a ese nodo. Si el jugador tuviera una mejor opción m, ya sea en el nodopadre de n, o en cualquier punto de elección posterior, en m juego real nunca se alcanzará n. Es decir, unavez que se cuenta con suficiente información sobre n (mediante la exploración de algunos de susdescendientes) que permita llegar a esta conclusión, se procede a podar. Sea a el valor de la mejor opciónencontrada hasta entonces en un punto de elección a través de la ruta de max y sea � el valor de la mejor(valor más bajo) opción encontrada hasta entonces en un punto de opción a lo largo de la ruta de min.Conforme se efectúa la búsqueda alfa−beta se van actualizando los valores de � y � y se poda un subárbol (esdecir, concluye la solicitud de repetición) en cuanto se determina que es peor que el valor actual de � y � .

La descripción del algoritmo de la figura 5.8 se divide en las funciones valor−ma−x y valor−min. Lasfunciones anteriores se aplican a los nodos max y min, respectivamente, aunque el efecto de ambas es elmismo: devolver el valor minimax del nodo, excepto en el caso de nodos que hay que podar (en cuyo caso detodas formas se ignora el valor producido). La función de búsqueda alfa−beta es en sí una copia de la funciónvalor−max, con un código adicional para recordar y responder con la mejor jugada que se haya encontrado.

9

Eficiencia De La Poda Alfa−Beta

La eficiencia de alfa−beta dependerá del orden como se exploren los sucesores. Esto es muy claro en el casode la figura 5.6, en la que no es posible podar a3 puesto que se generaron primero Á31 y A32 (las peoresjugadas desde el punto de vista de min). Lo anterior parece indicar que es mejor primero explorar aquellossucesores que aparentemente tienen más posibilidades de ser los mejores.

Knuth y Moore (1975) fueron los primeros en analizar a fondo la eficiencia de la poda alfa−beta. Así como elmejor de los casos explicado en el párrafo anterior, analizaron también el caso en que los sucesores se ordenanaleatoriamente. La complejidad asintótica es 0((b/\og b)d ), al parecer desconsoladora puesto que el factor deramificación efectivo b/logb no es significativamente menor que b mismo. Por otra parte, la fórmula asintóticaes exacta sólo cuando b > 1 000, aproximadamente; es decir, no todos los juegos pueden desarrollarserazonablemente bien al utilizar estas técnicas. En el caso de una b razonable, la cantidad total de nodosexplorados será aproximadamente de 0(b3d/4). En la práctica, mediante una función de ordenamiento muysencilla (como sería el probar primero la captura, luego la amenaza, luego las jugadas de avance y las deretroceso) es posible aproximarse bastante al re−sultado del mejor caso, en vez del resultado aleatorio.

5.5 juegos EN LOS QUE INTERVIENE UN ELEMENTO ALEATORIO

En la vida real, contrariamente a lo que sucede en el ajedrez, diversos elementos extremos impredecibles nosllevan a situaciones imprevistas. Algunos juegos reflejan esta impredecibilidad al incluir un elementoaleatorio como es el lanzamiento de dados. Por ello, nos aproximan un poco más a las condicionesprevalecientes en la realidad, por lo que valdría la pena examinar de qué manera tales elementos afectan unproceso de toma de decisiones.

El backgammón es el prototipo del juego que a una suerte y destreza. Los dados se lanzan al inicio del tumode uno de los jugadores y se define así una combinación de jugadas permitidas a este juego.

10

Un árbol de juego en el backgammon deberá incluir nodos aleatorios, además de los nodos max y min. En lafigura 5.10 se indica a los nodos aleatorios mediante círculos. Cada una de las ramas que sale de un nodoaleatorio denota el posible resultado del lanzamiento de un dado, a cada uno de ellos lo acompaña dichoresultado y la posibilidad de que ocurra.

Las posibles posiciones ya no tienen un valor minimax definido (que en el caso de los juegos deterministas erala utilidad de la hoja a la que se llegaba por la mejor jugada). Lo único que se puede calcular es un promedioo valor esperado, calculado como un promedio de los posibles resultados del lanzamiento de los dados.

El cálculo de los valores esperados de los nodos es directo. Para los nodos terminales se utiliza la función deutilidad, como en el caso de los juegos deterministas Avanzando un paso en el árbol de búsqueda se llega a unnodo aleatorio. En la figura 5.10 los nodos aleatorios son circuios; fijémonos en el que está identificado comoC. Sea d¡ el pasible resultado del lanzamiento de un dado y P (di) la posibilidad o probabilidad de que seobtenga tal resultado. Se calcula la utilidad de la mejor jugada para min correspondiente a cada lanzamientode dados y se añaden las utilidades, ponderadas con la probabilidad de obtención de un determinadolanzamiento de dados. Si S (C, d,) denota el conjunto de posiciones generadas por la aplicación de jugadaspermitidas al lanzamiento de dados P (d,) a la posición de C, se podrá calcular el denominado valor esperadomax de C, mediante la fórmula:

esperadomax(C) = " P(d¡) max ;€ s(C,di)(utilidad(s))

11

Ascendiendo un nivel más a los nodos min V en la figura 5.10), ahora es posible aplicarla fórmula del valorminimax normal, en virtud de haber asignado valores de utilidad a todos los nodos aleatorios.

Evaluación De La Posición En Juegos Que Tienen Nodos Aleatorios

Al igual que en el caso de minimax, la aproximación que obviamente habrá que efectuar en el caso delminimax esperado consiste en suspender la búsqueda en algún momento y proceder a aplicar una función deevaluación a las hojas. Podría pensarse que las funciones de evaluación para juegos tales como elbackgammon no son distintas, en principio, de las funciones de evaluación del ajedrez: deberían otorgarcalificaciones mayores a las mejores posiciones.

El hecho de que haya nodos aleatorios implica la necesidad de tener más cuidado en la interpretación de losvalores de evaluación, una transformación conservadora del orden de los valores de hoja no afecta a laelección de la jugada.

Esto nos permite contar con mucha libertad en el diseño de la función de evaluación: funcionaria en tanto quelas posiciones con evaluaciones superiores conduzcan con más frecuencia al triunfo.

En el caso de "los nodos aleatorios se pierde esta libertad. En la figura 5.11 se muestra lo que sucede: si losvalores de hoja son 1, 2, 3, 4, la mejor de las jugadas es Ai; si los valores son 1, 20, 30 400, la mejor es A2. Esdecir, el programa se comporta de manera enteramente distinta cuando se efectúa un cambio en la escala devalores de evaluación, con el fin de eliminar la sensibilidad anterior, la función de evaluación sólo deberá seruna transformación lineal positiva de la posibilidad de ganar en una posición determinada.

Complejidad Del Valor Minimax Esperado

Dado que el minimax esperado también toma en consideración todas las posibles secuencias del lanzamientode dados, se demorará O(bm nm), en donde n es la cantidad de lanzamientos distintos.

La ventaja de alfa−beta es que hace caso omiso de acontecimientos futuros que sencillamente no se van aproducir.

Lo que alfa−beta tiene que hacer antes de podar un nodo en el subárbol correspondiente. Aparentementeparece imposible, debido a que el valor de C es el promedio de los valores de sus hijos, y hasta que no sehayan visto todos los lanzamientos de dados, este promedio podría ser nada, debido a que el valor de los hijosno explorados podría ser cualquiera, si se ponen límites a los posibles valores de la función de utilidad, seriaposible determinar límites para el promedio.

5.6 LO ÚLTIMO EN PROGRAMAS DE JUEGOS

Ajedrez

El ajedrez es el juego que ha recibido con creces buena parte del interés por los juegos. Si bien no han logradocumplir lo anunciado por Shanon en 1957 en el sentido de que 10 años después las computadoras seríancapaces de derrotar a quien fuese el campeón humano de ajedrez, si se encuentran muy cerca de lograrlo. Enel ajedrez de velocidad, las computadoras derrotaron al campeón mundial, Gary Kasparov, tanto en los juegoscon duración de cinco minutos como en los de 25 minutos; hasta el momento de escribir estas líneas, en lostorneos de juegos de duración completa, las computadoras sólo han logrado ocupar un lugar entre los cien

12

mejores jugadores del mundo. En la figura 5.12 se muestra el puntaje obtenido a través del tiempo porhumanos y computadoras campeones.

Algunos programas de principios de los años 70 eran demasiado complicados, contaban con diversos trucospara eliminar algunas ramas de búsqueda, para generar jugadas posibles, etc.; pero en los programas queganaron los Campeonatos de Ajedrez por Computadora de Estados Unidos de la ACM (iniciados en 1970) sefavorecía el uso de la búsqueda alfa−beta directa, complementada por la consulta en libros de aperturas einfalibles algoritmos de fin de juego.

El primer avance notable en eficiencia se debió no a mejores algoritmos o funciones de evaluación, sino alhardware. Belle, la primera computadora especialmente diseñada para jugar ajedrez (Condón y Thompson,1982) utilizó circuitos integrados para implantar la generación de jugadas y la evaluación de posiciones, loque permitía la exploración de varios millones de posiciones antes de hacer una sola jugada.

El sistema hitech, también una computadora especialmente para esta aplicación, su objetivo era el rápidocálculo de complejas funciones de evaluación.

Capaz de generar aproximadamente diez millones de posiciones por jugada y utilizando probablemente la másprecisa evaluación de posiciones diseñada hasta ese entonces.

El mejor sistema actualmente es Deep Thought 2, donde se utiliza una sencilla función de evaluación, exploracasi 5,000 millones de posiciones por jugada, con lo que logra alcanzar profundidades de 10 u 11 y cuenta conuna función que le permite seguir la línea de jugadas forzadas aun más lejos (en una ocasión encontró unjaque mate de 37 jugadas). Donde compitió contra el equipo olímpico danés y le ganó 3−1, derrotó a uno delos grandes maestros y con el otro empató.

En la siguiente versión del sistema, Deep Blue, se utiliza un arreglo en paralelo de 1,024 chips, lo cual lepermite explorar el equivalente de 10,000 posiciones por segundo (de 1 a 2 billones por cada jugada) yalcanzar profundidades de 14.

Juegos De Fichas O Damas

Arthur Samuel de la IBM, durante sus ratos libres desarrolló un programa para jugar a las damas capaz deobtener por si mismo su función de evaluación mediante lo aprendido a través de miles de juegos ejecutadospor el programa mismo.

El programa de Samuel empezó con nivel de novato, pero luego de algunos días de jugar consigo mismo,logró competir al mismo nivel en duros torneos con contendientes humanos. Si se toma en cuenta que elequipo de cómputo con el que trabajaba Samuel (una IBN' 704) contaba con 10 000 palabras de memoriaprincipal, cinta magnética para almacenamiento de largo plazo y un ciclo de tiempo de casi un milisegundo, sepodrá apreciar por qué se le considera como uno de los grandes logros de la IA.

Othello

Othello, también conocido como Reversi, posiblemente sea un juego más popular en su versión decomputadora que en la de tablero. Su espacio de búsqueda es más reducido que el del ajedrez, por lo generalsólo tiene de 5 a 15 jugadas aceptadas, sin embargo la experiencia para la evaluación tiene que obtenerse a

13

partir de cero. Con todo, los programas de Othello en las computadoras normales son mucho mejores que loshumanos, quienes por lo general se rehúsan a librar contiendas directas en los torneos.

Backgammon

El elemento de incertidumbre que introduce el lanzamiento de dados en el juego del backgammon hace de labúsqueda un lujo muy costoso. El primer programa que tuvo repercusión, BK.G, utilizaba sólo búsqueda deuna capa, aunque la función de evaluación era bastante compleja.

Más recientemente, Gerry Tesauro combinó el método de aprendizaje de Samuel con las técnicas de las redesneurales para crear una nueva función de evaluación. Su programa está considerado sin lugar a dudas entre lostres mejores jugadores del mundo.

Go

Go es el juego de mesa más popular en Japón, y sus profesionales necesitan de tanta disciplina como en elcaso del ajedrez. El factor de ramificación se aproxima a 360, por lo que los métodos normales de búsquedano sirven de nada. Los que ofrecen ciertas posibilidades son los sistemas basados en completas bases deconocimiento de reglas que propongan aquellas jugadas que pudieran ofrecer alguna posibilidad, aunque lacalidad de los juegos así realizados todavía es bastante mala. En especial considerando el premio de dosmillones de dólares al programa que logre derrotar a uno de los mejores jugadores, Go es un área conposibilidades de obtener los beneficios de profundas investigaciones utilizando métodos de razonamiento máscomplejos.

5.7 COMENTARIO

Puesto que en la mayoría de los casos es. Muy difícil trabajar el cálculo de decisiones óptimas en los juegos,todos los algoritmos tienen que hacer ciertas idealizaciones y aproximaciones. El método estándar, basado enminimax, las funciones de evaluación y alfa−beta, sólo una forma de hacerlo. Posiblemente debido a quefueron de las primeras propuestas, su diseño recibió tanta atención y es el predominante entre otros métodosen los juegos de torneo Algunos en este campo consideran que lo anterior ha provocado que el juego se hayadivorciado de las principales áreas de la investigación en IA: el método estándar ya no tiene mucho queofrecer en cuanto a nuevos métodos para responder a la interrogantes generales de la toma de decisiones.

Considérese primero a minimax. Es un método óptimo para escoger una jugada de un determinado árbol debúsqueda, siempre y cuando las evaluaciones del nodo hoja sean correctas con exactitud. En realidad, lasevaluaciones por lo general son estimaciones burdas del valor de una posición. Para elegir, minimax se basaen el hecho de que todos los nodos identificados−con valores 100, 101, 102 y 100 son en realidad mejoresque el nodo identificado con el valor 99. Una manera de resolver el problema anterior es por medio de unaevaluación que produzca una distribución de probabilidad correspondiente a todos los valores posibles. Deesta manera se puede calcular la distribución de probabilidad del valor del padre utilizando técnicasestadísticas estándar. Desafortunadamente, los valores de los nodos hermanos por lo general guardan estrechacorrelación entre si. Por la que el cálculo respectivo puede resultar bastante caro y necesitaría de unadetallada información sobre la correlación, información que es difícil obtener.

14

Este tipo de razonamiento acerca de lo que se obtiene mediante un cálculo se denomina metarrazonamiento(razonar acerca del razonamiento). Tiene que ver no sólo con los juegos, sino con todo tipo de razonamientoen general. Todos los cálculos se realizan con el fin de encontrar mejores decisiones, todas implican costos ytodas tienen cierta posibilidad de producir alguna mejora en la calidad de las decisiones efectuadas. Enalfa−beta se cuenta con la más sencilla de las clases de metarrazonamiento: un teorema que permite ignorarciertas ramas de un árbol sin causar una pérdida. Es posible hacer todavía cosas mejores. parten del estadoinicial y luego aplican una función de evaluación. Desde luego que ésta no es la manera como juegan loshumanos. En el ajedrez, se tiene presente una meta determinada (por ejemplo, capturar la reina delcontrincante), objetivo que se utiliza para generar de manera selectiva planes factibles para su logro. Este tipode razonamiento o planificación enfocado a una meta permite en ocasiones eliminar la búsqueda decombinaciones (véase la parte IV). El programa paradise de David Wiikins (1980) es el único programa deajedrez que tuvo éxito en el empleo del razonamiento enfocado a una meta. Fue capaz de resolver problemasde ajedrez en los que intervenían combinaciones de 18 jugadas

2

15