Skip to content

图生成器 API

模块路径: lib/utils/generators/ | 16 种图生成器

pub fn[G : @core.GraphWritable] complete_directed(G, Int, Double) -> G
pub fn[G : @core.GraphWritable] complete_undirected(G, Int, Double) -> G
pub fn[G : @core.GraphWritable] erdos_renyi(G, Int, Double, Double?) -> G
pub fn[G : @core.GraphWritable] barabasi_albert(G, Int, Int, Double?) -> G
pub fn[G : @core.GraphWritable] watts_strogatz(G, Int, Int, Double, Double?) -> G
生成器模型参数特点
erdos_renyiG(n,p)n=节点数, p=边概率经典随机图
barabasi_albertBA 模型n=节点数, m=每步边数无标度(幂律)
watts_strogatzWS 模型n,k,p小世界(高聚类)
pub fn[G : @core.GraphWritable] grid_2d(G, Int, Int, Double?) -> G
pub fn[G : @core.GraphWritable] grid_3d(G, Int, Int, Int, Double?) -> G
pub fn[G : @core.GraphWritable] complete_bipartite(G, Int, Int, Double?) -> G
pub fn[G : @core.GraphWritable] cycle(G, Int, Double?) -> G
pub fn[G : @core.GraphWritable] path(G, Int, Double?) -> G
pub fn[G : @core.GraphWritable] star(G, Int, Double?) -> G
pub fn[G : @core.GraphWritable] wheel(G, Int, Double?) -> G
pub fn[G : @core.GraphWritable] hypercube(G, Int, Double?) -> G
生成器说明参数
grid_2d二维网格图rows, cols
grid_3d三维网格图x, y, z
complete_bipartite完全二分图left, right
cycle环图n 个节点
path路径图n 个节点
star星形图n 个节点
wheel轮图n 个节点
hypercube超立方体k 维
pub fn[G : @core.GraphWritable] random_tree(G, Int, Double?) -> G
// 创建 Erdős-Rényi 随机图(50 节点,边概率 0.1)
let g = @storage.new_directed()
let g = generators.erdos_renyi(g, 50, 0.1, None)
// 创建 BA 无标度图(100 节点,每步加 3 条边)
let g = @storage.new_directed()
let g = generators.barabasi_albert(g, 100, 3, None)
// 创建 5x5 网格图
let g = @storage.new_undirected()
let g = generators.grid_2d(g, 5, 5, None)