370 likes | 623 Views
图论的介绍. 哥尼斯 堡 七桥问題 ( Bridges of Koenigsberg ). 能不能走过每一个桥 刚 好一次并且回到原來的地方?. 欧拉路径 解決哥尼斯保七桥问題. 原來是一 笔画问题 啊!. 数学 家 欧拉 (Euler, 1707-1783) 于 1736 年 严格的证明了上述 哥尼斯堡 七桥问题无解 , 并且 由此 开创 了 图论 的典型 思维 方式及 论证 方式. 实际生活中的图论 G raph Model. 电路模拟. 例: Pspice 、 Cadence 、 ADS…. Pspice. Cadence. 交通网络. 航空网络 !.
E N D
哥尼斯堡七桥问題(Bridges of Koenigsberg) 能不能走过每一个桥刚好一次并且回到原來的地方?
欧拉路径解決哥尼斯保七桥问題 原來是一笔画问题啊! 数学家欧拉(Euler, 1707-1783) 于1736年严格的证明了上述哥尼斯堡七桥问题无解,并且由此开创了图论的典型思维方式及论证方式
电路模拟 例:Pspice、Cadence、ADS….. Pspice Cadence
交通网络 航空网络! 捷運路線图!
计算机网络 某学校网络架构图
有向图 有单行道的街道! 行程表!
Social Network High School Dating corporate e-mail Reference: Bearman, Moody and Stovel, 2004 image by Mark Newman Reference: Adamic and Adar, 2004
Protein interaction network Reference: Jeong et al, Nature Review | Genetics
The Internet The Internet as mapped by The Opte Project http://www.opte.org
More Applications • Hypertexts • 网页包含到其他网页的超链接。整个Web是一个图. 搜索引擎需要图处理算法。 • Matching • 职位招聘,如何有效将职位与应聘者匹配? • Schedules • 工程项目的任务安排,如何满足限制条件,并在最短时间内完成? • Program structure • 大型软件系统,函数(模块)之间调用关系。编译器分析调用关系图确定如何最好分配资源才能使程序更有效率。
哈密頓(Hamilton)周遊世界问題 正十二面体有二十个顶点 表示世界上20个城市 各经每个城市一次 最后返回原地 投影至平面 哈密頓路径至今尚无有效方法來解決!
最短路径问題 (Shortest Path Problem) 最快的routing 最快航線
最短路径算法Dijkstra算法 • 可以求出從某一点到图上其他任一点的最短路径
走迷宫与深度优先搜索(Depth-First Search) 一直往前走 碰壁就回头換条路找 沿途要记录下走过的路线 老鼠走迷宮深度优先搜索
Some graph-processing problems • Path. Is there a path between s to t? • Shortest path. What is the shortest path between s and t? • Longest path. What is the longest simple path between s and t? • Cycle. Is there a cycle in the graph? • Euler tour. Is there a cycle that uses each edge exactly once? • Hamilton tour. Is there a cycle that uses each vertex exactly once? • Connectivity. Is there a way to connect all of the vertices? • MST. What is the best way to connect all of the vertices? • Biconnectivity. Is there a vertex whose removal disconnects the graph? • Planarity. Can you draw the graph in the plane with no crossing edges? First challenge: Which of these problems is easy? difficult? intractable?
什么是图? 例一 例二 一堆顶点和边的组合! Set of vertices connected pairwise by edges.
图论的术语 顶点 (Vertex) 边 (Edge) 一个图G = (V,E) V: 顶点的集合 E: 边的集合 例:如右图 V= {a,b,c,d,e} E= {(a,b),(a,c),(a,d), (b,e),(c,d),(c,e), (d,e)}
再來一些术语 连通图(connected graph) 子图(subgraph) 树(tree)沒有回路的连通图 森林(forest) 一堆树的集合
有向图(Digraph) 有向图 (Digraph) 有向且无简单回路的图 (directed acyclic graph)
加权图(Weighted Graph) 图片來源:雷欽隆老師“資料結構”課投影片
生成树(Spanning Tree) 包括图中所有的顶点,并且是一棵树 生成树
完全图Complete graphs • 任意两点之间都有一条边与其相连的图称为完全图,以Kn來表示,n为顶点数
二分图(偶图)Bipartite graphs • A graph that can be decomposed into two partite sets but not fewer is bipartite • It is a complete bipartite if its vertices can be divided into two non-empty groups, A and B. Each vertex in A is connected to B, and vice-versa The graph is bipartite Complete bipartite graph K2,3
平面图 Planar graphs • A planar graph is a graph that can be embedded in a plane so that no edges intersect Planar: = NOT Planar:
平面图实例 • 8个顶点(V=8) • 12条边(E=12) • 6个面 (F=6) • 8-12+6=2
树Trees • 树(tree):连通无简单回路无向图 • 若有n个顶点,則有n-1条边 • 任两点之间仅有一条路径 • 生成树(spanning tree):包括图中所有的顶点,并且是一棵树 tree A connected graph G Spanning trees of G