1. 記号の説明#

1.1. 説明#

数理最適化を述べるうえで頻出する基本的な記号の説明を以下に与える.

1.1.1. 不等号#

\(\geq\)\(\leq\) は等号を含んだ不等号記号である. 日本の高等学校まではこれら記号を \(\geqq\)\(\leqq\) と表記するよう指導されるが, 国際的には \(\geq\)\(\leq\) が多く,また標準的である.

1.1.2. 数の集合#

数理最適化では実数からなる集合や整数からなる集合をよく用いる. これら集合はそれぞれ \(\mathbb{R}\)\(\mathbb{Z}\) と書く.

上記に加えて,非負実数 (負数でない実数) を表す集合を次で表記する.

(1.1)#\[\mathbb{R}_{\geq 0} := \{x\in\mathbb{R} \mid x\geq 0\}\]

非負実数集合は \(\mathbb{R}_{\geq 0}\) 以外にも様々な表記があるが, 中でもこの記法は誤解や表記揺れが少ない表記である.

非負実数集合 \(\mathbb{R}_{\geq 0}\) と同様に非負整数集合を次で表記する.

(1.2)#\[\mathbb{Z}_{\geq 0} := \{x\in\mathbb{Z} \mid x\geq 0\} = \{0,1,2,3,\ldots\}\]

この他,真偽値 (真理値・論理値とも,Boolean) を要素に持つ集合を次で表記し, \(0\)-\(1\) 整数変数が属する集合として用いることがある.

(1.3)#\[\mathbb{B} := \{0,1\}\]

なお自然数 \(\mathbb{N}\) に関しては \(0\) を要素に含めないかどうかで, 暗黙の前提が異なることがあり,この種の混乱を避けることを優先する場合には,次で表記することが望ましい.

(1.4)#\[\begin{split}\mathbb{Z}_{>0} &:= \{1,2,3,\ldots\}, \\ \mathbb{Z}_{\geq 0} &:= \{0,1,2,3,\ldots\}\end{split}\]

1.1.3. 総和記号・総乗記号#

総和記号 \(\sum\) は和のとり方を指示する記号で,いろいろな表現方法がある. 最も簡単な表現方法は次である.

(1.5)#\[\sum_{i=1}^n x_i\]

これは「添字 \(i\) を持った \(x_i\)\(x_1\) から \(x_n\) まで和をとれ」ということを表している. 通常,\(n\geq 1\) であるが,そうでない場合には「空和」となる.

上記の表現方法の他に,数理最適化でよく使われる表現方法は次である.

(1.6)#\[\sum_{i\in I} x_i\]

これは「集合 \(I\) に属する添字 \(i\) すべてについて \(x_i\) の和をとれ」ということを表している. 先と同様に \(i\notin I\) の場合には「空和」となる.

総和記号は和に関する記号だが,これを積としたものを総乗記号といい \(\prod\) で表記する. 積のとり方の表現方法については総和記号と同様であり,「空和」に対応する概念を「空積」という. 総乗記号は数理最適化では用いられる場面は稀である.

1.1.3.1. 空和・空積#

\(\sum_{i=1}^0\)\(\sum_{i\in\emptyset}\) などは空和の例であるが, これらがどのような値をとるかは天与のものではないため,妥当で適切な規約をもって定義を与えることとなる. 標準的な数学では \(0\) を与えるものとして定められる.

このことは数式を扱うプログラミング言語で予め確認しておくことが望ましい. 特に数式を直に扱うモデリング言語では与える入力データによっては和をとる集合が空集合 \(\emptyset\) になることもあり, その場合の挙動に不整合がないかを検討しておく必要がある.

なお空積についても同様で,標準的には \(1\) の値が定められている.

モデリング言語 SIMPLE では空和の値は \(0\) で,空積の値は \(1\) として定められている.

1.1.4. 全称記号#

\(\forall\) を全称記号といい,数理最適化の文脈でよく使われる用法は制約条件式の記述で,次のとおりである.

(1.7)#\[x_i \geq 0,~ \forall i\in I\]

これは「集合 \(I\) に属する任意の要素 \(i\) を添字に持つ不等式 \(x_i\geq 0\) すべてについて制約条件を課す」ということを表現している.

問題の定式化は可能な限り,全称記号が使えるように集合を作成すると,定式化の見通しが良くなる傾向がある. 複雑さはその集合に押し込められることになるが,定式化の検証では, 制約条件式の相互間の整合性検証の方よりも,集合の検証の方がまだ簡便であることが多いため, この点でも見通しの良い定式化に傾きやすいといえる.

1.1.5. 存在記号#

\(\exists\) を存在記号といい,数理最適化の定式化の文脈ではあまり陽には使われない.

1.1.6. s.t.#

subject to ~は「~を前提条件とする」という意味で,s.t. としばしば略される.

数学書で s.t. とあると存在条件を記述するための such that の意味「~であるような」で用いられることが標準的だが, 数理最適化で s.t. と書いたら subject to の意味であることが標準的である.

1.2. 関連#