Продолжительность всего комплекса работ равна продолжительности критического пути. Анализ сетевого графика позволяет выделить те работы от которого она действительно зависит. Их число как правило, не велико по сравнению с общим количеством работ.
При обычных методах планирования комплекса работ для сокращения общего срока разработки не редко стремятся уменьшить продолжительность всех или большинства работ. Такой подход как правило, надает соответствующего эффекта, так как требует дополнительных затрат и незначительно сокращает продолжительность выполнения всего комплекса работ.
Важнейшим способом сокращения критического пути является использование определенной части ресурсов, для ускорения критических работ.
1.1.2. Математическая модель задачи
Для того чтобы выполнить оптимизацию сетевого графика, необходимо рассчитать и определить:
1. Необходимое число ресурсов для каждой работы:
где A - необходимое число ресурсов;
B - объем работ;
C – производительность.
2. Продолжительности работ:
где D – продолжительность работы;
A – необходимое число ресурсов;
F – число ресурсов.
3. Ранние сроки наступления событий:
tр (j) = max {tр (i) + t (ij)}, i<j, tр (0) = 0
где i, j – номера событий;
tр (i, j) – ранний срок наступления (i, j) события;
t (ij) – срок выполнения работы (i-j);
i<j – событие i предшествует j.
4. Поздние сроки наступления событий:
tп (i) = min {tп (j) - t (i,j)}, i<j
где i, j – номера событий;
tп (i, j) – поздний срок наступления (i, j) события;
t (ij) – срок выполнения работы (ij);
5. Полный резерв времени для каждой работы:
Rп(i,j)= tп(j) - tр(i) - t (i,j)
где i, j – номера событий;
tп (j) – поздний срок наступления события j;
tр (i) – ранний срок наступления события i;
t (ij) – срок выполнения работы (i-j).
6. События, лежащие на критическом пути. Такие события имеют равные ранние и поздние сроки наступления.
7. Критические работы. То есть работы, у которых начальное и конечное события критические.
8. Критический путь. Рассчитывается как сумма продолжительностей критических работ.
Далее проводится непосредственно оптимизация сетевого графика, т.е. в целях сокращения продолжительности критического пути программа предлагает пользователю перераспределить ресурсы с работ, находящихся на некритических путях, на выполнение работ, не имеющих резервов времени
1.2. Описание логической структуры
Блок-схема системы приведена на листе формата А1.
Блок 1 –начало работы;
Блок 2 – выбор из пунктов меню;
Блок 3 – выбор пункта меню файл;
Блок 4 - выбор подпункта меню “Открыть файл”;
Блок 5 – загрузка файла;
Блок 6 – выбор подпункта меню «сохранить файл»;
Блок 7 – сохранение файла
Блок 8 – выбор подпункта меню «Выход»;
Блок 9 – запрос на окончание работы;
Блок 10 – завершение работы программы;
Блок 11 – выбор меню «действие»;
Блок 12 – выбор подпункта меню «Оптимизация»;
Блок 13 –происходит оптимизация;
Блок 14 – выбор подпункта меню «прибавить строку»;
Блок 15 –прибавление строки;
Блок 16 – выбор подпункта меню «удалить строку»
Блок 17 –удаление строки;
Блок 18 - выбор пункта подменю “Очистить все”;
Блок 19 – очистка содержимого таблицы;
Блок 20 – выбор пункта меню “Помощь”;
Блок 21 – выбор из пунктов подменю;
Блок 22 – выбор подпункта меню “О задаче”
Блок 23 – открытие новой формы и вывод её на экран;
Блок 24 – выбор подпункта меню “О разработчике”
Блок 25 – открытие новой формы и вывод её на экран;
Блок 26 – выбор пункта подменю “Help”
Блок 27 – открытие новой формы и вывод её на экран;
Листинг программы приведен в Приложении “А”
1.3. Описание и организация входных данных
1.3.1. Описание входной и выходной информации
Данная задача использует внутреннюю входную информацию в виде полей и переменных описание которых приведено ниже:
Название поля | Идентификатор | Тип |
Начальное событие | I | Целый |
Конечное событие | J | Целый |
Объем работ | Объем работ | Целый |
Число ресурсов | Число ресурсов | Целый |
Производительность | Производительность | Целый |
Общее число ресурсов | Общее число ресурсов | Целый |
Начальное событие, Конечное событие, Объем работ, Число ресурсов и Производительность берутся из карточки задания, а Общее число ресурсов вычисляется автоматически как сумма по столбцу, Число ресурсов и выводятся в не редактируемое поле ввода.
Выходная информация также полностью отображается на главной форме в таблице и в не редактируемых полях ввода и содержит:
Наименование реквизита | Идентификатор | Тип |
Необходимо ресурсов | Необход. ресурсов | вещественный |
Продолжительность | Продолжительность | вещественный |
События | События | целый |
Резерв времени | Рез. времени | вещественный |
Продолжительность критического пути | Продолжительность критического пути | вещественный |
Всего необходимо ресурсов | Общее число ресурсов | вещественный |
Необходимо ресурсов, Продолжительность, События, Ранний срок, Поздний срок, Резерв времени выводятся в таблицу, Продолжительность критического пути, Всего необходимо ресурсов выводятся в не редактируемые поля ввода.
1.3.2. Организация ведения информационной базы
Организация ведения информационной базы осуществляется за счет наличия таких функций как ввод и сохранение исходных данных. В эту информационную базу данных входят такие элементы программы как промежуточные массивы, адреса памяти где хранятся результаты вычислений и т. д.
Промежуточные массивы создаются на время выполнения программы, в них производятся промежуточные вычисления, результаты которых потом заносятся в таблицу.
Входная информация. Карточка задания и представляет собой пример задачи которую необходимо решить с использованием компьютера, оттуда также берутся исходные данные которые используются в тех самых промежуточных массивах и решениях, используются как входная информация для программы которая в свою очередь использует ее для решения задачи.
Также имеется так называемая условно-постоянная информация(эта информация может быть изменена по желанию пользователя), которая представляет собой файл с исходными данными например той же самой карточки с задачей то есть это говорит о том что в программе предусмотрена такая функция как сохранение исходных данных и их загрузка.
А также имеется постоянная информация – это помощь, которая в процессе работы программы никак не меняется.
1.4. Описание программных средств
1.4.1. Описание среды программирования
Среда Delphi - это сложный механизм, обеспечивающий высокоэффективную работу программиста. В основе нее лежит язык ObjectPascal, разработанный профессором Высшего технического училища (г. Цюрих, Швейцария) Никлаусом Виртом. Предложенный им алгоритмический язык он назвал именем великого французского ученого Блэза Паскаля (1623-1662). В качестве стандартного Pascal был утвержден в 1979 г. Первая версия Delphi была выпущена в начале 1995 года и явилась результатом разработки, которая велась компанией Borlandв течение двух с половиной лет. Программный продукт был назван именем греческого города.
В первую очередь Delphi предназначена для профессионалов-разработчиков корпоративных информационных систем. Однако она предназначен не только для программистов-профессионалов, но и для всех тех, кто используют компьютер с чисто прикладной целью, и кому необходимо быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В Delphi удачно сочетаются средства визуального проектирования приложений и оптимизирующий компилятор. Delphi является единым полноценным средством промышленной разработки систем клиент/сервер. В состав среды входит обширная библиотека компонентов. С другой стороны, программист всегда сможет прибегнуть к низкоуровневым ассемблерным процедурам. Можно создавать приложения в визуальном режиме. Работая с Delphi, программист может с помощью нажатия одной клавиши создать выполняемый файл в формате EXE, однако, при необходимости, можно компилировать и файлы DLL, драйверов устройств, а также консольных приложений.
Синтаксис Delphi включает буквы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова.
Буквы – это буквы латинского алфавита от a до z и от A до Z, а также знак подчеркивания "_". В языке нет различия между заглавными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения. Цифры – арабские цифры от 0 до 9. Каждая шестнадцатеричная цифра имеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0…9, остальные шесть – латинскими буквами A…F или a…f. Специальные символы Delphi – это символы + - * / > < = <> >= <= : ; ' () [] {} и др.