子/次模 (Submodular)、超模 (Supermodular)和模(Modular)函數

定義

  子模 (Submodular)、超模 (Supermodular)和模(Modular)函數是組合優化中用到的集合函數概念。函數定義域爲某個有限集$\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 \Omega$。每個規則都可以判斷樣本$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$中原有的規則無關。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章