Анализ оптимальности сетевого графика возможно провести, только после расчёта всех, присущих ему параметров. Исходными данными для расчёта являются длительности всех, входящих в сетевой график работ. Результатами расчёта являются значения, описанных в разделе 2, параметров. И первое и второе, можно объединить в одной таблице исходных данных и результатов 4.1.
Данная таблица – есть двумерная матрица с пронумерованными строками и столбцами. Номера строк изменяются от 0 до (см. таб. 4.1), где – число работ в сетевом графике, которое можно найти, подсчитав все единицы в матрице смежностей. Номера столбцов изменяются от 0 до 13, где каждый номер соответствует своему параметру сетевого графика. Нумерация строк и столбцов необходима для представления таблицы исходных данных и результатов в машинной форме.
Столбцы под номерами 0,1 и 2 определяют часть таблицы 4.1, отведённую под хранение исходных данных, к которым относятся коды работ и длительности работ. Как видно, коды работ задаются ячейками двух столбцов под номерами 0 и 1. Здесь индекс (столбец 0) определяет номер события, из которого работа исходит, а индекс (столбец 1) определяет номер события, в которое она входит. Найти все возможные коды работ сетевого графика легко по матрице смежностей , если, просматривая её строки, номера которых соответствуют индексу , выбирать в качестве индекса номера тех столбцов, для которых будут отыскиваться единицы.
|
|
Алгоритм заполнения таблицы 4.1 исходными данными представлен в виде блок-схемы 4.2, где ячейки самой таблицы обозначены символом . Для данного обозначения: – номер строки таблицы исходных данных и результатов, – номер столбца той же таблицы. Алгоритм предполагает, что таблица исходных данных и результатов уже зарезервирована и имеет размерность , – число работ в сетевом графике.
Блок-схема 4.2 – Алгоритм заполнения исходными данными таблицы исходных данных и результатов
После заполнения таблицы 4.1 исходными данными для расчёта, идёт следующая стадия, – непосредственно, сам расчёт параметров сетевого графика. Данная стадия выполняется в три этапа. На первом этапе осуществляется расчёт сетевого графика в порядке – от начального события до завершающего, и определяются ранние сроки свершения событий, ранние начала и окончания работ. На втором этапе осуществляется расчёт сетевого графика в обратном порядке – от завершающего события до начального, и определяются поздние сроки свершения событий, поздние начала и окончания работ. На третьем этапе осуществляется расчёт резервов времени событий и работ, в произвольном порядке.
|
|
Рассмотрим расчёт параметров сетевого графика на первом этапе.
Ясно, что в общем случае, при попытке определить ранний срок свершения некоторого события, как максимальный из ранних окончаний всех работ, входящих в это событие, может быть неудача, так как к этому моменту не все ранние сроки окончаний работ могут быть известны. Тогда, встает задача найти такой порядок расчёта сетевого графика, при котором, переходя от события к событию, всегда удаётся находить их ранние сроки свершения. Оказывается, для всех сетевых графиков, с правильно занумерованными событиями этот порядок один и тот же, и основывается на следующей теореме.
Теорема 4.1 – Если события сетевого графика занумерованы так, что любая его работа исходит из события с меньшим номером и входит в событие с большим номером, то расчёт ранних сроков свершения событий в порядке: 0-е событие, 1-е, 2-е, и так далее, до завершающего события, в тупик зайти не может, при условии, что рассчитывая ранний срок свершения очередного события, сразу же определяются ранние окончания всех, исходящих из него работ.
Докажем эту теорему методом математической индукции.
Зададимся нулевым сроком свершения 0-го события, и рассчитаем ранние окончания всех, исходящих из него работ. Далее. Рассмотрим 1-е событие. В него могут входить только работы, исходящие из событий с меньшими номерами – в данном случае только из 0-го события, при этом ранние окончания этих работ уже известны. Тогда можно рассчитать ранний срок свершения 1-го события. Рассчитав ранний срок свершения 1-го события, сразу же рассчитаем ранние окончания всех, исходящих из него работ. Далее. Рассмотрим 2-е событие. В него могут входить работы, только из 0-го и 1-го события, и ранние окончания которых уже известны. Тогда можем рассчитать ранний срок свершения 2-го события. Рассчитав ранний срок свершения 2-го события, сразу же рассчитаем ранние окончания всех, исходящих из него работ. Далее. Рассмотрим 3-е событие. В него могут входить работы, только из 0-го, 1-го и 2-го события, и ранние окончания которых уже известны. Тогда можем рассчитать ранний срок свершения 3-го события….
Продолжая данные рассуждения, по индукции, рано или поздно дойдём до завершающего события сетевого графика, ранний срок которого окажется возможным рассчитать, так как к этому времени, уже будут известны ранние окончания всех работ сетевого графика. Теорема доказана.
Из данной теоремы, непосредственно, вырисовывается алгоритм расчёта параметров сетевого графика на первом этапе. Данный алгоритм представлен в виде блок-схемы 4.3, и основан на том, что после выполнения алгоритма 4.2, в таблице исходных данных и результатов уже находятся коды работ сетевого графика и их длительности.
Блок-схема 4.3 – Алгоритм расчета ранних сроков свершения событий сетевого графика
Рассмотрим расчёт параметров сетевого графика на втором этапе.
В общем случае, при попытке определить поздний срок свершения некоторого события, как минимальный из поздних начал всех работ, исходящих из этого события, может быть неудача, так как к этому моменту не все поздние сроки начал работ могут быть известны. Тогда, встает задача найти такой порядок расчёта сетевого графика, при котором, переходя от события к событию, всегда удаётся находить их поздние сроки свершения. Оказывается, для всех сетевых графиков, с правильно занумерованными событиями этот порядок, опять, один и тот же, и основывается на следующей теореме.
Теорема 4.2 – Если события сетевого графика занумерованы так, что любая его работа исходит из события с меньшим номером и входит в событие с большим номером, то расчёт поздних сроков свершения событий в порядке: последнее событие, предпоследние событие, предшествующее предпоследнему событию, и так далее, до начального (0-го) события, в тупик зайти не может, при условии, что рассчитывая поздний срок свершения очередного события, сразу же определяются поздние начала всех, входящих в него работ.
|
|
Докажем эту теорему методом математической индукции.
Зададимся поздним сроком свершения последнего события, равным его раннему сроку свершения, и рассчитаем поздние начала всех, входящих в него работ. Далее. Рассмотрим предпоследнее событие. Из него могут исходит только работы, входящие в события с большими номерами – в данном случае только в последнее событие, при этом поздние начала этих работ уже известны. Тогда можно рассчитать поздний срок свершения предпоследнего события. Рассчитав поздний срок свершения предпоследнего события, сразу же рассчитаем поздние начала всех, входящих в него работ. Далее. Рассмотрим событие, предшествующее предпоследнему. Из него могут исходить работы, только в предпоследнее и в последнее событие, и поздние начала которых уже известны. Тогда можем рассчитать поздний срок свершения события, предшествующего предпоследнему….
Продолжая данные рассуждения, по индукции, рано или поздно дойдём до начального события сетевого графика, поздний срок которого окажется возможным рассчитать, так как к этому времени, уже будут известны поздние начала всех работ сетевого графика. Теорема доказана.
Из данной теоремы, непосредственно, следует алгоритм расчёта параметров сетевого графика на втором этапе. Данный алгоритм представлен в виде блок-схемы 4.4, и основан на том, что после выполнения алгоритма 4.3, в таблице исходных данных и результатов уже рассчитаны все ранние сроки свершения событий.
Блок-схема 4.4 – Алгоритм расчёта поздних сроков свершения событий сетевого графика
Рассмотрим расчёт параметров сетевого графика на третьем этапе.
Если, сначала выполнить алгоритм расчёта ранних сроков свершения событий 4.3, а затем алгоритм расчёта поздних сроков свершения 4.4, то в таблице исходных данных и результатов останутся не заполненными только три последних столбца, с номерами: 11, 12 и 13. Данные столбцы, как видно из таблицы 4.1, отведены под расчёт резервов времени сетевого графика. Расчёт резервов времени сетевого графика можно осуществить в любом порядке строк таблицы исходных данных и результатов, например, подряд – с 0-й строки по последнюю. Такой порядок расчёта представлен ниже, в виде блок-схемы 4.5. Данный алгоритм является завершающим для процесса расчёта параметров сетевого графика, после выполнения которого, все ячейки таблицы исходных данных и результатов 4.1, будут заполнены значениями соответствующих параметров.
|
|
Блок-схема 4.5 – Алгоритм расчёта резервов времени сетевого графика