- •Методичні вказівки
- •1. Опис дисципліни Мета і завдання вивчення дисципліни
- •До виконання курсового проекту Завдання на курсовий проект
- •Методичні вказівки до виконання курсового проекту
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом мінімального вузла
- •Опорний план за методом випадкового
- •Перша ітерація тт
- •Друга ітерація тт
- •Третя ітерація тт
- •Четверта ітерація тт
- •П’ята ітерація тт
- •Шоста ітерація тт
- •Вихідна тт
- •Тт після розподілу вантажу у клітинку а1в4
- •5. Угорський метод розв’язання транспортної задачі про призначення
- •5.1. Постановка завдання
- •5.2. Розв’язання завдання
- •5.3. Приклад розв’язання задачі за допомогою угорського методу
- •Тт з оптимальним планом перевезень вантажу
- •Перша ітерація
- •6. Матрично-мережева модель управління
- •Масив відстаней між сусідніми вузлами тм
- •Матриця транспортних кореспонденцій між всіма вузлами тм
- •Матриця найкоротших відстаней на тм
- •Опорний план перевезень
- •Тт з потенціалами
- •7. Література
- •Варіанти завдань по курсового проекту
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 1-го до 15-го
- •Обсяги поставок і замовлень продукції до структур тм з номерами варіантів від 16-го до 30-го
- •Вартість перевезення одиниці вантажу між сусідніми вузлами тм
- •Матриця Пij – продуктивності виконання I–м тз j–ї тр
- •Завдання на курсову роботу студента
Перша ітерація
Виділяємо знаком '+' перший, другий, третій, четвертий і шостий стовпці матриці C0, які містять 0*.
Перший етап. Переглядаємо невиділений п’ятий стовпець, знаходимо в ньому невиділений нуль C035 = 0, відзначаємо його штрихом і виділяємо знаком '+' третій рядок. Переглядаємо цей рядок, знаходимо в ньому елемент C031= 0* і знищуємо знак виділення першого стовпця, що містить 0*.
|
|
+ |
+ |
+ |
|
+ |
|
|
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* |
|
Далі переглядаємо цей перший стовпець (який уже став невиділеним) і відшукуємо у ньому невиділений нуль (або нулі). Таких нулів у цьому стовпці не має і також всі нулі матриці C0 виділені, тобто усі вони перебувають у виділених стовпцях або рядках, тому переходимо до третього етапу.
Третій етап. Вибираємо серед невиділених елементів C0 мінімальний і позначаємо його h (h > 0). У нашому випадку h = min {10, 22, 1, 2, 3, 7, 10, 22, 3, 7} = 1. Далі віднімаємо h із всіх цих невиділених елементів 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* |
|
Отримуємо наступну модифікацію таблиці C'0 і переходимо до першого етапу.
|
|
+ |
+ |
+ |
|
+ |
|
|
9 |
4 |
2 |
0* |
21 |
2 |
|
|
0 |
0* |
18 |
1 |
1 |
0 |
|
С'0= |
0* |
2 |
7 |
4 |
0' |
2 |
+ |
2 |
11 |
0* |
0 |
6 |
6 |
| |
|
9 |
1 |
6 |
0 |
21 |
1 |
|
|
2 |
0 |
18 |
0 |
6 |
0* |
|
Перший етап. Переглядаємо невиділений перший стовпець, знаходимо в ньому невиділений нуль C'021 = 0, відзначаємо його штрихом і виділяємо знаком '+' другий рядок. Переглядаємо цей рядок, знаходимо в ньому елемент C'022= 0* і знищуємо знак виділення другого стовпця, що містить 0*. Далі переглядаємо цей другий стовпець (який уже став невиділеним) і відшукуємо у ньому невиділений нуль (або нулі) – це C'062 = 0. Відзначаємо його штрихом і виділяємо знаком '+' шостий рядок. Переглядаємо цей рядок, знаходимо в ньому елемент C'066= 0* і знищуємо знак виділення шостого стовпця, що містить 0*. Далі переглядаємо цей шостий стовпець (який уже став невиділеним) і відшукують у ньому невиділений нуль (або нулі). Таких нулів у цьому стовпці не має і також всі нулі матриці C0 виділені, тобто усі вони перебувають у виділених стовпцях або рядках, тому переходимо до третього етапу.
|
|
|
+ |
+ |
|
|
|
|
9 |
4 |
2 |
0* |
21 |
2 |
|
|
0' |
0* |
18 |
1 |
1 |
0 |
+ |
С'0= |
0* |
2 |
7 |
4 |
0' |
2 |
+ |
2 |
11 |
0* |
0 |
6 |
6 |
| |
|
9 |
1 |
6 |
0 |
21 |
1 |
|
|
2 |
0' |
18 |
0 |
6 |
0* |
+ |
Третій етап. Вибираємо серед невиділених елементів C'0 мінімальний і позначаємо його h (h > 0). У нашому випадку h = min {9, 4, 21, 2, 2, 11, 6, 6, 9, 1, 21, 1} = 1. Далі віднімаємо h із всіх цих невиділених елементів C'0, і додаємо до всіх елементів, розташованих на пересічні виділених рядків і стовпців.
|
|
|
+ |
+ |
|
|
|
|
9 |
4 |
2 |
0* |
21 |
2 |
|
|
0' |
0* |
18 |
1 |
1 |
0 |
+ |
С'0= |
0* |
2 |
7 |
4 |
0' |
2 |
+ |
2 |
11 |
0* |
0 |
6 |
6 |
| |
|
9 |
1 |
6 |
0 |
21 |
1 |
|
|
2 |
0' |
18 |
0 |
6 |
0* |
+ |
Отримуємо наступну модифікацію таблиці C''0 і переходимо до першого етапу.
|
|
|
+ |
+ |
|
|
|
|
8 |
3 |
2 |
0* |
20 |
1 |
|
|
0' |
0* |
19 |
2 |
1 |
0 |
+ |
С''0= |
0* |
2 |
8 |
5 |
0' |
2 |
+ |
1 |
10 |
0* |
0 |
5 |
5 |
| |
|
8 |
0 |
6 |
0 |
20 |
0 |
|
|
2 |
0' |
19 |
1 |
6 |
0* |
+ |
Перший етап. Перший невиділений нуль C''052 = 0 знаходиться у другому стовпці, який перетинається з п’ятим рядком. Переглядаємо цей рядок і не знаходимо в ньому незалежного нуля 0*. Тому відмічаємо його штрихом і переходимо до другого етапу.
|
|
|
+ |
+ |
|
|
|
|
8 |
3 |
2 |
0* |
20 |
1 |
|
|
0' |
0* |
19 |
2 |
1 |
0 |
+ |
С''0= |
0* |
2 |
8 |
5 |
0' |
2 |
+ |
1 |
10 |
0* |
0 |
5 |
5 |
| |
|
8 |
0' |
6 |
0 |
20 |
0 |
|
|
2 |
0' |
19 |
1 |
6 |
0* |
+ |
Другий етап. Починаючи з останнього відміченого нуля зі штрихом C''052 = 0', будуємо ланцюг, рухаючись від нього по стовпцю. Знаходимо нуль із зірочкою C''022= 0*, далі від нього рухаємося уздовж другого рядка й знаходимо нуль зі штрихом C''021 = 0'. Далі пересуваємося по першому стовпцю і знаходимо нуль із зіркою C''031= 0*. Потім знаходимо нуль зі штрихом C''035 = 0', рухаючись уздовж третього рядка. На цьому ланцюг закінчується, тому що у п’ятому стовпці не має нулів із зірочкою.
Таким чином, ланцюг побудований: 0'52 → 0*22 → 0'21 → 0*31 → 0'35. Заміняємо у ланцюги штрих на зірочку й знищуємо зірочки над парними елементами ланцюга (0*52 → 022 → 0*21 → 031 → 0*35), а також всі знаки виділення стовпців і рядків. Після цієї ітерації кількість незалежних нулів у аналізованої матриці стало дорівнювати 6 (розмірності матриці С0) і тому алгоритм закінчує роботу. Шукані елементи призначення відповідають позиціям незалежних нулів матриці С1 (тобто 0*).
|
|
|
|
|
|
|
|
|
8 |
3 |
2 |
0* |
20 |
1 |
|
|
0* |
0 |
19 |
2 |
1 |
0 |
|
С1= |
0 |
2 |
8 |
5 |
0* |
2 |
|
1 |
10 |
0* |
0 |
5 |
5 |
| |
|
8 |
0* |
6 |
0 |
20 |
0 |
|
|
2 |
0 |
19 |
1 |
6 |
0* |
|
Таким чином, оптимальне закріплення рухомого складу (шість ТЗ) за шістю ТР, при якому сумарний час виконання усього комплексу є мінімальним, дорівнює:
F = Трч14 + Трч21 + Трч35 + Трч43 + Трч52 + Трч66 = 1 + 5 + 8 + 6 + 5 + 2 = 27 (умовних одиниць часу).
У додатку 7 наведений розрахунок цього ж самого прикладу у матричному процесорі Excel.