def __init__(self,
                 actions,
                 rand_init=True,
                 name="Linear-Q",
                 alpha=0.001,
                 gamma=0.99,
                 epsilon=0.2,
                 explore="uniform",
                 feature=None,
                 anneal=True,
                 sarsa=False):
        # name = name + "-rbf" if rbf else name
        QLearningAgent.__init__(self,
                                actions=list(actions),
                                name=name,
                                alpha=alpha,
                                gamma=gamma,
                                epsilon=epsilon,
                                explore=explore,
                                anneal=anneal)

        self.sarsa = sarsa

        self.feature = feature  # function (state, action) -> features (numpy vector)

        self.num_features = self.feature.num_features()
        # Add a basis feature.
        self.rand_init = rand_init
        if rand_init:
            self.weights = np.random.random(self.num_features *
                                            len(self.actions))
        else:
            self.weights = np.zeros(self.num_features * len(self.actions))

        self.max_weight = 0.0
예제 #2
0
    def __init__(self,
                 actions,
                 num_features,
                 rand_init=True,
                 name="Linear-Q",
                 alpha=0.2,
                 gamma=0.99,
                 epsilon=0.2,
                 explore="uniform",
                 rbf=False,
                 anneal=True):
        name = name + "-rbf" if rbf else name
        QLearningAgent.__init__(self,
                                actions=list(actions),
                                name=name,
                                alpha=alpha,
                                gamma=gamma,
                                epsilon=epsilon,
                                explore=explore,
                                anneal=anneal)
        self.num_features = num_features
        self.rand_init = rand_init

        # Add a basis feature.
        if rand_init:
            self.weights = np.random.random(self.num_features *
                                            len(self.actions))
        else:
            self.weights = np.zeros(self.num_features * len(self.actions))

        self.rbf = rbf
예제 #3
0
 def __init__(self, actions, num_features, rand_init=True, name="Linear-Q", alpha=0.2, gamma=0.99, epsilon=0.2, explore="uniform", anneal=True):
     QLearningAgent.__init__(self, actions=list(actions), name=name, alpha=alpha, gamma=gamma, epsilon=epsilon, explore=explore, anneal=anneal)
     self.num_features = num_features
     self.rand_init = rand_init
     
     # Add a basis feature.
     if rand_init:
         self.weights = np.random.random(self.num_features*len(self.actions))
     else:
         self.weights = np.zeros(self.num_features*len(self.actions))