def calcularProbabilidade(self): q = 1 for i in range(len(self.z)): #print d, 'A' #z, zReal = self.dados[i] #x, y, theta nao precisa p = (Parametros.ZHIT) * funcoesProbabilidade.pHit(self.z[i], self.zReal[i]) + \ (Parametros.ZSHORT) * funcoesProbabilidade.pShort(self.z[i], self.zReal[i]) + \ (Parametros.ZMAX) * funcoesProbabilidade.pMax(self.z[i]) + \ (Parametros.ZRAND) * funcoesProbabilidade.pRand(self.z[i]) #print p q *= p return q
def aprenderParametrosIntrinsicos(self): eHit = [] eShort = [] eMax = [] eRand = [] Z = [] ZReal = [] Zaux = 0 for i,d in enumerate(self.dados): x, y, theta, z = d zReal = self.rayCasting(x,y,theta) Z[i] = z ZReal[i] = zReal '''acredito que esteja certo''' Zaux += z**2 phit = funcoesProbabilidade.pHit(z, zReal, self.desvioHit, self.alcanceMax) pshort = funcoesProbabilidade.pShort(z, zReal, self.lambdaShort) pmax = funcoesProbabilidade.pMax(z, self.alcanceMax) prand = funcoesProbabilidade.pRand(z, self.alcanceMax) n = (phit + pshort + pmax + prand)**-1 eHit[i] = n*phit eShort[i] = n*pshort eMax[i] = n*pmax eRand[i] = n*prand aux = sqrt(Zaux)**-1 # Verificar isso self.zHit = aux * sum(eHit) self.zShort = aux * sum(eShort) self.zMax = aux * sum(eMax) self.zRand = aux * sum(eRand) self.novoDesvioHit = sqrt(1/(sum(eHit))*sum((np.array(eHit)*(np.array(Z) - np.array(ZReal))**2))) self.novoLambdaShort = sum(eShort)/(sum(np.array(eShort)*np.array(Z))) self.saveParametros()
def calcularProbabilidade(self, Z, zReal): prob = (Parametros.ZHIT) * funcoesProbabilidade.pHit(Z, zReal) + \ (Parametros.ZSHORT) * funcoesProbabilidade.pShort(Z, zReal) + \ (Parametros.ZMAX) * funcoesProbabilidade.pMax(Z) + \ (Parametros.ZRAND) * funcoesProbabilidade.pRand(Z) return prob