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

Решение_задач_исследования_операций

.pdf
Скачиваний:
34
Добавлен:
18.04.2015
Размер:
707.24 Кб
Скачать

71

Вычислим оценки 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 ) . Нормаль к этим