Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

дискретка / Лекция 22

.doc
Скачиваний:
57
Добавлен:
27.05.2015
Размер:
689.66 Кб
Скачать

Лекция 22.

п.18. Дискретное программирование.

18.6. Задача о рюкзаке.

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

Вариант 1. Пусть имеется n неделимых предметов с номерами . Вес i-го предмета равен , его ценность . Требуется выбрать совокупность предметов с мини-мальным общим весом при условии, что общая ценность груза не меньше заданной величины c.

Введем переменные , которые принимают лишь два значения: , если данный предмет укладывается в рюкзак, – в противном случае. Тогда математи-ческая модель задачи имеет вид:

;

; (18.6.1.)

.

Вариант 2. Имеется n предметов. Предмет имеет вес и обладает полезностью . Пусть b – общий максимальный допустимый вес предметов, которые можно положить в рюкзак. Требуется выбрать предметы таким образом, чтобы их общий вес не превышал максимально допустимый, и при этом суммарная полезность (ценность) содержимого рюкзака была максимальной.

Пусть , если предмет положен в рюкзак, и в противном случае. Математическая модель задачи имеет вид:

;

; (18.6.2.)

.

Процесс решения этой задачи опирается на метод ветвей и границ. Пусть  – множество планов задачи (18.6.1.). Расширим его до «непрерывного» , т.е. будем считать, что все предметы допускают произ-вольную делимость без потери относительной ценности (т.е. ценности на единицу веса). В качестве оценки множества  рассмотрим следующую величину:

Очевидно, что .

Опишем алгоритм дробления и связанную с ним систему оценок.

Алгоритм решения задачи о рюкзаке.

Этап 1. Определение нижней оценки начального опорного плана.

Подсчитываем относительные веса предметов, т.е. i-го предмета на единицу ценности. Выбираем предмет с номером с наименьшим относительным весом и загру-жаем его (точнее «засыпаем» в раздробленном виде) в рюкзак до тех пор, пока не будет достигнута заданная ценность c или же не будет «засыпан» весь предмет. Возможны следующее случаи.

1 (1). Если , то . Из оставшихся предметов выбираем предмет с номером с наименьшим относительным весом. Если , то и т.д.

1 (2). Если для какого-либо номера получаем , то . Остальные .

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

1 (3). Если , то план , а . Это значит, задача не имеет решения из-за несовместности ограничений.

Этап 2. Построение оптимального плана.

Если начальный опорный план – целочисленный, т.е. , то этот план является оптимальным. Задача решена. Если план не является целочисленным, то разбиваем множество – множество всех планов задачи на два подмножества: и .

В качестве оценок данных множеств будут следующие величины:

а (1) для : ;

;

.

б (1) для : ;

;

.

В результате получаем два плана и , для которых находим и . Сравниваем и .

Если , то дальнейшему разбиению подлежит множество , кото-рое разбиваем на два подмножества и .

а (21) для : ;

;

.

б (21) для : ;

;

.

Если , то разбиению подлежит множество на два подмножества и .

а (22) для : ;

;

.

б (22) для : ;

;

.

Далее находим оценки и по правилу первого этапа. Сравниваем полученные оценки.

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

Этап 3. Получение оптимального плана.

Определяем оценки опорных целочисленных планов и , т.е. и .

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

Пример 18.3. Решить задачу о рюкзаке с общей ценностью груза и данными представленными таблицей

.

Решение. Составляем математическую модель задачи:

;

;

.

Составляем оценку множества 0 всех планов задачи:

;

;

.

Этап 1. Установим последовательность загрузки предметов, для чего подсчитаем относительные веса по формуле . Полученные величины, а так же последовательность загрузки занесем в таблицу.

Согласно полученным данным, первым загружается шестой предмет. Поскольку

, то полагаем .

Вторым загружается четвертый предмет. Поскольку , то .

Так как , то . Третьим загружается первый предмет.

, то . Четвертым загружается второй предмет.

, то . Пятым загру-жается пятый предмет, но не целым.

Заданная ценность достигнута. Значит, .

Получаем следующий начальный план . Оценка множества всех планов (нижняя граница) равна .

Этап 2. План не является оптимальным, поскольку не является целочислен-ным, т.к. – дробная. Разбиваем множество планов  на два подмножества: и .

Для : ;

;

.

Для : ;

;

.

а (1) для :

;

;

;

;

.

Значит, опорный план задачи , .

б (1) для :

;

;

;

;

.

Значит, , .

Так как и план не является целочисленным, то далее разбиваем множество на два подмножества и .

а (2) для : ;

;

.

;

;

;

;

.

Значит, , .

б (2) для : ;

;

.

;

;

;

;

.

Значит, , .

Так как , план не является целочисленным, то далее разбиваем множество на два подмножества и .

а (3) для : ;

;

.

;

;

;

;

Значит, , .

б (3) для : ;

;

.

;

;

;

.

Значит, , .

Так как , план не является целочисленным, то далее разбиваем множество на два подмножества и .

а (4) для : ;

;

.

;

;

.

Получаем, что , это значит, план , а .

б (4) для : ;

;

.

;

;

;

Значит, , .

План не является целочисленным, то далее разбиваем множество на два подмножества и .

а (5) для : ;

;

.

.

Получаем, что , это значит, план , а .

б (5) для : ;

;

.

;

.

Значит, , .

Этап 3. Итак, план целочисленный. Его оценка равна . Планы и исключаем и дальше не рассматриваем. Сравниваем оценки планов , , с оценкой плана . Так как

;

;

,

то план является оптимальным.

Значит, вес рюкзака равен 19 и в него должны быть загружены первый, второй, четвертый и пятый предметы.

Весь процесс решения задачи можно изобразить в виде дерева ветвления.

Соседние файлы в папке дискретка