![](/user_photo/_userpic.png)
книги / Теория графов и её приложения.-1
.pdf![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K81x1.jpg)
Видим, что цепочка событий 2, 7, 10, 11 характеризуется нулевым резервом времени.
Вероятно, это и есть критический путь – 32 единицы времени – ни убавить, ни прибавить. Полностью сетевой график выглядит так, как изображено на рис. 9.5.
Рис. 9.5. Сетевой график по рис. 9.1
Итак, применяется метод критического пути, МКП (critical path method, СРМ) – один из главных в проектном менеджменте.
Он выполняется в несколько этапов. Сначала мы идем по сетевому графику слева направо и рассчитываем «ранние сроки» событий («раннее начало» и «раннее окончание»).
А затем идем справа налево, получая «поздние сроки» событий («позднее начало» и «позднее окончание») и резервы времени.
Так, у события 5 Тп(5) = 11, поскольку от него до события 10 (через 8 – самый длинный путь) 13 единиц времени. А событие 10 должно начаться в 24, поэтому: 24 – 13 = 11. Резерв для события
5 = 1. Соответственно, у события8 Тр(8)=10+9=19, аТп(8)=24–4=20. У события 9 Тп(9) = 24 – 3 = 21. У события 6 Тп(6) =
=min(21–1 = 20; 32–5 = 27) = 20.
Усобытия 4 Тп(4) = min(21–7 = 14; 20–4 = 16) = 14.
81
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K82x1.jpg)
Критический путь имеют нулевой резерв времени выполнения, и, в случае изменения длительности работ, изменяются сроки всего проекта.
На рис. 9.5 критический путь выделен жирным шрифтом.
Использование программного продукта
GRaph INterface (GRIN)
Строим сетевой график – сеть (рис. 9.6):
Рис. 9.6. Сеть для задачи, изображённой на рис. 9.1
Задаём режим «Расчёт критического пути», получаем от-
чёт (рис. 9.6, 9.7).
Рис. 9.7. Отчёт, часть 1
82
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K83x1.jpg)
Рис. 9.7. Отчёт, часть 2 – по решённой задаче, изображённой на рис. 9.1, расчёт критического пути и определение раннего и позднего начала работ
83
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K84x1.jpg)
Рис. 9.8. Диаграмма Ганта для сети
Автоматически построенная диаграмма Ганта (в днях) изображена на рис. 9.8.
84
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K85x1.jpg)
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ № 10. КОДИРОВАНИЕ ДЕРЕВЬЕВ ПО ПРЮФЕРУ
1.Опрос по теоретическому материалу – особенности кодирования по Прюферу.
2.Особенности декодирования по Прюферу.
3.Коллективное решение задач по теме занятия у доски «вручную».
4.Самостоятельная работа по вариантам – на ПЭВМ в про-
грамме?
5.«Летучка» – «вручную».
Пример решения задачи кодирования
Закодировать кодом Прюфера дерево, изображённое на рис. 10.1.
Рис. 10.1. Граф-дерево
Матрица смежности дерева, изображённого на рис. 10.1, представленанарис. 10.2.
Рис. 10.2. Матрица смежности дерева, изображённого на рис. 10.1
85
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K86x1.jpg)
Приступаем к кодированию.
Первый шаг: выбираем лист с наименьшим весом, это вершина 3, а с ней связана вершина 5, поэтому первая цифра кода будет 5. Удаляем вершину 3 (рис. 10.3).
Рис. 10.3. Граф-дерево с удалённой вершиной 3
Второй шаг: выбираем новый лист с наименьшим весом, это вершина 4, а с ней связана вершина 5, поэтому вторая цифра кода тоже будет 5, итого 55. Удаляем вершину 4 (рис. 10.4).
Рис. 10.4. Граф-дерево с удалёнными вершинами 3, 4
Третий шаг: выбираем новый лист с наименьшим весом, это вершина 6, а с ней связана вершина 1, поэтому третья цифра кода тоже будет 1, итого 551. Удаляем вершину 6 (рис. 10.5).
Рис. 10.5. Граф-дерево с удалёнными вершинами 3, 4, 6
Четвёртый шаг: выбираем новый лист с наименьшим весом, это вершина 7, а с ней связана вершина опять 5, поэтому четвёртая цифракодатожебудет5, итого5515. Удаляемвершину 7 (рис. 10.6).
86
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K87x1.jpg)
Рис. 10.6. Граф-дерево с удалёнными вершинами 3, 4, 6, 7
Пятый шаг: выбираем новый лист с наименьшим весом, это вершина 5, а с ней связана вершина опять 1, поэтому пятая цифра кода тоже будет 1, итого 55151. Удаляем вершину 5 (рис. 10.7).
Шестой шаг: выбираем новый лист с наименьшим весом, это вершина 8, а с ней связана вершина опять 1, поэтому шестая цифра кода тоже будет 1, итого 551511. Удаляем вершину 8 (рис. 10.8).
Рис. 10.7. Граф-деревосудалёнными вершинами3, 4, 6, 7, 5
Рис. 10.8. Граф-деревосудалёнными вершинами3, 4, 6, 7, 5, 8
Седьмой шаг: выбираем новый лист с наименьшим весом, это вершина 1, а с ней связана вершина 2, поэтому седьмая цифра кода тожебудет2, итого5515112. Удаляемвершину 1 (рис. 10.9).
Рис. 10.9. Граф-деревосудалёнными вершинами3, 4, 6, 7, 5, 8, 1
Получили код 5515112 длиной n – 2.
Иногда такой код обозначают таким образом (рис. 10.10).
87
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K88x1.jpg)
Рис. 10.10. Процесс преобразования дерева в код – полином
Пример решения задачи декодирования
Пусть задан код 5515112 длиной n–2. Построить соответствующее дерево.
Поскольку код длиной 7 (семь символов), то вершин 7 + 2 = 9. Использованы цифры 5, 1, 2, значит листья – все оставшиеся, т.е. 3, 4, 6, 7, 8, 9; заготавливаем матрицу смежности 9×9 и граф, состоящий из 9 вершин (рис. 10.11).
Рис. 10.11. Подготовка к декодированию
88
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K89x1.jpg)
Первая цифра кода 5, а первый лист – 3, поэтому проводим ребро (5, 3) (рис. 10.12).
Рис. 10.12. Первый шаг декодирования, получение ребра (5, 3)
Удаляем из кода цифру 5 и лист 3 из списка вершин, видим, что теперь очередной лист 4, проводим ребро (5, 4) (рис. 10.13).
Заметим, что при декодировании листьями считаются вершины из списка вершин, не совпадающие с вершинами из текущего кода.
Удаляем из кода цифру 5 и лист 4 из списка вершин, видим, что теперь очередной лист 6, проводим ребро (5, 4) (рис. 10.14).
Удаляем из кода цифру 1 и лист 6 из списка вершин, видим, что теперь очередной лист 7, проводим ребро (5, 7) (рис. 10.15).
89
![](/html/65386/197/html_ckvYmHAUWS.QuMc/htmlconvd-WCcJ5K90x1.jpg)
Рис. 10.13. Второй шаг декодирования, получение ребра (5, 4)
Рис. 10.14. Третий шаг декодирования, получение ребра (1, 6)
90