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

 

Клетки

 

(1; 3)

 

è

 

(2; 1) помечены знаком (+), а клетки (1; 1)

è

(2; 3)

 

знаком ( ). По полученному циклу перераспределяется

x0

=

min

f

10; 20

g

=

10 единиц продукции. В результате получаем

 

 

 

 

 

 

 

 

 

 

:

следующий план перевозок x2

 

 

 

 

 

 

 

 

 

 

 

 

 

B1

B2

B3

B4

 

 

 

A1

 

10

 

100

 

10

 

 

 

 

 

A2

 

50

 

 

 

 

 

 

 

 

 

 

A3

 

 

 

 

 

70

 

60

 

 

Стоимость перевозок по данному плану равна

f(x2) = 10 ¢ 5 + 100 ¢ 3 + 10 ¢ 1 + 50 ¢ 2 + 70 ¢ 2 + 60 ¢ 4 = 840:

Переходим на следующую итерацию.

Находим потенциалы для плана x2 из системы уравнений:

v1 ¡ u1 = 5; v2 ¡ u1 = 3; v3 ¡ u1 = 1; v1 ¡ u2 = 2; v3 ¡ u3 = 2; v4 ¡ u3 = 4:

Получаем одно из решений:

u1 = 0; u2 = 3; u3 = ¡1; v1 = 5; v2 = 3; v3 = 1; v4 = 3:

Проверяем полученный план на оптимальность:

¢14 = v4 ¡ u1 ¡ c14 = 3 ¡ 0 ¡ 3 = 0,

¢22 = v2 ¡ u2 ¡ c22 = 3 ¡ 3 ¡ 4 = ¡4 < 0, ¢23 = v3 ¡ u2 ¡ c23 = 1 ¡ 3 ¡ 2 = ¡4 < 0, ¢24 = v4 ¡ u2 ¡ c24 = 3 ¡ 3 ¡ 3 = ¡3 < 0, ¢31 = v1 ¡ u3 ¡ c31 = 5 ¡ (¡1) ¡ 7 = ¡1 < 0, ¢32 = v2 ¡ u3 ¡ c32 = 3 ¡ (¡1) ¡ 6 = ¡2 < 0.

Òàê êàê âñå ¢ij · 0, то план перевозок x2 является оптимальным.

31

3.3. Задания для самостоятельной работы

1. Решить транспортную задачу методом потенциалов.

à)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B1

 

B2

 

 

B3

 

B4

 

 

 

 

 

 

 

A1

5

1

 

2

 

1

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A2

2

7

 

9

 

3

 

 

140

 

 

 

A3

7

3

 

4

 

4

 

 

100

 

 

 

 

50

20

 

130

 

60

 

 

 

 

 

 

á)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B1

 

B2

 

B3

 

B4

 

 

 

 

 

 

 

A1

2

3

 

1

 

8

 

 

70

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A2

4

4

 

9

 

3

120

 

 

 

A3

1

6

 

2

 

2

 

 

60

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40

50

 

80

 

80

 

 

 

 

 

 

â)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B1

 

B2

 

B3

 

B4

 

 

 

 

 

A1

5

 

1

 

1

 

 

2

 

200

 

A2

3

 

8

 

2

 

 

6

 

150

 

A3

4

 

6

 

5

 

 

2

 

250

 

 

120

 

300

 

70

 

110

 

 

 

 

ã)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B1

 

B2

 

B3

 

B4

 

 

 

 

 

A1

7

 

2

 

4

 

 

3

 

200

 

A2

1

 

5

 

2

 

 

3

 

140

 

A3

3

 

4

 

2

 

 

1

 

220

 

 

120

 

50

 

100

 

250

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

4. ЗАДАЧИ ЦЕЛОЧИСЛЕННОГО ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ

Задачи целочисленного линейного программирования (ЦЛП) являются математическими моделями многих практических задач, возникающих в экономике, планировании, управлении и других областях. Одним из первых появившихся методов решения задач ЦЛП является метод отсечения.

4.1. Алгоритм отсечения Гомори

Симплекс-метод, использующийся для решения задачи ЛП, не гарантирует целочисленности решения задачи, поэтому для отыскания оптимального решения задачи ЦЛП требуются специальные методы метод ветвей и границ, динамическое программирование, направленный перебор, метод отсечения и другие. Рассмотрим использование первого алгоритма Гомори для решении задачи ЦЛП, который является дробным двойственным алгоритмом отсечения.

Пример 4.1. Решить задачу ЦЛП.

f(x) = x1 + x2 ! min

x1

¡ x2 ·

4;

x1

+ 3x2

¸

6;

x1

¡ 3x2

¸ ¡3;

x1

¸ 0; x2 ¸ 0;

x1; x2 2 Z:

Итерация 1

Решаем задачу без условия целочисленности двойственным симплекс- -методом. Заключительная таблица имеет вид:

 

 

x5

x4

f

¡3

1=3

2=3

x1

3=2

¡1=2 ¡1=2

x2

3=2

1=6 ¡1=6

x3

4

2=3

1=3

x4

0

0

¡1

x5

0

¡1

0

33

симплексной таблице. В которая теряет прямую допустимой:
Итерация 2
Вводим дополнительную переменную
x¤1 = (3=2; 3=2; 4; 0; 0)

Оптимальное решение задачи ЛП не является

целочисленным, следовательно, добавляем правильное отсечение к ограничениям задачи. Для этого выбираем некоторую переменную с дробным значением, например, x1. Ей соответствует следующее

уравнение:

¡12x5 ¡ 12x4 + x1 = 32.

Отсечения в первом алгоритме Гомори строятся по формуле

¡ P ijgxj · ¡f®i0g,

j2J

ãäå J множество индексов небазисных переменных, а f®g дробная часть числа ®.

Тогда отсечение Гомори выглядит следующим образом:

¡12x5 ¡ 12x4 · ¡12.

x6 и добавляем отсечение к

результате получаем следующую таблицу, допустимость, но остается двойственно

 

 

x5

x4

f

¡3

1=3

2=3

x1

3=2

¡1=2 ¡1=2

x2

3=2

1=6 ¡1=6

x3

4

2=3

1=3

x4

0

0

¡1

x5

0

¡1

0

x6

¡1=2

¡1=2 ¡1=2

Решая новую задачу ЛП двойственным симплекс-методом, получаем заключительную симплексную таблицу этой задачи:

34

 

 

x6

x4

f

¡10=3

2=3

1=3

x1

2

¡1

0

x2

4=3

1=3 ¡1=3

x3

10=3

4=3 ¡1=3

x4

0

0

¡1

x5

1

¡2

0

x6

0

¡1

0

Оптимальное решение задачи ЛП x¤2 = (2; 4=3; 10=3; 0; 1; 0) также не является целочисленным, следовательно, опять добавляем отсечение к ограничениям задачи. Построим отсечение, например, по переменной x2.

Ей соответствует уравнение:

13x6 ¡ 13x4 + x2 = 43.

Получаем следующее отсечение Гомори:

¡13x6 ¡ 23x4 · ¡13.

Итерация 3

Вводя дополнительную переменную x7 и добавляя отсечение к симплексной таблице, получаем таблицу:

 

 

x6

x4

f

¡10=3

2=3

1=3

x1

2

¡1

0

x2

4=3

1=3 ¡1=3

x3

10=3

4=3 ¡1=3

x4

0

0

¡1

x5

1

¡2

0

x6

0

¡1

0

x7

¡1=3

¡1=3 ¡2=3

Решаем новую задачу ЛП. Оптимальная симплексная таблица для этой задачи ЛП имеет вид:

35

 

 

x6

x7

f

¡7=2

1=2

1=2

x1

2

¡1

0

x2

3=2

1=2 ¡1=2

x3

7=2

3=2 ¡1=2

x4

1=2

1=2

3=2

x5

1

¡2

0

x6

0

¡1

0

x7

0

0

¡1

Оптимальное решение задачи ЛП x¤3 = (2; 3=2; 7=2; 1=2; 1; 0; 0) не является целочисленным. Добавляем третье отсечение к ограничениям задачи. Построим отсечение, например, по переменной x2. Åé

соответствует уравнение:

12x6 ¡ 12x7 + x2 = 32.

Получаем отсечение Гомори:

¡12x6 ¡ 12x7 · ¡12.

Итерация 4

Вводим дополнительную переменную x8 и добавляем отсечение к симплексной таблице. Получаем следующую таблицу:

 

 

x6

x7

f

¡7=2

1=2

1=2

x1

2

¡1

0

x2

3=2

1=2 ¡1=2

x3

7=2

3=2 ¡1=2

x4

1=2

1=2

3=2

x5

1

¡2

0

x6

0

¡1

0

x7

0

0

¡1

x8

¡1=2

¡1=2 ¡1=2

Решаем задачу ЛП. Оптимальная симплексная таблица этой задачи имеет вид:

36

 

 

x8

x7

f

¡4

1

0

x1

3

¡2

1

x2

1

1

¡1

x3

2

5

¡3

x4

0

1

1

x5

3

¡4

2

x6

1

¡2

1

x7

0

0

¡1

x8

0

¡1

0

Оптимальное решение задачи ЛП x¤4 = (3; 1; 2; 0; 3; 1; 0; 0) является целочисленным. Следовательно, оно также является и оптимальным решением задачи ЦЛП. Решением исходной задачи ЦЛП будет z¤ = (3; 1; 2). Значение целевой функции на этом решении равно f¤ = 4.

Заметим, что в процессе решения задачи ЦЛП можно отбрасывать некоторые отсечения. Эта процедура уменьшает вычисления и не изменяет оптимального решения задачи.

4.2.Задания для самостоятельной работы

1.Решить задачи ЦЛП, используя отсечения Гомори:

à)

f(x) = 3x1 + 2x2 ! max x1 + 7x2 · 15;

x1 ¡ 2x2 · 4; 3x1 ¡ x2 ¸ ¡5; x1; x2 ¸ 0;

x1; x2 2 Z:

á)

f(x) = 4x1 ¡ x2 + x3 ! max x1 + 5x2 + x3 · 15;

2x1 ¡ x2 ¡ x3 ¸ ¡4; x1; x2; x3 ¸ 0;

x1; x2; x3 2 Z:

37

â)

ã)

ä)

f(x) = x1 + x2 + x3 ! max

3x1 + 7x2 + 2x3 · 20;

¡x1 + 6x2 ¡ x3 ¸ ¡5; x1; x2; x3 ¸ 0;

x1; x2; x3 2 Z:

f(x) = 3x1 + x2 + 8x3 ! max x1 + 4x2 + 5x3 · 15;

2x1 + x2 + 7x3 · 20; x1 + 2x2 + x3 · 10; x1; x2; x3 ¸ 0;

x1; x2; x3 2 Z:

f(x) = 4x1 + 7x2 ! max

2x1 + 3x2 + 5x3 · 25; 4x1 ¡ 8x2 ¡ 3x3 ¸ ¡1; x1; x2; x3 ¸ 0;

x1; x2; x3 2 Z:

38

5. СЕТЕВОЕ ПЛАНИРОВАНИЕ И УПРАВЛЕНИЕ

Реализация многих проектов в различных сферах связано с осуществлением ряда работ (операций, действий), одни из которых могут выполняться одновременно, а другие только в определенной последовательности. Методы сетевого планирования позволяют наглядно представлять ход выполнения проектов, а также определять основные временные параметры.

5.1. Расчет временных параметров сетевого графика

Основными временными параметрами сетей являются ранние и поздние сроки наступления событий. Зная их, можно вычислить остальные параметры сетевого графика: сроки начала и окончания работ и резервы времени событий и работ, а также определить критический путь.

Пример 5.1. Рассчитать сетевой график. Определить критический путь.

 

 

 

 

 

 

©*¾»2

 

-

¾»

 

 

 

 

 

 

 

5

©©

3

 

 

 

 

 

5

H

 

 

 

 

 

 

 

 

 

©

 

½¼ ½¼ Hj

 

 

 

©©©

 

 

 

 

 

 

³³³

 

9

 

HH

 

 

¾»

8

-¾»

 

 

 

 

-¾»

 

©

 

 

 

 

³

³

 

 

 

 

 

 

 

H

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

»: 6

P

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

»

½¼

½¼PPPPPP½¼AAUA 6

»

»»»»»»

 

 

 

 

 

 

 

 

3

 

PPPq¾»4

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

»

 

 

 

 

 

 

 

 

½¼

Расчет сетевого графика начнем с определения ранних сроков наступления событий, которые вычисляются по формуле:

 

 

tr(j) = maxi ftr(i) + tijg:

Ранний

ñðîê

наступления первого (исходного) события равен нулю:

tr(1) =

0:

Далее вычисляем ранние сроки тех событий, которым

предшествует только первое событие. Это события с номерами 2 и 3.

39

tr(2) = tr(1) + t12 = 0 + 8 = 8; tr(3) = tr(1) + t13 = 0 + 5 = 5:

Теперь определяем ранние сроки для событий, которым предшествуют другие события, кроме событий с номерами 1, 2 Это события с номерами 4 и 5:

tr(4) = maxftr(1) + t14; tr(2) + t24g = maxf0 + 3; 8 + 6g = = maxf3; 14g = 14;

tr(5) = maxftr(2) + t25; tr(3) + t35g = maxf8 + 1; 5 + 2g = = maxf9; 7g = 9:

И, наконец, определяем ранний срок наступления шестого события:

tr(6) = maxftr(2) + t26; tr(4) + t46; tr(5) + t56g =

= maxf8 + 9; 14 + 7; 9 + 6g = maxf17; 21; 15g = 21:

Далее определим поздние сроки наступления событий по формуле:

íå è 3.

tp(j) = minftp(i) ¡ tjig:

i

Вычисление поздних сроков наступления событий начинается с завершающего события. Поздний срок завершающего события совпадает с его ранним сроком, т.е. tp(6) = tr(6) = 21. Теперь определим поздние

сроки тех событий, за которыми следует только шестое событие. Это события с номерами 4 и 5.

tp(5) = tp(6) ¡ t56 = 21 ¡ 6 = 15; tp(4) = tp(6) ¡ t46 = 21 ¡ 7 = 14:

Далее определяем поздние сроки событий, за которыми не следуют другие события, кроме событий с номерами 4, 5, 6. Это события 2, 3.

tp(3) = tp(5) ¡ t35 = 15 ¡ 2 = 13;

tr(2) = minftp(6) ¡ t26; tp(5) ¡ t25; tp(4) ¡ t24g =

= minf21 ¡ 9; 15 ¡ 1; 14 ¡ 6g = minf12; 14; 8g = 8:

Поздний срок наступления исходного события равен нулю: tp(1) = 0. Определим также резервы времени событий по формуле:

R(j) = tp(j) ¡ tr(j).

Получим

R(1) = tp(1) ¡ tr(1) = 0 ¡ 0 = 0, R(2) = tp(2) ¡ tr(2) = 8 ¡ 8 = 0, R(3) = tp(3) ¡ tr(3) = 13 ¡ 5 = 8, R(4) = tp(4) ¡ tr(4) = 14 ¡ 14 = 0,

40