変数固定による検証

2. 変数固定による検証#

2.1. 説明#

最適化計算の結果を見て次のような疑義が生じたとしよう.

  • 最適解または上限界値のギャップが非常に小さいと判断される良い解が得られた.しかし解には違和感があり,その一部をある特定の値とした方がもっと良い解を得られるはずだ.

もう少しかみ砕くと,得られた解を仮に \(x[i]\) とするとき,\(x[42]=1\) だったのだが, 実は \(x[42]=0\) の方がもっと良い解になっているのではないか.という疑問が生じる場合である.

このような場合には得られた解で変数を固定して,もう一度求解してみるというのが疑問に対する基本的な検証方法となる.

2.1.1. 検証方法#

変数固定による検証方法について,具体的な手続きを次に与える.

  1. 求解する.得られた解を \(result\_x[i]\) とする.但しこの解を与える変数を \(x[i]\) とし \(i\in I\) である.

  2. \(result\_x[i]\) のうち,疑義のある部分を \(I\_SUSPICIOUS\) とする.

  3. 疑義のある部分について,より良い目的関数値を与えるであろう解の値 \(x\_star[i]\) を等式制約として課す.
    (2.33)#\[x[i] = x\_star[i],~ \forall i \in I\_SUSPICIOUS\]
  4. 疑義のない部分を固定するために,等式制約を課す.
    (2.34)#\[x[i] = result\_x[i],~ \forall i \in I\setminus I\_SUSPICIOUS\]
  5. 求解する.
    1. 実行不可能だった場合には,どの制約条件に違反したかを検証する.

    2. 最適解または実行可能解だった場合には,目的関数値を検証する.

2.2. 関連#