Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1714

.pdf
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
1.86 Mб
Скачать

υ1

3

 

3

 

3

υ2

 

 

3

 

1

 

 

 

3

 

 

 

3

 

 

8 3

υ6

4

υ5

 

 

 

3

 

 

 

1

 

3

 

5

 

υ3

 

 

1

8

 

 

 

 

 

 

1

 

 

υ4

Рис. 94. Взвешенный орграф

υ1

3

υ2 1

3

υ6

υ5

 

1

υ3 3

8

υ4

Рис. 95. Гамильтонов цикл после первой итерации

Суммарная длина цикла равна 1+3 +8 +1+3 +3 =19.

91

Проверим другую вершину в качестве начальной. Например, начнем движение из вершины υ4 в сторону вершины υ5 , т.е. по наиболее короткой ду-

ге. Далее движемся до вершины υ2 без ветвления, получая при этом простой путь υ4 υ5 υ1 υ2 . Затем из υ2 направляемся по дуге υ2 ×υ6 (ее вес меньше, чем у дуги υ2 ×υ3 ) и из вершины υ6 движемся в υ3 и возвращаемся в υ4 . При этом получаем гамильтонов цикл: υ4 υ5 υ1 υ2 υ6 υ3 υ4 (рис. 96). Его

суммарная длина равна 1+3 +3 +3 +3 +1 =14. Этот цикл наименьший по весу (предоставляем читателю проверить это самостоятельно), и его можно принять за окончательный ответ.

 

3

υ1

 

 

υ2

 

3

3

υ6

υ5

3

 

 

υ3 1

1

υ4

Рис. 96. Кратчайший гамильтонов цикл

92

14. Элементы сетевого планирования

Сетевое планирование применяют для организации и составления календарных планов реализации больших комплексов. Это, например, научноисследовательские работы с участием нескольких институтов, разработка автоматизированной системы бухгалтерского учета, строительство большого объекта и т.д. Управление всеми этими работами можно осуществлять с помощью их графических моделей – сетевых графиков.

С математической точки зрения сетевой график – это связный орграф без петель и контуров.

Основными понятиями сетевого планирования являются понятия работы и события.

Работа – это любые действия, сопровождающиеся затратами ресурсов и (или) времени и приводящие к определенным результатам.

Событие – результат завершения одной или нескольких работ – является предпосылкой для выполнения работ, следующих за ним.

Использование сетевого графика позволяет сравнительно просто выяснить, когда необходимо начинать и заканчивать выполнение отдельных работ, как задержка хода выполнения некоторой работы влияет на время завершения всего проекта.

Для использования сетевого графика нужно, прежде всего, разбить крупный проект на отдельные работы и составить их перечень. Некоторые из работ могут выполняться одновременно, другие – только в определенном порядке. Например, при строительстве многоэтажного дома возведение крыши не может начаться, пока не возведены стены всех этажей, а отделочные работы на первом этаже могут происходить параллельно с возведением крыши. Необходимо выяснить очередность выполнения всех работ списка. Для этого составляют список работ, непосредственно предшествующих каждой работе. После этого нужно запланировать время, необходимое для выполнения каждой работы. Полученные данные обычно помещаются в таблицу. Например, в табл. 7 приведены данные для проекта, состоящего из восьми работ. Для каждой из них задана продолжительность и указаны непосредственно предшествующие ей работы.

Любая работа в сети может быть определена двумя событиями, между которыми она находится. Событием может начинаться или заканчиваться несколько работ. Работы на сети изображают дугами, а события – вершинами сети.

Сетевой график обладает рядом особенностей, в частности, он имеет только одно исходное событие (исток сети) и только одно завершающее событие – окончание всех работ.

93

 

 

Таблица 7

Исходная работа

Предшествующие ей работы

Продолжительность работ

a1

3

a2

6

a3

4

a4

a2

5

a5

a1 , a4

1

a6

a2

9

a7

a3

6

a8

a5 , a6 , a7

8

Пример 14.1. Построить сетевой график последовательности работ, приведенной в табл. 7.

Решение. Работы a1 , a2 и a3 не имеют предшествующих, поэтому реали-

зация проекта начинается с этих работ; они изображаются дугами, выходящими из одной вершины. В конце дуг a1 , a2 и a3 также ставим вершины, соответст-

вующие окончаниям этих работ (рис. 97,а). Нумерацию вершин проведем после того, как изобразим всю последовательность работ. Работе a4 предшествует

работа a2 , поэтому дуга a4 на сетевом графике изображается вслед за дугой a2 . В конце работы a4 ставим вершину графа (рис. 97,б). Работе a5 предшествуют две работы a1 и a4 , но дугу a5 одновременно провести из концов дуг a1 и a4 нельзя. Следовательно, вершины, являющиеся завершением работ a1 и a4 , можно объединить в одну и из нее провести дугу a5 , в конце которой ставим вершину (рис. 97,в). Работам a6 и a7 предшествует только по одной работе – a2 и a3 соответственно. Поэтому дуги a6 и a7 на сетевом графике изображаются вслед за дугами a2 и a3 соответственно. В конце работ a6 и a7 ставим вершины графа (рис. 97,г). Итоговой работе a8 предшествуют работы a5 , a6 и a7 . Таким образом, вершины, являющиеся завершением работ a5 , a6 и a7 , объединяем в одну и из нее проводим дугу a8 , в конце которой ставим новую вершину (рис. 97,д). Сетевой график построен.

После построение сетевого графика нумеруют его вершины.

Нумерацию, при которой номер начала любой дуги меньше ее конца, на-

зывают правильной.

94

 

a1

 

a2

 

a3

 

а)

a1

a5

a4

a2

a3

в)

a1 a4

a2

a3

a1

a

 

4

a2

a3

б)

a1

 

a5

 

a4

 

a2

a6

 

 

a3

a7

г)

a5

a6

a8

a7

д)

Рис. 97. Построение сетевого графика:

а) первый шаг, б) второй шаг, в) третий шаг, г) четвертый шаг, д) пятый шаг

95

Алгоритм получения правильной нумерации вершин

1.Нумеруют все начальные вершины, т.е. вершины, в которые не входит ни одна дуга.

2.Вычеркивают все дуги, выходящие из начальных вершин. При этом получают новые начальные вершины. Переходят к шагу 1.

Процесс повторяют до тех пор, пока все вершины не будут перенумерованы. Конечная вершина получает при этом наибольший номер.

Пример 14.2. Получить правильную нумерацию вершин сетевого графика, изображенного на рис. 97,д.

Решение. На сетевом графике (см. рис. 97,д) только одна вершина является начальной – вершина, являющаяся началом работ a1 , a2 и a3 . Ей присваи-

ваем номер 1 и вычеркиваем дуги a1 , a2 и a3 (рис. 98,а). После этого имеем две

начальные вершины. Присваиваем им номера 2 и 3 и вычеркиваем дуги, выходящие из них: a7 , a6 и a4 (рис. 98,б). Далее получаем одну начальную верши-

ну. Присваиваем ей номер 4 и вычеркиваем дугу a5 (рис. 98,в). Следующей начальной вершине присваиваем номер 5. После вычеркивания дуги a8 остается

только одна вершина. Ей присваиваем номер 6. Эта вершина и является конечной (рис. 98,г). В итоге получаем сетевой график (рис. 99), на котором вместо обозначения работ поставлена их продолжительность, выраженная в днях.

Замечание 14.1. На рисунках сети не рекомендуется во избежание путаницы изображать одновременно выполняемые работы параллельными дугами.

Однако можно вводить дополнительные события и фиктивные работы (нуле-

вой продолжительности), которые изображаются штриховыми линиями. Например, если бы в примере 14.1 работе a4 предшествовала бы еще работа a3 , то

между событиями 2 и 3 пришлось бы ввести штриховую дугу (рис. 100).

Имея сеть работ некоторого проекта, мы можем посчитать время выполнения всего проекта и различных его частей, состоящих из разного набора работ. Для этого введем еще несколько определений. Сначала определим минимальное время, за которое можно выполнить все работы комплекса. Для этого найдем продолжительность всех полных путей.

Полным путем называется путь, начало которого совпадает с исходным событием сети, а конец – с завершающим.

В нашем случае (см. рис. 99) таких путей четыре: L1 : 1 – 2 – 5 – 6;

L 2 : 1 – 3 – 5 – 6; L3 : 1 – 3 – 4 – 5 – 6 и L 4 : 1 – 4 – 5 – 6.

Их продолжительности равны

t (L1 )= 4 +6 +8 =18 , t (L 2 )= 6 +9 +8 = 23 ,

t (L3 )= 6 +5 +1+8 = 20 , t (L 4 )=3 +1+8 =12 .

96

 

a1

a5

 

 

a4

 

1

 

a2

a6

a8

 

 

 

 

a7

 

 

a3

 

 

 

 

а)

a4 a5

a6

a8

3

a7

2

б)

4

a5

a8

 

5

6

a8

 

в)

г)

Рис. 98. Нумерация вершин сетевого графика:

а) первый шаг, б) второй шаг, в) третий шаг, г) четвертый шаг

97

 

 

4

 

 

 

 

 

3

5

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

6

3

9

5

8

6

 

 

 

 

 

 

 

4

 

6

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

Рис. 99. Сетевой график

 

 

 

 

 

4

 

 

 

 

 

a1

a4

a5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a2

3

a6

5

a8

6

 

1

 

 

 

 

 

a3 a7

2

Рис. 100. Сетевой график с фиктивной работой

Наиболее продолжителен второй путь, который называют критическим. Он определяет минимальное время выполнения всех работ комплекса. Минимальное время называют критическим сроком и обозначают tкр. Итак, в рас-

сматриваемом примере (см. рис. 99) tкр = 23 . Все работы и события, лежащие

на критическом пути, называют критическими, все остальные работы и события – некритическими. Задержка любой критической работы вызывает задержку выполнения всего комплекса. Следовательно, чтобы уменьшить время выполнения комплекса работ, надо сократить сроки критических работ. Некритические работы допускают некоторое запаздывание их выполнения без нарушения критического срока. Это запаздывание измеряется резервом времени со-

98

бытий и работ.

Свершением события называется момент, к которому заканчиваются все входящие в него работы и может быть начата любая выходящая работа. Некоторые события можно совершать в разные моменты, т.е. варьировать свершение этих событий. Например, событие 2 (см. рис. 99) может свершиться через четыре дня (по окончании работы a3 ), но может наступить и позже на срок до

пяти дней, поскольку на пути L1 , где лежит это событие, есть резерв времени: tкр t (L1 )= 23 18 =5 дней. Поэтому для событий различают ранний и поздний

сроки свершения.

Ранним сроком tp ( j) свершения события j называется самый ранний

момент времени, к которому завершатся все работы, предшествующие этому событию. Ранние сроки для всех событий могут быть рассчитаны по формуле

tp ( j)= max + {tp (i)+t (i, j)},

(14.1)

(i, j) U j

 

где U +j – множество работ, входящих в j-е событие; tp (i)

– ранний срок свер-

шения начального события работы (i, j); t (i, j) продолжительность работы

(i, j).

Поздним сроком tп (i) свершения события i называется самый поздний

момент времени, после которого остается ровно столько времени, сколько необходимо для завершения всех работ, следующих за этим событием.

В нашем случае tп (6)= 23. Чтобы не нарушался критический срок, собы-

тие 5 должно произойти, в крайнем случае, на восемь дней раньше, поэтому tп (5)= 23 8 =15. Аналогично tп (2)=15 6 =9 . Таким образом, поздние сроки

событий рассчитываются по формуле

tп (i)= min

{tп ( j)t (i, j)},

(14.2)

(i, j) Ui

 

 

где Ui– множество работ, выходящих из i-го событие; tп ( j)

– поздний срок

свершения конечного события работы (i, j).

 

Разности между поздним и ранним сроками свершения события i состав-

ляет резерв времени R(i) этого события:

R(i)=tп (i)tp (i).

(14.3)

Резерв времени события показывает, на какой предельно допустимый

99

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

Зная сроки свершения событий, можно найти ранние и поздние сроки начала и окончания работы (i, j). Очевидно, что

t

(i, j)=t

p

(i),

t

р.o.

(i, j)=t

p

(i)+t (i, j),

 

р.н.

 

 

 

 

 

 

 

(14.4)

t

(i, j)=t

 

( j),

t

 

 

(i, j)=t

 

 

( j)t (i, j).

 

п.н.

п

 

п.о.

п

 

 

 

 

 

 

 

Для работ определяют два резерва времени: полный и свободный. Полный резерв времени работы – это максимальное количество време-

ни, на которое можно задержать начало работы или увеличить ее продолжительность, не нарушая критический срок,

Rп(i, j)=tп ( j)tp (i)t (i, j).

(14.5)

Формулу (14.5) можно проиллюстрировать на рис. 101.

R п(i, j)

tп (i) tp ( j)

tp (i)

tп ( j)

 

t (i, j)

 

Рис. 101. Графическое объяснение формулы (14.5)

Отдельные работы, помимо полного резерва, имеют свободный резерв времени, составляющий часть полного резерва, остающуюся после исключения резерва времени R( j) конечного события j данной работы:

Rc(i, j)=tр ( j)tр (i)t (i, j).

(14.6)

100