“格”的起源
格(Lattice )的概念最早在1890年由E.Schroder提出。实际上早在 1854 年,George Boole 在数学逻辑的相关研究中引入了一类代数结构–布尔代数。而布尔代数就是“格”的一种特殊类型。后来,R. Dedekind 在关于群的相关工作中,也提出了类似“格”的概念并在实际应用中起了非常重要作用。在1930 年,G. Birkhoff 对“格”理论做出了重要贡献,“格”理论开始了快速发展。
“格”的定义
整数格(Integer Lattice)
构造
在线性代数中要描述一个线性空间 V V V的话,可以以一组基(Basis)来代表该空间。反过来说,如果一个线性空间拥有两个基向量(Basis Vector),那么在该空间里的任意一个向量都可以被分解为两个基向量的任意线性组合。
举个例子,假如线性空间 V V V拥有两个基向量 b 0 , b 1 b_0,b_1 b0,b1,那么这个空间中的任何一个向量 v v v都可以被表示为:
v = c 0 ⋅ b 0 + c 1 ⋅ b 1 v=c_0\cdot b_0+c_1\cdot b_1 v=c0⋅b0+c1⋅b1
其中 c 0 , c 1 c_0,c_1 c0,c1可以是任意数字。
线性空间 V V V被称为 b 0 , b 1 b_0,b_1 b0,b1两个基向量的线性生成空间(Span)。最常见的线性生成空间,就是XY坐标系(笛卡尔坐标系)。
如果对线性空间加上约束:所有线性组合系数 c i c_i ci都必须是整数(integer)。那么原来连续的线性空间 V V V将转换为一个网格状的离散集合,如下图所示。
注意:整数格的维度可以大于2维。为便于理解,此处选择了2维的格空间。
这样一个离散的基向量生成空间集合,被称为整数格(Integer Lattice)。
整数格中的问题
在线性生成空间中,我们可以通过 v = c 0 ⋅ b 0 + c 1 ⋅ b 1 v=c_0\cdot b_0+c_1\cdot b_1 v=c0⋅b0+c