首页 > 其他分享 >NeuroSketch中,为什么Query Instance不会落入多个叶子结点?

NeuroSketch中,为什么Query Instance不会落入多个叶子结点?

时间:2023-11-09 14:13:46浏览次数:29  
标签:结点 KD high Instance NeuroSketch low Query

参考文献
[1] Zeighami S, Shahabi C, Sharan V. NeuroSketch: Fast and Approximate Evaluation of Range Aggregate Queries with Neural Networks[J]. Proceedings of the ACM on Management of Data, 2023, 1(1): 1-26.

Query编码方式

  • NeuroSketch支持的SQL语句格式如下:

  • 在 AGG 和 Am 确定的情况下,我们对上述SQL进行编码,令 c=(c_1, ..., c_d), r=(r_1, ..., r_d), q=(c,r)

  • 此时,q 即我们对某条Query的编码

解释

  • 假设Query的谓词中只有一个属性,则 q=(c_1,r_1),记作 q=(c,r),表示 c <= A <= c+r(称作编码1)

  • 与另一种更直观的编码方式对比,假设 q'=(low,high) 表示 low <= A <= high(称作编码2)

  • 当我们使用编码2构建KD树时,我们取属性A的中位数 a,将 Q(表示q的集合)分为两部分 X、Y

    此时结点 X 表示的范围为:0 <= A <= a
    结点 Y 表示的范围为:a <= A <= 1

    对于一条query:q'=(m,n), 若0<m<a, a<n<1,则 X、Y 任一结点都无法包含 m <= A <= n 这个范围,因为下限m落在X内,上限n落在Y内

  • 我们通过改造KD数的构建过程,可以解决上述问题

    首先,我们取 Q 中所有 q' 的 low 值,找到 low 的中位数 low_m;类似的方法找到 high 的中位数 high_m。

    构建kd树时,首先用 low_m 将 Q 分为两部分 X、Y,再用 high_m 将X、Y分别分为两部分 X1、X2、Y1、Y2

    X:0 <= low <= low_m(对high不作限制)
    Y:low_m <= low <= 1 (对high不作限制)
    X1:0 <= low <= low_m AND 0 <= high <= high_m
    X2:0 <= low <= low_m AND high_m <= high <= 1
    Y1:low_m <= low <= 1 AND 0 <= high <= high_m
    Y2:low_m <= low <= 1 AND high_m <= high <= 1

    在这个KD树中,并没有直接地把Query空间一分为二,而是第一层只限制low值,第二层只限制high值。

    换言之,之前的构建KD树方式,是把一维空间分为两部分:

    在这个空间上执行query,有可能会跨越多个子集(如下,q同时涉及了X和Y):

    而我们第二次构建KD树时,是在二维空间上,先把low这个维度分为两部分:

    再在两个子空间X、Y上,把high这个维度分为两部分:

    在这个空间上执行query,其实就是在二维空间上定位一个点q=(m,n),如下所示:

    因此,对于某个q,他必然会落入某一个子空间(即某个叶结点),而不会跨越多个子空间。

  • 对于编码1:q=(c,r),我们用第二次构建KD树的方式,就可以达到相同的效果。

标签:结点,KD,high,Instance,NeuroSketch,low,Query
From: https://www.cnblogs.com/cherr/p/17819599.html

相关文章

  • jQuery.js - 前端必备的Javascript库
    作者:WangMin格言:努力做好自己喜欢的每一件事jQuery.js是什么?jQuery是一个快速简洁、免费开源易用的JavaScript框架,倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供了一种简便的JavaScript设计模式,以及我们开发中常用到的操作DOM的API,优化HTML文档操作......
  • jQuery 框架
    jQuery框架目录jQuery框架一.概述二.jQuery安装引用2.1安装2.2本地导入使用2.3jQueryCDN引入三.jQuery基本语法四.查找标签4.1基本选择器4.2组合选择器/分组与嵌套4.3基本筛选器4.4属性选择器4.5表单筛选器4.6筛选器方法五.练习题5.1答案5.2代码六.操作标签......
  • MySQL query_cache
    在服务器级别只提供了querycache,而在存储引擎级别,MyISAM和InnoDB分别引入了keycache和bufferpool什么是querycacheMysql没有shared_pool缓存执行计划,但是提供了querycache缓存sql执行结果和文本,如果在生命周期内完全相同的sql再次运行,则连sql解析都免去了;所谓完全相同,包含......
  • jquery中加$是什么意思
    $是JQuery常用的一个回传函数,定义为“选取”英文是selector的缩写$.function();选取JQuery定义的function()执行$('input')选取HTML当中全部的input标签$('#abc')选取HTML中id为abc的标签$.fn.testing=function(){}选取JQuery内核函数fn(函数)回传给testing这个名称、定位为一个功......
  • jquery引用地址合集整理
    <scriptsrc="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>jquery-3.1.1(最新)官网jquery压缩版引用地址:<scriptsrc="https://code.jquery.com/jquery-3.1.1.min.js"></script>jquery-3.0.0官网jquery压缩版引用地址:<s......
  • jQuery 筛选器 选择器
    jQuery内部封装了原生的js代码(还额外添加了很多的功能),能够让你通过书写更少的代码完成js操作类似于Python里面的模块,再前端模块不叫模块,叫类库兼容多个浏览器的 你在使用jquery的时候就不需要考虑浏览器兼容问题 jquery的宗旨writelessdomors让你用更少的代码完成更......
  • jquery 样式操作
    操作类:js版本:           jquery版本classList.add()      addClass()classList.remove()   removeClass()classList.contains()   hasClass()classList.toggle()      toggleClass()css操作:<p>111<p><p>222<p>......
  • jQuery快速入门2
    jQuery快速入门操作标签样式类addClass();//添加指定的CSS类名。removeClass();//移除指定的CSS类名。hasClass();//判断样式存不存在toggleClass();//切换CSS类名,如果有就移除,如果没有就添加。示例:开关灯和模态框CSScss("color","red")//DOM操作:tag.style.color="r......
  • Linux基础——3节点keepalived配置多instance部署
    一、节点信息:节点主机IP备注keepalived-1192.168.100.1MASTER节点priority200auth_passKeepalived123keepalived-2192.168.100.2BACKUP节点priority150auth_passKeepalived123keepalived-3192.168.100.3BACKUP节点priority100auth_passKee......
  • 无涯教程-批处理 - DRIVERQUERY函数
    此批处理命令显示所有已安装的设备驱动程序及其属性。DRIVERQUERY-语法driverqueryDRIVERQUERY-示例@echooffdriverquery上面的命令将显示当前系统上安装的所有设备驱动程序的信息。以下是显示的信息子集的示例。WacomPenWacomSerialPenHIDDKernel......