算法的获取与执行

Ultipa 提供了丰富的算法支持,其中包括各种度中心算法,社区/聚类算法(如 Louvain,LPA 等)。图嵌入算法 (如 随机游走,Node2Vec,LINE 等) ,以及图遍历相关的(比如全图 K 邻算法等)。本文档将会详细介绍如何执行一个算法,以及每个算法的具体参数与含义。由于 Ultipa 服务超高性能,使得算法的运行时间缩短了几十倍甚至上百倍,以至于将原先非常复杂算法变得具有实时性,所以在 ultipa 的算法包中,既包含实时计算的算法,如两点相似度计算,也包含近实时和异步任务的方式对全图、全量数据运行的算法,如 Page Rank,LPA 等。

ULTIPA 算法集以插件形式提供给用户,用户甚至都可以热插拔的更新算法集,因此也可以直接购买高级算法包,或定制化算法包。

目前提供算法包分别为:

  • 基础算法包
  • 高级算法包
  • AI 算法包 

获取算法列表

查看当前可以使用的算法列表:

listAlgo();

算法执行

algo(<algorithm_name>).params(<configuration>).force?().write_back?().visualization?().stats?()

算法执行的基础 [命令] 为:algo(<algorithm_name>)

算法执行的基础 [参数] 为:

名称 类型 规范 描述
params obj 必填 算法的配置,包裹成对象格式,具体配置项见各算法相关章节
force / / 将会强行执行算法,忽略同时可运行算法数量的限制
write_back / / 将算法运行结果写回到点属性或者文件RPC接口, 仅适用于支持回写的算法
visualization / / 对数据进行可视化预处理,并将处理结果记录在任务中,供后续的algo_dv()命令使用,仅适用于支持可视化的算法
stats / / 执行算法但不返回计算结果

注 1:当命令中包含write_back()visualization()stats()时,算法会被执行为一个任务,并将任务id返回给客户端(SDK,API,Manager);不包含这些参数时则直接将算法运行结果以流的形式返回给客户端。

注 2:针对算法任务的操作可以参考UQL手册《Ultipa图操作语言》中的《任务 – 算法任务》章节。

算法可视化

algo_dv(<algorithm_name>).params(<configuration>).id(<task_id>)

算法可视化的基础 [命令] 为:algo_dv(<algorithm_name>)

算法可视化的基础 [参数] 为:

名称 类型 规范 描述
params obj 必填 算法的配置,包裹成对象格式,具体配置项见各算法相关章节
id int 必填 先前运行的algo().visualization()时的任务id. algo_dv()中的<algorithm_name>必须与该任务中的算法名一致