Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом

Для розв'язання задачі ми будемо використовувати символ Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Для спрощення розгляду припустимо, що всі цілі числа менше Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , так що Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru для кожного додатнього цілого числа Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru та Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Приймемо також, що Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Це - для зручності позначень.

Для поліпшення системи позначень використовується наступне визначення.

Визначення. Нехай Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru й Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — матриці-рядка, де кожне з Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru й Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — ненегативні цілі числа або Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Визначення. Нехай Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — число, а Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru матриця-

рядок. Тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Задача 2. Задано граф. Необхідно визначити найкоротшу відстань між будь-якими двома вершинами графа.

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru

Рішення. Застосуємо алгоритм Флойда-Уоршолла. Нехай Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — матриця, де Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага ребра Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru якщо ребро існує й Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru у противному випадку. У нашому випадку

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Знайдемо вагу всіх шляхів довжини 2, або 2-шляхів, у яких середньою вершиною є вершина Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Починаємо з першого стовпця. Знаходимо перший рядок у першому стовпці, у якій є позитивне ціле число. У цьому випадку це число 2 у другому рядку. Таким чином, існує ребро з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . вагою 2. Якщо в першому рядку на позиції Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru є ціле число Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , то існує ребро з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru вагою Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага 2-шляху з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru у вершину Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Таким чином, якщо додати 2 до кожного елемента в першому рядку, то одержимо рядок, яку варто розглядати як матрицю-рядок, позначаючи її Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , так що Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага шляху довжини 2 з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Якщо розглядати Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , другий рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru як матрицю-рядок, тоді . Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага шляху довжини 1 з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Оскільки нас цікавить найкоротший шлях для кожного Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , заміняємо другий рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Аналогічним образом, у четвертому рядку першого стовпця перебуває число 3, тобто існує ребро з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru - до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru вагою 3. Якщо в першому рядку на позиції Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru є ціле число Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , то існує ребро з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru вагою Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага 2-шляху з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Отже, якщо додати 3 до кожного елемента в першому рядку, то одержимо рядок, яку варто розглядати як матрицю-рядок, позначаючи її Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , так що Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага 2-шляху з Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru к. Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru Якщо розглядати Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru четвертий рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru як матрицю-рядок, тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага шляхи довжини 1 з Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru к. Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru Оскільки нас цікавить найкоротший шлях для кожного Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , заміняємо четвертий рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . І тому що в інших строкаx першого стовпця більше немає позитивних цілих чисел, перший етап завершений, у результаті якого маємо

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Тепер розглянемо другий стовпець матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Якщо в Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -тім рядку другого стовпця є число Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , то існує ребро з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru вагою Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Якщо в рядку Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на позиції Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru є ціле число Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , то існує ребро з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru вагою Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — вага шляху з Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru к. Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru Отже, якщо додати число Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru до кожного елемента в другому рядку, то одержимо рядок, яку варто розглядати як матрицю-рядок, позначаючи її Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , так що Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — довжина 2-шляху з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru к. Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru Якщо розглядати Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -тую рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru як матрицю-рядок, тоді Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru — довжина шляхи з вершини Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru к. Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru Оскільки нас цікавить найкоротший шлях для всіх Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , заміняємо Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -тую рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . У другому стовпці є число 2 у першому рядку, число 4 із третьому рядку, число 5 - у четвертому рядку й число 1- у п'ятому рядку. Використовуючи цей процес для кожного з наступних рядків, отримаємо

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru

Розглянемо тепер третій стовпець матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Для кожної позиції Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на якій є позитивне ціле число, додаємо це число до третього рядка матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , одержуючи матрицю-рядок Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , після чого покладемо Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru рівної Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -ой рядку матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Далі заміняємо Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -у рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru й одержуємо

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Тепер розглянемо четвертий стовпець матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Для кожного позитивного елемента на позиції Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru додаємо це значення до четвертого рядка матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru , щоб одержати Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru й покласти Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru рівної Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -ой рядку матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Далі заміняємо Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -у рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru й одержуємо

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Нарешті, розглянемо п'ятий стовпець матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Для кожного позитивного елемента на позиції Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru додаємо це значення до п'ятого рядка матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru одержуючи Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru й думаємо Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru рівної Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -ой рядку матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru . Далі заміняємо Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru -у рядок матриці Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru на Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru одержуємо

Знаходження найкоротшого шляху між будь-якими двома вершинами графа матричним методом - student2.ru .

Наши рекомендации