Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Принятие оптимальных решений в перевозках на морском транспорте. Учебное пособие
.pdf
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
и )(
1Х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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
