版本

# 图算法接口


# 接口列表:

# 中心度算法

# 分类/相似度算法

# 社群算法

# 路径查找算法

# 业务场景算法


# 中介中心度查询

# 简述

将图视为有向图,计算点的中介中心度。主要基于经过该点的最短路径数量。

# 方法

	void query_betcentrality(score_return& _return, 
                             const std::string& db_name, 
                             const int32_t search_direction, 
                             const int32_t hop);

# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
search_direction int32_t 搜索方向 * 2 方向参数说明
hop int32_t 终止跳数 * 5 大于等于1,如需搜索全图可给一个很大的数值如100

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return score_return 返回了点id与其对应的中心度分数 * *

# 接近中心度查询

# 简述

将图视为无向图,计算点的接近中心度。主要基于点到图中其他各点的最短路径长度。

# 方法

	void query_clocentrality(score_return& _return, 
                             const std::string& db_name, 
                             const bool if_WF, 
                             const int32_t hop);

# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
if_WF bool 是否使用Wasserman and Faust提出的改进方式 * 2 对于全联通图,是否使用改进方法结果不变。
hop int32_t 终止跳数 * 5 大于等于1,如需搜索全图可给一个很大的数值如100

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return score_return 返回了点id与其对应的中心度分数 * *

# 网页排名查询

# 简述

即pagerank算法。将图视为有向图,根据边上权重值,基于传播模型,计算图中节点的重要程度。用户可自定义传播模型参数。

# 方法

		void query_pagerank(score_return& _return, 
                           const std::string &db_name,
                           const double damping_factor,
                           const int32_t epoch_limit,
                           const double max_convergence_error,
                           const double vertex_init_value,
                           const std::string &edge_type,
                           const std::string &edge_props_name);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
damping_factor double 损耗因子 * 0.85
epoch_limit int 迭代上限 * 5
max_convergence_error double 最大收敛误差 * 0.0001
vertex_init_value double 节点初始分数 * 1
edge_type string 权重边类型 * "edge" 如没有权重属性,此属性可给空串。
edge_props_name string 权重属性名 * "value" 权重属性需为权重边上的数值类型属性。

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return score_return 返回了点id与其对应的重要程度的分数 * *

# 杰卡德相似度查询

# 简述

将图视为有向图,基于邻居节点,计算两个节点的相似度。

内容升级中。


# Louvain查询

# 简述

将图视为无向图,基于拓扑结构与边权重计算出的模块分数,为点划分社群。

# 方法

		void query_louvain(community_return& _return, 
                           const std::string& db_name, 
                           const std::string& edge_type, 
                           const std::string& edge_props_name);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
edge_type string 权重边 * “relation” 如没有权重属性,此属性可给空串。
edge_props_name string 权重属性 * “weight” 权重属性需为权重边上的数值类型属性。

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return community_return 返回了点id与其对应的社群 * *

# 标签传播查询

# 简述

Label Propagation Algorithm in semi-synchronous way,半同步标签传播算法,将图视为有向图,基于半同步标签传播理论,将图中的节点进行社群划分,分类表现较好。

# 方法

		void query_lpa(community_return& _return, 
                        const std::string& db_name,
                        const int32_t epoch_limit);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
epoch_limit int 迭代上限 * 20

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return community_return 返回了点id与其对应的社群 * *

# 同步标签传播查询

# 简述

Label Propagation Algorithm in synchronous way,将图视为有向图,基于同步标签传播理论,避免了循环传播情况,将图中的节点进行社群划分,速度快于标签传播算法。

# 方法

		void query_lpa_sync(community_return& _return, 
                        const std::string& db_name,
                        const int32_t epoch_limit);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
epoch_limit int 迭代上限 * 20

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return community_return 返回了点id与其对应的社群 * *

# 强连通分量查询

# 简述

Strongly Connected Components算法,将图视为有向图,查找图中的强连通分量。

# 方法

		void query_scc(community_return& _return, 
                        const std::string& db_name);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return community_return 返回了点id与其对应的社群 * *

# 弱连通分量查询

# 简述

Weakly Connected Components算法,将图视为无向图,查找图中的弱连通分量。

# 方法

		void query_wcc(community_return& _return, 
                        const std::string& db_name);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return community_return 返回了点id与其对应的社群 * *

# dijkstra查询

# 简述

将图视为有向图,根据边上的权重值,查找给定两点间最短路径。

内容升级中。


# 单条最短路径查询

# 简述

将图视为有向图,查找两个节点的一条最短路径。

内容升级中。


# 随机游走查询

# 简述

将图视为有向图,基于游走模型,给出给定节点的游走路线。用户可自定义游走模型的参数,控制深度搜索与广度搜索的比例。

内容升级中。


# 资金流向查询

# 简述

用于查找指定用户在指定时间范围内的资金流向情况。

# 方法

		void query_money_flow(money_flow_return &_return, 
                              const std::string &db_name, 
                              const int32_t start_node, 
                              const int64_t start_time, 
                              const int64_t end_time,
                              const int32_t money_percent, 
                              const int64_t time_window, 
                              const std::string &edge_type, 
                              const std::string &time_props, 
                              const std::string &money_props, 
                              const int32_t mode);


# 参数

参数列表 类型 描述 是否可空 默认值 示例 备注
db_name string 数据库名称 * "ezoo"
start_node int32_t 起点内部id * 0
start_time int64_t 时间起点(毫秒级时间戳) * 0
end_time int64_t 时间终点(毫秒级时间戳) * 1
money_percent int32_t 金钱百分比,一个大于0小于100的整数,最终将仅考虑大于总钱数此比例大小的转账 * 1
time_window int64_t 转账时间窗口,前后两笔转账的最大间隔时间 (毫秒级时间戳) * 1
edge_type string 转账边类型 * "edge"
time_props string 转账时间属性 * "time"
money_props string 转账金钱属性 * "money"
mode int32_t 模式,当模式为0,仅返回资金流向图,当模式为1,返回资金流向图,各节点与起始节点的资金。 * 1

# 返回值

参数列表 类型 描述 是否可空 默认值 示例 备注
_return _return 返回资金流向图与各节点上的资金。 * *
最近一次更新时间: 9/15/2022, 3:46:39 AM