マトロイドの定義と具体例
更新
マトロイドとは,ベクトルの一次独立性の構造を抽象化したものです。
離散最適化(組合せ最適化)という分野の基本的な話題です。
とても抽象的ですが「ベクトルの一次独立」の意味が分かる高校生なら理解できる内容です。
マトロイドの定義と具体例
マトロイドの定義と具体例
まずはマトロイドの定義です。
有限集合 とその部分集合族 について,以下の3つの条件が成立するとき のペアをマトロイドと言う。
-
-
かつ なら
-
かつ ならある が存在して
定義だけではわかりにくいので,例を見てみましょう。
,
- は の部分集合たちの集合です。
- 公理1は「空集合はメンバーにいれる」というルールです。
- 公理2は「包含の意味で大きいものがメンバーなら小さいやつもメンバー」というルールです。例えば「 がメンバーなら も もメンバー」です。上記の例では確かにそのようになっています。
- 公理3がマトロイドの重要な部分です。「要素数の異なる2つのメンバーに対して,大きい方の元 をうまく選べば,それを小さい方に加えたものもメンバーとなる」というルールです。上記の例では例えば , とすると, として が取ってこれて, もメンバーになっています。
定義の補足
- 有限集合 は台集合と呼ばれます。
- の部分集合族 は独立集合族と呼ばれます。
- マトロイドには同値な定義がいくつもあります。ここでは独立集合族による定義を紹介しましたが,他にも基族による定義,階数による定義,サーキットによる定義などもあります。
マトロイドと行列
マトロイドと行列
行列 が与えられたときに以下のようにしてマトロイドが構成できます。
- 台集合 は の列のインデックスの集合とする。
- に対応する列ベクトルたちが一次独立なら を のメンバーとする。空集合もメンバーとする。
例えば, として図のような行列を考えると, の列数は なので となります。
また,列ベクトルたちが一次独立な集合たちを集めると, となります。
(一列目と二列目は一次独立だが,二列目と三列目は一次独立でないので は独立集合でない)
これは最初の例で紹介したマトロイドです。このように,行列から構成されるマトロイドを行列マトロイド(線形マトロイド,ベクトルマトロイド)と言います。
なお,任意の行列に対して上記のように構成した がマトロイドになることは線形代数の知識で簡単に確認できます。
マトロイドがなぜ嬉しいのか
マトロイドがなぜ嬉しいのか
-
線形マトロイド,グラフマトロイド,マッチングマトロイド,一様マトロイドなど,いろいろなところに登場します。ベクトルの一次独立性を抽象化した概念ですが,線形マトロイド以外にもたくさんのマトロイドがあります。
-
マトロイドは要素数最大化,線形関数最大化がしやすいです(貪欲アルゴリズムが成功する)。 →離散最適化において扱いやすい構造。
「マトロイド」という名前がかっこいいです。