
- •К омпактные множества. Полунепрерывность снизу. Теорема Вейерштрасса.
- •Построение моделей. Типы моделей
- •Выпуклые множества. Выпуклые функции. Критерии выпуклости функции
- •Постановка задачи оптимизации. Необходимое условие экстремума. Достаточное условие экстремума
- •Определение поверхности (линии) уровня и направления наискорейшего роста целевой функции. Критерий оптимальности
- •Задачи на условный экстремум. Метод множителей Лагранжа. Необходимое условие существования условного локального экстремума функции
- •Задача выпуклого программирования. Теорема Куна-Таккера
- •Постановка задач линейного программирования. Формы записи злп
- •Предмет исследования операций
- •Основное неравенство теории двойственности. Основная теорема двойственности
- •Симметричные и несимметричные двойственные пары задач линейного программирования. Вторая теорема двойственности
- •Правило нахождения разрешающего элемента при использовании симплекс-метода. Экономическая интерпретация выбора направляющей строки и столбца
- •Правило построения новой симплексной таблицы. Как выписывается улучшенное решение из новой таблицы
- •Принятие решений в условиях неопределенности. Критерий Лапласа. Критерий Гурвица
- •Критерий Вальда. Определение риска при принятии решений. Построение матрицы рисков. Критерий Сэвиджа
- •Двойственность задач линейного программирования. Правило построения двойственной задачи
- •Двойственный симплекс-метод
- •Алгоритм двойственного симплекс-метода
- •Задача коммивояжера. Метод ветвей и границ
- •Задача о назначениях. Венгерский метод
- •Метод Гомори
- •Задачи нахождения кратчайшего пути. Алгоритм Дейкстры
- •Сетевые модели
- •Задача нахождения кратчайшего пути. Алгоритм Флойда
- •Математическая постановка и разрешимость транспортной задачи
- •Метод северо-западного угла
- •Метод минимального элемента
- •Метод потенциалов
- •Задача о максимальном потоке. Алгоритм нахождения максимального потока
- •Перебор разрезов
- •Экономическая интерпретация двойственных переменных. Анализ устойчивости двойственных оценок
- •Метод искусственного базиса (модифицированный симплекс метод)
Сетевые модели
Сетевая модель – это графическое представление проекта. Она позволяет найти минимальные сроки завершения проекта и отдельных работ, а также определить множество критических работ, увеличение продолжительности выполнения любой из которых приводит к увеличению времени выполнения всего проекта.
Сети или сетевые модели имеют широкое практическое применение. Из всего разнообразия методов и моделей рассмотрим здесь лишь метод критического пути (МКП). Сеть в этом случае – это графическое отображение комплекса работ. Основными элементами сети здесь являются события и работы. Событие – это момент завершения процесса, отображающий отдельный этап выполнения проекта. Комплекс работ начинается с исходного и заканчивается завершающим событием. Работа – это протяжённый во времени процесс, необходимый для свершения события и, как правило, требующий затрат ресурсов. События на сетевом графике обычно изображаются кружками, а работы – дугами, соединяющими события. Событие может свершиться только тогда, когда закончатся все работы, ему предшествующие. В сетевом графике не должно быть "тупиковых" событий, за исключением завершающего, не должно быть событий, которым не предшествует хотя бы одна работа (кроме исходного), не должно быть замкнутых контуров и петель, а также параллельных работ.
Основные параметры сетевых моделей — это критический путь, резервы времени событий, работ и путей. Кроме этих показателей имеется ряд вспомогательных, которые являются исходными для получения дополнительных характеристик по анализу и оптимизации сетевого плана комплекса работ. При расчетах применяют следующие обозначения параметров сетевой модели:
tjp — ранний срок свершения j-го события;
tjn — поздний срок свершения j-го события;
Rj — резерв времени на свершение j-го события;
tijP.H — ранний срок начала работы (i,j);
tijP.O — ранний срок окончания работы (i,j);
tijП.H — поздний срок начала работы (i,j);
tijП.О — поздний срок окончания работы (i,j);
rijП — полный резерв времени работы (i,j);
rijC.B — свободный резерв времени работы (i,j),
kijH — коэффициент напряженности работы (i,j);
ТП — продолжительность пути LП; TП = t(LП);
TКР — продолжительность критического пути LКР;
R(Lп) — полный резерв времени пути Lп.
Задача нахождения кратчайшего пути. Алгоритм Флойда
Этот алгоритм более общий по сравнению с алгоритмом Дейкстры, так как он находит кратчайшие пути между любыми двумя узлами сети. В этом алгоритме сеть представлена в виде квадратной матрицы с n строками и nстолбцами. Элемент (i, j) равен расстоянию dij от узла i к узлу j, которое имеет конечное значение, если существует дуга (i, j), и равен бесконечности в противном случае.
Покажем сначала основную идею метода Флойда. Пусть есть три узла i, j и k и заданы расстояния между ними (рис. 1). Если выполняется неравенство dij + djk < dik, то целесообразно заменить путь i -> k путем i -> j -> k. Такая замена (далее ее будем условно называть треугольным оператором) выполняется систематически в процессе выполнения алгоритма Флойда.
Алгоритм Флойда требует выполнения следующих действий.
Шаг 0. Определяем начальную матрицу расстояния D0 и матрицу последовательности узлов S0. Диагональные элементы обеих матриц помечаются знаком "-", показывающим, что эти элементы в вычислениях не участвуют. Полагаем k = 1:
Начальная
ситуация
Основной шаг k. Задаем строку k и столбец k как ведущую строку и ведущий столбец. Рассматриваем возможность применения треугольного оператора ко всем элементам dij матрицы Dk-1. Если выполняется неравенство dik+ dkj < dij, (i <> k, j <> k, i <> j), тогда выполняем следующие действия:
создаем матрицу Dk путем замены в матрице Dk-1 элемента dij на сумму dik + dkj,
создаем матрицу Sk путем замены в матрице Sk-1 элемента sij на k. Полагаем k = k + 1 и повторяем шаг k.
Поясним действия, выполняемые на k-м шаге алгоритма, представив матрицу Dk-1 так, как она показана на рисунке 3. На этом рисунке строка k и столбец k являются ведущими. Строка i - любая строка с номером от 1 до k - 1, а строка p - произвольная строка с номером от k + 1 до n. Аналогично столбец j представляет любой столбец с номером от 1 до k - 1, столбец q - произвольный столбец с номером от k + 1 до n. Треугольный оператор выполняется следующим образом. Если сумма элементов ведущих строки и столбца (показанных в квадратах) меньше элементов, находящихся в пересечении столбца и строки (показанных в кружках), соответствующих рассматриваемым ведущим элементам, то расстояние (элемент в кружке) заменяется на сумму расстояний, представленных ведущими элементами:
Алгоритма
Флойда
После реализации n шагов алгоритма определение по матрицам Dn и Sn кратчайшего пути между узлами i и j выполняется по следующим правилам.
Расстояние между узлами i и j равно элементу dij в матрице Dn.
Промежуточные узлы пути от узла i к узлу j определяем по матрице Sn. Пусть sij = k, тогда имеем путь i -> k -> j. Если далее sik = k и skj = j, тогда считаем, что весь путь определен, так как найдены все промежуточные узлы. В противном случае повторяем описанную процедуру для путей от узла i к узлу k и от узла k к узлу j.