Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тезисы по философии-2.1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.11 Mб
Скачать

6.4. Задача почтальона для смешанного графа

Смешанным называется граф, часть дуг которого ориентирована, а часть – нет.

Возможны три случая смешанного графа:

а) граф чётный и симметричный;

б) граф чётный и несимметричный;

в) граф нечётный и несимметричный.

Случай “а”. Если граф чётный и симметричный, то оптимальным решением задачи почтальона на этом графе будет эйлеров обход. Причём вначале отдельно находятся эйлеров цикл на рёбрах и эйлеров контур на ориентированных дугах графа, а затем полученные маршруты объединяются в один через любую общую вершину.

Случай “б”. Граф G=(Х,А) чётный, но несимметричный. Пусть U – множество его рёбер, а V – множество его ориентированных дуг. Зададим произвольно направление каждой неориентированной дуги. В результате получим чётный ориентированный граф Gd. Для каждой вершины i графа Gd вычислим значение D(i) = d(i) – d+(i). Вершины, для которых D(i)>0, являются источниками с предельными значениями суммарных выходящих потоков, равными D(i). Вершины, для которых D(i)<0, являются стоками с предельными значениями суммарных входящих потоков, равными –D(i). Вершины, для которых D(i)=0, являются промежуточными. Если в графе Gd все вершины промежуточные, то Gd – чётный симметричный ориентированный граф, и для него можно найти эйлеров маршрут. В противном случае необходимо построить граф G/=(Х,А/), который получается из G=(Х,А), следующим образом:

1) Каждая дуга  замещается дугой  с неограниченной пропускной способностью и стоимостью, равной длине .

2) Каждая дуга  замещается парой дуг  и  с неограниченной пропускной способностью и стоимостью, равной длине .

3) Каждой дуге  соответствует также дуга  с нулевой стоимостью и пропускной способностью, равной двум.

С учётом определённых выше для графа Gd предельных значений потоков, выходящих из источников и входящих в стоки, построим на G/, воспользовавшись соответствующим алгоритмом (см. разд. 4.4), поток минимальной стоимости, удовлетворяющий потребностям всех стоков. Если такого потока не существует, то не существует и маршрута почтальона для исходного графа.

Случай “в”. Для нечётного и несимметричного графа алгоритм решения задачи почтальона не существует.

7. Сетевые графики. Метод критического пути

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

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

Каждый проект можно представить в виде ориентированного графа G=(X,A), называемого сетевым графиком, если заданы:

Ориентированный граф – это совокупность множества Х, элементы которого называются вершинами, и множества А упорядоченных пар вершин, элементы которого называются дугами. Граф обозначается как (Х,А).

  • перечень всех операций проекта,

  • время, необходимое для выполнения каждой операции,

  • перечень операций, непосредственно предшествующих выполнению каждой операции.

Операции – это дуги сетевого графика, построенного по следующему правилу: если операция представляется дугой (х,у), то в вершину х входят только дуги, соответствующие непосредственно предшествующим операциям. При необходимости вводятся дуги, не представляющие никакой операции (фиктивные дуги).

Пример. Представим некоторый абстрактный проект:

Операция

Время выполнения

Предшествующие операции

Дуга графа

A

1

α

B

4

β

C

3

A

γ

D

4

B, C

δ

E

6

A

ε

F

2

B, C

ζ

G

5

D

η

H

1

F

θ

K

4

F

κ

L

3

E, H

λ

M

4

F

μ

Сетевой график данного проекта изображён на рис. 7.1.

Рис. 7.1

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

Будем считать, что граф содержит ровно одну вершину, в которую не входит ни одной дуги (начальное событие) и ровно одну вершину, из которой не выходит ни одной дуги (конечное событие). Если это условие нарушено, то можно добиться его выполнения добавлением к графу фиктивных дуг. На рис. 7.2 приведён дополненный в этом смысле граф с рис. 7.1.

Рис. 7.2.

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

Алгоритм нумерации

Шаг 1. Присвоить начальному событию номер 1.

Шаг 2. Присвоить следующий номер любому неперенумерованному событию, для которого все предшествующие события перенумерованы.

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

Обозначим через t(i,j) ≥ 0 время выполнения операции (i,j). Для фиктивных операций t(i,j) = 0.

Применим алгоритм нумерации к графу с рис. 7.2. Результат приведён на рис. 7.3. Числа, приписанные дугам, – длительности выполнения соответствующих операций рассматриваемого абстрактного проекта.

Рис. 7.3.

Пусть E(x) – наиболее ранний срок наступления события x, а L(x) – наиболее поздний срок наступления события x, ещё допускающий своевременное завершение проекта.

Алгоритм расчёта наиболее ранних сроков наступления событий

Шаг 1. Перенумеровать события. Положить E(1)=0.

Шаг 2. Последовательно для   j=2,3,…,n   вычислить

.

Пример. Пусть для фрагмента сетевого графика с рис. 7.4  E(5)=4,  E(6)=7,  E(7)=6. Чему равно E(14)?

Рис. 7.4

E(14)=max {4+6, 7+4, 6+3}=11.

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

Рис. 7.5

Алгоритм расчёта наиболее поздних сроков наступления событий

Шаг 1. Положить L(n) равным заданному времени завершения проекта. Например, L(n)=E(n).

Шаг 2. Последовательно для i=n-1,n-2,…,2,1 вычислить:

.

Пример. Пусть для фрагмента сетевого графика с рис. 7.6  L(20)=16,  L(24)=19,  L(29)=22. Чему равно L(17)?

Рис. 7.6

L(17)=min {16–5, 19–4, 22–8}=11.

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

Рис. 7.7

Из алгоритма расчёта наиболее поздних сроков наступления событий непосредственно следует, что увеличение наиболее позднего срока окончания всего проекта L(n) на t единиц приведёт к увеличению наиболее поздних сроков для всех событий также на t единиц.

Наиболее ранний срок E(i) события i можно интерпретировать как длину пути наибольшей длины от начального события к событию i, а разность L(n) – L(i) – как длину пути наибольшей длины от события i к конечному событию. Отметим ещё, что если L(n) ≥ E(n), то L(i) ≥ E(i) для всех событий i.

Рассмотрим некоторую операцию (i,j). Начаться она может не ранее E(i) и закончиться должна не позднее L(j). То есть на выполнение этой операции можно выделить без задержки окончания проекта не более L(j) – E(i) единиц времени. Таким образом, величина L(j) – E(i) – t(i,j) – полный резерв времени операции (i,j). Очевидно, что задержка выполнения операции, полный резерв времени которой равен нулю, приведет к такой же по времени задержке выполнения всего проекта.

E(j) – E(i) – t(i,j) – свободный резерв времени операции (i,j), максимальная задержка выполнения операции (i,j), не влияющая на выполнение последующих операций.

E(j) – L(i) – t(i,j) – независимый резерв времени операции (i,j), максимальная задержка выполнения операции (i,j), не ограничивающая по времени никакую другую операцию проекта.

Операция, полный резерв времени которой равен нулю, называется критической. Знание всех критических операций необходимо для предотвращения задержки их выполнения, вызывающей задержку окончания проекта.

Поскольку E(n) равно длине пути наибольшей длины от начального к конечному событию и если E(n) = L(n), то каждая операция этого пути является критической. Путь, состоящий только из критических операций, называется критическим путём. В графе таких путей может быть несколько.

На рис. 7.8 показаны пути (1–2–4–7–8–9) и (1–3–4–7–8–9) длиной 13, составленные из критических операций рассмотренного абстрактного проекта.

Рис. 7.8

Замечание. При необходимости может быть рассмотрена задача оптимального распределения задержек между некритическими операциями по критерию минимизации общей стоимости проекта.