461191 Discrete Math Lecture 10: Graphs San Ratanasanya CS, KMUTNB Adapted from Dr. Goanchanart, RSU and Assist. Prof. Suksomboon, LPRU
Today’s topics Review of Relations Administrivia Graphs 9.1 – 9.5 9.6 – 9.8 2
Relations Relations (ความสัมพันธ์) แสดงถึงโครงสร้าง หรือความสัมพันธ์ของสมาชิกใน set ซึ่งเราสามารถนำความสัมพันธ์นี้ไปใช้แก้ปัญหาในหลายๆเรื่องได้ เช่น การออกแบบฐานข้อมูล การออกแบบและวางเครือข่ายคอมพิวเตอร์ เป็นต้น คุณสมบัติที่น่าสนใจของ Relations เช่น Reflexive Symmtric Antisymmetric Transitiveคำว่า Relation โดยทั่วไปจะหมายถึง Binary Relation เราใช้สัญลักษณ์ a R b แทน relation R จาก a ไป b และ a R b หมายถึง a และ b ไม่มี relation R ต่อกัน เราสามารถแสดงใช้ Matrix หรือ DiGraph ความสัมพันธ์ได้ Matrix และ DiGraph สามารถบอกถึงคุณสมบัติที่มีอยู่ในความสัมพันธ์นั้นได้ / 3
Examples Relation บน {1,2,3,4} ใดต่อไปนี้ เป็น reflexive, symmetric, antisymmetric, และ transitive ตามลำดับ ? R1 = { (1,1), (1,2), (2,1), (2,2), (3,4), (4,1), (4,4) } R2 = { (1,1), (1,2), (2,1) } R3 = { (1,1), (1,2), (1,4), (2,1), (2,2), (3,3), (4,1), (4,4) } R4 = { (2,1), (3,1), (3,2), (4,1), (4,2), (4,3) } R5 = { (1,1), (1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,3), (3,4), (4,4) } R6 = { (3,4) } Reflexive: R3, R5 Symmetric: R2, R3 Antisymmetric: R4, R5, R6 Transitive: R4, R5, R6 4
Examples ให้ A = {1,2,3} และ B = {1,2,3,4} และมี Relation R1 = {(1,1), (2,2), (3,3)} และ R2 = {(1,1), (1,2), (1,3), (1,4)} จงหา R1 R2 R1 R2 R1 - R2 R2 – R1 จงหา Composite ของ R และ S โดยที่ R เป็น relation จาก {1,2,3} ไปยัง {1,2,3,4} โดยที่ R = {(1,1), (1,4), (2,3), (3,1), (3,4)} และ S เป็น relation จาก {1,2,3,4} ไปยัง {0,1,2} โดยที่ S = {(1,0), (2,0), (3,1), (3,2), (4,1)} S○R = {(1,0), (1,1), (2,1), (2,2), (3,0), (3,1)} {(1,1), (1,2), (1,3), (1,4), (2,2), (3,3)} {(1,1)} {(2,2), (3,3)} {(1,2), (1,3), (1,4)} 5
Examples ให้ Relation R บน Set แสดงด้วย Matrix ข้างล่าง จงหาว่า Rเป็น Reflexive, Symmetric และ/หรือ Antisymmetric R จะเป็น Reflexive และ Symmetric แต่ไม่เป็น Antisymmetric
Example จงหาว่า Relation ที่แสดงด้วย Directed Graph ดังรูปข้างล่างเป็น Reflexive, Symmetric, Antisymmetric และ/หรือ Transitive Symmetric
Warshall’s Algorithm
Equivalence Relations R ต้องมีคุณสมับติ Reflexsive, Symmetric, Transitive แบ่ง set ออกเป็นส่วนๆ (Partition) โดยที่ไม่จำเป็นต้องรู้รายละเอียดปลีกย่อยของสมาชิกในส่วนนั้นๆ ใช้เป็นตัวแทน (Representative) คุณสมบัติของสมาชิกของส่วนที่แบ่งแล้วได้
Examples จงหา Equivalence Class ของ 0 และ 1 สำหรับ congruence modulo 4 [0] = {…, -8, -4, 0, 4, 8, …} [1] = {…, -7, -3, 1, 5, 9, …}
Partial Ordering R ที่มีคุณสมบัติ Reflexive, Anti-symmetric, Transitive POSET = Partially Ordered Set หรือ (S, R) เช่น (Z, >) หมายถึง ในเซต Z ความสัมพันธ์ > มีลักษณะเป็น Partial Ordered หรือ > บน Z เป็น POSET นั่นเอง POSET สามารถเขียนให้อยู่ในรูปของ Graph ได้ หรือจะใช้ Hasse diagram ก็ได้ Topological Sorting เปรียบเสมือนการหา POSET
Examples
Administrivia Midterm Exam Statistic Summary: n = 109 Max: 15.3 Mean: 6.8 Min: 1 Standard Deviation: 3.00 HW 7 and 8, and Programming Assignment 2 due today Final Exam (comprehensive) is in 1 month. Be prepared! 17
Graph กราฟเป็นโครงสร้างแบบไม่ต่อเนื่อง(Discrete Structure) ที่ประกอบด้วยส่วนของ Vertices และส่วนของ Edges ที่เชื่อมต่อระหว่าง Vertices โดยที่เราสามารถแบ่งกราฟได้เป็นหลายชนิดตามแต่ลักษณะการเชื่อมต่อของ Edge Edge 2 edge ใดๆ ที่เชื่อมคู่ของ 2 Vertices เดียวกันไม่สามารถทับกันได้ ถ้าเรามี Vertices จำนวนนับไม่ถ้วน (Infinite) เราจะพูดได้ว่าเรามี Infinite Graph ถ้าเรามี Vertices จำนวนจำกัด (Finite) เราจะพูดได้ว่าเรามี Finite Graph ในบทนี้เราจะศึกษาเฉพาะ Finite Graph
Types of Graph
Types of Graph
Types of Graph
Types of Graph
Types of Graph
Multiple Edges Allowed? Summary Type Edges Multiple Edges Allowed? Loops Allowed? Simple graph Undirected Multigraph Undirected Pseudograph Undirected Simple directed graph Directed Directed multigraph Directed
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Exercise Directed/Undirected? Multiple Edges? Loops? Type?
Graph Model
Graph Model
Graph Model: Influence
Graph Model
Graph Model
Graph Model: Precedence Graph
Graph Terminology
Graph Terminology a b c d e b c d a f e g
Graph Terminology
Graph Terminology
Graph Terminology
Special Graph
Special Graph
Special Graph
Special Graph
Special Graph: Bipartite
Special Graph: Bipartite
Special Graph: Bipartite
Application of Graph: LAN
Application of Graph (Parallel Processing)
Construction of New Graph
Construction of New Graph
Exercise Number of vertices? Number of edges? Degree of each vertex?
Exercise Number of vertices? Number of edges? Degree of each vertex?
Exercise Number of vertices? Number of edges? Degree of each vertex?
Exercise Number of vertices? Number of edges? Degree of each vertex?
Exercise Number of vertices? Number of edges? Degree of each vertex? Initial vertices? End vertices? In-degree Out-degree
Exercise Number of vertices? Number of edges? Degree of each vertex? Initial vertices? End vertices? In-degree Out-degree
Graph Representation
Graph Representation
Graph Representation:Adjacency Matrix
Graph Representation:Adjacency Matrix
Graph Representation:Adjacency Matrix
Graph Representation:Adjacency Matrix
Graph Representation:Adjacency Matrix 8
Graph Representation:Incident Matrix
Graph Representation:Incident Matrix
Graph Representation:Incident Matrix
Graph Isomorphism Greek roots isos: “equal” morphe: “form”
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Graph Isomorphism
Connectivity หลายๆปัญหาสามารถ Model ด้วยการเดินทางไปตาม Edge ของกราฟ เช่นการส่งข้อมูลใน Data Network หรือปัญหาในการวางแผนการเดินทางสำหรับร้านส่งของ การเก็บขยะ การ Diagnostic ในระบบเครือข่ายคอมพิวเตอร์ เป็นต้น ซึ่งปัญหาเหล่านี้สามารถแก้ไขได้โดยการ Model ด้วยกราฟ
Connectivity:Path
Connectivity:Path
Connectivity:Path
Connectivity:Path
Connectivity:Path
Connectivity:Path
Connectivity:Path
Connectivity:Connectness
Connectivity:Connectness
Path of 2 Vertices
Path of 2 Vertices
Euler and Hamilton Path เมือง Konigsberg ประเทศ Prussia ในศตวรรษที่18 ได้ถูกแบ่งออกเป็น 4 ส่วนด้วยแม่น้ำ Pregel ที่ไหลผ่านตัวเมือง ซึ่งก่อให้เกิดเกาะกลางระหว่างแขนงของแม่น้ำตามรูป ดังนั้นชาวเมืองจึงสร้างสะพานขึ้น 7 สะพานเพื่อเชื่อมส่วนต่างๆของเมืองเข้าด้วยกัน นักท่องเที่ยวที่เดินชมเมืองเกิดข้อสงสัยว่าจะเป็นไปได้ไหมที่เขาจะเดินชมทุกส่วนของเมืองโดยข้ามสะพานแต่ละสะพานเพียงครั้งเดียว และท้ายสุดกลับมาที่จุดเดิม
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Euler and Hamilton Path
Shortest-Path Problem
Ex: Weighted Graph Modeling an Airline System
Ex: Weighted Graph Modeling an Airline System
Ex: Weighted Graph Modeling an Airline System
Shortest-Path Problem
Shortest-Path Problem
Dijkstra’s Algorithm
Dijkstra’s Algorithm
Shortest-Path Problem จงหา Shortest Path ระหว่าง a และ z
Traveling Salesman Problem
Planar Graph เป็นไปได้หรือไม่ที่จะเชื่อมต่อ น้ำ ไฟฟ้า และ แกส เข้ากับบ้านทั้ง 3 หลังนี้ โดยไม่ให้ท่อส่งทับกัน?
Planar Graph Definition 1
Examples: Planar Graph?
Euler’s Formula Theorem 1
Example
Corollary 1 Corollary 2 ถ้า G เป็นกราฟระนาบธรรมดาที่ต่อถึงกันแล้ว G จะมี vertex ที่มีดีกรีไม่เกิน 5 Corollary 3
Examples
Kuratowski’s Theorem Theorem 2
Homeomorgraphic Graphs
Planar Graph?
Graph Coloring ในการทำแผนที่นั้น จะมีการระบายสีขอบเขตต่างๆ ของแผนที่ เราจะมีวิธีการอย่างไรที่จะทำให้ขอบเขตที่อยู่ติดกันมีสีต่างกัน และใช้สีให้น้อยที่สุด ปัญหาข้างต้นเราสามารถใช้กราฟแก้ปัญหาได้ โดยการสร้างแบบจำลองของแผนที่ โดยให้จุดแทนขอบเขต และขอบเขตที่อยู่ติดกันให้มีเส้นเชื่อมจุดนั้นๆ
Graph Coloring Definition 1 Definition 2
Examples
Four Color Theorem คำถามนี้เกิดขึ้นในปี 1950 พิสูจน์โดย Kenneth Appel และ Wolfgang ในปี 1976
Examples
Applications of Graph Coloring
Applications of Graph Coloring
สรุป
Homework 9 Section 9.1 11, 12 Section 9.2 36, 37, 47, 48 Section 9.3 34, 44, 60, 61, 64 Section 9.4 38, 39, 49, 54, 55 Section 9.5 24, 25, 56, 64 Section 9.6 4, 21, 23, 27 Section 9.7 4, 5, 8, 13, 19-26, 30 Section 9.8 1, 4, 10, 11, 20, 25 Supplementary --- 135
Programming Assignment 3 จงเขียนโปรแกรมเข้ารหัสแบบ Caesar โดยให้ผู้ใช้สามารถกำหนด key เองได้ ในการเข้ารหัสให้ใช้ตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่เท่านั้นและให้ถือว่าตัวอักขระที่เป็น Space อยู่ต่อจากตัว Z จงเขียนโปรแกรมเข้ารหัสแบบ Huffman จงเขียนโปรแกรม Dijkstra จงเขียนโปรแกรมจัดตารางสอบ จงเขียนโปรแกรมเครื่องคิดเลขแบบ pre-, in-, post-fix จงเขียนโปรแกรม วิธีการส่งงาน: - ส่งทาง e-mail ใช้ชื่อ Subject ว่า 461191 Assignment 3 ให้ทำการบีบอัดไฟล์ต่างๆเป็นไฟล์เดียว โดยใช้ format เป็น zip หรือ rar ไฟล์ที่ทำการบีบอัดให้ใช้ชื่อไฟล์เป็นรหัสนศ. Each program should be submitted with a report showing its code and how it works (some screen shorts plus descriptions).