4. 起動・停止コストの表現#

4.1. 説明#

4.1.1. 問題背景#

静止摩擦係数と動摩擦係数の関係のように,物を動かし始めるのに要する特別なコストや, 動いているものを急に止めるための特別なコストが,現実問題を定式化する際には頻繁に表れる. 例えば機器の運転に伴う起動または停止する際にかかるコストを最小化する問題がその例である.

4.1.2. 定式化#

「いつ起動するかしないか」および「いつ停止するかしないか」という二値状態の記述を必要とするため, 各時刻 \(t\) ごとに インジケータ変数 を立てて表現することになる. それは以下のとおり.

定式化のために導入する インジケータ変数 は次からなる.

  • 時系列の運転 インジケータ変数 \(z[t] ~ (t\in\{1,\ldots,T\})\)
    • \(z[t]\) は機器が運転している時に \(1\),停止している時に \(0\) となるものとする.

  • 起動 インジケータ変数 \(start[t] ~ (t\in\{1,\ldots,T-1\})\)
    • \(start[t]\) は機器が運転を開始する時刻のみに \(1\) となり,残りの時刻では \(0\) となるものとする.

  • 停止 インジケータ変数 \(stop[t] ~ (t\in\{1,\ldots,T-1\})\)
    • \(stop[t]\) は機器が運転を停止する時刻のみに \(1\) となり,残りの時刻では \(0\) となるものとする.

これらの一例を次の表に挙げる.

\(t\)

\(1\)

\(2\)

\(3\)

\(4\)

\(\cdots\)

\(21\)

\(22\)

\(23\)

\(T=24\)

\(z[t]\)

\(0\)

\(0\)

\(1\)

\(1\)

\(\cdots\)

\(1\)

\(1\)

\(0\)

\(0\)

\(start[t]\)

\(0\)

\(0\)

\(1\)

\(0\)

\(\cdots\)

\(0\)

\(0\)

\(0\)

\(stop[t]\)

\(0\)

\(0\)

\(0\)

\(0\)

\(\cdots\)

\(0\)

\(1\)

\(0\)

4.1.2.1. 目的関数#

この時,起動・停止にかかるコスト \(StartStopCost\) は次で表現できる. \(A,B\) はそれぞれ起動・停止一回当たりに要するコスト係数である.

(4.1)#\[\mathrm{Minimize:}~ StartStopCost := \sum_{t=1}^{T-1} (A\cdot start[t] + B\cdot stop[t])\]

4.1.2.2. 制約条件#

\(z[t]\) に対して \(start[t],stop[t]\) が起動・停止の インジケータ変数 として機能させるためには, 以下の二つの式を連立させる事によって表現する.

(4.2)#\[\begin{split}z[t] - z[t-1] &\leq start[t], \\ z[t-1] - z[t] &\leq stop[t-1]\end{split}\]

これら式の左辺は運転状態の変化を示している. つまり運転状態が変化すると \(1\) であり,変化がないと \(0\) である.

これらの式だけでは,運転状態の変化がない時刻にも \(start[t],stop[t]\)\(1\) となる可能性があるが, \(start[t],stop[t]\) は最小化される目的関数 \(StartStopCost\) に現れる事に注意すると, 起動・停止時のみ \(1\),その他の時には \(0\) であることが言える.

4.2. 関連#