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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
Задача 4.2.4. Раскрой листового проката.
Исходные данные. В корпусообрабатывающем цехе судостроитель-
ного завода ведется подготовка производства. Нужно обеспечить изготов­ление комплектов деталей для М сборочных единиц (секций) судна. Для изготовления одной секции требуются n1 деталей по чертежу А, n2 деталей по чертежу B, n3 – по чертежу C и n4 – по чертежу D, раскраиваемых и из­готавливаемых из одной марки и толщины металла.
Технологи цеха, учитывая особенности разделительной резки, сдела­ли 4 варианта раскроя, каждый из которых дает количество отходов
R
= 123 кг, R2 = 98 кг, R3 = 139 кг, R4 = 116 кг (табл. 4.7).
1
Таблица 4.7
Изготавливаемые детали и отходы
Варианты
раскроя
Количество деталей по чертежу
из одного стального листа
А, В, С, D
Отходы,
кг
А B C D
1 2 3 4
Комплектация
n
секций
i
4 3 7 3 2 4 9 12 R2 3 7 10 11 R3 8 5 3 6 R4
Количество деталей в одной секции Количество
R
1
секций
8 9 14 12 10
Решение.
Математическая модель процесса разрабатывается на осно-
ве условий, определяющих минимум отходов и комплектность деталей для каждой изготавливаемой секции. Математическая модель состоит из целе­вой функции и уравнений ограничений. Целевая функция описывает коли­чество отходов
где R
1
, R
раскроя;
Z(Х) = R1х
… – величина отходов на одном листе при 1-м, 2-м, … варианте
2
х
, х
, … – количество листов, раскроенных 1-м, 2-м, … вариан-
1
2
+ R
1
2х2
+ R
3х3
+ R
min,
4х4
тами.
Уравнения ограничений устанавливают количество деталей, необхо­димых для изготовления ство деталей, которое может быть изготовлено из енных
1-м, 2-м, … вариантами:
4х1 + 3х2 + 7х3 + 3х4 = n
х
+ 4х2 + 9х3 + 12х4 = n
2
1
х
+ 7х2 + 10х3 + 11х4 = n
3
1
М сборочных единиц (секций) судна, и количе-
х
, х
,… листов, раскро-
1
2
Мможно получить деталей по чертежу А;
1
М – можно получить деталей по чертежу В;
2
М – можно получить деталей по чертежу С;
3
81
8
х
+ 5х2 + 3х3 + 6х4 = n
1
М – можно получить деталей по чертежу D.
4
Кроме того, х1 ≥ 0, х2 ≥ 0, х3 ≥ 0, х4 ≥ 0 – количество листов не может быть отрицательной величиной.
Решение задачи представлено на листинге прикладного пакета
MathCad.
R1:= 123 R2:= 98 R3:= 139 R4:= 116 M:= 10 n1:= 8 n2:= 9 n3:= 14 n4:= 12
Z(x1,x2,x3,x4):= R1·x1 + R2·x2 + R3·x3 + R4·x4
x1:= 0 x2:= 0 x3:= 0 x4:= 0
Given 4·х1 + 3·х2 + 7·х3 + 3·х4 = n1·Мх1 + 4·х2 + 9·х3 + 12·х4 = n2·М х1 + 7·х2 + 10·х3 + 11·х4 = n3·М х1 + 5·х2 + 3·х3 + 6·х4 = n4·М x1 0 x2 0 x3 0 x4 0
5,118
 
14,229
R:= Minimize(Z,x1,x2,x3,x4) R =
 
2,343
.

0,147

Полученный результат расчета количества листов стального проката, необходимых для изготовления деталей секций судна, для принятия реаль­ного управленческого решения необходимо уточнить, конкретизировать. Для этого с помощью листов, раскроенных по четырем вариантам, нужно установить, какие конкретно детали должны быть вырезаны.
4.3. Методы решения задач линейного программирования
В 1940-1950-х гг. был разработан ряд методов решения задач линей­ного программирования [17]. Все они были ориентированы на возможно­сти решений, которые могла предложить вычислительная техника того времени. Теперь эти методы во многом потеряли свое значение, хотя и представляют определенный интерес.
Симплексный метод (от англ. simple – простой) разработан в
1951 г., имеет общее с методом последовательных исправлений. Он явля­ется общим универсальным методом решения задач линейного програм­мирования, пригодным для решения любой задачи за конечное число ите­раций. Общий метод решения задач линейного программирования, задан-
82
ных целевой функцией Z(X) =
n
xa
= b
при х1 0, х2 0, …, хi 0, основывается на том, что мно-
mi
j
11
j
iij
mi
xс
и системой линейных уравнений
ii
1
жество всевозможных неотрицательных решений системы линейных урав­нений есть выпуклое множество М. Значит, для отыскания оптимального решения линейной функции Z(X) достаточно рассмотреть крайние точки множества М. Множество крайних точек совпадает с множеством всевоз­можных базисных решений. Среди точек выпуклого множества М, в кото­рых функция Z(X) достигает оптимального значения, всегда имеется не менее одной крайней точки.
При больших значениях переменных используется метод обратных матриц. Метод предназначен для решения канонических задач линейного программирования, т.е. тогда, когда система уравнений, кроме неравенств типа х1 ≥ 0, х2 ≥ 0, …, хm ≥ 0, включает в себя только уравнения. Если хотя бы одно ограничение представляет собой неравенство, то математическая модель называется неканонической.
Смысл симплексного метода состоит в последующих улучшениях выбранных программ действий. За основу берется одна из возможных про­грамм (возможное решение), называемая исходным опорным решением. Затем последовательными и направленными перемещениями (шагами), начиная от исходного опорного решения задачи и двигаясь к последую­щим опорным решениям, происходим улучшение программ действий. Процесс продолжается до тех пор, пока не будет получено оптимальное решение.
Число опорных решений конечно, это значит, что через конечное число шагов можно получить оптимальное решение.
Имеются линейная целевая функция
Z(X) = с
+ с
1
+…+ с
1х1
(4.14)
mхm
и система n линейных уравнений ограничений, накладываемых на целевую функцию, с m неизвестными
а11х
+ а
1
а21х
+ а
1
а
х
+ а
n1
1
х
0, х2 0, …, хm 0.
1
+ … + а
12х1
+ … + а
22х1
х
+ … + а
n2
1
х
1m
х
2m
nmхm
= b1,
m
= b2,
m
= bn,
(4.15)
Требуется среди неотрицательных решений системы уравнений (4.15) найти такое, которое минимизирует целевую функцию (4.14).
83
Алгоритм решения задач симплексным методом представляет собой
,
j
j
j
ряд последовательных шагов:
1) Привести уравнения ограничений, входящие в математическую
модель (4.15), к каноническому виду.
2) Найти исходное опорное решение, проверить его на оптималь­ность. Для этого заполняется симплексная таблица первого шага (табл. 4.8).
Все строки таблицы 1-го шага, кроме индексной строки Δj, заполня-
ются по данным системы ограничений и целевой функции.
Таблица 4.8
Симплексная таблица
с
i
Базисная
переменная
а
1
а
2
х
1
х
2
а
а2
1
х
х2
1
1 0 0 1
… … … …
а
m
х
m
0 h 0 h
а
m+1
х
m+1
1, m+1
2, m+1
… … … …
а
n
х
n
h
1n
h
2n
Z(x)
b
f
i
f
1
2
… … … … …
а
m
Δ
х
m
0 0 0 0
… …
1 h 0 Δ
m
m+1
m+1
… …
h
mn
Δ
Z(x1)
n
f
m
Индексная строка Δj для переменных находится по формуле
m
i
1
ch c
iij j
, j = 1, 2, …, n;

для свободного члена – по формуле
m

cf
.
ii
i
1
При решении задач на максимум возможны следующие случаи: – если все оценки Δj 0, то найденное решение оптимальное; – если хотя бы одна оценка Δj 0, но при соответствующей переме-
ной хj нет ни одного положительного коэффициента, то решение задачи прекращается, т.к. целевая функция Z(x) → ∞, т.е. не ограничена в области допустимых решений;
– если хотя бы одна оценка отрицательная, а при соответствующей переменной есть хотя бы один положительный коэффициент, то нужно пе­реходить к другому опорному решению;
– если же отрицательных оценок в индексной строке несколько, то в столбец базисной переменной вводится та переменная, которой соответ­ствует наибольшая по абсолютной величине отрицательная оценка.
84
Если требуется найти минимальное значение целевой функции Z(x), то критерием оптимальности задачи является неположительность оценок Δj при всех j = 1, 2, …, n.
За ключевой столбец принимается тот, в котором находится оценка, имеющая наибольшую абсолютную величину. За ключевую строку принима­ется та, которой соответствует минимальное отношение свободных членов b к положительным коэффициентам k-го столбца. Элемент, находящийся на пересечении ключевой строки и ключевого столбца, называют ключевым.
3) Заполнить симплексную таблицу 2-го шага. Для этого переписы­вают ключевую строку, разделив ее ключевой элемент. Затем заполняют базисные столбцы. Остальные коэффициенты таблицы находят по правилу «прямоугольника». Получается новое опорное решение, которое нужно проверить на оптимальность.
4) Если оптимальность не достигнута, то шаг 3 повторяют, пока не будет получено оптимальное решение.
Применение симплексного метода целесообразно пояснить на при-
мере вычисления максимума целевой функции.
Задача 4.3.1. План работы транспортной компании.
Исходные данные. Подразделение транспортной компании имеет два
судна грузоподъемностью 3000 и 4000 т. Расход ресурсов судами за месяц и запасы ресурсов, которыми располагает подразделение, приведены в табл. 4.9.
Таблица 4.9
Запасы и расходы
i
Ресурсы Требуется на один рейс, комплекты
Расход судна 1 Расход судна 2 Запасы на судах
и на складах Топливо Т 1 2 4 Масло М 1 1 3 Снабжение С 2 1 8
Требуется разработать план работы подразделения, определив коли-
чество рейсов каждого судна, чтобы перевести максимальное количество груза, учитывая при этом, что имеются ограничения по топливу, маслу и судовому снабжению.
Решение.
1) Разработка математической модели перевозки. Для этого обозначим
х
количество рейсов судна 1, х2 – количество рейсов судна 2. Тогда целе-
1
вая функция, представляющая собой количество перевезенного груза обои­ми судами, примет вид (грузоподъемность судов указана в тысячах тонн)
Z(X) = 3х1 + 4х2 max
85
при ограничениях
j
j
24,
xx
12
xx

12
3,
28,
xx
12
х
0, х2 ≥ 0.
1
2) Приведение задачи к каноническому виду. Для этого в правые ча-
сти ограничений добавляются дополнительные неизвестные х
, х4, х
3
5
(ба-
лансовые переменные) при ограничениях
24,
xxх

123
xx х

124
28,
xx х

125
3,
х
0, j = 1, 2,…, 5.
j
3) Далее можно переходить к составлению симплексной таблицы
I шага, которая устанавливает некое базовое отправное решение задачи.
Симплексная таблица I шага
с
Базисная переменная 3 4 0 0 0 Z(X)
i
0 x 0 x 0 x
Δ
x
1
3
4
5
1 2 1 0 0 4 1 1 0 1 0 3 2 1 0 0 1 8
-3 -4 0 0 0 0
x
2
x
3
x
4
x
5
b
i
XI = (0, 0, 4, 3, 8), Z(XI) = 0.
В индексной строке Δj имеются две отрицательные оценки. Это зна­чит, что найденное решение не является оптимальным и его можно улуч­шить. В качестве ключевого столбца следует принять столбец базисной переменной х
, за ключевую строкустроку переменной х3, где минималь-
2
ное значение (4/2, 3/1, 8/1) = min (2, 3, 8) = 2.
Ключевым элементом является «2». Вводим в столбец базисных пе­ременных х
, выводим х3. Составляется симплексная таблица II шага.
2
Симплексная таблица II шага
с
Базисная переменная 3 4 0 0 0 Z(X)
i
4 x 0 x 0 x
Δ
x
1
2
4
5
1/2 1 ½ 0 0 2 1/2 0 -1/2 1 0 1 3/2 0 -1/2 0 1 6
-1 0 2 0 0 8
x
2
x
3
x
4
x
5
b
i
86
= (0, 2, 0, 1, 6), Z(XII) = 8.
j
X
II
В индексной строке имеется одна отрицательная оценка. Полученное решение можно улучшить. Ключевым элементом является «1/2». Состав­ляется симплексная таблица III шага.
Симплексная таблица III шага
с
i
Базисная
переменная
4 x 3 x 0 x
Δ
2
1
5
3 4 0 0 0 Z(X)
x
1
x
2
x
3
x
4
x
5
b
i
0 1 1 –1 0 1 1 0 –1 2 0 2 0 0 1 –3 1 3 0 0 1 2 0 10
Все оценки свободных переменных (Δ следовательно, найденное решение является оптимальным: Х
= (2, 1, 0, 0, 3), Z(X
III)max
= 10.
0) больше или равны нулю,
j
= X
III
opt
=
С учетом ресурсов, имеющихся у подразделения судоходной компа­нии, судно
1 должно сделать 2 рейса, судно 2 – 1 рейс. При этом макси-
мальный объем перевозок составит 10 тыс. т.
Симплексный метод решения задач линейного программирования сравнительно широко распространен. Ему посвящено довольно много раз­личных работ многих авторов, часть из них приведена в библиографиче­ском списке.
В приложении 1 дополнительно представлен пример решения задачи линейного программирования распределительным методом, являющимся одним из вариантов симплексного метода. Представленный в нем пример решения транспортной задачи иллюстрирует методику и рабочие приемы использования симплекс-метода для оптимизации.
В заключение краткого обзора методов решения задач линейного программирования можно отметить еще ряд методов. Среди них метод ве­дущих переменных, близкий к симплекс-методу, релаксационный метод, разработанный в 1936 г., модифицированный индексный метод, применяе­мый для решения задач, которые сводятся к транспортным задачам.
Графический метод. В методе используется понятие линии уровня,
которой называется множество всех точек Х = (х
, х2, …, х
1
), в которых це-
m
левая функция принимает некое постоянное значение. Для линейных функций все линии уровня являются прямыми. Суть графического метода состоит в построении множества Х всех допустимых решений. Более по­дробное представление о методе можно составить, рассматривая решение задачи линейного программирования 4.2.1. «План производства». В ней этот метод использовался для нахождения оптимизирующих значений пе-
87
ременных величин при стремлении получить максимум целевой функции.
j
х
х
х
х
Одним из достоинств метода является наглядность, а существенным недо­статком – возможность его использования только для сравнительно про­стых задач.
Метод разрешающих множителей разработан в 1939 г. [25] для
решения задач, описанных математической моделью
J
I
х
0;
ij
j
= 1; i = 1, 2, …, I; zj =
i
1
в которых требуется определить хij так, чтобы величины z
a х
,
ij ij
1
i
= z2 = … = z
1
, а
j
их общее значение имело максимально возможную величину.
Это задачи распределения по станкам различных технологических операций, выполняемых при обработке одной детали, если технологиче­ские операции могут быть выполнены на различных станках. Здесь а
ij
дет представлять собой выработку i-го станка на j-й технологической опе­рации, а хij – время работы этого станка по этой технологической опера­ции.
Разрешающие множители представляют собой систему чисел 1 ,
…,
, причем
m
i-го произведения
0, но не все
k
 ,
11i
 ,…,
22i
= 0, в которой для каждого данного
k
(обозначим через ti величину
mim
2
наибольшего из них), приняв хik = 0, для которых соответствующие произ­ведения не максимально
 < ti, остальные хik можно определить из
kik
условий
m
,
х
0,
ik
k
Если разрешающие множители
= 1, z1 = z2 = … = zm.
ik
1
,
1
2
, …,
и затем числа
m
х
ik
определены указанным выше образом, то получаемое с их помощью зна­чение z = z* есть максимально возможное значение. Для системы чисел
х
ik
имеем
m
 

1
k

z

k
m
*
=
k
*
z
kk
1
=
Теперь пусть
х другая система чисел, для которой z
ik
m
=
k
nm
ik
11
n
ik ik
n
1
i
*
t
i
·
k
t х
iik
i
1
*
=
1
=

.
nm
ik
11
()

kik ik
= z2 = … = zm = z.
1
*
=
Тогда имеем
88
m
х
х
 


1
k

nm
=


ik
z
k
11
m
=
k
()

kik ik
z
kk
1
m
=
k
1
nm
11
ik
·
k
t х
iik
n
i
1
=
ik ik
n
1
i
=
t
.
i
Сопоставляя неравенство с предыдущим равенством, получим
m
 

1
k

z

k
m
 

1
k

k
*
z
или z z
*
.
Полученное выражение показывает, что значение z* есть максималь-
но возможное для
z значение, т.е. числа
х , определенные с помощью раз-
ik
решающих множителей, действительно дают оптимальное решение задачи.
Метод последовательных исправлений разработан в 1949 г. [25].
Исходя из некого допустимого плана (вектора переменных) определяется оценка продуктов так, чтобы при всех используемых в этом плане техно­логических способах суммарная оценка производимой продукции была одинаковой. Причем оценки продуктов, производимых с избытком в срав­нении с требуемым заданием, принимаются равными нулю.
Если полученные оценки неотрицательны, а для всех технологиче­ских способов, не используемых в плане, суммарная оценка продукции не выше, чем в используемых, то рассматриваемый план оптимальный. Вы­численные при этом оценки представляют собой систему разрешающих множителей. В ином случае получают новый допустимый план с более вы­сокой комплексной производительностью, изменяя интенсивность приме­нения технологических способов или же привлекая новый способ, для ко­торого суммарная оценка продукции оказалась выше, чем в используемых способах. Через конечное число таких итераций приходят к оптимальному плану и системе оптимизирующих переменных. Поиск значений оптими­зирующих переменных начинается с установления некого допустимого плана действий Х = (х1, х2, …, хm), для которого Z(X) > 0.
Метод двухсторонних границ разработан в 1951 г. [25]. Значения
оптимизирующих переменных в начале решения неизвестны. Однако некие неравенства для их возможных значений могут быть получены при рассмотрении отдельных технологических способов и простейших планов
Х = (х
, х2, …, хm). Оценки такого рода можно получить последовательным
1
уточнением взятых первоначально грубых границ для оптимизирующих переменных. В неком плане известно, что суммарная оценка продукции не превосходит оценку расходуемого сырья. Это дает неравенство, связыва­ющее оптимизирующие переменные. В частности, для всех переменных,
89
кроме одной, нижней границы, получим для выделенной зоны уточненные
x
значения верхней границы переменных. Аналогично строятся неравенства противоположного смысла.
4.4. Целочисленное и стохастическое программирование
Целочисленное программирование. Этот метод оптимизации, на
первый взгляд, мало отличается от линейного программирования. Отличие представляет собой дополнительное ограничение, заключающиеся в том, что значения искомых оптимизирующих переменных х1, х2, …, хm могут принимать только целочисленные значения. Добавление такого условия существенно усложняет задачи, делая методы линейного программирова­ния непригодными для точного решения.
Предположим, что имеется несколько районов промысла R1, R
R
, в которые может быть направлено по одному рыболовному судну, не-
n
, …,
2
сущему на себе орудия лова; количество судов может принимать только конечное, целочисленное значение. Каждым орудием лова можно добыть
х
количество морепродукта. Для каждого района промысла известна зави-
i
симость затрат от величины улова, т.е. fi(xi) = с ство перерабатывающих заводов, их объемы потребления сырья b1, b
b
и матрица транспортных затрат сij, аналогичная тем, которые использу-
m
. Также известно количе-
ixi
, …,
2
ются в задачах линейного программирования.
Задача состоит в распределении рыболовных судов по районам про­мысла, определении их оснащения орудиями лова и организации перевоз­ки добытой рыбы на перерабатывающие заводы так, чтобы суммарные за­траты на ловлю и перевозку были минимальными.
Приняв, что объем вылова в i-м районе промысла составит xi, а x
ij
количество рыбы, перевозимой из Ri в bj, получим целевую функцию, опи-
n
сывающую суммарные затраты на промысел
с x
ij ij
на перерабатывающие заводы из районов промысла:
n
Z(X) =
с x с x

i
1

i i ij ij
Кроме этого, имеем несколько уравнений ограничений, накладывае­мых на переменные величины:
x
0 – количество перевозимой рыбы не может быть отрицательным;
ij
m
x
=
i
i
весь полученный улов доставляется на заводы;
ij
1
90
с x
ii
1
i
min.
и на перевозку улова
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]