📚 Теория: Задание 4 ОГЭ — Анализ простейшей модели объектов
🗺️ Что такое граф?
Граф — это математическая модель, состоящая из множества вершин (точек) и множества рёбер (линий, соединяющих вершины).
В заданиях ОГЭ графы используются для моделирования дорожных сетей, где:
- Вершины — населённые пункты (A, B, C, D, E...)
- Рёбра — дороги между пунктами с указанием протяжённости
Пример графа
📊 Матрица расстояний
Информация о графе может быть представлена в виде матрицы расстояний (таблицы), где:
- Строки и столбцы соответствуют вершинам графа
- На пересечении строки и столбца указано расстояние между соответствующими пунктами
- Пустая ячейка или прочерк означает отсутствие прямой дороги
Пример матрицы
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | - | 2 | 3 | - | - |
| B | 2 | - | 4 | 5 | - |
| C | 3 | 4 | - | 1 | - |
| D | - | 5 | 1 | - | 6 |
| E | - | - | - | 6 | - |
Жёлтым выделены дороги из пункта A: до B (2 км) и до C (3 км).
🔍 Типы задач задания 4 ОГЭ
📍 Кратчайший путь между двумя пунктами
Найти минимальное расстояние от пункта X до пункта Y.
📍 Путь через определённый пункт
Найти кратчайший путь от X до Y, который обязательно проходит через пункт Z.
📝 Алгоритм решения
Основной способ решения задания 4 — построение дерева путей. Дерево наглядно показывает все возможные маршруты от начального пункта к конечному и помогает ничего не пропустить. Остальные способы (перебор списком и алгоритм Дейкстры) приведены ниже как дополнительные.
🛤️ Основной способ: построение дерева путей
От начального пункта последовательно «выращиваем» ветви ко всем пунктам, куда есть дорога из текущего, не возвращаясь в уже посещённые пункты:
- Начните с начального пункта — это корень дерева
- От корня проведите ветви ко всем пунктам, куда можно попасть напрямую
- На каждой ветви подпишите расстояние
- От каждого нового пункта проведите ветви дальше, не возвращаясь к уже посещённым
- Продолжайте, пока не достигнете конечного пункта
- Сложите расстояния вдоль каждой ветви от корня до конечного пункта
- Выберите путь с минимальной суммой
Пример дерева путей
Рассмотрим граф из примера выше и для поиска пути из A в E построим дерево всех возможных маршрутов:
Все возможные пути из A в E:
- A → C → E = 3 + 2 = 5 км ← кратчайший!
- A → B → C → E = 2 + 4 + 2 = 8 км
- A → C → D → E = 3 + 1 + 6 = 10 км
- A → B → D → C → E = 2 + 5 + 1 + 2 = 10 км
- A → B → C → D → E = 2 + 4 + 1 + 6 = 13 км
- A → B → D → E = 2 + 5 + 6 = 13 км
- A → C → B → D → E = 3 + 4 + 5 + 6 = 18 км
Ответ: Кратчайший путь A → C → E = 5 км
Справа от каждой вершины указано накопленное расстояние от начального пункта A. Зелёным цветом выделен кратчайший путь.
⚠️ Важно!
Строя дерево, двигайтесь только по дорогам, указанным в таблице. Если ячейка пуста — дороги нет!
Дополнительно: перебор путей списком
Тот же результат можно получить, выписав все маршруты списком — без рисунка:
- Выпишите все возможные маршруты из начального пункта в конечный
- Для каждого маршрута посчитайте суммарное расстояние
- Выберите маршрут с минимальным расстоянием
Дополнительно: алгоритм Дейкстры (для больших графов)
Алгоритм пошагового нахождения кратчайшего пути:
- Отметьте начальную вершину расстоянием 0, остальные — ∞
- Выберите непосещённую вершину с минимальным расстоянием
- Для каждой соседней вершины пересчитайте расстояние через текущую
- Если новое расстояние меньше — обновите его
- Повторяйте шаги 2-4, пока не достигнете целевой вершины
✏️ Примеры решения задач
Пример 1: Кратчайший путь между двумя пунктами
Условие: Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых приведена в таблице. Определите длину кратчайшего пути между пунктами A и D.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | - | 2 | 5 | - | - |
| B | 2 | - | 3 | - | - |
| C | 5 | 3 | - | 4 | 2 |
| D | - | - | 4 | - | 1 |
| E | - | - | 2 | 1 | - |
Расстояние: 2 + 3 + 4 = 9
Расстояние: 2 + 3 + 2 + 1 = 8 ← минимальный!
Расстояние: 5 + 4 = 9
Расстояние: 5 + 2 + 1 = 8 ← минимальный!
Пример 2: Путь через определённый пункт
Условие: Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых приведена в таблице. Определите длину кратчайшего пути между пунктами A и E, проходящего через пункт C.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | - | 1 | - | - | - |
| B | 1 | - | 2 | - | 7 |
| C | - | 2 | - | 3 | 4 |
| D | - | - | 3 | - | 2 |
| E | - | 7 | 4 | 2 | - |
Пример 3: Граф с 6 вершинами
Условие: Между населёнными пунктами A, B, C, D, E, F построены дороги, протяжённость которых приведена в таблице. Определите длину кратчайшего пути между пунктами A и F, проходящего через пункт C.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| A | - | 3 | - | - | - | - |
| B | 3 | - | 1 | - | 4 | - |
| C | - | 1 | - | 2 | 5 | - |
| D | - | - | 2 | - | 1 | 3 |
| E | - | 4 | 5 | 1 | - | 2 |
| F | - | - | - | 3 | 2 | - |
⚠️ Частые ошибки
- Пропуск путей — не все возможные маршруты рассмотрены
- Неправильное чтение таблицы — путаница между строками и столбцами
- Игнорирование условия — путь должен проходить через указанный пункт
- Арифметические ошибки — неправильное сложение расстояний
- Выбор не кратчайшего пути — сравните все ветви дерева и выберите минимальную
💡 Полезные советы
Как строить дерево путей
- Корень дерева — начальный пункт
- Из каждого пункта проводите ветви ко всем ещё не посещённым соседям
- Подписывайте на ветвях протяжённость дорог
- Заканчивайте ветвь, когда пришли в конечный пункт или в тупик
- Сравнивайте длину всех ветвей, ведущих в конечный пункт
Быстрая проверка для задач «через пункт»
- Постройте дерево и оставьте только ветви, проходящие через нужный пункт (например, C)
- Среди них найдите ветвь с минимальной длиной
Короткая альтернатива: сложить кратчайший путь от начала до C и кратчайший путь от C до конца.
Проверка ответа
- Убедитесь, что все дороги в пути существуют (есть в таблице)
- Проверьте, что путь начинается и заканчивается в нужных пунктах
- Если есть условие про промежуточный пункт — проверьте, что путь через него проходит
🎯 План решения задачи
- 📝 Внимательно прочитайте условие задачи
- 🔍 Определите начальный и конечный пункты, а также обязательные промежуточные пункты (если есть)
- 📊 Изучите таблицу расстояний
- 🌳 Постройте дерево путей от начального пункта к конечному
- 🔢 Посчитайте длину каждой ветви (маршрута) и сравните их
- ✅ Выберите кратчайший путь и запишите ответ