全单模矩阵

Posted mathematic-offering

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全单模矩阵相关的知识,希望对你有一定的参考价值。

整数规划问题往往难以求解,但在一类特殊的情形下,整数规划问题可以完全归结为线性规划问题,这就是当线性规划可行域的所有顶点都是整点的时候,此时线性松弛的解就是整数规划的解。而全单模矩阵给出了关于此条件的判定方法。

定义

设矩阵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

显然,若每列只有一个非零元素,则已经是全单模的了。





以上是关于全单模矩阵的主要内容,如果未能解决你的问题,请参考以下文章

python矩阵运算操作大全(非常全)!

子矩阵(暴搜(全排列)+DP)

numpy学习之矩阵之旅

波士顿矩阵|原理+Python全流程实现

波士顿矩阵|原理+Python全流程实现

李宏毅线性代数笔记6:矩阵的计算