数学の分野において劣モジュラ関数 (英: submodular function) とは集合関数の一種で、簡単にいうと、関数に渡される集合に1つ要素が加わった場合に増える関数の値が、もとの集合が大きくなるにつれ小さくなるような関数を指す。集合関数であることを明示して劣モジュラ集合関数ということもある。劣モジュラ関数の概念は一般のベクトル値関数における凸関数の概念と類似した性質を持つため、近似アルゴリズムやゲーム理論、機械学習などの幅広い応用を持つ。
台集合 Ω の冪集合 2Ω 上の関数 f: 2Ω → R で
次を満たす関数を劣モジュラ関数と呼ぶ。
- 劣モジュラ性
- 任意の集合対 S, T ⊆ Ω に対して、f(S) + f(T) ≥ f(S ∪ T) + f(S ∩ T)
この不等式を劣モジュラ不等式と呼ぶ。劣モジュラ不等式の不等号を逆にした不等式を優モジュラ不等式と呼び、この不等式を満たす集合関数を優モジュラ関数と呼ぶ。
また、上記の不等式と以下の 2 つの不等式は同値である。
- 任意の集合対 と任意の に対して、
- 任意の集合 と に対して、
非負の劣モジュラ関数は劣加法的であるが、劣加法的関数が必ずしも劣モジュラとは限らない。
ここでは劣モジュラ関数の例として、単調関数、非単調関数、対称関数、及び非対称関数について述べる。
以下、 を劣モジュラ関数の台集合とする。
劣モジュラ関数 が全ての に対して を満たすとき単調と呼ぶ。
以下、単調関数の例である。
- 線形関数
- という形で表せる全ての集合関数。
この場合、なら単調。
- バジェット加法型関数
- という形で表せる関数のうち、を満たす関数。
- 被覆関数
- 集合が何らかの元集合の部分集合族であるとする。これに対して、 for という形で表せる関数。
- エントロピー関数 (は確率変数の集合)
任意の に対して、 のエントロピーを返すような関数 。
- マトロイド階数関数 (はマトロイドの台集合)
マトロイドの階数関数は劣モジュラ関数。
単調関数でない劣モジュラ関数。
任意の に対して を満たす劣モジュラ関数を対称であるという。
以下、対称な劣モジュラ関数の例である。
- カット関数 (はグラフの頂点集合)
- 任意の に対して、が、を満たす辺の数を返す関数となるときをカット関数と呼ぶ。
上記の条件を満たす辺重みの合計を返すような関数として定義する場合がある。
辺重み無しの場合を上記で考える場合、重み 1: 辺が存在する、重み 0: 辺が存在することを表す。
- 相互情報量 (は確率変数の集合)
- 任意の に対して、 (は相互情報量) となる関数。
単調でも対称でもない劣モジュラ関数。
以下、非対称な劣モジュラ関数の例である。
- 有向グラフのカット関数 (は有向グラフの頂点集合)
- この集合に対して定義されたカット関数は非対称な劣モジュラ関数である。
出る辺に関するカット関数と、入る辺に関するカット関数は対称でないことからこのことが分かる。
劣モジュラ関数の連続化として、ロバース拡張や多重線形拡張がある。
ベクトル であって、各要素がとなるものに対し、 で定義される関数を集合関数のロバース拡張 (Lovász extension) という。この関数は閉区間上の一様分布から以上のものを選んだ時の期待値を返すような関数になっており、この関数は凸関数になる。
- マトロイド
- ポリマトロイド
- 凸関数
- 正モジュラ関数: 任意の集合対 に対して、 が成り立つ関数
- 双劣モジュラ関数
- Satoru Fujishige (2005), Submodular Functions and Optimization, Elsevier, ISBN 9780444520869
- 室田 一雄 (2001), 離散凸解析, 共立出版, ISBN 4-320-01690-4
- H.Nagamochi and T.Ibaraki (2008), Algorithmic Aspects of Graph Connectivity, Cambridge University Press, ISBN 0-52187864-0
- 河原吉伸 and 永野清仁 (2015), 劣モジュラ最適化と機械学習, 講談社, ISBN 9784061529090