문제 정의
같은 바탕 집합 \(E\) 위의 두 매트로이드 \(M_1 = (E, \mathcal{I}_1)\), \(M_2 = (E, \mathcal{I}_2)\)가 있다. 매트로이드 교집합 문제는
$$ \max\{ |S| : S \in \mathcal{I}_1 \cap \mathcal{I}_2 \} $$
를 찾는 것. 즉 두 독립성 제약을 동시에 만족하는 최대 집합.
주의: \(\mathcal{I}_1 \cap \mathcal{I}_2\) 자체는 보통 매트로이드가 아니다. 그래서 단일 그리디가 통하지 않고 별도 알고리즘이 필요하다.
왜 강력한가
많은 고전 문제가 두 매트로이드 교집합으로 환원된다.
| 문제 | \(M_1\) | \(M_2\) |
|---|---|---|
| 이분 매칭 | 분할(좌측 차수\(\le1\)) | 분할(우측 차수\(\le1\)) |
| 색 제한 신장 트리 | 그래프 | 분할(색별 한도) |
| 방향 신장 트리(arborescence) | 그래프 | 분할(진입 차수\(\le1\)) |
| 두 색 분리 신장 숲 | 그래프 | 분할 |
이분 매칭이 특수 사례라는 점이 교집합의 일반성을 보여준다.
교환 그래프(exchange graph)
현재 공통 독립 집합 \(S\)가 있을 때, 교환 그래프 \(D_S\)를 만든다. 정점은 \(E\), 간선은:
- \(y \in S\), \(x \notin S\)에 대해 \(S - y + x \in \mathcal{I}_1\)이면 \(y \to x\) 간선.
- \(S - y + x \in \mathcal{I}_2\)이면 \(x \to y\) 간선.
또 두 종류의 "출발/도착" 집합:
- \(X_1 = \{x \notin S : S + x \in \mathcal{I}_1\}\) (\(M_1\) 기준 그냥 추가 가능)
- \(X_2 = \{x \notin S : S + x \in \mathcal{I}_2\}\)
증강(augmenting) 정리
정리(Lawler). \(X_1\)에서 \(X_2\)로 가는 \(D_S\)의 최단 경로 \(P\)가 존재하면, \(S \triangle V(P)\)(대칭차)는 크기가 \(|S|+1\)인 공통 독립 집합이다. 그런 경로가 없으면 \(S\)가 최대.
여기서 최단 경로(간선 수 최소, chordless)여야 한다는 조건이 중요하다. 최단성이 깨지면 대칭차가 독립성을 잃을 수 있다.
정당성의 핵심 보조정리
최단 경로 \(x_0 \to y_1 \to x_1 \to \dots \to x_k\) (\(x_0 \in X_1, x_k \in X_2\))에서, \(M_1\) 쪽 교환을 차례로 적용하면 유일 매칭 성질(unique perfect matching in the exchange subgraph) 덕분에 독립성이 보존된다. 최단 경로는 "지름길 간선"이 없어 이 유일성을 보장한다. 두 매트로이드 각각에 대해 교환 공리를 한 단계씩 적용한 결과가 합쳐져 \(|S|+1\) 독립 집합이 된다.
알고리즘 골격
S = 빈 집합
반복:
교환 그래프 D_S 구성
X1 → X2 최단 경로 BFS
경로 없으면 종료
S = S ⊕ V(경로)
각 증강이 \(S\)를 1 키우므로 최대 \(r = \min(r_1, r_2)\)번. 다음 강의에서 복잡도와 구현.