- •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 Транспортная задача
- •Список литературы
5.2 Метод потенциалов
Теорема 3. Если план X* = [хij*]m×n транспортной задачи является оптимальным, то ему соответствует система из m + n чисел ui*, vj*, удовлетворяющих условиям ui* + vj* = cij для хij* >0 и ui* + vj* ≤ cij для хij* = 0 (i=1 , m; j = 1, n)
Числа ui* и vj*, называются потенциалами соответственно i-го поставщика и j-го потребителя.
Доказательство. Транспортную задачу (1) - (3) можно рассматривать как двойственную задачу к некоторой исходной задаче, решаемой на максимум. Построим эту задачу. Так, если i-му ограничению двойственной задачи хi1 + хi2 + ... + xin = ai в исходной задаче соответствует переменная ui (i = l, m), а j-му ограничению х1j + х2j + ... + xmj = bi — переменная vj (j = 1, n), то исходной будет задача: найти максимальное значение функции
при ограничениях
ui + vj ≤ cij (i=1, m; j = 1, n).
Оптимальным для двойственной задачи является план х*, а для исходной у* = (ui*; vj*). Для пары взаимодвойственных задач на основании первой теоремы двойственности имеет место равенство ƒmin = ƒmax, а по второй теореме двойственности выполняются условия ui* + vj* = cij для хij*>0, ui* + vj* ≤ cij для хij* = 0 (i=l, m; j=l , n).
Из теоремы следует, что для оптимального плана транспортной задачи необходимо выполнение условий:
1) каждой занятой клетке в распределительной таблице соответствует сумма потенциалов, равная тарифу этой клетки, т. е. ui + vj = cij;
2) каждой свободной клетке соответствует сумма потенциалов, не превышающая тарифа этой клетки, т. е. ui + vj ≤ cij.
Доказанная теорема носит название теоремы о потенциалах. На ней основан специальный метод решения транспортной задачи, названный методом потенциалов. В соответствии с введенным понятием потенциалов и с учетом связей между моделями двойственных задач каждому поставщику (ограничению по запасам) поставим в соответствие потенциал ui, (i = l, m), а каждому потребителю (ограничению по спросу) — потенциал vj, (j = 1, n).
Согласно теореме о потенциалах, каждой занятой клетке будет соответствовать уравнение ui + vj = сij;. Так как всех занятых клеток должно быть m + n - 1, т. е. на единицу меньше числа потенциалов, то для определения чисел ui, vj, необходимо решить систему из m + n - 1 уравнений ui + vj = сij с m + n неизвестными. Система неопределенная, и, чтобы найти частные решения, одному из потенциалов придаем произвольное числовое значение, тогда остальные потенциалы определяются однозначно. Для облегчения расчетов одному из потенциалов придают обычно значение, равное нулю.
Для исследования плана на оптимальность для каждой свободной клетки проверяется условие ui + vj ≤ сij. Если хотя бы одна свободная клетка не удовлетворяет данному условию, то опорный план не является оптимальным, его можно улучшить за счет загрузки этой клетки. Если таких клеток несколько, то наиболее перспективной для загрузки является клетка, для которой разность (оценка) между тарифом клетки и суммой потенциалов наименьшая, т. е.
sij = сij - (ui + vj) < 0.
Если для всех свободных клеток оценки sij ≥ 0, то опорный план перевозок является оптимальным.
Итак, если для опорного плана перевозок указанное условие оптимальности не выполняется, то за счет загрузки свободной клетки с отрицательной оценкой план перевозок улучшается. Для наиболее перспективной свободной клетки строится замкнутый цикл с вершинами в загруженных клетках. Вершинам этого цикла условно приписываются знаки: свободной клетке - плюс, следующей по часовой или против часовой стрелки занятой клетке - минус, следующей - снова плюс и т. д. Из поставок в клетках цикла с «отрицательными» вершинами выбирается наименьшее количество λ груза, которое и перемещается по клеткам этого цикла: прибавляется к поставкам в положительных вершинах и вычитается из поставок в отрицательных вершинах, в результате чего баланс цикла не нарушится (рис.6. 1).
В общем случае цикл представляет собой замкнутую ломаную линию, состоящую из звеньев, пересекающихся под прямым углом. Каждое звено соединяет две клетки строки (столбца). Цикл включает одну свободную клетку, остальные клетки цикла заняты. В цикле всегда четное число клеток. Для свободной клетки всегда можно построить единственный цикл. Если из занятых клеток образуется цикл, то план перевозок не является опорным. Цикл строится лишь для свободной клетки.
Рис.5. 1.
Сформулируем алгоритм решения транспортной задачи методом потенциалов:
1)построить опорный план по одному из правил,
2)вычислить потенциалы поставщиков и потребителей ui и vj (i = 1, m, j = 1, n), решив систему уравнений вида ui + vj = сij;
3) вычислить оценки sij для всех свободных клеток по формуле sij = сij - (ui + vj). Если все sij ≥ 0, то полученный план является оптимальным. При этом если все sij >0, то полученный оптимальный план единственный. В случае, если хотя бы одна оценка sij = 0, имеем бесчисленное множество оптимальных планов с одним и тем же значением целевой функции.
Пример. Найти оптимальный план перевозок ТЗ, условие которой представлено в табл.5.2.
Таблица 5. 2
Поставщики |
Потребители |
Запас груза,т |
|||
В1 |
В2 |
В3 |
В4 |
||
А1 А2 А3 |
4 6 8 |
10 7 9 |
5 2 12 |
3 8 11 |
60 100 70 |
Потребность в грузе,т |
50 |
55 |
70 |
45 |
230 |
Решение Поскольку запасы грузов превышают спрос потребителей, вводится фиктивный потребитель, спрос которого
т.
Все тарифы фиктивного потребителя равны нулю: Имеем ТЗ закрытого типа, которую решаем методом потенциалов.
Исходное опорное решение получим, например, по правилу «минимального элемента» табл.5.3.
Таблица 5.3
аi\bj |
50 |
55 |
70 |
45 |
10 |
ui |
|||||
60 |
15 |
4 |
|
10 |
|
5 |
45 |
3 |
|
0 |
0 |
100 |
2 0 |
6 |
|
7 |
70 |
2 |
|
8 |
10 |
0 |
2 |
70 |
15 |
8 |
55 |
9 |
|
12 |
|
11 |
|
0 |
4 |
vj |
4 |
5 |
0 |
3 |
2 |
|
Получен невырожденный план. Потенциалы поставщиков и потребителей определены непосредственно в таблице. Оценки свободных клеток следующие:
s12 = 10 – 5 = 5, s13 = 5 – 0 = 5, s15 = 0 + 2 = 2,
s22 = 7 – (2 + 5) = 0, s24 = 8 – (2 + 3) = 3,
s33 = 12 – 4 = 8, s34 = 11 – (4 + 3) = 4,
s35 = 0 – (4 - 2) = -2.
Среди оценок имеется отрицательная (s35 = -2). План перевозок можно улучшить за счет загрузки клетки (3;5). В отрицательных вершинах построенного для клетки (3;5) цикла наименьшее количество груза равно min (10,15) = 10 ед.
После смещения по циклу 10 ед. груза получим новый план перевозок (табл.5.4).
Как и для предыдущего плана перевозок, все потенциалы поставщиков и потребителей определены в таблице. Оценки свободных клеток:
s12 = 10 – 5 = 5, s13 = 5 – 0 = 5, s15 = 0 – (0 - 4) = 4,
s22 = 7 – (2 + 5) = 0, s24 = 8 – (2 + 3) = 3,
s25 = 0 – (2 – 4) = 2, s33 = 12 – 4 = 8,
s34 = 11 – (4 + 3) = 4.
Оценки всех свободных клеток положительны, полученный план перевозок является оптимальным:
со значением целевой функции f(X*) = 1050 ден. ед.
Таблица 5.4
аi\bj |
50 |
55 |
70 |
45 |
10 |
ui |
|||||
60 |
15 |
4 |
|
10 |
|
5 |
45 |
3 |
|
0 |
0 |
100 |
30 |
6 |
|
7 |
70 |
2 |
|
8 |
|
0 |
2 |
70 |
5 |
8 |
55 |
9 |
|
12 |
|
11 |
10 |
0 |
4 |
vj |
4 |
5 |
0 |
3 |
-4 |
|
Загрузка x35 = 10 т для фиктивного потребителя указывает на остаток нераспределенного груза 10 т у поставщика А3.