拟阵简介
拟阵理论可用于判断一个问题能否通过贪心策略求解,或者说用于证明一个贪心策略是否正确。其能够涵盖许多用贪心法求解的问题,但不是所有的贪心算法都符合拟阵理论。
拟阵的定义
称一个有序对 M = ( S , L ) M=(S,L) M=(S,L) 为拟阵,如果它满足以下条件:
- 有穷: S S S 是一个有穷集合。
- 遗传性: L L L 为 S S S 的一个非空子集组成的集合,满足如果 B ∈ L B\in L B∈L 且 A ⊆ B A\subseteq B A⊆B,那么 A ∈ L A\in L A∈L。称 L L L 的元素为独立子集。显然空集 ∅ ∈ L \empty\in L ∅∈L。
- 交换性:如果 A ∈ L , B ∈ L A\in L,B\in L A∈L,B∈L,且 ∣ A ∣ < ∣ B ∣ |A|<|B| ∣A∣<∣B∣,则存在某个元素 x ∈ B − A x\in B-A x∈B−A 使得 A ∪ { x } ∈ L A\cup \{x\}\in L A∪{ x}∈L。
拟阵的例子
对于一个矩阵 A A A,令 S S S 为 A A A 所有行组成的集合。
S S S 的子集 T T T 满足 T ∈ L T\in L T∈L 当且仅当 T T T 中的行线性无关。
容易证明 ( S , L ) (S,L) (S,L) 构成一个拟阵。
极大独立子集
扩张
对于拟阵 M = ( S , L ) M=(S,L) M=(S,L),集合 A ∈ L A\in L A∈L,元素 x ∉ A x\notin A x∈/A,如果能保证把 x x x 加入到 A A A 中并保持 A A A 的独立性,即 A ∪ { x } ∈ L A\cup \{x\}\in L