กราฟ (graph)spuccourseware.east.spu.ac.th/calibration/bcs325/w5.pdf ·...

Post on 10-Mar-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

กราฟ (graph)

กราฟ (graph) เปนโครงสรางขอมลแบบไมเปนเชงเสน(nonlinear data structure)

กราฟประกอบดวยโหนดและเอจ แตละโหนดสามารถมความสมพนธกบโหนดอนๆ ไดมากกวาหนง โดยไมพจารณาถงลาดบความสมพนธกอนหลง

กราฟ เปนโครงสรางขอมลทมการนาไปใชในงานทเกยวของกบการแกปญหาทคอนขางซบซอน เชน การวางขายงานคอมพวเตอร การวเคราะหเสนทางวกฤต การวางแผนขายงาน และปญหาเสนทางทสนทสด เปนตน

GRAPH

2

นยาม : กราฟ (graph)

กราฟ เปนโครงสรางขอมลแบบไมใชเชงเสนท

ประกอบดวยกลมของสงสองสงคอ

(1) โหนด (nodes) หรอ เวอรเทกซ (vertexes)

(2) เสนเชอมระหวางโหนด เรยก เอจ (edges)

GRAPH

3

กราฟทมเอจเชอมระหวางโหนดสอง

โหนด ถาเอจไมมลาดบ

ความสมพนธจะเรยกกราฟนนวา

กราฟแบบไมมทศทาง (undirected

graphs) และถากราฟนนมเอจทม

ลาดบความสมพนธหรอมทศทาง

กากบดวยเรยกกราฟนนวา กราฟ

แบบมทศทาง (directed graphs)

บางครงเรยกวา ไดกราฟ (digraph)

นยาม : กราฟ (graph)

A

B

C

D

undirected graphs

A

B

C

D

directed graphs

4

คากากบเสนทาง (weight) หมายถง

คาใชแทนนาหนก ระหวางโหนดกบ

โหนด ซงอาจแทนระยะทาง, คา

ความตานทาน, ขนาดตางๆ เปนตน

เสนทาง (path) หมายถงทางเดนจาก

โหนดหนงไปยงอกโหนดหนง

นยาม : กราฟ (graph)

n1

n2

n4

5

n3

4

8 9

2

weight

Path จาก n1 ถง n4 คอn1 – n2 – n4n1 – n4n1 – n3 – n4

5

ถาตองการอางถงเอจแต

ละเสนสามารถเขยนชอ

เอจกากบไวกได

ตวอยางกราฟตอไปนม

ชอโหนดเปน n1, n2,

n3, n4 และ n5 โดยม

ชอเอจเปน e1, e2, e3,

e4, e5 และ e6

นยาม : กราฟ (graph)

n1

n2

n4 n5

e1

n3

e2

e3

e4

e5

e6

6

ตวอยางกราฟในงานตางๆ

7

การแทนกราฟในหนวยความจา

วธทงายและตรงไปตรงมาทสดคอ การเกบเอจในแถวลาดบ 2 มต ในรปแสดงตวอยางกราฟแบบไมมทศทาง และเมอแทนกราฟดวยแถวลาดบ 2 มตไดดงแสดงในรป

GRAPH

8

การแทนกราฟในหนวยความจา

GRAPH

จะเหนวาการแทนกราฟในหนวยความจาดวย

วธเกบเอจทงหมดในแถวลาดบ 2 มตคอนขาง

เปลองเนอท เนองจากมบางเอจทเกบซาเดม

โดยเฉพาะกรณทเปนกราฟแบบไมมทศทาง

9

การแทนกราฟในหนวยความจา

GRAPH

ใชแถวลาดบ 2 มตเกบโหนดและพอยน

เตอรชไปยงตาแหนงของโหนดตาง ๆ ท

สมพนธดวย และใชแถวลาดบ 1 มตเกบ

โหนดตาง ๆ ทมความสมพนธกบโหนดใน

แถวลาดบ 2 มต

การจดเกบกราฟดวยวธเกบโหนดและ

พอยนเตอรนยงยากในการจดการเพมขน

เนองจากตองเกบโหนดและพอยนเตอรใน

แถวลาดบ 2 มต และตองจดเกบโหนดท

สมพนธดวยในแถวลาดบ 1 มต

10

การแทนกราฟในหนวยความจาแอดจาเซนซลสต (adjacency list)

GRAPH

ซงเปนวธทคลายวธจดเกบกราฟดวย

การเกบโหนดและพอยนเตอร แต

ตางกนตรงทแทนทจะเกบโหนดทม

ความสมพนธดวยไวในแถวลาดบ 1

มต จะใชลงคลสตแทนเพอความ

สะดวกในการเปลยนแปลงแกไข

11

การแทนกราฟในหนวยความจา

GRAPH

อยางไรกตามทงสามวธทกลาวมาขางตนไมเหมาะกบกราฟ

ทมการเปลยนแปลงตลอดเวลา ควรใชในกราฟทไมมการ

เปลยนแปลงตลอดอายขยของการใชงาน เพราะถามการ

เปลยนแปลงสวนใดสวนหนงของกราฟจะกระทบกบสวน

อน ๆ ทอยในระดบทตากวาดวยเสมอ

การแทนกราฟดวยแอดจาเซนซเมทรกซ (adjacency matrix)

GRAPH

A

B

E D

C

12

1820

9

4

2

3

5

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

Cij =

เมทรกซ Cij เปน adjacency matrix ใชแทนความสมพนธระหวางโหนดบนกราฟ เชนทตาแหนง CAB หมายถงคาweight จากโหนด A ไปยงโหนด B ซงมคาเทากบ 12

6

13

การแทนดวยแอดจาเซนซเมทรกซ (adjacency matrix)

คาอนทไมม weight ใหเปนคา

infinite number ใชแทนเสนทางท

ไมมอยจรงในกราฟ

(ทางคอมพวเตอรอาจแทนดวยคาตว

เลขทใหญมากๆ )

โดยทถากราฟมทงหมด n โหนด

แอดจาเซนซเมทรกซเปนเมทรกซ

จตรสขนาด nn

GRAPH

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

14

การประยกตใชกราฟกบปญหาเสนทางสนทสด

โครงสรางขอมลแบบกราฟสามารถนาไปประยกตกบการใชงานในหลายรปแบบ เชน ถาแทนโหนดเปนจงหวด และ weight แทนระยะทางระหวางจงหวดโดยกาหนดให edge เปนเสนทางระหวางจงหวด และตองการทราบเสนทางทสนทสดระหวาง สานกงานใหญกบสาขาในจงหวดอนๆ เพอทจะขนสงสนคาใหไดระยะทางทสนทสด เปนตน

GRAPH

15

Shortest Path : Dijkstra Algorithm

เปนขนตอนการแกปญหาเสนทางทสนทสดจากโหนดหนงไปยงโหนดอนๆ บนกราฟ (Single Source Shortest Path)

ถกคนพบโดยนกคณตศาสตรคอมพวเตอร ทชอวาDijkstra

รปแบบของปญหา เปนการหาระยะทางทสนทสดจากsource node ไปยง โหนดตางๆ (single source shortest path)

GRAPH

16

Shortest Path : Dijkstra Algorithm

GRAPH

A

B

E D

C

12

1820

9

4

2

3

5

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

Cij =

6

แทนความสมพนธของ กราฟลงใน Adjacency Matrix

17

Shortest Path : Dijkstra Algorithm

GRAPH

NO S W d(B) d(C) d(D) d(E)

O A - 12 18 20 9

ให S เปน source node

w คอโหนดทม weight

ทมคานอยทสดของ

โหนดทไมอยใน S

d(Cij) คอระยะทาง

จากโหนด i ไปยง j

Step 0

ขนตอน : นาคาในแถว Aมากาหนด

ใหเปนคาเรมตนในตาราง

GRAPH

NO S W d(B) d(C) d(D) d(E)

O1

AA,E

-E

1211

1818

2020

99

Step 1

ขนตอน : 1.1 เลอกคา min จาก d(B), d(C), d(D), d(E) คอโหนด E นาโหนด E ไปไวใน

S รวมกบ A

1.2 ปรบปรงเสนทางจากโหนด A ไปยงโหนดอนๆ ทไมอยใน S โดยเปรยบเทยบเสนทาง

เดมในขนตอนท 0 กบเสนทางใหม จาก A ไปยงโหนดนนโดยผานโหนด E

คา 11 พจารณาจาก A B = 12 และ A E B = 11

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

12 9 2

GRAPH

NO S W d(B) d(C) d(D) d(E)

O12

AA,EA,E,B

-EB

121111

181816

202015

999

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

Step 2

ขนตอน : 2 เลอก B เขาไปไวใน w

คา 16 พจารณาจาก A C = 18 และ A B C = 16

เลอกคา minimize = 16

คา 15 พจารณาจาก A D = 20 และ A B D = 15

เลอกคา minimize = 15

18 12 4

12 3

3

GRAPH

NO S W d(B) d(C) d(D) d(E)

O123

AA,EA,E,BA,E,B,D

-EBD

12111111

18181616

20201515

9999

Step 3

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

ขนตอน : 3 เลอก D เขาไปไวใน w

พจารณาปรบปรงเสนทางจาก A C โดย

A B C = 16 และ A D C = ∞เลอกคา minimize = 16

12 4 15 ∞

21 GRAPH

NO S W d(B) d(C) d(D) d(E)

O1234

AA,EA,E,BA,E,B,DA,E,B,D,C

-EBDC

1211111111

1818161616

2020151515

99999

Step 4

A B C D E

A ∞ 12 18 20 9

B ∞ ∞ 4 3 ∞C ∞ ∞ ∞ 5 ∞D ∞ ∞ ∞ ∞ 6

E ∞ 2 ∞ ∞ ∞

ขนตอน :4 เลอกโหนดสดทายคอ C เขาไปไวใน w

ถอวาสนสดการทางานเนองจากทกโหนดเขาไปอยใน S แลว

คาตอบ : ระยะทางทสนทสดจาก A ไป B มคา = 11 ม path คอ A E B

ระยะทางทสนทสดจาก A ไป C มคา = 16 ม path คอ A E B C

ระยะทางทสนทสดจาก A ไป D มคา = 15 ม path คอ A E B D

ระยะทางทสนทสดจาก A ไป E มคา = 9 ม path คอ A E

9 2

9 2 4

9 2 3

9

22

Example :

GRAPH

1

จงแสดงการหาเสนทางสนทสดจาก เมอง 1 ไปในแตละเมอง โดยมจดเรมตนการ

เดนทางทกครงอยทเมอง 1 ดวยการใชขนตอนวธของ Dijkstra (Single- Source

Shortest Path )

2

3

4

5

6

5

3

6 4

3

2

7

11

3

23

Example :

GRAPH

1

จงแสดงการหาเสนทางสนทสดจาก เมอง 1 ไปในแตละเมอง โดยมจดเรมตนการ

เดนทางทกครงอยทเมอง 1 ดวยการใชขนตอนวธของ Dijkstra (Single- Source

Shortest Path )

2

3

4

5

6

5

3

6 4

3

2

7

11

3

24

Longest Path : CPM

เปนขนตอนการหาเสนทางทยาวทสดจากโหนดเรมตนไปยงโหนดสนสด บนกราฟ

CPM (Critical Path Method) เอม บ วอลเกอร แหงดปองต USA.

PERT (Program Evaluation and Review Technique) กองทพเรอ USA. Polalis Project

GRAPH

25

PERT/CPM Chart

PERT Chart : Project Evaluation and Review Technique ChartCPM Chart : Critical Path Method

36

PERT Chart

เปนแผนภาพแสดงกจกรรมของโครงการทเชอมโยงกนในลกษณะ

ของเครอขาย (ขายงาน) ทาใหทราบวาจะตองดาเนนกจกรรมใดให

เสรจสนกอนกจกรรมถดไป

โดยแตละกจกรรมจะแทนดวยเสนลกศร และเชอมโยงกนดวย

วงกลม (เรยกวา โหนด) เพอบอกใหทราบถงจดเรมตนและ

จดสนสดของแตละกจกรรม

37

PERT Chart

เหมาะสาหรบโครงการใหมทไมเคยเกดขนเลย

การกาหนดเวลากจกรรมของ PERT Chart จงเปนการกาหนดในรปของความนาจะเปน (Probabilistic)

38

PERT Chart

15

2

3

4 5

6 7

8

รวบรวม

ความตองการ

ออกแบบ

หนาจอ6

ออกแบบ

รายงาน

6

2

ออกแบบ

ฐานขอมล

เขยนโปรแกรม

3

ทดสอบ

โปรแกรม

ตดตง

โปรแกรม

1

จดทา

เอกสาร

5.5

5

39

CPM Chart

เปนแผนภาพแสดงกจกรรมของโครงการทเชอมโยงกนในลกษณะ

เครอขาย (ขายงาน) ทาใหทราบวาตองดาเนนกจกรรมใดใหเสรจสน

กอนกจกรรมถดไป เชนเดยวกบ PERT Chart

40

CPM Chart

เหมาะสาหรบโครงการทเคยเกดขนแลวในอดต ทาใหมขอมลเพอ

กาหนดระยะเวลาของกจกรรมไดเปนทแนนอน

(Deterministic)

41

CPM Chart

1 5

2

6

3

6

4 2

5

5.5

6

57

3

8

1

ออกแบบรายงาน

ออกแบบหนาจอ เขยนโปรแกรม ทดสอบ

โปรแกรม

ตดตง

โปรแกรมจดทาเอกสาร

ออกแบบ

ฐานขอมล

42

Critical Path : เสนทางวกฤต

หมายถง เสนทางทใชเวลาในการดาเนนกจกรรมรวมของโครงการ

นานทสด และกจกรรมทอยบนเสนทางวกฤตจะเรยกวา กจกรรม

วกฤต Critical Activity

43

การกาหนดระยะเวลาดวย Statisticแยกแยะกจกรมของโครงการ

กาหนดกจกรรมทตองดาเนนใหเสรจสนกอนดาเนนกจกรรมตอไป

กาหนดระยะเวลาทงหมด 3 คา

เวลาทากจกรรมใหเสรจสนเรวสด Optimistic เวลาทากจกรรมใหเสรจสนชาสด Pessimistic เวลาทากจกรรมใหเสรจสนทเปนไปไดมากทสด Realistic

44

การกาหนดระยะเวลาดวย Statisticนาคาทง 3 มาคานวณหาคาใชจรงเพยงคาเดยว เรยกวา คาระยะเวลา

คาดหวง Expected Time โดยใชสตร

ET = o + 4r + p6

45

ขนตอนท 3 : คานวณหาคาระยะเวลาคาดหวง

กจกรรม กจกรรม กาหนดระยะเวลา คาระยะเวลา

กอนหนา (สปดาห) คาดหวง

o r p ETT1 - 1 5 9 5

T2 1 5 6 7 6

T3 1 3 6 9 6

T4 2, 3 1 2 3 2

T5 4 3 6 7 5.5

T6 4 4 5 6 5

T7 6 1 3 5 3

T8 5, 7 1 1 1 1

46

ขนตอนท 4 : วาดแผนภาพ PERT/CPM4.1 วาดเรมจากโหนดกจกรรมท 1

1

ET = 5

47

ขนตอนท 4

4.2 วาดโหนดกจกรรมท 2 ซงมกจกรรมท 1 กอนหนา

1

ET = 5

2

ET = 6

48

ขนตอนท 4

4.3 วาดโหนดกจกรรมท 3 ซงมกจกรรมท 1 กอนหนา

1

ET = 5

2

ET = 6

3

ET = 6

49

ขนตอนท 4

4.4 วาดโหนดกจกรรมท 4 ซงมกจกรรมท 2,3 กอนหนา

1

ET = 5

2

ET = 6

3

ET = 6

4

ET = 2

50

ขนตอนท 4

4.5 วาดโหนดกจกรรมท 5 ซงมกจกรรมท 4 กอนหนา

1

ET = 5

2

ET = 6

3

ET = 6

4

ET = 2

5

ET = 5.5

51

ขนตอนท 4

4.6 วาดโหนดกจกรรมท 6 ซงมกจกรรมท 4 กอนหนา

1

ET = 5

2

ET = 6

3

ET = 6

4

ET = 2

5

ET = 5.5

6

ET = 5

52

ขนตอนท 4

4.7 วาดโหนดกจกรรมท 7 ซงมกจกรรมท 6 กอนหนา

1

ET = 5

2

ET = 6

3

ET = 6

4

ET = 2

5

ET = 5.5

6

ET = 5

7

ET = 3

53

ขนตอนท 4

4.8 วาดโหนดกจกรรมท 8 ซงมกจกรรมท 5,7 กอนหนา

1

ET = 5

2

ET = 6

3

ET = 6

4

ET = 2

5

ET = 5.5

6

ET = 5

7

ET = 3

8

ET = 1

54

ขนตอนท 5 : คานวณหาเสนทางวกฤต

5.1 เรมหาจากวนแรกสด (TE)Earliest Expected Completion Time : TE

โดยทาการบวกสะสมคา ET จากโหนดซายมอไปทางขวาจนถงโหนดสดทายของแตละเสนทาง

55

ขนตอนท 5.1 : หาคา TE

1

ET = 5

2

ET = 6

3

ET = 6

4

TE = 13

5

ET = 5.5

6

ET = 57

TE = 21

8

TE = 22

TE = 5

TE = 11

TE = 11

ET = 2

TE = 18.5

ET = 1

TE = 18

ET = 3

56

ขนตอนท 5 : คานวณหาเสนทางวกฤต

5.2 เรมหาจากวนสดทาย (TL)Latest Expected Completion Time : TL

คาเรมตนของ TL จะมคาเทากบ TE คาสดทาย จากนนใหทาการลบออก

ดวยคา ET ของแตละโหนด เรมตนจากโหนดทางขวามอไปทางซาย

จนถงโหนดแรกของแตละเสนทาง

57

ขนตอนท 5.2 : หาคา TL

1

ET = 5

2

ET = 6

3

ET = 6

4

TE = 13TL = 13

5

ET = 5.5

6

ET = 57

TE = 21TL = 21

8

TE = 22TL = 22

TE = 5TL = 5

TE = 11TL = 11

TE = 11TL = 11

ET = 2

TE = 18.5TL = 21

ET = 1

TE = 18TL = 18

ET = 3

58

ขนตอนท 5 : คานวณหาเสนทางวกฤต

5.3 คานวณหาคาเวลายดหยน (Slack Time) คอ ระยะเวลาทกจกรรมสามารถลาชาโดยไมสงผลกระทบใหโครงการลาชา

ซงกจกรรมทมเวลายดหยนจะอยบนเสนทางทไมใชเสนทางวกฤต

(Noncritical Path)

หาไดจากผลตางของ TE และ TL

ถาคาเวลายดหยนเปนศนย (0) แสดงวากจกรรมนนเปนกจกรรมทอยบนเสนทางวกฤต

59

ขนตอนท 5.3 : คานวณหาคาเวลายดหยน

กจกรรม TE TL เวลายดหยน เสนทางวกฤต

TE - TL

1 5 5 0 วกฤต

2 11 11 0 วกฤต

3 11 11 0 วกฤต

4 13 13 0 วกฤต

5 18.5 21 2.5 -

6 18 18 0 วกฤต

7 21 21 0 วกฤต

8 22 22 0 วกฤต

60

ขอแตกตางระหวาง Gantt และ PERT/CPM

Gantt Chart

1. เหมาะสาหรบโครงการทมขนาดเลก

2. สามารถแสดงใหเหนถงกจกรรมท

ทาในเวลาเดยวกนได

3. แสดงกจกรรมทสาคญตอโครงการ

ได (Critical Path)

PERT/CPM Chart

1. เหมาะสาหรบโครงการทมขนาดใหญ

2. สามารถแสดงกจกรรมทสาคญได

(Critical Path) ทาใหมการควบคมการใช

ทรพยากรไดอยางคมคา

Ex 2 PERT/CPM

62

สรป : กราฟ (graph)

กราฟ (graph) เปนโครงสรางขอมลแบบไมเปนเชงเสน

(nonlinear data structure)

กราฟประกอบดวยโหนดและเอจ แตละโหนดสามารถม

ความสมพนธกบโหนดอนๆ ไดมากกวาหนง โดยไมพจารณาถงลาดบความสมพนธกอนหลง

กราฟ เปนโครงสรางขอมลทมการนาไปใชในงานทเกยวของกบการแกปญหาทคอนขางซบซอน เชน การวางขายงาน

คอมพวเตอร การวเคราะหเสนทางวกฤต การวางแผน

ขายงาน และปญหาเสนทางทสนทสด เปนตน

GRAPH

63

สรป : กราฟ (graph)

การแทนกราฟในความจาหลกวธทงายและตรงไปตรงมา

ทสดคอ การเกบเอจทก ๆ เอจในแถวลาดบ 2 มต แตวธน

คอนขางเปลองเนอทเนองจากมบางเอจทเกบซ าเดม

อกวธหนงกคอใชแถวลาดบ 2 มตเกบโหนดและพอยนเตอร

ชไปยงตาแหนงโหนดตาง ๆ ทสมพนธดวย

หรอใชวธแอดจาเซนซลสตโดยใชลงคลสตแทนแถวลาดบ

1 มต

GRAPH

64

สรป : กราฟ (graph)

วธทนยมมากทสดคอ การแทนดวยแอดจาเซนซเมทรกซ โดยถากราฟของเราม n โหนดตองสรางเมทรกซจตรสขนาด n x n และคาในเมทรกซจะเกบคาระหวางโหนดสองโหนดมคใดบางทมความสมพนธกน เราสามารถหาไดวามเสนทางขนาดเทาใด และมกเสนทาง

GRAPH

top related