Ejemplo n.º 1
0
class ControloAprendRef:
    def __init__(self):
        self.mecanismo_sarsa = MecanismoSarsa([(1, FRT), (0, ESQ), (0, DIR)])
        self.a = None
        self.s = None
        self.rmax = 100
        
    def processar(self, per):
        #GerarEstado
        sn = self.gerar_estado(per)
        #GerarAccao
        an = self.mecanismo_sarsa.seleccionar_accao(sn)
        if self.a is not None:
            r = self.gerar_reforco(per)
            self.mecanismo_sarsa.assimilar(self.s,self.a,r,sn,an)
        
        self.a = an
        self.s = sn
        return an
        
    def gerar_reforco(self, per):
        if(per.carga):
            return self.rmax
        elif(per.colisao):
            return -self.rmax
        else:
            return -0.1*self.rmax
            
    def gerar_estado(self, per):
        estado = tuple((per[dir_per].contacto, per[dir_per].obstaculo, per[dir_per].alvo) for dir_per in [ESQ,FRT,DIR])
        return estado
Ejemplo n.º 2
0
 def __init__(self):
     self.mecanismo_sarsa = MecanismoSarsa([(1, FRT), (0, ESQ), (0, DIR)])
     self.a = None
     self.s = None
     self.rmax = 100