390 likes | 920 Views
887110 Introduction to discrete structure บทที่ 8 กราฟ. ภาพรวมเนื้อหา. กำเนิดของทฤษฎีกราฟ นิยามและชนิดของกราฟ คำศัพท์เกี่ยวกับกราฟ (Graph Terminology) การเชื่อมต่อของกราฟ (Connectivity). กำเนิดของทฤษฎีกราฟ.
E N D
ภาพรวมเนื้อหา • กำเนิดของทฤษฎีกราฟ • นิยามและชนิดของกราฟ • คำศัพท์เกี่ยวกับกราฟ (Graph Terminology) • การเชื่อมต่อของกราฟ (Connectivity)
กำเนิดของทฤษฎีกราฟ • เกิดขึ้นเมื่อ ค.ศ. 1736 โดยนักคณิตศาสตร์ชาวสวิสเซอร์แลนด์ ชื่อ เลออนฮาร์ด ออยเลอร์ (Leonhard Euler) • ออยเลอร์ ได้สร้างทฤษฎีที่เรียกว่า “ทฤษฎีออยเลอร์” (ทฤษฎีกราฟ) ขึ้นมาเพื่อแก้ปัญหาสะพานเคอนิกส์เบอร์ก “Konigsberg Bridge problem” ได้เป็นผลสำเร็จ • ดังนั้น ออยเลอร์ จึงได้ชื่อว่าเป็นบิดาของทฤษฎีกราฟ
กำเนิดของทฤษฎีกราฟ • ปัญหาสะพานเคอนิกส์เบอร์ก (Konigsberg) • มีเกาะ 2 เกาะ อยู่กลางแม่น้ำพรีเกล (Pregel) ในเมืองเคอนิกส์เบอร์ก มีสะพาน 7 แห่ง เชื่อมระหว่างเกาะกับแผ่นดิน ดังรูป คำถามคือ “เป็นไปได้ไหมที่คนๆหนึ่งจะเดินจากจุดหนึ่งแล้ววนกลับมาที่จุดเดิมโดยข้ามสะพานทั้ง 7 เพียงสะพานละ 1 ครั้ง ”
กำเนิดของทฤษฎีกราฟ 2 • ออยเลอร์แก้ปัญหานี้โดยแปลงเป็นกราฟ โดยใช้จุดยอดแทนพื้นดิน และ เส้นเชื่อมแทนสะพาน ดังรูป • ออยเลอร์ทำการพิสูจน์เพื่อยืนยันว่าเป็นไปไม่ได้ที่จะเดินทางในลักษณะดังกล่าว • หากจะทำได้ กราฟนี้จะต้องมีจำนวนเส้นของแต่ละจุดเป็นจำนวนคู่
การประยุกต์ใช้งานทฤษฎีกราฟการประยุกต์ใช้งานทฤษฎีกราฟ • ประยุกต์ใช้แก้ปัญหาเครือข่าย • การออกแบบวงจร • การวางแผนการเดินทาง • การจัดตารางเวลา • ฯลฯ
นิยามของกราฟ • ข้อตกลง • Family หมายถึง กลุ่มของสมาชิก โดยที่แต่ละสมาชิกอาจซ้ำกันได้ เช่น {a,a,a,b,c,c} • สัญลักษณ์ (a,b) แทนคู่ลำดับของ a และ b • สัญลักษณ์ {a,b} แทนคู่ไม่ลำดับของ a และ b
นิยามของกราฟ • นิยาม 1 กราฟ G ประกอบด้วยคู่ลำดับของเซต (V(G),E(G)) • V(G) คือ เซตจำกัดที่ไม่เป็นเซตว่างของจุดยอดต่างๆ ของกราฟ (vertex) • E(G) คือ เซตของเส้นเชื่อม (edge) ระหว่างคู่ของจุดยอดในกราฟ • ตัวอย่างให้ G เป็นกราฟกำหนดโดย V(G) = {u, v, w, z} และ E(G) = {{u,v} , {v,w} , {v,w} , {u,w} , {w,z} , {u,u}} จะได้กราฟ G ดังรูป
นิยามของกราฟ • หมายเหตุ • เพื่อความสะดวกเราสามารถเขียนแทนเส้นเชื่อม {u,v} ด้วย uvดังนั้น E(G) = {{u,v} , {v,w} , {v,w} , {u,w} , {w,z} , {u,u}} สามารถเขียนแทนด้วย E(G) = {uv , vw , vw , uw , wz ,uu} • ในการเขียนแผนภาพของกราฟ • จะกำหนดจุดยอดที่ตำแหน่งใดก็ได้ • จะลากเส้นเชื่อมของกราฟเป็นเส้นตรงหรือเส้นโค้งที่มีความยาวเป็นเท่าใดก็ได้ • เช่น การลากเส้นเชื่อม abเราสามารถทำได้ ดังนี้
นิยามของกราฟ • หมายเหตุ (ต่อ) • เส้นเชื่อม 2 เส้นของกราฟ อาจลากตัดกันได้ • จุดตัดของเส้นเชื่อมทั้งสองไม่ถือว่าเป็นจุดยอดของกราฟ • สามารถเขียนภาพของกราฟได้หลายแบบ เช่น กำหนดกราฟ G เมื่อ v(G) = {a,b,c} E(G) = {ab, ac, bc} สามารถเขียนได้หลายรูปแบบ ดังนี้ ไม่เป็นจุดยอดของกราฟ
นิยามของกราฟ • นิยาม 2 วงวน (loop) คือ เส้นเชื่อมที่อยู่ในรูป uuหรือ เส้นที่มีจุดต้นจุดปลายเป็นจุดเดียวกัน • นิยาม 3 เส้นขนาน (parallel edges) หรือเส้นหลายชั้น (multiple edges) คือ เส้นเชื่อมที่มีมากว่า 1 เส้นที่เชื่อมจุดคู่เดียวกัน วงวน เส้นขนาน
ชนิดของกราฟ • กราฟเชิงเดี่ยว (Simple graph) คือ กราฟที่ไม่มีเส้นขนานและไม่มีวงวน • กราฟเทียม (Pseudograph) คือ กราฟที่มีวงวน • กราฟผสม (Multigraph) คือ กราฟที่มีเส้นขนานและไม่มีวงวน
ชนิดของกราฟ • นิยาม 4 ถ้ากราฟ G เป็นกราฟเชิงเดี่ยว เราจะเรียกกราฟ G ว่าเป็นกราฟสมบูรณ์ (Complete Graph) ก็ต่อเมื่อ ทุกๆจุดของกราฟมีเส้นเชื่อมหมด • จำนวนเส้นของกราฟ (kp) = p(p-1) / 2 • เมื่อ kpแทนกราฟสมบูรณ์ที่มี p จุด • p แทน จำนวนจุดยอดของกราฟ
ชนิดของกราฟ • กราฟที่ไม่มีทิศทาง (undirected graph)คือ กราฟที่แต่ละเส้นเชื่อมไม่มีลูกศรระบุทิศทางกำกับอยู่ • กราฟที่มีทิศทาง (directed graph) คือ กราฟที่แต่ละเส้นเชื่อมจะมีลูกศรระบุทิศทางกำกับอยู่
ดีกรี • เราเรียกจุดยอดสองจุดว่า ประชิดกัน (adjacent) ถ้ามีเส้นเชื่อมเส้นหนึ่งเชื่อมระหว่างจุดทั้งสอง • เรียกจุดยอดที่เป็นจุดปลายของเส้นเชื่อมว่า ติดกับ (incident) เส้นเชื่อมนั้น • ตัวอย่าง เช่น กราฟดังรูปจะบอกได้ว่า • V4 ประชิดกับ v2 • v2 ติดกับ e2, e3 และ e6
ดีกรีของกราฟไม่มีทิศทางดีกรีของกราฟไม่มีทิศทาง • ดีกรี(degree) ของจุด v มีค่าเท่ากับ จำนวนของเส้นเชื่อมที่ติดกับจุด v • ในกรณีที่เส้นเชื่อมนั้นเป็นวงวนจะว่ามีค่าเป็น 2 • ตัวอย่าง จากกราฟ ดังรูป พบว่า • ดีกรีของจุด v1, v2, v3 และ v4 มีค่า เป็น 5, 3, 3 และ 1 ตามลำดับ • จุดยอดใดที่มีดีกรีเป็น 1 จะเรียกว่า จุดค้าง (pendant vertex) • จุดยอดใดมีดีดรีเป็น 0 จะเรียกว่า จุดโดดเดี่ยว (isolated vertex) จากรูป • จุดค้างคือ V4 • จุดโดดเดี่ยว คือ v5
f h d a e g i b c j ตัวอย่าง กราฟต่อไปนี้จุดใดเป็นจุดโดดเดี่ยว จุดใดเป็นจุดค้าง และจุดใดมีดีกรีมากที่สุด และกราฟที่กำหนดให้เป็นกราฟชนิดใด ตอบ จุด iเป็นจุดโดดเดี่ยว และ จุด a, d, j เป็นจุดค้าง จุดที่มีดีกรีมากสุดคือจุด g ซึ่ง deg(g) =5 กราฟที่กำหนดให้เป็นกราฟเทียม (pseudograph) นั่นคือ มีวงวน(loop)
f h d a e g i b c j กิจกรรม จงพิจารณากราฟเดิมอีกครั้ง และหาจำนวนด้านทั้งหมด และผลรวมของดีกรีของทุกจุดในกราฟว่าเท่ากับเท่าไหร่
ดีกรีของกราฟมีทิศทาง • ดีกรีของจุดในกราฟที่มีทิศทางนั้น สามารถจำแนกได้เป็น • ดีกรีขาเข้า (in-degree) คือ จำนวนเส้นเชื่อมที่มีทิศทางเข้าสู่จุด ใช้สัญลักษณ์ deg-(v) • ดีกรีขาออก (out-degree) คือ จำนวนเส้นเชื่อมที่มีทิศทางออกจากจุด ใช้สัญลักษณ์ deg+(v)
a b d c ตัวอย่าง • จงหาดีกรีเข้าและดีกรีออกของจุด a, b, c, d ในกราฟต่อไปนี้ deg-(a) = 1 , deg-(b) = 4 , deg-(c) = 0 , deg-(d) = 2 deg+(a) = 2 , deg+(b) = 2 , deg+(c) = 2 , deg+(d) = 1
ความสัมพันธ์ของดีกรีกับจำนวนเส้นเชื่อมความสัมพันธ์ของดีกรีกับจำนวนเส้นเชื่อม • ทฤษฎีบทที่ 1 (Handshaking Lemma) ผลรวมของดีกรีของจุดทุกๆจุดในกราฟแบบไม่มีทิศทาง จะมีค่าเป็น 2 เท่าของจำนวนเส้นเชื่อมทั้งหมดในกราฟ นั่นคือ ถ้ากราฟ G มี p จุดและ q เส้น แล้ว
ตัวอย่าง กราฟที่มีเส้นเชื่อม 30 เส้น และดีกรีของทุกจุดเท่ากับ 4 จงหาว่า กราฟนี้มีทั้งหมดกี่จุดยอด วิธีทำ จากทฤษฎีบท : ผลรวมของดีกรีทุกจุดยอด = 2 x จำนวนเส้นเชื่อม สมมุติให้ v แทนจำนวนจุดยอด เมื่อแทนค่าตามทฤษฎีบทจะได้ 4v = 2 x 30 4v = 60 v = 60/4 = 15 ดังนั้น กราฟนี้มีจุดยอดทั้งหมด 15 จุด
ตัวอย่าง ผลการสำรวจข้อมูลการใช้โทรศัพท์มือถือของพนักงาน 20 คน ในบริษัทแห่งหนึ่งในเดือนที่ผ่านมา พบว่า พนักงาน 15 คน แต่ละคนคุยโทรศัพท์ถึงเพื่อนในบริษัท 5 คน และ พนักงานอีก 5 คนที่เหลือ คุยโทรศัพท์กับเพื่อนในบริษัท 3 ครั้ง จงหาจำนวนการใช้โทรศัพท์มือถือของพนักงานบริษัทนี้ วิธีทำ แปลงปัญหาเป็นกราฟ โดยให้ • จุดยอดแทนพนักงาน • เส้นเชื่อมแทนการคุยโทรศัพท์ของพนักงาน (n) แทนค่าในทฤษฎีบท 1 จะได้ 15(5) + 5(3) = 2n 75 + 15 = 2n n = 45 ดังนั้น จำนวนการใช้โทรศัพท์ของพนักงานบริษัทนี้คือ 45 ครั้ง
ความสัมพันธ์ของดีกรีกับจำนวนเส้นเชื่อมความสัมพันธ์ของดีกรีกับจำนวนเส้นเชื่อม • ทฤษฎีบทที่ 2 (Directed Handshaking Lemma) ในกราฟแบบมีทิศทาง เมื่อกำหนดให้กราฟ G มีจุดแทนด้วยเซต V และเส้นเชื่อมแทนด้วยเซต E จะได้ว่า
ความสัมพันธ์ของดีกรีกับจำนวนเส้นเชื่อมความสัมพันธ์ของดีกรีกับจำนวนเส้นเชื่อม • ทฤษฎีบทที่ 3 จำนวนจุดที่มีดีกรีเป็นเลขคี่ ต้องเป็นเลขคู่ • ตัวอย่าง จากกราฟดังรูป ให้นับจำนวนเส้นเชื่อม ผลบวกดีกรีของทุกจุดยอด จำนวนจุดยอดคี่
การพ้องรูปของกราฟ • กราฟ G1 และ G2 จะเทียบเท่ากันหรือเรียกว่าพ้องรูปกัน (isomorphic) ถ้ากราฟทั้งสองมีคุณสมบัติของกราฟเหมือนกัน นั่นคือ • กราฟทั้งสองมีจุดและเส้นเชื่อมคล้องจองกันจุดต่อจุดและเส้นต่อเส้น • ตัวอย่าง กราฟ (ก) และ (ข) พ้องรูปกัน เพราะ • มีจุด a,bและ c ตรงกับจุด 1,2 และ 3 ตามลำดับ • มีเส้นเชื่อม (a,b) และ (b,c) ตรงกับ (1,2) และ (2,3)
ตัวอย่าง จงพิจารณาว่ากราฟ G และ H พ้องรูปกันหรือไม่ วิธีทำ กราฟทั้งสองมีจุด 7 จุด และเส้นเชื่อม 14 เส้น ทุกจุดมีดีกรีเป็น 4 เหมือนกัน แต่เรายังไม่สามารถสรุปได้ว่ากราฟทั้งสองพ้องรูปกัน จนกว่าจะลองจับคู่จุดต่อจุดเส้นต่อเส้น • เริ่มต้นจับคู่จุด a ของกราฟ G กับ จุด 1 ของกราฟ H แล้วพิจารณาเส้นเชื่อม ได้เส้นทาง ดังนี้ G : g-e-d-b , H : 7-6-3-2 ดังนั้น จับคู่ g กับ 7, eกับ 6, dกับ 3 และ b กับ 2 • จุดที่เหลือของกราฟที่ยังไม่ได้จับคู่กันคือ G: f , c กับ H : 5 , 4 พบว่า f ต่อกับ g-b-c-e ส่วน 4 ต่อกับ 5-6-2-3 ซึ่ง f-g-b-e-d ถูกจับคู่กับ 4-7-2-6-3 ไปแล้ว ดังนั้น c คู่กับ 5 -จากการพิจารณาทั้งหมดพบว่า เส้นเชื่อมของสองกราฟคล้องจองกัน ดังนั้น กราฟนี้พ้องรูปกัน
กิจกรรม จงพิจารณาว่า กราฟที่มีทิศทางทั้งสองกราฟดังรูป พ้องรูปกันหรือไม่
แนวเดิน • นิยาม แนวเดิน W ในกราฟ G คือ ลำดับสลับของจุดและเส้นของกราฟ G ดังนี้ W : v0 , e1 , v1 , e2 , v2 , …, vn-1, en , vn ซึ่งเส้น e1มีจุดปลายคือ vi-1และ viสำหรับ 1 i n
ตัวอย่าง ในอำเภอหนึ่งมีตำบลอยู่ 5 ตำบล ได้แก่ ตำบล A, B, C, D และ E ระหว่างตำบลต่างๆจะมีถนนเชื่อมระหว่างตำบล ซึ่งแสดงแผนผังเป็นกราฟ ดังรูป โดยให้ จุดยอดแทนตำบล เส้นเชื่อมแทนถนน เราสามารถเขียนแต่ละเส้นทางเป็นแนวเดิน ในรูปลำดับของจุดยอดและเส้นเชื่อม ดังนี้ เส้นทางที่ 1 มีลำดับคือ A, AB, B, BA, A, AD, D, DC, C, CD, D, DC, C เส้นทางที่ 2 มีลำดับคือ A, AD, D, DB, B
วงจร • สำหรับแนวเดินที่มีเส้นเชื่อมแตกต่างกัน โดยมีจุดเริ่มต้นและจุดสุดท้ายเป็นจุดเดียวกัน เราจะเรียกว่า วงจร หรือ วัฏจักร (cycle) • ตัวอย่าง กำหนดให้กราฟ G ดังรูป จงหาว่าแนวเดินในข้อใดเป็นวงจร
วงจร วิธีทำ พิจารณาแนวเดิน แนวเดินนี้ไม่เป็นวงจร เพราะ จุดเริ่มต้นและจุดสุดท้ายคนละจุดกัน ไม่เป็นวงจร เพราะมีเส้นเชื่อมซ้ำกัน ไม่เป็น เพราะมีเส้นเชื่อม e7ซ้ำกัน เป็น เป็น
กราฟเชื่อมโยง กราฟไม่เชื่อมโยง • นิยาม ให้ u และ v เป็นจุดใดๆในกราฟ G เรากล่าวว่า u และ v เชื่อมโยงกัน (connect) เมื่อมีแนวเดิน u-v ที่ไม่ซ้ำกัน • ถ้ามีแนวเดินระหว่างจุดสองจุดใดๆแล้ว กราฟ G เป็นกราฟเชื่อมโยง (connected graph) • ถ้าไม่มีแนวเดินระหว่างจุดสองจุดใดๆแล้ว กราฟ G เป็นกราฟไม่เชื่อมโยง (disconnected graph)
ตัวอย่าง • กำหนดแผนผังของสวนสาธารณะ 2 แห่ง ดังรูป จงพิจารณาว่าส่วนสาธารณะแห่งใดสามารถเดินเที่ยวชมบริเวณสวนสาธารณะได้ทุกบริเวณ • วิธีทำ เขียนกราฟแทนแผนผังส่วนสาธารณะทั้ง 2 แห่ง ได้ดังนี้
ตัวอย่าง • พิจารณากราฟ G1 และ G2 • กราฟ G1 เป็นกราฟเชื่อมโยง เพราะมีแนวเดินไปยังทุกจุด • กราฟ G2 เป็นกราฟไม่เชื่อมโยง เพราะไม่มีแนวเดินที่เชื่อมไปยังจุด C
กิจกรรม • กำหนดข่ายงานการเชื่อมโยงระหว่างเสาโทรศัพท์ และ สายโทรศัพท์ ดังรูป ถ้าเกิดเหตุการณ์เสาโทรศัพท์ต้นหนึ่งล้ม จงหาว่าเสาโทรศัพท์ต้นใด เมื่อล้มแล้วจะทำให้การเชื่อมโยงของข่ายงานเสียหายมากที่สุด
กราฟถ่วงน้ำหนัก นิยาม ค่าน้ำหนัก (weight) ของเส้นเชื่อม e ในกราฟ คือ จำนวนที่ไม่เป็นลบที่กำหนดไว้บนเส้นเชื่อม e กราฟถ่วงน้ำหนัก (weight graph)คือ กราฟที่เส้นเชื่อมทุกเส้นมีค่าน้ำหนัก ตัวอย่าง กราฟถ่วงน้ำหนัก