3. 折線関数の線形表現#
3.1. 導入#
折線関数は区分的に線形であるが,全体としては非線形な関数である. しかし区分的に線形であるために,これらを選択する形で インジケータ変数 を用いると, 折線関数を線形に表現できる.
3.2. 折線関数の定式化#
折線関数 \(f(x)\) が連続で,\(x\) の定義域がその中において \(f(x)\) が線形関数とみなせる \(n\) 個の区間に分割される場合を考える. この時 \(f(x)\) は次のように表される.
ここで各定数・変数は次のとおり.
\(z_i\) は インジケータ変数
\(S_i\) は各折線の傾き
\(C\) は \(x=0\) の時の \(y\) の値
\(L_i\) は各区間の幅
上記で \(z_0,z_n\) は \(z_0=1\),\(z_n=0\) と固定しても一般性を失わない. よって必要な インジケータ変数 の実際の総数は \(n-1\) 個である.

図 3.4 折線関数の例#
具体的に \(3\) つの区間に分割されている折線関数を定式化してみる (図 3.4 参照).
本定式化により,インジケータ変数 \(z_1,z_2\) の組み合わせで,各場合を表現できている事になる. 以下,その事を確認してみる.
\((z_1,z_2) = (0,0)\) の時
この時,\((x_2,x_3) = (0,0)\) と固定され,\(x_1\) により \(L_1\) の区間が表現されている.
\((z_1,z_2) = (1,0)\) の時
この時,\((x_1,x_3) = (L_1,0)\) と固定され,\(x_2\) により \(L_2\) の区間が表現されている.
\((z_1,z_2) = (1,1)\) の時
この時,\((x_1,x_2) = (L_1,L_2)\) と固定され,\(x_3\) により \(L_3\) の区間が表現されている.
\((z_1,z_2) = (0,1)\) の時
\(L_2\cdot z_2\leq x_2\leq L_2\cdot z_1\) という制約があるため,選ばれることは無い.
関連
引用書式