Ejemplo n.º 1
0
    def createGame(self, arenaDimensions=[5,5], robotInit=[0,0], envInit=[1,1]):
        '''
        Creates turn based product
        '''

        robotList = []
        for i in xrange(self.numRobots):
            robotList.append( fsmIndiv(arenaDimensions, robotLabelFuction,
                                       agentName='R'+str(i),
                                       agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1],
                                                           ['oo',0,0],['ne',1,1],['nw',1,1],['se',1,1],['sw',1,1]], 
                                       drawTransitionGraph = False,
                                       grammarType = 'SP_2',
                                       agentType = 'KNOWN'))

        env = fsmIndiv(arenaDimensions, envLabelFuction, 
                        agentName='E0',
                       agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1],
                                           ['oo',0,0],['ne',1,1],['nw',1,1],['se',1,1],['sw',1,1]], 
                        drawTransitionGraph = False,
                        grammarType = 'SP_2',
                        agentType = 'UNKNOWN',
                        defaultAction = 'oo0')
    
        self.turnProduct = fsmTurnProduct([env]+robotList, arenaDimensions)
                
        self.gameStateLabels = {}
        for stateID in self.turnProduct.gameStates.keys(): 
            currLabel = self.turnProduct.generateStateLabels(stateID, self.agentsLabelInitList)
            self.gameStateLabels[stateID] = currLabel.propositionList

        return
Ejemplo n.º 2
0
 def initializeGame (self):
     '''Initialize game parameters and objects'''
     arenaDimensions = [4,4]
     
     # Creating robot agent semi-automata
     self.robot = fsmIndiv(arenaDimensions, robotLabelFuction,
                      agentName= 'R',
                      agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1],['oo',0,0]])
     
     # Creating env agent semi-automata
     self.env = fsmIndiv(arenaDimensions, envLabelFuction,
                      agentName='E',
                      agentAlphabetInput=[])
     
     # Generating turn-based product
     self.gameProduct = fsmTurnProduct([self.robot,self.env], arenaDimensions, 
                                       drawTransitionGraph=False, labelFunction=gameLabelFunction)
     
     # Specifying environment dynamics
     self.gameProduct.addAgentActions('E', ['oo0'])
     
     # Getting transition system parameters
     self.gameStates, self.gameAlphabet, self.gameTransitions, self.newTransitions = self.gameProduct.getFSA()
     
     # Getting labels of all states
     self.gameStateLabels = {}
     for stateID in self.gameProduct.gameStates.keys(): 
         self.gameStateLabels[stateID] = self.gameProduct.generateStateLabels(stateID).propositionList
     return
Ejemplo n.º 3
0
    def createGame(self,
                   arenaDimensions=[5, 5],
                   robotInit=[0, 0],
                   envInit=[1, 1]):
        '''
        Creates turn based product
        '''

        robotList = []
        for i in xrange(self.numRobots):
            robotList.append(
                fsmIndiv(arenaDimensions,
                         robotLabelFuction,
                         agentName='R' + str(i),
                         agentAlphabetInput=[['nn', 1, 1], ['ss', 1, 1],
                                             ['ee', 1, 1], ['ww', 1, 1],
                                             ['oo', 0, 0], ['ne', 1, 1],
                                             ['nw', 1, 1], ['se', 1, 1],
                                             ['sw', 1, 1]],
                         drawTransitionGraph=False,
                         grammarType='SP_2',
                         agentType='KNOWN'))

        env = fsmIndiv(arenaDimensions,
                       envLabelFuction,
                       agentName='E0',
                       agentAlphabetInput=[['nn', 1, 1], ['ss', 1, 1],
                                           ['ee', 1, 1], ['ww', 1, 1],
                                           ['oo', 0, 0], ['ne', 1, 1],
                                           ['nw', 1, 1], ['se', 1, 1],
                                           ['sw', 1, 1]],
                       drawTransitionGraph=False,
                       grammarType='SP_2',
                       agentType='UNKNOWN',
                       defaultAction='oo0')

        self.turnProduct = fsmTurnProduct([env] + robotList, arenaDimensions)

        self.gameStateLabels = {}
        for stateID in self.turnProduct.gameStates.keys():
            currLabel = self.turnProduct.generateStateLabels(
                stateID, self.agentsLabelInitList)
            self.gameStateLabels[stateID] = currLabel.propositionList

        return
Ejemplo n.º 4
0
# #     print newGameProduct.arenaDimensions
# 
#     # Tests for getTransitionAction(st1, st2)
#     st1 = 'E0_22_R0_00_R1_10_T_R0'
#     st2 = 'E0_22_R0_11_R1_10_T_R1'
#     print gameProduct.getTransitionAction(st1, st2)
if __name__=="__main__":    
    robotList = []
    arenaDimensions = [2,2]
    numRobots = 2
    
    for i in xrange(numRobots):
        robotList.append( fsmIndiv(arenaDimensions, cpsFsmLabelFunctions.robotLabelFuction,
                                   agentName='R'+str(i),
                                   agentAlphabetInput=[['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1],
                                                       ['oo',0,0],['ne',1,1],['nw',1,1],['se',1,1],['sw',1,1]], 
                                   drawTransitionGraph = False,
                                   grammarType = 'SP_2',
                                   agentType = 'KNOWN'))

    env = fsmIndiv(arenaDimensions, cpsFsmLabelFunctions.envLabelFuction, 
                    agentName='E0',
                    agentAlphabetInput=[['oo',0,0]],
                    drawTransitionGraph = False,
                    grammarType = 'SP_2',
                    agentType = 'UNKNOWN')

    turnProduct = fsmTurnProduct([env]+robotList, arenaDimensions)
    
    
    
Ejemplo n.º 5
0
# startTime = time.clock()

# Create turn-based product. Normally, this will be output from the GUI.
arenaDimensions = [4,4] #Grid dimensions (x-dir,y-dir) or (col, row)
numRobots = 2

robotLabelInit = {}
robotLabelInit['condLabels'] = {}
robotLabelInit['condLabels']['p1'] = [[0,0],[3,3]]
robotLabelInit['condLabels']['p2'] = [[3,0],[0,3]]  

robotList = []
for i in xrange(numRobots):
    robotList.append( fsmIndiv(arenaDimensions, robotLabelFuction,
                               agentName= 'R'+str(i),
                               agentAlphabetInput=[['oo',0,0],['nn',1,1],['ss',1,1],['ee',1,1],['ww',1,1]]))

for i in xrange(numRobots):
    for key in robotList[i].states.keys():
        env = fsmIndiv(arenaDimensions, envLabelFuction,
                 agentName='E',
                 agentAlphabetInput=[['oo',0,0]])

gameProduct = fsmTurnProduct([env]+robotList, arenaDimensions, drawTransitionGraph=False)
gameStates, gameAlphabet, gameTransitions, newTransitions = gameProduct.getFSA()

p1Set = set(['00','33'])
p2Set = set(['30','03'])

gameStateLabels = {}
Ejemplo n.º 6
0
# Create turn-based product. Normally, this will be output from the GUI.
arenaDimensions = [4, 4]  #Grid dimensions (x-dir,y-dir) or (col, row)
numRobots = 2

robotLabelInit = {}
robotLabelInit['condLabels'] = {}
robotLabelInit['condLabels']['p1'] = [[0, 0], [3, 3]]
robotLabelInit['condLabels']['p2'] = [[3, 0], [0, 3]]

robotList = []
for i in xrange(numRobots):
    robotList.append(
        fsmIndiv(arenaDimensions,
                 robotLabelFuction,
                 agentName='R' + str(i),
                 agentAlphabetInput=[['oo', 0, 0], ['nn', 1, 1], ['ss', 1, 1],
                                     ['ee', 1, 1], ['ww', 1, 1]]))

for i in xrange(numRobots):
    for key in robotList[i].states.keys():
        env = fsmIndiv(arenaDimensions,
                       envLabelFuction,
                       agentName='E',
                       agentAlphabetInput=[['oo', 0, 0]])

gameProduct = fsmTurnProduct([env] + robotList,
                             arenaDimensions,
                             drawTransitionGraph=False)
gameStates, gameAlphabet, gameTransitions, newTransitions = gameProduct.getFSA(
)
Ejemplo n.º 7
0
#     st1 = 'E0_22_R0_00_R1_10_T_R0'
#     st2 = 'E0_22_R0_11_R1_10_T_R1'
#     print gameProduct.getTransitionAction(st1, st2)
if __name__ == "__main__":
    robotList = []
    arenaDimensions = [2, 2]
    numRobots = 2

    for i in xrange(numRobots):
        robotList.append(
            fsmIndiv(arenaDimensions,
                     cpsFsmLabelFunctions.robotLabelFuction,
                     agentName='R' + str(i),
                     agentAlphabetInput=[['nn', 1, 1], ['ss', 1, 1],
                                         ['ee', 1, 1], ['ww', 1, 1],
                                         ['oo', 0, 0], ['ne', 1, 1],
                                         ['nw', 1, 1], ['se', 1, 1],
                                         ['sw', 1, 1]],
                     drawTransitionGraph=False,
                     grammarType='SP_2',
                     agentType='KNOWN'))

    env = fsmIndiv(arenaDimensions,
                   cpsFsmLabelFunctions.envLabelFuction,
                   agentName='E0',
                   agentAlphabetInput=[['oo', 0, 0]],
                   drawTransitionGraph=False,
                   grammarType='SP_2',
                   agentType='UNKNOWN')

    turnProduct = fsmTurnProduct([env] + robotList, arenaDimensions)