Калькулятор минимального остовного дерева
Вычислите минимальное остовное дерево (MST) взвешенного графа с помощью алгоритма Краскала или Прима. Включает интерактивную визуализацию графа, пошаговую трассировку алгоритма и анимацию выбора ребер.
Ваш блокировщик рекламы мешает показывать объявления
MiniWebtool бесплатен благодаря рекламе. Если этот инструмент помог, поддержите нас через Premium (без рекламы + быстрее) или добавьте MiniWebtool.com в исключения и обновите страницу.
- Или перейдите на Premium (без рекламы)
- Разрешите показ рекламы на MiniWebtool.com, затем перезагрузите страницу.
О Калькулятор минимального остовного дерева
Добро пожаловать в Калькулятор минимального остовного дерева — интерактивный инструмент для вычисления MST взвешенного графа с использованием алгоритмов Крускала или Прима. Независимо от того, изучаете ли вы теорию графов, проектируете сетевую инфраструктуру или оптимизируете распределение ресурсов, этот калькулятор обеспечивает наглядное пошаговое изучение двух основополагающих алгоритмов комбинаторной оптимизации.
Что такое минимальное остовное дерево (MST)?
Минимальное остовное дерево связного неориентированного взвешенного графа — это подмножество ребер, которое:
- Соединяет все вершины вместе (остовное)
- Не содержит циклов (дерево)
- Имеет минимально возможный общий вес ребер
Для графа с V вершинами MST всегда имеет ровно V - 1 ребер. Если граф несвязен, результатом является минимальный остовный лес — совокупность MST для каждого компонента связности.
Алгоритм Крускала
Алгоритм Крускала — это жадный алгоритм, основанный на ребрах, который строит MST, обрабатывая ребра в порядке возрастания их веса. Он использует структуру данных Union-Find (система непересекающихся множеств) для эффективного обнаружения циклов.
Псевдокод Крускала
MST ← пустое множество
Сортировать все ребра по весу (по возрастанию)
Инициализировать Union-Find для всех вершин
для каждого ребра (u, v, w) в отсортированных ребрах:
если Find(u) ≠ Find(v): // разные компоненты
MST ← MST ∪ {(u, v, w)}
Union(u, v) // объединить компоненты
вернуть MST
Алгоритм Прима
Алгоритм Прима — это жадный алгоритм, основанный на вершинах, который выращивает MST из начальной вершины. На каждом шаге он добавляет самое дешевое ребро, соединяющее вершину в дереве с вершиной вне дерева.
Псевдокод Прима
MST ← пустое множество
inMST ← {start}
PQ ← очередь с приоритетом с ребрами из start
пока PQ не пуста и |inMST| < |V|:
(w, u, v) ← извлечь минимум из PQ
если v ∉ inMST:
MST ← MST ∪ {(u, v, w)}
inMST ← inMST ∪ {v}
Добавить все ребра из v в PQ
вернуть MST
Крускал против Прима: что выбрать?
| Характеристика | Крускал | Прим |
|---|---|---|
| Подход | На основе ребер (глобальная сортировка) | На основе вершин (локальный рост) |
| Структура данных | Union-Find | Очередь с приоритетом |
| Временная сложность | \( O(E \log E) \) | \( O((V + E) \log V) \) |
| Лучше всего для | Разреженных графов | Плотных графов |
| Несвязные графы | Создает остовный лес | Охватывает только компонент начального узла |
| Параллелизуемость | Легче параллелизуется | Последователен по своей природе |
Как использовать этот калькулятор
- Определите ребра графа: Введите ребра в формате
узел1, узел2, вес, по одному в строке. MST работает с неориентированными графами, поэтому каждое ребро действует в обоих направлениях. - Выберите алгоритм: Выберите Крускала для разреженных графов или Прима для плотных. Оба алгоритма дают оптимальное MST.
- Установите начальный узел (только для Прима): При желании укажите, с чего алгоритм Прима начинает работу. Это влияет на порядок выбора ребер, но не на общий вес MST.
- Вычислите MST: Нажмите «Найти MST», чтобы запустить алгоритм. Изучите интерактивную визуализацию, таблицу ребер и пошаговый след.
- Пройдите по шагам: Используйте кнопки «Далее/Назад», чтобы наблюдать за выполнением алгоритма шаг за шагом с подсветкой на холсте в реальном времени.
Понимание результатов
Таблица ребер MST
Показывает каждое ребро, выбранное для MST, в порядке их добавления, вместе с индивидуальными весами и общим весом MST.
Визуализация графа
На интерактивном холсте ваш граф отображается с цветовой кодировкой элементов:
- Зеленые узлы и ребра = Часть MST
- Оранжевая подсветка = Проверяемое в данный момент ребро/узел
- Серые элементы = Еще не включены в MST
Пошаговое отслеживание
Показывает каждое решение алгоритма: какое ребро исследуется, было ли оно принято или отклонено (и почему), а также текущее состояние построения MST.
Реальные применения MST
Проектирование сетей
Классическое применение. При соединении узлов (городов, серверов, электроприборов) с минимальной общей длиной кабеля, оптоволокна или труб MST дает оптимальное решение. Телекоммуникационные компании используют алгоритмы на основе MST для минимизации затрат на инфраструктуру.
Кластерный анализ
В машинном обучении и науке о данных кластеризация на основе MST (например, метод одиночной связи) группирует точки данных, удаляя самые длинные ребра из MST. Это создает естественные кластеры без необходимости заранее указывать их количество.
Сегментация изображений
Алгоритмы компьютерного зрения используют MST для сегментации изображений на значимые области. Пиксели являются узлами, веса ребер представляют разницу в цвете/интенсивности, а разрезание ребер MST разделяет отдельные объекты.
Приближенные алгоритмы
MST обеспечивает 2-приближение для метрической задачи коммивояжера (TSP). Вес MST является нижней границей оптимального тура TSP, а удвоение ребер MST дает тур в пределах 2-кратного оптимума.
Проектирование схем
При проектировании СБИС-чипов используется MST (через варианты дерева Штейнера) для минимизации общей длины проводов, соединяющих компоненты на печатной плате, что снижает задержку сигнала и стоимость производства.
Ключевые свойства MST
- Свойство разреза: Для любого разреза графа ребро с минимальным весом, пересекающее разрез, входит в MST.
- Свойство цикла: Для любого цикла в графе ребро с максимальным весом в цикле НЕ входит в MST (при условии уникальности весов).
- Уникальность: Если все веса ребер различны, MST уникально. При наличии дубликатов весов может существовать несколько валидных MST с одинаковым общим весом.
- Подграф: MST — это подграф с V-1 ребрами и без циклов.
Часто задаваемые вопросы
Что такое минимальное остовное дерево (MST)?
Минимальное остовное дерево — это подмножество ребер связного неориентированного взвешенного графа, которое соединяет все вершины вместе с минимально возможным общим весом ребер и без образования циклов. MST имеет ровно V-1 ребер для графа с V вершинами.
В чем разница между алгоритмами Крускала и Прима?
Алгоритм Крускала основан на ребрах: он сортирует все ребра по весу и жадно добавляет те, которые не создают циклов, используя структуру данных Union-Find. Алгоритм Прима основан на вершинах: он выращивает MST из начального узла, всегда добавляя самое дешевое ребро, соединяющее дерево с новой вершиной, используя очередь с приоритетом. Оба дают оптимальные MST, но могут отличаться порядком выбора ребер.
Когда следует использовать алгоритм Крускала, а когда Прима?
Крускал обычно лучше для разреженных графов (мало ребер по отношению к узлам) со сложностью O(E log E). Прим лучше для плотных графов со сложностью O(E log V) при использовании бинарной кучи. Для очень плотных графов Прим с кучей Фибоначчи достигает O(E + V log V).
Может ли граф иметь несколько валидных MST?
Да, граф может иметь несколько валидных MST, если есть ребра с равными весами. Разные MST будут иметь одинаковый общий вес, но могут включать разные ребра. Крускал и Прим могут давать разные MST для одного и того же графа, но оба будут иметь одинаковый минимальный общий вес.
Каковы реальные применения MST?
MST используются в сетевом дизайне (минимизация длины кабеля), компоновке печатных плат, кластерном анализе, сегментации изображений, построении таксономии, аппроксимации задачи коммивояжера и строительстве инфраструктурных сетей с минимальными затратами.
Работает ли MST на несвязных графах?
Настоящий MST требует связного графа. Если граф несвязен, алгоритмы создадут минимальный остовный лес — коллекцию MST, по одному для каждого компонента связности. Этот калькулятор укажет, когда граф не полностью связен.
Дополнительные ресурсы
Ссылайтесь на этот контент, страницу или инструмент так:
"Калькулятор минимального остовного дерева" на сайте https://ru.miniWebtool.com// от MiniWebtool, https://MiniWebtool.com/
командой miniwebtool. Обновлено: 19 февраля 2026 г.
Вы также можете попробовать наш AI Решатель Математических Задач GPT, чтобы решить ваши математические проблемы с помощью вопросов и ответов на естественном языке.