- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四次培训-演算法-建中首页
95建中資訊科校內培訓 CK5925 黃上恩
Graph Algorithms PAGE 1/ NUMPAGES 3
演算法:Graph Algorithms
95/1
◤基礎篇◢
圖論起源於哥尼斯堡(Konigsberg)七橋問題:如何不重複的走過七座橋各一次,然後回到原來的地方。尤拉(Euler)把這七座橋和陸地轉換為頂點和邊,將問題轉化為較抽象且較單純的圖(Graph)來研究。
圖Graph
圖是由點(vertex/node)和邊(edge)所構成的集合。
點vertex
點可以是單純的點,或是加以編號、加權(weight)等。
相鄰(adjacent):兩個點相鄰若且唯若它們有邊連接。
連通(connected):兩個點連通若且唯若可以從其中一個點出發經過許多邊到達另一點。
度數(degree):一個點所連接的邊數。
邊edge
一個邊連接兩個點。在圖論中,我們不把兩條邊的交叉點視為一個頂點。
有向邊(directed edge):只能從一個頂點單方向到達另一個點。(相反:無向圖)
加權邊(weighted edge):賦予每個邊一個數值,可以加強描述兩個點之間的關係。
重邊(multi edge):不只一條邊連接相同的兩個頂點時,我們說這兩個點具有重邊。
環(loop):某一條邊連接同一個頂點。
圈(cycle):可以從某個點出發,沿著邊經過不同的頂點再回到同一個點。
路徑(path):從某個點沿著不重複的頂點到另一個點的走法。
各種不同的圖
有向圖(directed graph/digraph):具有有向邊的圖(相反:無向圖)
簡單圖(simple graph):不含multi edge和loop的無向圖
cyclic:包含cycle的圖(相反:acyclic)
連通圖(connected graph):圖中至少有一個點能夠到達其他所有點。
強連通圖(strong connected graph):有向圖中從任意一點出發都可以連到其他所有頂點。
完全圖(complete graph):任意兩點都是相鄰的。
樹(tree):connected acyclic graph
圖的表示
相鄰矩陣(adjacency-matrix):用一個二維陣列紀錄個點相鄰的狀況(可能是標記相連與否或是相連邊的權重)
相鄰串列(adjacency-list):用n個list儲存,第a個list儲存每條從a連出去的邊的資料,包括連接的點以及權重。
1
2
3
4
5
1
0
10
∞
30
100
1
2/10
4/30
5/100
2
∞
0
50
∞
∞
2
3/50
--
--
3
∞
∞
0
∞
10
3
5/10
--
--
4
∞
∞
20
0
60
4
3/20
5/60
--
5
∞
∞
∞
∞
0
5
--
--
--
圖的搜尋(DFS/BFS)
【題 SEQ TMT1 1】請你判斷一個圖有多少個相連的頂點群(connected components)。
【題 SEQ TMT1 2】請你判斷一個圖是否包含cycle。
【題 SEQ TMT1 3】Topological Sort(拓撲排序)
對於一個DAG(directed acyclic graph),請找出一種全部頂點的排列順序,使得所有的邊都指向後面。(1)直觀的想法:依序取出In-degree(入度數)為0的頂點,並且把該點所指向的所有點的In-degree減1。(2)使用DFS:記錄每個點進入finish狀態(黑色狀態:已走完該節點的所有邊)的時間,然後由大至小排列即可。
【題 SEQ TMT1 4】Articulation Points
如果將某個點拿掉之後將導致兩個以上的connected components,那麼這個點被稱為articulation point。(請參考2005培訓講義,基本想法為DFS。)
◤實力養成篇◢
最小花費展開樹(Minimum Spanning Tree, MST)
以一個有加權的圖的某些邊為邊,所有節點為節點,所形成的展開樹中,所有邊的加權總和最小的一個。這題可以用Greedy解:
請試著用Prim’s Algorithm以及Kruskal’s Algorithm找出下面圖中的MST。
Prim’s Algorithm
(1)找一個頂點放到MST節點集合中
(2)每次找到一個長度最小,
一端屬於MST但另一端不是
的邊。把這個邊以及端點
放進MST邊和點集合中。
(3)重複(2)的動作直到所
有點都被放到MST中為止。
Kruskal’s Algorithm
(1)把所有的邊依照邊長由小
至大排序。
(2)依序檢查每個邊,若把此邊加入MST集合而不會造成cycle
那麼就放進MST集合。否則忽略掉。
(3)檢查完每個
您可能关注的文档
最近下载
- 二级圆柱齿轮减速器机械设计课程设计.docx VIP
- 小学养成教育校本课程教材(低年级用).pdf VIP
- 2025年新教科版三年级上册科学全册知识点(含实验梳理).pdf VIP
- 2025年会计专业论文选题(精选200个).pdf VIP
- 《赵氏雷火灸的临床应用》课件.ppt VIP
- 目录化工和危险化学品生产经营单位重大生产安全事故隐患判定标准(试行)化工和危险化学品生产经营单位重大生产安全事故隐患判定标准解读.docx VIP
- (阶段检测提升卷)+五年级数学上册第(1-3)单元+考点突破+检测试卷+++北师大版.docx VIP
- 压铸外观标准(附件).doc VIP
- 贵州省遵义市2024-2025学年七年级上学期11月期中数学试题(含答案).pdf VIP
- 《最后的常春藤叶》教学实录.doc VIP
原创力文档


文档评论(0)