- •Введение. Формализация и алгоритмизация процессов функционирования систем
- •Лекция 1. Математические схемы моделирования систем
- •Непрерывно-детерминированные модели
- •1.2 Дискретно-детерминированные модели
- •1.3 Дискретно-стохастические модели
- •1.4 Непрерывно-стохастические модели
- •1.5 Сетевые модели
- •1.6 Модели сетевого планирования и управления (спу)
- •1.7 Комбинированные модели (a-схемы)
- •Лекция 2. Имитационное моделирование процессов.
- •2.1 Способы рандомизации
- •Мультипликативным методом
- •Правила разыгрывания случайных величин и случайных событий
- •2.3 Расчет систем массового обслуживания с отказами методом Монте-Карло
- •Лекция 3. Обработка результатов статистического моделирования
- •3.1 Построение регрессионной модели
- •3.2 Оценка адекватности и точности модели
- •Задачи для самостоятельного решения
- •Непрерывные детерминированные модели (d-схемы)
- •2 Дискретные детерминированные модели (f-схемы)
- •3 Дискретные стохастические модели (р-схемы)
- •4 Непрерывные стохастические модели (q-схемы)
- •5Сетевые модели (n-схемы)
- •6 Модели календарного планирования
- •7 Имитационные модели
- •Контрольные вопросы
- •Литература, рекомендованная для изучения курса «Моделирование систем»
1.6 Модели сетевого планирования и управления (спу)
При планировании сложных комплексов взаимосвязанных и взаимообусловленных работ и управления ходом их выполнения наиболее эффективны модели и методы сетевого планирования и управления (СПУ). Основой методов СПУ является представление комплекса работ при помощи сетевого графика – ориентированного графа, представляющего взаимосвязь работ комплекса. Вершины графа - события, дуги (ориентированные ребра) – операции (работы), вес дуги – время выполнения работы, расход ресурса, количество исполнителей и др. Заметим, что фиктивные работы (зависимости) показывают, что одна работа предваряет другую (на графике изображаются пунктиром). Крупный проект разбивается на отдельные операции, составляется перечень и последовательность их выполнения, планируется время выполнения. Данные собираются в структурно-временную таблицу:
№ п/п |
Код операции |
Предшествующая операция |
Длительность выполнения |
|
|
|
|
Правила построения сетевого графика:
- «тупиком» может быть только завершающее событие;
- все события проекта, кроме исходного, имеют предшествующие события;
- запрещено наличие циклов;
- при изображении параллельно выполняемых работ необходимо использовать фиктивные работы, чтобы два смежных события не были связаны двумя или большим количеством дуг.
На сетевом графике события изображаются геометрическими фигурами (круги, квадраты), в каждой указывают:
- номер вершины i, присвоенный согласно алгоритму правильной нумерации;
-
Tiр
– ранний срок наступления i-го
события;
- Tiп – поздний срок наступления i-го события;
- k – номер вершины, при движении из которой получено значение Tiр.
Алгоритм правильной нумерации вершин (номера концевых вершин меньше номеров начальных вершин для всех дуг).
Пронумеровать начальную вершину. Вычеркнуть все дуги, выходящие из пронумерованной вершины.
Если достигнута конечная вершина, то процесс завершен. В противном случае, перейти к п.1.
Алгоритм поиска раннего срока наступления i-го события.
T1р:=0.
Tiр:= maxk { Tkр+tki}, где (k,i) – дуги, входящие в i-ю вершину,
.
Алгоритм поиска позднего срока наступления i-го события.
Tnп:= Tnр .
Tiп:= mink { Tkп - tki}, где (i,k) – дуги, выходящие из i-й вершины,
.
Алгоритм построения критического пути.
Начинают построение из конечной вершины в вершину с номером К, при движении из которой получено значение Tiр. Если в какой-то вершине находится два номера, то путь раздваивается.
Процесс продолжают пока не дойдут до начальной.
При анализе сетевого графика используют временные параметры:
- ранний срок начала работы (i,j) tij рн– наименьшее допустимое время, когда работа может быть начата: tij рн= Tiр;
- ранний срок окончания работы (i,j) tij ро = tij рн + tij ;
- поздний срок окончания работы (i,j) tij рн– наибольшее допустимое время, когда работа может быть окончена без нарушения срока завершения всего проекта: tij по= Tjп;
- поздний срок начала работы (i,j) tij пн = tij по - tij;
- критическое время Tкр – ранний срок наступления конечного события, минимальный срок выполнения всего комплекса работ;
- полный резерв времени работы (i,j) – максимально допустимое время, на которое можно увеличить продолжительность выполнения работы (i,j) или отложить ее начало, не вызвав при этом задержки выполнения всего проекта:
Rij=Tjп – Tiр- tij;
- свободный резерв времени работы (i,j) – время, которое можно дополнительно выделить для выполнения работы (i,j) без влияния на время выполнения последующих работ, причем последующие работы могут быть начаты в свои ранние сроки: rij=Tjр – Tiр- tij;
-
коэффициент
напряженности
,
где t’кр
– продолжительность отрезка
рассматриваемого пути, совпадающего
с критическим. Если Кн>0,8,
то работы напряженные, если 0,6<Кн<0,8,
то работы подкритические, если Кн<0,6,
то работы с резервами, при Кн
= 1 работы
напряженные.
Иногда
продолжительности работ трудно задать
точно, тогда вместо одной детерминированной
оценки задается две оценки: минимальная
(оптимистичный прогноз времени
выполнения) и максимальная (пессимистичный
прогноз времени выполнения), и принимается,
что tij
– случайная величина, подчиняющаяся
-распределению,
т.е. tij=(3tmax
- 2 tmin)/5,
с дисперсией s2=0,04(t
2max
- t
2min),
тогда вероятность p(tкр<T)=0,5(1+Ф(z)),
где z=(T-
tкр)/
sкр
; Т – директивный уровень продолжительности
выполнения всего проекта. Максимальный
срок выполнения всего комплекса работ
при заданном уровне вероятности p
вычисляется по формуле: T=Tкр+zsкр,
где sкр=
,
D-
дисперсия продолжительности критического
пути,
,
где sij2
– дисперсии работ критического пути.
Часто необходимо улучшить параметры сетевого графика, т.е. требуется оптимизация использования материальных, временных и трудовых ресурсов. Рассмотрим оптимизационные задачи сетевого планирования.
1
Оптимизация по времени.
Пусть задан сетевой график выполнения
проекта, известны dij
– показатели
минимально возможного времени выполнения
работы (i,j)
и hij
- технологические коэффициенты
использования дополнительных средств
xij,
позволяющих сократить длительность
выполнения работы (i,j)
до величины t’ij
= tij
- hij
xij
. Задача 1 состоит в нахождении величин
xij
с целью минимизации суммарных
дополнительных расходов и в нахождении
времени начала tij
н
и окончания tij
о
работ (i,j),
чтобы проект был выполнен в срок t0.
Математическая модель задачи имеет
вид: F=
→min
при условиях:
,
,
,
,
Задача
2 состоит
в нахождении величин xij
с целью сокращения срока выполнения
проекта и нахождения времени начала
tij
н
и окончания tij
о
работ (i,j),
чтобы сумма дополнительных расходов
не превышала величины B.
Математическая модель задачи имеет
вид:
при условиях:
,
,
,
2 Оптимизация по стоимости выполнения работ (прямых затрат).
Пусть
задан сетевой график выполнения проекта,
известны dij
– показатели
минимально возможного времени выполнения
работы (i,j)
(срочный режим выполнения), которым
соответствуют наибольшие затраты Сij,
и Dij
– показатели
максимально возможного времени
выполнения работы (i,j)
(нормальный режим выполнения), которым
соответствуют наименьшие затраты cij
(предполагается, что затраты на выполнение
работ обратно пропорциональны времени
их выполнения). hij
=
-
коэффициенты дополнительных затрат
(КДЗ).
1 случай (длина критического пути не фиксирована). Если все работы выполняются в нормальном режиме, то критический срок будет наибольшим, а стоимость выполнения наименьшей, поэтому необходимо сократить критический срок до некоторого минимально возможного значения при наименьшем возрастании стоимости выполнения проекта.
Алгоритм решения задачи.
Предварительный шаг. Определить КДЗ hij. На основе Dij определить Tкр , Rij, затраты на реализацию всего комплекса работ С.
Общий шаг.
Среди критических работ найти работу (r,k), для которой КДЗ наименьший. Если работа (r,k) является общей для всех критических путей или этот путь один, то работа (r,k) подлежит сокращению. Если работа (r,k) не является для критических путей общей, но эти пути имеют одну или несколько общих работ, то на каждом из них найти работу с наименьшим КДЗ и суммировать их. Сравнить с КДЗ той из общих работ (l,s), для которой он наименьший. Если суммарная величина КДЗ окажется не больше h l,s , то все работы, КДЗ которых вошли в сумму подлежат сокращению, в противном случае, сокращению подлежит работа (l,s). Если критические пути не имеют общих работ, то на каждом из них найти работу, для которой КДЗ наименьший, которая подлежит сокращению.
Сократить продолжительность выбранной работы, на такую величину, чтобы показатель времени выполнения работы (i,j) достиг значения dij или образовался новый критический путь.
Определить Tкр , Rij, затраты на реализацию нового варианта сетевого графика С.
Проверить, все ли работы критического пути достигли минимальной продолжительности, в этом случае задача решена. В противном случае перейти к п.1.
2 случай (длина критического пути фиксирована величиной t0). Задача состоит с минимизации стоимости выполнения проекта за счет увеличения длительности выполнения некоторых работ, но с учетом условия Tкр≤ t0. Если Tкр= t0, то оптимизация возможна только за счет резервов некритических работ. Если Tкр<t0, то оптимизация возможна только за счет всех работ проекта, все работы станут критическими (план безрезервный).
Будем
считать неизвестными сроки ti
свершения
событий, тогда в оптимальном плане
длительность работы tij=tj-ti,
а ее стоимость
.
Математическая модель задачи имеет
вид:
3 Оптимизация по ресурсам. Пусть проект задан сетевым графиком и используется один вид ресурсов в количестве R. Каждая работа характеризуется продолжительностью выполнения tij и интенсивностью потребления ресурса rij. Оптимальным распределением ресурсов считается такое размещение работ во времени, при котором в каждый момент времени было бы достаточно ресурс для выполнения работ, а время выполнения всего комплекса было бы минимальным, и работы не допускают перерыва в выполнении. Для решения этой задачи широко используют эвристические методы.
Алгоритм
Предварительный шаг. Составляют линейный график выполнения проекта (график Ганта), на котором каждая работа (i;j) изображена в привязке к оси времени горизонтальным отрезком длины tij, начало работы Tiр . Находят Tкр.
Первый шаг.
Проецируем на ось времени начало и конец каждой работы, пронумеруем эти проекции, начиная с нуля.
Определяем полные резервы времени работ, расположенных над промежутком (0;1). Нумеруем эти работы в порядке возрастания полных резервов. Если полные резервы одинаковы, то нумеруем эти работы в порядке убывания интенсивностей потребления ресурса.
Суммируем последовательно интенсивности потребления ресурса работ, расположенных над промежутком (0;1), в порядке присвоенных им номеров и сравниваем полученные суммы с R. Все работы, для которых сумма интенсивностей меньше либо равна R, оставляем в первоначальном положении, как только сумма станет превышать R, то эту работу сдвигаем вправо на величину рассматриваемого промежутка, переходим к следующей работе, пока не будут просмотрены все работы, расположенные над промежутком (0;1).
Результатом выполнения этого шага является новый линейный график.
Общий шаг. Пусть выполнено k шагов алгоритма, и получен новый линейный график, k-ый момент является началом оставшейся части комплекса работ.
1. Проецируем на ось времени начало и конец каждой работы, пронумеруем эти проекции, начиная с k-1 .
2. Определяем полные резервы времени работ, расположенных над промежутком (k-1; k). Нумеруем эти работы в порядке возрастания полных резервов. Если полные резервы одинаковы, то нумеруем эти работы в порядке убывания интенсивностей потребления ресурса.
3. Суммируем последовательно интенсивности потребления ресурса работ, расположенных над промежутком (k-1; k), в порядке присвоенных им номеров и сравниваем полученные суммы с R. Все работы, для которых сумма интенсивностей меньше либо равна R, оставляем в первоначальном положении, как только сумма станет превышать R, то эту работу сдвигаем вправо на величину рассматриваемого промежутка, переходим к следующей работе, пока не будут просмотрены все работы, расположенные над промежутком (k-1; k).
4.Результатом выполнения этого шага является новый линейный график.
5. Проверяем, все ли работы комплекса просмотрены. Если да, то решение закончено, в противном случае возвращаемся к п.1 общего шага. [21, 28]
