Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mancala
Kenia Salazar Cruz
if self.heu==0:
if board.hasWon( self.num ):
return 100
elif board.hasWon( self.opp ):
return 0
else:
return 50
def heuri_1(self,board):
return board.getScoreCups(self.num)-board.getScoreCups(self.opp)
def heuri_2(self,board):
hace1=25-board.getScoreCups(self.num)
hace2=25-board.getScoreCups(self.opp)
if hace1<hace2:
return hace1
if hace2<hace1:
return hace2
else:
return 0
Para probar las funciones se ejecut 100 veces el programa con MINIMAX vs
RANDOM con valores de profundidad de 2 a 8. Los resultados se muestran en las
siguientes grficas.
1.5
Ganador
Columna B
1
0.5
0
0 20 40 60 80 100 120
Muestras
Se observa que el jugador 1 slo gan 7 veces, una vez fue empate y 92 veces
gan el jugador 2.
Grfica ply =3 Heurstica1 Grfica ply =4 Heurstica1
2.5 2.5
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Con ply=3, se observa que el jugador 1 slo gan 5 veces, una vez fue empate y
94 veces gan el jugador 2.
Con ply=4, se observa que el jugador 1 slo gan 4 veces y 96 veces gan el
jugador 2.
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Con ply=5, se observa que el jugador 1 slo gan 2 veces, empataron 2 veces y
96 veces gan el jugador 2.
Con ply=6, se observa que el jugador 1 slo gan una vez y 99 veces gan el
jugador 2.
Grfica ply =7 Heurstica1 Grfica ply =8 Heurstica1
2.5 2.5
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Con ply=7, se observa que el jugador 1 slo gan una vez, empataron una vez y
98 veces gan el jugador 2.
Con ply=8, se observa que empataron una vez y 99 veces gan el jugador 2.
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Ganador 1.5
0.5
0
0 20 40 60 80 100 120
Muestras
Para realizar la funcin de Alfa Beta Poda, se copiaron las funciones de MINIMAX y
slo se le agreg la linea de comparacin entre alfa y beta. Alfa >= beta, es la
condicin que se debe cumplir.
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Grfica ply =4 Alfa-Beta Poda, Heurstica 1 Grfica ply =5 Alfa-Beta Poda, Heurstica 1
2.5 2.5
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
2
1.5
Ganador
1
0.5
0
0 20 40 60 80 100 120
Muestras
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Grfica ply =4 Alfa-Beta Poda, Heurstica 2 Grfica ply =5 Alfa-Beta Poda, Heurstica 2
2.5 2.5
2 2
1.5 1.5
Ganador
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
Ganador
1 1
0.5 0.5
0 0
0 20 40 60 80 100 120 0 20 40 60 80 100 120
Muestras Muestras
2
1.5
Ganador
1
0.5
0
0 20 40 60 80 100 120
Muestras
Por lo tanto con la heurstica 2, utilizando alfa-beta poda, se dice que la heurstica
2 no es eficiente. Adems, ALFA-BETA Poda es mucho ms eficiente, pues se
ejecuta en un tiempo de casi la mitad que si no se implementara.