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