Skip to content

Commit 6067fbc

Browse files
committed
Improve bounding in irregular tree search
1 parent c481de1 commit 6067fbc

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

extern/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ FetchContent_MakeAvailable(knapsacksolver)
5959
FetchContent_Declare(
6060
treesearchsolver
6161
GIT_REPOSITORY https://github.com/fontanf/treesearchsolver.git
62-
GIT_TAG 32da334a71c5039ab031f5e7d949e4d135832352
62+
GIT_TAG 1942e11cf38a1fbe559ae15feddd4ced1ef5be4a
6363
#SOURCE_DIR "${PROJECT_SOURCE_DIR}/../treesearchsolver/"
6464
EXCLUDE_FROM_ALL)
6565
FetchContent_MakeAvailable(treesearchsolver)

src/irregular/optimize.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ void optimize_tree_search_worker(
2626
{
2727
Counter queue_size = 1;
2828
double maximum_approximation_ratio = parameters.initial_maximum_approximation_ratio;
29+
std::shared_ptr<BranchingScheme::Node> cutoff = nullptr;
2930
for (Counter iteration = 0;
3031
;
3132
++iteration) {
@@ -37,6 +38,7 @@ void optimize_tree_search_worker(
3738

3839
// Run tree search.
3940
branching_scheme_parameters.maximum_approximation_ratio = maximum_approximation_ratio;
41+
ibs_parameters.cutoff = cutoff;
4042
ibs_parameters.minimum_size_of_the_queue = queue_size;
4143
ibs_parameters.maximum_size_of_the_queue = queue_size;
4244
if (!parameters.json_search_tree_path.empty()) {
@@ -56,6 +58,10 @@ void optimize_tree_search_worker(
5658
if (parameters.optimization_mode != OptimizationMode::Anytime)
5759
break;
5860

61+
if (cutoff != nullptr)
62+
ibs_output.solution_pool.add(cutoff);
63+
cutoff = ibs_output.solution_pool.best();
64+
5965
// Update beam size.
6066
queue_size = std::max(
6167
queue_size + 1,
@@ -110,12 +116,14 @@ void optimize_tree_search(
110116
} else {
111117
directions = {BranchingScheme::Direction::Any};
112118
}
119+
//directions = {BranchingScheme::Direction::LeftToRightThenBottomToTop};
113120

114121
std::vector<double> growth_factors = {1.5};
115122
if (guides.size() * directions.size() * 2 <= 4)
116123
growth_factors = {1.33, 1.5};
117124
if (parameters.optimization_mode != OptimizationMode::Anytime)
118125
growth_factors = {1.5};
126+
//growth_factors = {1.5};
119127

120128
std::vector<BranchingScheme::Parameters> branching_scheme_parameters_list;
121129
std::vector<BranchingScheme> branching_schemes;

0 commit comments

Comments
 (0)