def deriveConstraints(game):
    
    constraints = []
    
    for p in range(2): # player
        
        for s in range(len(game.players[p].strategies)):
            for alt_s in range(len(game.players[p].strategies)):
                
                if s == alt_s:
                    continue
                
                constraint = [None for i in range(len(game.contingencies))]
                
                for t in range(len(game.players[not p].strategies)):
                    
                    if p == 0:
                        index = CorrEq.contingencyToIndex((s,t),len(game.players[1].strategies))
                        assert(constraint[index] == None)
                        constraint[index] = float(game._get_contingency(s,t)[p]) - float(game._get_contingency(alt_s,t)[p])

                    else:
                        index = CorrEq.contingencyToIndex((t,s),len(game.players[1].strategies))
                        assert(constraint[index] == None)
                        constraint[index] = float(game._get_contingency(t,s)[p]) - float(game._get_contingency(t,alt_s)[p])
                
                constraint = [0 if i==None else i for i in constraint]
                constraints.append(constraint)
                
    return constraints
Exemplo n.º 2
0
def deriveConstraints(game):

    constraints = []

    for p in range(2):  # player

        for s in range(len(game.players[p].strategies)):
            for alt_s in range(len(game.players[p].strategies)):

                if s == alt_s:
                    continue

                constraint = [None for i in range(len(game.contingencies))]

                for t in range(len(game.players[not p].strategies)):

                    if p == 0:
                        index = CorrEq.contingencyToIndex(
                            (s, t), len(game.players[1].strategies))
                        assert (constraint[index] == None)
                        constraint[index] = float(
                            game._get_contingency(s, t)[p]) - float(
                                game._get_contingency(alt_s, t)[p])

                    else:
                        index = CorrEq.contingencyToIndex(
                            (t, s), len(game.players[1].strategies))
                        assert (constraint[index] == None)
                        constraint[index] = float(
                            game._get_contingency(t, s)[p]) - float(
                                game._get_contingency(t, alt_s)[p])

                constraint = [0 if i == None else i for i in constraint]
                constraints.append(constraint)

    return constraints