Beispiel #1
0
 def generateStates(self):
     '''
     Generate states of Agent Semi-automata
     '''
     for i in range(self.totalStates):
         agentPos = "".join(
             map(str, list(np.unravel_index(i, self.arenaDimensions))))
         userID = [self.agentName] + [agentPos]
         machineID = self.generateMachineID(userID)
         self.states[machineID] = fsmState(userID, machineID,
                                           self.arenaDimensions)
     return
 def insertDummyStates(self, agentStates=None, agentNames=None, numSuffixDigits=2):
     '''
     Inserts dummy states as place holders (not used in this implementation)
     '''
     if agentStates==None:   agentStates=self.agentStates
     if agentNames==None:   agentNames=self.agentNames
     for i in range(self.numAgents):
         dummyState = agentNames[i]+'o'*numSuffixDigits
         userID = [agentNames[i], None, None]
         machineID = self.agents[i].generateMachineID(userID)
         agentStates[i][dummyState]=fsmState(userID, machineID, 
                                           self.agentPropositionNames[i], self.arenaDimensions)
     return
 def insertDummyStates(self,
                       agentStates=None,
                       agentNames=None,
                       numSuffixDigits=2):
     '''
     Inserts dummy states as place holders (not used in this implementation)
     '''
     if agentStates == None: agentStates = self.agentStates
     if agentNames == None: agentNames = self.agentNames
     for i in range(self.numAgents):
         dummyState = agentNames[i] + 'o' * numSuffixDigits
         userID = [agentNames[i], None, None]
         machineID = self.agents[i].generateMachineID(userID)
         agentStates[i][dummyState] = fsmState(
             userID, machineID, self.agentPropositionNames[i],
             self.arenaDimensions)
     return
 def generateGameStates(self):
     '''
     Generate game states
     '''
     agentStateKeys = [ag.keys() for ag in self.agentStates]
     
     for agS in itertools.product(self.agentNames, *agentStateKeys):
         #Creating game state
         
         # Getting list of agent positions
         agentPos = []
         for i in agS[1:]:
             agentPos.extend(i.split('_'))
         
         # Getting agent whose move it is                    
         agentTurn = agS[0]
                 
         userID = agentPos + ['T',agentTurn]            
         machineID = self.generateMachineID(userID)
         self.gameStates[machineID]=fsmState(userID, machineID,
                                             self.arenaDimensions,
                                             isInitial=True)
     return
    def generateGameStates(self):
        '''
        Generate game states
        '''
        agentStateKeys = [ag.keys() for ag in self.agentStates]

        for agS in itertools.product(self.agentNames, *agentStateKeys):
            #Creating game state

            # Getting list of agent positions
            agentPos = []
            for i in agS[1:]:
                agentPos.extend(i.split('_'))

            # Getting agent whose move it is
            agentTurn = agS[0]

            userID = agentPos + ['T', agentTurn]
            machineID = self.generateMachineID(userID)
            self.gameStates[machineID] = fsmState(userID,
                                                  machineID,
                                                  self.arenaDimensions,
                                                  isInitial=True)
        return