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

Принятие оптимальных решений в перевозках на морском транспорте. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
n
x
bj – заводы получают рыбу в объемах не меньше заданного;
ij
1
j
x
может принимать только целочисленные значения, кратные объе-
i
му транспортного холодильного контейнера.
Простейшим, но в то же время неточным методом решения задач та­кого класса может быть решение их методами линейного программирова­ния и последующее округление полученных результатов до целых значе­ний вычисленных переменных. Точность такого метода, как правило, до­статочна для практического использования.
Но существует и точный метод решения задач целочисленного про­граммирования, разработанный Р. Гомори (США). Суть его состоит в том, что задача решается одним из методов линейного программирования без учета требования целочисленности. Составляется дополнительное ограни­чение по дробной переменной, которая должна быть целой. При этом множители переменных представляются как разница дробного и целого числа. Затем задача решается еще раз. Однако практическая ценность этого метода ограничена ввиду того, что им удается решать задачи только не­большого объема исходных данных, даже используя довольно мощные ЭВМ.
Пример 4.4.1. Подготовка грузовых операций.
Исходные данные. Морской терминал генерального груза планирует
для увеличения валовой нормы приобрести грузоподъемную оснастку, на которую он может затратить 10 000 долл. Имеется два типа оснастки, при­обретение 1 комплекта типа I дает возможность сократить норму времени на 2 ч, а 1 комплекта типа II – на 4 ч. Один комплект типа I стоит 1000 долл., типа II, соответственно, – 3000 долл. Для размещения, хране­ния 1 комплекта оснастки типа I требуется 2 м2, типа II – 1 м2, а всего име­ется для этой цели 19/3 м
2
.
Требуется решить, какую номенклатуру грузоподъемной оснастки и
в каком количестве необходимо приобрести, чтобы максимально снизить затраты времени на грузовые операции.
Решение. Целевая функция, представляющая собой сокращение вре-
мени грузовых работ, будет иметь вид
Z(x
, x2) = c
1
1x1
+ c
max, (4.16)
2x2
где x1 – количество комплектов оснастки типа I, шт.; x2 – количество ком­плектов оснастки типа типа ч/шт.,
I, ч/шт., c
c
= 4 ч/шт.
2
= 2 ч/шт.; c2 – сокращение времени от 1 комплекта типа II,
1
II, шт.; c
сокращение времени от 1 комплекта
1
Уравнения ограничений на целевую функцию составят
91
а1x
С
+ а
1
b1x
+ b
1
x
0; x2 0, – смысловые ограничения;
1
x
= (1, 2, …, K), x2 = (1, 2, …, L), – ограничение по целостности,
1
где а1 – стоимость 1 комплекта оснастки типа I, долл./шт., а
а
стоимость 1 комплекта оснастки типа II, долл./шт., а2 = 3000; Аиме-
2
А, – ограничение по стоимости;
2x2
B, – ограничение по размещению;
2x2
(4.17)
= 1000;
1
ющаяся сумма средств для закупки, долл., А = 10 000; b1 – сокращение времени от 1 комплекта оснастки типа I, ч/шт., b1 = 2; b2 – сокращение времени от 1 комплекта оснастки типа II, ч/шт., b2 = 4; В – имеемая пло­щадь для размещения и хранения оснастки, м2, В = 19/3.
х
2
7
6
А
2х1 + х2 = 19/3
5
4
3
2
K
1
0
М N F C
Е
В
х
+ 3х2 = 10
1
2х1 + 4х2 = 12
10 9 876543 2 1
х
1
Рис. 4.5. Графическое решение задачи оптимизации
Для решения полученной системы уравнений с учетом двухмерности задачи можно воспользоваться графическим методом (рис. 4.5). Необхо­димо построить многоугольник решений задачи, состоящей в определении максимального значения линейной функции (4.16) при выполнении усло­вий (4.17). Координаты всех точек построенного многоугольника решений
ОАЕВС удовлетворяют системе линейных неравенств и условию неотри-
цательности переменных. А условию целочисленности переменных вели­чин удовлетворяют координаты лишь 12 точек, обозначенных на рис. 4.5 пресечениями линий сетки. Для отыскания точки, координаты которой определяют решение исходной задачи, многоугольник многоугольником
OKEMNF, содержащим все допустимые точки с цело-
ОАВС заменим
92
численными координатами. Кроме того, координаты каждой из вершин яв­ляются целыми числами.
Чтобы найти точку максимума целевой функции (4.16) на много­угольнике
нужно построить вектор через многоугольник решений
Построенную прямую передвигаем в направлении вектора
OKEMNF и, соответственно, решение задачи оптимизации,
С
= (2, 4) и прямую 2х1 + 4х2 = 12, проходящую
OKEMNF (число 12 взято произвольно).
С
до тех пор, пока она не пройдет через последнюю общую точку ее с данным много­угольником. Координаты этой точки и определяют оптимальное решение, значение целевой функции в ней является максимальным. В нашем случае искомой является точка максимальное значение
E (1; 3), в которой целевая функция принимает
Z
, x2) = 14. Координаты точки Е определяют
max(x1
оптимальное решение задачи. В соответствии с этим решением терминалу нужно приобрести один комплект грузоподъемной оснастки типа комплекта оснастки типа
II. Это обеспечит грузовому терминалу при име-
I и три
ющихся ограничениях на производственные площади и денежные средства сокращение времени грузовых работ на 14 ч в сутки.
Стохастическое программирование. Задачи оптимизации этого
класса тоже примыкают к задачам линейного программирования. Однако отличаются от них тем, что решение отыскивается в условиях неполной определенности. Случайный характер параметров ci, аi и bj может иметь место в целевой функции и в уравнениях ограничений. Например, случай­ными могут быть цены, перевозимые объемы груза, погода, выход из строя оборудования и т.д. Если случайные параметры присутствуют в целевой функции, а накладываемые на нее ограничения их не содержат, то отыски­вать значения оптимизирующих переменных можно, используя математи­ческие ожидания.
Предположим, что на судоремонтное предприятие в течение года по­ступают заказы на выполнения ремонтных работ на судах. Заранее неиз­вестны количество заказов, объемы работ по ним и время их поступления на предприятие. Если состав, соответственно, производственные возможности технологического оборудования, необходимого для выполнения ремонтных работ, невелик, то мала номенклатура работ, которые может выполнять предприятие. Это значит, что заказчики могут предпочесть конкурентов.
Если же состав технологического оборудования, необходимого для выполнения ремонтных работ, широк, то и номенклатура выполняемых работ будет велика. Это значит, что заказчики предпочтут наше предприя­тие. Но при большой номенклатуре и числе оборудования часть его будет простаивать. В то же время приобретение и обслуживание технологиче­ского оборудования связаны со значительными затратами.
В таких условиях для расчета максимизации дохода (прибыли) пред­приятия необходимо оперировать им как случайной величиной. В практи-
93
ческих расчетах в качестве целевой функции придется выбирать математи-
Z
Z
ческое ожидание Мz(x) (среднее значение) дохода:
Мz(x) = () ()
Мz(x) = () ()
X


Х p Х
ХХdx

для дискретных функций при
для непрерывных функций при ()Х dx
X


Хp )(
= 1;
= 1,
где )( Хр – вероятность, воздействующая на целевую функцию;
()Х функция вероятности, воздействующая на целевую функцию.
В этом случае задачу отыскания оптимизирующих значений вектора переменных Х можно свести к задаче линейного программирования.
5. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
5.1. Общее представление о методе
Особенностью перевозки генерального груза является то, что его грузовые единицы, в отличие от навалочного и жидкого груза, неделимы, поэтому при разработке управленческих решений приходится учитывать целочисленные ограничения. Если же к этому ограничению добавляется то, что математическая модель (целевая функция и уравнения ограниче­ний) дискретна, то методы математического анализа, линейного програм­мирования и вариационного исчисления не могут дать эффективных средств, необходимых для нахождения оптимальных решений.
Это обстоятельство привело к появлению метода, названного дина­мическим программированием и ориентированного на многошаговый про­цесс выработки решения. Первые работы, относящиеся к таким многошаго­вым процессам принятия управленческих решений, появились в 1950-х гг. Метод, оказавшийся довольно эффективным для анализа и численного решения подобных задач, был предложен Р. Беллманом (1920–1984) [5], его строгое математическое обоснование было разработано школой акаде­мика Л. С. Понтрягина.
Динамическое программирование представляет собой достаточно универсальный метод оптимизации управленческих решений, который может учитывать целочисленные и другие ограничения, накладываемые на решение, а также нелинейность целевой функции. Характерной особенно­стью метода является многошаговость, под которой понимают разделение процесса оптимизации на ряд последовательных этапов (шагов). Причем для объектов исследования, не
имеющих естественного деления на шаги,
его вводят искусственно. Метод динамического программирования приме-
94
N
x
x
x
x


х
няется в основном для аддитивных целевых функций полезности
1
i
но может быть использован и для задач оптимизации, имеющих мульти-
N
пликативные целевые функции, вида
i
.
i
1
Суть этого метода заключается в распределении имеющегося коли­чества некого ресурса Х. Ресурс, способы его использования могут быть самого разного вида. В качестве ресурса могут выступать денежные сред­ства, грузоподъемность транспортного средства, количество машин, пло­щадь земли и т.д.
Этот общий ресурс Х можно использовать N различными способами. Если обозначить через х
часть общего ресурса Х, используемую i-м спосо-
i
бом, то каждому i-му способу из всех N способов будет соответствовать функция
(х
), выражающая некую полезность, получаемую от использо-
i
i
вания части ресурса этим способом.
N
Z(X) =
N
i
1
v
max;
ii
,
р
Р ограничения по количеству общего ресурса;
ii
1
i
x
= 1, 2, …, – ограничения по неделимости.
i
В методе динамического программирования заведомо предполагает­ся, что все полезности измеряются в одинаковых единицах, а общая полез­ность равна сумме полезностей, полученных от использования каждого способа. Кроме того, функции полезности
(х
) являются неубывающими.
i
i
Целевая функция, представляющая собой общую полезность от ис­пользования ресурса Х всеми N способами, которую требуется отыскать, имеет вид
() ()... ( )
11 2 2
xx 
NN
max
N
или )(Хf
N
=
()
max
x

i
ii
i
1

при ограничениях, что каждая часть хi общего ресурса Х неотрицательна (х
0, х2 0, …, хN 0) и общее количество ресурса Х = х
1
+ х2 + … + хN.
1
При использовании ресурса только 1-м способом очевидно, что
)( Хf
N
= max
()
= 1()Х . Несложно получить рекуррентное соотно-
11
95
шение, связывающее значения )(Хf
x
k
и )(
fk
. Предположим, что х
k
количество ресурса, используемое k-м способом при 0 ≤ хk ≤ Х и 2 ≤ k ≤ N. Тогда для (k – 1) способов остается количество ресурса, равное Хх наибольшая полезность от него составит
f
(Х – х
1k
). Естественно, нужно
k
,
k
выбрать хk так, чтобы получить максимальную суммарную полезность от
k-го способа и от предыдущих (k – 1) способов, т.е.
)( Хf
=
k
max
0
{
(хk) +
k
X
k
f (Х – х
1k
k
)}
(5.1)
при k = 2, 3, …, N.
Рекуррентные соотношения (5.1) основываются на сформулирован­ном Р. Беллманом принципе оптимальности, который положен в основу всей концепции динамического программирования. Существо принципа заключается в том, что оптимальная стратегия обладает свойством перево­дить любое первоначальное состояние и, соответственно, некоторый начальный этап решения в последующие решения, всякий раз улучшаю­щие состояние исследуемого объекта до оптимального или близкого к нему. Соотношения (5.1) позволяют заменить чрезвычайно трудоемкое вычисление максимума по N переменным в исходной задаче решением N задач, в каждой из которых максимум находится лишь по одной перемен­ной. Используя эти соотношения, можно решать те задачи, которые иными путями решать не удается. Это в первую очередь задачи оптимизации, в которых целевая функция и уравнения ограничений представлены дис­кретными функциями.
Этот же подход к решению задачи, основанный на принципе шаго­вого приближения к оптимальности, может быть использован и в случае нескольких видов ресурсов. Однако с увеличением размерности объем вы­числений быстро растет, так что реально метод динамического програм­мирования непосредственно может быть применен в случае двух, макси­мум трех-четырех видов ресурсов. Это отличает его от линейного про­граммирования, где легко преодолимы и большие размерности.
В ряде задач многошаговость соответствует существу решаемой за­дачи. Если же этого нет, то многошаговость вводится искусственно, чтобы обеспечить применение метода динамического программирования. Опре­деление «динамическое» в названии метода подчеркивает значение време­ни и порядка выполнения операций в нем.
5.2. Применение динамического программирования
Динамическое программирование в применении к производству, в частности для грузовых перевозок, может использоваться в нескольких направлениях. Во-первых, это загрузка транспортного средства, когда в ка-
96
честве ресурса выступает грузоподъемность судна или его грузового трюма,
x
x
которую нужно использовать с наибольшей полезностью при приеме на борт различных грузов, т.е. разработать оптимальный грузовой план.
Предположим, что в трюмы судна грузоподъемностью Р, т, требует­ся погрузить генеральный груз, который состоит из хi числа грузовых мест
N типов. Масса одного грузового места i-го типа составляет m
. Перевозка
i
каждого грузового места i-го типа дает полезность, определяемую как ценность, установленную экспертами в баллах. Ценность груза, принима­емого в трюм, определяется из соображений обеспечения максимального эффекта от перевозки (например, уровень жизни на отдаленной террито­рии при северном завозе) и составляет сi для каждого i-го типа грузового места. При решении задачи оптимизации этого типа следует также учесть, что удельный погрузочный объем грузовых мест всех типов должен быть
V
меньше или равно
тр
, где Vтр – объем грузового трюма судна, Р – его гру-
P
зоподъемность.
Для получения более точной и достоверной экспертной оценки цен­ности груза сi могут быть применены модели построения суждений, моде­ли познания или диагностические модели. Методика их достаточно хоро­шо разработана и изложена в [4].
Целевая функция, представляющая собой общую ценность груза в трюме судна Z =
при i = 1, 2, …, N, и уравнения ограничений будут
)( Хf
i
иметь вид
N
N
Z =
i
1
с
max,
ii
i
1
m
Р, х
ii
0, х
i
= 0, 1, 2, …
i
Первое уравнение ограничений описывает то, что общая масса груза, принимаемого в трюм судна, не должна превышать его грузоподъемности
Р. Второе и третье уравнения ограничений определяют, что масса прини-
маемых на судно грузовых единиц неотрицательна и они неделимы.
Во-вторых, задачи прокладки оптимального курса судна между дву-
мя портами по акватории, на которой имеются различные опасности и трудности для мореплавания. Это могут быть мели, острова и полосы штормовой погоды, при переходе через которые судно теряет скорость и расходует дополнительное количество топлива. В-третьих, распределение имеющихся ресурсов между транспортными средствами или предприяти­ями компании так, чтобы она могла получить наибольший доход. Наконец,
в-четвертых, задачи использования емкости складов на грузовых терми-
налах для повышения качества перевозок при обеспечении установленной
«полезности» для выбранной номенклатуры груза.
97
Из этого довольно широкого спектра тематики целесообразно рас-
Z
x
смотреть задачу, общую для всех отраслей экономики. Такой задачей яв­ляется оптимизация распределения имеющихся ресурсов между предприя­тиями компании так, чтобы она могла получить наибольший эффект от ка­питаловложений. Математическая постановка задачи состоит в определе­нии наибольшего значения функции, представляющей собой приращение дохода от средств, вложенных в предприятия:
n
F =
i
1
x

i
(5.2)
при условии
n
S
,
i
i
х
0, i = 1, 2, …, n. (5.4)
i
1
(5.3)
Сформулированная задача является задачей нелинейного програм­мирования. В том случае, когда f
) – выпуклые (вогнутые) функции, ее
i(xi
решение можно найти, например, методом множителей Лагранжа. Если же функция f
) не является таковой, то известные методы нахождения реше-
i(xi
ния задач нелинейного программирования не позволяют определить гло­бальный максимум функции. Тогда решение задачи (5.2), (5.3) и (5.4) мож­но найти с помощью динамического программирования.
В этой задаче отсутствует естественное деление на шаги, поэтому их придется ввести искусственно, используя для этого количество предприя­тий. После чего исходную задачу можно рассматривать как многоэтапную или многошаговую. Вместо того чтобы одновременно рассматривать допу­стимые варианты распределения капиталовложений между п предприяти­ями и оценивать их эффективность, будем исследовать эффективность по­следовательного вложения средств на одном предприятии, на двух пред­приятиях и т.д., наконец, на п предприятиях. Таким образом, получим п этапов, на каждом из которых состояние системы (в качестве которой вы­ступают предприятия) описывается объемом средств, подлежащих освое­нию k предприятиями (k = 1, 2, …, п). Решения об объемах капиталовложе­ний, выделяемых k-му предприятию (k = 1, 2, …, п), и являются управле- ниями. Задача состоит в выборе таких управлений, при которых функция (5.2) принимает наибольшее значение.
Задача 5.1.1. План капиталовложений.
Исходные данные. Холдинг для увеличения объема транспортной
продукции, производимой его предприятиями, планирует вложить
S = 700 млн р. Использование каждым i-м предприятием х
, млн р., указан-
i
98
ных капиталовложений обеспечивает прирост объема продукции, опреде-
f
ляемый значением нелинейной функции Z
i(xi
) = fi(x
) (табл. 5.1).
i
Таблица 5.1
Общий ресурс и эффективность вложений
Объем капитало-
вложений
x
,
i
млн р.
Прирост продукции
капиталовложений, млн р.
Предприятие 1 Предприятие 2 Предприятие 3
f
) в зависимости от объема
i(xi
0 0 0 0 100 30 50 40 200 50 80 50 300 90 90 110 400 110 150 120 500 170 190 180 600 180 210 220 700 210 220 240
Требуется определить, как распределять капиталовложения между
предприятиями, чтобы получить максимальное увеличение продукции.
Решение. В задаче отсутствует естественное разделение на шаги, по-
этому следует его ввести искусственно, используя количество предприятий
п = 3. Таким образом, решение будет получено трехшаговым приближени-
ем к оптимальному значению целевой функции.
Для решения задачи необходимо составить рекуррентное соотноше-
ние Беллмана. В общем случае оно имеет вид
()X =
2
()X =
1
max ( ) ( )
XX

0
max ( )
0
XX

i
fX X X
i
22 1 2
11
 ,
…………..
X
,
(5.5)
()
=
X
1
n
max ( ) ( )
XX

0
fX XX
11 2 1
nn n n
i


.
Здесь функции ()
X , (i = 1, 2, …, n – 1) определяют максимальный
i
прирост выпуска продукции при соответствующих распределениях Х, тыс. р., капиталовложений между i предприятиями. Поэтому значение функции ()
X вычисляется только для одного значения Х = S, т.к. объем
n
капиталовложений, выделяемых для всех n предприятий, равен S, млн р.
Используя рекуррентные соотношения (5.5) и исходные данные табл. 5.1, приступаем к нахождению решения задачи, т.е. к определению сначала условно оптимальных, а затем и оптимальных распределений ка-
99
питаловложений между предприятиями. Значения величины вложений по-
следовательно берем из каждой строки таблицы.
Начинаем с определения условно оптимальных капиталовложений, выделяемых для 1-го предприятия. Для этого находим значение
()X для
1
каждого Х, принимающего значение 0, 100, 200, 300, 400, 500, 600 и 700.
Пусть Х = 0, тогда 1(0) = 0. Возьмем теперь Х = 100. Тогда, исполь- зуя табл. 5.1, получаем
0
(100) = max
1
  
30
= 30,
 
0
Х = 100.
1
Здесь первая строка матрицы соответствует решению Х1 = 0, а вторая строка – решению Х1 = 100. При первом решении прирост продукции не обеспечивается, а при втором – равен 30 млн р., поэтому условно опти-
мальным решением является
0
Х = 100.
1
Аналогично находим условно оптимальные решения для других зна­чений Х, беря их из табл. 5.1 и всякий раз выбирая наибольшее значение прироста дохода:
(200) = max
1
(300) = max
1
(400) = max
1
(500) = max
1
300 = 50,
50
0
30
50
90
0
30
50
90
0
30
50
90
= 90,
  
  
= 110,
  
 
  
= 170,
    
  
  
 
 
110
 
     
110
170
0
Х = 200;
1
0
Х = 300;
1
0
= 400;
Х
1
0
Х = 500.
1
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]