Книга: Прикладной системный анализ: сетевой анализ и календарное планирование проектов, метод прогнозного графа
Книга: Прикладной системный анализ: сетевой анализ и календарное планирование проектов, метод прогнозного графа
В.К. Буторин, В.
В. Карпов
ПРИКЛАДНОЙ
СИСТЕМНЫЙ АНАЛИЗ:
СЕТЕВОЙ АНАЛИЗ И
КАЛЕНДАРНОЕ ПЛАНИРОВАНИЕ ПРОЕКТОВ,
МЕТОД ПРОГНОЗНОГО
ГРАФА
Кемерово 2002
УДК 681.51
ISBN 5-87057-123-1
Рецензенты:
В.К. Буторин, В.
В. Карпов
Прикладной системный
анализ: сетевой анализ и календарное планирование проектов, метод прогнозного
графа: Учеб. пособие. /Под ред. к. т. н. В.К. Буторина. НФИ КемГУ. –
Новокузнецк, 2002. 59 с.
ISBN 5-87057-123-1
Рассматриваются постановки задач и практические
аспекты использования методов сетевого анализа и календарного планирования
проектов с использованием теории графов. Описывается минимизация времени
выполнения и общей стоимости проекта. Рассматривается метод прогнозного графа.
Алгоритмы принятия решений иллюстрируются на конкретных примерах. Приведены
упражнения для выполнения практических работ.
Предназначено для студентов специальностей “Прикладная
информатика в экономике”(351400), “Автоматизированные системы обработки
информации и управления”(220200).
УДК 681.51
ISBN 5-87057-123-1
ã Новокузнецкий филиал-институт
Кемеровского
государственного
университета,
2002
ã К.К. Буторин, В.
В. Карпов, 2002
Содержание
1. Сетевой анализ и
календарное управление
Введение
1.1. Сетевые графы
1.2. Стрелочные
графы
1.3. Вершинные
графы
1.4. Анализ
критического пути
1.5. Анализ
критического пути с применением вершинных графов
1.6. Анализ
критического пути с применением стрелочных графов
1.7. Стоимость
проекта
1.8. Минимизация
общей стоимости проекта
1.9. Выполнение
проекта с минимальными издержками
1.10.
Неопределённость времени выполнения проекта
1.11. Распределение
ресурсов
1.12. Графики
ресурсов
Заключение
Упражнения
2. Метод
прогнозного графа
Список литературы
1.СЕТЕВОЙ АНАЛИЗ И
КАЛЕНДАРНОЕ ПЛАНИРОВАНИЕ ПРОЕКТОВ
Введение
Сетевой анализ - это метод планирования работ проектного характера, т.е.
работ, операции в которых, как правило, не повторяются. Этот метод применим
например, при составлении календарного плана выполнения операций, входящих в
программу инсталлирования компьютерной системы в некоторой компании, или
операций, являющихся составными частями улучшения обстановки офиса. Процессы
инсталлирования компьютерных систем или улучшения обстановки офиса в данной
компании могут протекать непрерывно, однако, вряд ли два любых проекта окажутся
совершенно одинаковыми.
Методы сетевого анализа
позволяют осуществить анализ проекта, которых включает в себя большое число
взаимосвязанных операций. Мы можем определить вероятную продолжительность
выполнения работ, их стоимость, возможные размеры экономии времени или денежных
средств, а также то, выполнение каких операций нельзя отсрочить, не задержав
при этом срок выполнения проекта в целом. Немаловажной является и проблема
обеспечения ресурсами. Методы сетевого анализа могут быть использованы при
составлении календарного плана выполнения операций, удовлетворяющего
существующим ограничениям на обеспечение ресурсами.
Анализ любого проекта осуществляется в три этапа:
1. Расчленение проекта на ряд отдельных работ (или
операций), из которых затем составляется логическая схема. Под операцией
понимается деятельность или процесс, выполнение которых требует затрат
временных и/или иных ресурсов.
2. Оценка продолжительности выполнения каждой
операции; составление календарного плана выполнения проекта и выделение работ,
которые определяют завершение выполнения проекта в целом.
3. Оценка потребностей каждой операции в ресурсах;
пересмотр плана выполнения операций с учетом обеспечения ресурсами либо
перераспределение денежных или других ресурсов, которое улучшит план.
Рассмотрим каждый из этих этапов в отдельности.
1.1 Сетевые графы
Первым шагом в анализе любого проекта является
составление списка входящих в него операций. Детали такого списка зависят от
специфики конкретного проекта. Тем не менее во всех случаях необходимо выделить
непосредственно предшествующую операцию или операции. Непосредственно
предшествующими называются операции, выполнение которых должно быть закончено
прежде, чем может начаться данная операция. Например, при постройке дома крыша
не может быть построена до того момента, пока не закончится возведение стен.
После того как составлен список, логическая
последовательность выполнения операций может быть проиллюстрирована с помощью
графа. Существуют различные типы графов, но наиболее широкое применение
получили так называемые вершинные и стрелочные графы. Однако каждый из
них имеет свои преимущества и недостатки, и выбор того или иного графа является
вопросом личных предпочтений или же определяется целью создания и использования
данного графа.
1.2 Стрелочные
графы
В этом типе графов (рис. 1) каждая операция
представлена стрелкой. Длина стрелок значения не имеет. Направление стрелки
отражает ход времени и обычно указывается слева направо. Начало и окончание
каждой операции называются событиями и изображаются на графе кружочками или
узлом.
А
Предшествующее Операции Последующее
событие (начало) событие
(окончание)
Рис. 1. Изображение операции на стрелочном
графе
Операции обозначают буквой или словом, а события -
числом. Поскольку любая операция характеризуется парой событий, ее можно также
обозначать с помощью чисел, соответствующих этим событиям. Например, на рис. 1
операция А означает то же самое, что и операция (1, 2). Одному узлу может
соответствовать (входить или выходить из него) несколько операций. Событие,
изображаемое на графе с помощью узла, не считается свершившимся до тех пор,
пока не окончены все входящие в него операции. Операция, выходящая из
некоторого узла, Не может начаться до тех пор, пока не будет достигнуто
начальное событие, т.е. пока не будут завершены все операции, входящие в
узловое начальное событие.
Если операция С не может быть начата до момента
окончания работ А и В, логическую схему данной ситуации можно представить графически
следующим образом (см. рис. 2).
Начальным событием для С является конечное событие для
А и В. Существенно, что в стрелочном графе сохраняется логическая зависимость
операций. Иногда, чтобы достичь этого, необходимо включить в граф одну или
более фиктивных логических операций.
Фиктивная логическая стрелка вводится в граф, если необходимо
отразить, что некоторое событие не может появиться раньше другого события, а с
помощью обычных стрелок, соответствующих операциям, этого сделать нельзя.
Функция фиктивной логической операции состоит в том, чтобы показать
последовательность появления событий.
А С
В
Рис. 2. Логические взаимосвязи в
стрелочном графе
Фиктивным логическим операциям ставится в соответствие
нулевая продолжительность выполнения, а изображаются они обычно пунктиром.
Например, если работу С нельзя начать прежде, чем завершится операция А, а
работу О нельзя начать до тех пор, пока не завершатся работы А и В,
соответствующий стрелочный граф будет выглядеть следующим образом:
Кроме того, в стрелочных графах для избежания
неоднозначности используются фиктивные операции идентификации. В
некоторых пакетах прикладных программ, используемых в сетевом анализе, операции
обозначаются не с помощью букв или слов, а числами, обозначающими
соответствующие им события. Если же две или более операций выполняются
одновременно и имеют одни и те же начальное и конечное события, то компьютер не
сможет отличить их друг от друга и не воспримет вводимую исходную информацию.
Как показано на рис. 4, включение фиктивной операции идентификации позволяет
решить данную проблему. На практике принято нумеровать события таким образом,
чтобы номер конечного события был больше, чем номер начального события.
А
С
Фиктивная
логическая
операция
В
D
Рис. 3. Использование
в стрелочном графе
фиктивной логической
операции
Первый шаг после составления списка операций, входящих
в проект, состоит в том, чтобы создать таблицу операций, в которой отражаются
все операции, а также операции, непосредственно им предшествующие.
В данный список не включаются фиктивные логические
операции или операции идентификации. На основе полученного списка строится
стрелочный сетевой граф, включающий действительные и фиктивные операции и
отражающий установленные взаимосвязи между ними. После того, как закончено
построение исходного графа, можно выявить и исключить из рассмотрения ненужные
фиктивные операции. Затем для улучшения логической схемы исходный граф можно
модифицировать и перекомпоновать.
Фиктивная операция
идентификации
А
Заменяется на
Рис. 4. Использование
в стрелочном графе фиктивной операции идентификации
Ненужные фиктивные логические операции можно выявить с
помощью простого практического правила. Если единственной операцией, выходящей
из некоторого узла, является фиктивная логическая операция, то по всей
вероятности без нее можно обойтись.
Пример 1. Компания "Эвриком" - это промышленная фирма,
которая заключила контракт о производстве партии станков, предназначенных к
использованию крупным предприятием обувной промышленности для массового
производства обуви. Ниже перечислены операции, которые необходимо выполнить в
процессе разработки и производства этих станков (табл. 1).
Нужно изобразить операции с помощью стрелочного графа.
Решение.
Сетевой граф должен начинаться с единственного
начального события, которое показано на рис. 5 кружочком, и заканчиваться
единственным конечным событием. Построение графа мы начали с первого события. С
этого события начинаются все операции, которым не предшествуют никакие виды
работ. Начинать построение полезно с примерного эскиза будущего графа:
F
G
5 9 10 12
А B C E
K L
1 2 3 4 7 13
14
D H I
6 8 11
J
Рис. 5. Примерный эскиз графа для примера 1
Таблица 1. Таблица
операций для задачи из примера 1
ОПЕРАЦИИ |
Непосредственно
предшествующая
операция
|
А Составление сметы
затрат
В Согласованные
оценки
С Покупка
собственного оборудования
D Подготовка конструкторских
проектов
E Строительство основного цеха
F Монтаж оборудования
G Испытания оборудования
H Определение типа модели
I Проектирование внешнего корпуса
J Создание внешнего корпуса
K Конечная сборка
L Контрольная проверка
|
-
A
B
B
D
C,E
F
D
D
H,I
G,J
K
|
В соответствии с приведенной выше таблицей необходимо
тщательно, переходя от одной операции к другой, проверить построенный в первом
приближении граф.
A B C F G K L
1 2 3 5 8 9 10 11
D E J
4
7 Фиктивная операция
H
I идентификации
6
Рис.6. Новый чертеж
стрелочного графа для примера 1
Пример 2. Компания "Эвриком" является участником другого
проекта, детали которого приведены ниже. Изобразим данный проект при помощи
стрелочного графа.
Решение
Построение начинаем с начального события,
обозначенного кружком 1. Из таблицы следует, что существуют три операции - А, В
и С, которым не предшествует ни одна из операций. Поэтому из начального события
выходят три стрелки. На первый взгляд таблица операций выглядит чрезвычайно
простой, однако отразить присущую ей логику с помощью сетевого графа достаточно
трудно, вследствие чего мы вынуждены использовать три фиктивные логические
операции (см. рис. 7).
Таблица 2. Таблица
операций для примера 2
Операция |
Непосредственно
Предшествующая
операция
|
Операция |
Непосредственно
предшествующая
операция
|
A
B
C
D
|
-
-
-
A,B
|
E
F
G
H
|
B,C
C
D,E
F,G
|
4
2
1 5 6 7 8
3
Рис. 7. Стрелочный
граф для примера 2
1.2 Вершинные
графы
В этом типе сетевых графов операции представлены
узлами графа, а стрелками изображаются их взаимосвязи. В таких графах не
возникает необходимости вводить фиктивные операции. Как и в предыдущем случае,
течение времени следует изображать в направлении слева направо.
Пример 3. Обратившись к данным из примера 2, модифицируем
полученную в этом примере схему, поставив в соответствие операциям узлы графа.
A
D
Начальный B G
узел E H
C F
Рис. 8. Вершинный
граф
Каждый из описанных типов графов имеет свои
преимущества и недостатки. Обычно не имеет принципиального значения, какая из
систем используется. Если в стрелочные графы приходится вводить достаточно
большое число фиктивных операций, то гораздо более предпочтительным является
выбор вершинного графа. Ниже приведено сравнение двух видов изображения
операций и их основных особенностей (см. рис. 9).
Ситуация Строчный граф
Вершинный граф
Операция Q P Q
зависит 1 2 3 P
Q
от операций P,Q
Операция Х 1 Р X Р
зависит 3 4
X
от операций P,Q 2 Q Q
Операция Х,Y 1 Р X 4 Р
X
зависит 3
от операций P,Q 2 Q Y 5 Q
Y
Операция Х 1 Р 2 X 5 Р
X
зависит
от операции P; 3 Q 4 Y 6 Q Y
oперация Y
зависит от
операций Р и Q
Рис. 9. Сравнение
сетевых стрелочного и вершинного графов
1.3 Анализ
критического пути
После того как проведена идентификация операций, можно
оценить их продолжительность. На основе продолжительности выполнения каждой
операции и руководствуясь логической схемой, можно найти время выполнения
проекта в целом. На данном этапе предполагается, что продолжительность
выполнения каждой операции является фиксированной величиной, не испытывающей
влияний неопределенности. В последнем разделе главы мы рассмотрим вопрос о том,
какие поправки следует внести в этот анализ, чтобы учесть неопределенность
времени выполнения операций. В каждом графе существует несколько возможных
путей. Общее время, необходимое для того, чтобы пройти какой-либо путь, есть
сумма времени выполнения всех операций, принадлежащих данному пути.
Продолжительность выполнения всего проекта занимает наибольшее время. Более
длительные операции называются критическими. Любая задержка срока начала
или окончания выполнения этих работ повлечет за собой задержку срока выполнения
проекта в целом. Критические операции образуют непрерывную цепь, проходящую
через весь граф. Эта цепь критических операций называется критическим путем.
В каждом графе найдется, по крайней мере, один критический путь.
Для того чтобы найти общую продолжительность
выполнения проекта, нужно определить продолжительность критического пути. В
большинстве графов идентифицировать все идущие сквозь граф пути, чтобы выявить
среди них тот, который занимает наибольшее время, достаточно трудно. Существуют
два возможных метода, позволяющих отследить движение времени в графе:
1. Определение для каждой операции наиболее ранних
сроков начала и окончания ее выполнения.
2. Определение для каждого события наиболее раннего
срока его наступления. Следует отметить, что второй метод может использоваться
только в стрелочных графах.
1.4 Анализ
критического пути с применением вершинных графов
Пример 4. В табл. 3 указана продолжительность выполнения каждой
операции проекта, о котором шла речь в примерах 2 и 3 Определим общую
продолжительность выполнения проекта. Вершинный граф, соответствующий данному
проекту, был построен в примере 3.
Таблица 3. Операции и их
продолжительность для примера 4
Операция |
Непосредственно
Предшествующая
Операция
|
Время, дней |
A
B
C
D
T
F
G
H
|
-
-
-
A,B
B,C
C
D,E
F,G
|
8
10
6
8
9
14
14
6
|
Решение
Предположим, что каждая из исходных операций А, В и С
начинается в нулевой момент времени. Это наиболее ранний срок начала этих Е5
операций. Наиболее ранний срок, к которому их выполнение может быть завершено,
определяется следующим образом:
Наиболее ранний срок окончания ЕР=ЕS+Продолжительность операции.
Обычно найденные значения этих сроков наносятся
непосредственно на граф, однако, мы занесем их сначала в таблицу, чтобы
продемонстрировать методику проведения расчетов.
Таблица 4. Расчет
наиболее ранних сроков начала окончания операций для примера 4
Операция |
Продолжи-тельность,
дней |
Наиболее ранний
срок начала |
Наиболее ранний
срок окончания |
Комментарии |
A
B
C
D
E
F
G
H
|
8
10
6
8
9
14
14
6
|
0
0
0
10
10
6
19
33
|
0+8=8
0+10=10
0+6=6
10+8=18
10+9=19
6+14=20
19+14=33
33+6=39
|
Нельзя начать, пока
не завершены А и В
Нельзя начать, пока
не завершены В и С
Нельзя начать, пока
не завершена С
Нельзя начать, пока
не завершены D и E
Нельзя начать, пока
не завершены F и G
|
Ключ
0
8 обозначение ЕS EF
A 8 операции
продолжительность
Страницы: 1, 2, 3, 4, 5
|