Что такое матроид? Визуальное введение
В линейной алгебре есть независимые векторы. В теории графов — ациклические множества рёбер (леса). На первый взгляд эти идеи никак не связаны, но они подчиняются одним и тем же абстрактным правилам. Матроид и есть эта абстракция.
Определение
Матроид — это пара , где — конечный носитель, а — семейство подмножеств , называемых независимыми множествами, удовлетворяющее трём аксиомам:
(I2) — свойство наследственности: любое подмножество независимого множества независимо. (I3) — свойство обмена, и именно оно — сердце структуры: оно заставляет все максимальные независимые множества иметь одинаковый размер.
Графовый матроид
Самый наглядный пример берёт в качестве рёбра графа и называет множество рёбер независимым, если в нём нет цикла (то есть это лес). Визуализация ниже строит такое множество жадно: рёбра, сохраняющие ацикличность, добавляются, а рёбра, замыкающие цикл, отвергаются.
Базы, ранг и циклы
Любой матроид описывают три производных понятия:
- База — максимальное независимое множество. По аксиоме обмена все базы имеют одинаковую мощность. Для графового матроида связного графа база — это остовное дерево.
- Ранг — этот общий размер. Граф на вершинах имеет ранг .
- Цикл (circuit) — минимальное зависимое множество. В графовом матроиде цикл — это в точности цикл в графе.
В примере выше — база, ранг равен , а множества и содержат цикл.
Зачем нужны матроиды: теорема о жадном алгоритме
Матроиды — не просто аккуратное обобщение: они точно определяют, когда жадность выигрывает. Назначим каждому элементу вес и запустим жадный алгоритм: отсортируем элементы и будем добавлять каждый, если он сохраняет независимость множества.
Теорема Радо–Эдмондса. Для наследственной системы множеств жадный алгоритм возвращает базу максимального веса для любой весовой функции тогда и только тогда, когда — матроид.
Применённая к графовому матроиду, это в точности алгоритм Краскала для минимального остовного дерева. Краскал работает не по счастливой случайности — а потому, что леса образуют матроид.