線形計画法における辞書と表
📂最適化理論線形計画法における辞書と表
ノーテーション
Maximizesubject tocTxAx=bx≥0
matrix A∈Rm×n、b∈Rm×1、c∈Rnについて、linear programming problemが上記のようなequation formで示されるとする。そして、その成分を以下のように記述しよう。
A=b=c=x=(aij)(b1,⋯,bm)(c1,⋯,cn)(x1,⋯,xn)
ディクショナリ
i=1,⋯,mについて、以下の形の連立方程式をディクショナリと呼ぶ。
ζxn+i==bi−j=1∑ncjxjj=1∑naijxj
ζを除く左辺の変数を基底変数、右辺の変数を非基底変数と呼ぶ。まず、これらのインデックスを
B:=N:={n+1,n+2,⋯,n+m}{1,2,⋯,n}
のように表す。ただし、これは最初に与えられたlinear programming problemをそのまま書き写したものであり、解が進むにつれて変化する係数にはバーをつけて、次のように表現する。
ζxn+i==ζˉbˉi+−j∈N∑cˉjxjj∈N∑aˉijxj
ここで、i∈Bであり、表記からもわかるように、NとBは固定された集まりではなく、解が進むにつれて変わる。
タブロー
feasible basis Bによって決定されるシンプレックスタブローT(B)は、与えられたlinear programming problem Ax=b,z=cTxと同じ解の集合を持つ、m+1次の連立線形方程式を意味する。N:={1,⋯,n+m}∖Bに対して、xBを基底変数のベクトル、xNを非基底変数のベクトルとするとき、何らかのベクトルp∈Rm、r∈Rn−mと行列Q∈Rm×(n−m)に対して、次のように表される。
xBz==pz0++QxNrTxN
説明
正直言って、ディクショナリとタブローは同じものであり、引用からもわかるように、著者によって表現の好みの違いに過ぎない。当然ながら、概念的にはB=BとN=Nは同じであり、使っている変数をそのまま使ったのか、行列の表記を使ったのかの違いにすぎない。
投稿のために、多くのlinear programmingの教科書を調べてみたが、ディクショナリであれタブローであれ、これらについて詳しく説明したいと思っている著者はいなかった。‘連立方程式’からしてそうだが、高度な抽象化に慣れている数学者は、‘次のような形’や’アルゴリズムに従って変わる’といったあいまいな表現に対して極度の不安感、嫌悪感を抱く。そうした気持ちは理解できるが、著者たちもまた、ノーテーションに囚われるよりはlinear programmingそのものについての議論に早く進みたがっているように見えたし、真にlinear programmingに興味があるならば、読者も適当に納得して進むことをお勧めする。