劣モジュラ関数のソースを表示
←
劣モジュラ関数
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''劣モジュラ関数'''(れつモジュラかんすう、{{lang-en-short|submodular function}})とは、数学において[[集合関数]]の一種で、簡単にいうと、関数に渡される集合に1つ要素が加わった場合に増える関数の値が、もとの集合が大きくなるにつれ小さくなるような関数を指す。集合関数であることを明示して劣モジュラ集合関数ということもある。劣モジュラ関数の概念は一般のベクトル値関数における[[凸関数]]の概念と類似した性質を持つため、近似アルゴリズムや[[ゲーム理論]]、[[機械学習]]などの幅広い応用を持つ。 == 定義 == 台集合 {{math|Ω}} の冪集合 {{math|2{{sup|Ω}}}} 上の関数 {{math|''f'': 2{{sup|Ω}} → '''R'''}} で 次を満たす関数を劣モジュラ関数と呼ぶ。 ; 劣モジュラ性: 任意の集合対 {{math|''S'', ''T'' ⊆ Ω}} に対して、{{math|''f''(''S'') + ''f''(''T'') ≥ ''f''(''S'' ∪ ''T'') + ''f''(''S'' ∩ ''T'')}} この不等式を劣モジュラ不等式と呼ぶ。 なお、不等号の向きを逆にした不等式を優モジュラ不等式と呼び、それを満たす[[集合関数]]を優モジュラ関数と呼ぶ。 また、上記の不等式と以下の 2 つの不等式は同値である。 # 任意の集合対 <math>X, Y \subseteq \Omega, X \subseteq Y</math> と任意の <math> x \in \Omega \backslash Y </math> に対して、<math>f(X \cup \{ x \}) - f(X) \geq f(Y \cup \{ x \}) - f(Y) </math> # 任意の集合 <math>X \subseteq \Omega</math> と <math>x_1, x_2 \in \Omega \backslash X, x_1 \neq x_2</math> に対して、 <math>f(X \cup \{ x_1 \}) + f(X \cup \{ x_2 \}) \geq f(X \cup \{ x_1, x_2 \}) + f(X)</math> 非負の劣モジュラ関数は[[劣加法的集合函数|劣加法的]]であるが、劣加法的関数が必ずしも劣モジュラとは限らない。 == 劣モジュラ関数の例 == ここでは劣モジュラ関数の例として、単調関数、非単調関数、対称関数、及び非対称関数について述べる。 以下、<math>\Omega</math> を劣モジュラ関数の台集合とする。 === 単調関数 === 劣モジュラ関数 <math>f</math> が全ての <math>S \subseteq T</math> に対して <math>f(S) \leq f(T)</math> を満たすとき単調と呼ぶ。以下、単調関数の例である。 ; 線形関数 : <math>f(S) = \sum_{i \in S} w_i</math>という形で表せる全ての集合関数。 この場合、<math>\forall i, w_i \geq 0</math>なら単調。 ; バジェット加法型関数 : <math>f(S) = \min \left(B, \sum_{i \in S} w_i \right) </math> という形で表せる関数のうち、<math>w_i \geq 0, B \geq 0</math>を満たす関数。 ; 被覆関数 : 集合<math>\Omega = \{ E_1, E_2, \ldots , E_n \}</math>が何らかの元集合<math>\Omega'</math>の部分集合族であるとする。これに対して、<math>f(S) = | \bigcup_{E_i \in S} E_i | </math> for <math> S \subseteq \Omega</math> という形で表せる関数。 ; エントロピー関数(<math> \Omega </math>は確率変数の集合) : 任意の <math>S \subseteq \Omega</math> に対して、<math>S</math> の[[エントロピー]]を返すような関数 <math>H(S)</math>。 ; マトロイド階数関数(<math>\Omega</math> は[[マトロイド]]の台集合) : マトロイドの階数関数は劣モジュラ関数。 === 非単調関数 === 単調関数でない劣モジュラ関数。 === 対称な劣モジュラ関数 === 任意の <math> S \subseteq \Omega</math> に対して <math>f(S) = f(\Omega - S)</math> を満たす劣モジュラ関数を対称であるという。 以下、対称な劣モジュラ関数の例である。 ; カット関数(<math>\Omega</math> はグラフの頂点集合) : 任意の <math>S \subseteq \Omega</math>に対して、<math>f(S)</math> が、<math>e = (u, v), u \in S, v \in \Omega - S</math> を満たす辺 <math>e</math> の数を返す関数となるとき <math>f</math> をカット関数と呼ぶ。 上記の条件を満たす辺重みの合計を返すような関数として定義する場合がある。 辺重み無しの場合を上記で考える場合、重み 1: 辺が存在する、重み 0: 辺が存在することを表す。 ; 相互情報量(<math>\Omega</math> は確率変数の集合) : 任意の <math> S \subseteq \Omega </math> に対して、<math>f(S) = I(S; \Omega - S)</math>(<math>I(S; \Omega)</math>は相互情報量)となる関数。 === 非対称な劣モジュラ関数 === 単調でも対称でもない劣モジュラ関数。 以下、非対称な劣モジュラ関数の例である。 ; 有向グラフのカット関数(<math>\Omega</math> は有向グラフの頂点集合) : この集合 <math>\Omega</math> に対して定義されたカット関数は非対称な劣モジュラ関数である。 出る辺に関するカット関数と、入る辺に関するカット関数は対称でないことからこのことが分かる。 == 連続関数への拡張 == 劣モジュラ関数の連続化として、ロバース拡張や多重線形拡張がある。 {{節スタブ}} === ロバース拡張 === ベクトル <math> \mathbf{x} = \{ x_1, x_2, \ldots, x_n \} </math> であって、各要素が <math>0 \leq x_i \leq 1</math> となるものに対し、<math> f^L(\mathbf{x}) = \mathbb{E} (f( \{i : x_i \geq \lambda\}))</math> で定義される関数を集合関数 <math>f</math> のロバース拡張(Lovász extension)という。この関数は閉区間 <math>[0, 1]</math> 上の一様分布から <math>\lambda</math> 以上のものを選んだ時の期待値を返すような関数になっており、この関数は凸関数になる。 == 一般化 == * [[L凸関数]] * [[k劣モジュラ関数]] == 参考文献 == * {{Citation| author=Satoru Fujishige | year=2005 | title=Submodular Functions and Optimization | publisher=Elsevier | isbn=9780444520869}} * {{Citation| author=室田 一雄 | year=2001 | title=離散凸解析 | publisher=共立出版 | isbn=4-320-01690-4}} * {{Citation| author=H.Nagamochi and T.Ibaraki | year=2008 | title=Algorithmic Aspects of Graph Connectivity | publisher=Cambridge University Press | isbn=0-52187864-0}} * {{Citation| author=河原吉伸 and 永野清仁 | year=2015 | title=劣モジュラ最適化と機械学習 | publisher=講談社 | isbn=9784061529090}} == 関連項目 == * [[マトロイド]] * [[ポリマトロイド]] * [[凸関数]] * [[正モジュラ関数]]: 任意の集合対 <math>S, T \subseteq \Omega</math> に対して、<math>f(S) + f(T) \geq f(S - T) + f(T - S)</math> が成り立つ関数 * [[双劣モジュラ関数]] {{DEFAULTSORT:れつもしゆらかんすう}} [[Category:近似アルゴリズム]] [[Category:組合せ最適化]] [[Category:マトロイド理論]] [[Category:関数]] [[Category:数学に関する記事]]
このページで使用されているテンプレート:
テンプレート:Citation
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Math
(
ソースを閲覧
)
テンプレート:節スタブ
(
ソースを閲覧
)
劣モジュラ関数
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報