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

Специальные главы математики множества, графы, комбинаторика. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Упражнения 2.4
Для графа, изображенном на рис. 2.24, найти:
1) простую цепь, соединяющую v
2) простую цепь, идущую от v
через v
;
7
3) сложную цепь, соединяющую v
и v4;
4) сложную цепь, соединяющую v
и v2;
5) простой цикл, начинающийся
в v
и имеющий длину 6;
1
6) сложный цикл, начинающийся
в v
и имеющий длину 9.
1
7) Элементарный цикл, начинающийся в v
В каждом из случаев 1–7 есть много возможностей;
8) покажите, что последовательность е
цепью. Вставьте мысленно в эту последовательность одно ребро так, чтобы получилась цепь. Будет ли полученный результат простой или сложной цепью?
9) классифицируйте последовательности: е
е
, е11, е4, е6; е1, е2, е8, е10, е6, е2; е2, е6, е10, е8; е2, е6, е10, е9, е8; е7, е3, е11,
1
е
, е6 (т. е. установите, являются ли они цепями или циклами, просты-
11
ми, сложными или элементарными);
10) составьте цепь, идущую от v
ли эта цепь простой или сложной?
11) найдите элементарный цикл, который будет одновременно и про-
стым циклом; найдите простой цикл, который не элементарен. Докажи­те, что элементарный цикл всегда будет простым, но обратное выполня­ется не всегда. Покажите, что элементарный цикл не содержит петель.
и v4;
1
к v5
1
1
v
2
1
e
e
7
v
1
v
6
e
11
e
3
v
3
e
2
e
8
v
5
e
4
e
v
4
e
10
v
e
9
Рис. 2.24
и имеющий длину 5.
1
, е3, е5, е4, е10 не является
7
, е3, е4, е5, е5, е4, е2;
7
к v7 и проходящую через v6. Будет
2
e
5
Упражнения 2.5
1. Рассмотрите граф, изобра-
женный на рис. 2.25.
(1) Связен ли он?
(2) Останется ли граф связным, если убрать ребро е
(3) Останется ли граф связным, если убрать ребро е
?
1
?
3
41
е
1
е
2
Рис. 2.25
е
3
е
4
(4) Останется ли граф связным, если убрать ребра е1, е2 и е4?
2. Если граф связен и является элементарным циклом, что можно
сказать о степенях его вершин?
3. Что можно сказать о степенях вершин связной элементарной цепи?
Упражнения 2.6
1. В теннисном турнире с двумя участниками победителем счита­ется тот, кто первый выиграет три партии. Определите с помощью де­рева число возможных последовательностей исходов игр в турнире. Каково максимальное возможное число игр?
2. Четыре мальчика A, B, C, D бросают друг другу мяч по следую­щим правилам:
(1) А никогда не (2) В никогда не бросает A и C; (3) С никогда не бросает В; (4) D никогда не бросает В; (5) никто из мальчиков, бросив мяч, не ловит его сам.
Предположив, что мяч первоначально находится у А, начертите де­рево-диаграмму, чтобы показать возможные пути мяча в течение вых пяти бросков.
(6) Предположив, что D никогда не бросает ни B, ни C, покажите, что С никогда не получает мяч.
бросает мяч C и D;
пер-
2.9. Приложение к теории графов Сетевое планирование
Сложную систему можно представить сетью или графом, при этом узлы графа могут соответствовать отдельным блокам, а дуги, соеди­няющие эти узлы, будут указывать на связи или зависимости между блоками. Изучение правильно выбранной сетевой модели очень часто помогает составить достаточно ясное представление о системе и ее функционировании. Сетевые методы просты, объективны, высокоэф фективны и очень полезны для успешного выполнения соответствую­щих функций управления.
Пример. При строительстве нового объекта или реконструкции действующего требуется четкий план последовательного проведения необходимых работ. Все работы должны быть обеспечены рабочей си­лой, механизмами, материалами. Для проведения последующих работ должны быть выполнены все подготовительные операции, закончены
42
-
все связанные с ними предшествующие работы и т. д. Составление проекта, предусматривающего все взаимосвязи между отдельными ра­ботами, распределение имеющихся материальных ресурсов, а также ресурса времени, и есть задача сетевого планирования.
Из истории сетевого планирования. Сетевые методы планирова- ния начали в промышленности с середины 50-х годов прошлого века – в области строительства
мостов, эксплуатации заводов, проектирова­ния домов, в области космических полетов. Любая программа, большая или малая, от взятия пробы лунного грунта до чистки пары ботинок мо­жет быть успешно проанализирована с помощью сетевой модели.
Новым методам давали различные названия. Здесь в качестве при­мера будут рассмотрены методы анализа критического пути [6]. Об­щий метод анализа критического пути может быть разбит на три ста­дии: стадия планирования, стадия анализа и стадия управления.
Стадия планирования. План может быть разбит на множество подпланов, называемых работами. При этом оценивают время завер­шения каждой из этих работ, может быть также сделана попытка опре­деления последовательности, в которой они
должны выполняться.
Определение работы
1-й шаг: при построении сложного плана (или программы) его раз­бивают на подпланы, которые будем называть работами (р).
2-й шаг: состоит в определении того, как эти работы связаны меж-
ду собой во времени.
Таким образом, если р выяснить, выполняются ли р
и рj – две различные работы, то необходимо
i
и рj одновременно или же одна работа
i
должна быть закончена прежде, чем начнется другая.
Примеры
Задание 1: вскипятить чайник с водой.
Множество работ (р) плана:
– наполнить чайник водой;
р
1
р
– поставить чайник с водой на плиту, включить плиту и ждать,
2
пока он не закипит.
Очевидно, что работа р начнется работа р
.
2
должна быть закончена прежде, чем
1
Задание 2: приготовить чашку растворимого кофе с молоком.
Множество работ (р) плана:
р
– вскипятить воду (как в задании 1);
1
– вскипятить молоко (эта процедура аналогична р1);
р
2
43
р3 – положить в чашку ложечку растворимого кофе;
р
– добавить необходимое количество молока и воды.
4
В этом плане последовательность работ во времени не так очевид­на, как в первом случае. Если предположить, что существуют две кон­форки, то работы «вскипятить молоко» и «вскипятить воду» можно выполнять одновременно. Если же в наличии имеется только одна конфорка, то эти работы необходимо боту р пят; очевидно, что и работа р все работы р
можно выполнять только после того, как и молоко и вода вски-
3
не может быть начата до тех пор, пока
4
и р3 не будут окончены.
1, р2
выполнять последовательно. Ра-
► Замечания
1. В общем случае разбиение плана на множество работ не един­ственно. Например, работы «вскипятить молоко» или «вскипятить во­ду» могут быть разбиты при желании на более мелкие работы. Выбор множества работ для некоторого плана зависит от необходимого уров­ня анализа. Очень часто первое подразделение бывает
грубым, при этом ориентируются на основные действия процесса. Дальнейшее раз­биение направлено на выявление зависимостей внутри групп работ, соответствующих более низкому уровню деятельности.
2. Работа может соответствовать заданию, выполнение которого сопряжено с определенными усилиями; наоборот, работа может быть бездеятельной, например, ожиданием чего-то, что должно произойти (для рассмотренного примера это
будет ожидание кипения воды).
3. Иногда во множество работ полезно включить фиктивную ра­боту. Это работы, которые не занимают времени и для которых не ис-
пользуются никакие ресурсы.
4. Имеется несколько специальных случаев, зависимостей между
работами, которые должны быть рассмотрены при построении сетевых моделей (например, параллельное выполнение работ, зависимость од­ной работы
от нескольких предшествующих работ и т. п.).
События. Слово событие в сетевом планировании означает точку
во времени, которая отделяет различные осуществления плана.
Пример
В плане «вскипятить чайник воды» можно выделить три точки
времени, которые называются событиями:
1) время начала выполнения задания;
2) время, когда мы ставим чайник на плиту после завершения ты «наполнить чайник»;
44
рабо-
3) время начала кипения, характеризующее окончание выполнения задания.
Графическое изображение событий и работ. Работы будем изоб­ражать стрелками (т. е. направленными дугами) графа (рис. 2.26). Опи­сания работ при желании могут записываться вдоль стрелок. События должны быть занумерованы. Как правило, вершины графа обознача­ются некоторыми геометрическими фигурами (например, кружочка­ми). Внутри этих
фигур проставляется соответствующий номер. Опи-
сание события может быть тоже записано внутри кружочка.
Сеть
Началь ное со-
бытие
Описание
работы
Конеч­ное со-
бытие
1
2
3
Наполнить чайник Поставить чайник водой на огонь и начать кипятить
План – вскипятить чайник воды
Сеть
Вскипятить
воду
1 4 5
2
Положить
кофе в чашку
Фиктивная работа
В чашку налить
воды и молока
Вскипятить
молоко
3
Фиктивная работа
План – приготовить чашку кофе
Рис. 2.6
45
Работа должна быть выполнена в течение времени между двумя событиями, обозначенными своими номерами в концах соответствую­щей стрелки. Событие, соответствующее началу стрелки, называется начальным (или предшествующим) событием; конец стрелки называ­ют конечным (или последующим) событием. Любая работа может быть определена своими числами, которые соответствуют начальным и ко­нечным событиям.
На рис
. 2.26 иллюстрируются графические изображения сетей.
► Замечания
1. Фиктивные работы (время выполнения равно нулю) необходимы для изображения параллельных работ. Три параллельные работы – «вскипятить молоко», «вскипятить воду», «положить в чашку кофе» –
имеют одни и те же начальные и конечные события; для большей яс­ности события 2 и 3 (которые соответствуют событию 4) показаны на графике.
Фиктивные работы 2–4 и 3–4 обозначены пунктиром.
2. Длина стрелок и расположение дуг не имеют значения.
3. Желательно придерживаться следующих правил:
(а) время изменяется слева направо; (б) конечным событиям всегда присваиваются большие номера,
чем соответствующим начальным событиям. Числа не обязательно должны подчиняться естественному порядку 1, 2, 3,... На практике ча­сто используются числа с промежутками между
ними, например, в се-
тевой модели Приготовить чашку кофе этими числами могли быть 1,
5, 6, 7, 10.
Основная работа и отношения между событиями. При составле-
нии сети необходимо принимать во внимание следующее:
1) событие нельзя считать наступившим (или достигнутым), если все работы, ведущие к этому событию, не окончены;
2) работа не может быть начата до
тех пор, пока начальное событие
не наступило.
Например, в сети на рис. 2.27 видно, что событие 8 не может быть
достигнуто, пока не будут до-
4
8 9
5
Рис. 2.27
стигнуты события 4 и 5 и обе работы 4–8 и 5–8 не будут окончены. Далее, как видно, работа 8–9 не может быть на­чата, пока событие 8 не будет достигнуто.
46
Продолжительность работы. После того как конечное множество работ задано и сеть проекта нарисована, необходимо оценить продол­жительность выполнения каждой работы, которая должна быть подпи­сана под соответствующей стрелкой.
Продолжительность работы есть время ее выполнения. Заметим, что это не то же самое, что время между начальным и конечным собы­тием. Например,
начальное и конечное события некоторой работы мо­гут происходить на 3-й и 7-й день соответственно, тогда как продол­жительностью работы может быть только один день; в таком случае говорят, что работа имеет резерв в три дня. Вопросы резерва работ бу­дут рассмотрены далее.
Пример
Задание. Покрасить дверь (один маляр и один
помощник).
Список работ (в скобках – их продолжительность в минутах):
– счистить старую краску (75);
р
1
– прошкурить дверь (30);
р
2
– открыть банку и размешать краску (4);
р
3
– приготовить кисти (5);
р
4
– вытереть дверь (4), сделать до р6;
р
5
– покрасить дверь (15);
р
6
– вычистить кисти и собрать инструменты (6).
р
7
Сетевая модель этого проекта изображена на рис. 2.28.
р
1
75
1
р
2
2
3
р
30
р
3
р
4
5
4
5
4
0
4
р
6
5
15 6
р
7
6
7
Рис. 2.28
Стадия анализа. Разбиение проекта на множество работ и определе­ние связей между работами во времени – задача весьма трудоемкая. Ее решение помогает выявлению промежуточных целей и направления действий, которым должен следовать руководитель. Это дает возмож­ность решить, какие работы должны быть выполнены для осуществле-
47
ния различных подпроектов, позволяет правильно распределить все ра­боты. После построения сетевой модели ход действий становится ясным и можно приступить к выполнению проекта; другими словами, сетевое планирование предусматривает выработку некоторой стратегии дей­ствий.
При решении задачи планирования может быть извлечена допол­нительная информация из сетевой модели самого плана. Это приводит
к стадии анализа, в котором такие понятия, как критический путь и
нас резерв времени работы, играют ключевую роль.
Критический путь. Первый шаг в анализе графа работ заключается в нахождении критического пути (или путей) сети. Для определения этого понятия рассмотрим простейшую сеть, изображенную на рис. 2.29.
► Замечание. В наших примерах мы не
будем обсуждать реально-
го смысла работ, как это делалось ранее. Как правило, вся символика будет той же, что на рисунке. Символом v (вершина) обозначаются со­бытия; пара (v
, vj) определяет работу рij; число, стоящее около каждой
i
стрелки, означает время выполнения соответствующей работы.
4
v
1
v
3
v
2
v
2
3
4
1
1
2
5
Рис. 2.29
v
5
4
v
6
3
v
7
На рис 2.29 в сети v1 означает начало проекта, а v7 – его окончание. Заметим, что от вершины v
к вершине v7 можно пройти по сети че-
1
тырьмя различными путями; для каждого пути мы можем определить его примерную продолжительность – длину пути, т. е. сумму продол­жительностей последовательных работ, образующих путь. Пути и их продолжительности будут следующими.
Путь Продолжительность
v
− v2 − v5 − v7 4 + 1 + 4 = 9
1
v
− v2 − v6 − v7 4 + 1 + 3 = 8
1
− v3 − v6 − v7 3 + 2 + 3 = 8
v
1
v
− v4 − v6 − v
1
7
2 + 5 + 3 = 10
48
Введем следующие определения.
1. Максимальное значение в множестве продолжительностей всех
путей (оно может достигаться на нескольких путях) называется пол- ным временем осуществления проекта. Это значение определяет
наикратчайшее время, за которое может быть выполнен весь проект.
2. Любой путь, длина которого равна полному времени осуществ-
ления проекта, называется критическим путем.
В приведенном
примере максимальная продолжительность пути равна 10 единицам времени, если отсчет начинается со времени свер­шения события v ния проекта будет 10, а критическим путем v
. Отсюда следует, что полным временем осуществле-
1
− v4 − v6 − v7.
1
Чтобы уменьшить полное время осуществления проекта, необхо­димо сократить продолжительность работ, лежащих на критическом пути. Уменьшение продолжительности работы, не принадлежащей критическому пути, не отразится на изменении полного времени осу­ществления проекта.
Метод определения критического пути. Процедура отыскания критического пути состоит в следующем.
Прежде всего, составляется список всех событий в
той последо­вательности, в которой они должны выполняться, т. е. по сети слева направо.
Затем для каждого события вычисляются так называемые ранний
срок (Е) и поздний срок (L) свершения события. Если отыскание кри- тического пути выполняется вручную, то эти значения можно сразу записать на графике.
Тогда любой путь, такой
, что для всех событий, входящих в не-
го, Е = L, будет одним из возможных критических путей.
Для иллюстрации описанной процедуры рассмотрим простую сете­вую модель (критический путь обозначен жирной линией) (рис. 2.30). Все объяснения даны на графике и в таблице.
Событие (v) Ранний срок Е (v) Поздний срок L (v)
v
1
v2 3 = (0 + 3) 3 = (7 – 4) v3 4 = (0 + 4) 5 = (7 – 2) v4 5 = (3 + 2) 6 = (7 – 1) v5 7 = (3 + 4)
0 0
*
*
7
Значения, помеченные звездочкой, требуют специальных поясне­ний (см. далее (5) и (8)).
49
L
Е = 0
v
L = 0
1
Е = 3
v
3
2
L = 3
Е = 4
4
v
3
Е = 5
2
v
4
1
= 6
4
2
Е = 7
v
5
L = 7
L = 5
Рис. 2.30
1. Нахождение раннего срока свершения события Е (v)
(1) Предположим, что событие v
происходит в момент времени,
1
равный нулю.
(2) Для нахождения Е (v
события Е (v
Е (v
) продолжительность работы р12. Получим
1
) = Е (v1) + (продолжительность работы р12) = 0 + 3 = 3.
2
Это говорит о том, что событие v
) прибавим к раннему сроку свершения
2
не может наступить раньше, чем
2
пройдет три единицы времени с момента начала проекта.
(3) Аналогично
Е (v
) = Е (v1) + (продолжительность работы р13) = 0 + 4 = 4
3
и
) = Е (v2) + (продолжительность работы р24) = 3 + 2 = 5.
Е (v
4
(4) Для каждого из рассмотренных событий характерно, что к нему ведет только одна стрелка (работа). Тогда
) = Е (vi) + (продолжительность работы рij),
Е (v
j
– единственная работа, ведущая в vj.
где р
ij
(5) Если к событию v свершения события Е (v ли нашего примера три стрелки (работы) из v
ведут более одной стрелки, то ранний срок
j
) вычисляется так, как показано далее. В моде-
j
, v3, v4 ведут в v5. Поэто-
2
му необходимо рассчитать три момента времени и выбрать из них наиболее поздний. Таким образом,
Е (v
) + (продолжительность работы р25) = 3 + 4 = 7*;
2
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]