5) итерационный поиск подмножества грузов с числом грузов М с суммарным весом грузов больше или равно W;
6) выбор из множества подмножеств с максимальной мощностью М, подмножества, с суммарным весом грузов меньше или равно W, суммарная ценность грузов в котором была бы максимальной, путём перебора конечного числа этих подмножеств, т.е. получение искомого результата;
7) выбор локального оптимума решения задачи о ранце путём уменьшения значения М и выбора Nуг.
Алгоритм решения задачи о ранце
Шаг 1) Выбор подмножества грузов с максимальной мощностью М, так чтобы их общий вес не превосходил W, путём выбора М грузов с минимальным весом и запоминание его значения т.е. запоминание этого числа.
Шаг 2) Производится сортировка и запоминание грузов в соответствии с их весом, а также запоминается ценность этих грузов.
Шаг 3) Выбирается значение Nуг, и запоминается
Шаг 4) Выбирается множество грузов с мощностью согласно Nуг с соответствующими им наилучшими весами и ценами.
Шаг 5) Производится объединения грузов в подмножества грузов по два. Осуществляется запоминание этих подмножеств грузов, с учётом их весов и цен.
Шаг 6) Производится сортировка и запоминание подмножеств грузов по два с соответствующими им наилучшими весами и соответствующей суммарной ценой.
Шаг 7) Выбирается множество подмножеств грузов по два с мощностью согласно Nуг с соответствующими им наилучшими суммарными весами и соответствующей суммарной ценой.
Шаг 8) Производится объединения грузов по два в подмножества грузов по три и запоминание этих подмножеств, с их суммарным весом и соответствующей суммарной ценой показанное на рис.10. Осуществляется проверка суммарного веса подмножеств грузов по три. Подмножества грузов по три с суммарным весом больше W не рассматриваются.
Рис. 4.11. Объединение грузов по три.
Данная процедура объединения подмножеств грузов меньшей мощности в подмножества грузов большей мощности, по различным правилам, должна повторятся до получения подмножеств грузов с числом грузов m = (М+1)/2 для M нечётных и с числом грузов m = M/2+1 для M чётных (пример объединения показан на рис. 4.12.). Где M максимальная мощность подмножества грузов в непустом множестве подмножеств грузов с общим весом меньше или равно W. Подмножества грузов большей мощности с суммарным весом больше W не рассматриваются. После каждого объединения, производится сортировка подмножеств грузов большей мощности в соответствии с их наилучшими суммарными весами и запоминание этих подмножеств грузов большей мощности с их суммарными весами и соответствующей суммарной ценой, а затем выбор подмножеств грузов большей мощности с их наилучшими суммарными весами и соответствующей суммарной ценой согласно Nуг. Если множество подмножеств грузов большей мощности в результате объединения на каком-то этапе данного объединения будет пусто то увеличиваем Nуг на определённое значение и запоминаем. Переходим к шагу 3. Если в результате объединения подмножеств грузов большей мощности будет равно и это множество этих подмножеств грузов будет не пусто, то переходим к шагу 9.
Рис. 4.12.Пример объединения грузов.
Шаг 9) В полученном множестве подмножеств грузов большей мощности числом грузов равным осуществляем их объединение, для получения множества подмножеств грузов мощности М. Если множества подмножеств грузов мощности М будет пусто то увеличиваем Nуг на определённое значение и запоминаем. Переходим к шагу 3. Если в результате объединение получим не пустое множество грузов мощности М, то выбираем из полученного множества подмножество грузов мощности М с суммарным весом грузов больше W. Если такое подмножество грузов мощности М, с суммарным весом грузов больше или равно W, будет не найдено то увеличиваем Nуг на определённое значение и запоминаем. Переходим к шагу 3. Иначе выбираем из полученного множества подмножеств грузов мощности М подмножество грузов с суммарным весом грузов меньше или равно W и с максимальной суммарной ценой, которое и будет искомым решением задачи о ранце.