Ingeniería en Sistemas Computacionales Inteligencia Artificial Ing

Anuncio
Instituto Tecnológico de Nuevo Laredo
Ingeniería en Sistemas Computacionales
Inteligencia Artificial
Ing. Bruno López Takeyas
Unidad III
Algoritmo Alfa - Beta
Sergio Alfredo Santos Ramírez
Gerson Antonio García Carrasco
Renato García Jiménez
Isidro Gómez Rodríguez
Gilberto Antonio Anwar Peña Nuño
01100304
01100208
01100209
01100219
01100275
Nuevo Laredo Tamaulipas a 20 de Octubre del 2005
Historia de Juegos
Los juegos provocan una inexplicable fascinación y, la idea de que las
computadoras puedan jugar existe desde que existen las computadoras:
• Siglo XIX, Babbage, arquitecto de computadoras, pensó en programar
su máquina analítica para que jugara al ajedrez.
• '50, Shannon describió los mecanismos que podían usarse en un
programa jugara al ajedrez
• '50, Turing describió un programa para jugar al ajedrez pero no lo
construyó
• '60, Samuel construyó el primer programa de juegos importante y
operativo, el cual jugaba a las damas y podía aprender de sus errores
para mejorar su comportamiento
Los juegos proporcionan una tarea estructurada en la que es muy fácil medir
el éxito o el fracaso. En comparación con otras aplicaciones de inteligencia
artificial, por ejemplo comprensión del lenguaje, los juegos no necesitan
grandes cantidades de conocimiento.
En un primer momento se pensó que se podrían resolver por búsqueda
exhaustiva en el árbol del juego, es decir, un árbol que contenga todos los
movimientos posibles de ambos jugadores. Considerando por ejemplo el
juego de ajedrez, en una partida cada jugador realiza una media de 50
movimientos, con un factor de ramificación medio de 35 posibilidades, por
lo tanto para examinar el árbol de juego completamente se tendrían que
examinar 35100 posibilidades. Resulta evidente que una simple búsqueda
directa no es posible de realizar en la práctica, y por lo tanto es necesario
algún tipo de procedimiento de búsqueda heurística.
Todos los procedimientos de búsqueda pueden verse como procedimientos
de generación y prueba, en donde la comprobación se realiza después de
distintas cantidades de trabajo del generador. En un extremo el generador
proporciona una solución completa a evaluar por el comprobador; en el otro
extremo, el generador genera movimientos individuales cada uno de los
cuales se evalúa por el comprobador.
Algoritmo Alpha Beta
La poda Alpha Beta es una técnica para reducir el número de nodos
evaluados por el algoritmo minimax para juegos de 2 contrincantes. Poda
partes del árbol de búsqueda que son tan buenas para un jugador que el
oponente nunca permitirá que lo alcance.
Donald Knuth y Ronald Moore (1975) fueron los primeros en analizar a
fondo la eficiencia de la poda alfa-beta, en su libro “An analysis of alphabeta pruning”. Es posible calcular en un determinado juego una decisión
correcta sin tener que explorar todos los nodos de un árbol de búsqueda. A la
técnica que consideramos en particular se le conoce como poda alfa-beta.
Aplicada a un árbol minimax estándar, produce la misma jugada que se
obtendría con minimax, pero elimina todas las ramas que posiblemente no
influirán en la decisión final. La eficiencia de alfa-beta dependerá del orden
como se exploren los sucesores dentro de un árbol, es mejor primero
explorar aquellos sucesores que aparentemente tienen más posibilidades de
ser los mejores.
Para mejorar el rendimiento desde el punto de vista del tiempo invertido en
realizar una jugada se introduce el concepto de poda de aquellas ramas que
con seguridad nos conducirán a un fracaso conocido sin recorrerlas.
El principio general en el que se basa la poda es el siguiente: considérese un
nodo n del árbol, tal que exista la posibilidad de que el jugador pueda ir a ese
nodo. Si el jugador tuviera una mejor opción m ya sea en el nodo padre de n,
o en cualquier punto de elección posterior, en un juego real nunca se
alcanzará n. Es decir, una vez que se cuenta con suficiente información
sobre n (mediante la exploración de algunos de sus descendientes) que
permita llegar a esta conclusión se procede a podar.
Características Poda Alfa-Beta
• Mejora del Algoritmo Minimax; aplicado en juegos de adversarios por
turnos
• Se aplica en espacios de estados demasiado grandes como para analizar
todos los nodos
• La información es imperfecta; es decir, no se conoce el estado del
contrincante. P. ejem. En juegos donde no se ve el tablero del adversario
Produce la misma jugada que se obtendría con MiniMax, pero elimina todas
las ramas que posiblemente no influirán en la decisión final.
Alfa: valor de la mejor opción encontrada hasta entonces en un punto de
elección a través de la ruta de MAX;
Beta: 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 MIN.
Conforme se efectúa la búsqueda Alfa-Beta se van actualizando los valores
de alfa y beta y se poda
Omitir la expansión de nodos que por sus valores no pueden ser los mejores
(peores).
Interrumpe la búsqueda en algún nivel y aplica evaluaciones heurísticas a las
hojas (profundidad limitada)
Alfa-Beta permite búsqueda dos veces más profunda.
Ordenamiento de los operadores, resultante del conocimiento o experiencia.
Únicamente importa el orden y no los valores exactos.
La poda no afecta al resultado final.
Poda Alfa-Beta
Para mejorar el rendimiento desde el punto de vista del tiempo invertido en
realizar una jugada se introduce el concepto de poda de aquellas ramas que
con seguridad nos conducirán a un fracaso conocido sin recorrerlas.
El principio general en el que se basa la poda es el siguiente: considérese un
nodo n del árbol, tal que exista la posibilidad de que el jugador pueda ir a ese
nodo. Si el jugador tuviera una mejor opción m ya sea en el nodo padre de n,
o en cualquier punto de elección posterior, en un juego real nunca se
alcanzará n. Es decir, una vez que se cuenta con suficiente información
sobre n (mediante la exploración de algunos de sus descendientes) que
permita llegar a esta conclusión se procede a podar.
En el ejemplo anterior tendríamos el siguiente árbol modificado:
Árbol podado
Si examinamos el árbol en la capa MIN central se ha seleccionado el valor 3
para el primer nodo (izquierda) que es el menor que se puede conseguir en
esa rama, a continuación se mira el segundo nodo de la capa central y se
desciende por su hijo de más a la izquierda que le proporciona un valor de 2,
cómo ese valor proporcionado es menor que el valor proporcionado por el
primer nodo examinado de la capa MIN central (3), sabemos que nunca será
escogido por el padre de ese grupo de nodos de la capa intermedia, si el resto
de hijos del nodo de la capa central proporcionan números más altos que 2
nunca serán seleccionados a ese nivel y si proporcionan un número menor
que 2 el padre de dicho nodo de la capa central tampoco lo seleccionará por
que su hermano de la capa central situado a su izquierda proporciona un 3,
por tanto los hijos que quedan por visitar del nodo central de la capa central
pueden ser podados.
En general, la modificación sobre MINIMAX consiste en realizar una
comparación previa a la evaluación de un nodo en una capa determinada en
función de los resultados obtenidos para los nodos hermanos ya evaluados
en dicha capa. Si la capa es MIN entonces no debo seguir evaluando si lo
que me sale en un nodo es menor que lo que ya tenía de los anteriores. Si la
capa es MAX entonces no debo seguir evaluando si lo que me sale en un
nodo es mayor que lo que ya tenía de los anteriores.
La poda Alfa-Beta se basa en la idea de disponer de dos valores que
conforman una ventana a la cual deben pertenecer los valores de fev(n) para
que sean considerados. En los nodos n MAX, según el algoritmo minimax,
se debe maximizar el valor de los nodos sucesores. En estos nodos, se utiliza
el parámetro α (n) que determina el máximo de los valores de los nodos
sucesores encontrado hasta el momento. Así mismo, como los nodos n MIN
tratan de minimizar el valor de los nodos, utilizan el parámetro β (n) que va
a ser, en cada momento, el mínimo de los valores encontrados de los nodos
sucesores de ese nodo.
Existen dos formas de podar, dependiendo del nodo en el que se está
estudiando. En los nodos MAX, la condición de poda es: α p >= β p-1 es decir,
si el α de un nodo MAX de profundidad p es mayor o igual que el β del nodo
MIN padre (profundidad p-1) se pueden podar los sucesores del nodo MAX
no estudiados todavía. Esto es debido a que, como valor inferior, el nodo
MAX va a devolver ese valor de α (α p). Ya que el nodo superior trata de
minimizar, va a calcular:
con lo que siempre va a elegir el β p-1. Por lo tanto, los nodos no estudiados
todavía en el nodo MAX no es necesario estudiarlos, porque no cambian el
valor β del nodo padre.
Simétricamente, la condición de poda en los nodos MIN es: β p <= α p-1. La
explicación es análoga al caso anterior.
Procedimiento Alfa-Beta (Situación Alfa-Beta Profundidad)
Si situación está considerada como empate, devolver 0
Si Situación es ganadora, devolver mayor-número
Si Situación es perdedora, devolver menor-número
Si profundidad = profundidad-máxima, devolver evaluación
(Situación)
Si nivel-max-p
Para todo ai sucesor de situación y Alfa < Beta
Alfa-Beta=Alfa-Beta (a i, Alfa, Beta, profundidad + 1)
Alfa = max(Alfa, Alfa-Beta)
Devolver Alfa
Si no
Para todo a i sucesor de situación y Beta > Alfa
Alfa-Beta=Alfa-Beta (a i, Alfa, Beta, profundidad + 1)
Beta = min(Beta, Alfa-Beta)
Devolver Beta
Ejemplo:
Con el árbol de la figura, va a realizarse una búsqueda minimax con la poda
alfa-beta. En este árbol los nodos círculo son nodos del nivel MAX, y, por
tanto, se les denomina nodos MAX, y los nodos cuadrado pertenecen a
niveles MIN, y por tanto, se les denomina nodos MIN. Dentro de cada nodo
aparecen su identificador y debajo de los nodos hoja aparece el valor que
devolvería la función de evaluación si se evaluara dicho nodo.
El algoritmo se inicia con el nodo inicial y los valores para α y β siguientes,
teniendo en cuenta que no se puede representar el ∞ en las computadoras:
α = menor número posible (m); β = mayor número posible (M)
Los valores de m y M dependen del lenguaje de programación, y de la
computadora utilizada, normalmente. Como se puede observar en la
siguiente figura, se produce una poda en el nodo 6 ya que el α en ese nodo
(6) es mayor que el valor de β (5) en el nodo padre. Después puede
observarse cómo se produce una poda para el nodo 3 debido a que el valor
de β (4) es igual al de α (4) del nivel superior, con lo que, por mucho que se
estudien los hijos del nodo 3 no se va a cambiar el valor del nodo 1. Por
último vuelve a producirse una poda debido a que, en el nodo 11 el valor de
α (10) es mayor que el valor de β (8) en el nodo padre.
La técnica Alfa-Beta es completamente general, pudiendo utilizarse tanto
para árboles de cualquier profundidad finita, como para árboles de
profundidad irregular. Las interrupciones que se producen en los nodos
conjuntivos se llaman "alfa-interrupciones", diciéndose también que existe
un "alfa-atajo" en tanto que las interrupciones que se producen en los nodos
disyuntivos se llaman "betas-interrupciones", o también se dice que existe un
"beta-atajo".
EJEMPLO DE PODA ALFA-BETA
El algoritmo efectúa una búsqueda en profundidad. Si durante la misma se
produce que es mejor que n para un jugador, entonces nunca se llegará a n
en el juego
Ejemplo: tres en raya (idea intuitiva de la poda alfa-beta)
Algoritmo Alfa Beta
(N,ALFA,BETA)
K=PROFUNDIDAD
ALFA_BETA
ALFA=-INF
BETA+INF
N ES UN
NODO SOLUCION?
V
DEVUELVE VALOR
DE LA SOLUCION
SI EXISTE UNA MAYOR O
MENOR….. REEMPLAZA
ALFA_BETA(J,ALFA,BETA)
ALFA=MAX (N(J))
ES J UN
NODO MAX?
ALFA MENOR
QUE BETA
ALFA
F
ES J UN
NODO MIN?
BETA MENOR
QUE ALFA
ALFA_BETA(J,ALFA,BETA)
BETA=MIN (N(J))
BETA
Ejemplo de recorrido Alfa Beta
Juegos
Los juegos proporcionan una tarea estructurada en la que es muy fácil medir
el éxito o el fracaso. En comparación con otras aplicaciones de inteligencia
artificial, por ejemplo comprensión del lenguaje, los juegos no necesitan
grandes cantidades de conocimiento. En un primer momento se pensó que se
podrían resolver por búsqueda exhaustiva en el árbol del juego, es decir, un
árbol que contenga todos los movimientos posibles de ambos jugadores.
Considerando por ejemplo el juego de ajedrez, en una partida cada jugador
realiza una media de 50 movimientos, con un factor de ramificación medio
de 35 posibilidades, por lo tanto para examinar el árbol de juego
completamente se tendrían que examinar 35100 posibilidades. Resulta
evidente que una simple búsqueda directa no es posible de realizar en la
práctica, y por lo tanto es necesario algún tipo de procedimiento de búsqueda
heurística.
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.
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ón sólo
implicará un valor un poco mayor, en el caso de un programa de ajedrez con
10% menos de efectividad en el uso del tiempo disponible posiblemente
resulte derrotado, considerando que los demás factores son los mismos. Por
ello, la investigación en los juegos ha generado una gran cantidad de
interesantes ideas sobre có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; las funciones de evaluación heurística nos
permitirán darnos 'una idea de la verdadera utilidad de un estado sin
necesidad de realizar una búsqueda completa.
Poda ALFA-BETA
Supongamos que se ha logrado implantar una búsqueda minimax que cuenta
con una función de evaluación razonable para el ajedrez y una razonable
prueba de suspensión con una búsqueda de reposo Contando con un
programa bien elaborado, y una computadora normal, probablemente se
podrán buscar 1000 posiciones por segundo. ¿Qué tan bien jugará el
programa? En los torneos de ajedrez, se dispone de unos 150 segundos para
cada 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 promedio pueden
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 le conoce como
poda del árbol de búsqueda. A la técnica que consideraremos en particular se
le conoce como poda alfa-beta. Aplicada a un árbol minimax estándar,
produce la mismo jugada que se obtendría con minimax, pero elimina todas
las ramas que posiblemente no influirán en la decisión final.
Eficiencia De La Poda Alfa-Beta
La eficiencia de alfa-beta dependerá del orden como se exploren los
sucesores. Lo anterior parece indicar que es mejor primero explorar aquellos
sucesores 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 el mejor de los casos explicado en el párrafo
anterior, analizaron también el caso en que los sucesores se ordenan
aleatoriamente. La complejidad asintótica es 0((b/\og b)d ), al parecer
desconsoladora puesto que el factor de ramificación efectivo b/logb no es
significativamente menor que b mismo. Por otra parte, la fórmula asintótica
es exacta sólo cuando b > 1 000, aproximadamente; es decir, no todos los
juegos pueden desarrollarse razonablemente bien al utilizar estas técnicas.
En el caso de una b razonable, la cantidad total de nodos explorados será
aproximadamente de 0(b3d/4). En la práctica, mediante una función de
ordenamiento muy sencilla (como sería el probar primero la captura, luego
la amenaza, luego las jugadas de avance y las de retroceso) 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 nos llevan a situaciones imprevistas.
Algunos juegos reflejan esta impredecibilidad al incluir un elemento
aleatorio como es el lanzamiento de dados. Por ello, nos aproximan un poco
más a las condiciones prevalecientes en la realidad, por lo que valdría la
pena examinar de qué manera tales elementos afectan un proceso de toma de
decisiones.
El backgammón es el prototipo del juego que une suerte y destreza. Los
dados se lanzan al inicio del turno de uno de los jugadores y se define así
una combinación de jugadas permitidas a este juego.
Un árbol de juego en el backgammon deberá incluir nodos aleatorios,
además de los nodos max y min. En la figura 5.10 se indica a los nodos
aleatorios mediante círculos. Cada una de las ramas que sale de un nodo
aleatorio denota el posible resultado del lanzamiento de un dado, a cada uno
de ellos lo acompaña dicho resultado y la posibilidad de que ocurra.
Las posibles posiciones ya no tienen un valor minimax definido (que en el
caso de los juegos deterministas era la utilidad de la hoja a la que se llegaba
por la mejor jugada). Lo único que se puede calcular es un promedio o 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 de utilidad, como en el caso de los juegos
deterministas Avanzando un paso en el árbol de búsqueda se llega a un nodo
aleatorio. En la figura 5.10 los nodos aleatorios son circuios; fijémonos en el
que está identificado como C. Sea d¡ el pasible resultado del lanzamiento de
un dado y P (di) la posibilidad o probabilidad de que se obtenga tal
resultado. Se calcula la utilidad de la mejor jugada para min correspondiente
a cada lanzamiento de dados y se añaden las utilidades, ponderadas con la
probabilidad de obtención de un determinado lanzamiento de dados. Si S (C,
d,) denota el conjunto de posiciones generadas por la aplicación de jugadas
permitidas al lanzamiento de dados P (d,) a la posición de C, se podrá
calcular el denominado valor esperado max de C, mediante la fórmula:
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 logrado cumplir lo anunciado por Shanon en 1957
en el sentido de que 10 años después las computadoras serían capaces de
derrotar a quien fuese el campeón humano de ajedrez, si se encuentran muy
cerca de lograrlo. En el ajedrez de velocidad, las computadoras derrotaron al
campeón mundial, Gary Kasparov, tanto en los juegos con duración de cinco
minutos como en los de 25 minutos; hasta el momento de escribir estas
líneas, en los torneos de juegos de duración completa, las computadoras sólo
han logrado ocupar un lugar entre los cien mejores jugadores del mundo. En
la figura 5.12 se muestra el puntaje obtenido a través del tiempo por
humanos y computadoras campeones.
Algunos programas de principios de los años 70 eran demasiado
complicados, contaban con diversos trucos para eliminar algunas ramas de
búsqueda, para generar jugadas posibles, etc.; pero en los programas que
ganaron los Campeonatos de Ajedrez por Computadora de Estados Unidos
de la ACM (iniciados en 1970) se favorecía el uso de la búsqueda alfa-beta
directa, complementada por la consulta en libros de aperturas e infalibles
algoritmos de fin de juego.
El primer avance notable en eficiencia se debió no a mejores algoritmos o
funciones de evaluación, sino al hardware. 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, lo que 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ápido cálculo de complejas funciones de
evaluación.
Capaz de generar aproximadamente diez millones de posiciones por jugada
y utilizando probablemente la más precisa 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, explora casi 5,000 millones de posiciones
por jugada, con lo que logra alcanzar profundidades de 10 u 11 y cuenta con
una función que le permite seguir la línea de jugadas forzadas aun más lejos
(en una ocasión encontró un jaque mate de 37 jugadas). Donde compitió
contra el equipo olímpico danés y le ganó 3-1, derrotó a uno de los 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 le permite explorar el equivalente de 10,000
posiciones por segundo (de 1 a 2 billones por cada jugada) y alcanzar
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 de obtener por si mismo su función de
evaluación mediante lo aprendido a través de miles de juegos ejecutados por
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 el equipo de
cómputo con el que trabajaba Samuel (una IBN' 704) contaba con 10 000
palabras de memoria principal, cinta magnética para almacenamiento de
largo plazo y un ciclo de tiempo de casi un milisegundo, se podrá 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 de computadora que en la de tablero. Su espacio de
búsqueda es más reducido que el del ajedrez, por lo general sólo tiene de 5 a
15 jugadas aceptadas, sin embargo la experiencia para la evaluación tiene
que obtenerse a partir de cero. Con todo, los programas de Othello en las
computadoras normales son mucho mejores que los humanos, 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 la búsqueda un lujo muy costoso. El primer
programa que tuvo repercusión, BK.G, utilizaba sólo búsqueda de una 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 redes neurales para crear una nueva función
de evaluación. Su programa está considerado sin lugar a dudas entre los tres
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 el caso del ajedrez. El factor de ramificación se
aproxima a 360, por lo que los métodos normales de búsqueda no sirven de
nada. Los que ofrecen ciertas posibilidades son los sistemas basados en
completas bases de conocimiento de reglas que propongan aquellas jugadas
que pudieran ofrecer alguna posibilidad, aunque la calidad de los juegos así
realizados todavía es bastante mala. En especial considerando el premio de
dos millones de dólares al programa que logre derrotar a uno de los mejores
jugadores, Go es un área con posibilidades de obtener los beneficios de
profundas investigaciones utilizando métodos de razonamiento más
complejos.
Descargar