View
1.442
Download
0
Category
Preview:
Citation preview
1
กราฟ กราฟ ((Graphs)Graphs)
2
วั�ตถุประสงค์�
•เพื่��อศึ�กษาหลั กการเบื้��องต้�นเก��ยวก บื้กราฟ (graphs)
•ประย�กต้�ความสั มพื่ นธ์�ของข�อม#ลัในร#ปกราฟสั%าหร บื้กระบื้วนการทางคอมพื่'วเต้อร�
3
กราฟค์�ออะไร?
• ไม)ใช่)กราฟในความหมายทางคณิ'ต้ศึาสัต้ร�ท��เก'ดจากการ Plot จ�ดลังบื้นแกน x,y
• กราฟในว'ช่าคณิ'ต้ศึาสัต้ร�ไม)ต้)อเน��องจะหมายถึ�งโครงสัร�างความสั มพื่ นธ์�ซึ่��งประกอบื้ด�วย จ�ด(หร�อจ�ดยอด) แลัะเสั�นเช่��อมโยงระหว)างจ�ดหร�อจ�ดยอด เพื่��ออธ์'บื้ายความสั มพื่ นธ์�ของสั'�งท��เราสันใจ
http://th.wikipedia.org/wiki/กราฟ_ คณิ'ต้ศึาสัต้ร�( )
4
การประยุกต�ของกราฟ
• เพื่��อแสัดงความสั มพื่ นธ์�ของสั'�งท��เราสันใจ.
• เคร�อข)าย(คอมพื่'วเต้อร� ธ์�รก'จ) การจ ดการต้าราง(scheduling) การจ ดการระบื้บื้งาน(flow optimization) การออกแบื้บื้วงจร.
5
กราฟอยุ�างง�ายุ (Simple Graphs)
• กราฟอยุ�างง�ายุ ค�อ G=(V,E) ซึ่��งประกอบื้ด�วย
– เซึ่ต้ของจ�ดยอด(vertices) หร�อจ�ดยอด(nodes) แทนด�วยสั ญญลั กณิ� V
– เซึ่ต้ของเสั�นเช่��อมโยงระหว)างจ�ดยอดหร�อ เร�ยกอ�กอย)างว)า ด�าน(edges) หร�อ ด�าน แทนด�วยสั ญญลั กณิ� E ซึ่��งแทนด�วยค#)ลั%าด บื้ u,v V
Visual Representationof a Simple Graph
6
มั�ลต�กราฟ(Multi-graphs)
• มั�ลต�กราฟ ค�อ กราฟอย)างง)าย ซึ่��งอย)างน�อยจะต้�องม�ด�านมากกว)า หน��งด�าน เช่��อมระหว)างจ�ดยอดค#)เด�ยวก นบื้นกราฟ.
• G=(V, E, f ) f:E{{u,v}|u,vV uv}.
• ต้ วอย)าง เช่)น ถึ�าให�จ�ดยอดแทนเม�องแลัะให�ถึนนแทนด�าน ในความเป3นจร'งก4อาจม�ถึนนเช่��อมเม�องได�มากกว)าหน��ง เสั�นทาง.
Paralleledges
7
กราฟเที�ยุมั(Pseudo-graphs)
• กราฟเที�ยุมั หมายถึ�ง ม ลัต้'กราฟท��ม�จ�ดยอดหน��งจ�ดยอดใดท��ยอมให�ม� ด�านเข�าแลัะออกไปย งต้ วเอง. (R may be reflexive.)
• G=(V, E, f ) เม��อf:E{{u,v}|u,vV}. eE เร�ยกว)า ลั#บื้(loop) ถึ�า f(e)={u,u}={u}.
8
กราฟระบุที�ศทีาง(Directed Graphs)
• กราฟระบื้�ท'ศึทาง(directed graph) หร�อ digraph
ซึ่��งจะสัอดคลั�องก บื้ความสั มพื่ นธ์�แบื้บื้ทว'ภาค (binary relations).
• กราฟระบื้�ท'ศึทาง(V,E) ประกอบื้ด�วย จ�ดยอด V แลัะความสั มพื่ นธ์�ทว'ภาค E บื้น V โดยม�การระบื้�ท'ศึทางความสั มพื่ นธ์�ว)าเป3นความสั มพื่ นธ์�จากจ�ดยอดใดไปย งจ�ดยอดใด.
• ต้ วอย)างเช่)น: V = เซึ่ต้ของคน,E={(x,y) | x loves y}
9
มั�ลต�กราฟระบุที�ศทีาง(Directed Multi-graphs)
• ม ลัต้'กราฟระบื้�ท'ศึทาง ค�อกราฟระบื้�ท'ศึทาง ซึ่��งอย)างน�อยจะต้�องม� ด�านมากกว)าหน��งด�าน ระหว)างจ�ดยอดค#)หน��งบื้นกราฟ
• G=(V, E, f ) ประกอบื้ด�วยเซึ่ต้ของ V แลัะ E ท�� f:EVV.
• ต้ วอย)าง เช่)นให� V=web pages แลัะE=hyperlinks โดย WWW เป3นdirected multigraph...
10
ค์�าศ�พที�ที�!เก�!ยุวัข"องกราฟ(terminology)
• Adjacent, connects, endpoints, degree, initial, terminal, in-degree, out-degree, complete, cycles, wheels, n-cubes, bipartite, sub-graph, union.
http://oneweb.utc.edu/~Christopher-Mawata/petersen/lesson12b.htm
11
ประชิ�ด (Adjacency)
ให� G เป3น กราฟไม)ระบื้�ท'ศึทาง(undirected graph) ซึ่��งม� ด�าน E, eE เข�ยนด�วยค#)ลั%าด บื้จ�ดยอด {u,v} แลั�วจะกลั)าวว)า:
u, v เป3น adjacent / neighbors / connected.
• ด�าน e เป3นด�านต้กกระทบื้(incident) ก บื้ จ�ดยอด u แลัะv.
• ด�าน e จะเช่��อมต้)อ(connect) ระหว)าง u แลัะ v.
• จ�ดยอด u แลัะ v ต้)างก4เป3นจ�ดปลัายของ ด�าน e.
A
B
C
DE
e1 e2
e5
e4
e7
e3e6
G1
12
ด�กร�ของจุดยุอด(Degree of a Vertex)
• เม��อG เป3นกราฟไม)ระบื้�ท'ศึทาง,แลัะ vV.
• ด�กร�ของ vใดๆ เข�ยนด�วย deg(v) หมายถึ�งจ%านวนของด�านต้กกระทบื้(incident edges) ยกเว�นกรณิ� self-loops น บื้เพื่�ยงสัองคร �ง
• จ�ดยอดท��ม�ด�กร� 0 เร�ยกว)า isolated.
• จ�ดยอดท��ม�ด�กร� 1 เร�ยกว)า pendant.
13
Handshaking Theorem
• ให� G เป3นกราฟไม)ระบื้�ท'ศึทาง (simple, multi-, or pseudo-) แลั�ว
EvVv
2)deg(
How many vertices are there in a graph with 30 edges and degree 4 in each vertices?
14
Directed Adjacency Graph
• ให� G เป3น กราฟระบื้�ท'ศึทาง เม��อ u, v เป3นโหนดใดๆบื้น G เราจะกลั)าวว)า:– u is adjacent to v, v is adjacent from u– e comes from u, e goes to v.– e connects u to v, e goes from u to v– the initial vertex of e is u– the terminal vertex of e is v
u v
e
15
Directed Degree
• ให� G เป3น กราฟระบื้�ท'ศึทาง เม��อ v เป3นจ�ดยอดใดๆบื้น G เราจะกลั)าวว)า:– in-degree ของv, deg(v), ค�อจ%านวน ด�าน ท��พื่� )งเข�าสั#)
v.– out-degree ของv, deg(v), ค�อจ%านวน ด�าน ท��พื่� )ง
ออกจาก v.– ด�กร�ของ v เท)าก บื้ deg(v) deg(v) + deg(v).
A
B
C
DE
e1 e2
e5
e4
e7 e3e6
G2
16
Directed Handshaking Theorem
• ให� G เป3น กราฟระบื้�ท'ศึทางแลั�ว ได�ว)า:
EvvvVvVvVv
)deg(2
1)(deg)(deg
17
Special Graph Structures
กราฟอยุ�างง�ายุที�!มั�ล�กษณะพ�เศษบุางร(ปแบุบุ :
• Complet graphs Kn
• Cycles Cn
• Wheels Wn
• n-Cubes Qn
• Bipartite graphs
• Complete bipartite graphs Km,n
18
กราฟสมับุ(รณ� (Completed Graphs)
• กราฟแบื้บื้ Complet graph ท��ม�จ�ดยอด n จ�ดซึ่��งแทนได�ด�วยสั ญลั กษณิ� Kn ค�อ กราฟท��ประกอบื้ด�วยด�านเพื่�ยง 1 ด�านระหว)างจ�ดยอดแต้)ลัะค#)ท��แต้กต้)างก น u,vV: uv{u,v}E.
จ%านวน ด�านใน Kn เท)าก บื้ edges.2
)1(1
1
nni
n
i
K1 K2K3
K4 K5 K6
19
Cycles
• G เป3นกราฟอย)างง)าย แลั�ว G จะเป3น cycle Cn ภายใต้� n3
ถึ�าเซึ่ต้ของจ�ดยอด V={v1,v2,… ,vn} แลั�ว E={{v1,v2},{v2,v3},…,{vn1,vn},{vn,v1}}.
C3 C4 C5 C6 C7C8
How many edges are there in Cn?
20
Wheels
• G เป3นกราฟอย)างง)าย แลั�ว G จะเป3น wheel Wn, ภายใต้� n3, ถึ�ากราฟ G เป3น Cn แลัะสัามารถึหา จ�ดยอด vhub ท��สัามารถึเช่��อมโยงท�กจ�ดยอดใน Cn เข�าด�วยก น
{{vhub,v1}, {vhub,v2},…,{vhub,vn}}.
W3 W4 W5 W6 W7W8
How many edges are there in Wn?
21
n-cubes (hyper-cubes)
• G เป3นกราฟอย)างง)าย , nN แลั�ว Gเป3นhypercube Qn ถึ�า สัามารถึสัร�างกราฟช่�ดท��
2 Qn-1 โดยท��แต้)ลัะจ�ดยอดถึ#กเช่��อมต้)อเข�าด�วยก นในท�กต้%าแหน)งท��สัอดคลั�องก น เช่)น Q0 ค�อ hypercube ประกอบื้ด�วยจ�ดยอด 1 จ�ดยอด.
Q0Q1 Q2 Q3
Q4
Number of vertices: 2n. Number of edges:Exercise to try!
22
n-cubes (hyper-cubes)กราฟแบื้บื้ n-Cubes ซึ่��งแทนได�ด�วยสั ญลั กษณิ� Qn เป3นกราฟท��ม�จ%านวนจ�ด เป3น 2n โดย n แทนค)าความยาวของบื้'ต้ เช่)นถึ�ากราฟม� 2 จ�ด แสัดงว)า กราฟแบื้บื้ n-Cubes ม�ด�านเพื่�ยง 1 ด�าน แลัะม�ความยาวเพื่�ยง 1 บื้'ต้ ด งกราฟ Q1แลัะ n-Cubes ม�ด�าน4ด�านจะม�ความยาวบื้'ต้เป3น 2
เช่)น Q2 แลัะ n-Cubes ม�ด�าน 4 จะม�ความยาวบื้'ต้เป3น 3 เช่)น Q
3.
23
• G=(V,E) เป3น bipartite (two-part) ก4ต้)อเม��อ V = V1∩V2 เม��อ V1V2= แลัะeE: v1V1,v2V2:
e={v1,v2}.
• bipartite ค�อกราฟท��ม�สัมบื้ ต้'ว)าสัามารถึแบื้)งเซึ่ต้ของจ�ดยอดออกเป3น 2 เซึ่4ต้ย)อย โดยท��เซึ่4ต้ย)อยท �งสัองน �นจะม�เสั�นท��เช่��อมระหว)างจ�ดยอด แต้)ต้�องไม)ม�เสั�นเช่��อมจ�ดยอดภายในเซึ่4ต้ย)อย เด�ยวก น
กราฟสองส�วัน(Bipartite Graphs)
V1 V2This definition can easily be adapted for the case of multigraphs and directed graphs as well.
Can represent withzero-one matrices.
24
กราฟสองส�วันสมับุ(รณ�(Complete Bipartite Graphs)
• เม��อ m,nN, Km,n เป3น complete bipartite graph ถึ�าให� |V1| = m แลัะ |V2| = n,
แลั�ว E = {{v1,v2}|v1V1 v2V2}.– ถึ�าม� m จ�ดยอดในกราฟทางซึ่�าย แลัะ n จ�ดยอดในกราฟทางขวา แลั�วท�กจ�ดยอดในกราฟทางซึ่�าย จะม�เสั�นเช่��อมต้)อก บื้ท�กจ�ดยอดก บื้ กราฟทางขวา.
K4,3
25
ต�วัอยุ�าง กราฟสองส�วันสมับุ(รณ�
26
ต�วัอยุ�าง : กราฟสองส�วัน
กราฟ G เป3นกราฟสัองสั)วนหร�อไม) ?
ตอบุ G เป+น กราฟสองส�วัน เพราะสามัารถุแบุ�งเซตของจุดยุอดเป+นสองเซต ค์�อ V1 = {a, d, e, f} และ V2 = {b, c, g} โดยุที�!แต�ละจุดภายุในเซต V1 ไมั�มั�เส"นเชิ�!อมัก�น และแต�ละจุดภายุในเซต V2 ก0ไมั�มั�เส"นเชิ�!อมัเชิ�นเด�ยุวัก�น
27
ต�วัอยุ�าง : กราฟสองส�วัน
กราฟ Gแลัะ H เป3นกราฟสัองสั)วนหร�อไม) ?
28
เฉลยุ : กราฟสองส�วัน• ว'ธ์�ท%า กราฟ G เป3นกราฟสัองสั)วน เพื่ราะสัามารถึ
แบื้)งเซึ่ต้ของจ�ดเป3นสัองเซึ่ต้ ค�อ • V1 = {a, b, d} แลัะ V2 ={c, e, f, g}• โดยท��แต้)ลัะจ�ดยอดในเซึ่ต้ V1 ไม)ม�เสั�นเช่��อม แลัะ
แต้)ลัะจ�ดยอดในเซึ่ต้ V2 ก4ไม)ม�เสั�นเช่��อมเช่)นเด�ยวก น (กราฟ G เป3นกราฟสัองสั)วน
• ไม)จ%าเป3นว)าท�กๆ จ�ดในเซึ่ต้ {a, b, d}ต้�องอย#)ต้'ดก บื้ท�กๆจ�ดในเซึ่ต้ {c, e, f, g}
• ต้ วอย)างเช่)น b แลัะ g ไม)ได�อย#)ต้'ดก น)
29
• กราฟ H ไม)ใช่)กราฟสัองสั)วน เพื่ราะเซึ่ต้ของจ�ดยอดไม)สัามารถึแบื้)งได�เป3น 2 เซึ่ต้ย)อยได� โดยท��แต้)ลัะเซึ่ต้ย)อย 2 เซึ่ต้ย)อยน �น จ�ดใดๆในเซึ่ต้ย)อยน �นไม)ม�เสั�นเช่��อมก น
• ด งน �นจะไม)สัามารถึต้'ดต้)อจ�ดสัองจ�ดจาก เซึ่ต้ย)อยเด�ยวก น (ผู้#�เร�ยนควรพื่'สั#จน�โดยพื่'จารณิาจากจ�ด a, b, f)
เฉลยุ : กราฟสองส�วัน
30
กราฟยุ�อยุ (Subgraphs)
• Subgraph ของกราฟ G=(V,E) ค�อกราฟ H=(W,F) เม��อ WV แลัะ FE.
G H
31
ประยุกต�ของ Subgraph
• บื้างคร �งเราต้�องการเพื่�ยงบื้างสั)วนของกราฟเพื่��อใช่�ในการแก�ป8ญหา เช่)น เราต้�องการเพื่�ยงบื้างสั)วนของศึ#นย�คอมพื่'วเต้อร�ขนาดใหญ)ในกร�งเทพื่ฯ เช่�ยงใหม) ขอนแก)นแลัะสังขลัา เราสัามารถึเพื่'กเฉยก บื้คอมพื่'วเต้อร�ในศึ#นย�คอมพื่'วเต้อร�ท��อ��นๆ แลัะสัายโทรศึ พื่ท�ท �งหมดท��ไม)เช่��อมก บื้ศึ#นย�คอมพื่'วเต้อร�ท �ง 4 แห)ง ในกราฟสั%าหร บื้ระบื้บื้ขนาดใหญ) เราสัามารถึก%าจ ดสั'�งท��เหม�อนก นท��เราสันใจของศึ#นย�คอมพื่'วเต้อร�ท �ง 4 แห)งท��เหม�อนก นได�แลัะสัามารถึก%าจ ดเสั�นทางท �งหมดได�เม��อเสั�นถึ#กจ%าก ดออกจากกราฟ กราฟท��ได�ออกมาจะเร�ยกว)ากราฟย)อยท��ได�จากกราฟเด'ม
32
Graph Unions
• G1G2 เป3น graph union ของกราฟอย)างง)าย G1=(V1, E1) แลัะ G2=(V2,E2) โดยท�� (V1V2, E1E2).
33
ร(ปแทีนของกราฟ และไอโซมัอฟ2ค์ซ�(Graph Representations & Isomorphism)
• Graph representations:– Adjacency lists.– Adjacency matrices.– Incidence matrices.
• Graph isomorphism:– กราฟสัองกราฟจะ isomorphic ก4ต้)อเม��อ กราฟท �ง
สัองเป3นกราฟเด�ยวก น.
34
Adjacency Lists
• จ ดเก4บื้อย#)ในร#ปต้าราง โดยแต้)ลัะแถึว จะเก4บื้จ�ดยอดท��ถึ#กเช่��อมโยงก บื้จ�ดยอดท��สันใจ เช่)น จ�ดยอด a ม�จ�ดยอดเช่��อมโยงก บื้ b แลัะ จ�ดยอด c.
a b
dc
fe
VertexAdjacentVertices
ab
b, ca, c, e, f
c a, b, fde bf c, b
35
เมัตร�กซ�ประชิ�ด(Adjacency Matrices)
• ให� A เป+นเมต้ร'กซึ่� แลัะaij เป3นสัมาช่'กแถึวท�� i , คอลั มภ�ท�� j แลั�ว A จะเร�ยกว)าเมต้ร'กซึ่�ประช่'ด (Adjacency Matrices)
ถุ"า1 เม��อ ม�เสั�นเช่��อมโยงระหว)างจ�ดยอด i แลัะ จ�ดยอด j
0 เม��อไม)ม�เสั�นเช่��อมโยงระหว)างจ�ดยอด i แลัะ จ�ดยอด jaij =
a b
dc
fe
abcdef
a b c d e f
0 1 1 0 0 01 0 1 0 1 11 1 0 0 0 1
0 0 0 0 0 00 1 0 0 0 00 1 1 0 0 0
36
เมัตร�กซ�กระทีบุ(Incidence matrices)
• ให� G เป3นกราฟอย)างง)าย โดยท�� v1,v2,v3,….,vn แลัะ e1,e2,e3,…,em เป3นจ�ดยอดแลัะ ด�านต้)างๆของกราฟ G เข�ยนอย#)ในร#ปเมต้ร'กซึ่�ประช่'ด M (ขนาด n * m)ม�สัมาช่'กเป3น mij ถึ�า mij = 1 เม��อด�าน ej ต้กกระทบื้บื้นจ�ด vi แลัะ ถึ�า mij = 0 แสัดงว)าไม)ม�ด�าน ej ต้กกระทบื้บื้นจ�ด vi
v1 1 0 1 0 0v2 0 0 1 0 1v3 1 1 0 1 0v4 0 0 0 1 1
e1 e2 e3 e4 e5
จากเมต้ร'กซึ่� M กราฟประช่'ดม�ร#ปร)างอย)างไร ?
M =
37
เฉลยุ : เมัตร�กซ�กระทีบุ
v1
v3
v2
v4
e1
e2
e4
e5
e3
e1 e2 e3 e4 e5
1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1
v1v2v3v4
38
เมัตร�กซ�กระทีบุTest: จากกราฟ G ท��ก%าหนดให�จงหา เมต้ร'กซึ่�
ประช่'ด แลัะ เมต้ร'กซึ่�กระทบื้v1
v3
v2
v4
e1
e2
e4e5
e3
G:
v1 v2 v3 v4 v5
0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0
v1v2v3v4
e1 e2 e3 e4 e5
1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0
v1v2v3v4
Ans
39
กราฟถุอดแบุบุ(Graph Isomorphism)
น�ยุามั ให� G1=(V1, E1) แลัะ G2=(V2, E2) เป3นกราฟอย)างง)าย แลัะให� f:V1V2 ในแบื้บื้สัมน ยก นระหว)างเซึ่ต้ของจ�ดยอดของกราฟ G
1แลัะกราฟG2 ซึ่��งถึ�า 1e ก บื้ 2e เป3น
ด�านประช่'ดของ G1
แลั�วได�ว)า 1f(e ) ก บื้ 2f(e ) จะเป3นด�านประช่'ดของ G
2 แลั�วจะกลั)าวได�ว)ากราฟ G
1 ม� isomo
rphic ก บื้กราฟ G2
หร�ออาจกลั)าวได�ว)ากราฟท �งสัองต้)างเป3นกราฟถึอดแบื้บื้ก น.
v1
v3
v2
v4
e1
e2
e4e5
e3
G:v1
v3
v2
v4
e1
e2
e4e5
e3
H:
40
กราฟ G1 แลัะ G2 เป3นกราฟถึอดแบื้บื้ก นก4ต้)อเม��อ การเร�ยงลั%าด บื้ของจ�ดแลัะด�าน ท%าให�เมต้ร'กซึ่�ประช่'ดแลัะเมต้ร'กซึ่�ต้กกระทบื้ของกราฟสัองช่�ดน�� เหม�อนก นโดยต้รวจสัอบื้ว)า 1. ม�ด�านเท)าก นหร�อไม)?2. ม�จ�ดเท)าก นหร�อไม)?3. ม� degrees ของแต้)ลัะจ�ดเม��อเปร�ยบื้เท�ยบื้ระหว)างกราฟ 2 ร#ปเท)าก นหร�อไม) ?4. เมต้ร'กซึ่�ประช่'ดระหว)างกราฟ 2 ร#ปเท)าก นหร�อไม) ?(โดยการเท�ยบื้ระหว)างจ�ดท��สัมน ยก น)
กราฟถุอดแบุบุ(Graph Isomorphism)
41
• G1 จะ ไอโซึ่โมฟ;คซึ่� ก บื้กราฟ G2 ถึ�าสัามารถึแสัดงได�ว)าด�าน ระหว)างจ�ดยอดบื้นกราฟเหม�อนก น.a
b
c
d
e
G1G2
ต�วัอยุ�าง Isomorphism
#vertices =5----------------#deg(3){a, b, c, e}#deg=2{d}
#vertices=5---------------#deg(4)#deg(3) #deg=2
42
ต�วัอยุ�าง Isomorphism
• G3 จะ ไอโซึ่โมฟ;คซึ่� ก บื้กราฟ G4 ถึ�าสัามารถึแสัดงได�ว)าม�ด�าน ระหว)างจ�ดยอดบื้นกราฟเหม�อนก น.
a
b
cd
ef
1
2
3
465
G3G4
43
• Test กราฟ G5 เป3น isomorphic ก บื้ กราฟ G6หร�อไม)?
ต�วัอยุ�าง Isomorphism
ANS: A - 7, B - 4, C - 3, D - 6, E - 5, F - 2, G - 1
A B
C D E
F G
G51 2 3
4
5 6 7
G6
44
ให้"เล�อกทีดสอบุอยุ�างน"อยุ 1 ข"อ1.ก%าหนดกราฟแบื้บื้ระบื้�ท'ศึทางมาให� ให�แสัดงการ
แทนกราฟด�วย adjacency matrices แลัะ incidence matrices
2.ให�กราฟแบื้บื้ไม)ระบื้�ท'ศึทางมาให�สัองกราฟ ให�แสัดงว)ากราฟท �งสัองเป3นกราฟถึอดแบื้บื้ก น
(15 นาท�)
Quiz -V
45
46
การเชิ�!อมัโยุงบุนกราฟ (Connectivity)
• (กราฟไมั�ระบุที�ศทีาง) ความยาวของเสั�นทาง (path)จากจ�ดยอด u ไปย งจ�ดยอด v ม�ค)า n ค�อลั%าด บื้ของด�านประช่'ด จากจ�ดยอด u ไปย งจ�ดยอด v.
• แลัะเสั�นทางจะเป3น circuit ถึ�า u=v.• (กราฟระบุที�ศทีาง) : ความยาวของเสั�นทาง (path)
จากจ�ดยอด u ไปย งจ�ดยอด v ม�ค)า n ค�อลั%าด บื้ของด�านประช่'ด จากจ�ดยอด u ไปย งจ�ดยอด v โดยพื่'จารณิาต้ามท'ศึทางของการประช่'ดระหว)างจ�ดยอด
47
ค์วัามัเชิ�!อมัโยุงบุนกราฟ(Connectedness)
•connected graph หมายถึ�งกราฟท��ท�กจ�ดยอดบื้นกราฟม�เสั�นทางท��สัามารถึเช่��อมโยงไปย งจ�ดยอดหน��งจ�ดยอดใดบื้นกราฟ.
• ให� A เป3นเมต้ร'กซึ่�ประช่'ด บื้นกราฟ G เสั�นทางม�ความยาวขนาด k จาก vi ไป vj จะเท)าก บื้ (Ak)i,j.
•cut vertex or cut edge ค�อจ�ดยอดหร�อด�านท��เม��อโดนลับื้หร�อต้ ดออกไปแลั�วจะท%าให�เก'ดการแบื้)งกราฟออกเป3นสัองสั)วน.
48
Euler & Hamilton Paths
• Euler circuit ในกราฟ G ค�อวงจรอย)างง)ายท��ประกอบื้ด�วยด"านทีกด"านใน G.
• Euler path ในกราฟ G ค�อเสั�นทางอย)างง)ายท��ประกอบื้ด�วยด"านทีกด"านใน G.
• Hamilton circuit ค�อวงจรท��จุดยุอดทีกจุดในกราฟ G จะถึ#กเด'นผู้)านเพื่�ยงคร �งเด�ยว.
• A Hamilton path ค�อเสั�นทางเด'นท��จุดยุอดทีกจุดในกราฟ G จะถึ#กเด'นผู้)านเพื่�ยงคร �งเด�ยว.
49
ต�วัอยุ�าง: Euler circuit
A B
C D
AB
C
DE
F
G
H
50
ต�วัอยุ�าง: Euler path
?
51
โจุทียุ�ค์�าถุามั• กราฟแบื้บื้ไม)ระบื้�ท'ศึทางในร#ปข�างลั)างน�� กราฟ
ใดม�วงจรออยเลัอร� กราฟใดไม)ม�วงจรออยเลัอร� แลัะกราฟใดม�เสั�นทางเด'นแบื้บื้ออยเลัอร� บื้�าง?
52
ต�วัอยุ�าง: Hamilton circuit & Hamilton path
53
โจุทียุ�ค์�าถุามั
• กราฟแบื้บื้ไม)ม�ท'ศึทางในร#ปข�างลั)างน�� กราฟใดม�วงจรแฮมม'ลัต้ น กราฟใดไม)ม�วงจรออยเลัอร� แลัะกราฟใดม�เสั�นทางเด'นแบื้บื้แฮมม'ลัต้ น บื้�าง?
54
ป4ญห้าการข"ามัสะพาน Königsberg
• จะม�ว'ธ์�การเด'นข�ามสัะพื่านท �งเจ4ดแบื้บื้ไม)ซึ่%�าก น โดยม�จ�ดเร'�มต้�นแลัะจ�ดสั�ดท�ายเป3นจ�ดเด�ยวก นได�หร�อไม)?
A
B
C
D
The original problem Equivalent multigraph
55
Euler Circuit & Euler Path Theorems
• ทีฤษฎี�: ม ลัต้'กราฟของกราฟเช่��อมต้)อจะม�วงจรออยเลัอร�(euler circuit ) ถึ�าท�กจ�ดยอดต้)างก4ม�จ%านวนด�กร�เป3นจ%านวนค#).
• ทีฤษฎี�: ม ลัต้'กราฟของกราฟเช่��อมต้)อจะม�เสั�นทางออยเลัอร�(euler path) ถึ�าหาได�ว)าม�จ�ดยอดสัองจ�ดท��ม�ด�กร�เป3นจ%านวนค��.
56
ป4ญห้าระยุะทีางส�8นที�!สด(Shortest-Path Problems)
• Single Source Shortest Path by Dijkstra’s algorithm
ต"องการห้าระยุะทีางส�8นที�!สดที�!จุะเด�นทีาง จุากจุด เร�!มัต"น (source) ไปยุ�งจุดอ�!นใน G จุะที�าอยุ�างไร ?
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
57
ป4ญห้าระยุะทีางส�8นที�!สด(Shortest-Path Problems)
• Single Source Short Path by Dijkstra’salgorithm
ต้�องการหาระยะทางสั �นท��สั�ดท��จะเด'นทาง จากจ�ด เร'�มต้�น (source) ไปย งจ�ดอ��นใน G จะท%าอย)างไร ?
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
0 3 2 5 0 0 03 0 0 0 2 0 02 0 0 0 0 4 05 0 0 0 3 1 20 2 0 3 0 0 60 0 4 1 0 0 10 0 0 2 6 1 0
A B C D E F G
ABCDEFG
58
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1
2
3
4
5
6
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
59
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2
3
4
5
6
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
60
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2 {A,C,B} B 3 2 5 5 6
3
4
5
6
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
61
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2 {A,C,B} B 3 2 5 5 6
3 {A,C,B,D} D 3 2 5 5 6 7
4
5
6
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
62
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2 {A,C,B} B 3 2 5 5 6
3 {A,C,B,D} D 3 2 5 5 6 7
4 {A,C,B,D,E} E 3 2 5 5 6 7
5
6
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
63
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2 {A,C,B} B 3 2 5 5 6
3 {A,C,B,D} D 3 2 5 5 6 7
4 {A,C,B,D,E} E 3 2 5 5 6 7
5 {A,C,B,D,E,F} F 3 2 5 5 6 7
6
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
64
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2 {A,C,B} B 3 2 5 5 6
3 {A,C,B,D} D 3 2 5 5 6 7
4 {A,C,B,D,E} E 3 2 5 5 6 7
5 {A,C,B,D,E,F} F 3 2 5 5 6 7
6 {A,C,B,D,E,F,G} G 3 2 5 5 6 7
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
Solution Paths : A -> B; A ->C; A ->D; A -> B -> E; A ->C -> F; A ->D -> G
65
Dijkstra’s algorithm
No. Source min weight
Distance from A
B C D E F G
0 {A} - 3 2 5
1 {A,C} C 3 2 5 6
2 {A,C,B} B 3 2 5 5 6
3 {A,C,B,D} D 3 2 5 5 6 7
4 {A,C,B,D,E} E 3 2 5 5 6 7
5 {A,C,B,D,E,F} F 3 2 5 5 6 7
6 {A,C,B,D,E,F,G} G 3 2 5 5 6 7
A B
C D E
F G
G7
2
3
4
5
1
23
1
62
Recommended