Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
include
osl
rating
rating/featureSet.h
Go to the documentation of this file.
1
/* featureSet.h
2
*/
3
#ifndef OSL_FEATURESET_H
4
#define OSL_FEATURESET_H
5
6
#include "
osl/rating/range.h
"
7
#include "
osl/rating/ratedMoveVector.h
"
8
#include "
osl/state/numEffectState.h
"
9
#include "
osl/container/moveLogProbVector.h
"
10
#include "
osl/container/moveVector.h
"
11
#include "
osl/stl/vector.h
"
12
#include <boost/ptr_container/ptr_vector.hpp>
13
#include <boost/noncopyable.hpp>
14
#include <string>
15
#include <iosfwd>
16
17
namespace
osl
18
{
19
namespace
stat
20
{
21
class
Average
;
22
class
Variance
;
23
}
24
namespace
rating
25
{
26
class
Group;
27
class
Feature;
28
class
RatingEnv;
29
class
CheckmateIfCaptureGroup;
30
class
CaptureGroup;
31
class
SendOffGroup;
32
class
FeatureSet
: boost::noncopyable
33
{
34
// range は Groupのメンバーにした方が綺麗な気も
35
boost::ptr_vector<Group>
groups
;
36
vector<char>
effective_in_check
;
37
vector<Feature*>
features
;
// acquaintance
38
vector<range_t>
ranges
;
39
vector<double>
weights
;
40
vector<int>
weightslog10
;
42
int
capture_group
,
checkmate_if_capture_group
,
sendoff_group
;
43
vector<char>
normal_groups
;
45
mutable
vector<CArray<stat::Average,8> >
frequency
;
46
mutable
vector<CArray<stat::Variance,8> >
variance_match
;
47
mutable
vector<stat::Variance>
variance_all
;
48
struct
Statistics
;
49
vector<Statistics>
statistics
;
50
public
:
51
FeatureSet
();
52
virtual
~FeatureSet
();
53
bool
tryLoad
(
const
std::string& input_directory);
54
void
setWeight
(
size_t
feature_id,
const
double
& value);
55
56
const
Group
&
group
(
size_t
group_id)
const
{
return
groups
[group_id]; }
57
bool
effectiveInCheck
(
size_t
group_id)
const
{
return
effective_in_check
[group_id]; }
58
const
Feature
&
feature
(
size_t
feature_id)
const
{
return
*
features
[feature_id]; }
59
const
range_t
&
range
(
size_t
group
)
const
{
return
ranges
[
group
]; }
60
const
double
&
weight
(
size_t
feature_id)
const
{
return
weights
[feature_id]; }
61
size_t
groupSize
()
const
{
return
groups
.size(); }
62
size_t
featureSize
()
const
{
return
features
.size(); }
63
const
RatedMove
makeRate
(
const
NumEffectState& state,
bool
in_check,
64
const
RatingEnv
& env,
Move
move)
const
;
65
const
RatedMove
makeRateWithCut
(
const
NumEffectState& state,
bool
in_check,
66
const
RatingEnv
& env,
int
limit
,
Move
move)
const
;
67
const
std::string
annotate
(
const
NumEffectState& state,
68
const
RatingEnv
& env,
Move
move)
const
;
69
void
generateRating
(
const
NumEffectState& state,
const
RatingEnv
& env,
70
int
limit
,
RatedMoveVector
&
out
,
bool
in_pv_or_all=
true
)
const
;
71
void
generateLogProb
(
const
NumEffectState& state,
const
RatingEnv
& env,
72
int
limit
, MoveLogProbVector&
out
,
bool
in_pv_or_all=
true
)
const
;
73
int
logProbTakeBack
(
const
NumEffectState& state,
const
RatingEnv
& env,
Move
)
const
;
74
int
logProbSeePlus
(
const
NumEffectState& state,
const
RatingEnv
& env,
Move
)
const
;
75
int
logProbKingEscape
(
const
NumEffectState& state,
const
RatingEnv
& env,
Move
)
const
;
76
77
void
showGroup
(std::ostream&,
size_t
group_id)
const
;
78
void
save
(
const
std::string& output_directory,
size_t
group_id)
const
;
79
80
void
showStatistics
(std::ostream&)
const
;
81
82
static
void
normalize
(
const
RatedMoveVector
&, MoveLogProbVector&
out
);
83
static
std::string
defaultDirectory
();
84
protected
:
85
void
add
(
Feature
*f);
86
void
add
(
Group
*g);
87
void
add
(
CaptureGroup
*g);
88
void
add
(
SendOffGroup
*g);
89
void
add
(
CheckmateIfCaptureGroup
*g);
90
void
addCommon
(
Group
*g);
91
void
addFinished
();
92
private
:
93
const
range_t
makeRange
(
size_t
group
)
const
;
94
int
rating
(
const
NumEffectState& state,
95
const
RatingEnv
& env,
Move
move,
size_t
group_id)
const
;
96
};
97
98
class
StandardFeatureSet
:
public
FeatureSet
99
{
100
public
:
101
explicit
StandardFeatureSet
(
bool
allow_load_failure=
false
);
102
static
const
StandardFeatureSet
&
instance
();
103
static
bool
healthCheck
();
104
};
105
107
class
CaptureSet
:
public
FeatureSet
108
{
109
public
:
110
explicit
CaptureSet
(
bool
allow_load_failure=
false
);
111
};
113
class
TacticalSet
:
public
FeatureSet
114
{
115
public
:
116
explicit
TacticalSet
(
bool
allow_load_failure=
false
);
117
};
118
}
119
}
120
121
#endif
/* OSL_FEATURESET_H */
122
// ;;; Local Variables:
123
// ;;; mode:c++
124
// ;;; c-basic-offset:2
125
// ;;; coding:utf-8
126
// ;;; End:
Generated on Sun Jul 21 2013 13:37:24 by
1.8.4