意味
サブモジュラー関数、スーパーモジュラー関数、およびモジュラー関数は、組み合わせ最適化で使用される集合関数の概念です。関数定義域は特定の有限集合 $\Omega$ の累乗集合 $2^\Omega$ であり、値の範囲は通常 $R$、つまり $f:2^\Omega\to R$ です。
部分モジュラー関数: 集合 $A\subseteq B\subset \Omega$、要素 $e\in \Omega-B$ に対して、部分モジュラー関数 $f(X)$ は次の条件を満たします。
$f(A\cup\{e\})-f(A)\geq f(B\cup\{e\})-f(B)$
直観的には、集合 $X$ の要素が増加するにつれて、新しい要素が追加されると、$f(X)$ の値の変化は変わらないか減少します。言い換えれば、関数 $f(X)$ の限界効果は徐々に減少します。部分モジュラー関数は $f(A\cup\{e\})\geq f(A)$ を制限しないので、要素の追加により $f(X)$ が大きくなったり、それより小さいです。
スーパーモジュラー関数: 集合 $A\subseteq B\subset \Omega$、要素 $e\in \Omega-B$ に対して、スーパーモジュラー関数 $f(X)$ は次の条件を満たします
$f(A\cup\{e\})-f(A)\leq f(B\cup\{e\})-f(B)$
直感的には、集合 $X$ の要素が増加すると、$f(X)$ の値の変化は変わらないか、新しい要素が追加されると増加します。言い換えれば、関数 $f(X)$ の限界効果は徐々に増加します。さらに、スーパーモジュラー関数 $f(X)$ については、$-f(X)$ がサブモジュラー関数であることが証明できます。
モジュラー関数: 集合 $A\subseteq B\subset \Omega$、要素 $e\in \Omega-B$ に対して、モジュラー関数 $f(X)$ は次の条件を満たします。
$f(A\cup\{e\})-f(A)=f(B\cup\{e\})-f(B)$
直観的には、要素がセット $X$ に追加されるとき、$f(X)$ の値の変化はセット内の元の要素とは何の関係もなく、新しく追加された要素にのみ関係します。等号の上。この定義によれば、モジュラー関数はスーパーモジュラー関数とサブモジュラー関数の両方であることがわかります。
応用
たとえば、ルール セットを使用すると、ルール セット $S\subseteq \Omega$ には一連のルール $R_i$、つまり $S=\{R_i\}_{i=1}^m, R_i\in が含まれます。 \オメガ$ 。各ルールは、サンプル $x$ がルールを満たすかどうかを決定できます。ルール セット内にサンプルを満たすルールがある場合、そのルール セットはサンプルを満たすと言われます。$n$ 個のサンプルを含むデータ セット $X=\{x_i\}_{i=1}^n$ の場合、$X_{S}$ をルール セット $S$ を満たすサンプルのセットとして定義します。
次に、サブモジュラー関数を見つけることができます。
$\displaystyle f(S)=|X_S|$
これは、$S$ に新しいルールを追加し続けると、$S$ が満たせるサンプル数が徐々に $n$ になり飽和する傾向があり、関数の戻り値が減少するためです。
モジュラー関数 も見つかります。
$\displaystyle g(S)=\sum\limits_{R_i\in S} |X_{\{R_i\}}|$
これは、$S$ に新しいルールを追加し続けると、$S$ の元のルールに関係なく、上記の式は常に新しいルールによって満たされるサンプルの数を関数の値に加算するためです。