Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichni_vkazivki_z_kursovoyi_roboti_DOvTS.doc
Скачиваний:
63
Добавлен:
28.02.2016
Размер:
5.33 Mб
Скачать

5.3. Приклад розв’язання задачі за допомогою угорського методу

Нехай в результаті вирішення основної транспортної задачі ми отримали оптимальні обсяги перевезень xij>=0 у кількості (m+n–1). З урахуванням матриці відстаней можна отримати відповідну матрицю обсягів транспортної роботи (ТР) , причому кількість її ненульових елементів також дорівнює (m+n–1).

Перенумеруємо всі ненегативні обсяги ATPij від 1 до (m+n–1), рухаючись послідовно по кожному рядку матриці обсягів ТР зверху до низу. В результаті отримуємо матрицю-строку А = {Aj}, (), деN = (m+n– 1) – кількість необхідних ТР.

Припустимо, що для виконання спланованих обсягів перевезень передбачено також N транспортних засобів (ТЗ), кожний з котрих характеризується деякою продуктивністю виконання одиниці тієї чи іншої ТР (Пij – продуктивність виконання i – м ТЗ j – ї ТР, де ,). Очевидно, що термін виконанняj – ї ТР i – им ТЗ дорівнює

З метою застосування при розв’язанні цієї задачі алгоритму угорського методу призведемо з матрицею Tрч – матрицею робочого часу виконання ТЗ відповідних транспортних робіт наступні перетворення, а саме:

  • знайдемо у матриці T максимальне значення – саму довгу за терміном виконання транспортну роботу;

  • потім порахуємо за який робочий час tроб буде вона виконана, причому час виконання буде кратним 8 (кількості робочих годин у зміну);

  • побудуємо нову матрицю Tвч, елементи якої означають вільний час, який залишиться після виконання усімаТЗ відповідних транспортних робіт.

При такому розгляді проблеми стає актуальною задача розподілу N транспортних засобів, що забезпечує максимальний загальний строк вільного часу, який залишився після виконання всього комплексу зазначених транспортних перевезень, тобто

, (1)

при обмеженні, що один ТЗ може бути призначений лише для виконання однієї ТР з зазначеного комплексу робіт.

Розглянемо вищеописану методику на конкретному прикладі – оптимальному плану перевезень вантажу з табл. 55, який був отриманий за допомогою методу потенціалів (див. табл. 56).

Таблиця 56

Тт з оптимальним планом перевезень вантажу

B1

B2

B3

B4

Запасиai

A1

4

7

2

70

5

30

100

A2

3

80

6

1

40

8

120

A3

9

3

100

6

2

40

140

Заявки

bj

80

100

110

70

360

З табл. 56 формуємо матрицю-строку А = {Aj}, (), деN = (m+n– 1) – кількість необхідних ТР: 70×2 = 140; 30×5 = 150; 80×3 = 240; 40×1 = 40; 100×3 =

300; 40×2 = 80. Припустимо, що задана матриця Пij–продуктивності виконання i–м ТЗ j–ї ТР:

10

20

30

40

10

20

30

40

10

20

30

40

П =

40

30

20

10

40

30

20

10

40

30

20

10

10

30

20

40

10

30

20

40

10

30

20

40

Розрахуємо по формулі (з приведенням до цілого числа) матрицю Tрч – матрицю робочого часу виконання ТЗ відповідних транспортних робіт:

14

8

8

1

30

4

5

4

24

2

10

2

Трч=

4

5

12

4

8

3

7

15

6

1

15

8

14

5

12

1

30

3

7

4

24

1

15

2

Побудуємо нову матрицю Tвч, елементи якої із розрахункуtроб = 8(8 годин у зміну)×4(зміни) = 32 години:

18

24

24

31

2

28

27

28

8

30

22

30

Твч=

28

27

20

28

24

29

25

17

26

31

17

24

18

27

20

31

2

29

25

28

8

31

17

30

При рішенні завдання використаємо наступні позначення: знак виділення '+', що підлягає знищенню, обводимо кружком.

Попередній етап. Відшукуємо максимальний елемент першого стовпця – 28. Віднімаємо з нього всі елементи цього стовпця. Аналогічно для одержання другого, третього, четвертого, п’ятого й шостого стовпців нової матриці віднімаємо всі елементи цих стовпців від 28, 26, 31, 24 і 30 відповідно. Одержимо матрицю С0(C0вч).

10

4

2

0

22

2

1

0

18

1

2

0

С0=

0

1

6

3

0

1

3

11

0

0

7

6

10

1

6

0

22

1

3

0

18

0

7

0

Тому що в кожному рядку С0 є хоча б один нуль, то на цьому процес приведення матриці закінчується. Далі шукаємо й відзначаємо знаком '*' незалежні нулі в С0, починаючи з першого рядка. Число незалежних нулів дорівнює 5 (5 ≠ n(6)), тому переходимо на першу ітерацію.

10

4

2

0*

22

2

1

0*

18

1

2

0

С0=

0*

1

6

3

0

1

3

11

0*

0

7

6

10

1

6

0

22

1

3

0

18

0

7

0*