由凸集的定理知,線形計画の最適解は必ず基底可行解であり、基底可行解は必ず凸集合の頂点上に存在します。そして、線形計画問題の可行領域は凸集合であり、可行領域は可行解の集合です。したがって、最適解を求めるためには、基底可行解を見つける必要があります。
これがなぜ線形計画の手順が次のようになるのかの理由です:基底を見つける - 基底解を求める - 基底可行解であるかを検証する - 最適解であるかを検証する - 最適解でない場合は反復(基底変換)。
- 最初に、線形計画問題を標準的な数学モデルに変換します。
- 次に、初期基底を見つけ、それが可行基底であるかを検証します。
- 基底を見つける:係数行列の最大ランクの正方部分行列(次)を見つけます。
- 基底解を求める:非基底変数を 0 に設定すると、制約方程式は次の連立一次方程式となり、必ず一意の解が存在します。現在の制約方程式を解くと、基底解が得られます。
- 基底可行解であるかを検証する:基底解のすべての基底変数が非負の制約を満たす場合、その基底解は基底可行解です。
- 最適解であるかを検証する:
- すべてのの場合、現在の解が最適解です。
- すべてのであり、少なくとも 1 つのが存在する場合、無数の最適解があります。
- が存在し、対応する非基底変数のすべての係数である場合、最適解は存在しません。
- が存在し、対応する非基底変数の係数の中に少なくとも 1 つのが存在する場合、反復を続けることができます。
- 反復を続ける場合は、基底変換を行います。
- 入れ替える変数を決定します:最大の正数を持つ非基底変数を選択し、入れ替える変数とします。
- 出す変数を決定します:最小の正数を持つに対応する基底変数を選択し、出す変数とします。
- 基底変換:とし、新しい基底変数の係数行列を単位行列に変換し、新しい基底を得ます。
- 再度検証:新しい基底に対して「基底解を求める - 基底可行解であるかを検証する - 最適解であるかを検証する...」を行い、反復ができなくなるまで続けます。
は基底変換後の目的関数の変動量です(すべてのは現在の選択肢よりも良い選択肢がないことを意味します)。
は非基底変数の最小の正数の値です。