一种精确求解实数格逐次最小量问题的方法及系统的制作方法_3

文档序号:9399057阅读:来源:国知局
式中
是在k层以前的累积权重。也就是说,如果 uk+1,...,Ujl定了,那么为了满足长度限制,1^就只能在(c k-yk,ck+yk)这个区间内取值。
[0081] 球解码算法采用深度优先的方式,自上而下地在这棵搜索树上对这些系数进行搜 索。而在第k(k = m,m-1,. . .,1)层,SE枚举策略规定了要按照距(^由近到远的顺序,也就 是使局部权重Wf 递增的顺序,对上述区间中的整数点进行搜索,从而保证首先找到 的格向量的长度较短。具体的实现方法是在每一层都通过一个变化的偏置量%来控制搜 索:
[0082] ?当搜索从第k+Ι层到达第k层时,根据式(6)计算出Ck,令 ok- sgn "" (ck-uk)(当 X》0 时 Sgni(X)的取值为 1,当 X < 0 时 Sgni(X)的取值为 0);
[0083] ?剩余的整数点都按照以下方式搜索:uk- u k+〇k,同时更新偏置 〇k- _〇 k_sgn*(ok) ο
[0084] 当搜索顺利地访问到了一个最底层的节点^时,就找到了当前搜索区域中的一 个格向量,此时需要通过条件判断来决定是否保留这个向量。即需要计算矩阵[U 1-UklU] 的秩,若秩为k,我们就把找到的系数向量U存储为Uk的一个新候选向量,并把搜索区域的 半径缩小为其对应格向量的长度。而如果秩不为k,那么应该舍弃这个U,并继续在当前的 搜索区域中搜索。如果在当前搜索区域中再也找不到一个更短、并且能够满足rank([ Ul··· Uk P]) = k条件的向量,那么就把最后得到的候选向量返回为Uk;这个U !^寸应格向量的长 度,也就是最后的搜索半径,就是λ k。
[0085] 2· 2搜索过程的初始化优化方法
[0086] 我们可以从另一个角度理解基于SE枚举策略的球解码算法。球解码算法把一个 球形搜索区域构造成一棵m层搜索树,其每一个最底层的叶子节点都对应了搜索区域中的 一个格向量,而自上而下到达这个叶子节点的路径就给出了这个格向量的完整系数向量。 如果我们令这颗搜索树所包含的任何一个二层子树(例如一个特定的u k+1节点和根据它的 取值计算出的满足式(7)的Uk所构成的二层子树)的子节点都按照使得对应的局部权重 wf递增的顺序从左到右重新排列,那么采用SE枚举策略时,这棵重排后的搜索树的任意一 层的节点都会按照从左到右的顺序被搜索到。需要注意的是,从整体来看,同一层节点的局 部权重wf并不是从左至右递增的。此外,这棵搜索树是由矩阵R和搜索半径完全决定的。 由于在解决SMP的m次球解码过程中R始终保持不变,因此之前的球解码所获得的中间结 果可以被利用来加速下一次的球解码。我们用下面的例子来具体说明。
[0087] 假设第k次球解码的初始半径为rk= I I g ldx〇i) I I,根据上述重排方法构造的搜索树 的最低两层如图1所示;最底层共有12个叶子节点,分别用序号1至12表示,它们分别对 应当前的搜索区域中的12个格向量。使用SE枚举策略时,这些节点将按照从左到右的顺 序被搜索到。现在假设节点1、2对应的系数向量不满足秩为k的条件,节点3对应的系数 向量(记为U1.)能够满足秩为k的条件,此时便把S1存储为Uk的候选,并将搜索半径缩小 为其对应格向量的长度半径缩小后,原搜索区域中那些长度y|Rfl1:||的格向量就会 被排除在新搜索区域外,我们假设节点3、4、7、10、11、12对应的格向量都被排除了。搜索继 续往右进行。首先找到的节点5对应的系数向量不满足秩为k的条件,继而找到节点6对 应的系数向量(记为\ )能够满足秩为k的条件,因此接下来要把:A2存储为Uk的新候选, 并将搜索半径缩小为IfRii21。假设这次半径缩小之后又将节点6和9排除在了新搜索区域 外,因此只剩下节点8。当搜索到节点8时,发现其对应的系数向量不满足秩为k的条件,而 此时的搜索区域中已经不存在其他格向量,因此球解码将\返回为u k。
[0088] 接下来重新开始第k+1次球解码来寻找vk+1,如果用I I gidx〇i+1) I I作为初始半径 rk+1,则有rk+1> r k,即此次球解码的搜索范围将变大。而实际上,我们可以利用上一次球解 码的中间结果来缩小搜索范围。假设我们通过计算发现HtnkGul ···!!,: PiCilD = A +1,那 么就可以把||Rfij用作初始rk+1、fi:i用作uk+1的初始候选。此外我们知道,此时的搜索树就 是图1所示的搜索树种排除了节点3、4、7、10、11、12后的剩余部分,并且已知节点1、2、5、6 是不满足秩为k+Ι的条件的,因此,我们可以直接从节点6往右开始搜索。在这个例子中, 节点8和节点9将被依次找到,如果它们都不能使得秩为k+Ι的条件得到满足,那么就会 被返回为uk+1。显然,通过这样的优化方法,第k+Ι次球解码的复杂度将会大大降低,搜索的 效率将会得到极大提升。
[0089] 三·总结:
[0090] 我们把本发明构造的精确求解实数格逐次最小量问题的方法命名为SMPR方法 (算法SMPR)。针对m维格£(G)求解SMP时,算法SMPR需要重复使用m次2. 1中所描述 的基于SE枚举策略的改进球解码算法(命名为子算法GSVP)。为了实现2. 2中描述的 初始化优化,算法SMPR在初始时构建五个有序集合:
、:
.和三个空集CS、CSW和CS0,分别用来存储子 算法GSVP找到的中间候选系数向量、对应的格向量的平方长度,以及对应的偏置向量〇 = [01,02,. . .,0JT(0完全确定了系数向量在搜索树上的位置)。在每一次GSVP开始前,都将 利用初始化子算法(子算法Initialization)来确定搜索区域半径的平方W。、初始的候选 系数向量U k、初始搜索系数向量u、以及偏置向量0。算法SMPR最终返回的是一个系数矩 阵U,使得⑶的列向量就是£积)的SMP的一个精确解,它们长度就是£(G)的m个逐次最 小量{ λ η λ 2, ...,。下面我们依此总结算法SMPR、子算法Initialization和子算法 GSVP0
[0091] 算法 SMPR:
[0092] 本发明精确求解实数格逐次最小量问题的方法(算法SMPR),具体包括如下步骤:
[0093] 第一步(预处理):对给定的生成矩阵G进行LLL规约,把规约得到的新基直接赋 给G,把规约得到的一个单模矩阵赋给T。预处理的目的是降低算法GSVP搜索区域的半径, 从而降低搜索的复杂度。
[0094] 第二步:对G进行QR分解,得到G = QR ;构造集合CS。= {e idx⑴,eidx⑵,· · ·,eidx w},csw。= {11 g ldx⑴ 112, 11 g油⑵ 112, · · ·,11 gldxW 112},和三个空集 cs、CSW 和 CSOo
[0095] 第三步:对于k = 1,2, · · ·,m,依次进行下述操作:
[0096] (1)利用子算法Initialization确定W。、初始的uk、u和〇 ;
[0097] (2)利用子算法GSVP找到系数向量Uk并更新CS、CSW和CS0。
[0098] 第四步:返回 U - T · [U1U2…uj。
[0099] 子算法 Initialization :
[0100] 依据2. 2中的讨论,我们下面总结子算法Initialization,算法的流程图在图2中 给出。在算法的描述中,Omxi表不的是一个长度为m的全0向量,I mX1表不的是一个长度为 m的全1向量;对于一个有序集合S,|S|表示S中包含的元素个数,S(I)表示S中的第一 个元素,S(end)表示S中的最后一个元素,S(end-l)表示S中的倒数第二个元素。
[0101] 子算法Initialization具体包括如下步骤:
[0102] Casel :如果 I CS I < 1,则计算 rank([iv"uk iCSoQ)]):如果秩为 k,那么令 uk-CS 0(1),W。-CSW0(I),u -- Inixi,并且令 CS - {uk},CSW - {ff0},CSO - {〇}, 最后从CS。和CSW。中删除第I个元素;如果秩不为k,那么从CS。和CSW。中删除第I个元素 后重复上述操作,直至找到满足条件的初始值。
[0103] Case2 :如果 |CS| 彡 2,则计算 rankCiv.·% iCSCend-l)]):如果秩为 k,那么令 uk- CS (end-1),W。一 CSW (end-1),u - CS (end),〇 - CSO (end),并从 CS、CSW 和 CSO 中删 除最后一个元素;而如果秩不为k,那么从CS、CSW和CSO中删除最后一个元素后重复上述 操作,直至找到满足条件的初始值,或者直到CS中的元素个数少于两个(接着回到Casel)。
[0104] 子算法 GSVP:
[0105] 有了上述初始化优化算法,我们可以依据2. 1中的讨论总结子算法GSVP。在算法 SMPR的第k步,子算法GSVP的输入为R、[11广· uk J,和算法Initialization返回的u、uk、 WQ、0以及CS、CSW和CSO ;输出为系数向量uk以及更新后的
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1