- •1. Теория графов
- •1.1 Остовные деревья минимального веса.
- •Алгоритм Прим
- •Алгоритм Краскал
- •1.2 Нахождение кратчайших путей между двумя заданными вершинами. Алгоритм Дийкстры
- •Алгоритм Дийкстры
- •Модифицированный алгоритм Дийкстры
- •1.3 Нахождение кратчайших цепей между всеми парами узлов в сети
- •Алгоритм Флойда (Floyd r. W.)
- •Модификация алгоритма Флойда
- •1.4 Построение потоков максимальной мощности. Алгоритм Форда-Фалкерсона
- •Алгоритм Форда-Фалкерсона
- •1.5 Обобщенные задачи о потоке
- •1.5.1 Построение потока в сети с двойным ограничением потока по дугам
- •1.5.2 Построение потока в сети с пропускными способностями узлов
- •1.5.3 Построение потока в сети с несколькими источниками-стоками
- •1.5.4 Построение потока в сети с неориентированными ребрами
- •1.6 Определение потока заданной величины минимальной стоимости. Алгоритмы Басакера-Гоуэна, Клейна
- •Алгоритм Басакера-Гоуэна (Basaker r.G., Gowen p.J)
- •Алгоритм Клейна (Klein m.)
- •2 Сетевое планирование
- •2.1 Построение сетевых моделей
- •2.2 Расчет и анализ сетевых моделей
- •Задача №1
- •Задача №2
- •I. Поиск критических путей
- •II. Поиск резервов работ
- •Правило №2.1
- •3 Линейное программирование
- •3.1 Примеры задач лп
- •3.2 Свойства решений задач линейного программирования
- •3.3 Двумерные задачи линейного программирования. Графический метод решения. Исследование на разрешимость
- •3.3.1 Построение области допустимых решений целевой функции f.
- •3.3.2 Построение прямой уровня
- •3.3.3 Максимизация целевой функции f
- •3.4 Симплекс-метод.
- •3.4.1 Построение начального опорного плана.
- •3.4.2 Симплексные таблицы
- •3.4.3 Примеры решения задач симплекс-методом
- •4. Теория двойственности в линейном программировании
- •4.1 Понятие двойственности. Построение пары взаимно двойственных задач
- •4.2 Теоремы двойственности и их экономическое содержание
- •4.3 Анализ решения задач линейного программирования
- •5. Транспортная задача
- •5.1 Постановка транспортной задачи в матричной форме. Построение исходного опорного плана
- •5.2 Метод потенциалов
- •5.3 Дополнительные условия в транспортных задачах.
- •6. Дискретное программирование.
- •6.1 Метод Гомори для решения задачи целочисленного линейного программирования
- •7. Динамическое программирование
- •7.1 Многошаговые процессы в динамических задачах
- •7.2 Принцип оптимальности и рекуррентные соотношения
- •7.3 Вычислительная схема динамического программирования
- •7.4 Оптимальное распределение средств на расширение производства
- •8. Матричные игры
- •8.1 Парные матричные игры с нулевой суммой
- •8.2 Платежная матрица
- •Нижняя и верхняя цена игры
- •8.3 Смешанные стратегии
- •8.3 Решение матричной игры сведением к задаче линейного программирования
- •8.4 Решение матричной игры графическим методом
- •8.5 Приближенный метод решения матричных игр
- •Практические работы Практическая работа №1 Построение остовного дерева графа. Нахождение найкратчайшего расстояния между заданными вершинами графа
- •Практическая работа №2 Нахождение наикратчайших расстояний между всеми парами вершин графа. Алгоритм Флойда.
- •Практическая работа №3
- •Практическая работа №4 Нахождение потока заданной величины минимальной стоимости. Алгоритм Басакера-Гоуэна
- •Практическая работа №7 Оптимизация проекта по времени.
- •Практическая работа №8
- •Практическая работа №9 Оптимизация целевой функции с помощью двухфазного симплекс метода.
- •Практическая работа №10 Решение двойственных задач. Экономическая интерпретация задач линейного программирования.
- •Практическая работа №11 Решение транспортных задач.
- •Практическая работа №12 Дополнительные условия в транспортных задачах
- •Практическая работа №13 Метод Гомори для решения задачи целочисленного линейного программирования.
- •Практическая работа №14
- •Практическая работа №15 Решение матричных игр в чистых стратегиях
- •Практическая работа №16 Графический метод решения матричных игр.
- •Каркас минимального веса. Метод р. Прима.
- •Кратчайшие пути
- •Лабораторная работа №2 Кратчайшее расстояния от заданной вершины до всех остальных вершин графа.
- •Алгоритм Дийкстры.
- •Пути в бесконтурном графе.
- •Лабораторная работа №3 Кратчайшие пути между всеми парами вершин графа.
- •Алгоритм Флойда.
- •Лабораторная работа №4 Построение потока максимальной мощности.
- •Потоки в сетях.
- •Метод построения максимального потока в сети.
- •Лабораторная работа №5 Симплекс метод
- •Лабораторная работа №6 Транспортная задача
- •Список литературы
3.2 Свойства решений задач линейного программирования
1. Допустимое множество задачи ЛП либо пусто, либо является выпуклым многогранником в Rn (как пересечение полупространств, описываемых неравенствами (2)-(3)). Оно может быть как ограниченным, так и неограниченным; в любом случае это замкнутый многогранник.
2. Если допустимое множество не пусто, а целевая функция ограничена сверху (для задачи максимизации, а для задачи минимизации - ограничена снизу) на этом множестве, то задача ЛП имеет оптимальное решение.
3. Оптимальные решения задачи ЛП (если они существуют) всегда находятся на границе допустимого множества. Точнее, если существует единственное оптимальное решение, то им является какая-либо вершина многогранника допустимых решений; если две или несколько вершин являются оптимальными решениями, то любая их выпуклая комбинация также является оптимальным решением (т.е. существует бесконечное множество точек максимума или минимума).
Методами решения задач ЛП являются:
1. графический метод (в случае двух переменных),
2. симплекс-метод или его разновидности (в общем случае).
3.3 Двумерные задачи линейного программирования. Графический метод решения. Исследование на разрешимость
Двумерная задача линейного программирования - задача линейного программирования, количество переменных которой равно 2.
Переменные принято обозначать х1 и х2. Рассмотренная ранее задача линейного программирования является двумерной.
В общем виде двумерную задачу линейного программирования можно представить в следующем образом.
Определить значение переменных х1 и х2, при которых линейная целевая функция F достигает максимум (минимум)
F=с1x1 + с2х2 → max (min)
Среди ограничений могут одновременно встречаться знаки ≥, ≤ и =. Коэффициенты aij, bi, cj, i = l..m, j =1,2 любые действительные числа (возможно и 0).
Двумерные задачи линейного программирования обычно решаются графически.
Пример 1. Решим полученную двумерную задачу линейного программирования графически.
F=2x1 + 4х2 → max
Решение
3.3.1 Построение области допустимых решений целевой функции f.
Построим прямоугольную систему координат, где ось ОХ обозначим за х1, a OY - за х2. Так как, согласно условию (3) х1 и х2 неотрицательны, то можно ограничится рассмотрением первого квадранта.
Рассмотрим первое ограничение: 3x1 + 4х2 ≤ 1700 (1)
Заменим в данном ограничении знак неравенства знаком равенства и построим прямую.
3x1 + 4х2 =1700 (1')
Для этого найдем две точки, принадлежащие данной прямой. Пусть, например, х1=0, тогда подставив 0 в (1') получим 4х2=1700 или х2=425.
(0: 425) - координаты первой точки, принадлежащей прямой.
Пусть х2 = 0, то 3x1 = 1700, следовательно, x1=567.
(567: 0) - координаты второй точки, принадлежащей прямой. Отметим эти точки на числовых осях.
Аналогично, для второго ограничения:
2x1 + 5х2 ≤ 1600 (2)
2x1 + 5х2 = 1600 (2')
При x1 =0, х2=320, (0; 320)
При х2=0, x1 =800 (800; 0)
Построим данные прямые (на рисунке они соответственно обозначены (1') и (2'))
Теперь найдем на чертеже такие полуплоскости, которые соответствуют неравенствам (1) (2).
Прямая (1') 3x1 + 4х2 = 1700 делит координатную плоскость на две полуплоскости. Одна полуплоскость расположена выше прямой, вторая ниже. Чтобы найти ту полуплоскость, которая соответствует неравенству (1), необходимо взять какую либо точку, принадлежащую одной из полуплоскостей и подставить ее координаты в неравенство. Если неравенство будет верным, то данная полуплоскость является искомой.
Например, возьмем точку с координатами (0; 0) и подставим ее координаты в неравенство (1) 3x1 + 4х2 ≤ 1700 или 0+0 ≤ 1700. Получается 0 ≤ 1700 данное неравенство является верным, следовательно, неравенству (1) удовлетворяет полуплоскость, лежащая ниже прямой (1').
Аналогично, поступим для неравенства (2) 2x1 + 5х2 ≤ 1600. Возьмем точку с координатами (0; 0). Получается 0 ≤ 1600 - данное неравенство верно. Неравенству (2) удовлетворяет полуплоскость, расположенная ниже прямой (2').
Стрелки на каждой границе, с какой стороны прямой выполнены ограничения. Учитывая, то что x1 и х2 являются неотрицательными, получаем, что четырехугольник ОАВС является областью, содержащей точки, для которых выполнены условия, заключенные в фигурные скобки.
Точки, лежащие внутри и на границе этой области являются допустимыми решениями, но нам нужны, только те, при которых функция F будет принимать максимальное значения.