Page 345 - 《软件学报》2026年第5期
P. 345

2224                                                       软件学报  2026  年第  37  卷第  5  期



                                                   表 3 轨迹数据集属性表

                   数据集              时间范围              轨迹条数       轨迹点数        采样频率 (s)      网格密度标准差
                   深圳市         2013年10月22日0–24时         562       917 006       30             2.4
                   柏林市         2003年11月20 日6–9时         302       51 544        120            0.5
                    随机       2008年2月2日15时–8日15时        3 203     5 222 752      300            1.2

                    经典  RMI 结构采用两层模型, 第       1  层为  1  个前馈神经网络, 第   2  层为依据数据集划分数据生成的若干个前馈
                 神经网络, 神经网络中的隐藏层均为           2  层, 激活函数为   ReLU, 神经元数量固定为      100. RMI 在查询过程中体现出学
                 习索引的典型特点, 即索引输入为           1  个查询键, 经第  1  层神经网络预测后, 得到第       2  层模型的编号, 进入预测指定
                 的第  2  层神经网络, 随后再次经过神经网络预测, 得到预测的查询值位置, 在数据存储列表中的误差范围内开展遍
                 历查询. 但是, RMI 结构并未设置支持动态更新的模型扩展及分裂机制, 仅存在模型中固定大小的缓冲空间, 插入
                 此结构的数据和键值不能自由选择位置只能插入指定的缓冲空间, 会影响后续对该查询键的位置预测准确性, 同
                 时, 因为缺乏扩展分裂机制, 在缓冲空间被填满后, 该模型需要重新进行训练, 对新的数据集排序划分子集后, 再次
                 循环若干子模型, 构造出新的         RMI 结构.
                    ALEX  作为可更新自适应学习索引, 通过融合学习索引的分布感知能力与传统                       B+树的结构优势, 在动态工作
                 负载场景中实现了性能突破. 首先, 采用模型导向的插入策略, 基于线性回归模型预测数据分布, 通过贪心插入算
                 法优化键值存储位置; 其次, 设计自适应节点扩展机制, 根据数据增长模式动态选择节点分裂或就地扩展策略, 结
                 合间隙预留技术平衡空间利用率与更新效率; 最后, 构建混合存储布局, 在内部节点集成数组存储与间隙控制. 但
                 索引性能对数据分布平稳性具有较强依赖性, 在面对非平稳数据流时需引入在线模型重训练机制, 带来额外计算
                 开销, 在强实时更新系统中仍需权衡性能与维护成本.
                  6.2   非均匀网格索引实验
                    NUGC_LI 索引构建结构及所用函数在上述部分已有说明, 误差值                   err 为  10, 误差区间  ErrINR  为  20, 根节点
                 中线性模型的斜率为        1.0/(key max −key min ), 截距为  −key min /(key max −key min ), 根节点与中间节点的线性模型输出均为
                 CDF  函数, 输出值为   [0, 1] 之间的概率值, 由概率值对应归一化后的模型编号或数据位置, 就能确定下一阶段应选
                 节点, 各节点最大容纳空间为         16 MB, 根据键值大小    (64 KB), 理论最大扇出数为     256.
                  6.2.1    学习索引节点阈值对比
                    NUGC_LI 索引节点中设置有节点阈值          NodeTHR  为后续判断节点是否需要扩展或分裂提供参考, 对               NodeTHR
                 参数的不同选择对索引性能的影响设置了对比实验, NodeTHR                的计算公式在定义       11 中已作详细说明, 易知公式      (16)
                 中  X  的设置直接决定了     NodeTHR, 因此下列对   X  的不同取值下索引的性能进行了实验分析, 对              X  进行  50%–90%
                 区间内的不同取值, 实验结果如图          8  所示.

                                                构建时间代价     查询时间代价    时间代价

                                            1.4
                                            1.2                            0.95
                                           构建/查询时间代价 (s)  0.8              0.90  时间代价 (s)
                                            1.0

                                            0.6
                                            0.4
                                            0.2
                                             0                             0.85
                                                50    60    70   80    90
                                                           X (%)
                                                图 8 不同节点阈值性能对比图
   340   341   342   343   344   345   346   347   348   349   350