
- •1.Менеджмент как процесс принятия управленческих решений. Виды управленческих решений.
- •2.Факторы, влияющие на процесс принятия решений: личностные, ситуационные. Классификация неопределенных факторов по источнику неопределенности и по природе неопределенности.
- •3. Понятия цели, проблемы, проблемной ситуации, управления по отклонению/возмущению, управляющих воздействий, задачи принятия решений, системы предпочтений, альтернативы и объектов выбора.
- •4.Типология проблем. Методы анализа проблем - методы декомпозиции: диаграммы причинно-следственных связей, построение «дерева» проблем, диаграмма «Рыбий скелет», дерево задач.
- •5. Взаимосвязь целей и критериев отбора вариантов решений. Требования к критериям в процессе разработки и принятия управленческих решений.
- •6. Классификация типов шкал в рамках формальной теории измерений. Допустимые операции с показателями, измеренными в разных шкалах.
- •7. Необходимость применения математических моделей в менеджменте. Классификация экономико-математических моделей, используемых при моделировании управленческих процессов.
- •9.Методы генерации альтернатив. Дерево решений. Морфологическая комбинационная таблица. Метод контрольных вопросов. Методы коллективного поиска решений: Математическое моделирование.
- •10.Графические методы анализа вариантов решений.
- •11.Методы целостного выбора: выбор на основе бинарных отношений, ранжирование на основе парного сравнения, метод поэтапного сравнения, бинарные решающие матрицы.
- •12.Постановка общей задачи оптимизации и линейного программирования. Структуризация оптимизационной задачи.
- •13.Задача о распределении ограниченных ресурсов (задача оптимального планирования)
- •14. Задача об оптимальной корзине продуктов (задачи о диете, задачи о составлении смеси).
- •15.Постановка транспортной задачи общего вида
- •16. Методы построения первого опорного плана транспортной задачи: метод северо-западного угла, метод минимальных элементов, метод штрафов (алгоритм Фогеля).
- •17. Распределительный метод
- •18. Задача о назначениях и венгерский метод ее решения.
- •19. Задача о рюкзаке.
- •20. Решение задач линейного программирования графическим методом.
- •21.Сетевые и потоковые модели. Понятие пути, продолжительности пути, критического пути, раннего и позднего срока выполнения работ, полного и свободного резерва. Коэффициент напряженности работ.
- •22. Задача нахождения критического пути в сетевом графике.
- •23.Задача о максимальном. Задача определения кратчайшего маршрута в сети. Потоке в сети. Сведение задач к линейным оптимизационным постановкам.
- •24. Задача коммивояжёра
- •25.Методы отыскания эффективных решений (оптимальных по Парето) в пространстве исходов и в пространстве критериев. Формализация выбора эффективных решений на множестве векторных оценок.
- •26. Метод последовательных уступок.
- •27.Методы «сканирования» паретовской границы на основе метода идеальной точки.
- •28. Методы формирования обобщенного критерия. Свертка локальных критериев.
- •29.Основные методы нормировки локальных критериев.
- •30.Процедуры нахождения весовых коэффициентов важности.
23.Задача о максимальном. Задача определения кратчайшего маршрута в сети. Потоке в сети. Сведение задач к линейным оптимизационным постановкам.
Сеть состоит из множества узлов, связанных дугами (или ребрами). Таким образом, сеть описывается парой множеств (N, A), где N – множество узлов, а A – множество ребер. Например, сеть, показанная на рис. 1 описывается следующим образом:
N = {1, 2, 3, 4, 5},
A = {(1, 3), (1, 2), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)}.
1
3
5
4
2
Рис. 1
В общем случае потоки в сети ограничены пропускной способностью ее ребер, которая может быть как конечной, так и бесконечной.
Ребро называется направленным, или ориентированным, если в одном направлении возможен только положительный поток, а в противоположном – только нулевой.
Последовательностью различных ребер, соединяющих два узла, независимо от направления потока в каждом ребре, называется путь. Он формирует цикл, если начальный и конечный узлы совпадают. Например, на рисунке 1 ребра (2, 3), (3, 4) и (4, 2) составляют цикл.
Цикл, в котором все дуги ориентированы в определенном направлении, называется является ориентированным.
Если в сети любые два узла связаны хоть одним путем, то такая сеть называется связной.
На приведенном выше рисунке показан именно такой тип сети.
Алгоритм нахождения минимального остовного дерева.
Деревом называется связная сеть, содержащая подмножество узлов исходной сети и не имеющая циклов.
Остовное дерево – это дерево, содержащее все узлы сети. На рис. 2 показаны дерево и остовное дерево для сети из рис. 1.
5
3
1\\1
3\
1
4
2
2
Дерево Остовное дерево
Рис. 2
Разрез определяет множество ребер, при удалении которых из сети полностью прекращается поток от источника к стоку. Пропускная способность разреза равна сумме пропускных способностей «разрезанных» ребер. Среди всех разрезов сети разрез с минимальной пропускной способностью определяет максимальный поток в сети.
ОАО мебельному заводу «Золотой ус» необходимо доставить максимально возможное количество своей продукции на склад магазина–реализатора за определенное время. При этом на выбранном маршруте имеется 6 промежуточных складских помещений, между которыми возможна транспортировка мягкой мебели. Пропускные способности всех участков дорог считаются известными.
По заданной транспортной сети необходимо доставить максимальное количество груза из вершины S в вершину t за определенное время, если пропускные способности всех участков дорог считаются известными.
11
X1
6
X4
9
9
8
12
10
5
S
t
10
X5
X2
4
6
7
7
X6
5
X3
2.3 Решение задачи о максимальном потоке в сети
Итерация 1.
Пропускаем по всей сети первоначальный нулевой поток ƒ0 = 0.
V10
V3
X1(S+;6)
11,0
X4(X1+;6)
6,0
9,0
9,0
8,0
S (-
;∞)
10,0
5,0
12,0
X5(X2+;5)6)
X2(S+;5)
t (X4+;
6)
10,0
6,0
4,0
7,0
7,0
X6(X3+;5)
5,0
X3(S+;7)
Положим остаточные пропускные способности c (xij, xji) всех ребер равными первоначальным пропускным способностям C (Xij, Xji).
Шаг 1. Назначим aα = ∞ и пометим узел Sα меткой [- ;∞]. Полагаем i = α.
Шаг 2. P1 = [X1, X2, X3] (≠ Ø).
Шаг 3. k=1, поскольку cα1 = max{cα1, cα2, cα3}= max{6, 5, 7}=7. Вершина X1 получает метку [S+; 6]. Вершина X2 получает метку [S+; 5]. Вершина X3 получает метку [S+; 7]. Полагаем i = 1 и возвращаемся к шагу 2.
Шаг 2. P2 = [X2, X4] (≠ Ø).
Шаг 3. k=4 и a2 = c12 = max{11, 8}=11. Вершина X4 получает метку [X1+; 6].Полагаем i = 4 и возвращаемся к шагу 2.
Шаг 2. Вершина X1 помечена и просмотрена. Будем просматривать вершину X2. P3 = [X4, X5] (≠ Ø).
Шаг 3. k=5 и a5 = c25 = max{9, 10}=10. Помечаем узел X5 меткой [X2+; 5]. Полагаем i = 5 и возвращаемся к шагу 2.
Шаг 2. Вершина X2 помечена и просмотрена. Будем просматривать вершину X3. P4 = [X6, X2] (≠ Ø).
Шаг 3. k=6 и a6= cα6 = max{4, 5}=5. Помечаем узел X6 меткой [X3+; 5]. Полагаем i = 6 и возвращаемся к шагу 2.
Шаг 2. Просмотрим вершину X4. P5 = [X5, tω] (≠ Ø).
Шаг 3. k=ω и aω = c4ω = max{9}=9. Помечаем узел tω меткой [X4+; 6]. Получен сквозной путь. Переходим к шагу 5.
Шаг 5. Сквозной путь определяем по меткам, начиная с узла tω и заканчивая узлом Sα:
tω – [X4+; 6] – X4 – [X1+; 6] – X1 – [S+; 6] – Sα.
Таким образом, N1 = {Sα, X1, X4, tω}; ƒ1 = min{aα, a1, a4, aω} = {∞, 6, 6, 6} = 6.
Вычислим остаточные пропускные способности вдоль пути N1:
с (Sα, X 1; X 1 Sα) = (6-6; 0+6) = (0; 6)
с (X 1, X 4; X 4 X 1) = (11-6; 0+6) = (5; 6)
с (X 4, tω; tω X 4) = (9-6; 0+6) = (3; 6)
Итерация 2.
Получаем остаточные пропускные способности всех ребер путем внесения изменений в пропускные способности тех ребер, которые находятся на маршруте N1, в соответствии с проходящим через них потоком ƒ1.
Шаг 1. Назначим aα = ∞ и пометим узел Sα меткой [-; ∞]. Полагаем i = α.
Шаг 2. P1 = [X1, X2, X3] (≠ Ø).
Шаг 3. k=2, поскольку cα2 = max{cα2, cα3}= max{7, 5}= 7. Вершина X2 получает метку [S+; 5]. Вершина X3 получает метку [S+; 7]. Полагаем i = 2 и возвращаемся к шагу 2.
11,6
X1
6,6
X4
9,6
9,0
8,0
S
10,0
5,0
12,0
t
10,0
X5
X2
6,0
4,0
7,0
7,0
X6
5,0
X3
Шаг 2. P2 = [X 4, X 5] (≠ Ø).
Шаг 3. k=4 и a4 = c14 = max{9, 10}= 10. Вершина X4 получает пометку [X2+; 5]. Вершина X5 получает метку [X2+; 5]. Полагаем i = 4 и возвращаемся к шагу 2.
Шаг 2. P3 = [X 6] (≠ Ø).
Шаг 3. k=6 и a6 = c36 = max{5}= 5. Помечаем узел V6 меткой [X3+; 5]. Полагаем i = 6.
Шаг 4. Просмотрим вершину X4. Из нее можно перейти к вершине X1, которая получает пометку [X4-; 5]. Так как f(X1;X4) > 0, то cα1 = min {c14, f(X1;X4)} = 5. Переходим к шагу 2.
Шаг 2. P4 = [X5, tω] (≠ Ø).
Шаг 3. k=ω и aω = c4ω = max{9}=9. Помечаем узел tω меткой [X4+; 3]. Получен сквозной путь. Переходим к шагу 5.
Шаг 5. Сквозной путь определяем по меткам, начиная с узла tω и заканчивая узлом Sα:
tω – [X4+; 3] – X4 – [X2+; 5] – X2 – [S+; 5] – Sα.
Таким образом, N1 = {Sα, X2, X4, tω}; ƒ1 = min{aα, a2, a4, aω} = {∞, 5, 5, 3} = 3.
Вычислим остаточные пропускные способности вдоль пути N1:
с (Sα, X 2; X 2 Sα) = (5-3; 0+3) = (2; 3)
с (X 2, X 4; X 4 X 2) = (9-3; 0+3) = (6; 3)
с (X 4, tω; tω X 4) = (3-3; 6+3) = (0; 9)
X1(X4-;5)
11,6
X4(X2+;5)
6,6
9,9
9,30
8,0
S (-
;∞)
10,0
5,3
12,0
X5(X2+;5)
t
(X4+;3
)
10,0
X2(S+;5)
6,0
4,0
7,0
7,0
X6(X3+;5)
5,0
X3(S+;7)
Итерация 3.
Получаем остаточные пропускные способности всех ребер путем внесения изменений в пропускные способности тех ребер, которые находятся на маршруте N2, в соответствии с проходящим через них потоком ƒ2.
X1
11,6
X4
6,6
9,9
9,3
8,0
10,0
5,3
12,0
t
S
X5
10,0
X2
6,0
4,0
7,0
7,0
X6
5,0
X3
Шаг 1. Назначим aα = ∞ и пометим узел Sα меткой [-; ∞]. Полагаем i = α.
Шаг 2. P1 = [X1, X2, X3] (≠ Ø).
Шаг 3. k=2, поскольку cα2 = max{cα2, cα3}= max{7, 5}= 7. Вершина X2 получает метку [S+; 2]. Вершина X3 получает метку [S+; 7]. Полагаем i = 2 и возвращаемся к шагу 2.
Шаг 2. P2 = [X 4, X 5] (≠ Ø).
Шаг 3. Вершина X4 получает пометку [X2+; 2]. Вершина X5 получает метку [X2+; 2]. Полагаем i = 4 и возвращаемся к шагу 2.
Шаг 2. Просмотрим вершину X5. P3 = [X5, tω] (≠ Ø).
Шаг 3. k=ω и aω = c5ω = max{10}=10. Помечаем узел tω меткой [X5+; 2]. Получен сквозной путь. Переходим к шагу 5.
Шаг 5. Сквозной путь определяем по меткам, начиная с узла tω и заканчивая узлом Sα:
tω – [X5+; 2] – X5 – [X2+; 2] – X2 – [S+; 2] – Sα.
Таким образом, N1 = {Sα, X2, X5, tω}; ƒ1 = min{aα, a2, a5, aω} = {∞, 2, 2, 2} = 2.
X1(X4-;2)
11,6
X4(X2+;2)
6,6
9,9
9,3
8,0
10,2
5,5
12,2
t
(X5+;2)
S (-
;∞)
X5(X2+;2)
10,0
X2(S+;2)
6,0
4,0
7,0
7,0
X6(X3+;5)
5,0
X3(S+;7)
Вычислим остаточные пропускные способности вдоль пути N1:
с (Sα, X 2; X 2 Sα) = (2-2; 3+2) = (0; 5)
с (X 2, X 5; X 5 X 2) = (10-2; 0+2) = (8; 2)
с (X 5, tω; tω X 5) = (12-2; 0+2) = (10; 2)
Итерация 4.
Получаем остаточные пропускные способности всех ребер путем внесения изменений в пропускные способности тех ребер, которые находятся на маршруте N3, в соответствии с проходящим через них потоком ƒ3.
X1
11,6
X4
6,6
9,9
9,3
8,0
S
10,2
5,5
12,2
t
X5
10,0
X2
6,0
4,0
7,0
7,0
X6
5,0
X3
Шаг 1. Назначим aα = ∞ и пометим узел Sα меткой [-; ∞]. Полагаем i = α.
Шаг 2. P1 = [X1, X2, X3] (≠ Ø).
Шаг 3. Вершины X1 и X2 помечены и просмотрены. Будем просматривать вершину X3. k=2, поскольку cα2 = max{cα2, cα3}= max{7, 5}= 7. Вершина X3 получает метку [S+; 7]. Полагаем i = 7 и возвращаемся к шагу 2.
Шаг 2. P2 = [X 2, X 6] (≠ Ø).
Шаг 3. Вершина X2 получает пометку [X3+; 4]. Вершина X6 получает метку [X3+; 5]. Полагаем i = 5 и возвращаемся к шагу 2.
Шаг 2. Просмотрим вершину X2. P3 = [X4, X5] (≠ Ø).
Шаг 3. k=5 и a5 = c25 = max{9;10}=9. Помечаем узел X5 меткой [X2+; 4]. Полагаем i = 4 и возвращаемся к шагу 2.
Шаг 2. Просмотрим вершину X5. P3 = [X5, tω] (≠ Ø).
Шаг 3. k=ω и aω = c5ω = max{10}=10. Помечаем узел tω меткой [X5+; 4]. Получен сквозной путь. Переходим к шагу 5.
Шаг 5. Сквозной путь определяем по меткам, начиная с узла tω и заканчивая узлом Sα:
tω – [X5+; 4] – X5 – [X2+; 4] – X2 – [X3+; 4] – X3 – [S+; 7] – Sα.
Таким образом, N1 = {Sα, X3, X2, X5, tω}; ƒ1 = min{aα, a3, a2, a5, aω} = {∞, 7, 4, 4, 4} = 4.
Вычислим остаточные пропускные способности вдоль пути N1:
с (Sα, X 3; X 3 Sα) = (7-4; 0+4) = (3; 4)
с (X 3, X 2; X 2 X 3) = (4-4; 0+4) = (0; 4)
с (X 2, X 5; X 5 X 2) = (8-4; 2+4) = (4; 6)
с (X 5, tω; tω X 5) = (10-4; 2+4) = (6; 6)
11,6
X1(X4-;4)
X4(X2+;4)
6,6
9,9
9,3
8,0
S (-
;∞)
10,6
5,5
12,6
X5(X2+;4)
t
(X5+;4
)
10,0
X2(X3+;4)
6,0
4,4
7,0
7,4
X6(X3+;5)
5,0
X3(S+;7)
Итерация 5.
Получаем остаточные пропускные способности всех ребер путем внесения изменений в пропускные способности тех ребер, которые находятся на маршруте N4, в соответствии с проходящим через них потоком ƒ4.
X1
11,6
X4
6,6
9,9
9,3
8,0
S
10,6
5,5
12,6
t
X5
10,0
X2
6,0
4,4
7,0
7,4
X6
5,0
X3
Шаг 1. Назначим aα = ∞ и пометим узел Sα меткой [-; ∞]. Полагаем i = α.
Шаг 2. P1 = [X1, X2, X3] (≠ Ø).
Шаг 3. Вершины X1 и X2 помечены и просмотрены. Будем просматривать вершину X3. k=2, поскольку cα2 = max{cα2, cα3}= max{7, 5}= 7. Вершина X3 получает метку [S+; 3]. Полагаем i = 3 и возвращаемся к шагу 2.
Шаг 2. P2 = [X 2, X 6] (≠ Ø).
Шаг 3. Вершина X2 помечена и просмотрена. Будем рассматривать вершину X6. Вершина X6 получает метку [X3+; 3]. Полагаем i = 3 и возвращаемся к шагу 2.
Шаг 2. Просмотрим вершину X6. P3 = [ tω] (≠ Ø).
Шаг 3. k=ω и aω = c6ω = max{7}=7. Помечаем узел tω меткой [X6+; 3]. Получен сквозной путь. Переходим к шагу 5.
Шаг 5. Сквозной путь определяем по меткам, начиная с узла tω и заканчивая узлом Sα:
tω – [X6+; 3] – X6 – [X3+; 3] – X3 – [S+; 3] – Sα.
Таким образом, N1 = {Sα, X3, X6, tω}; ƒ1 = min{aα, a3, a6, aω} = {∞, 3, 3, 3} = 3.
Вычислим остаточные пропускные способности вдоль пути N1:
с (Sα, X 3; X 3 Sα) = (3-3; 4+3) = (0; 7)
с (X 3, X 6; X 6 X 3) = (5-3; 0+3) = (2; 3)
с (X 6, tω; tω X 6) = (7-3; 0+3) = (4; 3)
X1(X4-;4)
11,6
X4(X2+;4)
6,6
9,9
9,3
8,0
S (-
;∞)
10,6
5,5
12,6
t
(X3+;3)
X5(X2+;4)
10,0
X2(X3+;4)
6,0
4,4
7,3
7,7
X6(X3+;3)
5,3
X3
(S+;3)
Итерация 6.
Получаем остаточные пропускные способности всех ребер путем внесения изменений в пропускные способности тех ребер, которые находятся на маршруте N8, в соответствии с проходящим через них потоком ƒ8.
X1
11,6
X4
6,6
9,9
9,3
8,0
S
10,6
5,5
12,6
t
X2
X5
10,0
6,0
4,4
7,3
7,7
X6
X3
5,3
Новые сквозные пути невозможны, поскольку все ребра, исходящие из Sω, имеют нулевые выпускные способности. Переходим к шагу 6 для определения решения.
Шаг 6. Максимальный объем потока в сети равен:
F = ƒ0 + ƒ1 + ƒ2 + ƒ3 + ƒ4 + ƒ5 = 0+6+3+2+4+3= 18 единиц.
Значение потоков по различным ребрам вычисляются путем вычитания последних значений остаточных пропускных способностей (т.е.(xij; xji)6) из первоначальных значений пропускных способностей (Xij; Xji).
Результаты вычислений приведены в следующей таблице:
Таблица 1.
Ребро |
(Xij; Xji) – (xij; xji)6 |
Величина потока |
Направление |
(Sα; X1) |
(6; 0) – (0; 6) = (6; -6) |
6 |
α – 1 |
(Sα; X2) |
(5; 0) – (2; 1) = (3; -1) |
1 |
α – 2 |
(Sα; X3) |
(7; 0) – (0; 7) = (7; -7) |
5 |
α – 3 |
(X1; X2) |
(8; 0) – (8; 0) = (0; 0) |
0 |
– |
(X1; X4) |
(11; 0) – (6;-6) = (1; -1) |
1 |
1 – 4 |
(X2; X4) |
(9; 0) – (6; 3) = (3; -3) |
3 |
2 – 4 |
(X2; X5) |
(10; 0) – (4; 6) = (6; -6) |
6 |
2 – 5 |
(X3; X2) |
(4; 0) – (0; 4) = (4; -4) |
4 |
3 – 2 |
(X3; X6) |
(5; 0) – (2; 3) = (3; -3) |
3 |
3 – 6 |
(X4; X5) |
(12; 0) – (12; 0) = (0; 0) |
0 |
– |
(X4; tω) |
(9; 0) – (0; 9) = (1; -1) |
1 |
4 – ω |
(X5; X6) |
(6; 0) – (6; 0) = (0; 0) |
0 |
– |
(X5; tω) |
(10; 0) – (6; 6) = (4; -6) |
2 |
5 – ω |
(X6; tω) |
(7; 0) – (4; 3) = (3; -3) |
3 |
6 – ω |
Поток f = 18 является максимальным, а множество дуг (S;X1); (S;X2); (S;X3) составляют минимальный разрез сети.
Проверка:
min L: (S;X1); (S;X2); (S;X3).
c(S;X1); c(S;X2); c(S;X3)= F
6+5+7 = 18
18 = 18
Ответ: верно.
Метод Форда бал разработан специально для решения сетевых транспортных задач и основан, по существу, на принципе оптимальности.
Алгоритм метода Форда содержит четыре этапа (схема 1). На первом этапе производится заполнение исходной таблицы расстояний от любого i-го пункта в любой другой j-й пункт назначения. На втором этапе определяются для каждого пункта некоторые параметры ?i и ?j по соответствующим формулам. Далее на третьем этапе определяются кратчайшие расстояния. Наконец, на четвертом этапе определяются кратчайшие маршруты из пункта отправления Р1 в любой другой пункт назначения Рj, j=1,2,...,n.
Первый этап: Составление исходной таблицы расстояний.
Данная таблица содержит n+1 строк и такое же количество столбцов; Pi - пункты отправления; Pj - пункты назначения. Во второй строке и втором столбце проставляется значения параметров ?i и?j, определение значений которых производятся на втором этапе решения задачи. В остальных клетках таблицы проставляются значения расстояний lij из i-го пункта в j-й пункт. Причем заполняем клетки таблицы, лежащие выше главной диагонали. Если пункт Pi не соединен отрезком пути с пунктом Pj, то соответствующая клетка таблицы не заполняется.
Второй этап: Определение
Определяется значение параметров в соответствии с формулой:
Эти значения заполняются во второй строке и во втором столбце.
Третий этап: Определение длинны кратчайших путей.
Возможны два случая определения длинны кратчайших путей из пунктов Pi в пункты Pj, i=1,2,...,n; j=1,2,...,n.
В первом случае, если выполняются неравенство:
то значения параметров ?1,...,?n удовлетворяют условиям оптимальности. Каждое значение ?j есть не что иное, как кратчайшее расстояние от пункта Pi до пункта Pj, j=2,3,...,n.
Во втором случае, если для некоторых клеток (i,j) таблицы имеет место неравенство:
то значения ?j и ?i могут быть уменьшены.
Если справедливо (3), тогда исправим значение ?j0, пересчитав его по формуле:
Четвертый этап: Нахождение кратчайшего пути.
Определения последовательности пунктов кратчайшего маршрута. С этой целью для каждого столбца определяют величину:
lr1,j = ?j - ?r1, (5)
где lr1,j берется из таблицы, причем ?r1 выбирается так, чтобы выполнилось равенство (5). Таким образом определим r1. Далее продолжим ту же операцию, но будем считать, последней не Pn, а Pr1. Будем продолжать до тех пор, пока rn=1.
Таким образом кратчайший маршрут проходит через Pr1,Pr2,...,Prn, а длинна маршрута Lmin=lr2,r1+lr3,r2+...+lrn-1,rn.
Описание программы.
Программа "FORD" написана на языке высокого уровня - Pascal, в интегрированной среде разработки "Turbo Pascal 7.0" фирмы Borland Inc.
Программа предназначена для нахождения кратчайшего пути в сетевом графе по методу Форда. Программа легка в использовании, что достигается за счет использования дружественного интерфейса и иерархического меню. Вначале программы производится ввод данных, затем нахождение кратчайшего маршрута и вычисление его длинны, далее выводится результат. Вывод результатов возможен как в файл, так и на экран.
В программе предусмотрена возможность повторного решения задачи с другими исходными данными.
Описание подпрограмм и процедур.
Подпрограммы и функции.
После обработки таблицы с заданными исходными данными, программа выдает следующие результаты:
- кратчайший маршрут: 1-2-4-6
- длинна кратчайшего маршрута: 10
Исходная таблица расстояний для одного из вариантов не ранжированного графа:
После обработки таблицы с заданными исходными данными, программа выдает следующие результаты:
- кратчайший маршрут: 1-5-4-2-6
- длинна кратчайшего маршрута: 8