Graphs

65
1 กกกก กกกก ( ( Graphs) Graphs)

Transcript of Graphs

Page 1: Graphs

1

กราฟ กราฟ ((Graphs)Graphs)

Page 2: Graphs

2

วั�ตถุประสงค์�

•เพื่��อศึ�กษาหลั กการเบื้��องต้�นเก��ยวก บื้กราฟ (graphs)

•ประย�กต้�ความสั มพื่ นธ์�ของข�อม#ลัในร#ปกราฟสั%าหร บื้กระบื้วนการทางคอมพื่'วเต้อร�

Page 3: Graphs

3

กราฟค์�ออะไร?

• ไม)ใช่)กราฟในความหมายทางคณิ'ต้ศึาสัต้ร�ท��เก'ดจากการ Plot จ�ดลังบื้นแกน x,y

• กราฟในว'ช่าคณิ'ต้ศึาสัต้ร�ไม)ต้)อเน��องจะหมายถึ�งโครงสัร�างความสั มพื่ นธ์�ซึ่��งประกอบื้ด�วย จ�ด(หร�อจ�ดยอด) แลัะเสั�นเช่��อมโยงระหว)างจ�ดหร�อจ�ดยอด เพื่��ออธ์'บื้ายความสั มพื่ นธ์�ของสั'�งท��เราสันใจ

http://th.wikipedia.org/wiki/กราฟ_ คณิ'ต้ศึาสัต้ร�( )

Page 4: Graphs

4

การประยุกต�ของกราฟ

• เพื่��อแสัดงความสั มพื่ นธ์�ของสั'�งท��เราสันใจ.

• เคร�อข)าย(คอมพื่'วเต้อร� ธ์�รก'จ) การจ ดการต้าราง(scheduling) การจ ดการระบื้บื้งาน(flow optimization) การออกแบื้บื้วงจร.

Page 5: Graphs

5

กราฟอยุ�างง�ายุ (Simple Graphs)

• กราฟอยุ�างง�ายุ ค�อ G=(V,E) ซึ่��งประกอบื้ด�วย

– เซึ่ต้ของจ�ดยอด(vertices) หร�อจ�ดยอด(nodes) แทนด�วยสั ญญลั กณิ� V

– เซึ่ต้ของเสั�นเช่��อมโยงระหว)างจ�ดยอดหร�อ เร�ยกอ�กอย)างว)า ด�าน(edges) หร�อ ด�าน แทนด�วยสั ญญลั กณิ� E ซึ่��งแทนด�วยค#)ลั%าด บื้ u,v V

Visual Representationof a Simple Graph

Page 6: Graphs

6

มั�ลต�กราฟ(Multi-graphs)

• มั�ลต�กราฟ ค�อ กราฟอย)างง)าย ซึ่��งอย)างน�อยจะต้�องม�ด�านมากกว)า หน��งด�าน เช่��อมระหว)างจ�ดยอดค#)เด�ยวก นบื้นกราฟ.

• G=(V, E, f ) f:E{{u,v}|u,vV uv}.

• ต้ วอย)าง เช่)น ถึ�าให�จ�ดยอดแทนเม�องแลัะให�ถึนนแทนด�าน ในความเป3นจร'งก4อาจม�ถึนนเช่��อมเม�องได�มากกว)าหน��ง เสั�นทาง.

Paralleledges

Page 7: Graphs

7

กราฟเที�ยุมั(Pseudo-graphs)

• กราฟเที�ยุมั หมายถึ�ง ม ลัต้'กราฟท��ม�จ�ดยอดหน��งจ�ดยอดใดท��ยอมให�ม� ด�านเข�าแลัะออกไปย งต้ วเอง. (R may be reflexive.)

• G=(V, E, f ) เม��อf:E{{u,v}|u,vV}. eE เร�ยกว)า ลั#บื้(loop) ถึ�า f(e)={u,u}={u}.

Page 8: Graphs

8

กราฟระบุที�ศทีาง(Directed Graphs)

• กราฟระบื้�ท'ศึทาง(directed graph) หร�อ digraph

ซึ่��งจะสัอดคลั�องก บื้ความสั มพื่ นธ์�แบื้บื้ทว'ภาค (binary relations).

• กราฟระบื้�ท'ศึทาง(V,E) ประกอบื้ด�วย จ�ดยอด V แลัะความสั มพื่ นธ์�ทว'ภาค E บื้น V โดยม�การระบื้�ท'ศึทางความสั มพื่ นธ์�ว)าเป3นความสั มพื่ นธ์�จากจ�ดยอดใดไปย งจ�ดยอดใด.

• ต้ วอย)างเช่)น: V = เซึ่ต้ของคน,E={(x,y) | x loves y}

Page 9: Graphs

9

มั�ลต�กราฟระบุที�ศทีาง(Directed Multi-graphs)

• ม ลัต้'กราฟระบื้�ท'ศึทาง ค�อกราฟระบื้�ท'ศึทาง ซึ่��งอย)างน�อยจะต้�องม� ด�านมากกว)าหน��งด�าน ระหว)างจ�ดยอดค#)หน��งบื้นกราฟ

• G=(V, E, f ) ประกอบื้ด�วยเซึ่ต้ของ V แลัะ E ท�� f:EVV.

• ต้ วอย)าง เช่)นให� V=web pages แลัะE=hyperlinks โดย WWW เป3นdirected multigraph...

Page 10: Graphs

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

Page 11: Graphs

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

Page 12: Graphs

12

ด�กร�ของจุดยุอด(Degree of a Vertex)

• เม��อG เป3นกราฟไม)ระบื้�ท'ศึทาง,แลัะ vV.

• ด�กร�ของ vใดๆ เข�ยนด�วย deg(v) หมายถึ�งจ%านวนของด�านต้กกระทบื้(incident edges) ยกเว�นกรณิ� self-loops น บื้เพื่�ยงสัองคร �ง

• จ�ดยอดท��ม�ด�กร� 0 เร�ยกว)า isolated.

• จ�ดยอดท��ม�ด�กร� 1 เร�ยกว)า pendant.

Page 13: Graphs

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?

Page 14: Graphs

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

Page 15: Graphs

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

Page 16: Graphs

16

Directed Handshaking Theorem

• ให� G เป3น กราฟระบื้�ท'ศึทางแลั�ว ได�ว)า:

EvvvVvVvVv

)deg(2

1)(deg)(deg

Page 17: Graphs

17

Special Graph Structures

กราฟอยุ�างง�ายุที�!มั�ล�กษณะพ�เศษบุางร(ปแบุบุ :

• Complet graphs Kn

• Cycles Cn

• Wheels Wn

• n-Cubes Qn

• Bipartite graphs

• Complete bipartite graphs Km,n

Page 18: Graphs

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

Page 19: Graphs

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?

Page 20: Graphs

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?

Page 21: Graphs

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!

Page 22: Graphs

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.

Page 23: Graphs

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.

Page 24: Graphs

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

Page 25: Graphs

25

ต�วัอยุ�าง กราฟสองส�วันสมับุ(รณ�

Page 26: Graphs

26

ต�วัอยุ�าง : กราฟสองส�วัน

กราฟ G เป3นกราฟสัองสั)วนหร�อไม) ?

ตอบุ G เป+น กราฟสองส�วัน เพราะสามัารถุแบุ�งเซตของจุดยุอดเป+นสองเซต ค์�อ V1 = {a, d, e, f} และ V2 = {b, c, g} โดยุที�!แต�ละจุดภายุในเซต V1 ไมั�มั�เส"นเชิ�!อมัก�น และแต�ละจุดภายุในเซต V2 ก0ไมั�มั�เส"นเชิ�!อมัเชิ�นเด�ยุวัก�น

Page 27: Graphs

27

ต�วัอยุ�าง : กราฟสองส�วัน

กราฟ Gแลัะ H เป3นกราฟสัองสั)วนหร�อไม) ?

Page 28: Graphs

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 ไม)ได�อย#)ต้'ดก น)

Page 29: Graphs

29

• กราฟ H ไม)ใช่)กราฟสัองสั)วน เพื่ราะเซึ่ต้ของจ�ดยอดไม)สัามารถึแบื้)งได�เป3น 2 เซึ่ต้ย)อยได� โดยท��แต้)ลัะเซึ่ต้ย)อย 2 เซึ่ต้ย)อยน �น จ�ดใดๆในเซึ่ต้ย)อยน �นไม)ม�เสั�นเช่��อมก น

• ด งน �นจะไม)สัามารถึต้'ดต้)อจ�ดสัองจ�ดจาก เซึ่ต้ย)อยเด�ยวก น (ผู้#�เร�ยนควรพื่'สั#จน�โดยพื่'จารณิาจากจ�ด a, b, f)

เฉลยุ : กราฟสองส�วัน

Page 30: Graphs

30

กราฟยุ�อยุ (Subgraphs)

• Subgraph ของกราฟ G=(V,E) ค�อกราฟ H=(W,F) เม��อ WV แลัะ FE.

G H

Page 31: Graphs

31

ประยุกต�ของ Subgraph

• บื้างคร �งเราต้�องการเพื่�ยงบื้างสั)วนของกราฟเพื่��อใช่�ในการแก�ป8ญหา เช่)น เราต้�องการเพื่�ยงบื้างสั)วนของศึ#นย�คอมพื่'วเต้อร�ขนาดใหญ)ในกร�งเทพื่ฯ เช่�ยงใหม) ขอนแก)นแลัะสังขลัา เราสัามารถึเพื่'กเฉยก บื้คอมพื่'วเต้อร�ในศึ#นย�คอมพื่'วเต้อร�ท��อ��นๆ แลัะสัายโทรศึ พื่ท�ท �งหมดท��ไม)เช่��อมก บื้ศึ#นย�คอมพื่'วเต้อร�ท �ง 4 แห)ง ในกราฟสั%าหร บื้ระบื้บื้ขนาดใหญ) เราสัามารถึก%าจ ดสั'�งท��เหม�อนก นท��เราสันใจของศึ#นย�คอมพื่'วเต้อร�ท �ง 4 แห)งท��เหม�อนก นได�แลัะสัามารถึก%าจ ดเสั�นทางท �งหมดได�เม��อเสั�นถึ#กจ%าก ดออกจากกราฟ กราฟท��ได�ออกมาจะเร�ยกว)ากราฟย)อยท��ได�จากกราฟเด'ม

Page 32: Graphs

32

Graph Unions

• G1G2 เป3น graph union ของกราฟอย)างง)าย G1=(V1, E1) แลัะ G2=(V2,E2) โดยท�� (V1V2, E1E2).

Page 33: Graphs

33

ร(ปแทีนของกราฟ และไอโซมัอฟ2ค์ซ�(Graph Representations & Isomorphism)

• Graph representations:– Adjacency lists.– Adjacency matrices.– Incidence matrices.

• Graph isomorphism:– กราฟสัองกราฟจะ isomorphic ก4ต้)อเม��อ กราฟท �ง

สัองเป3นกราฟเด�ยวก น.

Page 34: Graphs

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

Page 35: Graphs

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

Page 36: Graphs

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 =

Page 37: Graphs

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

Page 38: Graphs

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

Page 39: Graphs

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:

Page 40: Graphs

40

กราฟ G1 แลัะ G2 เป3นกราฟถึอดแบื้บื้ก นก4ต้)อเม��อ การเร�ยงลั%าด บื้ของจ�ดแลัะด�าน ท%าให�เมต้ร'กซึ่�ประช่'ดแลัะเมต้ร'กซึ่�ต้กกระทบื้ของกราฟสัองช่�ดน�� เหม�อนก นโดยต้รวจสัอบื้ว)า 1. ม�ด�านเท)าก นหร�อไม)?2. ม�จ�ดเท)าก นหร�อไม)?3. ม� degrees ของแต้)ลัะจ�ดเม��อเปร�ยบื้เท�ยบื้ระหว)างกราฟ 2 ร#ปเท)าก นหร�อไม) ?4. เมต้ร'กซึ่�ประช่'ดระหว)างกราฟ 2 ร#ปเท)าก นหร�อไม) ?(โดยการเท�ยบื้ระหว)างจ�ดท��สัมน ยก น)

กราฟถุอดแบุบุ(Graph Isomorphism)

Page 41: Graphs

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

Page 42: Graphs

42

ต�วัอยุ�าง Isomorphism

• G3 จะ ไอโซึ่โมฟ;คซึ่� ก บื้กราฟ G4 ถึ�าสัามารถึแสัดงได�ว)าม�ด�าน ระหว)างจ�ดยอดบื้นกราฟเหม�อนก น.

a

b

cd

ef

1

2

3

465

G3G4

Page 43: Graphs

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

Page 44: Graphs

44

ให้"เล�อกทีดสอบุอยุ�างน"อยุ 1 ข"อ1.ก%าหนดกราฟแบื้บื้ระบื้�ท'ศึทางมาให� ให�แสัดงการ

แทนกราฟด�วย adjacency matrices แลัะ incidence matrices

2.ให�กราฟแบื้บื้ไม)ระบื้�ท'ศึทางมาให�สัองกราฟ ให�แสัดงว)ากราฟท �งสัองเป3นกราฟถึอดแบื้บื้ก น

(15 นาท�)

Quiz -V

Page 45: Graphs

45

Page 46: Graphs

46

การเชิ�!อมัโยุงบุนกราฟ (Connectivity)

• (กราฟไมั�ระบุที�ศทีาง) ความยาวของเสั�นทาง (path)จากจ�ดยอด u ไปย งจ�ดยอด v ม�ค)า n ค�อลั%าด บื้ของด�านประช่'ด จากจ�ดยอด u ไปย งจ�ดยอด v.

• แลัะเสั�นทางจะเป3น circuit ถึ�า u=v.• (กราฟระบุที�ศทีาง) : ความยาวของเสั�นทาง (path)

จากจ�ดยอด u ไปย งจ�ดยอด v ม�ค)า n ค�อลั%าด บื้ของด�านประช่'ด จากจ�ดยอด u ไปย งจ�ดยอด v โดยพื่'จารณิาต้ามท'ศึทางของการประช่'ดระหว)างจ�ดยอด

Page 47: Graphs

47

ค์วัามัเชิ�!อมัโยุงบุนกราฟ(Connectedness)

•connected graph หมายถึ�งกราฟท��ท�กจ�ดยอดบื้นกราฟม�เสั�นทางท��สัามารถึเช่��อมโยงไปย งจ�ดยอดหน��งจ�ดยอดใดบื้นกราฟ.

• ให� A เป3นเมต้ร'กซึ่�ประช่'ด บื้นกราฟ G เสั�นทางม�ความยาวขนาด k จาก vi ไป vj จะเท)าก บื้ (Ak)i,j.

•cut vertex or cut edge ค�อจ�ดยอดหร�อด�านท��เม��อโดนลับื้หร�อต้ ดออกไปแลั�วจะท%าให�เก'ดการแบื้)งกราฟออกเป3นสัองสั)วน.

Page 48: Graphs

48

Euler & Hamilton Paths

• Euler circuit ในกราฟ G ค�อวงจรอย)างง)ายท��ประกอบื้ด�วยด"านทีกด"านใน G.

• Euler path ในกราฟ G ค�อเสั�นทางอย)างง)ายท��ประกอบื้ด�วยด"านทีกด"านใน G.

• Hamilton circuit ค�อวงจรท��จุดยุอดทีกจุดในกราฟ G จะถึ#กเด'นผู้)านเพื่�ยงคร �งเด�ยว.

• A Hamilton path ค�อเสั�นทางเด'นท��จุดยุอดทีกจุดในกราฟ G จะถึ#กเด'นผู้)านเพื่�ยงคร �งเด�ยว.

Page 49: Graphs

49

ต�วัอยุ�าง: Euler circuit

A B

C D

AB

C

DE

F

G

H

Page 50: Graphs

50

ต�วัอยุ�าง: Euler path

?

Page 51: Graphs

51

โจุทียุ�ค์�าถุามั• กราฟแบื้บื้ไม)ระบื้�ท'ศึทางในร#ปข�างลั)างน�� กราฟ

ใดม�วงจรออยเลัอร� กราฟใดไม)ม�วงจรออยเลัอร� แลัะกราฟใดม�เสั�นทางเด'นแบื้บื้ออยเลัอร� บื้�าง?

Page 52: Graphs

52

ต�วัอยุ�าง: Hamilton circuit & Hamilton path

Page 53: Graphs

53

โจุทียุ�ค์�าถุามั

• กราฟแบื้บื้ไม)ม�ท'ศึทางในร#ปข�างลั)างน�� กราฟใดม�วงจรแฮมม'ลัต้ น กราฟใดไม)ม�วงจรออยเลัอร� แลัะกราฟใดม�เสั�นทางเด'นแบื้บื้แฮมม'ลัต้ น บื้�าง?

Page 54: Graphs

54

ป4ญห้าการข"ามัสะพาน Königsberg

• จะม�ว'ธ์�การเด'นข�ามสัะพื่านท �งเจ4ดแบื้บื้ไม)ซึ่%�าก น โดยม�จ�ดเร'�มต้�นแลัะจ�ดสั�ดท�ายเป3นจ�ดเด�ยวก นได�หร�อไม)?

A

B

C

D

The original problem Equivalent multigraph

Page 55: Graphs

55

Euler Circuit & Euler Path Theorems

• ทีฤษฎี�: ม ลัต้'กราฟของกราฟเช่��อมต้)อจะม�วงจรออยเลัอร�(euler circuit ) ถึ�าท�กจ�ดยอดต้)างก4ม�จ%านวนด�กร�เป3นจ%านวนค#).

• ทีฤษฎี�: ม ลัต้'กราฟของกราฟเช่��อมต้)อจะม�เสั�นทางออยเลัอร�(euler path) ถึ�าหาได�ว)าม�จ�ดยอดสัองจ�ดท��ม�ด�กร�เป3นจ%านวนค��.

Page 56: Graphs

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

Page 57: Graphs

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

Page 58: Graphs

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

Page 59: Graphs

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

Page 60: Graphs

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

Page 61: Graphs

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

Page 62: Graphs

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

Page 63: Graphs

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

Page 64: Graphs

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

Page 65: Graphs

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