差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン両方とも次のリビジョン
programming_algorithm:dynamic_programming:subset_convolution [2020/02/13] – [定義] ikatakosprogramming_algorithm:dynamic_programming:subset_convolution [2020/02/14] – [定義] ikatakos
行 19: 行 19:
   部分集合  {}, {0}, {1}, {2}, {0, 1}, {0, 2}, {1, 2}, {0, 1, 2}   部分集合  {}, {0}, {1}, {2}, {0, 1}, {0, 2}, {1, 2}, {0, 1, 2}
  
-  * それぞれの部分集合につき、何らかのスコアが決まっている +  * それぞれの部分集合 $S$ につき、何らかのスコア $f(S)$ が決まっている 
-  * ある部分集合 $S$ について、$\subseteq T$ となるような全ての $T$ のスコアの総和を求めたい+  * ある部分集合 $S_i$ について、$S_i \subseteq T$ となるような全ての $f(T)$ の総和を求めたい
  
   部分集合  {}, {0}, {1}, {2}, {0, 1}, {0, 2}, {1, 2}, {0, 1, 2}   部分集合  {}, {0}, {1}, {2}, {0, 1}, {0, 2}, {1, 2}, {0, 1, 2}
-  スコア     3      4    1      5                    6+  f(S)       3      4    1      5                    6
      
-  S = {1}  →  T = {1}, {0, 1}, {1, 2}, {0, 1, 2} +        Si = {1} 
-      スコアの総和  4  +            6    17+     →  T = {1}, {0, 1}, {1, 2}, {0, 1, 2} 
 +  f(T)の総和  4  +            6    17
  
   * これを全ての部分集合について行うのが「ゼータ変換」であり、高速に行うアルゴリズムを「高速ゼータ変換」という。   * これを全ての部分集合について行うのが「ゼータ変換」であり、高速に行うアルゴリズムを「高速ゼータ変換」という。
行 34: 行 35:
   Z変換     31  21   17   18     11      15              6   Z変換     31  21   17   18     11      15              6
  
-  * また、Z変換後から元のスコアを逆算する処理を「メビウス変換」という。+  * また、Z変換後から元の $f(S)$ を逆算する処理を「メビウス変換」という。
  
   スコア          4    1      5                    6   スコア          4    1      5                    6
programming_algorithm/dynamic_programming/subset_convolution.txt · 最終更新: 2020/02/14 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0