2.3. Задача о загрузке транспортного средства
Условие задачи. Транспортное средство грузоподъемностью М — 50 усл. ед. массы загружается предметами трех типов Т\,Т2,Т$, масса т и стоимость р усл. ден. ед. каждого из которых известны и приведены в таблице.
|
Ті |
т2 |
Т3 |
771 |
11 |
17 |
23 |
Р |
20 |
36 |
48 |
Требуется найти такой вариант загрузки, при котором стоимость перевозимого груза была бы максимальной.
Замечание 1. В иной интерпретации данная задача известна как задача о рюкзаке или о ранце. При этом грузоподъемность транспортного средства аналогична вместимости ранца, а масса и стоимость погружаемых предметов имеют то же самое смысловое значение.
Замечание 2. Интуитивно может показаться, что для достижения максимума стоимости груза следует загружать транспортное средство только теми предметами, для которых отношение р/т стоимости к массе — будем называть данное отношение ценностью предмета — является максимальным. Это предположение действительно верно при условии, что грузоподъемность транспортного средства кратна массе предмета с максимальной ценностью. При отсутствии кратности данный принцип может нарушаться. В качестве простейшего примера можно рассмотреть значение грузоподъемности М = 7 при двух типах предметов Т\ и Т2 со следующими параметрами:
|
Ті |
т2 |
т |
2 |
3 |
Р |
5 |
9 |
Для предмета типа Т\ ценность p/m = 2,5, для предмета типа Т2 ценность p/m — 3. Использование предметов типа Т2 с большей ценностью позволяет погрузить два предмета общей стоимостью 18. В то же время загрузка одного предмета типа Т2 и двух предметов типа Т\ дает стоимость, равную 19. Дело в том, что при отсутствии нужной кратности остается неиспользованной часть грузоподъемности, которую в некоторых случаях можно использовать более рационально. Таким образом, для решения данной задачи следует применить более точные методы, например метод ДП.
Решение. В данной задаче управляемой системой является загружаемое транспортное средство, многошаговым процессом — процесс планирования погрузки предметов. Экономический эффект представляет стоимость груза, и при этом задача решается на поиск максимума. Проведем математическую формализацию поставленной задачи.
1. Число шагов N в данной задаче следует принять равным 3, соответствующим числу типов погружаемых предметов: на первом шаге планируется погрузка предметов типа Т\, на втором шаге — предметов типа Т2, на третьем — типа Т3.
2. В качестве фазовой переменной х, определяющей состояние системы в ходе процесса, примем суммарную массу предметов, погруженных в транспортное средство. Именно, переменная Х\ представляет массу предметов, погруженных в транспортное средство после первого шага процесса (т. е. только предметов типа Т\), х2 — массу предметов, погруженных после второго шага (предметов типов Т\ и Т2), — массу предметов, погруженных после третьего шага процесса (предметов всех типов Т\, Т2 и Тз). Поскольку в начальный момент общая масса предметов, погруженных в транспортное средство, равна 0, то начальное состояние системы характеризуется значением Хо = 0. Чтобы не допустить перегруза транспортного средства, обязательно должно выполняться условие
Xi ^ М.
3. В качестве управляющей переменной и примем количество предметов каждого типа, погружаемых в транспортное средство. Именно, переменная и\ представляет количество предметов типа Т\, погружаемых в транспортное средство на первом шаге процесса, и2 — количество предметов типа То, погружаемых на втором шаге, щ — количество предметов типа 2з, погружаемых на третьем шаге процесса. Ясно, что все управления принимают только целочисленные значения
4. Функция процесса х, = /г(.7;г__1, щ). определяющая закон изменения состояния системы, для данной задачи представляется формулой
Хг = Жг_1 + Щ-ГП1
и имеет следующий смысл: суммарная масса Х{ предметов, погруженных в транспортное средство после шага с номером г, равна суммарной массе Х{-\ предметов, погруженных после предшествующего шага, плюс масса погруженных на текущем шаге предметов, равная щ-ггц — числу предметов, умноженному на массу каждого предмета.
5. Функция определяющая частный экономический эффект на шаге процесса с номером г, для данной задачи представляется формулой _
— Р1
и равна произведению числа погруженных предметов и стоимости каждого предмета соответствующего типа. Результирующий экономический эффект, или целевая функция 2, определяется по формуле
2 — 2\ + 22 + 23.
На этом завершается математическая формализация поставленной задачи, т. е. построение ее экономико-математической модели. Подчеркнем, что основные допущения метода ДП выполняются: отсутствие последействия и аддитивность результирующей целевой функции следуют из явных формул для вычисления Хг и 2{. Тем самым можно непосредственно приступить к расчетам в соответствии с методом ДП. Как и в предшествующей задаче, все получаемые при решении таблицы приведены сразу окончательно заполненными.
Предварительный этап. Данный этап решения задачи проводится в естественном порядке для г = 1,2,3, причем заполняются только первая строка вспомогательной таблицы и четыре левых столбца основной таблицы.
г = 1.
Вспомогательная таблица соответствует начальному условию жо = О и имеет вид
Хо |
0 |
Во{хо) |
96 |
Заполнение основной таблицы проводится обычным образом. Для заданного единственного допустимого значения хо = 0 выбираем все возможные значения управления щ и заносим их во второй столбец таблицы. При этом управление щ может принимать только целочисленные значения от 0 до 4 включительно, иначе возникнет перегруз. По формулам х\ = жо + щ ■ т\ и г\ = и\ • р\ (вытекающим из общих формул при г = 1) проводим расчет соответствующих значений переменных х\ и г\ и заносим их в третий и четвертый столбцы. Получаем основную таблицу:
х0 |
щ |
Хі |
21 |
Ві(®і) |
гі+Вг |
В0(х0) |
0 |
/0 |
0 |
0 |
96 |
96 |
96 |
|
1 |
И |
20 |
72 |
92 |
|
|
2 |
22 |
40 |
48 |
88 |
|
|
/3 |
33 |
60 |
36 |
96 |
|
|
4 |
44 |
80 |
0 |
80 |
|
Переходим к следующему шагу. г = 2.
На втором шаге в первую строку вспомогательной таблицы внесем все значения переменной х\, рассчитанные на предшествующем шаге и фигурирующие в третьем столбце предыдущей основной таблицы:
Х\ |
0 |
11 |
22 |
33 |
44 |
|
96 |
72 |
48 |
36 |
0 |
Для заполнения основной таблицы будем последовательно выбирать все допустимые значения х\, внесенные во вспомогательную таблицу, и проводить соответствующие расчеты. Для значения х\ = 0 находим все возможные значения управления (оно может принимать только значения 0, 1 и 2, иначе возникнет перегруз) и заносим их во второй столбец таблицы. По формулам х^ — хг_\ + щ ■ гпг и 2, = щ ■ Рг, взятым для г = 2, проводим расчет значений х-2 и 22 и заносим их в третий и четвертый столбцы. На этом завершается заполнение первого строчного фрагмента основной таблицы, соответствующего х\ = 0. Аналогично заполняются все остальные строчные фрагменты основной таблицы, которая принимает такой вид:
XI |
«2 |
Х2 |
22 |
В2(х2) |
22 + В2 |
Ві(Хі) |
0 |
/0 |
0 |
0 |
96 |
96 |
96 |
|
1 |
17 |
36 |
48 |
84 |
|
|
2 |
34 |
72 |
0 |
72 |
|
XI |
«2 |
XI |
22 |
В2{х2) |
г2 + В2 |
Вііхг) |
11 |
0 |
11 |
0 |
48 |
48 |
72 |
|
1 |
28 |
36 |
0 |
36 |
|
|
/2 |
45 |
72 |
0 |
72 |
|
22 |
/0 |
22 |
0 |
48 |
48 |
48 |
|
1 |
39 |
36 |
0 |
36 |
|
33 |
0 |
33 |
0 |
0 |
0 |
36 |
|
/1 |
50 |
36 |
0 |
36 |
|
44 |
0 |
44 |
0 |
0 |
0 |
0 |
Переходим к следующему шагу, г = 3.
На третьем шаге в первую строку вспомогательной таблицы внесем все значения параметра х2, рассчитанные на предшествующем шаге и фигурирующие в третьем столбце предыдущей основной таблицы. Получаем следующую вспомогательную таблицу:
х2 |
0 |
И |
17 |
22 |
28 |
33 |
34 |
39 |
44 |
45 |
50 |
В2{х2) |
96 |
48 |
48 |
48 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Заполнение основной таблицы проводим обычным образом: |
х2 |
из |
хз |
23 |
Вз(хз) |
2з + Вз |
в2(х2) |
0 |
0 |
0 |
0 |
0 |
0 |
96 |
|
1 |
23 |
48 |
0 |
48 |
|
|
/2 |
46 |
96 |
0 |
96 |
|
11 |
0 |
11 |
0 |
0 |
0 |
48 |
|
/1 |
34 |
48 |
0 |
48 |
|
17 |
0 |
17 |
0 |
0 |
0 |
48 |
|
/1 |
40 |
48 |
0 |
48 |
|
22 |
0 |
22 |
0 |
0 |
0 |
48 |
|
/1 |
45 |
48 |
0 |
48 |
|
28 |
0 |
28 |
0 |
0 |
0 |
0 |
33 |
0 |
33 |
0 |
0 |
0 |
0 |
34 |
0 |
34 |
0 |
0 |
0 |
0 |
39 |
0 |
39 |
0 |
0 |
0 |
0 |
44 |
0 |
44 |
0 |
0 |
0 |
0 |
45 |
0 |
45 |
0 |
0 |
0 |
0 |
50 |
0 |
50 |
0 |
0 |
0 |
0 |
На этом предварительный этап завершен. Приступаем к проведению этапа условной оптимизации.
Этап условной оптимизации. Данный этап непосредственно связан с вычислением функций В^(х{) и проводится в обратном порядке для г = 3,2,1. Поскольку в соответствии с общим принципом оптимальности Беллмана имеет место равенство В3(х3) = 0, то в пятый столбец основной таблицы, полученной при г = 3, записываем нулевые значения. При этом в шестой столбец записываются суммы соответствующих чисел из двух предшествующих столбцов, а в последний столбец заносится максимум из всех чисел шестого столбца для каждого строчного фрагмента отдельно. Полученные значения функции В2(х2) заносятся во вторую строку вспомогательной таблицы. Заполненные таблицы уже приведены выше. Аналогично завершается заполнение основных и вспомогательных таблиц для г = 2 и г = 1. Обратим внимание, что в основной таблице для г = 1 имеется два знака «/», показывающие, что искомый максимум достигается на двух значениях управления; это может привести к наличию нескольких оптимальных решений. Приступаем к этапу безусловной оптимизации.
Этап безусловной оптимизации. На данном этапе определяются оптимальное значение задачи Z* и оптимальное управление (и*, «2, «з). Поскольку начальное состояние хо = 0 задано однозначно, то Z* = Во(хо) = 96, = хо = 0. Для построения оптимального управления просмотрим все заполненные основные таблицы в естественном порядке при г = 1,2,3, используя отмеченные знаками «/» строки, содержащие условно-оптимальные значения управления. Получаем такую последовательность шагов.
В соответствующей основной таблице условно-оптимальными являются два значения управления щ = 0 и щ = 3, отмеченные знаком «/». Это означает, что задача имеет не одно, а несколько оптимальных решений. Построим сначала первое решение, соответствующее и\ = 0 и х\ = 0.
На данном шаге из второй основной таблицы выбираем тот строчный фрагмент, который соответствует уже найденному на предшествующем шаге оптимальному значению ж* = 0. В этом фрагменте условно-оптимальным является единственное управление «2 = 0, отмеченное знаком «/»; полагаем и*2 = 0, и в той же строке таблицы находим ж2 = 0.
г = 3.
Из третьей основной таблицы выбираем тот строчный фрагмент, который соответствует найденному на предшествующем шаге х*2 = 0. В этом фрагменте условно-оптимальным является единственное управление «з = 2, отмеченное знаком «/»; полагаем и3 = 2, и в той же строке таблицы находим х\ — 46.
На этом построение первого оптимального решения задачи, имеющего вид (0,0,2), завершено. Проведем построение второго оптимального решения, соответствующего — 3, проходя все основные таблицы еще раз.
i = 1: Xq = 0, и* = 3, х[ = 33. i = 2: х\ — 33, «2 = 1, ^2 = 50. г = 3: х2 = 50, и*3 = 0, х*3 = 50.
Следовательно, второе оптимальное решение имеет вид (3,1,0). Других оптимальных решений задача не имеет.
Тем самым решение задачи закончено. Учитывая экономический смысл введенных переменных и функций, формулируем окончательный ответ к задаче.
Ответ: максимум стоимости погружаемых в транспортное средство
предметов равен 96 усл. ден. ед. При этом существуют два варианта
оптимальной загрузки:
1) погрузить 2 предмета типа Т3\
2) погрузить 3 предмета типа Т\ и 1 предмет типа
К постановке и решению данной задачи необходимо сделать ряд следующих замечаний.
Замечание 3. Обратим внимание на структуру полученных оптимальных решений. Первое решение (0,0,2) вообще не содержит предметов типа Т2 с максимальной ценностью р2/т^ = 2,12.... Второе решение (3,1,0) содержит 3 предмета типа Т\ с минимальной ценностью Pi/mi = 1,82.... Таким образом, оба оптимальных решения задачи далеки от того, чтобы использовать только предметы с максимальной ценностью.Замечание 4. Как легко видеть, целевая функция Z данной задачи возрастает при условии, что количество предметов одного типа увеличивается, а количество предметов других типов не изменяется. Поэтому при планировании последнего шага погрузки для i = 3 можно ограничиться рассмотрением лишь тех значений переменной «з, которые являются максимально допустимыми при фиксированном значении х2. Это подтверждает и вид последней основной таблицы: в ней знаки «V» расположены только у максимальных в своем строчном фрагменте значений щ. Учитывая сказанное, объем вычислений можно несколько сократить, а первые четыре строчных фрагмента основной таблицы для г = 3, соответствующие х2— 0, 11, 17, 22, записать в следующем виде:
Х2 |
«з |
23 |
23 |
В3(х3) |
23+Вз |
В2(х2) |
0 |
2 |
46 |
96 |
0 |
96 |
96 |
11 |
1 |
34 |
48 |
0 |
48 |
48 |
17 |
1 |
40 |
48 |
0 |
48 |
■ 48 |
22 |
1 |
45 |
48 |
0 |
48 |
48 |
Подчеркнем, что сказанное относится только к последнему шагу и не может быть распространено на случаи ! = 1 и г = 2, поскольку увеличение числа предметов типов Т\ или Т2 может в силу ограничения по грузоподъемности привести к вынужденному уменьшению числа предметов типа Т3.
Замечание 5. Аналогично решается задача о загрузке транспортного средства с дополнительным условием, что число погруженных предметов типа Тг должно быть не менее к, , где кг — заданные целые неотрицательные числа. Для решения такой задачи вычисляется масса
7п = к\тп,\ + к2т2 + кзтз
требуемого набора предметов. Если т > М, то задача о загрузке с дополнительным условием решения не имеет. Если 771 = М, то решение и* = к±, и*2 = к2, «з = кз будет являться оптимальным. Если же 771 < М, то решение сводится к рассмотрению обычной задачи о загрузке с грузоподъемностью М — т > 0.
Замечание 6. Обсудим на примере рассмотренных задач вопрос о значимости предварительного этапа метода ДП. Как уже отмечалось выше в гл. 1 и было продемонстрировано в ходе решения, на данном этапе вычисляются все допустимые значения фазовых и управляющих переменных (в частности, области определения функций Беллмана или содержащие их множества). В ряде случаев предварительный этап оказывается малоинформативным. Например, в рассмотренной выше задаче о распределении инвестиций на этом этапе помимо элементарных расчетов лишь подтверждено очевидное умозаключение, что фазовые переменные х,\ и х2 могут принимать все целочисленные значения от 0 до 5 включительно. Заметим тем не менее, что никакой излишней вычислительной работы на данном этапе проведено не было, поскольку все результаты предварительного этапа были использованы на последующем этапе условной оптимизации.
Для рассматриваемой задачи о загрузке ситуация несколько меняется. Проведение предварительного этапа позволило нам при вычислении функции В2(х2) ограничиться рассмотрением одиннадцати значений переменной Х2= 0, 11, 17, ..., 50; остальные значения являются просто нереализуемыми. Этот набор чисел представляет собой область определения функции _В2(ж2). Без проведения предварительного этапа нам пришлось бы начинать расчеты с этапа условной оптимизации для i = 3, причем сразу бы возник вопрос: для каких значений х2 необходимо вычислять функцию В2{х2)1 Конечно, по смыслу задачи 0 ^ X2 ^ M = 50, но в этом промежутке содержится бесконечное множество чисел. Учитывая целочисленность масс предметов всех типов, мы можем сделать вывод и о целочисленности переменной Х2 и ограничиться вычислениями В2(х2) только для целых чисел от 0 до 50. Таких чисел всего 51, что значительно больше 11 допустимых значений, выявленных на предварительном этапе. Таким образом, проведение предварительного этапа позволяет заметно сократить объем вычислений.
Если условие целочисленности масс предметов не выполняется, что вполне может быть в реальных задачах, то ситуация усложняется. Действительно, пусть массы предметов заданы с точностью 0,1 усл. ед. (например, можно принять mi=10,8, ТП2=17,4, тз=23,7; оптимальные решения и оптимальное значение задачи при этом не изменятся). Тогда переменная х2 как сумма масс предметов типов Т\ и Т2 тоже обязана иметь точность представления 0,1; в промежутке от 0 до 50 такая переменная может принимать 501 значение, и число подлежащих рассмотрению вариантов возрастает практически на порядок. В то же время проведение предварительного этапа позволяет выявить, как и выше, всего 11 допустимых значений переменной х2 (среди которых большинство не являются целыми, а представлены с точностью 0,1). Аналогичная ситуация возникает и в том случае, когда условие целочисленности масс сохраняется, а грузоподъемность увеличивается в 10 раз до значения M = 500.
Подчеркнем, что за сокращение объемов вычислений, обеспечиваемое проведением предварительного этапа, приходится «платить» необходимостью запоминания промежуточных значений переменных. При «ручном» счете с использованием таблиц запоминание происходит автоматически, при использовании ЭВМ об этом необходимо заботиться специально. При этом возникает следующая характерная альтерна-тпва: либо ускорить расчеты при увеличении объема используемой памяти, либо сократить объем памяти с неизбежным снижением скорости расчетов. Единого рецепта на все случаи здесь не существует, и при решении данного вопроса нужно руководствоваться конкретными обстоятельствами.
Подводя итог, можно сказать, что предварительный этап иллюстрирует общее положение, когда за счет некоторого усложнения логики сокращается объем вычислений и время решения задачи. Кроме того, предварительный этап носит естественный характер и с методологической точки зрения, поскольку проводится по ходу многошагового процесса в отличие от этапа условной оптимизации, проводимого «от конца к началу».
Замечание 7. Другим подходом к сокращению объема вычислений является попытка вычисления функций Беллмана в явном виде сразу для всех значений фазовых переменных. Для данной задачи при 1 = 3 с учетом свойства Дз (х3) = 0 получаем:
В2(х2) = тах{р3 • щ | х3 = х2 + т3 • и3},
из
где максимум берется по всем целым неотрицательным значениям «з, обеспечивающим выполнение условия х3 м. Из этого условия следует, что
М - х2
из ^
т3
(здесь и далее в пределах данного замечания запись [а] обозначает целую часть числа а, т. е. наибольшее целое число, не превосходящее а). Поскольку функция рз • из возрастает с увеличением из, то искомый максимум достигается при максимальном значении аргумента: |
М - х2 |
М - х2 т3 |
йз(х2) = |
т3 |
В2(х2) =Рз |
Полученные выражения являются достаточно простыми, но уже для следующего шага г = 2 ситуация усложняется:
М - хі - т2 ■ и2 т3 |
5х(ж1) = тах{р2 • и2 + В2(х2) | х2 = + т2 ■ и2} =
= тах< р2 ■ и2 + рз
П2 ^
где максимум берется по всем целым неотрицательным значениям и2, для которых выполняется условие
М - хг
т2
Вычисление последнего максимума уже не является элементарной задачей, поскольку с ростом «2 первое слагаемое в сумме возрастает, а второе — убывает. Отметим, что усложнение вычислений функций Беллмана от шага к шагу является характерной чертой метода ДП. Тем самым и попытка решить задачу в общем виде приводит к существенным трудностям, многие из которых позволяет обойти предварительный этап метода ДП.
Замечание 8. В продолжение обсуждения рассматриваемой задачи о загрузке приведем дополнительные рассуждения, позволяющие в отдельных случаях уменьшить объем вычислений. Предположим, что все типы Т\, Т2, ... погружаемых предметов упорядочены по возрастанию их ценности, причем (для простоты) все ценности будем считать различными:
гпх т2
Пусть (щ,и2,-..) — некоторое допустимое решение задачи, т.е. и1,112 • • ■ ■—целые неотрицательные числа, для которых выполняется ограничение по массе
т 1«1 + ГП2«2 + пг' ^ М; при этом стоимость погруженных предметов равна
Р1Щ +Р2П2+Р1,
где через т! и р' обозначены масса и стоимость предметов, номера типов которых больше 2. Тогда при выполнении условия
-1
„ ^ I т 1 РГ и\ > I------------------------
\т2 р2
которое можно назвать условием избыточности малоценных предметов, данное допустимое решение не является оптимальным. Действительно, из приведенного условия следует соотношение
VI , , . тх —щ + 1 ^ —щ, Р2 т2
показывающее, что расстояние на числовой оси между числами
Р\ тх
—и\ и —«1 Р2 т2не меньше 1. По этой причине существует такое целое число 1$2 (в качестве &2 можно взять целую часть числа (т\/т2)и1)^ ДЛЯ котороговыполняются неравенства
Р1 ^ , ^ ГП\
— Щ < К2 ^ ----------------------------- Щ.
Р2 т2
Тогда вектор (0, «2 + ^2, • • •) в силу неравенств
Щ\ • 0 + т2(«2 + к2) + т' ^ т2и2 + т2 —щ +т! <М
т2
является допустимым решением и с учетом соотношений
р1 ■ О + р2(и2 + к2) +р' > р2«2 + р2 —«1 + р' = р2и2 + рги 1 + р'
Р 2
дает большее значение стоимости, чем исходный вектор ...).
Иными словами, мы показали, что погрузка слишком большого количества предметов типа Т\ малой ценности не является целесообразной, что полностью соответствует интуитивным представлениям и конкретизирует их. Для рассматриваемой задачи
— = 1,82, — = 2,12, (Ч-ау1 = 10,93
тпх т2 \т2 р2)
= 7 |
(здесь получаемые значения округлены до второго знака после запятой). Это означает, что погружать 11 и более предметов типа Т\ невыгодно: погрузка надлежащего числа предметов типа Т2 в этом случае даст большее значение стоимости. Например, 12 предметов типа Т\ имеют массу 132 и стоимость 240; в то же время предметы типа Т2 в количестве
12
т2
имеют массу 119 < 132 и стоимость 252 > 240. Конечно, грузоподъемность М = 50 вообще не позволит погрузить 12 предметов типа Т\, но если принять, например, М = 250, то таких предметов можно будет погрузить
= 22.
250
ТГ
и учет условия избыточности позволит сократить число рассматриваемых вариантов погрузки предметов этого типа примерно вдвое. Заметим, что условие избыточности малоценных предметов типа Т\ можно обобщить и записать в виде
-1-
і> 1 [ \ ГПі Рі ) )
а также сформулировать аналогичные условия для предметов других типов. Отметим, однако, что проведенные рассмотрения устанавливаютобщие свойства оптимальных решений задачи и не имеют прямого отношения к методу ДП.
Замечание 9. В заключение раздела приведем постановку еще одной задачи, математическая формализация и решение которой проводятся в полной аналогии с рассмотренной задачей о загрузке. Однородная заготовка длиной М (деревянный брус, металлический профиль, пластиковая труба) должна быть разрезана на несколько отдельных деталей, относящихся к одному из N типов. Длины деталей различных типов равны та их стоимости равны Рг, г = 1,2, ...,ЛГ (потерями материала при разрезании для упрощения задачи пренебрегаем). Требуется определить такой способ разреза заготовки, при котором суммарная стоимость получаемых деталей была бы максимальной. Данный пример показывает, что зачастую различным образом формулируемые задачи с различным экономическим содержанием могут быть приведены к одной математический модели и решены одним методом.
25 26 27 Наверх ↑