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

2. Завдання до самостійної роботи.

  1. Розробити та реалізувати у вигляді програми алгоритм Дейкстри для графа заданого матрицею вагових коефіцієнтів

X1

X2

X3

X4

X5

X6

X1

0

i

i+1

2i

0

0

X2

0

0

2i-1

i+5

0

0

X3

0

0

0

0

5

1+i

X4

0

3i-2

3

0

i+1

0

X5

0

0

0

0

0

1

X6

0

4i-2

0

0

0

0

де і – номер варіанта.

  1. На власному прикладі продемонструвати покрокове виконання алгоритма Дейкстри.

Звіт

  1. Постановка задачі.

  2. Хід роботи.

  3. Лістінг програми.

  4. Результати роботи.

  5. Висновки.

Контрольні питання

  1. У чому полягає задача визначення найкоротшого шляху між двома вершинами заданого графа?

  2. У чому полягає основна ідея алгоритма Дейкстри?

  3. Сформулюйте і запишіть алгоритм Дейкстри.

  4. Яким чином реалізувати задачу визначення найкоротшого шляху між усіма парами вершин заданого графа?

Лабораторна робота №7 Використання графів в мережі планування.

Мета роботи: ознайомитись та придбати практичні навики в побудові своєчасного і ефективного проекту.

1. Теоретичні відомості.

Складну систему можна представити мережею або графіком, при цьому вузли графіка будуть відповідати окремим блокам, а дуги, об’єднуючі ці вузли, будуть вказувати на зв’язок в залежності між блоками. Загальне вивчення системи на основі мережного аналізу приймає все більш зростаюче значення.

Будь який план може бути розбитий на множину підпланів, які називають роботами. При цьому оцінюється час завершення кожної із роботи, визначається послідовність, в якій робота повинна бути виконана. Подібна дія направлена на виконання проекту своєчасно та з максимальною ефективністю і називається побудовою проекту.

Стадія планування.

  • Визначення роботи.

Перший крок в побудові складного плану (або програми) полягає в його розділенні на підпрограми, які називають роботами. Далі встановлюють зв’язок між роботами і послідовністю їх виконання.

Термін події в мережному плануванні використовується спеціальним чином. Він означає пункт в часі, який відокремлює різні стани виконання плану.

  • Графічне зображення подій і роботи.

Роботи на графіку плану представляють у вигляді стрілок, тобто дугами графу, а події - вершинами графу. Події нумерують. Робота повинна бути виконана на протязі часу між двома подіями. Події, які відповідають початку роботи, називаються початковим (або попередніми) подіям; кінець роботи називають кінцевою подією.

Фіктивною роботою називають таку, яка необхідна для відображення паралельних робіт. Довжина цієї роботи дорівнює нулю.

При складанні мережі необхідно приймати до уваги наступне:

  1. Подію неможливо вважати початковою (або завершеною), якщо всі роботи, які ведуть до цієї події, не завершені;

  2. Робота не може бути розпочата до тих пір, доки початкова подія не наступить.

  • Довжина роботи.

Після того як кінцева множина робіт задана і мережа проекту зображена графічно, необхідно оцінити час виконання кожної роботи, який повинен бути зазначений під відповідною дугою. Тривалість роботи є час її виконання, при цьому це не таж саме, що час між початковою і кінцевою подією.

Приклад.

Завдання: Пофарбовати двері (виконавці: один маляр і один помічник).

Список робіт (в дужках вказана тривалість в хвилинах):

а1 – зчистити стару фарбу (75),

а2 – прошкурити двері (30),

а3 – відкрити банку і розмішати фарбу (4),

а4 – приготувати щіточки (5),

а5 – витерти двері (4),

а6 – пофарбувати двері (15),

а7 – вичистити щіточки і зібрати інструменти (6).

Мережна модель цього проекту приведена на мал.1.

Стадія аналізу мережної моделі плану

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

При вирішенні задач планування може бути вилучена додаткова інформація з мережної моделі самого плану. Це призводить до стадії аналізу, в якому такі поняття як критичний шлях і резерв часу роботи відіграють головну роль.

  • Критичний шлях

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

Будь-який шлях, довжина якого дорівнює повному часу здійснення проекту називається критичним шляхом.

  • Метод виявлення критичного шляху.

Знаходження критичного шляху може бути виконано за допомогою методів, які потребують інформацію, яка використовується на наступних стадіях аналізу.

Ці методи легко запроваджуються при рахунку вручну і можуть бути запрограмовані на ЕОМ.

Процедура знаходження критичного шляху складається з наступного. Перш за все, складається список всіх подій в тій послідовності, в якій вони повинні виконуватися, тобто по мережі з ліва на право. Потім для кожної події обчислюється так названий ранній час (Е) і пізній час (L) здійснення подій. Тоді будь-який шлях, такий, що для всіх подій, які входять в його, Е=L, буде одним із можливих критичних шляхів.

Для ілюстрації описаної процедури розглянемо наступну найпростішу мережну модель, представлену на мал.2. Всі пояснення наведені на графіку і в таблиці.

Е=3 2 Е=5

L=3 V2 V4 L=6

3

E=0 4 1

V1

L=0 E=7

4 V5 L=7

V3 2

Е=4

L=5

Мал.2. Мережна модель планування.

Таблиця 1

Подія (V)

Ранній час E(V)

Пізній час L(V)

V1

0

0

V2

3=(0+3)

3=(7-4)

V3

V4

V5

4=(0+4)

7=(3+4)*

5=(3+2)

5=(7-2)

6=(7-1)

7

Знаходження раннього часу здійснення події

Нехай подія V1 відбувається в момент часу, рівний нулю.

Для знаходження Е(V2) додамо до раннього часу Е(V1) час виконання роботи а12.

Отримаємо: Е(V2)=Е(V1)+а12=0+3=3.

Аналогічно: Е(V3)=Е(V1)+а13=0+4=4

Е(V4)=Е(V2)+а24=3+2=5

Для кожної із розглянутих подій характерно, що до неї веде тільки одна робота. В цьому випадку:

Е(Vj)= Е(Vi)+ аij,

де аij -- єдина робота, котра веде до Vj.

Якщо до події Vj веде більш одної роботи, то ранній час здійснення події Е(Vj) обчислюється таким чином.

Обчислюються всі ранні часи, з них вибираються максимальне значення.

Для події Е(V2)+ а25=3+4=7*

Е(V2)+ а35=4+2=6

Е(V4)+ а45=5+1=6

З обчислювальних трьох значень вибирається максимальне: Е(V5)=7

Знаходження пізнього часу здійснення події L(V)

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

L(Vкінцеве)=E(Vкінцеве).

Проведемо тепер процедуру обчислення пізнього строку події в зворотньому порядку. Для цього будемо рухатися по мережі справа на ліво. Якщо із Vi виходить тільки одна стрілка, яка веде до Vj, то час пізнього часу здійснення цієї події буде дорівнювати

L(Vi)=L(Vj)-aij

Для вище приведеного прикладу

V(V4)=L(V5)-a45=7-1=6

L(V3)=L(V5)-a35=7-2=5

Якщо із події виходить більше одної роботи, наприклад як для V2, то необхідно обчислити всі можливі значення “пізнього” часу і вибрати з нього найменше. Таким чином

V(V4) - a24=6-2=4

L(V3) - a25=7-4=3*

Значення помічене (*) буде найменшим, тобто L(V2)=3.

Знаходження критичного шляху

Будь-який шлях від початкової події до кінцевої, такий що Е(V)=L(V) для всіх його складових подій V, буде критичним шляхом.

Резерв часу роботи

Якщо робота не належить критичному шляху, то ми маємо можливість збільшити час її дії без збільшення всього часу здійснення проекту. Цю можливість корисно використати. В такому випадку, наприклад, можна було б людські ресурси переключити на виконання інших робіт, збільшуючи таким чином загальну ефективність. При цьому збільшення тривалості будь-якої роботи, що не належить до критичного шляху, має певний максимум. Щоб правильно спланувати використання ресурсів, тобто розподілити їх по різним роботам найбільш ефективним чином, необхідно знайти резерви часу. Розглянемо три види резервів часу: загальний, вільний, незалежний.

Резерви часу обчислюються за такими формулами:

Тповне=Lj-Ei-aij,

Твільнеj-Ei-aij,

Тнезалежне=Ej-Li-aij,