Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пиппец 2.doc
Скачиваний:
106
Добавлен:
07.06.2015
Размер:
3.16 Mб
Скачать

42. Сети и алгоритмы на сетях.

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

U – источник

W – конечная стадия

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

Зам. Последнее огранич-е не существенно, т.к., добавляя вершины и направл. ребра можно получить единственный источник или сток. Изображение такого графа наз. сетью планирования проекта, или сетевым графиком, или сетевой моде­лью. В основе построения сетевого графика лежат три основных понятия: работа - изображается ребром (деятельность), событие - вершина (задача), путь. Работа – любой активный процесс, требующий определенных затрат и ведущий к постижению постав­ленной цели.1) действительная – любой активный процесс, требующий затрат труда, времени и матер. ресур­сов. 2) ожидание – пассивный процесс, не требующий затрат труда и матер. ресурсов, но требующ. затрат времени. 3) фиктивная – условная зависимость между событиями, не требующими затрат времени и ре­сурсов. Событие – результат выполнения работы. 1) исходное – начало выполнения проекта; исходному событию не предшествуют никакие ра­боты. 2) завершающее – достижение конечной цели проекта; не имеет следующих за ним работ. 3) про­межуточное – результат выполнения одной или неск-х работ, позволяющих приступить к выполнению последующих работ. Промежуточ. соб. не сопровождается затратами труда, матер. ресурсов и времени. На сетевом графике событие изображаются кружком, в кот. проставляется число – шифр данного события. Любая стрелка на сетевом графике соединяет только две вершины и отражает процесс перехода от одного события к другому. Поэтому любая работа м/б зашифрована парой чисел, соответствующих предыдущему и последующему событию.Время, необх. для выполнения работы i,j, наз. продолжительностью работы ti,j.

t13=10; t12=5.

Основные правила построения сетевого графика.1. Сеть изображают слева направо, т.е. каждая стрелка рисуется по возможности так, чтб. ее конец находился правее начала и горизон­тально.2. Два соседних события могут объединяться лишь одной работой. Для изображения параллельных работ вводятся промежуточные события и фиктивные работы. (Фиктивная работа изображается пунктирной стрелкой, никакого весового коэф-та не пишется). 3. Следят за тем, чтб. во все вершины, кроме исходного события, входила по меньшей мере одна стрелка. 4. Следят за тем, чтб. из всех вершин сети, кроме завершающего события, выходили стрелки. 5. Следят за тем, чтб. в сетевом графике не было тупиков и не образовывалось циклов. Для правильной нумерации событий поступают следующим образом: исходному событию дают шифр – 1(или 0); вычеркиваются все выходящие из него работы; выбирается вершина, в кот-ю не входит ни одна стрелка, этой вершине присваивается следующий номер; вычеркиваются работы, выходящие из второго события и т.д.

Расчет временных параметров сетевого графика.

Путь в сети от исходного события до завершающего наз. полным путем, обознач. L. Продолжительность пути – время, необходимое для выполнения всех работ, лежащих на этом пути, обо­знач. t(L). Путь, имеющий наиб. продолжительность, наз. критическим. Работы, лежащие на критическом пути называют критическими работами. Время критического пути определяет время выполнения проекта, т.е. время, необходимое для завершения работ.

Расчет критического пути включ. в себя два этапа: 1) прямой проход – вычисления начинают с исходного события и про­должают до тех пор, пока не будет достигнуто завершающее событие. Для каждого соб-я определяется одно число, представляющее ранний срок его наступления. tj=max{ti+tij}. 2) обратный проход – вычисление начинают с завершающего события и продолжают пока не будет дос­тигнуто исходное событие. Для каждого события вычисл-ся поздний срок его наступления. Обратный проход выделяет критический путь.

Задача о максимальном потоке.Потоком сети наз.ф-цию , которая каждому ребру данного графа ставит в соответствие неотриц. число : ER+{0}.

Для еE (e) определяет поток по ребру. Проблема максимального потока состоит в том, чтб. для задан­ной сети найти поток, кот. имеет максимальные из числа возможных цен. Ценой потока называется полный поток, приходящийся на сток.

Задача о кратчайшем пути. Пример (классический пример – задача коммивояжера).Найти кратчайший путь, проходящий через заданные пункты и возвращающийся в исходный пункт (все расстояния известны). Торговец, живущий в городе А, намерен посетить города В, С и D, расстояния между кот. известны. AB=11; AC=13; AD=17; BC=6; BD=9; CD=10.

Требуется указать кратчайший маршрут (циклический) из А через три других города.

B

ABDCA d=43

ACDBA d=43

ABCDA d=44

ACBDA d=45

ADCBA d=44

ADBCA d=45

ABDCA (ACDBA)

Гамильтонов цикл (проходит через каждую вершину ровно по одному разу) имеет всегда кратчайший путь. Любой подпуть кратчайшего пути явл. кратчайшим путем. Это свойство названо принципом оптимальности. Оно лежит в основе общего метода решения оптимизационных задач метода динамического программирования.

Алгоритм Дейкстры - алгоритм решения зад. о кратчайшем пути. Перед началом работы алгоритма все вершины считаются не маркированными, а в процессе работы алгоритма каждой вершине присваивается некоторое число.1) (s)=0 (x)=, xs 2) Пусть x – последняя маркированная вершина. Для нее рассмотрим все смешные с ней вершины. (x,y) – y – смешн. верш. 3)Для каждой смешной с x верш. находится М=m(x)+ m(x,y). Если m(y)>M, то m(y)=M 4)Если m(y)=, для всех немаркированных вершин, то заканчиваем работу, т.е. нет пути , ведущего из s в t. В прот. Случае маркируется та вершина, для кот. m(y) наименьшая (если их несколько, то произвольно выбираем одну из них). 5)Если y=t, то закончить работу, т.е. кратчайший путь из s в t найден.