Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MO_teoria-otvety.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.51 Mб
Скачать
  1. Сетевые модели

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

Сети или сетевые модели имеют широкое практическое применение. Из всего разнообразия методов и моделей рассмотрим здесь лишь метод критического пути (МКП). Сеть в этом случае – это графическое отображение комплекса работ. Основными элементами сети здесь являются события и работы.  Событие – это момент завершения процесса, отображающий отдельный этап выполнения проекта. Комплекс работ начинается с исходного и заканчивается завершающим событием.  Работа – это протяжённый во времени процесс, необходимый для свершения события и, как правило, требующий затрат ресурсов.  События на сетевом графике обычно изображаются кружками, а работы – дугами, соединяющими события. Событие может свершиться только тогда, когда закончатся все работы, ему предшествующие.  В сетевом графике не должно быть "тупиковых" событий, за исключением завершающего, не должно быть событий, которым не предшествует хотя бы одна работа (кроме исходного), не должно быть замкнутых контуров и петель, а также параллельных работ. 

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

tjp — ранний срок свершения j-го события;

tjn — поздний срок свершения j-го события;

Rj — резерв времени на свершение j-го события;

tijP.H — ранний срок начала работы (i,j);

tijP.O — ранний срок окончания работы (i,j);

tijП.H — поздний срок начала работы (i,j);

tijП.О — поздний срок окончания работы (i,j);

rijП — полный резерв времени работы (i,j);

rijC.B — свободный резерв времени работы (i,j),

kijH — коэффициент напряженности работы (i,j);

ТП — продолжительность пути LП; TП = t(LП);

TКР — продолжительность критического пути LКР;

R(Lп) — полный резерв времени пути Lп.

  1. Задача нахождения кратчайшего пути. Алгоритм Флойда

Этот алгоритм более общий по сравнению с алгоритмом Дейкстры, так как он находит кратчайшие пути между любыми двумя узлами сети. В этом алгоритме сеть представлена в виде квадратной матрицы с n строками и nстолбцами. Элемент (i, j) равен расстоянию dij от узла i к узлу j, которое имеет конечное значение, если существует дуга (i, j), и равен бесконечности в противном случае.

    Покажем сначала основную идею метода Флойда. Пусть есть три узла i, j и k и заданы расстояния между ними (рис. 1). Если выполняется неравенство dij + djk < dik, то целесообразно заменить путь i -> k путем i -> j -> k. Такая замена (далее ее будем условно называть треугольным оператором) выполняется систематически в процессе выполнения алгоритма Флойда.

Алгоритм Флойда требует выполнения следующих действий.

Шаг 0. Определяем начальную матрицу расстояния D0 и матрицу последовательности узлов S0. Диагональные элементы обеих матриц помечаются знаком "-", показывающим, что эти элементы в вычислениях не участвуют. Полагаем k = 1:

Начальная ситуация

Основной шаг k. Задаем строку k и столбец k как ведущую строку и ведущий столбец. Рассматриваем возможность применения треугольного оператора ко всем элементам dij матрицы Dk-1. Если выполняется неравенство dik+ dkj < dij, (i <> k, j <> k, i <> j), тогда выполняем следующие действия:

создаем матрицу Dk путем замены в матрице Dk-1 элемента dij на сумму dik + dkj,

создаем матрицу Sk путем замены в матрице Sk-1 элемента sij на k. Полагаем k = k + 1 и повторяем шаг k.

Поясним действия, выполняемые на k-м шаге алгоритма, представив матрицу Dk-1 так, как она показана на рисунке 3. На этом рисунке строка k и столбец k являются ведущими. Строка i - любая строка с номером от 1 до k - 1, а строка p - произвольная строка с номером от k + 1 до n. Аналогично столбец j представляет любой столбец с номером от 1 до k - 1, столбец q - произвольный столбец с номером от k + 1 до n. Треугольный оператор выполняется следующим образом. Если сумма элементов ведущих строки и столбца (показанных в квадратах) меньше элементов, находящихся в пересечении столбца и строки (показанных в кружках), соответствующих рассматриваемым ведущим элементам, то расстояние (элемент в кружке) заменяется на сумму расстояний, представленных ведущими элементами:

Алгоритма Флойда

После реализации n шагов алгоритма определение по матрицам Dn и Sn кратчайшего пути между узлами i и j выполняется по следующим правилам.

  1. Расстояние между узлами i и j равно элементу dij в матрице Dn.

  2. Промежуточные узлы пути от узла i к узлу j определяем по матрице Sn. Пусть sij = k, тогда имеем путь i -> k -> j. Если далее sik = k и skj = j, тогда считаем, что весь путь определен, так как найдены все промежуточные узлы. В противном случае повторяем описанную процедуру для путей от узла i к узлу k и от узла k к узлу j.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]