11 std::ifstream ifs(filename);
14 for (
int i = 0 ; i < nStates; i++)
35 std::ofstream ofs(filename);
37 for (osl::vector<OBState>::const_iterator it =
states.begin();
45 for (osl::vector<osl::record::opening::OBMove>::const_iterator it =
moves.begin();
46 it !=
moves.end(); ++it)
56 osl::vector<int> weights(
moves.size());
61 for (osl::vector<OBState>::const_iterator it =
states.begin();
67 osl::vector<int> wins;
68 wins.reserve(it->getNOBMove());
69 for (
int i = 0; i < it->getNOBMove(); i++)
72 =
moves.at(i + it->getOBMoveIndex());
80 total_wins += wins.at(i);
82 for (
int i = 0; i < it->getNOBMove(); i++)
85 weights.at(i + it->getOBMoveIndex()) = (wins.at(i) * 10000 / total_wins);
87 weights.at(i + it->getOBMoveIndex()) = 0;
93 for (osl::vector<osl::record::opening::OBMove>::const_iterator it =
moves.begin();
94 it !=
moves.end(); ++it, ++i)
106 std::ofstream ofs(filename);
113 std::ofstream ofs(filename);
115 osl::vector<osl::SimpleState> simpleStates(
states.size());
116 osl::vector<bool> visited(
states.size());
117 osl::vector<int> toTraceIndex;
119 for (
unsigned int i = 0; i <
states.size(); i++)
122 assert(
states.size() >= 1);
125 toTraceIndex.push_back(0);
129 while (!toTraceIndex.empty())
131 const int index = toTraceIndex.back();
132 toTraceIndex.pop_back();
139 if (!visited[nextState])
141 toTraceIndex.push_back(nextState);
142 osl::NumEffectState newState(simpleStates[index]);
143 newState.makeMove(m.
getMove());
144 simpleStates[nextState] = newState;
145 visited[nextState] =
true;
149 for (
unsigned int i = 0; i <
states.size(); i++)