def __init__(self, game, Type="default"): self.game = game self.Type = Type Solver = None Solver = RegretSolver self.isetflag = [ -1 * np.ones(game.numIsets[0]), -1 * np.ones(game.numIsets[1]) ] self.solvers = [] self.solvers.append( list( map(lambda x: Solver(game.nactsOnIset[0][x]), range(game.numIsets[0])))) self.solvers.append( list( map(lambda x: Solver(game.nactsOnIset[1][x]), range(game.numIsets[1])))) self.stgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.stgy[0].append(np.ones(nact) / nact) else: self.stgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.stgy[1].append(np.ones(nact) / nact) else: self.stgy[1].append(np.ones(0)) self.outcome, self.reward = generateOutcome(game, self.stgy) self.nodestouched = 0 self.round = -1 self.sumstgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.sumstgy[0].append(np.ones(nact) / nact) else: self.sumstgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.sumstgy[1].append(np.ones(nact) / nact) else: self.sumstgy[1].append(np.ones(0)) self.sampledtrans1 = list( map(lambda _u: np.zeros(game.nactsOnHist[_u]), range(game.numHists))) self.sampledrews1 = list( map(lambda _u: np.zeros(2), range(game.numHists))) self.weight1 = np.zeros(game.numHists)
def __init__(self, game, Type="regretmatching"): self.game = game self.Type = Type Solver = None if Type == "regretmatching": Solver = RegretSolver else: Solver = RegretSolverPlus self.isetflag = [ -1 * np.ones(game.numIsets[0]), -1 * np.ones(game.numIsets[1]) ] self.solvers = [] self.solvers.append( list( map(lambda x: Solver(game.nactsOnIset[0][x]), range(game.numIsets[0])))) self.solvers.append( list( map(lambda x: Solver(game.nactsOnIset[1][x]), range(game.numIsets[1])))) self.stgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.stgy[0].append(np.ones(nact) / nact) else: self.stgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.stgy[1].append(np.ones(nact) / nact) else: self.stgy[1].append(np.ones(0)) self.outcome, self.reward = generateOutcome(game, self.stgy) self.nodestouched = 0 self.round = -1 self.sumstgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.sumstgy[0].append(np.ones(nact) / nact) else: self.sumstgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.sumstgy[1].append(np.ones(nact) / nact) else: self.sumstgy[1].append(np.ones(0))
def __init__(self, game): self.game = game self.trajs = [[], []] self.isetflag = [ -1 * np.ones(game.numIsets[0]), -1 * np.ones(game.numIsets[1]) ] self.stgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.stgy[0].append(np.ones(nact) / nact) else: self.stgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.stgy[1].append(np.ones(nact) / nact) else: self.stgy[1].append(np.ones(0)) self.outcome, self.reward = generateOutcome(game, self.stgy) self.nodestouched = 0 self.round = -1 self.sumstgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.sumstgy[0].append(np.ones(nact) / nact) else: self.sumstgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.sumstgy[1].append(np.ones(nact) / nact) else: self.sumstgy[1].append(np.ones(0)) self.Q = [[], []] for owner in range(2): for iset in range(game.numIsets[owner]): self.Q[owner].append(np.zeros(game.nactsOnIset[owner][iset]))
def __init__(self, game, Type="regretmatching", thres=0.0): print("initializing solver") self.thres = thres self.time = 0 self.game = game self.Type = Type Solver = None if Type == "regretmatching": Solver = RegretSolver else: solver = RegretSolverPlus self.cfvCache = [] self.cfvCache.append( list( map(lambda x: np.zeros(game.nactsOnHist[x]), range(game.numHists)))) self.cfvCache.append( list( map(lambda x: np.zeros(game.nactsOnHist[x]), range(game.numHists)))) self.probNotUpdated = [ np.zeros((game.numHists, 2)), np.zeros((game.numHists, 2)) ] self.probNotPassed = [ np.zeros((game.numHists, 2)), np.zeros((game.numHists, 2)) ] self.histflag = [ -1 * np.ones(game.numHists), -1 * np.ones(game.numHists) ] self.isetflag = [ -1 * np.ones(game.numIsets[0]), -1 * np.ones(game.numIsets[1]) ] self.reachp = [np.zeros(game.numIsets[0]), np.zeros(game.numIsets[1])] self.solvers = [] self.solvers.append( list( map(lambda x: RegretSolver(game.nactsOnIset[0][x]), range(game.numIsets[0])))) self.solvers.append( list( map(lambda x: RegretSolver(game.nactsOnIset[1][x]), range(game.numIsets[1])))) """ """ self.stgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.stgy[0].append(np.ones(nact) / nact) else: self.stgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.stgy[1].append(np.ones(nact) / nact) else: self.stgy[1].append(np.ones(0)) self.round = -1 self.nodestouched = 0 self.outcome, self.reward = generateOutcome(game, self.stgy) self.sumstgy = [[], []] for i, iset in enumerate(range(game.numIsets[0])): nact = game.nactsOnIset[0][iset] if game.playerOfIset[0][iset] == 0: self.sumstgy[0].append(np.ones(nact) / nact) else: self.sumstgy[0].append(np.ones(0)) for i, iset in enumerate(range(game.numIsets[1])): nact = game.nactsOnIset[1][iset] if game.playerOfIset[1][iset] == 1: self.sumstgy[1].append(np.ones(nact) / nact) else: self.sumstgy[1].append(np.ones(0))