Задача об оптимальной загрузке транспортного средства неделимыми предметами
Пусть в самолет требуется погрузить 4 вида предметов, чтобы с умма эффективностей этих предметов (например, стоимость) была
максимальна. Грузоподъемность самолета равна W; P1 , P2 , P3 , P4 , -
масса соответствующей единицы различных предметов; | V1, V2, V3, V4 | ||
- соответствующая эффективность каждого предмета; | - | x1, x 2, x3, x4 | |
число предметов различных видов, взятых на борт самолета. | |||
Эту задачу называют задачей о “рюкзаке” из-за следующей гипотетичекой ситуации. Турист, собираясь в поход, должен решить, какие предметы взять с собой. Каждый предмет имеет свою массу и свою ценность. Требуется, чтобы общая масса рюкзака с выбранными предметами не превышала некоторой заданной массы, а их общая ценность была максимальной.
Для определенности примем, что: W = 83;
P1=24, P 2=22, P3=16, P4=10, V | 1= 96,V2 | = 85, V3 | = 50, V4= 20 | ||||
условных единиц.
Очевидно, что это задача целочисленного программирования. Примем для ее решения многошаговый процесс принятия решения
(динамическое программирование). Согласно общей схеме будем решать задачу в два этапа. На первом этапе найдем возможные оптимальные варианты планов (решений) при последовательной оптимизации по одной переменной, а на втором этапе выберем из этих “заготовок” оптимальное решение нашей задачи.
Первый этап.Он будет содержать4шага.
На шаге 1 находят возможные оптимальные варианты загрузкисамолета только предметами первого вида. Нам необходимо найти и запомнить значения x1 и соответствующую им максимальную стоимость груза f1(W) при различных возможных значениях W . В этом случае
максимальная эффективность груза
число, не превосходящее z. Зададимся значениями W с некоторым шагом и найдем для них x1и f1(W) . Очевидно, если грузоподъемность самолета
меньше 24 ед., то ни одного предмета первого вида погрузить нельзя. При грузоподъемности от 24 до 47 ед. можно погрузить 1 ед. предмета первого вида и т.д. Результаты представим в виде таблиц. Значения W , f1(W)и x1приведены в таблице1.
Таблица 4.1.
W | f1(W) | x1 |
0..23 | ||
24..47 | ||
48..71 | ||
72..87 |
В таблицах принят более широкий предел для W - до 87 ед.
Проведем оптимизацию на шаге2. Рассмотрим эффективность груза, если загрузить самолет предметами первого и второго типов.
Максимум этого выражения ищут только по x2 . Но мы не знаем, какая
грузоподъемность W может потребоваться для предметов второго типа. Поэтому мы должны рассмотреть выражение для f2(W) при различных
значений W от 0 до 83. При вычислении f (W-P2x2 ) воспользуемся уже
полученными результатами (табл. 1).
Например, возьмем W = 46 ед. Для x 2 возможны значения 0, 1, 2. Соответствующая эффективность от предметов второго вида равна 0, 85, 170, а для предметов первого вида остается грузоподъемность 46, 24, 2 ед. находим f1(W) = 96; 96; 0 ед. Складываем соответствующие значения
0+96 = 96 ед., 85+96 =181 ед., 170+0=170 ед, и выбираем наибольшее 181
ед. Оно получено при x2 =1. Для W =46 заносим в табл. 2 x2 =1;
f 2(W)=181.Результаты вычисления f 2(W)и x2 | приведены в таблице 2. | ||||
Таблица 4.2. | |||||
W | f 2(W) | x2 | |||
0...21 | |||||
22...23 | |||||
24...43 | |||||
44...45 | |||||
46...47 | |||||
48...65 | |||||
66...67 | |||||
68...69 | |||||
70...71 | |||||
72...87 |
Из таблицы 2 следует, что при грузоподъемности транспортного средства до 21 ед. ничего в него погрузить нельзя, при грузоподъемности 22...23 ед. можно погрузить только один предмет второго типа.при грузоподъемности 24...43 ед. либо один предмет первого типа, либо один предмет второго типа. Максимальная эффективность груза будет при погрузке предметами первого типа. При грузоподъемности 44...45 ед. можно погрузить либо один предмет первого вида, либо два предмета второго вида. Большая эффективность груза будет в последнем случае, и f 2(W)=170.При грузоподъемности46...47ед.можно погрузить один
предмет первого вида, до двух предметов второго вида или же по одному предмету первого и второго видов. Эффективность груза в последнем варианте максимальна...
Шаг 3. Будем загружать транспортное средство предметами первыхтрех видов. Требуется максимизировать по x3
Таблица 4.3. | |||||||||||
W | f3(W) | x3 | |||||||||
0...15 | |||||||||||
16...21 | |||||||||||
22...23 | |||||||||||
24...31 | |||||||||||
32...37 | |||||||||||
38...39 | |||||||||||
40...43 | |||||||||||
44...45 | |||||||||||
46...47 | |||||||||||
48...63 | |||||||||||
64...69 | |||||||||||
70...71 | |||||||||||
72...87 | |||||||||||
Задаемся | значением | W и для каждого | такого значения получаем | ||||||||
максимум | f123поx3. | Значения | f 2(W)берут из табл. 2.Например,пусть |
W = 38ед.Возможное значение x3= 0; 1; 2ед.и соответствующаяэффективность предметов третьего вида - 0; 50; 100 ед. На предметы первого и второго видов остается соответственно грузоподъемность 38; 22; 6 ед. По табл. 2. находим f2(W) = 96; 85; 0 ед. Суммарная
эффективность 96; 135; 100 ед. Максимальное значение эффективности при W = 38 ед. равно 135 ед. для x3 = 1. Результаты расчетов помещены в
табл. 3.
Шаг 4. Зададимся значением W ,которое может быть занято грузомчетырех видов и вычислим x4 , f4 (W) (табл. 4.). Строго говоря, здесь нам
достаточно было бы вычислить одну строку табл. 4 для W =83.
Таблица 4.4.
W | f 4(W) | x4 |
0...9 | ||
10...15 | ||
16...21 | ||
22...23 | ||
24...33 | ||
34...37 | ||
38...39 | ||
40...45 | ||
46...47 | ||
48...57 | ||
58...63 | ||
64...69 | ||
70...71 | ||
72...81 | ||
82...87 |
Второй этап.Нахождение оптимального решения поставленнойзадачи. Максимальное значение f4(W) - это есть W*, соответствующее значение аргумента x4 - количество груза четвертого вида, который берет самолет ( x4 ):
W*=max f 4(W) =308; x*4=1.
Масса предметов четвертого вида будет x*4P4 =10 ед.
На остальные три вида груза остается W - 10 =73 ед. При значении W = 73ед.по табл. 3получаем x3*= 0;аналогично получаем x*2= 0; x1*= 3.
Если еще раз вернуться к табл. 1- 4, то увидим, что они содержат “заготовки” для оптимальной загрузки самолета любой грузоподъемности ( до W =87 ед.) указанными предметами. Таким образом, мы решили не только поставленную задачу, а большой набор родственных задач. С одной стороны, это хорошо, но, с другой стороны, в памяти компьютера необходимо хранить таблицы 1- 4 на протяжении всего процесса решения. Для сложных задач последнее обстоятельство имеет существенное значение и ограничивает возможности рассмотренного метода.