Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samples / Stacionar / системный анализ / системный анализ.doc
Скачиваний:
46
Добавлен:
25.03.2015
Размер:
380.42 Кб
Скачать

13. Расчет кратчайшего пути календарного плана.

Сетевое планирование и управление (СПУ) программами включает три основных этапа: структурное планирование, календарное планирование и оперативное управление.

Конечной целью этапа календарного планирования является построение календарного графика, определяющего моменты начала и окончания каждой операции, а также ее взаимосвязи с другими операциями программы. Кроме того, календарный график должен давать возможность выявлять критические операции (с точки зрения времени), которым необходимо уделять особое внимание, чтобы закончить программу в директивный срок. Что касается некритических операций, то календарный план должен позволять определять их резервы времени, которые можно выгодно использовать при задержке выполнения таких операций или с позиций эффективного использования ресурсов.

Календарное планирование использует граф, в котором стрелками отражен порядок выполнения работ (кружочков). На каждой стрелке написано время выполнения работы. Критический путь – с максимальным временем выполнения работ (время, за которое все работы по любому будут выполнены). Нахождение критического пути в 3 этапа:

1 этап: прямой проход от начальной работы до завершающей. Рисуем домики. В первом домике в комнате сразу 0. Далее смотрим смежный кружок 2 c одной входящей стрелкой. В него входит только 1 стрелка, значит в комнату записываем длину этой стрелки – 3. В кружок 3 входит две стрелки – выбираем max{длина входящей стрелки+комната домика кружочка, из которого она выходит} = max{2+0; 3+6}=9. Домик 4 заполняем, проверяя три стрелки: max{3+3; 5; 9+4}=13 – это время раннего начала

2 этап: идем назад, ищем время позднего окончания. Заполняем крыши домиков – смотрим по выходящим стрелкам. Крыша конца (4) = комнате =13. Другая крыша = min{комната на конце выходящей стрелки – длина стрелки}. Крыша 2 = min{13-3; 9-6}=3. Крыша 3 = {13-4}=9 (только одна выходящая стрелка). Крыша 1 = min{3-3; 13-5; 9-2}=0.

3 этап: ищем критический путь. “Подозрительные” домики – если крыша равна комнатке, проверяем стрелки между такими домиками: если комнаты отличаются на длину стрелки, то такая стрелка принадлежит искомому критическому пути. Критические на примере: домик 2 – домик 1 = 3, домик 3 – домик 2 = 6, домик 4 – домик 3 = 4. Значит критический путь: 1-2-3-4. Его длина равна сумме всех стрелок, входящих в него = 3+6+4=13 = комнате домика 4.

5. Прямая и двойственная задача линейного программирования.

Двойственная задача – это вспомогательная задача ЛП, формулируемая с помощью определенных правил непосредственно из условий исходной, или прямой, задачи.

Формулировка двойственной задачи ЛП применима к любой форме представления прямой задачи. В основу такой формулировки положен тот факт, что использование симплекс-метода требует приведения любой задачи ЛП к стандартной форме. Так как все методы вычислений, основанные на соотношениях двойственности, предполагают непосредственное использование симплекс-таблиц, формулировка двойственной задачи в соответствии со стандартной формой прямой задачи представляется достаточно логичной. Как, будет показано ниже, при такой формулировке двойственной задачи автоматически учитываются знаки двойственных переменных, что в других случаях нередко вызывает недоразумения. Обобщенная формулировка двойственной задачи применима ко всем формам прямой задачи.

Прямая задача ЛП в стандартной форме записывается следующим образом:

максимизировать или | z=cjxj |

минимизировать | аij xj=b, i=1,2....m |

при ограничениях | xj>=0, j=1,2....n |

Замечу, что в состав n переменных xj включаются также избыточные и остаточные переменные. Чтобы сформулировать условия двойственной задачи, расположим коэффициенты, фигурирующие в условиях прямой задачи, так, как схематически показано в ТАБЛИЦЕ.

Переменные прямой задачи: х1 х2 ... хj ... xn

C1

C2 ...

Cj

... Cn

a11

a12 ...

a1j

...

a1n

b1

...

...

...

...

...

...

am1

am2 ...

amj

...

amm

bm

j-oe ограничение коэффициенты двойственной задачи целевой функции двойственной задачи.

Коэффициенты при некоторой переменной, фигурирующие в ограничениях прямой задачи, становятся коэффициентами левой части соответствующего ограничения двойственной задачи, а коэффициент, фигурирующий при той же переменной в выражении для целевой функции прямой задачи, становится постоянной правой части этого же ограничения двойственной задачи.

Из указанных правил построения двойственной задачи следует, что она имеет m переменных (y1, y2, ., уm) и n ограничений (соответствующих n переменным прямой задачи xl, x2, ., xn).

Рассмотрим теперь, как формируются остальные условия двойственной задачи: направление оптимизации, ограничения и знаки двойственных переменных. В стандартной формулировке прямой задачи все ограничения записываются в виде равенств (с неотрицательной правой частью), а все переменные неотрицательные. Поэтому существенным различием прямых задач, записанных в стандартной форме, является только направление оптимизации.

Двойственная задача – вспомогательная, которая формируется по определенным правилам из прямой задачи. Если размерность задачи получается меньше, чем обратной, то решение прямой может быть более просто найдено через двойственную задачу.

Кроме того, в то время как в прямой задаче Х≥0, для двойственной задачи отсутствует ограничение на знак переменных.

Двойственная задача получается транспонированием матрицы прямой задачи.

При этом столбец bi прямой задачи станет строкой коэффициентов целевой функции обратной задачи.

Общие правила:

  1. Каждому ограничению прямой задачи соответствует переменная двойственной задачи.

  2. Каждой переменной прямой задачи соответствует ограничение двойственной задачи.

  3. Коэффициенты при переменных в ограничениях прямой задачи становятся коэффициентами левых частей двойственной задачи. А коэффициенты при тех же переменных из целевой функции прямой задачи становятся константами правой части ограничений двойственной задачи.

  4. В двойственной задаче меняется направление экстремума и снимается ограничение на знак переменных.

Удобнее преобразовывать в двойственную задачу, приведенную к стандартному виду (к форме равенств). Тогда: знаки при условиях ограничений двойственной задачи: для min нужно расширять ОДР, поэтому ставим ≥, для max – знак ≤.

Но можно и преобразовывать исходную задачу (с неравенствами). Тогда при транспонировании знаки сменяются на противоположные (≥ на ≤).

max Z = f (x) => min ω = f1 (y)

AX=B => A1Y = B1

X≥0

Затем получившаяся задача решается обычным симплекс-методом.

Решение одной из задач (прямой или обратной) дает одновременно и решение второй. Существуют формулы, связывающие прямую и двойственную задачу.

Для этого:

  1. Обе таблицы приводятся к одинаковой размерности переменных (введением дополнительных переменных в ту из задач, где переменных меньше, и решением задачи на w ‑> min), а затем определяется РАНГ.

  2. РАНГ – количество базисных (не равны 0 коэффициенты целевой функции) переменных: R – для прямой задачи; К – для обратной.

  3. Формулы соответствия решений прямой и обратной задачи:

yi = ZR+i

xi = - ωK+i