- •Б.К. Алабин
- •1.2. Основные понятия и определения исследования операций
- •1.3. Общая постановка задачи исследования операций
- •Тема 2 индексный метод (теория графов)
- •2.1. Основные понятия и определения индексного метода (им)
- •2.2. Постановка задачи маршрутизации в им
- •2.3. Идея решения задачи
- •2.4. Алгоритм решения задачи с помощью произвольного дерева маршрутов
- •2.5. О порядковой функции
- •2.6. Общая теория индексного метода на матрице орграфа
- •2.7. Общий алгоритм решения задачи маршрутизации на матрице орграфа
- •2.8. Иллюстративный пример
- •2.9. Последовательные графы в им
- •2.10. Решение задачи распределения ресурсов индексным методом
- •3.4. Условия, которым должна удовлетворять задача, описываемая моделью дп
- •3.5. Вычислительная схема дп для обратного хода
- •3.6. Особенности вычислительной схемы дп для прямого хода
- •3.7. Основные достоинства метода дп
- •3.8. Типовые задачи в моделях дп
- •Тема 4 методы линейного программирования (лп)
- •4.1. Систематизация моделей лп
- •4.2. Возможные исходы решения задач лп
- •4.3. Транспортная задача (т-задача)
- •Метод потенциалов для оценки Δij в т-задаче
- •Замечания к решению т-задачи
- •4.4. Задача «о назначениях»
- •4.5. Задача планирования производства при фиксированном фонде времени
- •Иллюстративный пример
- •Тема 5 задача и модель «черного ящика»
- •5.1. Общие замечания
- •5.2. Содержательная постановка задачи
- •5.3. Формальная постановка задачи
- •5.4. Математическая модель и математическая постановка задачи
- •5.5. О решении задачи
- •5.6. Иллюстративный пример
- •Рекомендуемая литература
- •Содержание
2.7. Общий алгоритм решения задачи маршрутизации на матрице орграфа
0. Задана матрица орграфа с весами на дугах, матрица стоимостей перехода отаi к аj.
1. Определяем начальную или конечную вершину. Тем самым определяется корень opt дерева.
2. Строим порядковую функцию от корня, преобразуя матрицу т.е. упорядочиваем вершины по уровнямЕi.
3. Строим opt дерево в соответствии с порядковой функцией, определяя оптимальные индексы для каждой вершины. На этом заканчивается I этап – условная оптимизация. При этом opt Fц = I(an) при прямом ходе или opt Fц = I(a0) при обратном.
4. II этап – безусловная оптимизация. Решение находится противоположным ходом на opt дереве (по направлению к корню дерева). В результате получаем оптимальный путь в виде последовательности вершин с оптимальной суммой весов дуг:
– при прямом ходе = (аn, аn–1,…, а1, а0),
– при обратном ходе = (а0, а1,…, аn–1, аn).
Замечание. Если начальных (или конечных) вершин более одной, то вводится фиктивная вершина с дугами, имеющими нулевые веса, и задача сводится к рассмотренной.
2.8. Иллюстративный пример
Пусть задан произвольный орграф с весами на дугах. Строим для него порядковую функцию и упорядочиваем его вершины в соответствии с его порядковой функцией.
Графическое представление (рис. 2.4).
Рис. 2.4
Матричное представление:
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
1 |
2 |
4 |
3 |
5 |
6 |
7 |
Еi |
1 |
× |
4 |
5 |
9 |
|
2 |
|
|
1 |
× |
4 |
9 |
5 |
|
2 |
|
Е0 | |
2 |
|
× |
|
|
|
5 |
6 |
|
2 |
|
× |
|
|
|
5 |
6 |
Е1 | |
3 |
|
|
× |
|
3 |
|
7 |
→ |
4 |
|
|
× |
10 |
8 |
|
| ||
4 |
|
|
10 |
× |
8 |
|
|
|
3 |
|
|
|
× |
3 |
|
7 |
Е2 | |
5 |
|
|
|
|
× |
|
1 |
|
5 |
|
|
|
|
× |
|
1 |
Е3 | |
6 |
|
|
|
|
|
× |
3 |
|
6 |
|
|
|
|
|
× |
3 | ||
7 |
|
|
|
|
|
|
× |
|
7 |
|
|
|
|
|
|
× |
Е4 |
Решаем задачу на max F прямым ходом.
Условная opt-ция (вычислительная схема) проводится по формуле I(ak) = I(ak–1) + v(ak–1, ak):
I(a0) |
(a0, a1) |
I(a1) |
(ai, a2), i < 2 |
I(a2) |
1(0) |
(1, 2) →0 + 4 = 4 |
2(4) |
(1, 6) → 0 + 2 = 2 |
6(9) |
|
(1, 4) →0 + 9 = 9 |
4(9) |
(2, 6) → 4 + 5 = 9 | |
|
|
|
(4, 3) → 9 + 10 = 19 |
3(19) |
|
|
|
(1, 3) → 0 + 5 = 5 |
(ai, a3), i < 3 |
I(a3) |
(ai, a4), i < 4 |
I(a4) |
(4, 5) →9 + 8 = 17 |
5(22) |
(6, 7) → 9 + 3 = 12 |
7(26) |
(3, 5) →19 + 3 = 22 |
(2, 7) → 4 + 6 = 10 | ||
|
|
(5, 7) → 22 + 1 = 23 | |
|
|
(3, 7) → 19 + 7 = 26 |
1) max F = I(7) = 26.
Безусловная opt-ция проводится обратным ходом по вычислительной схеме:
2) S(a4, a0) = S(7, 1) = ‹7 ← 3 ← 4 ← 1› = <7, 3, 4, 1>
S(1, 7) = ‹1, 4, 3, 7›!
Задача решена.
Обратным ходом решение выглядит аналогично.
Условная opt-ция: I(ak) = I(ak+1) + v(ak, ak+1):
I(a4) |
(a3, a4) |
I(a3) |
(a2, ai), i > 2 |
I(a2) |
7(0) |
(5, 7) →0 + 1 = 1 |
5(1) |
(6, 7) → 0 + 3 = 3 |
6(3) |
|
|
|
(3, 5) → 1 + 3 = 4 (3, 7) → 0 + 7 = 7 |
3(7) |
|
|
|
(ai, ai), i > 1 |
I(a1) |
(a0, ai), i > 0 |
I(a0) |
(2, 6) → 3 + 5 = 8 |
2(8) |
(1, 6) → 3 + 2 = 5 |
1(26) |
(2, 7) → 0 + 6 = 6 |
(1, 2) → 8 + 4 = 12 | ||
(4, 5) → 1 + 8 = 9 |
4(17) |
(1, 4) → 17 + 9 = 26 | |
(4, 3) → 7 + 10 = 17 |
(1, 3) → 7 + 5 = 12 |
1) max F = I(1) = 26.
Безусловная opt-ция проводится прямым ходом по вычислительной схеме:
2) S(a0, a4) = ‹1 ← 4 ← 3 ← 7› = ‹1, 4, 3, 7›.
Задача решена.
Построение opt деревьев в обоих случаях предоставляется читателю.