Files
kubn-cfr/src/cfr/info_set.py
2025-11-28 17:19:59 +08:00

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