Skip to content

Commit a0d7262

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

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/irregular/optimize.cpp

Lines changed: 17 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,14 @@ void optimize_sequential_value_correction(
303309
const OptimizeParameters& parameters,
304310
AlgorithmFormatter& algorithm_formatter)
305311
{
312+
if (parameters.optimization_mode == OptimizationMode::Anytime) {
313+
optimize_sequential_single_knapsack(
314+
instance,
315+
parameters,
316+
algorithm_formatter,
317+
parameters.sequential_value_correction_subproblem_queue_size - 1);
318+
}
319+
306320
SequentialValueCorrectionFunction<Instance, Solution> kp_solve
307321
= [&algorithm_formatter, &parameters](const Instance& kp_instance)
308322
{
@@ -642,7 +656,8 @@ packingsolver::irregular::Output packingsolver::irregular::optimize(
642656
std::ref(exception_ptr_list.front()),
643657
std::ref(instance),
644658
std::ref(parameters),
645-
std::ref(algorithm_formatter)));
659+
std::ref(algorithm_formatter),
660+
-1));
646661
} else {
647662
try {
648663
optimize_sequential_single_knapsack(

0 commit comments

Comments
 (0)