Что такое матроид? Визуальное введение

В линейной алгебре есть независимые векторы. В теории графов — ациклические множества рёбер (леса). На первый взгляд эти идеи никак не связаны, но они подчиняются одним и тем же абстрактным правилам. Матроид и есть эта абстракция.

Определение

Матроид — это пара M=(E,I)M = (E, \mathcal{I}), где EE — конечный носитель, а I\mathcal{I} — семейство подмножеств EE, называемых независимыми множествами, удовлетворяющее трём аксиомам:

(I1)I(I2)AI и BA    BI(I3)A,BI, A<B    eBA:A{e}I\begin{aligned} &\text{(I1)} && \emptyset \in \mathcal{I} \\ &\text{(I2)} && A \in \mathcal{I} \ \text{и}\ B \subseteq A \implies B \in \mathcal{I} \\ &\text{(I3)} && A, B \in \mathcal{I},\ |A| < |B| \implies \exists\, e \in B \setminus A : A \cup \{e\} \in \mathcal{I} \end{aligned}

(I2) — свойство наследственности: любое подмножество независимого множества независимо. (I3) — свойство обмена, и именно оно — сердце структуры: оно заставляет все максимальные независимые множества иметь одинаковый размер.

Графовый матроид

Самый наглядный пример берёт в качестве EE рёбра графа и называет множество рёбер независимым, если в нём нет цикла (то есть это лес). Визуализация ниже строит такое множество жадно: рёбра, сохраняющие ацикличность, добавляются, а рёбра, замыкающие цикл, отвергаются.

Базы, ранг и циклы

Любой матроид описывают три производных понятия:

В примере выше B={e1,e2,e3}B = \{e_1, e_2, e_3\} — база, ранг равен 33, а множества {e1,e2,e3,e4}\{e_1, e_2, e_3, e_4\} и {e1,e2,e5}\{e_1, e_2, e_5\} содержат цикл.

Зачем нужны матроиды: теорема о жадном алгоритме

Матроиды — не просто аккуратное обобщение: они точно определяют, когда жадность выигрывает. Назначим каждому элементу EE вес и запустим жадный алгоритм: отсортируем элементы и будем добавлять каждый, если он сохраняет независимость множества.

Теорема Радо–Эдмондса. Для наследственной системы множеств (E,I)(E, \mathcal{I}) жадный алгоритм возвращает базу максимального веса для любой весовой функции тогда и только тогда, когда (E,I)(E, \mathcal{I}) — матроид.

Применённая к графовому матроиду, это в точности алгоритм Краскала для минимального остовного дерева. Краскал работает не по счастливой случайности — а потому, что леса образуют матроид. \blacksquare