К другим статьям

Школа ЕГЭ: информатика — алгоритм Флойда

4

Поделиться
Фон

Делимся разбором самых сложных заданий в Телеграм канале

Перейти в ТГ

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это только задание №1. Но в реальности понимание поиска кратчайших путей помогает в задании №27 (кластеризация) и развивает алгоритмическое мышление для второй части.

Алгоритм Флойда-Уоршелла — отличный тренажёр для понимания динамического программирования на графах, даже если он прямо не проверяется в ЕГЭ.

В этой статье я объясню, как разобраться в алгоритме без излишнего погружения в технические детали. Алгоритм полезен для развития структурного мышления, которое пригождается в задании №27 (кластеризация звёзд) и при решении олимпиадных задач.

Как работает алгоритм Флойда простыми словами

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

Представьте карту городов, где между некоторыми есть дороги с разной длиной, а между некоторыми — нет. Алгоритм Флойда (полное название — Флойда–Уоршелла) обрабатывает эту карту. Последовательно уточняет, существует ли более короткий маршрут от одного города к другому через промежуточные точки.

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

Основная логика: если путь от вершины i до вершины j через вершину k оказывается короче текущего известного расстояния, то матрица обновляется. Реализация — три вложенных цикла.

Важно понимать не механическое выполнение шагов, а логику перерасчёта, которая учит видеть взаимосвязи в данных. Этот подход полезен не только при решении задач на графы. Но и при оптимизации алгоритмов в программировании и анализе взаимосвязей в других областях.

Ошибки, которые совершают на ЕГЭ

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

На олимпиаде я однажды написал реализацию алгоритма Флойда и получил TLE (превышение времени), потому что не учёл ограничения. В ЕГЭ прямого задания на Флойд нет, но понимание принципа: улучшения пути через промежуточную вершину, помогает в задании №27, где нужно найти центры кластеров (минимальные суммы расстояний).

Причина — ошибка в индексах. Это распространённая проблема: легко перепутать, где ставить i, j и k, особенно при многократном повторении однотипных конструкций.

Я стал добавлять короткие комментарии к каждой строке, поясняющие, что именно делает этот блок. А также явно обрабатывать случай отсутствия ребра (обычно обозначается большим числом или «бесконечностью»). Это помогло избегать таких ошибок.

Другая частая трудность — игнорирование направленности графа. Если граф ориентированный, то наличие ребра из A в B не означает наличия ребра из B в A. При обновлении расстояний нужно проверять направление.

Некоторые ученики путают алгоритм Флойда с алгоритмом Дейкстры. Оба используются для поиска кратчайших путей. Дейкстра находит расстояния от одной заданной вершины до всех остальных, а Флойд — между всеми парами вершин. Разницу легко понять, если разобрать небольшой пример на бумаге (3-4 вершины). И выполнить оба алгоритма вручную.

Как объяснить алгоритм себе и другим

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

Для запоминания принципа работы алгоритма Флойда я рисовал таблицу и в ручную менял числа в блокноте, проговаривая вслух: «Если через эту вершину путь короче — переписываю». Это помогает понять логику пошагового уточнения расстояний.

Практическая последовательность действий при ручном разборе такова:

  1. Составьте матрицу расстояний между всеми вершинами графа.
  1. Для пар вершин, между которыми нет прямого ребра, задайте условно большое число (например, 10⁹), чтобы оно не влияло на сравнения.
  1. Затем последовательно переберите все вершины в качестве промежуточных (обычно обозначаются как k).
  1. Для каждой пары i и j проверьте условие: если сумма расстояний от i до k и от k до j меньше текущего расстояния от i до j, обновите значение в матрице.

После обработки всех промежуточных вершин матрица покажет кратчайшие пути между всеми парами. В этом алгоритме нет сложных формул, только последовательная проверка и обновление.

Выполнив вручную три итерации на небольшом графе (3-4 вершины), вы будете писать программный код почти автоматически. А понимание закрепится надолго.

Маленькая история из практики

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

Один мой знакомый при подготовке к олимпиаде по информатике придумал аналогию для алгоритма Флойда. Он сравнил вершины графа с людьми, а рёбра — с существующими знакомствами.

Если между двумя людьми нет прямого короткого пути, можно попробовать ввести промежуточного общего знакомого. Такой «социальный граф» наглядно показал, как через третье лицо можно сократить путь общения. Эта метафора помогла запомнить принцип работы алгоритма.

Я также использую наглядные образы при объяснении алгоритмов. Сухие формулы запоминаются хуже, чем связь с конкретным жизненным сценарием. Если в нужный момент формула забывается, визуальный образ помогает восстановить логику. Таким образом, объяснение не обязательно должно быть строго формальным. Иногда полезная аналогия работает эффективнее.

На экзамене, если вы не помните точную формулу, но понимаете принцип (например, «через промежуточную вершину путь может быть короче»), вы сможете восстановить последовательность действий.

Применение в жизни и вне экзамена

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

Хотя в ЕГЭ нет прямого задания на алгоритм Флойда, принцип встречается в задании №27 (кластеризация звёзд). Там нужно найти центр кластера — точку с минимальной суммой расстояний до всех остальных точек кластера.

В одном из проектов требовалось найти оптимальные маршруты поставок товаров между несколькими складами. Был выбран алгоритм Флойда, потому что он вычисляет кратчайшие пути сразу для всех пар точек. Применение алгоритма позволило сократить общую протяжённость маршрутов на 15 процентов, что имеет практическую ценность.

Этот пример показывает, что знание алгоритма выходит за рамки подготовки к экзамену. Может применяться в реальных задачах оптимизации.

Как прокачаться в этой теме

Когда я готовился к ЕГЭ по информатике, я думал, что алгоритмы на графах — это...

** изображение создано или обработано с помощью ИИ.

Для глубокого понимания алгоритма Флойда, а не только механического запоминания, я рекомендую несколько практических приёмов.

Решайте маленькие задачи вручную (на бумаге) и не переходите к написанию кода, пока не сможете устно объяснить логику каждого шага.

Изменяйте входные данные: добавляйте новые вершины, меняйте веса рёбер, добавляйте рёбра, наблюдайте, как меняется итоговая матрица.

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

Полезная последовательность действий для самостоятельной отработки:

  1. Сначала разобрать теоретическую основу — формулу обновления расстояния (если расстояние от i до k плюс расстояние от k до j меньше текущего расстояния от i до j, обновить).
  1. Затем написать код алгоритма вручную (не копируя готовые образцы) как минимум дважды, каждый раз на новом примере.
  1. Проверить результат на разных графах: на несвязных, на ориентированных, с разными весами.
  1. Объяснить алгоритм другому человеку или воображаемому слушателю — это выявляет пробелы в понимании.
  1. Выполнить «мини-отладку»: вывести промежуточные матрицы после каждой итерации по промежуточной вершине k, чтобы увидеть процесс последовательного уточнения.

После нескольких таких тренировок алгоритм перестанет вызывать трудности. Понимание его логики пригодится на экзамене и в практических задачах, связанных с оптимизацией маршрутов и анализа графов.

Готовы к сложным заданиям? Алгоритм Флойда — это уровень продвинутой подготовки. Если вы хотите уверенно решать задание №27 и понимать графы на 90+ баллов, приходите на наш онлайн-курс.

Фон

Хочешь начать готовиться, но остались вопросы?

Заполни форму, и мы подробно объясним, как устроена подготовка к ЕГЭ и ОГЭ в ЕГЭLAND

Саша Филатов

    Оставь заявку и мы свяжемся с тобой в течение 15 минут


    не повтори ошибки
    выпускников 2026

    Разберем, где ребята теряли баллы, как сдать ЕГЭ на 270+ и поступить на бюджет в 2027 году

    + Возможность выиграть технику Apple

    ЗАНЯТЬ МЕСТО
    Скидка на 8 марта