Multi Linear extension(MLE)
Last updated
Last updated
関数 に対して、 上の 変数多項式 が を拡張すると言うのは、すべての に対して が成り立つときである。
そして [$ f: {0,1}^{\ell} \to \mathbb{F}] は、一意の多重線形拡張 (MLE) [$ \tilde{f}] を持つ。
ここでmultilinerとは各変数の次数が高々1である多項式のことであり、はmultilinerですがはmultilinerではありません。
例としてとを以下のように表現します
緑部分を拡張したのがMLEを表しています。ここでは便宜上5×5の行列で表現します。
\tilde{f}(x_1,x_2)=(1-x_1)(1-x_2)+2(1-x_1)x_2+8x_1(1-x_2)+10x_1x_2であるとき
\tilde{f}(0,0)=1
\tilde{f}(0,1)=2
\tilde{f}(1,0)=8
\tilde{f}(1,1)=10
というように、元のfと同じ評価を得ることができます。
またnon MLE なg(x_1,x_2)=-x^2_1+x_1x_2+8x_1+x_2+1は同様に元のfと同じ評価を得ることができます
g(0,0)=1
g(0,1)=2
g(1,0)=8
g(1,1)=10
この表のように関数 の全ての評価値(つまり の全ての入力に対する出力)が与えられているとします。このとき、任意の点 における拡張された関数 の値を効率的に計算したいとします。
各入力 に対して、次のように多重線形ラグランジュ基底多項式 を定義します
これは特定の に対応する多項式です。次の式で を表現できます:
ここで、各 に対する の値と基底多項式 を掛け合わせて合計を取ります
• 各 に対して を計算するには、 のフィールド演算が必要です。
• よって、全体での計算量は となります。
• さらに、動的計画法を用いることで、計算時間を に減らすことができます。