Vous êtes sur la page 1sur 51

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS ADMINISTRATIVAS


INGENIERIA EN SISTEMAS
ADMINISTRATIVOS COMPUTARIZADOS
TEMA DE EXPOSICION:
Tcnicas de IA para la solucin de
Problemas
Juegos Competitivos
INTEGRANTES:
Anchundia Delgado Guamn Miranda
Jonathan Abraham
Bernita Macas Pincay Baque
Boris Marcos
Cacao Ortiz Roxana Quionez Rodrguez
Luis
Chez Delgado Laura

MATERIA:
INTELIGENCIA ARTIFICIAL
PROFESOR:
MBA. Csar Vallejo de la Torre
Ao Lectivo
2014 2015
Universidad de Guayaquil
Facultad de Ciencias Administrativas
Ingenieria en Sistemas Administrativos
Computarizados
Expositores:
1.- CHEZ DELGADO LAURA
_________________________________________________
___
2.- CACAO ORTIZ ROXANA
_________________________________________________
___
3.- GUAMAN MIRANDA ABRAHAM
_________________________________________________
___
4.- ANCHUNDIA DELGADO JONATHAN
_________________________________________________
___
5.- BERNITA MACIAS BORIS
_________________________________________________
___
6.- QUIONEZ RODRIGUEZ LUIS
_________________________________________________
___
7.- PINCAY BAQUE MARCO
_________________________________________________
___

Observaciones:
_________________________________________________
___
_________________________________________________
___
_________________________________________________
___
_________________________________________________
___

Contenido
PREFACIO ............................................................................................................... I
Introduccin ............................................................................................................. 1
JUEGOS.................................................................................................................. 1
DEFINICIONES.................................................................................................... 2
Teora de Juegos ................................................................................................. 4
JUEGOS VS. PROBLEMAS DE BUSQUEDA. .................................................... 4
TIPOS DE JUEGOS............................................................................................. 5
Clasificacin de Juegos ....................................................................................... 6
Estrategias a Seguir ......................................................................................... 6
ALGORITMO MINIMAX .......................................................................................... 7
REPRESENTACIN DE LOS JUEGOS .............................................................. 8
FUNCIONAMIENTO ............................................................................................ 9
Ejemplo: .......................................................................................................... 10
VENTAJA DEL ALGORITMO MINIMAX ............................................................ 11
DESVENTAJAS ALGORITMO MINIMAX .......................................................... 11
MEJORAS DEL ALGORITMO MINIMAX ........................................................... 12
JUEGOS QUE USAN EL ALGORITMO MINIMAX............................................. 12
Dinmica del juego ......................................................................................... 13
Reglas del juego ............................................................................................. 13
Optimizacin Mini-Max ....................................................................................... 20
ANLISIS MINI-MAX ......................................................................................... 20
ALGORITMO ALFA-BETA .................................................................................... 21
MTODO ALFA-BETA ....................................................................................... 22
REGLAS DE FINALIZACIN ............................................................................. 23
PROCEDIMIENTO ............................................................................................. 23
Caractersticas de la Poda Alfa-Beta ................................................................. 24
Estructuras de datos ....................................................................................... 25
ORIGEN DEL NOMBRE ALFA .......................................................................... 26
ALGORITMO DE BSQUEDA ALFA-BETA ...................................................... 26
EJEMPLO .......................................................................................................... 28
ALGORITMO MINI-MAX CON PODA - .......................................................... 33
BIBLIOGRAFIA ..................................................................................................... 44
Ingeniera en Sistemas Administrativos Computarizados 1952

PREFACIO
La importancia del proyecto est enfocada en las Tcnicas de la Ingeniera
Artificial para la solucin de problemas que contribuye a la solucin del problema
planteado, de igual manera con el desarrollo de la investigacin se est dando un
gran aporte al tpico de Inteligencia Artificial.

El objetivo principal es definir las caractersticas de los juegos competitivos, y


describir los algoritmos Mini-Max y Alpha Beta mostrando ejemplos del uso de los
algoritmo en juegos competitivos, se trata de una planteamiento integral,
sistematizada para realizar una actividad que debe cumplirse en un tiempo
determinado.

Constituye un enfoque grupal que se espera resulte til para el desarrollo e


implementacin de aplicaciones que requieran capacidades de Inteligencia para lo
cual se plantea objetivos a plazos considerados diversas alternativas de accin;
una modalidad de la investigacin cualitativa -cuantitativa, documentada, de
campo, descriptiva y proyecto factible dirigida al Profesor de la Carrera de
Ingeniera en sistemas Administrativos Computarizados beneficiarios del proyecto.
Variables identificadas para formacin de profesionales, una metodologa que
seale parmetros en el procesamiento y anlisis acompaado de un programa de
actividades, con una utilidad prctica para la Universidad y los estudiantes de la
carrera de Ingeniera en sistemas administrativos computarizados.

La gua del proyecto es la herramienta clara que ayuda al proceso de informacin


de los educandos, al bienestar de la sociedad, del futuro acadmico del rea de la
Inteligencia artificial.

I Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

PREFACE
The importance of the project is focused on Artificial Engineering Techniques for
solving problems contributing to the solution of the problem, just as with the
development of research is giving a great contribution to the topic of Artificial
Intelligence.

The main objective is to define the characteristics of competitive gaming, and


describe the Mini-Max and Alpha Beta algorithms showing examples of the use of
the algorithm in competitive games; it is a holistic approach, systematized for an
activity to be performed in a given time.

a team approach is expected to result useful for developing and deploying


applications that require intelligence capabilities for which objectives arises in
installments considered various alternatives of action; a form of qualitative
research both quantitatively documented, field, descriptive and feasible project to
Professor of the School of Engineering Administrative Computerized systems
project beneficiaries identified variables for training professionals, a methodology
to point parameters in processing and analysis accompanied by a program of
activities with a handy utility for the University and students of Engineering in
computerized administrative systems.

The directory of the project is the clear tool that helps process information from the
students, the welfare of the society, the academic future of the area of Artificial
Intelligence.

II Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Introduccin
La inteligencia Artificial, es una campo de que ha tomado gran inters en los
ltimos tiempos debido a su capacidad de poder resolver soluciones imitando el
razonamiento lgico de las personas y hasta el mecanismo de cmo ellas la
resuelven.

Un tema interesante a tratar a lo que concierne a la IA son los juegos. As por


ejemplo, el juego del ajedrez es un juego de mesa para dos contrincantes y es uno
de los juegos ms mencionados dentro de la teora de juegos de la Inteligencia
Artificial, por lo que tiene bien definida su meta (el Mate) y sus acciones (conjunto
de movimientos de cada una de las piezas que la conforman), las cuales, por
cierto, hacen del juego algo complicado de programarlo, pero no imposible.

Este juego fue estudiado por Claude Shanon y hasta el mismo Alan Turing, los
cuales sugirieron algunas formas de representarlos en un ordenador.

Existen, pues, varias tcnicas de bsqueda para el desarrollo de este juego.


Dentro de las tcnicas de bsqueda que hemos estudiado, hemos considerado
utilizar la bsqueda de Poda Alfa Beta, la cual es muy eficiente en la bsqueda de
una solucin en un 30% comparada con la Bsqueda de Mini-Max. Sin embargo
la eleccin de una heurstica apropiada es lo que define mejor la solucin del
juego.

JUEGOS
Un juego consiste en un conjunto de reglas que rigen una situacin competitiva en
al cual de dos a n agentes escogen estrategias diseadas para maximizar sus
propias ganancias o para minimizarlas ganancias de sus oponentes.
Las reglas especifican las acciones posibles para cada jugador, la cantidad de
informacin recibida por cada uno mientras se juega, y la cantidad de ganancia o
prdida en varias situaciones.

En los entornos multiagente (cooperativos o competitivos), cualquier agente tiene


que considerar las acciones de otros agentes.

La imprevisibilidad de estos otros agentes puede introducir muchas contingencias


en el proceso de resolucin de problemas.

1 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Los entornos competitivos, en los cuales los objetivos de los agentes estn en
conflicto, dan ocasin a problemas de bsqueda entre adversarios, a menudo
conocidos como juegos.

Los entornos multiagente, en los cuales cualquier agente tendr que considerar
las acciones de otros agentes y cmo afectan a su propio bienestar. La
imprevisibilidad de estos otros agentes puede introducir muchas posibles
contingencias en el proceso de resolucin de problemas del agente. Los entornos
competitivos, en los cuales los objetivos del agente estn en conflicto, dan ocasin
a problemas de bsqueda entre adversarios, a menudo conocidos como juegos.

La Teora de juegos, una rama de la Economa, ve cualquier entorno multiagente


como un juego a condicin de que el impacto de cada agente sobre los dems sea
<<significativo>> sin tener en cuenta si los agentes son cooperativos o
competitivos.

En IA <<los juegos>> son, por lo general, una clase ms especializada (que los
tericos de juego llaman JUEGO DE SUMA CERO, de dos jugadores, por turnos,
de INFORMACION PERFECTA). En nuestra terminologa, significan entornos
deterministas, totalmente observables en los cuales hay dos agentes cuyas
acciones deben alternar y en los que los valores utilidad, al final de juego, son
siempre iguales y opuestos.

DEFINICIONES
Von Neumann (1944):
Juegos en los cuales ningn jugador puede ganar excepto si otropierde (Zero-
sum).

John Nash (1950):


Distincin entre juegos cooperativos y competitivos.

En juegos competitivos existen un conjunto de estrategias ptimas (equilibrio) que


permiten que ningn jugador pueda beneficiarse por cambiar su propia estrategia
si las estrategias de los dems no cambian.

2 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Reinhard Selten (1965):


Sugerencias de los resultados de los juegos (predicciones).
Todas las jugadas futuras deben ser racionales y no pueden ser juegos de
informacin imperfecta.

John Harsanyi (1967):


Juegos Bayesianos. Juegos de informacin completa.

Thomas Schelling (2005):

Modelos dinmicos y genticos que se enfocan ms en los cambios de estrategias


que las propiedades de ellas.

El brasileo Fabio Otuzi Brotto (1999), basndose en las ideas de Terry Orlick,
destaca el papel educativo de los juegos cooperativos comparndolo con el de los
juegos competitivos:

JUEGOS COMPETITIVOS JUEGOS COOPERATIVOS

Son divertidos slo para algunos Son divertidos para todos


La mayora experimenta un sentimiento de Todos tienen un sentimiento de
derrota victoria
Algunos son excluidos por falta de Hay una mezcla de grupos que
habilidad. juegan juntos creando un alto nivel de
aceptacin mutua.
Se aprende a ser desconfiado, egosta o, Se aprende a compartir y a confiar en
en algunos casos, la persona se siente los dems.
amedrentada por los otros.
Los jugadores no se solidarizan y son Los jugadores aprenden a tener un
felices cuando algo malo le sucede a los sentido de unidad y a compartir el
otros. xito.
Conllevan una divisin por categoras, Hay una mezcla de personas en
creando barreras entre las personas y grupos heterogneos que juegan
justificando las diferencias interpersonales juntos creando un elevado nivel de
como una forma de exclusin aceptacin mutua.
Los perdedores salen del juego y Nadie abandona el juego obligado por
simplemente se convierten en las circunstancias del mismo. Todos

3 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

observadores juntos inician y dan por finalizada la


actividad.
Los jugadores pierden la confianza en s Desarrollan la autoconfianza porque
mismos cuando son rechazados o cuando todos son bien aceptados.
pierden
La poca tolerancia a la derrota desarrolla La habilidad de perseverar ante las
en algunos un sentimiento de abandono dificultades se fortalecen por el apoyo
frente a las dificultades. de otros miembros del grupo.

Teora de Juegos
Los juegos han sido estudiados a lo largo de la historia formulndose incluso
modelos matemticos que permitiesen desarrollarlos.
En un principio, estos juegos fueron estudiados por una rama de la ciencia
denominada Investigacin Operativa (IO), la cual proporcionaba tcnicas que solo
podran ser aplicables si exista un procedimiento finito. Con el surgimiento de la
Inteligencia Artificial se crean nuevos algoritmos de bsquedas que permiten
desarrollar soluciones dentro de procedimientos no finitos.

Uno de estos algoritmos es el algoritmo de Poda Alpha-Beta que es muy usado en


la teora de Juegos y que permite encontrar soluciones dentro de un campo de
bsquedas infinito. Sin embargo para poder entender mejor esta tcnica, es
necesario y conveniente primero entender la tcnica de bsqueda Mini-Max, que
es una tcnica que se centra en la resolucin de problemas de bsquedas,
basadas en la alternacin de dos entes o agentes a los cuales se les denominan
Min y Max.

JUEGOS VS. PROBLEMAS DE BUSQUEDA.

Oponente impredecible la solucin es una estrategia que especifica


una movida para toda respuesta posible del oponente

Lmites de tiempo improbable encontrar un objetivo, se debe


aproximar

4 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

TIPOS DE JUEGOS

Los juegos, que ya de por si son una subcategora de problemas, tambin pueden
su clasificarse.

Incluso para los ordenadores no es lo mismo si intentas decidir la mejor jugada en


el tres en raya que si pretendes decidir si jugando a cartas apuestas o te plantas.
Por eso los juegos tambin debern clasificarse segn ciertas propiedades
presentes en todos ellos, facilitando as la decisin de que algoritmo utilizar para
vencer.

La primera de las propiedades a tener en cuenta ser EL NMERO DE


JUGADORES o agentes involucrados, informacin de gran vitalidad a la hora de
disenar el algoritmo. Un juego puede ser sin adversario (por ejemplo un
8-puzzle), con 1 adversario (por ejemplo el 3 en raya), o con N adversarios.

La siguiente propiedad a conocer es EL ORDEN DE LOS MOVIMIENTOS. Saber


si por ejemplo los jugadores mueven alternativamente o por azar tambin es muy
importante.

Una vez situados los jugadores y sus turnos, hay que saber que conocimiento
tienen estos. En los juegos los jugadores pueden tener o bien
CONOCIMIENTO PERFECTO, donde no afecta el azar y todos saben en todo
momento lo mismo, o bien CONOCIMIENTO IMPERFECTO, donde el azar si
puede participar y adems hay ocultacin de informacin entre jugadores.

Al hecho de que el azar aparezca o no aparezca en alguna de las propiedades


anteriores se le conoce como DETERMINISMO.

Tambin podemos encontrarnos juegos donde un movimiento que te beneficia


siempre perjudica al mismo nivel al adversario (equilibrio Nash), o juegos donde
esto no ocurre.

Segn sus caractersticas encontraremos juegos:


Simtricos.
Asimtricos.
De suma cero y De suma no cero,
Cooperativos,
Simultneos y
Secuenciales,
De informacin perfecta, (ajedrez, damas, tres en raya...) vs. informacin
imperfecta (poker, stratego, bridge...)
De longitud infinita, o juegos bayesianos entre otros.

5 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Clasificacin de Juegos
Cooperacin Cooperativos/no cooperativos

Nmero de jugadores n=2, bipersonales : por naturaleza no cooperativos

n>2, n-personales: Pueden ser cooperativos. Dan lugar a coaliciones

Beneficios Suma nula: la suma de beneficios y prdidas de los jugadores debe ser
0. (Son habituales en IA).

Suma no nula: caso contrario

Duracin Finitos: tienen final programado (n jugadas, ruinas, etc.)

Infinitos: sin final programado

Estrategias a Seguir

La idea bsica cuando buscas vencer computacionalmente un adversario es


intentar predecir todos los posibles movimientos, todas las posibles situaciones
desde tu turno hasta el final de la partida, y elegir la que prometa mejores
resultados. Esta idea se la conoce como la de generar todo el rbol de
bsqueda. Pero esta estrategia tan bruta la gran mayora de veces ser algo
imposible e inaceptable, pues una partida no puede durar siglos.

Lo que realmente haremos ser buscar una aproximacin de las mejores jugadas,
guindonos mediante heursticos, y prediciendo nicamente las situaciones con
mejor pinta (pues por ejemplo no sirve de nada saber las situaciones que podran
darse despus de hacer un paso en falso). Para poder realizar los clculos
computacionalmente, har falta una abstraccin codificable del juego. Entender e
implementar realmente el problema.

Necesitaremos una representacin del estado (vlida para cualquier estado), otra
del estado inicial (desde dnde se empieza a jugar y quin inicia el juego), otra del
estado ganador (ya sea por estructura o por propiedades), y finalmente definir los
operadores de movimiento vlidos de los jugadores, que determinarn las jugadas
que puede hacer un agente desde el estado actual.

Adems deberemos definir la aproximacin heurstica, es decir, la funcin que nos


indique lo cerca que estamos de una juagada ganadora. En esta funcin
intervendr informacin del dominio del juego, y deber tener un coste

6 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

computacional lo ms bajo posible. Una vez definido el universo del juego, nos
tocar aplicar el algoritmo ms adecuado.

JUEGOS DETERMINISTICOS EN LA PRCTICA

Damas: Chinook finalizo un reinado de 40 aos de reinado del campen mundial


Marion Tinsley en 1994. Uso una base de datos que defina un juego perfecto para
todas las posiciones que envuelven 8 o menos piezas en el tablero, un total de
443.748.401.247 posiciones

Ajedrez: Deep Blue derrot al campen Gary Kasparov en una serie de 6 juegos
en 1997. Deep Blue realizo una bsqueda de 200 millones de posiciones por
segundo, utilizo una evaluacin muy sofisticada, y no revel mtodos para
extender algunas lneas de bsqueda arriba de 40 jugadas.

Otelo: Los campeones humanos se rehusaron a competir contra computadores,


los cuales eran demasiado buenos.

Go: Los campeones humanos se rehusaron a competir contra computadores, los


cuales eran demasiado malos. En go, b > 300, de manera que la mayora de
programas usan bases de conocimiento de patrones para sugerir posibles
movimientos

ALGORITMO MINIMAX

El algoritmo Mini-Max es un mtodo de decisin para minimizar la prdida mxima


esperada en juegos con adversario y con informacin perfecta. Este clculo se
hace de forma recursiva.

Hace eleccin del mejor movimiento para cada jugador, suponiendo que el
contrincante escoger el peor.
El espacio de estados se representa mediante rboles alternados donde:
Un nodo, representa una situacin del juego.

Sucesores de un nodo, son situaciones del juego a las que se accede por
movimientos legales aplicando sus reglas.
Nivel, contiene todas las situaciones posibles para cada uno de los jugadores.
7 Grupo# 5 Tcnicas de IA para la solucin de problemas
Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

REPRESENTACIN DE LOS JUEGOS


Posicin inicial
Conjunto de operadores o reglas del juego
Estado terminal
Funcin de utilidad (empata, pierde o gana)

Este tipo de algoritmo es un algoritmo de bsqueda en profundidad donde puede


venir limitada por:
Gana un jugador
Se han explorado N capas
Se ha agotado el tiempo de exploracin
Se llega a una situacin esttica en la que no hay cambios de un nivel a
otro.

El algoritmo MINIMAX (posicin, profundidad, jugador) usa dos funciones:

GENMOV (posicin, jugador): devuelve la lista de movimientos posibles


para el jugador a partir de la posicin.
ESTTICA (posicin, jugador): devuelve un nmero que representa la
bondad de la posicin desde el punto de vista de jugador.

La funcin ESTTICA devuelve valores en relacin al jugador actual en vez del


jugador maximizante. Por esta razn, en lugar de realizar maximizacin y
minimizacin alternativas, siempre se maximiza el valor que devuelve esta funcin.
El algoritmo MINIMAX no necesita tratar diferente a los niveles maximizante y
minimizante dado que invierte los valores de un nivel a otro.
La funcin Mini-Max devuelve una estructura con:

VALOR: valor propagado de la funcin esttica


CAMINO: camino para llegar a la solucin desde la posicin
La primera llamada a la funcin recursiva ser: MINIMAX (posicin actual, 0,
JUGADOR-UNO)

8 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

FUNCIONAMIENTO
El funcionamiento de Mini-Max puede resumirse como elegir el mejor movimiento
para ti mismo suponiendo que tu contrincante escoger el peor para ti.

1.- Generacin del rbol de juego, se generan todos los nodos hasta llegar a un
estado terminal.
2.- Calculo de los valores de la funcin de utilidad para cada nodo terminal
3.- Calcular el valor de los nodos superiores a partir del valor de los inferiores.

Entonces alternativamente se va eligiendo los valores mnimos y mximos


representando los movimientos dl jugados y del oponente de all su nombre Mini-
Max
4.- Elegir la jugada valorando los valore que han llegado a nivel superior.

El algoritmo explorar los nodos del rbol asignndoles un valor numrico


mediante una funcin de utilidad, empezando por los nodos terminales y subiendo
hacia la raz.
Colocar 0 o 1 en los nodos terminales dependiendo si gana Min o Max.

La funcin de utilidad definir lo buena que es la posicin para un jugador cuando


lo 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 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 nmero positivo.
El Minimizador busca movimientos que lo conduzcan al menor nmero negativo.

9 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Clculo de valores de la funcin de utilidad.

Ejemplo:
El funcionamiento en un rbol generado un juego imaginario
Los posibles valores de la funcin de utilidad tienen un rango de utilidad 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.
Paso 1. Calcular los nodos terminales, en verde.
Paso2. Calcular el cuarto nivel, movimiento MIN, minimizando lo elegido (5, 2 ,1)
Paso 3. Calcular el tercer nivel, movimiento (5,9).
El segundo nivel es un movimiento Min (5, 3 y 1).

10 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Finalmente llegamos al nivel 1, el movimiento actual, elegiremos el nodo que


maximice nuestra utilidad (5)

VENTAJA DEL ALGORITMO MINIMAX


Capacidad de aprender de acuerdo a una base de datos histrica de
movimientos realizados.
Algoritmo casi infalible

DESVENTAJAS ALGORITMO MINIMAX


Algoritmo de complejidad elevada a la hora de implementar.
Es de aprendizaje lento
Solo vale para enfrentarse a un oponente a la vez.

11 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

MEJORAS DEL ALGORITMO MINIMAX


Hay muchas tcnicas para mejorar la inteligencia y el rendimiento del algoritmo
Mini-Max, como puede ser por ejemplo:
PODA ALFA-BETA

Para juegos con un factor de ramificacin elevado, esta profundidad no podr ser
muy grande, ya que el clculo necesario para cada decisin ser prohibitivo. Su
tiempo de exploracin ser muy grande. Para mejorarlo hay que utilizar heursticos
con poda, es decir se utilizar una tcnica de ramificacin y poda.
Poda de inutilidades, es una evolucin de la Poda Alfa-beta
Bsqueda Sesgada

Algoritmo NegaMax, se trata de una versin ms compacta del minimax. En vez


de utilizar dos rutinas (una para Max y otra para MIN), lo que hace es utilizar la
puntuacin negada utilizando la relacin matemtica:
Max(a, b) = -min (-a,-b)

Aunque es una versin reducida de Mini-Max es posible aplicarle la poda Alfa-


Beta.

JUEGOS QUE USAN EL ALGORITMO MINIMAX


3 en raya
Mancala
Conecta-4
Damas
Ajedrez
Go

EN EL JUEGO DE LAS TRES EN RAYA:


Gana el +1, pierde el -1 y empate 0
La profundidad mxima es de 9, como el nmero de jugadas posible

No hay restricciones sobre la validez de un movimiento, simplemente que no se


haya hecho antes, por lo que el coste del clculo es bajo (no hay que aplicar
reglas complejas).
Almacenar las soluciones intermedias no es excesivamente complejo
12 Grupo# 5 Tcnicas de IA para la solucin de problemas
Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Generar los diferentes tableros con las soluciones intermedias a explorar no es


costoso pero podra ser un problema en otros juegos y limitar la profundidad por
memoria
La mquina nunca pierde, el juego est completado.
Las partidas entre jugadores mquina siempre quedan en tablas.

En cambio en el juego Mancala tendremos dos jugadores que realizaran


movimientos en turnos alternados. En cada uno de ellos el jugador redistribuye
(siembra) las piezas (semillas) de un hoyo con el objetivo de capturar las piezas
de su oponente.

El tablero del juego est formado por dos filas de 8 cada una. Una fila pertenece a
un jugador y la otra a su oponente. Una caracterstica de este juego es que el
nmero total de semillas en el tablero permanece constante, y que cada jugador
slo siembra en su fila. Por tanto, si un jugador captura semillas del otro jugador
est obligado a sembrar semillas de nuevo estas semillas en sus hoyos.

Dinmica del juego


Es juego consiste en recolocar o redistribuir las semillas de un hoyo de la misma
fila con el objetivo de capturar el mayor nmero posible de semillas al oponente. El
juego termina cuando uno de los dos jugadores consiga que su oponente posea
una o ninguna semilla en su fila, en tal caso es el ganador de la partida.

Reglas del juego


Las acciones que puede realizar un jugador en su turno son las siguientes:

Siembra inicial: Se relaciona un hoyo que contenga semillas, y que


preferiblemente permita hacer una captura. Se siembran las semillas del hoyo
seleccionado en los sucesivos hoyos, yendo de izquierda a derecha, y
depositando una semilla en cada hoyo. En el caso de que se llegara sembrando al
final de la fila (hoyo 7) se contina sembrando desde el principio (hoyo 0) y en la
misma fila del jugador. La siguiente secuencia muestra como desde la situacin
inicial de partida, el jugador A seleccion el hoyo 3 para la siembra inicial. De esta
forma, deposit una semilla en cada uno de los hoyos que hay a su derecha (4, 5
y 6).

13 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

A continuacin se muestra el tablero inicial indicando el sentido de juego para


cada jugador.

Tablero despus de la siembra inicial del jugador A

Captura/cesin: Se da slo cuando tras la siembra, la ltima semilla se deposita


en un hoyo que ya tena semillas (hoyo de ltima siembra) y en el hoyo opuesto
del otro jugador tambin tiene semillas.
14 Grupo# 5 Tcnicas de IA para la solucin de problemas
Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

En este caso, se pueden dar las siguientes alternativas:

1.- Captura semillas: Si cae en un hoyo con un nmero impar de semillas (antes
de depositar la nueva) y el contrario en el hoyo opuesto tambin tiene un nmero
impar de semillas, se capturan las semillas del hoy opuesto y se siembran en la
fila del jugador, comenzando a sembrar a partir del siguiente hoyo a la derecha de
la ltima siembra. Tras la nueva siembra, volver analizarse el nuevo hoyo de
ltima siembra para comprobar si de nuevo hay captura o cesin.
2.- Cede semillas y cambio de turno: Si cae en un hoyo con 3 o ms semillas que
no cualifica para captura, y si el contrario tiene una o dos pero menos de 3
semillas en su hoyo opuesto, se ceden al hoyo contrario todas las semillas del
hoyo de ltima semilla y se pasa el turno al oponente.

3.- Cambio de turno: en cualquier otro caso, se termina la jugada y se pasa el


turno al oponente.

Turno jugador B
Dado el siguiente tablero en el que el jugador B tiene el turno:

Decide jugar al hoyo, que solo tiene una semilla, que se depositar en el hoyo 3,
resultado el tablero:

15 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

El hoyo de ltima semilla ser el hoyo 3 del jugador B. Como tena semillas antes
de depositar la nueva y el hoyo opuesto del jugador A tambin tiene semillas, el
jugador B captura las 5 semillas del hoyo 4 del jugador A.
A continuacin se realiza la siembra de las semillas capturadas, que se realizar a
partir del siguiente a la derecha del fin de la siembra (hoyo 4), depositando una
semilla en los hoyos 4, 5, 6, 7 y 0

Ahora el hoyo de fin de siembra ser el 0 del jugador B que tena una
semilla(impar) antes de depositar la ltima, pero el hoyo opuesto tiene 4
semillas(par), con lo que no hay otra captura. Tampoco se dan las condiciones
para la cesin, por lo tanto, se producir el final de la jugada y el cambio de turno.
16 Grupo# 5 Tcnicas de IA para la solucin de problemas
Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Turno del jugador A


Dado el tablero anterior en el que el turno es ahora del jugador A:

Decide jugar en el hoyo 0, que solo tiene una semilla, que se depositar en el
hoyo 1.

17 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

El hoyo de la ltima semilla (hoyo 1) tena semillas antes de depositar la nueva (1,
impar) y el hoyo opuesto del jugador B tambin (1, impar). Al ser ambas impares,
el jugador A captura B la semilla de su hoyo 6(1).

A continuacin se realiza la siembra de la semilla capturada, que se realizara a


partir del siguiente hoyo a la derecha al fin de la siembra (hoyo 2).

Ahora el hoyo de la ltima semilla (hoyo 2) tena semillas antes de depositar la


nueva semilla (1, impar) y el hoyo opuesto del jugador B tambin (5, impar). Como
ambas son impares, el jugador A captura a Blas 5 semillas de su hoyo 5.

A continuacin se realiza la siembra de las semillas capturadas, que se realizar a


partir del siguiente hoyo a la derecha al de ltima semilla (hoyo 3).

18 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

El nuevo hoyo de fin de siembra (hoyo 7) tena 4 semillas antes de depositar la


nueva semilla y el hoyo opuesto del jugador B tiene 2 (menos de 4), luego el
jugador A le cede al B las semillas de su hoyo 7 (5) que se depositan en el hoyo
opuesto (hoyo 0, jugador B), finalizando la jugada y cambiando turno.

Fin del turno.

Un jugador finaliza su turno cuando se da alguno de los siguientes casos:


Despus de la siembra inicial, la ltima semilla cae en un hoyo de su fila sin
semillas.
Cuando despus de una captura no se puede realizar otra captura.
Cuando tiene que ceder al contrario

El ejemplo anterior contiene dos fines de turno, uno par el jugador B y uno par el
jugador A.

19 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Fin del juego.


Hay dos posibilidades de fin de juego:
1. Victoria de uno de los jugadores.
2. Por tablas.

1. Un jugador gana la partida cuando consigue que su oponente tenga en su


fila una o ninguna semilla o cuando el oponente abandona o si tu funcin de
evaluacin comete algn error.

2. Una partida puede quedar en tabla si de da algunas de las siguientes


circunstancias:
Incapacidad de los jugadores de obtener victoria en menos de 200 jugadas.
Incapacidad del tericamente superior de rematar la partida en menos de 8
jugadas cuando el contrario tiene slo dos fichas.

Optimizacin Mini-Max
En la practica el mtodo Minimax es impracticable excepto en supuestos sencillos.
Realizar la bsqueda completa requerira cantidades excesivas de tiempo y
memoria.

Claude Shannon en su texto sobre ajedrez de 1950 (Programming a Computer for


Playing Chess) propuso limitar la profundidad de la bsqueda en el rbol de
posibilidades y determinar su valor mediante una funcin heurstica. Para
optimizar Minimax puede limitarse la bsqueda por nivel de profundidad o por
tiempo de ejecucin.
Otra posible tcnica es el uso de la poda alfa-beta. Esta optimizacin se basa en
la suposicin que el jugador contrario no nos permitir jugar nuestras mejores
jugadas.

ANLISIS MINI-MAX
Es un mtodo general y sencillo que permite representar y buscar estrategias
ganadoras en los problemas de juego en los que hay dos adversarios. El
etiquetado de los nodos permite identificar las distintas estrategias posibles.

20 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

ALGORITMO ALFA-BETA
El algoritmo alfa-beta es un mtodo de bsqueda en juegos que le permite a la
mquina escoger la jugada ms adecuada, en un juego entre dos jugadores en el
que no existe el azar (como el ajedrez, las damas, etc.), sin necesidad de explorar
todo el espacio de jugadas futuras. Esto es posible debido a que el algoritmo
incorpora un mecanismo mediante el cual se puede evitar la evaluacin de ciertas
jugadas si es posible saber que no mejorarn la mejor jugada encontrada hasta el
momento.

Se trata de una extensin del algoritmo Mini.Max. En el algoritmo Mini-Max el


espacio de bsqueda se representa mediante un rbol que almacena todas las
posibles jugadas a partir de la situacin actual del tablero hasta llegar a un
determinado nivel de profundidad, que marcar el horizonte de jugadas futuras
que puede evaluar la mquina. El nodo raz representa la situacin actual del
tablero. Un nodo tendr tantos hijos como posibles movimientos se puedan hacer
a partir de la situacin que representa. Existen tres tipos de nodo:

Un nodo hoja ser un nodo que no tenga hijos, ya sea porque se ha alcanzado el
mximo nivel de profundidad establecido como parmetro del algoritmo o porque
no se pueden realizar ms movimientos a partir de la situacin del tablero que
representa dicho nodo (por ejemplo, porque la partida haya acabado, o no sea
posible colocar ms fichas). Cuanta mayor sea la profundidad del rbol ms
jugadas futuras se evaluarn, pero el coste temporal tambin ser mayor.

Un nodo MAX se corresponde con una situacin en la que le toque tirar a la


mquina.

21 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Un nodo MIN se corresponde con una situacin en la que le toque tirar al


contrincante de la mquina (por ejemplo, el humano contra quien est jugando).

El algoritmo realiza un recorrido en profundidad del rbol, viajando de la raz a las


hojas para volver de nuevo a la raz al terminar. Cada vez que se llegue a un nodo
hoja se evaluar mediante una funcin de evaluacin, que asignar un valor
numrico a dicho nodo, segn lo favorable para la mquina que sea el estado de
juego representado por el mismo. Cuanto ms favorable sea la jugada para la
mquina, mayor ser el valor devuelto por la funcin de evaluacin. Al recorrer el
rbol de los nodos hoja al nodo raz cada nodo va a devolver a su padre un valor;
si se trata de un nodo MAX, devolver el mximo valor obtenido a partir de
cualquiera de sus hijos (ya que la mquina se supone que va a escoger siempre la
situacin que ms le favorezca), mientras que si se trata de un nodo MIN
devolver el mnimo valor obtenido a partir de cualquiera de sus hijos. Finalmente,
el movimiento a realizar por la mquina ser aquel que se corresponda con el hijo
del nodo raz que haya devuelto el mximo valor.

El algoritmo alfa-beta incluye un paso de poda. Cada nodo almacena dos valores
llamados alfa y beta, que son inicializados como menos infinito y ms infinito
respectivamente. Estos valores pasan de un nodo a sus nodos hijos. Cuando un
nodo MAX recibe el valor de alguno de sus hijos actualiza su valor de alfa (que
ser el mximo entre el valor obtenido y el valor de alfa anterior), y cuando un
nodo MIN recibe el valor de alguno de sus hijos actualiza su valor de beta (que
ser el mnimo entre el valor obtenido y el valor de beta anterior). Un nodo MAX
devolver su valor de alfa y un nodo MIN devolver su valor de beta. Si en algn
momento el valor de alfa es mayor o igual que el de beta para un nodo cualquiera,
se produce una poda: no se evalan ms hijos de dicho nodo y se devuelve un
valor. En el caso de un nodo MAX se devolver su valor beta y en el caso de un
nodo MIN se devolver su valor alfa.

MTODO ALFA-BETA
Problema de la bsqueda Mini-Max: el nmero de estados que tiene que
examinar es exponencial.
Es posible calcular la decisin minimax correcta sin examinar todos los
nodos del rbol.
La poda alfa-beta permite eliminar grandes partes del rbol, sin influir en la
decisin final

22 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Procedimiento para mejorar la eficiencia en juegos bipersonales


Completa y suple el mtodo Mini-Max
Mini-Max necesita dos pasadas

1. Una de generacin
2. Una de evaluacin

Bsqueda - busca primero en profundidad

La poda - se basa en la idea de disponer de dos valores que conforman una


ventana a la cual deben pertenecer los valores de f(n) para que sean
considerados.

En los nodos MAX se utiliza el parmetro que determina el mximo de los


valores de los nodos sucesores encontrados hasta el momento

En los nodos MIN se utiliza el parmetro que va a ser, en cada momento, el


mnimo de los valores encontrados.

REGLAS DE FINALIZACIN
En los nodos MAX la condicin de poda es p p-1

(Se puede podar por debajo de un nodo MAX si su valor alfa es mayor o igual que
al menos un beta antecesor)
En los nodos MIN la condicin de poda es p p-1

(Se puede podar por debajo de un nodo MIN si su valor beta es menor o igual que
al menos un alfa antecesor)

PROCEDIMIENTO
1 Descender primero en profundidad hasta la profundidad total del ply
2 Aplicar la evaluacin heurstica a un nodo y a todos sus hermanos
3 Asignar valores al padre: el valor se oferta al abuelo como valor potencial
4 Descender a otro nieto y terminar la exploracin del padre si alguno de sus
valores cumple el criterio de parada

23 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Caractersticas de la Poda Alfa-Beta


Omitir la expansin de nodos que por sus valores no pueden ser los mejores
(peores).

Interrumpe la bsqueda en algn nivel y aplica evaluaciones heursticas a las


hojas (profundidad limitada)

Si el valor del nodo MAX (alfa) es menor que el ms alto hasta este momento,
entonces omitir nodo.

SI el valor del nodo MIN (beta) es mayor que el nodo ms bajo hasta el
momento, entonces omitir nodo.

24 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Alfa-Beta permite bsqueda dos veces ms 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.

Alfa-Beta es una mejora del algoritmo Mini-Max que evita revisar porciones
dominadas del rbol, que no pueden proveer informacin til sobre la jugada
siguiente.

Alfa-Beta es un algoritmo de bsqueda en profundidad, rama y cota, que avanza


por el rbol en un orden ya fijado (p.ej., de izquierda a derecha) y va usando la
informacin de la valuacin de los nodos hoja para podar ramas dominadas que
no sirven para cambiar el valor Mini-Max del nodo inicio (la jugada inminente).

Estructuras de datos
Dos variables deben recordarse a lo largo de la bsqueda:

Alfa: Lmite inferior encontrado hasta ese momento.


Beta: Lmite superior. En los niveles maximizantes donde MAX debe optar,
slo Beta se usa para podar la bsqueda. En los niveles minimizantes
donde MIN debe optar, slo Alfa se usa para podar.
Alfa-Beta es el algoritmo ms usado para buscar en rboles de juegos.

25 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

ORIGEN DEL NOMBRE ALFA


Alfa es el nombre del mejor valor m, para MAX, encontrado hasta ahora en su ruta
de bsqueda en un nivel de MIN.

Si n es peor que Alfa, MAX lo evitar podar esa rama punteada


m y n son nodos de MIN

ALGORITMO DE BSQUEDA ALFA-BETA


Corresponde a la combinacin de tres aportes:

1. Ejecutar Mini-Max
2. Mantener recordados Alfa y Beta
3. Podar

26 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

27 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Comportamiento de los nuevos algoritmos de bsqueda en juegos

Alfa-Beta busca solamente 3/4b de los b movimientos posibles desde una


posicin dada de juego.
Esto significa que la profundidad de bsqueda se puede incrementar por un
factor = log b / log b ~= 4/3 por encima de una bsqueda exhaustiva
Minimax.
B es aqu el factor de ramificacin efectivo.
Si los sucesores se ordenan a la perfeccin (definido como que al usar Alfa-
Beta la bsqueda es mnima), Alfa-Beta examina 2bd/2 1 posiciones de
juego.

As tenemos:

EJEMPLO
Poda alfa-beta

Problema de la bsqueda minimax: el nmero de estados que tiene que


examinar es exponencial con el nmero de movimientos.
El exponente no se puede eliminar, pero se puede dividir en la mitad.

Es posible calcular la decisin minimax correcta sin mirar todos los nodos
en el rbol.

La poda alfa-beta permite eliminar partes grandes del rbol, sin influir en la
decisin final.

28 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

El valor de la raz y la decisin Mini-Max son independientes de los valores de las


hojas podadas.

La bsqueda Mini-Max es primero en profundidad: en cualquier momento slo se


considera los nodos a lo largo de un camino del rbol.

29 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Poda alfa-beta

Los dos parmetros alfa y beta describen los lmites sobre los valores que
aparecen a lo largo del camino:

= el valor de la mejor opcin (el ms alto) que se ha encontrado


hasta el momento en cualquier punto del camino, para MAX

= el valor de la mejor opcin (el ms bajo) que se ha encontrado


hasta el momento en cualquier punto del camino, para MIN

La bsqueda alfa-beta actualiza el valor de y segn se va recorriendo el


rbol y termina la recursin cuando encuentra un nodo peor que el actual
valor o correspondiente.

30 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

31 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

32 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

ALGORITMO MINI-MAX CON PODA -

El recorrido se inicia llamando a la funcin valorMax con =- y =+.


En la funcin valorMax es el valor que se actualiza.
En la funcin valorMin es el valor que se actualiza.

33 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

34 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

35 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

36 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

37 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

38 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

39 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

40 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

41 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Se puede podar I ya que es un nodo min y el valor de v (K) = 0 es < = 3

42 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

Podemos podar G pues es un nodo max y el valor de M(7) > = 5

43 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.
Ingeniera en Sistemas Administrativos Computarizados 1952

BIBLIOGRAFIA
https://code.google.com/p/intart/source/browse/trunk/juegos/base/_AgenteHeuri
stico.java?r=35

https://codigoia.wordpress.com/tag/alfa-beta/

http://itnuevolaredo.edu.mx/takeyas/Apuntes/Inteligencia%20Artificial/Apuntes/I
A/Alfa-Beta.pdf

http://jsbsan.blogspot.com/2011/01/inteligencia-artificial-algoritmos.html

http://www.efdeportes.com/efd109/los-juegos-cooperativos.htm

44 Grupo# 5 Tcnicas de IA para la solucin de problemas


Juegos Competitivos.

Vous aimerez peut-être aussi