• ALG 3-5: Connectivity in Directed Graphs (有向图的连接性)


    Directed Graphs

    Directed graph. G = (V, E)

    • Edge (u, v) goes from node u to node v.

    Ex. Web graph -hyperlink points from one web page to another. (网络图——从一个网页到另一个网页的超链接)

    • Directedness of graph is crucial. (图的方向性至关重要)
    • Modern web search engines exploit hyperlink structure to rank web pages by importance. (搜索引擎利用超链接结构按重要性对网页进行排名)

    Graph Search (社交图谱搜索)

    Directed reachability. Given a node s, find all nodes reachable from s. (可达性:给定一个节点s,找出s可到达的所有节点。)

    Directed s-t shortest path problem. Given two node s and t, what is the length of the shortest path between s and t?

    (有向s-t最短路径问题: 给定两个节点s和t, s和t之间的最短路径的长度是多少?)

    Graph search. BFS extends naturally to directed graphs. (图搜索: BFS这一方法可以自然地应用到有向图搜索)

    Web crawler. Start from web page s. Find all web pages linked from s, either directly or indirectly.

    (网络爬虫:从网页s开始,找到所有直接或间接从s链接的网页)

    Strong Connectivity (强连通性)

    Def. Node u and v are mutually reachable if there is a path from u to v and also a path from v to u.

    (定义: 如果存在一条从u到v的路径和一条从v到u的路径,则节点u和v是相互可达的)

    Def. A graph is strongly connected if every pair of nodes is mutually reachable.

    (定义:一个图是强连通的,如果每个节点对都是相互可达的)

    Lemma. Let s be any node. G is strongly connected iff every node is reachable from s, and s is reachable from every node.

    (引理: 取任意节点。当且仅当 每个节点都可从s到达时,且s也是每个节点都可到达的 时,G是强连通的)

    Pf. ⇐ Path from u to v: concatenate u-s path with s-v path. (从u到v的路径: 将u-s路径与s-v路径连接)

              Path from v to u: concatenate v-s path with s-u path. (从v到u的路径:将v-s路径与s-u路径连接)

    Strong Connectivity: Algorithm

    Theorem. Can determine if G is strongly connected in O(m + n) time. (可以在O(m + n)时间内, 判断G是否强连通)

    Proof.

    • Pick any node s.
    • Run BFS from s in G. // 从s节点出发, 正向运行BFS算法
    • Run BFS from s in G_rev. (reverse orientation of every edge in G)   // 从s节点出发, 反向运行BFS算法
    • Return true iff all nodes reached in both BFS executions.
    • Correctness follows immediately from previous lemma.

  • 相关阅读:
    [Sql Server][原创]
    SQL Server T-SQL高级查询
    SQL 网文链接
    Epicor系统二次开发
    lambda表达式的变量作用域
    写一个正则表达式匹配手机号
    函数装饰器在类方法中的使用方法
    关于Django的session的使用 (装饰器版)
    Django ORM相关操作(2)
    Django ORM相关操作(1)
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/13975675.html
Copyright © 2020-2023  润新知