Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Алгоритм решения задачи минимизации затрат на проект
Алгоритм построен на одновременном решении прямой и двойственной задач линейного программирования: прямая задача решается в терминах времён, а двойственная - в терминах потоков, при этом пропускные способности дуг принимаются равными угловым коэффициентам соответствующих работ. Алгоритм итерационный. На каждой итерации решается задача о максимальном потоке по критическому пути (путям) сети. По итогам такого решения работы, вошедшие в минимальный разрез, могут либо быть сокращены, либо сокращаются их резервы, если таковые существуют. Сокращается соответственно и срок завершения комплекса работ, возрастают затраты на проект. Таким образом появляется новая точка на оптимальной кривой затрат на проект. Особенность реализации алгоритма состоит в том, что количество дуг в сети удваивается и, чтобы различать их, вводится новый индекс k, принимающий значения 1 или 2. Соответственно метка получает четвёртую составляющую: k = 1, 2 . Первая дуга соответствует любой продолжительности работы, кроме минимальной: aij < tij £ bij. Для неё характерен угловой коэффициент с ij1 = с ij. Вторая дуга допустима, только если tij = aij , при этом с ij2 = ¥. Вводится дополнительное условие мечения: узел j может быть помечен из узла i , если дуга ( ijk )ÎA принадлежит дереву максимальных путей из источника s до узла j, т. е. Rч2 ij = tрj - tрi - tij = 0. В качестве исходного на первой итерации принимается нулевой поток. Расчет начинается с tij = bij . Критерием окончания вычислений является прохождение по сети бесконечного потока. Это означает, что критический путь или пути состоят только из вторых дуг с tij = aij и с ij2 = ¥, т. е. предел сокращения достигнут. Пример На рис. 4.6 приведена сетевая модель для решения задачи минимизации затрат на проект. Число дуг в ней уже удвоено. Исходные данные задачи приведены в табл. 4.2. 3 0, 0 10, 29 6, ¥ 0, ¥ b12 = 2, c121 = 8 9, 61 3, 8 1 a12 = 1, c122 = ¥ 2 8, ¥ 5 2, ¥ 6 9, 11 3, ¥ 0, 0 0, ¥ 4
Рис. 4.6. Исходная сетевая модель для минимизации затрат на проект
Таблица 4.2
Решение начинается с расчета ранних сроков свершения событий (табл. 4.3) и частных резервов второго рода для всех работ (табл. 4.4). Здесь следует помнить, что исходной является нормальная длительность всех работ. Таблица 4.3
Таблица 4.4
Как видно, критический путь составляют работы нормальной длительности (к =1): 1-2, 2-3, 3-5, 5-6, Ткр =15, а к дереву максимальных путей относятся все работы (к =1), кроме 2-5 и 4-5, и работа 3-5 (к = 2). Далее расставим метки, следуя по работам дерева максимальных путей и исходя из начального нулевого потока (табл. 4.5). Таблица 4.5
Из таблицы видно, что на первой итерации поток увеличится на 8 единиц по единственному критическому пути и составит: f121 = f231 = f352 = f561 =8. Чтобы убедиться, максимален ли этот поток для первой итерации, повторим процедуру расстановки меток (табл. 4.5). Она показывает, что увеличение потока невозможно, так как дуга 1-2(1) насыщена, а дуга 1-2(2) недопустима для мечения (R122 ¹ 0); в минимальный разрез входят дуги: 1-2(1) и 1-2(2). Далее следует произвести сокращение длительностей работ, для чего: 1) отыскивается величина сокращения d, как наименьшее ненулевое значение Rijk (табл.4.4) для работ минимального разреза; здесь d =1; 2) ранние сроки всех непомеченных событий сокращаются на d; здесь это события {2,3,4,5,6}; 3) критический путь также сокращается на d; здесь Ткр = 15 - 1 = 14; 4) длительности работ пересчитываются из условия tij = min{tij; tрj - tрi}; практически изменения могут коснуться только работ минимального разреза; здесь t12 = min{2; 1- 0}=1= а12 . Сокращение длительностей работ сопровождается приращением затрат на их выполнение, которое следует также отыскать. Поскольку сокращенной оказалась лишь одна работа, D Р(1) = D t12 с121 = 1´ 8=8. Аналогичным образом выполняются все остальные итерации, а ход решения задачи отражается в пяти таблицах (табл. 4.6, 4.7, 4.8, 4.9, 4.10). Отметим еще одну особенность процесса решения этой задачи. Если пометить событие или увеличить поток к нему можно и по первой и по второй дуге, то такое мечение или увеличение потока выполняется только по второй дуге. Таблица 4.6
Таблица 4.7
Таблица 4.8
Особый интерес представляют вторая и четвертая итерации. Вторая отличается тем, что в результате ее выполнения поток не увеличился, и повторное мечение не потребовалось. На четвертой итерации, наоборот, поток возрос дважды по двум критическим путям, что нашло отражение и в таблице меток (табл. 4.8), и в таблице дуговых потоков (табл. 4.9). На пятой итерации поток бесконечной величины прошел от начального события до завершающего, что свидетельствует о завершении вычислений. В результате по данным табл. 4.8 построена “кривая затрат на проект” (рис. 4.7). Таблица 4.9
Таблица 4.10
Полученное решение задачи свидетельствует о том, что не все работы проекта необходимо максимально сокращать для получения оптимального результата. И чем меньше дополнительные ресурсы, вкладываемые в проект, тем короче перечень работ, в которые их следует вкладывать.
Рис. 4.7. График оптимального вложения средств в проект
4.5. Задачи для самоконтроля
1. На рис. 4.8 показана модель транспортной сети. Около дуг проставлены их пропускные способности. Требуется найти величину максимального потока груза, который можно пропустить по сети, и указать минимальный разрез, лимитирующий увеличение потока. Начальный поток задан: f14 = f45 = f56 = 5.
7 31 46 1 4 10 1 3 6 18 2 6 12 9 7 16 8 11 23 11 5 14 5 19 7 2 3 5 2 5 4 3 6 9 4 20
Рис. 4.8. Исходная модель Рис. 4.9. Исходная модель транспортной сети к задаче 1 транспортной сети к задаче 2 2. Решить предыдущую задачу с исходными данными, приведенными на рис. 4.9. В качестве исходного принять нулевой поток. 3. Решить задачу 1 с исходными данными, приведенными на рис. 4.10. В качестве исходного принять поток: f12 = f23 = f34 = f45 = 2. 9 4 7 5 1 2 4 3 1 2 5 3 Рис. 4.10. Исходная модель транспортной сети к задаче 3
4. Составьте задачу размерностью n = 8, k = 16 самостоятельно и решите ее. Учтите, что распределение дуговых потоков в окончательном решении задачи может быть неоднозначным. 5. Исходные данные для решения задачи оптимизации затрат на проект представлены в табл. 4.11÷4.14. Решить задачи и построить «кривую затрат на проект». Стоимости выполнения работ при нормальной длительности считать равными нулю. Таблица 4.11
Таблица 4.12
Таблица 4.13
Таблица 4.14
9. Построить «кривую затрат на проект» по данным табл. 4.15 – 4.16.
Таблица 4.15
Таблица 4.16
Тема 5. СЕТЕВОЙ АНАЛИЗ С ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ПАКЕТА Win QSB 5.1. Общая характеристика пакета Win QSB |
Последнее изменение этой страницы: 2019-03-31; Просмотров: 312; Нарушение авторского права страницы