Skip to content

Commit a6b0f2e

Browse files
committed
RL agent move mismatch fixed
1 parent f669015 commit a6b0f2e

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

vpr/src/place/move_utils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ enum class e_move_type {
2828
CRIT_UNIFORM,
2929
FEASIBLE_REGION,
3030
MANUAL_MOVE,
31+
NUMBER_OF_MOVES,
3132
};
3233

3334
enum class e_create_move {

vpr/src/place/simpleRL_move_generator.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,29 @@ static float scaled_clipped_exp(float x) { return std::exp(std::min(1000000 * x,
1515
* *
1616
* */
1717
SimpleRLMoveGenerator::SimpleRLMoveGenerator(std::unique_ptr<SoftmaxAgent>& agent) {
18-
avail_moves.emplace_back(std::make_unique<UniformMoveGenerator>());
19-
avail_moves.emplace_back(std::make_unique<MedianMoveGenerator>());
20-
avail_moves.emplace_back(std::make_unique<CentroidMoveGenerator>());
21-
avail_moves.emplace_back(std::make_unique<WeightedCentroidMoveGenerator>());
22-
avail_moves.emplace_back(std::make_unique<WeightedMedianMoveGenerator>());
23-
avail_moves.emplace_back(std::make_unique<CriticalUniformMoveGenerator>());
24-
avail_moves.emplace_back(std::make_unique<FeasibleRegionMoveGenerator>());
18+
avail_moves.resize((int)e_move_type::NUMBER_OF_MOVES);
19+
20+
avail_moves[(int)e_move_type::UNIFORM] = std::make_unique<UniformMoveGenerator>();
21+
avail_moves[(int)e_move_type::MEDIAN] = std::make_unique<MedianMoveGenerator>();
22+
avail_moves[(int)e_move_type::CENTROID] = std::make_unique<CentroidMoveGenerator>();
23+
avail_moves[(int)e_move_type::W_CENTROID] = std::make_unique<WeightedCentroidMoveGenerator>();
24+
avail_moves[(int)e_move_type::W_MEDIAN] = std::make_unique<WeightedMedianMoveGenerator>();
25+
avail_moves[(int)e_move_type::CRIT_UNIFORM] = std::make_unique<CriticalUniformMoveGenerator>();
26+
avail_moves[(int)e_move_type::FEASIBLE_REGION] = std::make_unique<FeasibleRegionMoveGenerator>();
2527

2628
karmed_bandit_agent = std::move(agent);
2729
}
2830

2931
SimpleRLMoveGenerator::SimpleRLMoveGenerator(std::unique_ptr<EpsilonGreedyAgent>& agent) {
30-
avail_moves.emplace_back(std::make_unique<UniformMoveGenerator>());
31-
avail_moves.emplace_back(std::make_unique<MedianMoveGenerator>());
32-
avail_moves.emplace_back(std::make_unique<CentroidMoveGenerator>());
33-
avail_moves.emplace_back(std::make_unique<WeightedCentroidMoveGenerator>());
34-
avail_moves.emplace_back(std::make_unique<WeightedMedianMoveGenerator>());
35-
avail_moves.emplace_back(std::make_unique<CriticalUniformMoveGenerator>());
36-
avail_moves.emplace_back(std::make_unique<FeasibleRegionMoveGenerator>());
32+
avail_moves.resize((int)e_move_type::NUMBER_OF_MOVES);
33+
34+
avail_moves[(int)e_move_type::UNIFORM] = std::make_unique<UniformMoveGenerator>();
35+
avail_moves[(int)e_move_type::MEDIAN] = std::make_unique<MedianMoveGenerator>();
36+
avail_moves[(int)e_move_type::CENTROID] = std::make_unique<CentroidMoveGenerator>();
37+
avail_moves[(int)e_move_type::W_CENTROID] = std::make_unique<WeightedCentroidMoveGenerator>();
38+
avail_moves[(int)e_move_type::W_MEDIAN] = std::make_unique<WeightedMedianMoveGenerator>();
39+
avail_moves[(int)e_move_type::CRIT_UNIFORM] = std::make_unique<CriticalUniformMoveGenerator>();
40+
avail_moves[(int)e_move_type::FEASIBLE_REGION] = std::make_unique<FeasibleRegionMoveGenerator>();
3741

3842
karmed_bandit_agent = std::move(agent);
3943
}

0 commit comments

Comments
 (0)