LydiaSyft
Transducer.h
1 #ifndef TRANSDUCER_H
2 #define TRANSDUCER_H
3 
4 #include <memory>
5 #include <unordered_map>
6 #include <vector>
7 
8 #include <cuddObj.hh>
9 
10 #include "Player.h"
11 #include "VarMgr.h"
12 
13 namespace Syft {
14 
20 class Transducer {
21  private:
22 
23  const std::shared_ptr<VarMgr>& var_mgr_;
24  const std::vector<int>& initial_vector_;
25  const std::unordered_map<int, CUDD::BDD>& output_function_;
26  const std::vector<CUDD::BDD>& transition_function_;
27  const Player starting_player_;
28  const Player protagonist_player_;
29 
30  public:
31 
32  Transducer(const std::shared_ptr<VarMgr>& var_mgr,
33  const std::vector<int>& initial_vector,
34  const std::unordered_map<int, CUDD::BDD>& output_function,
35  const std::vector<CUDD::BDD>& transition_function,
36  Player starting_player,
37  Player protagonist_player = Player::Agent);
38 
42  void dump_dot(const std::string& filename) const;
43 };
44 
45 }
46 
47 #endif // TRANSDUCER_H
A symbolic tranducer representing a winning strategy for a game.
Definition: Transducer.h:20
void dump_dot(const std::string &filename) const
Saves the output function of the transducer in a .dot file.
Definition: Transducer.cpp:21