修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      用UQL实现简单算法

      尽管Ultipa的图分析与算法已经支持了近百种经典、常用的图算法,我们仍然可以通过编写UQL来实现其中一些算法的计算效果。当然,这种尝试的前提是所选算法的计算过程,即每一步的计算结果能够设计成合理的数据流并在UQL语句的各个部分之间传递。像Jaccard相似性、全图K邻计算、三角形计算等算法,均可以用UQL来直接实现。

      Jaccard相似度是针对图中某两个节点进行计算。Jaccard相似度的定义是两个集合的交集大小除以它们合集的大小,用公式表示则为:



      其中,“|A|”为集合A的大小(元素的个数),“|B|”为集合B的大小,“|A∩B|”为A、B两集合交集的大小(共同元素的个数)。例如,下图中红、蓝节点的共同邻居数为2,所有邻居数为5,因此这两个节点的Jaccard相似度为 2 / 5 = 0.4。

      用UQL实现以上计算过程的步骤为:

      • 分别查找点A、点B各自的邻居集合;
      • 将两个邻居集合转换为两个数组的形式;
      • 计算两个数组的长度,即得到“|A|”与“|B|”,计算两个数组的交集的长度,即得到“|A∩B|”;
      • 按照公式计算出Jaccard相似度的数值。

      以上步骤用UQL实现的示例:

      以之前红、蓝节点图为例,将以上代码执行过程中所产生的数据流解析如下:

      对于针对全图进行计算的算法,如三角形计算,也可以用UQL来实现,代码甚至比上面给出的Jaccard相似度的代码更为简单。按边计算三角形的UQL代码为:

      如果需要按点计算三角形,可以对上面的代码进行改造,将三角形的三个点构成三元组以后去重即可:

      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写