
- •Вопросы к экзамену для ба 4 (озо) модели и методы принятия решений
- •Вопрос 1. Основные понятия теории принятия решений. Современный этап развития теории принятия решений.
- •Вопрос 2. Графы. Способы задания графов.
- •Вопрос 3. Задача о максимальном потоке на сети. Теорема Форда-Фалкерсона. Алгоритм Форда нахождения максимального потока.
- •Вопрос 4. Задача о потоке минимальной стоимости. Алгоритм Басакера-Гоуэна нахождения оптимального потока.
- •Вопрос 5. Задача о кратчайшем маршруте и метод ее решения.
- •Вопрос 6. Метод потенциалов для решения транспортной задачи в сетевой постановке.
- •7. Основные понятия динамического программирования. Задачи, приводящие к динамическому программированию.
- •Вопрос 9. Основные понятия динамического программирования Задача о выборе кратчайшего пути .
- •Вопрос 10. Основные понятия динамического программирования. Планирование производственной программы.
- •Вопрос 11. Основные понятия динамического программирования. Задача об оптимальном распределении ресурсов
- •Вопрос 12. Основные понятия динамического программирования. Задача о замене оборудования.
- •Вопрос 13. Методы векторной оптимизации. Метод последовательных уступок.
- •Вопрос 14. Методы векторной оптимизации. Метод ведущего критерия.
- •Вопрос 11. Методы векторной оптимизации. Метод равных и наименьших отклонений
- •Вопрос 16 Методы векторной оптимизации. Метод минимакса
Вопрос 5. Задача о кратчайшем маршруте и метод ее решения.
Пусть
задана сеть G(V,
E),
в которой приписанные ее дугам значения
– это расстояния между вершинами,
образующими эту дугу. То есть
– расстояние между вершинами
Требуется
найти кратчайший путь
от источника
в
сток
.
Составим математическую модель задачи.
Что
нам необходимо найти? Список дуг
образующих кратчайший путь
.
Целевые переменные обозначим
–
наличие или отсутствие дуги
в оптимальном пути.
Целевая функция, подлежащая оптимизации – минимизация общей длины пути
Запишем ограничения задачи:
Выполнение
этого ограничения гарантирует, что путь
начнется в вершине
и завершится в вершине
.
Это ограничение логически вытекает из смыслового наполнения целевых переменных.
Данная задача является задачей линейного программирования. Составим двойственную к ней, руководствуясь следующими правилами:
Число переменных двойственной задачи равно количеству ограничений прямой задачи.
Правые части ограничений прямой задачи становятся коэффициентами в целевой функции соответствующих целевых переменных двойственной задачи; а коэффициенты в целевой функции целевых переменных становятся правыми частями ограничений в двойственной задаче.
Смысл экстремума целевой функции двойственной задачи меняется на противоположный по смыслу прямой задачи.
Матрица коэффициентов системы ограничений транспонируется.
Если на i-ую переменную прямой задачи наложено условие неотрицательности, то i-е условие системы ограничений двойственной задачи является неравенством, если не наложено – строгим равенством.
Если в прямой задаче имеются ограничения равенства, то на соответствующие переменные двойственной задачи не накладывается условие неотрицательности.
Получим задачу:
Все
двойственные переменные не ограничены
по знаку и имеют такой смысл:
(
– наименьшее расстояние из вершины
в
вершину
.
Рассмотрим
алгоритм
отыскания значений двойственных
переменных. Обозначим через
–
множество помеченных вершин сети, а
через
– множество непомеченных
Предварительный шаг:
Помечаем
источник ()
числом
Основной шаг:
1)Находим
дуги, начальные вершины которых
,
а конечные
.
Для каждой из этих дуг определяем
величину
,
где
– пометки вершин
.
Находим
значение
и выделяем дуги, на которых достигается
этот минимум. Вершинам, являющимся
конечными вершинами выделенных дуг,
припишем значение
,
и включим данные вершины во множество
.
Проверяем выполнимость условия
для всех дуг сети, оба конца которых принадлежат
. Если для какой-то дуги это условие не выполняется, то соответствующее значение
заменяем на
. Дугу
выделяем и переходим к пункту 1). Пометку вершин продолжаем до тех пор, пока не будет помечен сток
. На длину кратчайшего пути от источника к стоку укажет значение
.
Заключительный шаг:
Оптимальный
путь или пути (если их несколько),
определяем, двигаясь по выделенным
дугам от стока
к источнику
в направлении, обратном их ориентации.
При этом в путь включаются те дуги
,
для которых
.
Алгоритм сходится за конечное число шагов при условии, что сумма длин дуг любого контура, содержащегося в сети, неотрицательна.
Пример
4: Найти
кратчайший путь на сети, изображенной
на рисунке 6, из вершины
в
вершину
.
Рисунок 6
Помечаем источник
;
.
Значит, помечаем
значением
И
теперь множество
(
Для
дуги
условие
выполняется.
.
Значит,
помечаем
значением
И
теперь множество
(
Для
дуг из множества (условие
выполняется.
.
Значит,
помечаем
значением
И
теперь множество
(
Условие
выполняется для всех дуг из множества
(
кроме
:
.
Поэтому исправляем отметку вершины
.
Значит,
помечаем
значением
И
теперь множество
(
Для
дуг из множества (условие
выполняется.
Помечаем
сток
значением
.
Рисунок 7
На
заключительном шаге находим оптимальный
путь. При этом в него включаем только
те дуги
,
для которых выполняется условие
Так
как
,
то
– последняя дуга искомого пути. Продолжая,
находим 2 кратчайших пути: