Maximum Acyclic Subgraph - Multiple Sequence Alignment
MaximumAcyclicSubgraph
Agent.h
1 #ifndef AGENT_H
2 #define AGENT_H
3 
4 #include "../../alignment/State.h"
5 #include <stdlib.h>
6 #include <random>
7 #include <chrono>
8 #include <utility>
9 #include <iostream>
10 #include "../pytorch/Policy.h"
11 #include <map>
12 #include "../../alignment/Graph.h"
13 #include "Episode.h"
14 #include <memory>
15 
16 using std::vector;
17 
20 class Agent {
21  public:
22 
24  Policy lpolicy;
25 
26  Agent();
27  ~Agent(){};
28 
33  Agent(Graph& g) : s0(g.getEdges()), lpolicy(g.getEdges().size()) {};
34 
40 
46  std::pair <state*, unsigned int> executePolicy(state* s, Policy& p);
47 };
48 #endif
Policy lpolicy
Pointer to the Policy that Agent currently uses.
Definition: Agent.h:24
Definition: Graph.h:17
This Agent class selects edges according to a policy.
Definition: Agent.h:20
Agent(Graph &g)
Default destructor.
Definition: Agent.h:33
state s0
The initial state where every episode starts.
Definition: Agent.h:23
This state class encapsulates the current game state. It can output possible actions and select them...
Definition: State.h:16
Agent()
Default constructor.
Definition: Agent.cc:4
Definition: Episode.h:8
Episode getEpisode()
Definition: Agent.cc:6
std::pair< state *, unsigned int > executePolicy(state *s, Policy &p)
Definition: Agent.cc:46