Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовые по ОАУ / Методы сетевого планирования и управления. Оптимизация проекта по стоимости.doc
Скачиваний:
296
Добавлен:
15.06.2014
Размер:
9.18 Mб
Скачать

Определяется новый оптимальный план по формулам

tij'= tij—ij,

Tj'= Tj— j.

Эти значения tij' и Tj' являются решением параметрической задачи для плана продолжительностью Ткр=—, причем 0<<0.

Полагаем =0 и определяем структуру получаемого при этом оптимального плана. Критический путь в сети изменится.

Далее повторяются описанные выше действия, начиная с шага 2:

Составляется задача о максимальном потоке. Сократился Ткр и изменились некоторые tij, значит, изменится распределение работ по множествам E1, E2, Q1, Q2, Q3, Q4.

Таблица ограничений теперь заполняется по следующим правилам:

  1. если работа (i,j)E1Q1, то

а) если i{u} и j{v}, или работа (i,j) не попала в сечение, то в клетку ij

записывается aij, а в клетку ji — 0;

б) если i{v} и j{u}, то в клетку ij записывается 0, а в клетку ji —

число aij;

  1. если работа (i,j)E1Q2, то в клетку ij записывается , а в клетку ji —0;

  2. если работа (i,j)E1Q3, то в клетку ij записывается , а в клетку ji —0;

  3. если работа (i,j)E1Q4, то в клетки ij и ji записывается 0;

  4. если работа (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 Сообщения об ошибках ввода данных

Соседние файлы в папке Курсовые по ОАУ