On а Recursive-Parallel Algorithm for Solving the Knapsack Problem

In this paper, we offer an efficient parallel algorithm for solving the NP-complete Knapsack Problem in its basic, so-called 0-1 variant. To find its exact solution, algorithms belonging to the category ”branch and bound methods” have long been used. To speed up the solving with varying degrees of e...

Full description

Bibliographic Details
Main Author: Vladimir V. Vasilchikov
Format: Article
Language:English
Published: Yaroslavl State University 2018-04-01
Series:Моделирование и анализ информационных систем
Subjects:
Online Access:https://www.mais-journal.ru/jour/article/view/676
_version_ 1797877991943962624
author Vladimir V. Vasilchikov
author_facet Vladimir V. Vasilchikov
author_sort Vladimir V. Vasilchikov
collection DOAJ
description In this paper, we offer an efficient parallel algorithm for solving the NP-complete Knapsack Problem in its basic, so-called 0-1 variant. To find its exact solution, algorithms belonging to the category ”branch and bound methods” have long been used. To speed up the solving with varying degrees of efficiency, various options for parallelizing computations are also used. We propose here an algorithm for solving the problem, based on the paradigm of recursive-parallel computations. We consider it suited well for problems of this kind, when it is difficult to immediately break up the computations into a sufficient number of subtasks that are comparable in complexity, since they appear dynamically at run time. We used the RPM ParLib library, developed by the author, as the main tool to program the algorithm. This library allows us to develop effective applications for parallel computing on a local network in the .NET Framework. Such applications have the ability to generate parallel branches of computation directly during program execution and dynamically redistribute work between computing modules. Any language with support for the .NET Framework can be used as a programming language in conjunction with this library. For our experiments, we developed some C# applications using this library. The main purpose of these experiments was to study the acceleration achieved by recursive-parallel computing. A detailed description of the algorithm and its testing, as well as the results obtained, are also given in the paper.
first_indexed 2024-04-10T02:25:39Z
format Article
id doaj.art-117a881ec3aa4bbe8210ecd5efdb2c2f
institution Directory Open Access Journal
issn 1818-1015
2313-5417
language English
last_indexed 2024-04-10T02:25:39Z
publishDate 2018-04-01
publisher Yaroslavl State University
record_format Article
series Моделирование и анализ информационных систем
spelling doaj.art-117a881ec3aa4bbe8210ecd5efdb2c2f2023-03-13T08:07:29ZengYaroslavl State UniversityМоделирование и анализ информационных систем1818-10152313-54172018-04-0125215516410.18255/1818-1015-2018-2-155-164496On а Recursive-Parallel Algorithm for Solving the Knapsack ProblemVladimir V. Vasilchikov0Ярославский государственный университет им. П.Г. ДемидоваIn this paper, we offer an efficient parallel algorithm for solving the NP-complete Knapsack Problem in its basic, so-called 0-1 variant. To find its exact solution, algorithms belonging to the category ”branch and bound methods” have long been used. To speed up the solving with varying degrees of efficiency, various options for parallelizing computations are also used. We propose here an algorithm for solving the problem, based on the paradigm of recursive-parallel computations. We consider it suited well for problems of this kind, when it is difficult to immediately break up the computations into a sufficient number of subtasks that are comparable in complexity, since they appear dynamically at run time. We used the RPM ParLib library, developed by the author, as the main tool to program the algorithm. This library allows us to develop effective applications for parallel computing on a local network in the .NET Framework. Such applications have the ability to generate parallel branches of computation directly during program execution and dynamically redistribute work between computing modules. Any language with support for the .NET Framework can be used as a programming language in conjunction with this library. For our experiments, we developed some C# applications using this library. The main purpose of these experiments was to study the acceleration achieved by recursive-parallel computing. A detailed description of the algorithm and its testing, as well as the results obtained, are also given in the paper.https://www.mais-journal.ru/jour/article/view/676задача о рюкзакепараллельный алгоритмрекурсия.net
spellingShingle Vladimir V. Vasilchikov
On а Recursive-Parallel Algorithm for Solving the Knapsack Problem
Моделирование и анализ информационных систем
задача о рюкзаке
параллельный алгоритм
рекурсия
.net
title On а Recursive-Parallel Algorithm for Solving the Knapsack Problem
title_full On а Recursive-Parallel Algorithm for Solving the Knapsack Problem
title_fullStr On а Recursive-Parallel Algorithm for Solving the Knapsack Problem
title_full_unstemmed On а Recursive-Parallel Algorithm for Solving the Knapsack Problem
title_short On а Recursive-Parallel Algorithm for Solving the Knapsack Problem
title_sort on а recursive parallel algorithm for solving the knapsack problem
topic задача о рюкзаке
параллельный алгоритм
рекурсия
.net
url https://www.mais-journal.ru/jour/article/view/676
work_keys_str_mv AT vladimirvvasilchikov onarecursiveparallelalgorithmforsolvingtheknapsackproblem