Exemplo n.º 1
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if jailPosition == ghostPosition and noisyDistance == None:
         return 1
     if jailPosition == ghostPosition or noisyDistance == None:
         return 0
     return busters.getObservationProbability(noisyDistance, manhattanDistance(pacmanPosition,ghostPosition))
Exemplo n.º 2
0
 def update(self, observation, gameState):
     noisyDistance = observation
     pacmanPosition = gameState.getPacmanPosition()
     allPossible = util.Counter()
     for p in self.legalPositions:
         trueDistance = util.manhattanDistance(p, pacmanPosition)
         if noisyDistance != None and busters.getObservationProbability(noisyDistance, trueDistance) > 0:
             allPossible[p] = 1.0
     allPossible.normalize()
     self.beliefs = allPossible
Exemplo n.º 3
0
 def observeUpdate(self, observation, gameState):
     noisyDistance = observation
     pacmanPosition = gameState.getPacmanPosition()
     allPossible = util.Counter()
     for p in self.legalPositions:
         trueDistance = util.manhattanDistance(p, pacmanPosition)
         if noisyDistance != None and \
                 busters.getObservationProbability(noisyDistance, trueDistance) > 0:
             allPossible[p] = 1.0
     allPossible.normalize()
     self.beliefs = allPossible
Exemplo n.º 4
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if ghostPosition == jailPosition:
         return 1 if noisyDistance == None else 0
     else:
         if noisyDistance == None:
             return 0
         trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
         return busters.getObservationProbability(noisyDistance, trueDistance)
Exemplo n.º 5
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if noisyDistance == None:
         return ghostPosition == jailPosition
     if noisyDistance != None and ghostPosition == jailPosition:
         return 0
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     return busters.getObservationProbability(noisyDistance, trueDistance)
Exemplo n.º 6
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if ghostPosition == jailPosition:
         return 1.0 if noisyDistance == None else 0.0
     elif noisyDistance == None:
         return 1.0 if ghostPosition == jailPosition else 0.0
     else:
         return busters.getObservationProbability(noisyDistance, \
                         manhattanDistance(pacmanPosition, ghostPosition))
Exemplo n.º 7
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition == jailPosition:
         return 1.0 if noisyDistance is None else 0.0
     elif noisyDistance is None:
         return 0.0
     else:
         trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
         return busters.getObservationProbability(noisyDistance, trueDistance)
Exemplo n.º 8
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     # print(noisyDistance, pacmanPosition, ghostPosition, jailPosition)
     if noisyDistance == None:
         return int(ghostPosition == jailPosition)
     if ghostPosition == jailPosition:
         return int(noisyDistance == None)
     trueDistance = manhattanDistance(ghostPosition, pacmanPosition)
     return busters.getObservationProbability(noisyDistance, trueDistance)
Exemplo n.º 9
0
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                           jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """
        if noisyDistance is None:
            return ghostPosition == jailPosition
        if ghostPosition == jailPosition:
            return 0

        return busters.getObservationProbability(
            noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
Exemplo n.º 10
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     #raiseNotDefined()
     if (noisyDistance==None and ghostPosition==jailPosition):
         return 1.0
     elif (noisyDistance==None or ghostPosition==jailPosition):
         return 0.0
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     return busters.getObservationProbability(noisyDistance, trueDistance)
Exemplo n.º 11
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition == jailPosition and noisyDistance is None:
         return 1
     elif noisyDistance != None and ghostPosition == jailPosition:
         return 0
     elif noisyDistance != None and ghostPosition != jailPosition:
         return busters.getObservationProbability(noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
     return 0
Exemplo n.º 12
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if jailPosition == ghostPosition:
         if noisyDistance != None:
             return 0
         else:
             return 1
     if noisyDistance == None:
         return 0
     return busters.getObservationProbability(noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
Exemplo n.º 13
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if noisyDistance == None and jailPosition == ghostPosition:
         return 1.0
     elif noisyDistance == None and jailPosition != ghostPosition:
         return 0.0
     elif noisyDistance != None and jailPosition == ghostPosition:
         return 0.0
     return busters.getObservationProbability(
         noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
Exemplo n.º 14
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     # raiseNotDefined()
     if ghostPosition == jailPosition and noisyDistance == None:
         return 1.0
     if ghostPosition == jailPosition or noisyDistance == None:
         return 0.0
     return busters.getObservationProbability(
         noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
Exemplo n.º 15
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     truedist = manhattanDistance(pacmanPosition, ghostPosition)
     if noisyDistance == None:
         if ghostPosition == jailPosition:
             return 1
         return 0
     if ghostPosition == jailPosition:
         return 0
     probreading = busters.getObservationProbability(noisyDistance, truedist)
     return probreading
Exemplo n.º 16
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if noisyDistance == None:
         return ghostPosition == jailPosition
     if ghostPosition == jailPosition:
         return 0
     trueDist = manhattanDistance(pacmanPosition, ghostPosition)
     pNoisyGivenTrueDist = busters.getObservationProbability(
         noisyDistance, trueDist)
     return pNoisyGivenTrueDist
Exemplo n.º 17
0
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """
        if (ghostPosition == jailPosition and noisyDistance == None):
            return 1
        elif (ghostPosition == jailPosition and noisyDistance != None):
            return 0
        if (noisyDistance == None):
            return 0

        trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
        return busters.getObservationProbability(noisyDistance, trueDistance)
Exemplo n.º 18
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if noisyDistance is None:
         return float(ghostPosition == jailPosition)
     if ghostPosition == jailPosition:
         return float(noisyDistance is None)
     estimatedDistance = manhattanDistance(pacmanPosition, ghostPosition)
     return busters.getObservationProbability(noisyDistance,
                                              estimatedDistance)
Exemplo n.º 19
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     if noisyDistance is not None:
         if ghostPosition == jailPosition:
             return 0
         return busters.getObservationProbability(noisyDistance, trueDistance)
     else:
         if ghostPosition == jailPosition:
             return 1
         return 0
Exemplo n.º 20
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if ghostPosition == jailPosition and noisyDistance == None:
         return 1
     if ghostPosition == jailPosition and noisyDistance != None:
         return 0
     if noisyDistance == None and ghostPosition != jailPosition:
         return 0
     mdist = manhattanDistance(pacmanPosition, ghostPosition)
     return busters.getObservationProbability(noisyDistance, mdist)
Exemplo n.º 21
0
 def getObservationProb(self, noisyAction, oldGhostPos, newGhostPos,
                        jailPosition):
     """
     Return the probability P(noisyAction | oldGhostPos, newGhostPos).
     """
     "*** YOUR CODE HERE ***"
     # print(noisyAction)
     # print(jailPosition)
     # print(oldGhostPos)
     # print(newGhostPos)
     return busters.getObservationProbability(noisyAction, oldGhostPos,
                                              newGhostPos)
     raiseNotDefined()
Exemplo n.º 22
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition != jailPosition and noisyDistance == None:
         return 0
     if ghostPosition == jailPosition and noisyDistance != None:
         return 0
     if ghostPosition == jailPosition and noisyDistance == None:
         return 1
     d = manhattanDistance(pacmanPosition, ghostPosition)
     prob = busters.getObservationProbability(noisyDistance, d)        
     return prob
Exemplo n.º 23
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition != jailPosition and noisyDistance == None:
         return 0
     if ghostPosition == jailPosition and noisyDistance != None:
         return 0
     if ghostPosition == jailPosition and noisyDistance == None:
         return 1
     d = manhattanDistance(pacmanPosition, ghostPosition)
     prob = busters.getObservationProbability(noisyDistance, d)        
     return prob
Exemplo n.º 24
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if noisyDistance == None:
         if ghostPosition == jailPosition:
             return 1
         return 0
     oPGD = busters.getObservationProbability(
         noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
     if oPGD == None or ghostPosition == jailPosition:
         return 0
     return oPGD
Exemplo n.º 25
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if noisyDistance == None:
         if ghostPosition == jailPosition:
             return 1 # P(none | g = j)
         else: 
             return 0 # P(none | g != j)
     elif noisyDistance != None:
         if ghostPosition == jailPosition:
             return 0 #P(!none | g = j)
         else:
             return busters.getObservationProbability(noisyDistance, manhattanDistance(ghostPosition, pacmanPosition))
Exemplo n.º 26
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     # "*** YOUR CODE HERE ***"
     if jailPosition == ghostPosition:
         if noisyDistance is None:
             return 1
         return 0
     elif noisyDistance is None:
         return 0
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     prob = busters.getObservationProbability(noisyDistance, trueDistance)
     return prob
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if (ghostPosition == jailPosition) & (noisyDistance == None): return 1
     if (ghostPosition == jailPosition) & (type(noisyDistance) != None):
         return 0
     if (ghostPosition != jailPosition) & (noisyDistance == None): return 0
     if (ghostPosition != jailPosition) & (type(noisyDistance) != None):
         trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
         return busters.getObservationProbability(noisyDistance,
                                                  trueDistance)
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition == jailPosition:
         if noisyDistance == None:
             return 1.0
         else:
             return 0.0
     if noisyDistance == None and ghostPosition != jailPosition:
         return 0.0
     prob_noisy_given_true = busters.getObservationProbability(noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
     return prob_noisy_given_true
Exemplo n.º 29
0
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """
        "*** YOUR CODE HERE ***"

        if noisyDistance == None and ghostPosition == jailPosition:
            return 1
        elif noisyDistance == None and ghostPosition != jailPosition:
            return 0
        elif noisyDistance != None and ghostPosition == jailPosition:
            return 0
        else:
            return busters.getObservationProbability(noisyDistance, manhattanDistance(pacmanPosition, ghostPosition))
Exemplo n.º 30
0
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """        
        if (noisyDistance == None):
            if (ghostPosition == jailPosition):
                return 1.0
            return 0.0
        else:
            if (ghostPosition == jailPosition):
                return 0.0

        trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
        return busters.getObservationProbability(noisyDistance, trueDistance)
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition == jailPosition:
         if noisyDistance == None:
             return 1.0
         else:
             return 0.0
     if noisyDistance == None:
         return 0.0
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     return busters.getObservationProbability(noisyDistance, trueDistance)        
Exemplo n.º 32
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if noisyDistance == None and jailPosition == ghostPosition:
         return 1.0
     if noisyDistance == None or ghostPosition == jailPosition:
         return 0.0
     trueDistance = int(manhattanDistance(ghostPosition, pacmanPosition))
     p = busters.getObservationProbability(noisyDistance, trueDistance)
     return p
     raiseNotDefined()
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """
        "*** YOUR CODE HERE ***"
        # raiseNotDefined()

        if ghostPosition == jailPosition:
            return 1 if noisyDistance == None else 0
        if noisyDistance == None:
            return 0

        distance = util.manhattanDistance(ghostPosition, pacmanPosition)
        return busters.getObservationProbability(noisyDistance, distance)
Exemplo n.º 34
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     truedist = manhattanDistance(pacmanPosition, ghostPosition)
     if noisyDistance == None:
         if ghostPosition != jailPosition:
             return 0
         return 1
     else:
         if ghostPosition == jailPosition:
             return 0
         return busters.getObservationProbability(noisyDistance, truedist)
Exemplo n.º 35
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition == jailPosition:
         return 1
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     # print "observation probability: "
     distSensor = busters.getObservationProbability(noisyDistance,
                                                    trueDistance)
     if distSensor == None:
         return 1
     return distSensor
Exemplo n.º 36
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if noisyDistance == None:  # distense sensor
         if ghostPosition == jailPosition:
             return 1
         else:
             return 0
     elif ghostPosition == jailPosition:
         return 0
     trueDistance = manhattanDistance(pacmanPosition, ghostPosition)
     observationProb = busters.getObservationProbability(noisyDistance, trueDistance)
     return observationProb
Exemplo n.º 37
0
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                           jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """
        # need to explicity check None because 0 is falsy
        if noisyDistance == None and ghostPosition == jailPosition:
            return 1
        elif noisyDistance == None and ghostPosition != jailPosition:
            return 0
        elif noisyDistance != None and ghostPosition == jailPosition:
            return 0

        manDist = manhattanDistance(pacmanPosition, ghostPosition)
        return busters.getObservationProbability(noisyDistance, manDist)
Exemplo n.º 38
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     "*** YOUR CODE HERE ***"
     if ghostPosition == jailPosition:
         if noisyDistance == None:
             return 1
         else:
             return 0
     if noisyDistance == None:
         return 0
     fullDistance = manhattanDistance(pacmanPosition, ghostPosition)
     probNoisyifTrue = busters.getObservationProbability(noisyDistance, fullDistance)
     return probNoisyifTrue
Exemplo n.º 39
0
 def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition,
                        jailPosition):
     """
     Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
     """
     if noisyDistance is None:
         if ghostPosition == jailPosition:
             return 1.0
         return 0.0
     elif ghostPosition == jailPosition:
         return 0.0
     distance = manhattanDistance(pacmanPosition, ghostPosition)
     probability = busters.getObservationProbability(
         noisyDistance, distance)
     return probability
Exemplo n.º 40
0
    def getObservationProb(self, noisyDistance, pacmanPosition, ghostPosition, jailPosition):
        """
        Return the probability P(noisyDistance | pacmanPosition, ghostPosition).
        """
        "*** YOUR CODE HERE ***"

        #special cases handling: if ghost in jail, noisydistance is None
        if ghostPosition == jailPosition:
            if noisyDistance == None:
                return 1
            else:
                return 0
        else:
            if noisyDistance == None:
                return 0
            else:
                #P(noisyDistance | pacmanPosition, ghostPosition) = #P(noisyDistance | trueDistance)
                trueDistance = manhattanDistance(ghostPosition, pacmanPosition)
                return busters.getObservationProbability(noisyDistance, trueDistance)