- •Линейное программирование.
- •Основная задача линейного программирования.
- •Графический метод решения задачи линейного программирования.
- •Теорема:
- •Cимплекс-метод.
- •Способы нахождения начального базисного решения.
- •Пример:
- •Пример:
- •3 Итерация (оптимум)
- •Теорема:
- •Транспортная задача.
- •Пример:
- •Проверка на оптимальность. Метод потенциалов.
- •Задача о назначениях.
- •Пример:
- •Задача коммивояжера. Метод ветвей и границ.
- •Сетевые задачи.
- •Пример:
- •Решение.
- •Задача о максимальном потоке.
- •Динамическое программирование.
- •Пример:
- •Решение.
- •Решение.
- •Задачи о маршрутизации.
- •Классификация игр.
- •Антагонистические матричные игры.
- •Решение матричной игры в чистых стратегиях.
- •Пример:
Пример:
Необходимо соединить восемь объектов многополюсной цепью кратчайшей длины, причем один из объектов (№ 8) может только направлять информацию, а остальные — и направлять, и получать информацию без каких-либо ограничений (рис.2).
Рис.2
На рис.2 каждый объект представлен узлом, а каждая линия—дугой. Ориентированные дуги соответствуют распределительным звеньям, которые могут быть использованы для передачи информации только в указанном направлении. Числа, приписанные дугам, соответствуют расстоянию между объектами. Требуется найти для каждого объекта кратчайшие пути, связывающие его с другими объектами.
Решение.
Воспользуемся алгоритмом Флойда. Поскольку n=8, то число итераций в алгоритме будет 8.
Строим матрицу длин кратчайших цепей D0 и матрицу маршрутов R0. Отсутствие связи помечаем знаком ∞, нулем обозначаем связи внутри одного узла (из узла i в узел i):
Итерация
1. Выбираем
базовый узел j=1.
В матрице D0
вычеркиваем j-ю (базовую) строку и j-й
(базовый) столбец. Чтобы определить,
приведет ли использование узла 1 к более
коротким цепям, необходимо исследовать
элементы матрицы D0
с помощью
трехместной операции:
;
.
Если
=∞,
т. е. i-й
элемент базового столбца равен ∞, то
.
Если
=∞,
т. е. k-й
элемент базовой строки равен ∞, то
.
Если
и
одно из двух значений
или
превосходит
,
то замену также производить не следует.
Столбцы 3, 5, 6, 7 и 8 содержат элементы,
равные ∞ и принадлежащие базовой строке,
а строки 3, 5-8 — элементы, равные ∞ и
принадлежащие базовому столбцу, т. е.
исследовать надо элементы (2,2); (2,4); (4,2);
(4,4). Поскольку диагональные элементы
можно не рассматривать, необходимо
исследовать лишь оценки
и
:
;
.
Оценки
и
меньше оценок
и
и должны быть внесены в матрицу D1,
а в матрице маршрутов надо положить
и
= l. Остальные элементы матриц D0
и R0
остаются без изменений. Получим матрицы
Итерация
2. Определим
узел 2 как базовый, т. е. проверим, приведет
его использование к более коротким
цепям, и вычеркнем в матрице D1
вторую строку и второй столбец. Здесь
столбцы 6—8 содержат элементы, равные
∞ и принадлежащие базовой строке, а
строки 6—8 — элементы, равные ∞ и
принадлежащие базовому столбцу (столбцы
и строки 6—8 не рассматриваем). Исключаем
и диагональные элементы. Остается
исследовать лишь элементы (1,3), (1,4), (1,5),
(3,1), (3,4), (3,5), (4,1), (4.3), (4,5), (5,1), (5.3), (5,4).
Нетрудно проверить, что здесь улучшены
могут быть только оценки
,
,
,
,
,
,
равные ∞:
;
;
;
.
Таким
образом,
;
остальные элементы
остаются без изменения. Новые матрицы
имеют вид
Итерация
3. Определяем,
приведет ли использование узла 3 к более
коротким цепям. Берем узел 3 в качестве
базового и вычеркиваем 3-ю строку и 3-й
столбец в матрице D2.
Исключаем диагональные элементы,
элементы 3, 8-го столбцов и 3, 8-й строк.
Аналогично получаем матрицы Dj;
Rj,
.
Матрицы Dj;
Rj
,
остаются без изменений. Следовательно,
оптимальное решение соответствует
матрицам D5
и R5,
определяющим как оптимальное расстояние
для передачи между объектами, так и
последовательность передачи информации:
Например,
определим кратчайшую цепь из узла 1 в
узел 5. По матрице D5
определяем, что длина этой цепи равна
= 9. Чтобы найти соответствующую
последовательность узлов, обратимся к
матрице R5.
Значение
равно 4,т.е. узел 4 является первым
промежуточным узлом в кратчайшей цепи
из узла 1 в узел 5. Теперь надо определить,
какой узел следует за узлом 4 в кратчайшей
цепи из узла 4 в узел 5. Рассмотрим
=3.
Значит, за узлом 4 следует узел 3.
Аналогично, за узлом 3 следует узел 5.
итак. Кратчайшая цепь из узла 1 в узел 5
определяется последовательностью узлов
1,4,3,5.
