На этом шаге познакомимся с графами.
Поиск в ширину позволяет найти кратчайшее расстояние между двумя объектами. Однако сам термин "кратчайшее расстояние" может иметь много разных значений. Например, с помощью поиска в ширину можно:
Одни из самых полезных алгоритмов, работают с графами. Предположим, вы находитесь в пункте А и хотите добраться в пункт В. Вы намереваетесь доехать на автобусе с минимальным количеством пересадок. Возможные варианты:
Какой алгоритм использовать для поиска пути с наименьшим количеством шагов?
Можно ли сделать это за один шаг? На следующем рисунке выделены все места, в которые можно добраться за один шаг.
До пункта В невозможно добраться за один шаг.
А можно ли добраться до него за два шага?
И снова пункт В не выделен, а значит, до него невозможно добраться за два шага. Как насчет трех шагов?
На этот раз пункт В выделен. Следовательно, чтобы добраться из пункта А в пункт В по этому маршруту, необходимо сделать три шага.
Есть и другие маршруты, которые приведут вас в пункт В, но они длиннее (четыре шага). Алгоритм обнаружил, что кратчайший путь в пункт В состоит из трех шагов. Задача такого типа называется задачей поиска кратчайшего пути. Алгоритм для решения задачи поиска кратчайшего пути называется поиском в ширину.
Чтобы найти кратчайший путь из A в В, нам пришлось выполнить два шага:
На следующем шаге продолжим знакомство с графами.