Читать книгу Искусственный разум. Параллельная специализированная гибридная машина. Метод точного мгновенного решения NP задачи - Геннадий Васильевич Степанов - Страница 3

Задача о ранце

Оглавление

Введение

Задача о ранце одна из труднорешаемых задач дискретной математики.

Название своё получила от максимизационной задачи укладки как можно большего числа ценных вещей в ранец при условии, что общий вес (или объём) всех предметов способных поместиться в ранец, ограничен.

Следовательно, эта задача является двухкритериальной.

На первом этапе решения необходимо найти множество подмножеств грузов с максимальной мощностью числа ценных вещей помещаемых в рюкзак, с учётом ограничения для ранца по весу W, а затем выявить максимальную суммарную ценность грузов в результате перебора конечного числа этих подмножеств с целью получить глобальное оптимальное решение.

На втором этапе решения нужно определить локальный оптимум решения задачи о ранце, уменьшая мощность подмножеств грузов.

В настоящее время не найдено эффективного метода точного решения задачи о ранце.

Постановка задачи о ранце

Пусть для задачи о ранце имеется n грузов. Для каждого i-го груза определён вес и ценность p,. Дана грузоподъёмность W.

Необходимо выбрать подмножество грузов максимальной мощностью, так чтобы их общий вес не превышал W, а суммарная их ценность была бы максимальной.

Метод решения задачи о ранце

Принимаем в качестве числа угадывания (Nуг) определённое числа грузов и объединений грузов различной мощности.

Предварительно необходимо выбрать подмножества грузов с максимальной мощностью М, так чтобы их общий вес не превышал W, путём выбора М грузов с минимальным их весом, и запомнить это число.

Первоначально осуществляется объединение и упорядочение по весу подмножества грузов по два. В дальнейшем проводиться поэтапное объединение грузов в конечные подмножества грузов, с увеличением мощности подмножества с упорядочением этих подмножеств по возрастанию веса, до получения множества грузов мощностью М по различным правилам.

Конечные подмножества проверяются по суммарному весу, которые не должны превышать W. Осуществляется итерационное угадывание количества этих подмножеств с различной мощностью, с последующей проверкой возможности выбрать подмножество грузов мощностью М, так чтобы их общий вес не превышал W.

После выявления множества подмножества грузов мощностью М с суммарным весом грузов меньше или равно W., с помощью данного метода, находится среди этого конечного множества искомый результат решения задачи о ранце в виде подмножество грузов, суммарная ценность которого была бы максимальной.

В результате поиска, согласно данного метода путём увеличения значения Nуг, после получении первого подмножества с мощностью М суммарным весом грузов больше W, процесс поиска заканчивается. Затем осуществляется выбор локального оптимума решения задачи о ранце с мощностью меньше М, путём уменьшения значения М и выбора Nуг.

Индикатором нахождения оптимального решения является само появление первого подмножества с суммарным весом грузов больше или равно W.

Для данного метода существует зависимость, согласно закономерности, присущей задачам комбинаторной оптимизации, которая является объективной.

В общем виде её можно представить в виде положительного градиента со сдвигом относительно начала координат.


Рис. 4.10. Выявленная зависимость между Кw и Nm.


Где Кw – количество подмножеств мощностью М с суммарным весом грузов больше или равно W, Nm– шкала количества подмножеств грузов мощностью М, а Nуг – количество угаданных подмножеств грузов.

Метод включает:

1) выбор множества грузов с максимальной мощностью М, так чтобы их общий вес не превышал W, путём выбора грузов М с минимальным весом;

2) упорядочение множества грузов по возрастанию веса;

3) объединения грузов в подмножества грузов по два с последующим упорядочением и выбором этих подмножеств грузов с их наилучшими суммарными весами и соответствующей суммарной ценой согласно Nуг;

4) поэтапное объединение подмножества грузов меньшей мощностью грузов в подмножества грузов большей мощностью с последующим упорядочением до получения подмножеств грузов с числом грузов (М+1)/2 для М нечетных и с числом грузов М/2 +1 для М чётных и выбором, в дальнейшем, множества грузов подмножеств грузов большей мощности с их наилучшими суммарными весами и соответствующей суммарной ценой согласно Nуг.;

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 и с максимальной суммарной ценой, которое и будет искомым решением задачи о ранце.


Шаг 10) Уменьшаем значение М на 1, выбираем Nуг, и запоминаем. Если М> 0 то переходим к шагу 3. Иначе переходим к шагу11.


Шаг 11) Выбираем, из полученного множества локальных подмножество грузов с максимальной суммарной ценой для различных уменьшенных значений М, подмножество грузов с максимальной суммарной ценой, который и будет локальным оптимумом решения задачи о ранце.

Индикатором нахождения искомого результата является само появление такого подмножества грузов мощности М, суммарный вес грузов которого будет больше или равен W.

Демонстрационный пример решения задачи о ранце

Для задачи о ранце определим, что ранец имеет грузоподъёмность W = 12. Количество грузов n = 5. Значения весов грузов W зададим в виде таблицы 3.


Таблица 3. Определение весов грузов


Для данного множества грузов максимальная мощность подмножеств грузов М = 3.


Согласно моего метода, для получения оптимального решения задачи о ранце, необходимо чтобы:


m = (М+1) /2 для M для нечётных;


m = M/2+1 для для чётных.


Для данного примера задачи о ранце: М = 3, m = 2.


Значения цены грузов P зададим в виде таблицы 4.

Таблица 4. Определение цены грузов


С помощью метода неявного перебора был получен оптимальный результат для данного примера задачи о ранце:


W = W2 + W4 = 4 + 8 = 12


P = P2 + P4 = 6 + 7 = 13


Занесём определённый упорядоченный вектор грузов относительно значений весов грузов и их цены в таблицу 5.


Произведём объединение грузов из множества грузов в подмножества грузов по два и по три.


Полученные упорядоченные вектора подмножества грузов по два и по три и их значений суммарных весов грузов и цен занесём в таблицу 5.

Таблица 5. Определённый и полученные упорядоченные вектора грузов


Из таблицы 5 видно, что для определения глобального оптимального результата в данном примере задачи о ранце: для данного метода достаточно чтобы Nуг = 3. Искомый результат:


W = W1 + W2 + W3 = 3 + 4 + 5 = 12


P = P1 + P2 + P3 = 1 + 6 + 4 = 11

Таким образом, без перебора вариантов решения задачи о ранце, находим данным методом глобальный оптимальный результат данного примера задачи о ранце.

Основываясь на данных из таблицы, определим зависимость числа подмножеств по три (Kw3) с суммарным весом грузов больше или равно W = 12, от числа угадывания (N) на шкале угадывания (Nm) для данного метода.


Рис. 4.13. Выявленная зависимость между Кw3  и Nm.


Где Кw3 – количество подмножеств грузов по три, с суммарным весом грузов больше или равно W.

Nm – шкала угадывания количества подмножеств грузов.

Nуг – количество угаданных подмножеств грузов.


Согласно данного метода определим локальное оптимальное решения задачи о ранце для значений:

М = 2 и Nуг = 4.

Рассмотрим таблицу 6 для значений М = 2 и Nуг = 4.


Таблица 6. Определённый и полученный упорядоченный вектор грузов для М = 2 и Nуг = 4.


Из таблицы 6 определим локальное оптимальное решения задачи о ранце:


W = W2 + W4 = 4 + 8 = 12


P = P2 + P4 = 6 + 7 = 13

Согласно метода, определим локальное оптимальное решения задачи о ранце для значений М = 1 и Nуг = 5 согласно таблицы 7.


Таблица 7. Определённый вектор грузов для

М = 1 и Nуг = 5


Из таблицы 7 определим локальное оптимальное решения задачи о ранце для М = 1 и Nуг = 5 :


W = W4 = 8


P = P4 = 7

Исходя из вышеизложенного выбираем локальный оптимальный результат данного примера задачи о ранце:


W = W2 + W4 = 4 +8 = 12


P = P2 + P4 = 6 + 7 = 13.


Таким образом, без перебора вариантов решения задачи о ранце, находим данным методом локальный оптимальный результат и глобальный оптимального результат для данного примера задачи о ранце с помощью моего метода. Определение лучшего результата требует выполнение дополнительных условий. Необходимо определить, что для нас является более важным, число грузов или их ценность.

Что и требовалось доказать.

Искусственный разум. Параллельная специализированная гибридная машина. Метод точного мгновенного решения NP задачи

Подняться наверх