def politica(self, U): A, S = self._modelo.A, self._modelo.S PI = dict() for s in S(): a_max = argmax(A(s), lambda a: self.util_accao(s, a, U)) PI[s] = a_max return PI
def _politica(self, U): S, A = self._modelo.S, self._modelo.A PI = {} for s in S(): PI[s] = argmax(A(s), lambda a: self._utilaccao(s, a, U)) print(PI) return PI
def politica(self, modelo, U): #argMax e da psa e recebe o dominio de valores e a funcao, e pega em cada elemento do dominio e activa a funcao com esse elemtno, #calcular os valores todos e retornar o elemento que produziu os valores maiores S, A = modelo.S, modelo.A pol = {} for s in S(): pol[s] = argmax(A(s), lambda a: self._util_accao(modelo, s, a, U)) return pol
def seleccionar_opcoes(self, opcoes): # ver as opcoes avaliar os planos # escolher a utilidade, que pode ser definida como constante ou calculada # sorted( lambda utilidade) if opcoes: criterio_avaliacao = lambda opcao: opcao.obter_utilidade() opcao_sel = argmax(opcoes, criterio_avaliacao) self.intencoes.append(opcao_sel)
def max_accao(self, s): shuffle(self.accoes) return argmax(self.accoes, lambda a:self.qval(s,a))
def _max_accao(self, s): return argmax(self._accoes, lambda a : self._mem_aprend[(s,a)])
def maxtrans(self, estado, modelo, V): trans = modelo.transicoes(estado) a, s = argmax( trans , lambda (a,s): V.get(s, 0)) return a, s
def max_accao(self, s): # baralha a lista para garantir que nao corremos sempre a mesma lista shuffle( self.accoes) return argmax( self.accoes, lambda a: self.qval(s,a) )
def max_accao(self, s): # selecionar a accao com melhor recompensa shuffle(self._accoes) return argmax(self._accoes, lambda a: self._mem_aprend[(s, a)])