Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Принятие оптимальных решений в перевозках на морском транспорте. Учебное пособие
.pdf
Задача 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·М
2·х1 + 4·х2 + 9·х3 + 12·х4 = n2·М
3·х1 + 7·х2 + 10·х3 + 11·х4 = n3·М
8·х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х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.
и на перевозку улова
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
