Skip to content

Commit e93b02b

Browse files
committed
Run SSK before SVC in irregular
1 parent 7afa25d commit e93b02b

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/irregular/optimize.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ void optimize_tree_search(
238238
void optimize_sequential_single_knapsack(
239239
const Instance& instance,
240240
const OptimizeParameters& parameters,
241-
AlgorithmFormatter& algorithm_formatter)
241+
AlgorithmFormatter& algorithm_formatter,
242+
Counter queue_size_max = -1)
242243
{
243244
double maximum_approximation_ratio = parameters.initial_maximum_approximation_ratio;
244245
for (Counter queue_size = 1;;) {
@@ -248,6 +249,11 @@ void optimize_sequential_single_knapsack(
248249
maximum_approximation_ratio = parameters.not_anytime_maximum_approximation_ratio;
249250
}
250251

252+
if (queue_size_max != -1
253+
&& queue_size > queue_size_max) {
254+
break;
255+
}
256+
251257
SequentialValueCorrectionFunction<Instance, Solution> kp_solve
252258
= [&algorithm_formatter, &parameters, queue_size, maximum_approximation_ratio](const Instance& kp_instance)
253259
{
@@ -303,6 +309,12 @@ void optimize_sequential_value_correction(
303309
const OptimizeParameters& parameters,
304310
AlgorithmFormatter& algorithm_formatter)
305311
{
312+
optimize_sequential_single_knapsack(
313+
instance,
314+
parameters,
315+
algorithm_formatter,
316+
parameters.sequential_value_correction_subproblem_queue_size - 1);
317+
306318
SequentialValueCorrectionFunction<Instance, Solution> kp_solve
307319
= [&algorithm_formatter, &parameters](const Instance& kp_instance)
308320
{
@@ -642,7 +654,8 @@ packingsolver::irregular::Output packingsolver::irregular::optimize(
642654
std::ref(exception_ptr_list.front()),
643655
std::ref(instance),
644656
std::ref(parameters),
645-
std::ref(algorithm_formatter)));
657+
std::ref(algorithm_formatter),
658+
-1));
646659
} else {
647660
try {
648661
optimize_sequential_single_knapsack(

0 commit comments

Comments
 (0)