44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
class InfoSet:
|
|
def __init__(self, act_cnt=2): # 0-1
|
|
self.act_cnt = act_cnt
|
|
|
|
self.regret_sum = [0.0] * act_cnt
|
|
self.strat = [0.0] * act_cnt
|
|
self.strat_sum = [0.0] * act_cnt
|
|
|
|
def get_strat(self, wgt):
|
|
|
|
normal = 0.0
|
|
for i in range(self.act_cnt):
|
|
if self.regret_sum[i] > 0:
|
|
self.strat[i] = self.regret_sum[i]
|
|
else:
|
|
self.strat[i] = 0.0
|
|
normal += self.strat[i]
|
|
|
|
if normal > 0:
|
|
for i in range(self.act_cnt):
|
|
self.strat[i] /= normal
|
|
else:
|
|
##
|
|
return
|
|
|
|
for i in range(self.act_cnt):
|
|
self.strat_sum[i] += wgt * self.strat[i]
|
|
|
|
return self.strat
|
|
|
|
def get_avg_strat(self):
|
|
avg_strat = [0.0] * self.act_cnt
|
|
normal = sum(self.strat_sum)
|
|
|
|
if normal > 0:
|
|
for i in range(self.act_cnt):
|
|
avg_strat[i] = self.strat_sum[i] / normal
|
|
else:
|
|
##
|
|
return
|
|
|
|
|
|
return avg_strat
|
|
|