線形計画法の理論では、基本実行可能解( BFS ) は、非ゼロ変数の最小集合を持つ解です。幾何学的には、各 BFS は実行可能解の多面体の頂点に対応します。最適解が存在する場合、最適な BFS が存在します。したがって、最適解を見つけるには、BFS を考慮すれば十分です。この事実は、最適解が見つかるまで基本的に 1 つの BFS から別の BFS へと移動するシンプレックス法で利用されています。 [ 1 ]
以下の定義では、まず線形計画問題をいわゆる等式形式で示します。
どこ:
線形計画問題は、スラック変数を追加することで等式形式に変換できます。
予備的なクリーンアップ手順として、以下の点を確認します。
線形計画法の実行可能な解は任意のベクトルであるそのため少なくとも1つの実行可能な解が存在すると仮定します。m = nの場合、実行可能な解は1つだけです。通常、m < nなので、システムは線形計画問題には多くの解があり、そのような解はそれぞれ線形計画問題の実行可能解と呼ばれます。
LPの基底は、Aの非特異部分行列であり、すべての行がmで、列はm < nのみである。
場合によっては、「基底」という用語は部分行列自体ではなく、その列のインデックスの集合に対して使用されます。Bを{1,..., n }からのm個のインデックスの部分集合とします。m列からなる正方m × m行列Bでインデックス付けされています。は非特異であり、 Bでインデックス付けされた列は列空間の基底である。この場合、BをLPの基底と呼びます。
ランク以来mの場合、少なくとも 1 つの基底を持ちます。n列あり、最大基地。
基底Bが与えられたとき、実行可能な解はは、そのすべての非ゼロ変数がBでインデックス付けされている場合、基底 B を持つ基本実行可能解である。つまり、すべての に対して。
1. BFSはLPの制約(行列)のみによって決定されますそしてベクトル最適化の目的には依存しません。
2. 定義上、BFSは最大でm個の非ゼロ変数と、少なくともn - m個のゼロ変数を持ちます。BFSはm個未満の非ゼロ変数を持つこともあります。その場合、BFSは多くの異なる基底を持つことができ、それらの基底はすべて非ゼロ変数のインデックスを含みます。
3. 実現可能な解決策基本となるのは、行列の列がは線形独立であり、Kは非ゼロ要素のインデックスの集合である。[ 1 ]: 45
4. 各基底は一意のBFSを決定します。m個のインデックスの各基底Bに対して、 BFSは最大で1つです。 基底Bを持つ。これは制約を満たさなければならない基底の定義により、行列はは非特異であるため、制約条件には一意の解が存在する。
その逆は正しくありません。各 BFS はさまざまな基底から得られる可能性があります。非負制約を満たすすると、Bは実行可能基底と呼ばれる。
5. 線形計画問題が最適解(すなわち、実行可能解が存在し、かつ実行可能解の集合が有界である)を持つ場合、最適BFSが存在します。これはバウアーの最大値原理の結果です。線形計画問題の目的関数は凸関数であり、実行可能解の集合も凸関数(超空間の交点)であるため、目的関数は実行可能解の集合の極点で最大値をとります。
BFSの数は有限であり、任意の線形計画問題の最適解は、すべての目的関数を評価するだけで有限時間内に見つけることができます。BFS(幅優先探索)は、線形計画問題を解く最も効率的な方法ではありません。シンプレックス法は、 BFSをはるかに効率的に調べます。
以下の制約条件を持つ線形計画問題を考えてみましょう。
行列Aは次のとおりです。
Here, m=2 and there are 10 subsets of 2 indices, however, not all of them are bases: the set {3,5} is not a basis since columns 3 and 5 are linearly dependent.
The set B={2,4} is a basis, since the matrix is non-singular.
The unique BFS corresponding to this basis is .

The set of all feasible solutions is an intersection of hyperspaces. Therefore, it is a convex polyhedron. If it is bounded, then it is a convex polytope. Each BFS corresponds to a vertex of this polytope.[1]:53–56
As mentioned above, every basis B defines a unique basic feasible solution . In a similar way, each basis defines a solution to the dual linear program:
The solution is .
There are several methods for finding a BFS that is also optimal.
In practice, the easiest way to find an optimal BFS is to use the simplex algorithm. It keeps, at each point of its execution, a "current basis" B (a subset of m out of n variables), a "current BFS", and a "current tableau". The tableau is a representation of the linear program where the basic variables are expressed in terms of the non-basic ones:[1]:65where is the vector of m basic variables, is the vector of n non-basic variables, and is the maximization objective. Since non-basic variables equal 0, the current BFS is , and the current maximization objective is .
If all coefficients in are negative, then is an optimal solution, since all variables (including all non-basic variables) must be at least 0, so the second line implies .
If some coefficients in are positive, then it may be possible to increase the maximization target. For example, if is non-basic and its coefficient in is positive, then increasing it above 0 may make larger. If it is possible to do so without violating other constraints, then the increased variable becomes basic (it "enters the basis"), while some basic variable is decreased to 0 to keep the equality constraints and thus becomes non-basic (it "exits the basis").
If this process is done carefully, then it is possible to guarantee that increases until it reaches an optimal BFS.
最悪の場合、シンプレックス法は完了までに指数関数的に多くのステップを必要とする可能性があります。楕円体法のように、線形計画問題を弱多項式時間で解くアルゴリズムも存在しますが、それらは通常、基本解ではない最適解を返します。
しかし、LPの任意の最適解が与えられた場合、基本でもある最適実行可能解を見つけるのは容易である。[ 2 ]:以下の「外部リンク」も参照。
LP の基底Bは、解が は双対線形計画問題の最適解であり、すなわち、を最小化する。一般に、主問題最適基底は必ずしも双対問題最適基底とは限らず、双対問題最適基底も必ずしも主問題最適基底とは限らない(実際、主問題最適基底の解は双対問題では実行不可能な場合があり、その逆もまた然りである)。
両方は主問題LPの最適BFSであり、が双対LPの最適BFSである場合、基底BはPD最適と呼ばれます。最適解を持つすべてのLPにはPD最適基底があり、それはシンプレックス法によって見つけられます。ただし、最悪の場合、その実行時間は指数関数的になります。ニムロッド・メギドは次の定理を証明しました。[ 2 ]
メギドのアルゴリズムは、シンプレックス法と同様に、タブローを使用して実行できます。メギドはベリングと共同で、高速行列乗算アルゴリズムを使用する高速アルゴリズムも提案しました。[ 3 ]