动态图与增量计算:增量最短路径、增量 PageRank、连通性维护 ACERS 解析

副标题 / 摘要 动态图场景里,真正的痛点不是“会不会算法”,而是“更新来了能不能顶住”。本文按 ACERS 模板讲透三件工程必修:增量最短路径、增量 PageRank、连通性维护,以及三条现实策略:局部重算、延迟更新、近似结果。 预计阅读时长:14~18 分钟 标签:动态图、增量计算、最短路径、PageRank、连通性维护 SEO 关键词:动态图, 增量最短路径, 增量 PageRank, 连通性维护, 局部重算, 延迟更新, 近似结果 元描述:动态图工程指南:在高频更新场景下如何用增量算法与工程策略控制时延和成本。 目标读者 做图数据库、关系图、推荐图在线服务的工程师 从离线图计算转向实时增量计算的开发者 想把“全量重算”改造成“可上线更新流水线”的技术负责人 背景 / 动机 静态图算法在论文里很优雅,但真实系统里图是不断变化的: 用户关系新增/删除 交易边持续流入 内容图和知识图谱持续更新 工程上 80% 的痛点就在这里: 全量重算太慢,赶不上更新速率 在线强一致代价太高,P99 失控 业务只要“可用近似”,却在做“昂贵精确” 所以核心问题变成: 不是怎么把答案算出来,而是怎么在更新流下持续算得动。 核心概念 概念 含义 工程关注点 增量最短路径 边/点更新后只修复受影响区域 影响域检测、局部重算 增量 PageRank 图更新后迭代残差局部传播 残差阈值、批量窗口 连通性维护 动态维护是否连通/分量变化 插入快、删除难 局部重算 只对受影响子图重新计算 降低 CPU/内存 延迟更新 把更新合并成批次统一处理 吞吐优先、可控延迟 近似结果 用误差边界换计算成本 SLA 与精度平衡 A — Algorithm(题目与算法) 题目还原(工程化) 给定一个持续更新的图 G_t=(V_t,E_t) 和操作流: ...

2026年2月9日 · 5 分钟 · map[name:Jeanphilo]

图中心性三件套:Degree、Betweenness、Closeness 工程 ACERS 解析

副标题 / 摘要 中心性不是论文概念,而是图系统里的“节点重要性排序器”。本文按 ACERS 结构讲透 Degree / Betweenness / Closeness,并给出一条务实结论:线上大多数系统只稳定支持 Degree + 近似 Betweenness。 预计阅读时长:12~16 分钟 标签:图论、中心性、Degree、Betweenness、Closeness SEO 关键词:图中心性, Degree Centrality, Betweenness, Closeness, 近似 Betweenness 元描述:图中心性工程指南:三大指标定义、复杂度、近似算法与落地策略,附可运行代码。 目标读者 做关系图分析、知识图谱、图数据库查询优化的工程师 需要把“节点重要性”从概念变成上线指标的开发者 想知道为何 Betweenness 工程上昂贵、如何做近似替代的同学 背景 / 动机 你在图系统里迟早会遇到这类问题: 哪些节点是“社交大 V”或“交易枢纽”? 哪些节点是关键桥梁,断开就会让图显著分裂? 哪些节点整体上离其他节点更近,适合作为入口/缓存热点? 对应到中心性指标: Degree Centrality:连接数多不多(本地重要性) Betweenness Centrality:是否位于大量最短路径中(桥梁重要性) Closeness Centrality:到全图平均距离是否更短(全局接近性) 现实里最大的坑不是“不会定义”,而是“算不动”: Degree 非常便宜,几乎所有系统都能实时支持 Betweenness 精确计算很贵,通常只能离线或近似 Closeness 需要大量最短路,图一大就难在线 核心概念 1) Degree Centrality 无向图中节点 v 的度中心性常写为: C_D(v) = deg(v) / (n - 1) 含义:节点局部连接活跃度。 ...

2026年2月9日 · 6 分钟 · map[name:Jeanphilo]

连通分量与强连通分量:Tarjan / Kosaraju 工程 ACERS 解析

副标题 / 摘要 连通分量是图算法的基础地基:无向图关注“是否连在一起”,有向图关注“是否互相可达”。本文按 ACERS 模板,从朴素做法推导到 Tarjan / Kosaraju,并给出图数据库落地场景与多语言可运行实现。 预计阅读时长:14~18 分钟 标签:图论、连通分量、SCC、Tarjan SEO 关键词:Connected Components, SCC, Tarjan, Kosaraju, 图数据库 元描述:从无向连通分量到有向强连通分量,讲清 Tarjan/Kosaraju 的核心机制、复杂度和工程落地。 目标读者 需要把 BFS/DFS 用到“滚瓜烂熟”的算法学习者 在图数据库场景做子图分析、分片规划的工程师 想建立“无向 CC + 有向 SCC”统一认知框架的中级开发者 背景 / 动机 工程里你会很快遇到这三类问题: 这批节点是否天然分成多个互不相连的群?(无向图连通分量) 哪些节点形成“互相可达”的强闭环?(有向图 SCC) 如何把大图切成更可并行、更易缓存、更易分片的子图? 如果只会 BFS/DFS 但不会“分量视角”,你会反复做可达性查询,成本高且难维护。 连通分量算法的价值是:一次全图扫描,把局部查询变成 O(1) 的分量 ID 比较。 核心概念 Connected Components(CC):无向图中,任意两点都可达的最大节点集合 Strongly Connected Components(SCC):有向图中,任意两点互相可达的最大节点集合 Condensation DAG(缩点图):把每个 SCC 缩成一个点后得到的有向无环图 Tarjan 核心状态:dfn[u](时间戳),low[u](可回溯到的最小时间戳),栈与 in_stack Kosaraju 核心流程:原图按完成时序排序 + 反图二次 DFS A — Algorithm(题目与算法) 题目还原(工程化表述) 给定一个图 G=(V,E): ...

2026年2月9日 · 7 分钟 · map[name:Jeanphilo]

最短路径三件套:BFS、Dijkstra、A* 工程实战 ACERS 解析

副标题 / 摘要 最短路径不是一道题,而是一组“按图条件选算法”的工程能力。本文按 ACERS 结构拆解 BFS(无权)/ Dijkstra(非负权)/ A(启发式)*,并给出你在关系图、推荐链路、路径解释里真正会用到的优化模板。 预计阅读时长:14~18 分钟 标签:图论、最短路径、BFS、Dijkstra、A* SEO 关键词:最短路径, BFS, Dijkstra, A*, 双向搜索, 多源 BFS 元描述:最短路径三件套工程指南:算法边界、复杂度、可运行代码、优化策略与实战场景。 目标读者 正在补图算法基础,希望形成可复用工程模板的学习者 做社交关系链路、推荐路径、图查询解释的后端/算法工程师 对 BFS、Dijkstra、A* 都“知道名字”,但选型和优化还不稳定的开发者 背景 / 动机 最短路径问题常见于: 社交网络里的最短关系链路(几跳可达) 推荐系统里的最小代价路径(多目标折中) 可解释系统里的“为什么推荐给你”路径展示 工程里最容易犯的错误是“只会一个算法硬套全部场景”: 用 BFS 跑加权图,结果错但不报错 用 Dijkstra 跑负权边,得到不可靠结果 用 A* 但启发函数不合格,性能退化成 Dijkstra 本质上,最短路径应先做 图条件分类,再做算法选型。 核心概念 算法 适用图 最优性条件 典型复杂度 关键词 BFS 无权图 / 等权图 按层首次到达即最短边数 O(V+E) queue, level Dijkstra 非负权图 堆顶弹出的节点距离已最优 O((V+E)logV) relaxation, min-heap A* 非负权图 + 启发式 h(n) 可采纳(不高估) 最坏同 Dijkstra,平均更快 f=g+h 关键公式: ...

2026年2月9日 · 10 分钟 · map[name:Jeanphilo]