МАТЕМАТИКА
Челябинский физико-математический журнал. 2022. Т. 7, вып. 3. С. 267-276.
УДК 519.87 Б01: 10.47475/2500-0101-2022-17301
МЕТОД РЕШЕНИЯ ЗАДАЧИ О РЮКЗАКЕ С ДОПОЛНИТЕЛЬНЫМ ОГРАНИЧЕНИЕМ НА ЧИСЛО ТИПОВ ПРЕДМЕТОВ
В. П. Офицеров1'", С. В. Смирнов2'36
1 Московский авиационный институт
(национальный исследовательский университет), Москва, Россия
2 Самарский федеральный исследовательский центр РАН,
Институт проблем управления сложными системами РАН, Самара, Россия
3 Поволжский государственный университет телекоммуникаций и информатики, Самара, Россия
"[email protected], ь[email protected]
Рассматривается задача формирования рюкзака с максимальной стоимостью при заданном ограничении на число типов предметов в нём. Выбор типов производится из конечного множества, количество предметов каждого типа неограниченно. При учёте дополнительного ограничения на число типов предметов в рюкзаке (не более из п возможных типов) известные методы решения задачи о рюкзаке малоэффективны. Предлагаемый в статье метод опирается на идею динамического программирования вычислений с использованием результатов предыдущих шагов. На первом шаге алгоритма определяется максимальная стоимость формируемых виртуальных рюкзаков при их заполнении предметами только одного типа. На втором и последующих шагах определяется максимальная стоимость виртуальных рюкзаков при их последовательном заполнении предметами двух типов, на третьем — трёх типов и т. д. При вычислениях текущего максимального наполнения виртуальных рюкзаков используются результаты, полученные на предыдущем и первом шагах. Доказывается, что предложенный метод позволяет получать глобальный экстремум целевой функции и имеет меньшую трудоёмкость по сравнению с известными точными алгоритмами. Приводится оценка вычислительной сложности алгоритма.
Ключевые слова: задача о рюкзаке, дополнительные ограничения, динамическое программирование.
Введение
Известны разные варианты задач о наполнении рюкзака с соответствующими точными и приближёнными алгоритмами их решения [1-6]. К точным алгоритмам решения этих задач относят полный перебор, метод ветвей и границ [7], метод динамического программирования [1; 8; 9]. Приближёнными являются жадные [4] и генетические [10] алгоритмы; в случае их применения достижение глобального экстремума целевой функции не гарантировано. В статье рассматривается постановка задачи, возникающая при введении дополнительного ограничения на число типов предметов в рюкзаке: не более с1* из п возможных типов, с1* < п. Для решения такой задачи известными точными методами придётся рассмотреть набор
СП задач о рюкзаке, каждая из которых решается путём выбора оптимального количества предметов из конкретного набора d* типов предметов, а затем выбрать наилучший результат из полученных промежуточных решений. В статье предлагается эффективный метод решения рассматриваемой задачи, имеющий меньшую трудоёмкость по сравнению с известными точными алгоритмами [4; 7-9] и позволяющий получать глобальный экстремум целевой функции. Метод использует идеи динамического программирования. В отличие от классического подхода в построении рекурсивных уравнений используется число типов предметов, размещаемых в виртуальных рюкзаках разной вместимости с добавлением нового типа предметов (заранее неопределённого) на каждой итерации.
1. Описание задачи и алгоритма решения
Рассмотрим рюкзак с ограничением Ь* на возможный максимальный «вес» предметов в нём и множество предметов п типов с достаточным количеством экземпляров предметов каждого типа для заполнения рюкзака. В отличие от рассматривавшихся ранее задач [1-7] добавим ограничение: в рюкзак можно поместить не более d* типов предметов из п возможных, d* < п. Предполагается, что существует хотя бы один предмет, который можно поместить в рюкзак. Каждый г-й тип предметов (г = 1, 2,... , п) характеризуется своим весом а^ стоимостью с и количеством xi предметов, помещаемых в рюкзак. Требуется получить рюкзак с максимальной стоимостью при выполнении ограничений на возможный суммарный максимальный вес предметов и на количество типов предметов в нём.
Для формализации постановки задачи введём в рассмотрение набор булевых переменных Х^ г = 1, 2,... , п: Xi = 1, если хотя бы один предмет г-го типа помещён в рюкзак, и Xi = 0, если ни одного предмета г-го типа в рюкзаке нет. Число возможных типов предметов в рюкзаке ограничено условием
п
^ X < ¿*. (1)
i= 1
Необходимо максимизировать стоимость предметов в рюкзаке:
С1Х1 + С2Х2 +----+ спХп ^ тах (2)
при ограничении
а1Х1 + а2Х2 +----+ а„х„ < Ь*. (3)
Используя идеи динамического программирования [8-9], рассмотрим множество задач типа (1)-(3) при всевозможных допустимых максимальных значениях суммарных весов предметов Ь и числа типов предметов d (0 < Ь < Ь*, 1 < d <
При d =1 решается задача отыскания максимума (2) при использовании только предметов одного, заранее неизвестного типа г, 1 < г < п, для заполнения виртуальных рюкзаков с максимальными суммарными весами предметов Ь (0 < Ь < Ь* ):
/1 (Ь) = тах(ед), (4)
при ограничениях для каждого выбираемого значения xi и Ь, удовлетворяющих условиям
aiXi < Ь. (5)
Найденные значения максимумов /1 (Ь) обозначим для дальнейшего использования как /1(АЬ), где ДЬ = Ь, 0 < Ь < Ь*, 0 < ДЬ < Ь*. Заметим, что для каждого
виртуального рюкзака максимальное значение /1(Ь) может достигаться несколько раз на разных произведениях Для определённости будем использовать первое найденное максимальное значение.
Для получения максимума (2) при наполнении рюкзака не более чем двумя типами предметов, т.е. при d = 2, будем считать, что часть вместимости рюкзака ДЬ будет выделяться для наполнения вторым типом предметов. Конкретный номер типа предмета и количество его экземпляров будут определяться для каждого виртуального рюкзака вместимостью Ь из выражения
/2(6) = шах[ед + /1 (Ь - ДЬ)] = шах(ед) + /1 (Ь - ДЬ) (6)
при ограничениях
1 < г < п, 0 < ДЬ < Ь, 0 < Ь < Ь*, aixi < ДЬ. (7)
В (6) /1(Ь — ДЬ) представляет собой уже найденное на первом шаге алгоритма максимальное значение стоимости рюкзака вместимостью Ь - ДЬ при его наполнении экземплярами только одного типа предметов при выполнении (4) и (5). Это максимальное значение складывается со значением шах(сгжг), где тип предмета г выбирается из множества {1, 2,... , п}, и количество экземпляров этого типа определяется для каждой вместимости рюкзака ДЬ, где 0 < ДЬ < Ь при выполнении ограничений (7).
Для получения максимума двух слагаемых, одно из которых имеет фиксированное значение, нужно выбрать предмет типа г, который даёт максимальное значение при вместимости виртуального рюкзака ДЬ и < ДЬ. На первом шаге алгоритма такое значение уже было определено и обозначено как /1(ДЬ). (Вариант с возможным совпадением типов предметов, дающих значения /1(Ь — ДЬ) и шах(сгжг) = /1(ДЬ), будет рассмотрен далее). Следовательно, выражение (6) можно записать так:
/2(Ь) = шах[/1(ДЬ) + /1 (Ь — ДЬ)] (8)
при 0 < ДЬ < Ь, 0 < Ь < Ь*.
Продолжая процесс, получим рекуррентное уравнение относительно числа типов предметов, используемых при заполнении гипотетических рюкзаков:
/¿(Ь) = шах[/1(ДЬ) + /-1(Ь — ДЬ)] (9)
для всех 0 < ДЬ < Ь, 0 < Ь < Ь*, d =2,3,..., d*.
Покажем, что рекуррентное уравнение (9) позволяет найти глобальное оптимальное решение задачи (1)-(3).
2. Доказательство формулы максимальной стоимости наполнения рюкзака
Вначале покажем, что если на любом шаге d значение /¿(Ь) получается при повторном помещении в рюкзак хотя бы одного из п типов предметов (т. е. некоторый тип предметов с номером г входит в оба слагаемых соотношения (9)), то
/¿(Ь) = /¿-1(Ь). (10)
Действительно, найденное значение /¿(Ь) можно записать так:
/¿(Ь) = шах[/^(ДЬ^) + /¿-1(Ь — ДЬ^)] (11)
при 0 < Д6* < 6. Допустим, что число помещённых в рюкзак типов предметов для получения / не увеличилось. Это означает, что некоторый предмет ¿-го типа был помещён в рюкзак на одном из предыдущих шагов при получении /^1(6 — Д6*). Согласно (9) значение /¿(6) формируется таким образом, что справедливо выражение
/¿(6) = /¿(ДЬ*) + /к (Д6к) + /¿-2(6 — Д6* — Д6к), (12)
где /*(Д6*) и /1° (Д6к) получены при помещении в ёмкости рюкзака Д6* и Д6к пред* к
метов одного типа г в количестве экземпляров ж* и жк.
В силу свойств линейности функций и ограничений для ж* и жк справедливо равенство
/*(Д6*) + /к (Д6к) = /1(Д6* + Д6к). (13)
Действительно, это соответствует свойству линейных операций с^ж* +
сгжк сгжг,
где ж = ж* + жк, и преобразованию ограничений
«¿ж* < Д6*, «¿жгк < Д6к (14)
в ограничения
«¿ж* + «¿жк < Д6* + Д6к (15)
или, что то же самое, в ограничения
од < Д6* + Д6к, (16)
где ёмкость рюкзака Д6* + Д6к для предмета типа г уже была рассмотрена на первом шаге алгоритма и соответствующее значение /1(Д6* + Д6к) уже было использовано для формирования значения /¿-1 (6) на предыдущих шагах. С учётом (11)—(16) при повторном использовании предмета типа г для наполнения рюкзака получаем равенство (10):
/*(6) = сгж* + сгжк + /*—2 (6 — Д6* — Д6к) = сгжг + /*—2 (6 — Д6г) = /*-1(6).
Таким образом, доказано, что если на шаге й значение /*(6) увеличилось, то оно получено при использовании й типов предметов, так как в противном случае это увеличение произошло бы на одном из предыдущих шагов.
Если значение /1(Д6) совпадает для нескольких типов предметов на всех допустимых Д6 (для определённости выбиралось первое найденное максимальное значение), то эти типы предметов эквивалентны с точки зрения увеличения стоимости рюкзака и их попадание в рюкзак не влияет на его конечную стоимость. При этом ограничение (1) будет выполнено, т. е. число типов предметов в рюкзаке будет не больше й*.
Заметим, что ситуация изменится, если задача будет сформулирована иначе: получить рюкзак максимальной стоимости при его наполнении максимальным числом типов предметов, не превышающим й*. В этом случае придётся для каждого значения /1(Д6) и /*(6) записывать номера возможных типов предметов, соответствующих полученным значениям, и формировать максимально допустимый список типов предметов для получения значений /*(6). Этот вариант постановки и решения задачи здесь детально не рассматривается.
В связи с полученным результатом важно отметить, что если после й шагов вычислений по формуле (9) стоимость рюкзака не увеличилась на шаге й +1, то она не будет увеличиваться и далее и процесс поиска максимального наполнения рюкзака можно завершить.
Теперь докажем, что рюкзак, заполненный в соответствии с (9), имеет максимальную стоимость. Если вернуться к исходным обозначениям, то выражение (8) можно записать так:
/2 (Ь) = шах[/1(ДЬ) + /1 (Ь — ДЬ)] = шах(ск + с Жг).
Обозначим найденные номера типов предметов и количество их экземпляров так: номера типов — к и /, количество экземпляров предметов каждого типа — ж^ и Жг. Тогда стоимость рюкзака равна с^ж^ + с^Жг, ограничения имеют вид а^Ж& < ДЬ, агЖг < Ь — ДЬ. Из определения значений с^и сЖг как максимальных при заданных ограничениях следует, что вычисленное значение /2(Ь) является глобальным максимумом на всех допустимых значениях Ь.
Используя метод математической индукции и свойства линейных операций, докажем, что для линейной целевой функции и линейных ограничений значение /¿(Ь) является глобальным максимумом для всех допустимых Ь.
При использовании в решении только одного типа предметов ^ =1) значения /1 (Ь) являются максимальными в силу правила их вычисления. Выше показано, что вычисленное значение /2(Ь) является глобальным максимумом для двух типов предметов, используемых при наполнении рюкзака для всех допустимых значений Ь. Предположим, что выражение (9) определяет максимальное значение /¿-1(Ь) при заполнении рюкзака предметами не более чем d — 1 типов. Покажем, что тогда / (Ь) даёт максимальное значение стоимости и при использовании для заполнения рюкзака предметами не более d типов. Действительно, значения /¿-1 по допущению являются максимальными на всех допустимых значениях Ь, а значения /1(ДЬ) являются максимальными в силу правила их вычисления. Пусть значение максимума /¿(Ь) получено суммированием 51 (ДЬ) + /¿-1(Ь — ДЬ), где 51 (ДЬ) — значение целевой функции при заполнении части рюкзака ДЬ одним типом предметов. По правилу вычисления значение /1(ДЬ) является максимальным на ДЬ. Это означает, что 51 (ДЬ) = /1(ДЬ). Таким образом, доказано, что вычисленное значение /¿(Ь) является глобальным максимумом на всех допустимых значениях Ь.
Для определения фактических номеров типов и числа экземпляров предметов каждого типа, на которых достигается значение /¿(Ь), можно использовать соотношение (9), двигаясь по шагам в обратном направлении и определяя:
— на шаге d значение /¿(Дь), равное /1(ДЬ) в (9) при вычислении /¿(Ь), и соответствующие номер типа предмета и количество экземпляров предметов этого типа;
— на шаге d — 1 значение /¿-1(ДЬ^-1), определяемое при вычислении /¿-1(Ь — ДЬ^), и соответствующие номер типа предмета и количество экземпляров предметов этого типа и т. д.
Продолжая процесс, получим конкретные номера типов предметов и количество экземпляров каждого типа, определяющие максимальную стоимость рюкзака.
3. Обсуждение и иллюстративный пример работы алгоритма
Рассмотрим вычислительную сторону использования соотношения (9) для определения последовательности /¿(Ь). В общем случае будем считать, что Ь может принимать значения 0, Д, 2Д,... , КД = Ь*, где К — максимальное количество возможных вариантов виртуальных рюкзаков. Тогда в памяти ЭВМ необходимо хранить минимум К значений /¿-1(Ь) для последующего получения /¿(Ь). Объём вычислений в общем случае можно оценить величиной 0(п + d* х К). Сами вычисления весьма просты и используют результаты предыдущих шагов. При использовании
для решения классического рекуррентного уравнения Беллмана объём вычислений оценивается как 0(СП х д* х К).
Развитием рассмотренной постановки задачи о рюкзаке может являться задача с дополнительными ограничениями как на число типов предметов в рюкзаке, так и на число экземпляров предметов каждого типа. Если число экземпляров предметов каждого типа равно единице, то задача сводится к заполнению рюкзака не более чем й* предметами. Алгоритм решения не изменяется, что будет показано на примере.
Исследуем применение рассмотренного подхода к решению модельной задачи о рюкзаке и сравним его с жадным алгоритмом (в жадном алгоритме всегда делается выбор, который кажется самым лучшим в данный момент, т. е. производится локально оптимальный выбор в надежде, что он приведёт к оптимальному решению глобальной задачи [4]).
Найти
тах(70ж1 + 100ж2 + 120ж3) (17)
при ограничениях
ж1,ж2,ж3 е {0,1}, (18)
10ж1 + 20ж2 + 30жз < 50, (19)
~ ^ ^ ~ Г 1, ж, > 0,
5> <2, ж Ч0;ж=о: (20)
¿=1 ^
Это задача о рюкзаке вместимостью 50 единиц, который нужно заполнить не более чем двумя типами предметов, выбираемых из трёх возможных типов предметов с весами 10, 20 и 30 единиц и стоимостями 70, 100 и 120 единиц. Ограничения (18) на число предметов каждого типа таковы, что в рюкзаке не может быть двух предметов одного типа.
Применяя жадный алгоритм, необходимо рассматривать стоимость предметов на единицу веса: 1-й предмет имеет 7 единиц стоимости на единицу веса, 2-й — 5, 3-й — 4. Выбираем два наиболее ценных предмета — 1 и 2, проверяем ограничение по весу — (10 + 20 < 50) и получаем стоимость предметов в рюкзаке — 70 + 100 = 170. На этом жадный алгоритм заканчивает свою работу.
Теперь получим решение задачи на основе предложенного метода. Для начала определим множество виртуальных рюкзаков с вариантами наполнения для данной задачи. Для этого найдём наибольший общий делитель весов предметов — коэффициентов ограничения (19). Он равен 10, что позволяет рассматривать варианты наполнения виртуальных рюкзаков с шагом в 10 единиц. Рассматривать другие варианты нет необходимости, так как предметы имеют фиксированные веса и должны помещаться в рюкзаках целиком. В результате имеем множество виртуальных рюкзаков с наполнением 6 е {10, 20, 30, 40, 50}. Такое количество рюкзаков носит иллюстративный характер для демонстрации общего подхода; позднее будет представлен набор с меньшим количеством виртуальных рюкзаков, учитывающий, что каждый предмет может входить в рюкзак только один раз.
Найдём значения максимальной стоимости виртуальных рюкзаков при заполнении их одним типом предметов (в условиях примера можно говорить «одним предметом»):
/1(6) = тах
¿€{1,2,3} , ,
при ограничениях (18), (19) и Ь € {10, 20, 30, 40, 50}. Получаем
ж1 = 1, Ж2 = 0, Ж3 = 0, 10Ж1 < 10, /1 (10) = 70;
Ж1 = 0, Ж2 = 1,Ж3 = 0, 20Ж2 < 20, /1(20) = 100;
Ж1 = 0, Ж2 = 0, Ж3 = 1, 30Ж3 < 30, /1(30) = 120.
Теперь по формуле (9) найдём для целевой функции (17) при ограничениях (18)-(20) значения максимальной стоимости виртуальных рюкзаков при заполнении их двумя типами предметов (формула (9) принимает в этом случае вид (8)) для возможных значений Ь, ДЬ и жг:
Ж1 = 1, /1(10) = шах{[/1(0) + /1(10)], /1(0)} = 70; Ж2 = 1, /2(20) = шах{[/1(0) + /1(20)], /1(10)} = шах{100, 70} = 100; Ж1 = 1,Ж2 = 1, /2(30) = шах{[/1(0) + /1(30)], [/1(10) + /1 (20)]} = = шах{120, 70 + 100} = 170;
Ж1 = 1,Ж3 = 1, /2(40) = шах{[/1(0) + /1(40)], [/1(10) + /1 (30)], /1(20)} = = шах{120, 70 + 120,100} = 190;
Ж1 = 1,Ж3 = 1, /2(50) = шах{[/1(0) + /1(50)], [/1(10) + /1 (40)], [/1(20) + /1 (30)]} = = шах{120, 70 + 120,100 + 120} = 220.
Отметим, что в вычислениях отсутствуют выражения типа /1 (10) + /1 (10), /1 (20) + /1 (20) и т. п., так как они соответствуют одному и тому же типу предметов, а в рюкзаке по условиям задачи может быть только один предмет одного типа. Таким образом, максимальная стоимость наполнения рюкзака двумя предметами из трёх возможных — 220 единиц для предметов под номерами 2 и 3. Напомним, что жадный алгоритм дал стоимость рюкзака 170 единиц для предметов под номерами 1 и 2. И это даже не второй результат, а третий в порядке уменьшения стоимости.
Заключение
В статье рассмотрена новая постановка задачи о рюкзаке с дополнительным ограничением на число типов предметов, помещаемых в рюкзак. Типы предметов и их количество выбираются из некоторого множества предметов так, чтобы максимизировать стоимость рюкзака. Предметы любого типа могут многократно повторяться.
Предложенный подход к решению задачи использует идеи динамического программирования для построения рекурсивного вычислительного процесса. В рамках этого процесса на первом шаге определяется максимальная стоимость каждого возможного виртуального рюкзака при его заполнении экземплярами только одного, заранее неизвестного типа предметов. На втором и последующих шагах используются результаты первого шага и результаты предыдущего шага. Отличие от классического метода Беллмана заключается в построении рекурсивных вычислений на базе числа типов предметов в рюкзаке без фиксации номеров типов предметов. Приводится оценка вычислительной сложности полученного алгоритма.
Приведено доказательство получения предложенным методом максимального по стоимости рюкзака. Показано, что традиционные точные методы оптимального наполнения рюкзака в рассматриваемой постановке задачи работают неэффективно, так как для их применения необходимо устранить ограничение на число типов предметов в рюкзаке. Это можно осуществить путём генерации множества задач о рюкзаке с числом типов предметов, соответствующих указанному в исходной задаче ограничению на число типов предметов в рюкзаке. Количество вариантов этих
задач будет равно всем сочетаниям из n по d*, где n и d* — число возможных типов предметов и ограничение на число типов предметов в рюкзаке соответственно. После решения полученных задач традиционными методами необходимо выбрать среди полученных решений наилучшее.
Список литературы
1. MarteloS., TothP. Knapsack Problems. Wiley, 1990.
2. Bretthauer K. M., ShettyB. The nonlinear knapsack problem — algorithms and applications // European Journal of Operational Research. 2002. Vol. 138, iss. 3. P. 459472.
3. KellererH., PferschyU., PisingerD. Knapsack Problems. Berlin, Heidelberg : Springer Verlag, 2004.
4. Кормен Т., ЛейзерсонЧ., РивестР., Ш^тайнК. Алгоритмы: построение и анализ. М. : И. Д. Вильяму 2013.
5. HuH., ZhangX., YanX., WangL., XuY. Solving a new 3D bin packing problem with deep reinforcement learning method // arXiv: 1708.05930, 2017.
6. МассобриоИ,., Дорронзоро Диаз B., Несмачнов Кановас С. Е. Виртуальный Эрудит для решения задачи о рюкзаке: обучение автоматическому распределению ресурсов // Тр. Ин-та систем. программирования РАН. 2019. Т. 31, № 2. С. 21-32.
7. Колпаков Р. М., Посыпкин М. А. Верхняя и нижняя оценки трудоёмкости метода ветвей и границ для задачи о ранце // Тр. ИСА РАН. 2008. Т. 32. С. 137-158.
8. БеллманР., Дрейфус С. Прикладные задачи динамического программирования. М. : Наука, 1965.
9. Bellman R. E. Dynamic Programming. Princeton : University Press, 2010.
10. КартушинД. Ю., Максименкова А. Р., Угольницкий Г. А. Оптимизация количества заявок при заданном бюджете инноваций // Современная экономика: проблемы и решения. 2016. Т. 6 (78). С. 20-33.
Поступила в 'редакцию 19.05.2022. После переработки 04.08.2022.
Сведения об авторах
Офицеров Владимир Петрович, кандидат технических наук, доцент, доцент кафедры «Вычислительные машины, системы и сети», Московский авиационный институт (национальный исследовательский университет), Москва, Россия; e-mail: [email protected]. Смирнов Сергей Викторович , доктор технических наук, главный научный сотрудник лаборатории анализа и моделирования сложных систем, Самарский федеральный исследовательский центр РАН, Институт проблем управления сложными системами РАН; профессор кафедры «Программное обеспечение и управление техническими системами», Поволжский государственный университет телекоммуникаций и информатики, Самара, Россия; e-mail: [email protected].
Chelyabinsk Physical and Mathematical Journal. 2022. Vol. 7, iss. 3. P. 267-276.
DOI: 10.47475/2500-0101-2022-17301
METHOD FOR SOLVING THE BACKPACK PROBLEM WITH AN ADDITIONAL RESTRICTION ON THE NUMBER OF ITEMS TYPES
V.P. Ofitserov1a, S.V. Smirnov2'36
1 Moscow Aviation Institute (National Research University), Moscow, Russia
2Samara Federal Research Scientific Center RAS,
Institute for the Control of Complex Systems RAS, Samara, Russia
3Povolzhskiy State University of Telecommunications and Informatics, Samara, Russia
[email protected], [email protected]
The task of forming a backpack with the maximum cost in case of the given restriction for the number of types of objects is considered. The choice of types is made from a finite set; the quantity of objects of each type is unlimited. When accounting additional restriction for the number of types of objects in a backpack (no more d* from n possible types), the known methods of solution of the task about a backpack are ineffective. The method offered in the article relies on the idea of the dynamic programming of carrying out computation with use of results of the previous steps. On the first step of an algorithm the maximum cost of the created virtual backpacks in the case of their filling with objects only of one type is determined. On the second and the subsequent steps the maximum cost of the virtual backpacks in the case of their serial filling with objects of two types is determined, on the third — three types, etc. In the case of computation of the current maximum filling of the virtual backpacks the results received on the previous and first steps are used. It is proved that the offered method allows to receive a global extremum of target function and has smaller labor input in comparison with the known exact algorithms. The assessment of computing complexity of the algorithm is given.
Keywords: the task about a backpack, additional restrictions, dynamic programming.
References
1. MarteloS., TothP. Knapsack Problems. Wiley, 1990.
2. Bretthauer K.M., ShettyB. The nonlinear knapsack problem — algorithms and applications. European Journal of Operational Research, 2002, vol. 138, no. 3, pp. 459472.
3. KellererH., PferschyU., PisingerD. Knapsack Problems. Berlin, Heidelberg, Springer Verlag, 2004.
4. KormenT., Leyzerson Ch., RivestR., Stein K. Algoritmy: postroyeniye i analiz [Algorithms: creation and analysis]. Moscow, I.D.Williams, 2013. (In Russ.).
5. HuH., Zhang X., YanX., WangL., XuY. Solving a new 3D bin packing problem with deep reinforcement learning method. arXiv: 1708.05930, 2017.
6. MassobrioR., Dorronzoro Diaz B., Nesmachnov Canovas S.E. Virtual Savant for the Knapsack Problem: learning for automatic resource allocation. Trudy Instituta sistemnogo programmirovaniya RAN [Proceedings of the Institute of System Programming of Russian Academy of Sciences], 2019, vol. 31, no. 2, pp. 21-32.
7. Kolpakov R.M., PosypkinM.A. Verkhnyaya i nizhnyaya otsenki trudoyomkosti metoda vetvey i granits dlya zadachi o rantse [Upper and lower bounds for the complexity of branch and boundaries methods for knapsack problems]. Trudy Instituta sistemnogo analiza RAN [Proceedings of the Institute of System Analysis of Russian Academy of Sciences], 2008, vol. 32, pp. 137-158. (In Russ.).
8. Bellman R., Dreyfus S. Prikladnyye zadachi dinamicheskogo programmirovaniya [Applied problems of dynamic programming]. Moscow, Nauka Publ., 1965.
9. Bellman R.E. Dynamic Programming. Princeton, University Press, 2010.
10. Kartushin D.Yu., Maksimenkova A.R., Ugolnitsky G.A. Optimizatsiya kolichestva zayavok pri zadannom byudzhete innovatsiy [Optimization of the quantity of applications with a given budget of innovations]. Sovremennaya ekonomika: problemy i resheniya [Modern economic: problems and solutions], 2016, vol. 6 (78), pp. 20-33. (In Russ.).
Article received 19.05.2022.
Corrections received 04.08.2022.