1

マトロイドと貪欲アルゴリズム

50
0
$$$$

様々な最適化問題を効率良く解くことができる構造であるマトロイドの性質について見る。

マトロイド

有限集合$E$$E$の部分集合族$\mathcal{I}$の組$(E,\mathcal{I})$がマトロイドであるとは、以下の3つの条件を満たすことを言う。また、$\mathcal{I}$の元を独立集合という。

  1. $0\in\mathcal{I}$
  2. $\forall Y\in\mathcal{I},\ \forall X\subset Y,\ X\in\mathcal{I}$
  3. $\forall X,\,Y\in\mathcal{I},\ |X|<|Y|\Rightarrow \exists y\in Y\setminus X,\ X\cup\{y\}\in\mathcal{I}$

マトロイドは英語ではmatroidと書かれるが、これは行列(matrix)に関連がある。マトロイドは線形独立なベクトルの集合の族の満たす性質を抽出したものであるためである。$\mathcal{I}$を全てのベクトル空間$V$の独立部分集合の集まりとすると、確かに$\mathcal{I}$は条件1から3をすべて満たす。
$(E,\mathcal{I})$をマトロイドとする。このとき、次のような問題を考える。

コスト関数$c:E\to\mathbb{R}_{\geq0}$が与えられたとき、$\sum_{x\in I}c(x)$を最大にする$I\in\mathcal{I}$を求めよ。

この問題は以下のようなアルゴリズム(貪欲法)によって解くことができることが知られている。

  1. $S=\emptyset$とする。
  2. $x\in E\setminus S$$S\cup\{x\}\in\mathcal{I}$となるものがあるとき、その中で$c(x)$が最大となるものを$S$に追加する。そのような$x$がない場合はそこでアルゴリズムを停止し、答えとして$S$を返す。
  3. 2を繰り返す。

これを示す。まずは極大な独立集合のサイズがすべて等しいことを示す。

$I\in\mathcal{I}$が極大であるとは、$J\in\mathcal{I}$$J\supset I$となるものが存在しないことを指す。

$I,\,J\in\mathcal{I}$が極大であるとき、$|I|=|J|$

$|I|<|J|$と仮定する。このとき、マトロイドの定義よりある$x\in J\setminus I$$I\cup\{x\}\in\mathcal{I}$となるものが存在する。これは$I$が極大であることに矛盾する。

問題1は$E$がマトロイドであるとき貪欲アルゴリズムによって最適解が求まる。

貪欲アルゴリズムによって得られた解が最適解ではないと仮定する。
貪欲アルゴリズムによって得られる独立集合を$S$とする。また、最適解を$T$とする。このとき、$S$は貪欲アルゴリズムの定め方より独立集合であり、$c$は非負なので$T$は独立である。よって、$|S|=|T|(=n\text{とする})$である。$S$に含まれる$E$の元をコスト関数の値が大きい順に$s_1,\,\dots,\,s_n$とし、同様に$t_1,\,\dots,\,t_n$を定める。貪欲アルゴリズムの定め方より、$s_1,\,\dots,\,s_n$はこの順に$S$に追加されたことがわかる。仮定より$\sum_{i=1}^nc(s_i)<\sum_{i=1}^nc(t_i)$なので、ある$1\leq j\leq n$が存在して$c(s_1)\geq c(t_1),\,\dots,\,c(s_{j-1})\geq c(t_{j-1})$かつ$c(s_j)< c(t_j)$である。$S_{j-1}=\{s_1,\,\dots,\,s_{j-1}\},\ T_{j}=\{t_1,\,\dots,\,t_j\}$とする。このとき、マトロイドの定義よりある$t\in T_{j}\setminus S_{j-1}$が存在して$S_{j-1}\cup\{t\}\in\mathcal{I}$である。このとき、$c(t)\geq c(t_j)\geq c(s_j)$となる。貪欲アルゴリズムにおいて$S_{j-1}$に次に追加された$E$の元は$s_j$であったが、これは$S_{j-1}$に追加しても独立集合となる$E\setminus S_{j-1}$の元のうちコスト関数の値が最大であるものではなく、アルゴリズムの定め方に反し矛盾する。
よって、貪欲アルゴリズムにより最適解が求まる。

貪欲アルゴリズムのような単純なアルゴリズムで最適解が求まるのはマトロイドの顕著な特徴である。グラフの独立集合など様々な数学的対象がマトロイドとしての性質を満たし、それらの上での貪欲アルゴリズムの最適性がこの定理によって保証される。
上記の定理は「マトロイド$\Rightarrow$最適解が貪欲で求まる」という主張であったが、その逆である「マトロイド$\Leftarrow$最適解が貪欲で求まる」も成立する。この主張を正確に述べるために以下の定義をする。

独立性システム

有限集合$E$$E$の部分集合族$\mathcal{I}$の組$(E,\mathcal{I})$が独立性システムであるとは、以下の2つの条件を満たすことを言う。また、$\mathcal{I}$の元を独立集合という。

  1. $0\in\mathcal{I}$
  2. $\forall Y\in\mathcal{I},\ \forall X\subset Y,\ X\in\mathcal{I}$

つまり、独立性システムとはマトロイドの3条件のうち1つのみを満たさないものを言う。この独立性システムにおいて、以下の定理が成立する。

どんなコスト関数$c:E\to\mathbb{R}_{\geq0}$についても問題1の最適解が貪欲アルゴリズムにより求まるならば、$E$はマトロイドである。

独立性システム$(E,\mathcal{I})$がマトロイドではないと仮定する。
このとき独立集合$I,\,J$で、$|I|<|J|$かつ全ての$x\in J\setminus I$について$I\cup\{x\}\notin\mathcal{I}$となるものがとれる。また、$\varepsilon$$\varepsilon<\frac{|I|}{|J|}-1$なる正の数とする。このとき、以下のような重みを考える。
\begin{equation} c(x)=\left\{ \begin{array}{ll} 1+\varepsilon & x\in I\\ 1 & x \in J\setminus I\\ 0 & else \end{array} \right. \end{equation}
このとき、独立アルゴリズムによって選ばれる集合は$I$だが、$\sum_{x\in I}c(x)=|I|(1+\varepsilon)<|J|=\sum_{x\in J}c(x)$となり、貪欲アルゴリズムによって最適解が求められることに矛盾。
よって、$(E,\mathcal{I})$はマトロイドである。

貪欲法により最適解が求まるならばマトロイドである、という主張はあまり知られていない結果で面白いと感じる。

投稿日:831
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

sim
sim
3
309
B4です。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中