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

Перша ітерація

Виділяємо знаком '+' перший, другий, третій, четвертий і шостий стовпці матриці 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.