Решение_задач_исследования_операций
.pdf71
Вычислим оценки Sij для незанятых клеток:
S12 = 6 − 0 − 0 = 6; |
S13 = 9 − 0 − 0 = 9; |
S21 = 3 −1 − 2 = 0; |
|
S24 |
= 4 − 2 − 3 = −1; |
S31 = 4 − 4 − 1 = −1; |
S32 = 5 − 4 − 0 = 1; |
S42 |
= 4 − 0 − 0 = 4; |
S44 = 9 − 0 − 3 = 6; |
S51 = 0 − (−3) −1 = 2. |
S52 |
= 0 − (−3) − 0 = 3; |
S53 = 0 − (−3) − 0 = 3; |
|
Среди оценок Sij есть отрицательные числа, поэтому план перевозок не является оптимальным. Определяем наименьшее отрицательное
число min Sij = −1, S24 |
= S31 = −1 . Из двух |
клеток |
x24 и x31 выберем, |
например, клетку |
x24 и построим |
для нее |
«означенный» цикл |
пересчета (клетку x24 |
делаем базисной, рис. 2.7). |
|
|
|
Рис. 2.7 |
|
|
|
|
|
|
Наименьшее |
число |
среди перевозок |
из |
«отрицательных» клеток |
||||
(λ = min {x23 , x34 }) |
равно |
λ = x23 = 10 . Осуществляем |
сдвиг по |
циклу на |
||||
число λ = 10 . Получим новые значения перевозок |
x24 = 10; x33 = 50; x34 = 10 , |
|||||||
клетка x23 становится свободной, |
а клетка |
x24 |
- |
базисной. |
Получим |
|||
матрицу перевозок (табл. 2.20). |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Таблица 2.20 |
|
|
j |
1 |
|
2 |
|
|
3 |
4 |
i |
bj |
|
|
|
|
|
|
|
|
20 |
|
40 |
|
|
50 |
80 |
|
ai |
|
|
|
|
|
|
|
|
1 |
20 |
1 |
6 |
|
|
9 |
|
3 |
|
|
0 |
|
|
|
|
|
20 |
2 |
50 |
3 |
2 |
|
|
2 |
|
4 |
|
|
|
|
40 |
|
|
10 |
|
3 |
60 |
4 |
5 |
|
|
4 |
|
7 |
|
|
|
|
|
|
|
50 |
10 |
4 |
20 |
1 |
4 |
|
|
3 |
|
9 |
|
|
20 |
|
|
|
|
|
|
5 |
40 |
0 |
0 |
|
|
0 |
|
0 |
|
|
|
|
|
|
|
|
40 |
72
Получим стоимость перевозок:
Z = 0 1 + 20 3 + 40 2 + 10 4 + 50 4 + 10 7 + 20 1 + 40 0 = 470 .
Составим и решим систему уравнений для потенциалов (для каждой базисной клетки сумма потенциалов равна стоимости перевозок):
u1 + v1 = 1,
u1 + v4 = 3,u2 + v2 = 2,u2 + v4 = 4,
u3 + v3 = 4,
u3 + v4 = 7,
u4 + v1 = 1,
u5 + v4 = 0.
Отсюда находим u1 = 0, v1 = 1, v4 = 3, u3 = 4, v3 = 0, u4 = 0, u5 = −3, v2 = 1.
Запишем потенциалы в табл. 2.21. Вычислим оценки Sij для незанятых клеток:
S12 = 6 − 0 − 0 = 6; |
S13 = 9 − 0 − 0 = 9; |
S21 = 3 −1 −1 = 1; |
|
S24 |
= 2 −1 − 0 = 1; |
S31 = 4 − 4 − 1 = −1; |
S32 = 5 − 4 −1 = 0; |
S42 |
= 4 − 0 −1 = 3; |
S44 = 3 − 0 − 0 = 3; |
S51 = 0 − (−3) −1 = 2. |
S52 |
= 0 − (−3) −1 = 2; |
S53 = 0 − (−3) − 0 = 3; |
|
|
|
|
|
|
|
|
|
|
|
Таблица 2.21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j |
|
1 |
|
2 |
|
|
3 |
|
4 |
|
i |
|
bj |
|
|
|
|
|
|
|
|
ui |
|
|
20 |
|
40 |
|
|
50 |
|
80 |
||
|
|
|
|
|
|
|
|
||||
|
ai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
20 |
|
1 |
|
6 |
|
9 |
|
3 |
|
0 |
|
|
|
|
0 |
|
|
|
|
|
20 |
|
2 |
50 |
|
3 |
|
2 |
|
2 |
|
4 |
|
1 |
|
|
|
|
|
|
40 |
|
|
|
10 |
|
3 |
60 |
|
4 |
|
5 |
|
4 |
|
7 |
|
4 |
|
|
|
|
|
|
|
|
50 |
|
20 |
|
4 |
20 |
|
1 |
|
4 |
|
3 |
|
9 |
|
0 |
|
|
|
|
20 |
|
|
|
|
|
|
|
5 |
40 |
|
0 |
|
0 |
|
0 |
|
0 |
|
-3 |
|
|
|
|
|
|
|
|
|
|
40 |
|
|
v j |
|
1 |
|
1 |
|
|
0 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Среди оценок есть отрицательная оценка (S31 = −1) , поэтому нужно
сделать еще один шаг. Построим «означенный» цикл пересчета для клетки x31 (рис. 2.8).
73
Рис. 2.8
Осуществляем сдвиг по циклу λ = 0 . При этом клетка x11 станет свободной, а клетка x31 - базисной. Запишем матрицу перевозок,
составим и решим систему уравнений для потенциалов и запишем потенциалы в табл. 2.22.
u1 + v4 = 3,
u1 + v2 = 2,u2 + v4 = 4,u3 + v1 = 4,
u3 + v3 = 4,
u3 + v4 = 7,
u4 + v1 = 1,
u5 + v4 = 0.
|
|
|
|
|
|
|
|
|
|
Таблица 2.22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j |
|
1 |
|
2 |
|
|
3 |
|
4 |
|
i |
|
bj |
20 |
|
40 |
|
|
50 |
|
80 |
ui |
|
|
|
|
|
|
|
|
||||
|
ai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
20 |
|
1 |
|
6 |
|
9 |
|
3 |
|
0 |
|
|
|
|
|
|
|
|
|
|
20 |
|
2 |
50 |
|
3 |
|
2 |
|
2 |
|
4 |
|
1 |
|
|
|
|
|
|
40 |
|
|
|
10 |
|
3 |
60 |
|
4 |
|
5 |
|
4 |
|
7 |
|
4 |
|
|
|
|
0 |
|
|
|
50 |
|
10 |
|
4 |
20 |
|
1 |
|
4 |
|
3 |
|
9 |
|
1 |
|
|
|
|
20 |
|
|
|
|
|
|
|
5 |
40 |
|
0 |
|
0 |
|
0 |
|
0 |
|
-3 |
|
|
|
|
|
|
|
|
|
|
40 |
|
|
v j |
|
0 |
|
1 |
|
|
0 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
74
Вычислим оценки Sij для незанятых клеток (по формуле Sij = cij − ui − v j ):
S11 = 1 − 0 − 0 = 1; |
S12 = 6 − 0 −1 = 5; |
S13 = 9 − 0 − 0 = 9; |
|
S21 = 3 −1 − 0 = 2; |
S23 = 2 −1 − 0 = 1; |
S32 = 5 − 4 −1 = 0; |
|
S42 |
= 4 −1 − 1 = 2; |
S43 = 3 − 1 − 0 = 2; |
S44 = 9 −1 − 3 = 5; |
S52 |
= 0 + 3 − 0 = 3; |
S52 = 0 + 3 −1 = 2; |
S53 = 0 + 3 − 0 = 3. |
Все оценки – неотрицательны. Следовательно, решение является оптимальным.
|
|
|
|
0 |
0 |
0 |
20 |
|
|||
|
|
|
|
|
0 |
40 |
0 |
10 |
|
|
|
Ответ: Z |
|
= 470 при матрице перевозок |
X = |
|
|
. |
|||||
min |
|
0 |
0 |
50 |
10 |
|
|||||
|
|
|
|
||||||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
|
|
|
|
|
|
|
20 |
0 |
|
Пример 2.3. На предприятии имеется пять станков различных видов, каждый из которых может выполнять, пять различных операции по обработке деталей. Производительность каждого станка при выполнении каждой операции задана табл. 2.23:
|
|
|
|
|
Таблица 2.23 |
|
|
|
|
|
|
|
|
Операции |
1 |
2 |
3 |
4 |
|
5 |
Станки |
|
|
|
|
|
|
1 |
4 |
3 |
5 |
6 |
|
6 |
2 |
3 |
4 |
3 |
4 |
|
3 |
3 |
5 |
6 |
4 |
2 |
|
5 |
4 |
5 |
3 |
4 |
6 |
|
3 |
5 |
6 |
2 |
6 |
4 |
|
5 |
Нужно закрепить за каждым станком только одну операцию таким образом, чтобы общая производительность станков была максимальной. Решить задачу Венгерским методом.
Решение: Венгерским методом решения задачи о назначениях, учитывает специфику задачи; опишем алгоритм этого метода:
1)приведем функцию цели Z к задаче о минимизации стоимости назначений, если в исходной задаче требуется определить максимум стоимости назначений. Для этого все элементы матрицы C умножаем на (-1) и прибавляем к ним достаточно большое положительное число (произвольное) так, чтобы элементы новой матрицы стали положительными.
2)в новой матрице стоимостей C получаем максимально возможное число нулевых элементов. Для этого из всех элементов каждой строки вычитаем минимальный элемент этой строки, а затем из всех элементов каждого столбца вычитаем минимальный элемент этого столбца.
75
3) если в преобразованной матрице в каждой строке и в каждом столбце можно выбрать по одному нулевому элементу (их отмечают звездочками), то полученное решение будет являться оптимальным решением. Полагаем xij = 1 для всех элементов (в том числе и нулевых,
но отмеченных звездочками). Элементы Cij для вычисления значения
Zmin берут из исходной матрицы стоимостей C .
4)если в матрице нельзя выбрать по одному нулевому элементу для каждой строки и каждого столбца, то ее преобразовывают следующим образом. Проводим минимальное число прямых вдоль строк и столбцов так, чтобы все нули оказались вычеркнуты. Выберем наименьший элемент среди не вычеркнутых и вычтем его значение из всех не вычеркнутых элементов, а к каждому элементу, стоящему на пересечении прямых это число добавим.
5)повторяем действия, описанные в пунктах (3) и (4) до тех пор, пока не получим оптимальное решение.
Введем переменные xij следующим образом:
1, если станоксномеромi
xij = закрепляется заоперациейсномером j
0, впротивномслучае
Пусть Cij производительность i-того станка при выполнении j-той операции. Тогда математическая постановка задачи состоит в том, что
нужно найти такое значение |
xij |
(i = 1, 2, 3, 4, 5; j = 1, 2, 3, 4, 5) , при которых |
функция цели Z принимает наибольшие значения: |
||
|
5 |
5 |
Z = ∑ ∑Cij xij |
||
|
i=1 |
j=1 |
и выполнены ограничения: |
|
|
5 |
= 1, (i = 1, 2, 3, 4, 5), |
|
∑xij |
||
j=1 |
|
|
5 |
|
|
∑xij |
= 1, ( j = 1, 2, 3, 4, 5). |
|
i=1 |
|
|
Задачу о назначениях будем решать венгерским методом.
Чтобы привести исходную задачу к задаче минимизации преобразуем матрицу производительностей станков C следующим образом: умножим все элементы матрицы на (-1) и прибавим к ним положительное число, такое чтобы новая матрица не содержала отрицательных элементов. В нашем случае имеем матрицу:
76
4 |
3 |
5 |
6 |
6 |
|
|
|
3 |
4 |
3 |
4 |
3 |
|
|
|
|||||
C = |
5 |
6 |
4 |
2 |
5 |
. |
|
|
|
|
|
|
|
5 |
3 |
4 |
6 |
3 |
|
|
|
|
2 |
6 |
4 |
5 |
|
6 |
|
Умножим все элементы на (-1) и прибавим к ним число 6, в результате получим новую матрицу:
2 |
3 |
1 |
0 |
0 |
|
|
|
3 |
2 |
3 |
2 |
3 |
|
|
|
|||||
C = |
1 |
0 |
2 |
4 |
1 |
. |
|
|
|
|
|
|
|
1 |
3 |
2 |
0 |
3 |
|
|
|
|
4 |
0 |
2 |
1 |
|
0 |
|
Получим в этой матрице максимально возможное число нулевых элементов. Для этого из всех элементов каждой строки вычитаем минимальный элемент этой строки, а затем из всех элементов каждого столбца вычитаем минимальный элемент этого столбца. В результате получим матрицу:
2 |
3 |
1 |
0 |
0 |
|
|
|
1 |
0 |
1 |
0 |
1 |
|
|
|
|||||
C = |
1 |
0 |
2 |
4 |
1 |
. |
|
|
|
|
|
|
|
1 |
3 |
2 |
0 |
3 |
|
|
|
|
4 |
0 |
2 |
1 |
|
0 |
|
Поскольку в этой матрице нельзя выбрать в каждой строке и в каждом столбце по одному нулевому элементу, то оптимальное решение еще не получено. Перейдем к следующему шагу венгерского метода.
Проводим минимальное число прямых вдоль строк и столбцов так, чтобы все нули оказались вычеркнутыми. Выберем наименьший элемент среди не вычеркнутых и вычтем его значение из всех не вычеркнутых элементов, а к каждому значению, стоящему на пересечении прямых это значение добавим. В нашем случае вычеркнем столбцы с номерами 2, 4, 5 и строку с номером 5:
77
Наименьший элемент среди не вычеркнутых равен 1. Вычитаем это число из не вычеркнутых элементов, а к каждому числу, стоящему на пересечении линий число 1 добавим. В результате получим матрицу:
|
1 |
|
3 |
0 |
0 |
* |
|
|
|
0 |
|
||||
|
0 |
|
0 |
0 |
0* |
1 |
|
0 |
0* |
1 |
4 |
1 . |
|||
0* |
3 |
1 |
0 |
3 |
|
||
0 |
|
5 |
0* |
3 |
2 |
|
В каждой строке и в каждом столбце этой матрицы можно выбрать по одному нулевому элементу (эти элементы помечены звездочками). Значит, получено оптимальное решение. Заменим нулевые элементы, отмеченные звездочками на единицы, а все остальные элементы заменим нулями. В результате получим оптимальное решение:
|
0 |
0 |
0 |
0 |
1 |
|
|
0 |
0 |
0 |
1 |
0 |
|
|
X = 0 |
1 |
0 |
0 |
0 |
. |
|
|
|
|
|
|
|
|
1 |
0 |
0 |
0 |
0 |
|
|
0 |
0 |
1 |
0 |
0 |
|
При этом производительность станков равна: |
||||||
5 |
5 |
|
|
|
|
|
Z = ∑ ∑Cij xij , Z = 6 + 4 + 6 + 5 + 6 = 27 . |
||||||
i=1 |
j =1 |
|
|
|
|
|
Ответ: за первым станком нужно закрепить пятую операцию; за вторым станком – четвертую операцию; за третьим станком – вторую операцию; за четвертым станком – первую операцию; за пятым станком – третью операцию. При этом общая производительность будет составлять двадцать семь деталей в единицу времени.
Пример 2.4. Дана целевая функция |
z = x1 + x2 (max; min) и нелинейная |
|
система ограничений |
|
|
4x + 3x |
≤ 24, |
|
1 |
2 |
|
(x1 − 2)( x2 + 1) ≥ 4, |
||
|
|
|
x1 ≥ 0, x2 ≥ 0. |
|
|
Графическим методом найти максимум и минимум функций цели. |
||
Решение. Изобразим на плоскости |
X1 0 X 2 ( X 0Y ) множество решений |
системы ограничений. Построим линию, соответствующую уравнению ( x1 − 2)( x2 + 1) = 4 . Запишем это уравнение в виде:
4
x2 = −1 + x1 − 2 .
Графиком этой функции является гипербола (рис.2.9); уравнения ее асимптот: x1 = 2; x2 = −1 .
78
В первой части первого неравенства удовлетворяют все точки, которые расположены не ниже построенной ветви гиперболы.
Второму |
неравенству |
системы |
ограничений |
(4x1 + 3x2 ≤ 24) |
|||
удовлетворяют |
все |
точки, |
которые расположены |
под |
прямой |
||
4x1 + 3x2 ≤ 24 |
или |
на |
этой |
прямой |
(рис. 2.10). Таким |
образом, |
множеством решений системы ограничений является множество точек, заштрихованное на рис. 2.11.
Рис. 2.9
Рис. 2.10
79
Рис. 2.11
Линиями уровня является прямые x1 + x2 = z0 ( z0 − const ) . Нормалью к этим прямым является вектор n = (1;1) .
Если передвигать линии уровня в направлении нормали, то значение z0 будет увеличиваться, а если передвигать эти линии в
противоположном направлении, то z0 будет уменьшаться.
1) наибольшее значение функции цели будет достигаться в точке A , являющейся точкой пересечения прямой и гиперболы. Найдем координаты точки A :
( x − 2) ( x + 1) = 4, |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
1 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
4x + 3x |
= 24. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
1 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Выразим из первого уравнения |
|
|
x2 |
и подставим |
его |
|
во |
второе |
||||||||||||||||
уравнение: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
= |
6 − x1 |
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
x1 − 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
6 − x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
4x + 3 |
|
= 24. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
1 |
|
|
x1 |
− 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Отсюда, получаем систему: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
= |
6 − x1 |
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
x1 − 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
4x12 − 35x1 + 66 = 0. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Решением этой системы являются две пары чисел: |
x1 = |
11 |
; x2 |
= |
|
13 |
|
и |
||||||||||||||||
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
3 |
|
||||
( x1 = 6; x2 = 0) . Координаты точки A |
11 |
; |
13 |
, при этом zmax |
= |
11 |
+ |
13 |
= |
85 |
. |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
4 3 |
4 |
|
3 |
|
12 |
|
|
|
|
80
2) минимальное значение функции цели будет достигаться в точке
В , в которой линии уровня |
|
|
x1 + x2 = z0 совпадет с касательной к |
||||||||||
гиперболе. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Запишем линию уровня в виде: |
x2 = −x1 + z0 , отсюда |
следует, что |
|||||||||||
угловой коэффициент касательной к гиперболе в точке |
В равен -1. |
||||||||||||
Значит, производная в точке касания равна -1: |
|
||||||||||||
|
|
|
|
|
|
x ′ = |
6 − x1 |
|
= −1 . |
|
|||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
2 |
|
|
||||||||
|
|
|
|
|
|
|
x1 − 2 |
|
|
|
|||
Отсюда, имеем: |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
4 |
= 1; (x − 2)2 = 4; |
|
||||||||
|
|
|
|
(x − 2)2 |
|
|
|
|
1 |
|
|
||
|
|
|
1 |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
x1 = 4 или x1 = 0 . |
|
||||||
Значение x1 = 0 |
принадлежит |
другой ветви параболы и, поэтому, |
|||||||||||
является посторонним решением. |
|
|
|
||||||||||
Координаты точки В(4;1) , при этом zmin = 4 + 1 = 5 . |
|
||||||||||||
Ответ: zmax |
= |
85 |
, при x1 = |
11 |
; x2 = |
13 |
; |
|
|
|
|||
|
|
|
|
|
|
||||||||
|
12 |
4 |
|
3 |
|
|
|
|
|||||
zmin |
= 5 , при x1 = 4; x2 = 1. |
|
|
|
|
|
|
|
Пример 2.5. Дана линейная целевая функция z = x1 + 3x2 и нелинейная система ограничений
( x1 − 5)2 + ( x2 − 3)2 ≥ 9,
( x1 − 5)2 + ( x2 − 3)2 ≤ 36,
x1 + x2 ≥ 8,
x1 ≥ 0; x2 ≥ 0.
Найти глобальные экстремумы.
Решение. Изобразим на плоскости X1 0 X 2 ( X 0Y ) область допустимых
решений системы ограничения задачи. Множеством решений первых двух неравенств:
( x1 − 5)2 + ( x2 − 3)2 ≥ 9,
( x1 − 5)2 + ( x2 − 3)2 ≤ 36.
является область (кольцо), заключенная между двумя окружностями и
с общим центром в |
точке С(5; 3) |
и радиусом R1 = 3 |
и R2 = 6 . |
Множеством решений |
неравенства |
x1 + x2 ≥ 8 является |
плоскость, |
расположенная над прямой x1 + x2 = 8 . |
Область допустимых решений |
системы ограничений на рис. 2.12 выделена штриховкой. Линии уровня функции цели – прямые x1 + 3x2 = z0 ( z0 − const ) . Нормаль к этим