整数规划问题往往难以求解,但在一类特殊的情形下,整数规划问题可以完全归结为线性规划问题,这就是当线性规划可行域的所有顶点都是整点的时候,此时线性松弛的解就是整数规划的解。而全单模矩阵给出了关于此条件的判定方法。
定义
设矩阵A是(m*n)整数矩阵,若A的任意子方阵的行列式等于0,1,-1,则称A为全单模矩阵。
由定义容易得到全单模矩阵的元素只有0,-1,1(考虑一阶子式即可)
全单模矩阵与多面体顶点的联系
矩阵A是全单模矩阵当且仅当对于所有整数向量a,b,c,d,多面体{(x|aleq x leq b, cleq Ax leq d)}的顶点是整数点。
通过定义判别全单模矩阵比较困难,因此需要给出一些其它的充要条件或者充分条件。
定理1
矩阵A是全单模矩阵等价于对于每个集合(J subset N = {1,2,...,n}),存在分割(J_1,J_2),使得$$|sum_{j in J_1}a_{ij}-sum_{j in J_2}a_{ij}|leq 1,i=1,...,m$$
由此可以得到一些简单的判别条件。
推论1
设矩阵A是{0,1,-1}矩阵,并且每列至多有两个非零元素,则矩阵是全单模矩阵当且仅当存在A的行分割(Q_1,Q_2)是同一列中的两个非零元素满足以下条件:
(i)若符号相反,则一个位于(Q_1),另一个位于(Q_2)
(ii)若符号相同,则两个元素同时属于(Q_1)或(Q_2)
推论2
设矩阵A是{0,-1,1}矩阵,若A满足下两个条件,则它是全单模的:
(i)A的每一列至多有两个非零元素
(ii)若某列含有两个非零元素,则他们的和为0
显然,若每列只有一个非零元素,则已经是全单模的了。