マトロイドのコンピュータ上での表現

$M = (E,{\cal B})$を、基によって定義された マトロイドとする。

ここで、$|E| = m , \rank M = r$のとき、 $E = \{0,1,\ldots,m-1\}$としても、一般性を失わない。

マトロイドに関する操作をコンピュータプログラムとして実現するためには、 部分集合に対する集合算を効率良く実行しなければならない。 一方で、多くのプログラミング言語では$\{0,1\}$の列(ビット列)の論理演算が 予め用意されており、しかも高速に実行されることが期待される。

そこで$E$の部分集合を、以下のようにビット列として表現することにする。
$E$の部分集合$A$に対して、$\{\chi_A(i)\}_{0 \le i < m}$を

\[ \chi_A(i) = \left\{ \begin{array}{ll} 0 & i \not \in A \\ 1 & i \in A \end{array} \right. \]
によって定める。

$n = |{\cal B}|$とし、${\cal B} = \{B_{0},B_{1},\ldots,B_{n-1}\}$であるとする。 $M$に対して第$p$行($0 \le p < n$)が$\chi_{B_p}$であるような$n \times m$行列 ${\cal M}$が定まる。 結局、元数$m$の集合上の階数$r$のマトロイドは$m$列の行列で 表わされ、さらに同型なマトロイドに対応する行列は、 行の置換および列の置換を施すことによって得られることがわかる。