My Project
move_probability/featureSet.h
Go to the documentation of this file.
1 /* featureSet.h
2  */
3 #ifndef OSL_MOVE_PROBABILITY_FEATURESET_H
4 #define OSL_MOVE_PROBABILITY_FEATURESET_H
5 
7 #include "osl/numEffectState.h"
9 #include <boost/ptr_container/ptr_vector.hpp>
10 #include <boost/scoped_array.hpp>
11 #include <vector>
12 
13 namespace osl
14 {
15  namespace move_probability
16  {
17  class Feature;
18  typedef std::pair<double,Move> WeightedMove;
20 
21  class FeatureSet
22  {
23  boost::ptr_vector<Feature> features;
24  std::vector<int> offsets, light_features;
25  protected:
26  FeatureSet();
27  public:
28  ~FeatureSet();
29  void pushBack(Feature *, bool light=false);
30  void addFinished();
31  int dimension() const { return offsets.back(); }
32  public:
33  double matchExp(const StateInfo&, Move, const double *weights) const;
34  double matchNoExp(const StateInfo&, Move, const double *weights) const;
35  void generateLogProb(const StateInfo& state,
36  MoveLogProbVector& out, const double *weights) const;
37  double matchLight(const StateInfo&, Move, const double *weights) const;
38 
39  bool load(const char *base_filename, double *weights) const;
40  bool load_binary(const char *base_filename, double *weights) const;
41  void showSummary(const double *weights) const;
42  void analyze(const StateInfo& state, Move move, const double *weights) const;
43  // for fine control
44  double generateRating(const StateInfo& state,
45  WeightedMoveVector& out, const double *weights) const;
46  static void ratingToLogProb(const WeightedMoveVector& rating,
47  double sum, MoveLogProbVector& out);
48  };
49 
51  {
52  static boost::scoped_array<double> weights, tactical_weights;
54  public:
57 
58  static const StandardFeatureSet& instance(bool verbose=false);
59  static bool healthCheck();
60  void generateLogProb(const StateInfo& state, MoveLogProbVector& out) const;
61  void generateLogProb2(const StateInfo& state, MoveLogProbVector& out) const;
62  void generateLogProb(const StateInfo& state, int limit, MoveLogProbVector& out, bool in_pv) const;
63  int logProbTakeBack(const StateInfo& state, Move target) const;
64  int logProbSeePlus(const StateInfo& state, Move target) const;
65  double matchLight(const StateInfo&, Move) const;
66  double matchExp(const StateInfo&, Move) const;
67  double matchNoExp(const StateInfo&, Move) const;
68  bool setUp(bool verbose=false);
69  bool ok() const { return initialized; }
70  private:
71  int tacticalLogProb(int offset, double sum) const;
72  };
73  }
74 }
75 #endif /* OSL_MOVE_PROBABILITY_FEATURESET_H */
76 // ;;; Local Variables:
77 // ;;; mode:c++
78 // ;;; c-basic-offset:2
79 // ;;; End:
osl::move_probability::FeatureSet::matchNoExp
double matchNoExp(const StateInfo &, Move, const double *weights) const
Definition: featureSet_.cc:50
osl::move_probability::StandardFeatureSet::instance
static const StandardFeatureSet & instance(bool verbose=false)
Definition: featureSet_.cc:278
osl::move_probability::StandardFeatureSet::StandardFeatureSet
StandardFeatureSet()
Definition: featureSet_.cc:217
osl::move_probability::FeatureSet::analyze
void analyze(const StateInfo &state, Move move, const double *weights) const
Definition: featureSet_.cc:81
osl::move_probability::FeatureSet::load
bool load(const char *base_filename, double *weights) const
Definition: featureSet_.cc:144
osl::move_probability::StandardFeatureSet::tactical_weights
static boost::scoped_array< double > tactical_weights
Definition: move_probability/featureSet.h:52
osl::move_probability::StandardFeatureSet::matchLight
double matchLight(const StateInfo &, Move) const
Definition: featureSet_.cc:371
osl::move_probability::FeatureSet::ratingToLogProb
static void ratingToLogProb(const WeightedMoveVector &rating, double sum, MoveLogProbVector &out)
Definition: featureSet_.cc:120
osl::move_probability::FeatureSet::~FeatureSet
~FeatureSet()
Definition: featureSet_.cc:28
osl::move_probability::StandardFeatureSet::matchNoExp
double matchNoExp(const StateInfo &, Move) const
Definition: featureSet_.cc:383
osl::move_probability::FeatureSet
Definition: move_probability/featureSet.h:22
osl::move_probability::StandardFeatureSet
Definition: move_probability/featureSet.h:51
osl::move_probability::StandardFeatureSet::matchExp
double matchExp(const StateInfo &, Move) const
Definition: featureSet_.cc:377
osl::move_probability::FeatureSet::matchLight
double matchLight(const StateInfo &, Move, const double *weights) const
Definition: featureSet_.cc:68
osl::move_probability::Feature
Definition: move_probability/feature.h:17
osl::move_probability::FeatureSet::features
boost::ptr_vector< Feature > features
Definition: move_probability/featureSet.h:23
osl::move_probability::StandardFeatureSet::tacticalLogProb
int tacticalLogProb(int offset, double sum) const
Definition: featureSet_.cc:405
osl::move_probability::WeightedMove
std::pair< double, Move > WeightedMove
Definition: move_probability/featureSet.h:17
osl::move_probability::FeatureSet::showSummary
void showSummary(const double *weights) const
Definition: featureSet_.cc:180
osl::Move
圧縮していない moveの表現 .
Definition: basic_type.h:1052
moveLogProbVector.h
osl::move_probability::FeatureSet::dimension
int dimension() const
Definition: move_probability/featureSet.h:31
osl::move_probability::StateInfo
Definition: stateInfo.h:21
osl::FixedCapacityVector
Definition: container.h:137
osl::move_probability::StandardFeatureSet::logProbTakeBack
int logProbTakeBack(const StateInfo &state, Move target) const
Definition: featureSet_.cc:389
osl::move_probability::StandardFeatureSet::logProbSeePlus
int logProbSeePlus(const StateInfo &state, Move target) const
Definition: featureSet_.cc:397
osl::move_probability::StandardFeatureSet::setUp
bool setUp(bool verbose=false)
Definition: featureSet_.cc:299
osl::move_probability::StandardFeatureSet::initialized
bool initialized
Definition: move_probability/featureSet.h:53
osl::move_probability::FeatureSet::light_features
std::vector< int > light_features
Definition: move_probability/featureSet.h:24
osl::move_probability::FeatureSet::generateRating
double generateRating(const StateInfo &state, WeightedMoveVector &out, const double *weights) const
Definition: featureSet_.cc:103
osl::move_probability::StandardFeatureSet::generateLogProb
void generateLogProb(const StateInfo &state, MoveLogProbVector &out) const
Definition: featureSet_.cc:331
osl::move_probability::WeightedMoveVector
FixedCapacityVector< WeightedMove, Move::MaxUniqMoves > WeightedMoveVector
Definition: move_probability/featureSet.h:19
osl::container::MoveLogProbVector
Definition: moveLogProbVector.h:14
osl::move_probability::StandardFeatureSet::ok
bool ok() const
Definition: move_probability/featureSet.h:69
osl::move_probability::StandardFeatureSet::generateLogProb2
void generateLogProb2(const StateInfo &state, MoveLogProbVector &out) const
Definition: featureSet_.cc:337
osl::move_probability::FeatureSet::matchExp
double matchExp(const StateInfo &, Move, const double *weights) const
Definition: featureSet_.cc:62
stateInfo.h
osl::move_probability::FeatureSet::generateLogProb
void generateLogProb(const StateInfo &state, MoveLogProbVector &out, const double *weights) const
Definition: featureSet_.cc:135
osl::move_probability::FeatureSet::addFinished
void addFinished()
Definition: featureSet_.cc:41
numEffectState.h
osl::move_probability::StandardFeatureSet::weights
static boost::scoped_array< double > weights
Definition: move_probability/featureSet.h:52
osl::move_probability::FeatureSet::offsets
std::vector< int > offsets
Definition: move_probability/featureSet.h:24
osl::move_probability::StandardFeatureSet::healthCheck
static bool healthCheck()
Definition: featureSet_.cc:286
osl::move_probability::StandardFeatureSet::~StandardFeatureSet
~StandardFeatureSet()
Definition: featureSet_.cc:272
osl::move_probability::FeatureSet::FeatureSet
FeatureSet()
Definition: featureSet_.cc:23
osl::move_probability::FeatureSet::load_binary
bool load_binary(const char *base_filename, double *weights) const
Definition: featureSet_.cc:161
osl
Definition: additionalEffect.h:6
osl::move_probability::FeatureSet::pushBack
void pushBack(Feature *, bool light=false)
Definition: featureSet_.cc:33