М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Kotnakompe
Kotnakompe
06.04.2021 14:04 •  Информатика

Между населёнными пунк­та­ми A, B, C, D по­стро­е­ны до­ро­ги, про­тяжённость ко­то­рых (в ки­ло­мет­рах) при­ве­де­на в таб­ли­це. A B C D
A 2 7 4
B 2 5 1
C 7 5 2
D 4 1 2

Опре­де­ли­те длину крат­чай­ше­го пути между пунк­та­ми A и C. Пе­ре­дви­гать­ся можно толь­ко по до­ро­гам, про­тяжённость ко­то­рых ука­за­на в таб­ли­це.


Между населёнными пунк­та­ми A, B, C, D по­стро­е­ны до­ро­ги, про­тяжённость ко­то­рых (в ки­ло­мет

👇
Ответ:
gfjew56df
gfjew56df
06.04.2021
Для решения этой задачи мы можем использовать алгоритм Дейкстры, который позволяет найти кратчайший путь между двумя вершинами во взвешенном графе. Шаг 1: Построение таблицы инициализации Начнем с вершины A и создадим таблицу с тремя столбцами: "Вершина", "Расстояние" и "Предшественник". Запишем в таблицу все вершины, кроме A, и установим расстояние до них как бесконечность (если расстояние между A и вершиной есть, то записываем его). Установим начальное расстояние до вершины A равным 0. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | Бесконеч. | NULL | | C | Бесконеч. | NULL | | D | Бесконеч. | NULL | Шаг 2: Выбор вершины с минимальным расстоянием Из таблицы выбираем вершину с минимальным расстоянием. В данном случае это вершина A. Помечаем ее как посещенную. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | Бесконеч. | NULL | | C | Бесконеч. | NULL | | D | Бесконеч. | NULL | | A | 0 | NULL | Шаг 3: Обновление расстояний Для каждой вершины, смежной с A, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину A. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины B: Расстояние через A до B будет 2 (расстояние от A до B), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | Бесконеч. | NULL | | D | Бесконеч. | NULL | | A | 0 | NULL | Для вершины C: Расстояние через A до C будет 4 (расстояние от A до C), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 4 | A | | D | Бесконеч. | NULL | | A | 0 | NULL | Для вершины D: Расстояние через A до D будет 4 (расстояние от A до D), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 4 | A | | D | 4 | A | | A | 0 | NULL | Шаг 4: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина B. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 4 | A | | D | 4 | A | | A | 0 | NULL | Шаг 5: Обновление расстояний Для каждой вершины, смежной с вершиной B, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину B. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины C: Расстояние через B до C будет 5 (расстояние от B до C через A), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 5 | B | | D | 4 | A | | A | 0 | NULL | Для вершины D: Расстояние через B до D будет 7 (расстояние от B до D через A), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 5 | B | | D | 7 | B | | A | 0 | NULL | Шаг 6: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина C. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 5 | B | | D | 7 | B | | A | 0 | NULL | Шаг 7: Обновление расстояний Для каждой вершины, смежной с вершиной C, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину C. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины D: Расстояние через C до D будет 5 (расстояние от C до D), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 8: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина D. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 2 | A | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 9: Обновление расстояний Для каждой вершины, смежной с вершиной D, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину D. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины B: Расстояние через D до B будет 4 (расстояние от D до B), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 10: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина B. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 11: Обновление расстояний Для каждой вершины, смежной с вершиной B, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину B. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины C: Расстояние через B до C будет 5 (расстояние от B до C через D), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 12: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина C. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 13: Обновление расстояний Для каждой вершины, смежной с вершиной C, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину C. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины D: Расстояние через C до D будет 5 (расстояние от C до D), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 14: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина D. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 15: Обновление расстояний Для каждой вершины, смежной с вершиной D, проверяем, можно ли добраться до нее с меньшим расстоянием через вершину D. Если можно, то обновляем расстояние и предшественника в таблице. Для вершины B: Расстояние через D до B будет 4 (расстояние от D до B через C), обновляем таблицу. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | Шаг 16: Выбор следующей вершины с минимальным расстоянием Выбираем следующую вершину с минимальным расстоянием из еще не посещенных вершин. В данном случае это вершина B. | Вершина | Расстояние | Предшественник | |---------|------------|----------------| | B | 4 | D | | C | 5 | B | | D | 5 | C | | A | 0 | NULL | В этот момент все вершины уже посещены и таблица завершена. Последняя строка таблицы соответствует вершине C и ее кратчайшее расстояние равно 5. Таким образом, длина кратчайшего пути между пунктами A и C составляет 5 километров.
4,5(87 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ