
- •Введение. Экономико-математические методы и модели Основные понятия экономико-математического моделирования
- •Этапы экономико-математического моделирования
- •Классификация экономико-математических моделей
- •1. Обзор методов сетевого планирования и управления
- •1.1. Развитие методов сетевого планирования и управления
- •1.1.1. Назначение систем сетевого планирования и управления
- •1.1.2. Возникновение методов сетевого планирования и управления
- •1.1.3. Практическое применение методов сетевого планирования и управления. Программные средства, основанные на методах сетевого планирования и управления
- •1.2. Классификация систем сетевого планирования и управления
- •1.3. Элементы и параметры сетевого графика
- •1.3.1. Построение сетевой модели проекта
- •1.3.2. Правила построения сетевых графиков
- •1.3.3. Временные параметры сетевых графиков
- •1.4. Оптимизация сетевых графиков
- •1.4.1. Типы оптимизационных задач
- •1.4.2. Оптимизация сетевого графика по стоимости. Постановка задачи оптимизации. Методы оптимизации.
- •1.5. Алгоритмы, использованные для решения задачи оптимизации проекта по стоимости
- •1.5.1. Общие принципы решения задачи
- •Задача о максимальном потоке
- •1.5.2. Алгоритм поиска ранних сроков свершения событий
- •1.5.3. Алгоритм Келли (оптимизация по критерию "время-стоимость")
- •Алгоритм решения параметрической задачи
- •Определяется новый оптимальный план по формулам
- •1.5.4. Алгоритм поиска минимальной стоимости при заданной продолжительности критического пути Тд
- •2. Описание программыnet_planning
- •2.1. Краткое описание возможностей программы
- •2.2. Постановка задачи контрольного примера
- •2.3. Решение контрольного примера на основе алгоритма Келли
- •2.4. Решение задачи с использованием программыnet_planning
- •Заключение
- •Литературные источники
- •Приложение а. Связи между различными вариантами классификации систем сетевого планирования и управления
- •Приложение б. Текст программы
- •Приложение в. Текстовый файл отчета
- •Приложение г. Структурные схемы алгоритмов и основных процедур.
Определяется новый оптимальный план по формулам
tij'= tij—ij,
Tj'= Tj— j.
Эти значения tij' и Tj' являются решением параметрической задачи для плана продолжительностью Ткр=—, причем 0<<0.
Полагаем =0 и определяем структуру получаемого при этом оптимального плана. Критический путь в сети изменится.
Далее повторяются описанные выше действия, начиная с шага 2:
Составляется задача о максимальном потоке. Сократился Ткр и изменились некоторые tij, значит, изменится распределение работ по множествам E1, E2, Q1, Q2, Q3, Q4.
Таблица ограничений теперь заполняется по следующим правилам:
если работа (i,j)E1Q1, то
а) если i{u} и j{v}, или работа (i,j) не попала в сечение, то в клетку ij
записывается aij, а в клетку ji — 0;
б) если i{v} и j{u}, то в клетку ij записывается 0, а в клетку ji —
число aij;
если работа (i,j)E1Q2, то в клетку ij записывается , а в клетку ji —0;
если работа (i,j)E1Q3, то в клетку ij записывается , а в клетку ji —0;
если работа (i,j)E1Q4, то в клетки ij и ji записывается 0;
если работа (i,j)E2, то клетки ij и ji не заполняются.
Шаги 2, 3 и 4 повторяются до тех пор, пока не приходим к ситуации, когда для задачи о максимальном потоке можно построить путь с пропускной способностью h=. Это означает, что не существует плана с продолжительностью критического пути меньшей, чем продолжительность плана, полученного на предыдущем шаге.
1.5.4. Алгоритм поиска минимальной стоимости при заданной продолжительности критического пути Тд
Каждый раз при повторении шагов 2, 3, 4 алгоритма Келли в сети изменяется критический путь и структура оптимального плана. Продолжительность критического пути для следующего шага Tn ' будет равна
Tn ' = Tn — 0 , (1.17)
где Tn — продолжительность критического пути, полученного на текущем шаге. Если
Tn ' <Тд ≤ Tn,
то из условия
Тд = Tn — (1.18)
мы можем найти параметр , 0≤≤0 , соответствующий Ткр=Тд. Обозначим его *.
Структура оптимального плана с продолжительностью критического пути Tn характеризуется уже рассчитанными параметрами и . Зная *, можно получить структуру оптимального плана, при котором продолжительность критического пути будет равна Тд , по формулам
tij*= tij—*ij,
Tj*= Tj— *j. (1.19)
2. Описание программыnet_planning
2.1. Краткое описание возможностей программы
Программа net_planning реализует алгоритмы, описанные в разделе 1.5.
Интерфейс программы организован в виде многостраничного блокнота (рис. 2.1). Данные на страницы вводятся последовательно; пока на текущую страницу данные не введены, ввод на другие страницы невозможен.
На страницу "размер" вводятся номер завершающего события (события должны быть пронумерованы последовательно, начиная с события 0), и количество работ.
На страницу "события " вводятся названия событий (по умолчанию имя события i — событиеi). На страницу "работы " вводятся названия работ (по умолчанию имя работы i — работаi).
На странице "данные о работах" для работы (i,j) из списков событий выбираются события i и j, а также вводятся aij, bij, Dij, dij. Ввод данных и проверка правильности ввода осуществляется по кнопке "ввод". После того, как введены данные о всех работах, становится доступной страница "просмотр данных". На ней отображаются все данные о работах. Если данные о какой-либо работе необходимо изменить, то нужно выделить имя этой работы, что приведет к возврату на страницу "данные о работах", где можно изменить данные и осуществить ввод новых данных посредством нажатия кнопки "изменить".
Кроме того, на странице "просмотр данных" вводится значение Тд в окно ввода "критический путь". Запуск программы осуществляется нажатием кнопки "расчет". На странице "просмотр данных" появляются значения максимально и минимально возможных Ткр для данного проекта, а на странице "результат" выводятся длительности и стоимости работ оптимального плана при Ткр=Тд, а также ранние сроки свершения событий и общая стоимость проекта.
В случае, если невозможно выполнить проект за время, равное Тд, программа выдает сообщение об этом (рис 2.2). Если в сети есть циклы или описанный граф не является сетью, об этом также выводятся сообщения (рис 2.3, а,б).
В программе осуществляется контроль за следующими ошибками при вводе данных:
вводимое количество событий или работ оказалось меньше 2 или больше 100 (рис 2.4, а);
строку в окне ввода невозможно преобразовать в число (рис 2.4, б);
в списке событий или работ имеются объекты с одинаковыми именами (рис. 2.4, в);
в качестве начального или конечного события для работы введено имя несуществующего события (рис 2.4, г);
в качестве начального и конечного событий для работы выбраны события, уже связанные работой ( рис 2.4, д);
для какой-либо работы dij>Dij (рис 2.4, е).
Исходные данные, промежуточные и итоговые результаты выводятся в текстовый файл net_report.txt, создаваемый в папке, где находится исполняемый файл программы.
Рис
2.1 Интерфейс программыnet_planning
Рис
2.2 Сообщение о том, что задача не имеет
решения для заданного Тд
а б
Рис
2.3 Сообщения об ошибках в математической
модели
а
б
в
г
д
е
Рис 2.4 Сообщения об ошибках ввода данных