1 / 48

Chapter 4 Relations

Chapter 4 Relations. ความสัมพันธ์( Relations ).

valterra
Download Presentation

Chapter 4 Relations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 4Relations โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  2. ความสัมพันธ์(Relations) • หากเราต้องการเขียนความสัมพันธ์ระหว่างสมาชิกของเซต 2 เซต คือเซต A และ B, สามารถใช้คู่อันดับ(ordered pairs)โดยสมาชิกตัวแรกมาจากเซต A และสมาชิกตัวที่สองมาจากเซต B โดยความสัมพันธ์ระหว่างเซตสองเซต จะเรียกว่า ความสัมพันธ์ทวิภาค(binary relation) • นิยาม:ให้ A และ B เป็นเซต binary relation จาก A ไป B คือเซตย่อยของ AB • หรือกล่าวได้ว่า binary relation R ใดๆ, R  AB เราใช้สัญลักษณ์ aRb เพื่อแทน (a, b)R และเขียน a R b เพื่อแทน (a, b)R ตัวอย่าง ให้ A = {0, 1, 2} และ B = {a, b} ดังนั้น R = {( 0, a) , ( 0, b) , ( 1, a) , ( 0, b) }เป็นความสัมพันธ์จาก A ไป B โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  3. ความสัมพันธ์(Relations) • เมื่อ (a, b) อยู่ในความสัมพันธ์ R กล่าวได้ว่า a สัมพันธ์กับ b ด้วย R • ตัวอย่าง:ให้ P เป็นเซตของคน, C เป็นเซตของยี่ห้อรถ, และ D เป็นความสัมพันธ์ที่ใช้อธิบายว่าคนขับรถยี่ห้อใด • P = {สมร, สุรีย์, พีระ, อาภา}, • C = {ฮอนด้า, บีเอ็มดับบลิว, โตโยต้า} • D = {(สมร, ฮอนด้า), (สุรีย์, ฮอนด้า), (สุรีย์, บีเอ็มดับบลิว), (พีระ, โตโยต้า)} • จากความสัมพันธ์ที่กำหนดแสดงว่า สมรขับรถฮอนด้า สุรีย์ขับรถฮอนด้าและบีเอ็มดับบลิว พีระขับรถโตโยต้า ส่วนอาภาไม่ได้ขับรถยี่ห้อใดเลย โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  4. ความสัมพันธ์ส่วนเติมเต็ม(Complementary Relations) • ให้R:A×Bเป็น binary relation นิยามโดย R :≡ {(a,b) | (a,b) R} • ดังนั้น, R:A×B, ส่วนเติมเต็มของR, เป็น binary relation นิยามโดยR :≡ {(a,b) | (a,b)R} = (A×B) − R • สังเกตว่าความสัมพันธ์นี้ก็คือRโดยเอกภพสัมพัทธ์U = A×B • ส่วนเติมเต็มของRคือR เช่น< = {(a,b) | a<b)} ตัวอย่าง :< = {(a,b) | (a,b)<} = {(a,b) | ¬(a<b)} = ≥ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  5. ความสัมพันธ์ผกผัน(Inverse Relations) • ความสัมพันธ์R:A×Bใดๆ มีความสัมพันธ์ผกผันR−1:B×A นิยามโดยR−1 :≡ {(b, a) | (a,b)R} เช่น, <−1 = {(b, a) | a<b} = {(b, a) | b>a} = > • ตัวอย่าง, ถ้าR:คน→อาหารนิยามโดยa R b  aกินbหรือ R:≡ {(a, b) | a กิน b}ดังนั้น: bR−1a  bถูกกินโดยa หรือ R−1:≡ {(b, a) | bถูกกินโดยa } โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  6. ความสัมพันธ์ผกผัน(Inverse Relations) Q: สมมติRนิยามบนN โดย: xRy ก็ต่อเมื่อy = x 2 หรือ R:≡ {(x, y) | y = x 2} จงหาความสัมพันธ์ผกผันR -1? A: xRy ก็ต่อเมื่อy = x 2 Rเป็นฟังก์ชั่นกำลังสอง ดังนั้นR -1เป็นรากที่สอง: นั่นคือ: yR -1x ก็ต่อเมื่อy = x 2หรือ R−1 :≡ {(y, x) | y = x 2} xR -1y ก็ต่อเมื่อx = y 2 หรือ R−1 :≡ {(x, y) | x = y 2} xR -1y ก็ต่อเมื่อy = ±xหรือ R−1 :≡ {(x, y) | y = ±x} โดยx ต้องไม่เป็นจำนวนลบ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  7. Example • R={(a,b) | a สูงกว่า b} • R-1 ={(b,a) | a สูงกว่าb} ={(a,b) | b สูงกว่าa} • S={(x,y)R×R | y=(x+1)/3} • S-1 ={(y,x)R×R | y=(x+1)/3} ={(x,y)R×R | x=(y+1)/3} ={(x,y)R×R | y=3x-1} โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  8. 1 1 2 2 3 3 4 4 ความสัมพันธ์บนเซต • ความสัมพันธ์จากเซตAไปยังตัวมันเองเรียกว่า ความสัมพันธ์บนเซตA • เช่น ความสัมพันธ์ “<” เป็นความสัมพันธ์บนเซตของจำนวนนับN • ความสัมพันธ์เอกลักษณ์(identity relation)IAบนเซตAคือเซต{(a,a)|aA} • ตัวอย่าง:กำหนดให้ A = {1, 2, 3, 4} จงหาคู่อันดับในความสัมพันธ์ R = {(a, b) | a < b} ? • Solution: R = {(1, 2), (1, 4), (2, 3), (1, 3), (3, 4)} (2, 4), โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  9. ความสัมพันธ์บนเซต • มีความสัมพันธ์ที่แตกต่างกันได้กี่แบบที่นิยามบนเซต A ที่มีสมาชิกจำนวน n ตัว? • ความสัมพันธ์บนเซต A เป็นเซตย่อยของ AA • จำนวนสมาชิกของ AA เท่ากับเท่าไร? • มีสมาชิก n2ใน AA, ดังนั้นจำนวนเซตย่อย (=จำนวนความสัมพันธ์บน A) ของ AA เท่ากับเท่าไร? • จำนวนเซตย่อยของเซตที่มีสมาชิก mตัวเท่ากับ 2m ดังนั้น AA จะมีจำนวนเซตย่อยได้เท่ากับ 2n2 • Answer:เราสามารถกำหนดความสัมพันธ์บนเซต A ที่แตกต่างกันได้ทั้งหมด 2n2แบบ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  10. คุณสมบัติของความสัมพันธ์คุณสมบัติของความสัมพันธ์ • นิยาม:ความสัมพันธ์ R บนเซต A เป็นความสัมพันธ์สะท้อน(reflexive)ถ้า (a, a)R สำหรับ สมาชิกทุกตัว aA • หมายเหตุ ถ้า U =  แล้วประโยคข้างต้นเป็นจริง • ตัวอย่าง เช่น: • ความสัมพันธ์<ไม่เป็น reflexive เนื่องจากx < xไม่จริง, ดังนั้น (x, x) R • ความสัมพันธ์≥ :≡ {(a,b) | a≥b}เป็น reflexive เนื่องจาก (x, x) R • ความสัมพันธ์บนเซต {1, 2, 3, 4} ต่อไปนี้เป็น reflexive หรือไม่? • R = {(1, 1), (2, 2), (2, 3), (3, 3), (4, 4)} Yes • R = {(1, 1), (2, 2), (3, 3)} No • นิยาม:ความสัมพันธ์บนเซต A เป็นความสัมพันธ์ไม่สะท้อน(irreflexive)ถ้า (a, a)R สำหรับสมาชิกทุกตัวaA ตัวอย่าง เช่น: <เป็น irreflexive โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  11. Symmetry & Antisymmetry • ความสัมพันธ์RบนเซตAเป็นความสัมพันธ์สมมาตร(symmetric) ก็ต่อเมื่อR = R−1,นั่นคือ ถ้า(a,b)R↔ (b,a)R • เช่น, = (เท่ากับ) เป็น symmetric เพราะถ้าx = yแล้ว y = xสำหรับทุกๆxและyแต่ความสัมพันธ์<ไม่เป็น symmetric • “แต่งงานกับ” เป็น symmetric, “ชอบ” ไม่เป็น • ความสัมพันธ์Rเป็นความสัมพันธ์ปฏิสมมาตร(antisymmetric)ถ้าa≠b, (a,b)R→ (b,a)R • ตัวอย่าง เช่น : <เป็น antisymmetric, “ชอบ” ไม่เป็น • ความสัมพันธ์RบนเซตAเป็นความสัมพันธ์ไม่สมมาตร(asymmetric) ถ้าa,bA, (a,b)R →(b,a)R โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  12. คุณสมบัติของความสัมพันธ์คุณสมบัติของความสัมพันธ์ • ความสัมพันธ์บนเซต{1, 2, 3, 4} ต่อไปนี้เป็น symmetric, antisymmetric, หรือ asymmetric? • R = {(1, 1), (1, 2), (2, 1), (3, 3), (4, 4)} symmetric • R = {(1, 1)} sym. and antisym. • R = {(1, 3), (3, 2), (2, 1)} antisym. and asym. • R = {(4, 4), (3, 3), (1, 4)} antisym. โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  13. คุณสมบัติของความสัมพันธ์คุณสมบัติของความสัมพันธ์ นิยาม:ความสัมพันธ์Rเป็นความสัมพันธ์ถ่ายทอด(transitive)ก็ต่อเมื่อ(a,b,c) (a,b)R  (b,c)R→ (a,c)R • ความสัมพันธ์จะเป็นความสัมพันธ์ไม่ถ่ายทอดintransitiveก็ต่อเมื่อไม่เป็นความสัมพันธ์ถ่ายทอดตัวอย่าง เช่น: • “เป็นบรรพบุรุษ” เป็น transitive • “ชอบ” ระหว่างคนเป็น intransitive • ความสัมพันธ์ = < >   เป็น transitive • ความสัมพันธ์บนเซต {1, 2, 3, 4} ต่อไปนี้เป็น transitive หรือไม่? • R = {(1, 1), (1, 2), (2, 2), (2, 1), (3, 3)} Yes • R = {(1, 3), (3, 2), (2, 1)} No • R = {(2, 4), (4, 3), (2, 3), (4, 1)} No โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  14. Exercise • ให้ A={1,2,3,4} และ R,S,T,U เป็นความสัมพันธ์บนเซต A • R={(1,3), (3,4)} • S={(1,1), (2,2), (3,3), (2,3), (3,2), (1,4)} • T={(1,1), (2,2), (1,2), (2,1), (3,3), (4,4)} • U={(1,1), (2,2), (3,3), (2,3), (3,2), (1,4), (4,2), (1,2),(1,3)} โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  15. Answer • R มีคุณสมบัติIrreflexive, Antisymmetric และAsymmetric • S มีคุณสมบัติTransitive • T มีคุณสมบัติReflexive, Symmetric, และTransitive • U ไม่มีคุณสมบัติใดเลย โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  16. ความสัมพันธ์ประกอบ(Composite Relations) • ให้R:A×B, และS:B×Cดังนั้นความสัมพันธ์ประกอบSRจากRไปSนิยามได้โดย: SR = {(a,c) | b:aRb bSc} • RnของRบนเซตAสามารถนิยามได้โดยR0 :≡ IA; Rn+1 :≡ RRnโดยn≥0 โดย IA= {(x,x)|xA} และR−n:≡ (R−1)n โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  17. ความสัมพันธ์ประกอบ(Composite Relations) ตัวอย่าง:ให้ D และ S เป็นความสัมพันธ์บนเซต A = {1, 2, 3, 4} D = {(a, b) | b = 5 - a} “b เท่ากับ (5 – a)” S = {(a, b) | a < b} “a น้อยกว่า b” D = {(1, 4), (2, 3), (3, 2), (4, 1)} S = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)} SD = Q: สมมติความสัมพันธ์RนิยามบนเซตN โดย: xRy ก็ต่อเมื่อy = x2 และความสัมพันธ์SนิยามบนเซตN โดย : xSy ก็ต่อเมื่อy = x 3 จงหาS  R ? A: ความสัมพันธ์ทั้งสองนี้เป็นฟังก์ชั่นกำลังสองและกำลังสาม ดังนั้นความสัมพันธ์ประกอบ S  R คือxSRy ก็ต่อเมื่อy = x 6 (ในกรณีตัวอย่างนี้จะเห็นว่าR  S = S  R ) {(2, 4), (3, 3), (3, 4), (4, 2), (4, 3), (4, 4)} โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  18. การแสดงความสัมพันธ์ประกอบด้วยภาพการแสดงความสัมพันธ์ประกอบด้วยภาพ Q:กำหนดความสัมพันธ์ R1 และ R2 ด้วยภาพ ดังนี้ จงหา R2 R1: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 R1 R2 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  19. การหาความสัมพันธ์ประกอบโดยใช้ภาพการหาความสัมพันธ์ประกอบโดยใช้ภาพ 1 1 1 2 2 2 3 3 3 4 4 5 A: ลากเส้นทางลัดที่เป็นไปได้ทั้งหมด ในตัวอย่างนี้ทำได้โดยการลากผ่าน 1: 1 1 2 2 3 3 4 R1 R2 R2  R1 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  20. การหาความสัมพันธ์ประกอบโดยใช้ภาพการหาความสัมพันธ์ประกอบโดยใช้ภาพ 1 1 1 2 2 2 3 3 3 4 4 5 A: ลากเส้นทางลัดที่เป็นไปได้ทั้งหมด ในตัวอย่างนี้ทำได้โดยการลากผ่าน 1: 1 1 2 2 3 3 4 R1 R2 R2  R1 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  21. การหาความสัมพันธ์ประกอบโดยใช้ภาพการหาความสัมพันธ์ประกอบโดยใช้ภาพ 1 1 1 2 2 2 3 3 3 4 4 5 A: ลากเส้นทางลัดที่เป็นไปได้ทั้งหมด ในตัวอย่างนี้ทำได้โดยการลากผ่าน 1: 1 1 2 2 3 3 4 R1 R2 R2  R1 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  22. การหาความสัมพันธ์ประกอบโดยใช้ภาพการหาความสัมพันธ์ประกอบโดยใช้ภาพ 1 1 1 2 2 2 3 3 3 4 4 5 A: ลากเส้นทางลัดที่เป็นไปได้ทั้งหมด ในตัวอย่างนี้ทำได้โดยการลากผ่าน 1: 1 1 2 2 3 3 4 R1 R2 R2  R1 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  23. การหาความสัมพันธ์ประกอบโดยใช้ภาพการหาความสัมพันธ์ประกอบโดยใช้ภาพ 1 1 1 2 2 2 3 3 3 4 4 5 A: ลากเส้นทางลัดที่เป็นไปได้ทั้งหมด ในตัวอย่างนี้ทำได้โดยการลากผ่าน 1: 1 1 2 2 3 3 4 R1 R2 ดังนั้นR2  R1= {(4,1),(4,2),(4,3)} R2  R1 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  24. การรวมความสัมพันธ์ • ทฤษฎีบท:ความสัมพันธ์RบนเซตAเป็นความสัมพันธ์ถ่ายทอด ก็ต่อเมื่อRn  Rโดยnเป็นเลขจำนวนเต็มบวก • นิยาม:ความสัมพันธ์RบนเซตAเป็นความสัมพันธ์ถ่ายทอดถ้า(a,b)Rและ(b, c)R,แล้ว(a, c)Rเมื่อa, b, cA • ความสัมพันธ์ประกอบบนความสัมพันธ์Rจะประกอบด้วยสมาชิก(a, c)ซึ่งอยู่ใน R เท่านั้น ดังนั้น ความสัมพันธ์ถ่ายทอดRหรือRRจะไม่มีสมาชิกอื่นที่ไม่ได้อยู่ในความสัมพันธ์ R,ดังนั้นRR  R • และจะเห็นว่าสมาชิกในRRRจะไม่มีสมาชิกอื่นที่ไม่ได้อยู่ในความสัมพันธ์ R ดังนั้น(RR)R  R,เป็นเช่นนี้ไปเรื่อยๆ จึงสรุปได้ว่าRn  R โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  25. การแทนความสัมพันธ์(Representing Relations) • การแทนความสัมพันธ์ทำได้ 2 วิธีคือ:การแทนด้วยเมตริกซ์ 0-1(Zero-one matrices)และการแทนด้วยไดกราฟ(Directed graphs) • ถ้าRเป็นความสัมพันธ์จาก A = {a1, a2, …, am}ไปยังB ={b1, b2, …, bn},ดังนั้นRสามารถแทนด้วยเมตริกซ์MR = [mij]โดย mij = 1,ถ้า(ai, bj)R,และ mij = 0, ถ้า(ai, bj)R • การสร้างเมตริกซ์ ทำได้โดยเขียนสมาชิกที่อยู่ใน A ในด้านแถวและเขียนสมาชิกของ B ในด้านคอลัมน์ โดยจะเขียนเรียงลำดับสมาชิกแบบใดก็ได้ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  26. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • ตัวอย่าง:จงเขียนความสัมพันธ์R ซึ่งเป็นความสัมพันธ์ จาก {1, 2, 3} ไปยัง{1, 2} โดยกำหนดความสัมพันธ์R ดังนี้ R = {(2, 1), (3, 1), (3, 2)} ในรูปของเมตริกซ์? • ตอบ:เมตริกซ์ MRเขียนได้ดังนี้ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  27. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • เมตริกซ์แทนความสัมพันธ์บนเซตใดๆ(เช่น ความสัมพันธ์จากเซตAไปยังA)จะเป็นเมตริกซ์จัตุรัส(square matrices) • เมตริกซ์ที่แทนความสัมพันธ์สะท้อนจะมีสมาชิกในแนวเส้นทแยงมุมเป็นหนึ่ง(1) ทั้งหมดดังเมตริกซ์ Mref โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  28. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • เมตริกซ์ที่แทนความสัมพันธ์สมมาตร หากพับเมตริกซ์ในแนวทแยงจะมีสมาชิกที่เหมือนกันทุกตัวหรือ MR = (MR)t เมตริกซ์แทน ความสัมพันธ์สมมาตร เมตริกซ์แทน ความสัมพันธ์ไม่สมมาตร โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  29. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • เมตริกซ์ 0-1 สามารถใช้ในการบอกได้ว่าความสัมพันธ์นั้นมีหรือไม่มีคุณสมบัติใดได้ด้วย เช่น any-thing any-thing anything anything any-thing any-thing Reflexive:all 1’s on diagonal Irreflexive:all 0’s on diagonal Symmetric:all identicalacross diagonal Antisymmetric:all 1’s are acrossfrom 0’s โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  30. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • ตัวอย่าง:กำหนดให้ความสัมพันธ์ R และ S แทนด้วยเมตริกซ์ MRและ MSตามลำดับ • จงหาเมตริกซ์ที่แทน RS และ RS? • ตอบ: โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  31. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • ให้A = [aij] เป็นเมตริกซ์ 0-1 ขนาด mkและ • B = [bij] เป็นเมตริกซ์ 0-1 ขนาด kn • ดังนั้นการคูณแบบบูลีน(Boolean product)ของ A และ B, แทนด้วยสัญลักษณ์ AB คือเมตริกซ์ขนาด mn ที่สมาชิกแถวที่ i คอลัมน์ที่ j แทนด้วย [cij] หาได้จาก • cij = (ai1  b1j)  (ai2  b2j)  …  (aik  bkj) • cij = 1 ก็ต่อเมื่อมี (ain  bnj) = 1 อย่างน้อยหนึ่งชุด สำหรับ n บางค่า • หากไม่มีชุด (ain  bnj) ใดเลยที่เท่ากับหนึ่ง จะมีผลทำให้ cij = 0 โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  32. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • กำหนดเมตริกซ์ 0-1MA = [aij], MB = [bij] และMC = [cij] แทนความสัมพันธ์ A, B, และ C, ตามลำดับ • สำหรับ MC = MAMBจะได้ว่า • cij = 1ก็ต่อเมื่อมี (ain  bnj) = 1 อย่างน้อยหนึ่งชุด สำหรับ n บางค่า • หากไม่มีชุด (ain  bnj) ใดที่เท่ากับหนึ่ง จะทำให้ cij = 0 • หมายความว่า C มีสมาชิก (xi, zj) ก็ต่อเมื่อมีสมาชิก ynตัวหนึ่งที่ (xi, yn) อยู่ในความสัมพันธ์ A และ (yn, zj) อยู่ในความสัมพันธ์ B • ดังนั้น C = BA (C เป็นความสัมพันธ์ประกอบจาก A ไปยัง B) โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  33. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • จะได้ว่า เมตริกซ์ของความสัมพันธ์ประกอบ BA หาได้จาก: • MBA = MAMB • หรือกล่าวได้ว่า เมตริกซ์ที่แทนความสัมพันธ์ประกอบจากความสัมพันธ์ A ไปยัง B หาได้จากการนำเมตริกซ์แทนความสัมพันธ์ A คูณแบบบูลีน(Boolean product)กับเมตริกซ์แทนความสัมพันธ์ B • ในทำนองเดียวกัน สามารถหาเมตริกซ์ที่แทน ยกกำลังของความสัมพันธ์ได้จาก: • MRn = MR[n](การคูณแบบบูลีนของเมตริกซ์แทนความสัมพันธ์ n ครั้ง) โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  34. การแทนความสัมพันธ์โดยใช้เมตริกซ์การแทนความสัมพันธ์โดยใช้เมตริกซ์ • ตัวอย่าง :จงหาเมตริกซ์ R2 โดยกำหนดเมตริกซ์แทนความสัมพันธ์ R ดังนี้ ตอบ:เมตริกซ์R2เขียนได้ดังนี้ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  35. การแทนความสัมพันธ์โดยใช้ Directed Graphs • กราฟมีทิศทาง(directed graph)หรือ ไดกราฟ(digraph) G=(VG,EG)คือเซตของจุดVGกับเซตของด้านEGVG×VGโดยความสัมพันธ์R:A×Bสามารถแทนได้ด้วยกราฟGR=(VG=AB, EG=R) กราฟแทน ความสัมพันธ์ R GR: ด้านหรือเส้น แทนสมาชิกในEG เมตริกซ์แทนความสัมพันธ์ RMR: Joe Susan Fred Mary Mark Sally จุดแทนสมาชิกในVG โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  36. a b d c การแทนความสัมพันธ์โดยใช้ Directed Graphs • ตัวอย่าง:จงเขียนไดกราฟของจุด V = {a, b, c, d}, และด้านE = {(a, b), (a, d), (b, b), (b, d), (c, a), (c, b), (d, b)} • ด้าน(b, b) เรียกว่าloop โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  37. การแทนความสัมพันธ์ Reflexive, Symmetricโดยใช้ Directed Graphs            Reflexive:ทุกจุดมีลูปหาตัวเอง Symmetric:เส้นเชื่อมจุด ต้องมีทั้งไปและกลับ Antisymmetric:เส้นเชื่อมจุด มีทิศทางเดียว Irreflexive: ไม่มีจุดใด มีลูปหาตัวเอง กราฟทั้งสองไม่เป็น reflexive และ ไม่เป็น irreflexive กราฟทั้งสองไม่เป็น asymmetricและ ไม่เป็นantisymmetric โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  38. โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  39. ความสัมพันธ์สมมูล(Equivalence Relations) • ความสัมพันธ์สมมูลใช้เชื่อมโยงสิ่งที่มีคุณสมบัติบางอย่างเหมือนกันไว้ด้วยกัน • นิยาม:ความสัมพันธ์บนเซต A เรียกว่าความสัมพันธ์สมมูล ถ้าความสัมพันธ์นั้นเป็นความสัมพันธ์สะท้อน(Reflexive) สมมาตร(Symmetric)และถ่ายทอด(Transitive) • สมาชิกสองตัวใดๆที่ถูกเชื่อมโยงกันด้วยความสัมพันธ์สมมูล R จะกล่าวได้ว่าสมาชิกทั้งสองตัวนั้นสมมูลกัน โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  40. ความสัมพันธ์สมมูล(Equivalence Relations) • ตัวอย่าง:สมมติR เป็นความสัมพันธ์บนเซตของข้อความภาษาอังกฤษโดย aRb ก็ต่อเมื่อ l(a) = l(b), ซึ่งl(x) แทนความยาวของข้อความ x จงพิจารณาว่า R เป็นความสัมพันธ์สมมูลหรือไม่? • ตอบ: • R เป็นความสัมพันธ์สะท้อน เพราะ l(a) = l(a) ดังนั้น aRa สำหรับข้อความ a ใดๆ • R เป็นความสัมพันธ์สมมาตร เพราะถ้า l(a) = l(b) แล้ว l(b) = l(a) ดังนั้นถ้า aRb แล้ว bRa • R เป็นความสัมพันธ์ถ่ายทอดเพราะถ้า l(a) = l(b) และ l(b) = l(c), แล้ว l(a) = l(c), ดังนั้นถ้า aRb และ bRc แล้ว aRc • ดังนั้น R เป็นความสัมพันธ์สมมูล โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  41. ชั้นสมมูล(Equivalence Classes) • นิยาม:ให้ R เป็นความสัมพันธ์สมมูลบนเซต A เซตของสมาชิกทุกตัวที่สัมพันธ์กับสมาชิกaของเซต A จะเรียกว่าชั้นสมมูลของa • ชั้นสมมูลของaภายใต้ความสัมพันธ์ R แทนด้วยสัญลักษณ์[a]Rโดย [a]R :≡ { b | aRb } • ในกรณีที่พิจารณาชั้นสมมูลภายใต้ความสัมพันธ์เพียงความสัมพันธ์เดียว อาจแทนชั้นสมมูลของ aสั้นๆด้วย[a] ก็ได้ • ถ้าb[a]R, bเรียกว่า ตัวแทน(representative)ของชั้นสมมูลนี้ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  42. ชั้นสมมูล(Equivalence Classes) ตัวอย่าง:จากตัวอย่างของข้อความที่มีความยาวเท่ากัน จงหาชั้นสมมูลของคำว่า mouse, โดยแทนด้วยสัญลักษณ์ [mouse] ? ตอบ: [mouse] คือเซตของคำที่มีความยาวเท่ากับ 5 ตัวอักษร [mouse]={horse, table, white,…} จะเห็นว่า‘horse’จัดเป็นตัวแทนตัวหนึ่งของชั้นสมมูลนี้ โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  43. ตัวอย่างชั้นสมมูล(Equivalence Classes) • “ข้อความaและbที่มีความยาวเท่ากัน” • [a] = เซตของข้อความใดๆที่มีความยาวเท่ากับความยาวของข้อความa • “จำนวนเต็มaและb ที่มีค่าสัมบูรณ์เท่ากัน” • [a] = {a, −a} • “จำนวนจริงaและbที่มีส่วนทศนิยมเท่ากัน (นั่นคือ, a− b Z)” • [a] = {…, a−2, a−1, a, a+1, a+2, …} • “จำนวนเต็มaและbที่มีเศษเหลือจากการหารด้วยm เท่ากัน” (กำหนดให้m>1) • [a] = {…, a−2m, a−m, a, a+m, a+2m, …} โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  44. ชั้นสมมูล(Equivalence Classes) ทฤษฎีบท:ให้ R เป็นความสัมพันธ์สมมูลบนเซต A ประโยคต่อไปนี้สมมูลกัน: • aRb • [a] = [b] • [a]  [b]   นิยาม:การแบ่งส่วน(partition)ของเซต S คือกลุ่มของเซตย่อยของ S ที่ไม่ใช่เซตว่าง และไม่มีสมาชิกร่วมกันโดยเมื่อนำเซตย่อยทั้งหมดมารวม(union) กันจะเท่ากับเซต S หรือกล่าวได้ว่า กลุ่มของเซตย่อย Ai โดย iI ทำให้เกิดการแบ่งส่วนของ S ก็ต่อเมื่อ(i) Ai   โดย iI (ii) Ai  Aj = , ถ้า i  j (iii) iI Ai = S โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  45. การแบ่งส่วน(Partition) • ตัวอย่าง:กำหนดให้Sเป็นเซต{u, m, b, r, o, c, k, s}เซตต่อไปนี้เป็นการแบ่งส่วน(partition)ของเซตSหรือไม่? {{m, o, c, k}, {r, u, b, s}} yes {{c, o, m, b}, {u, s}, {r}} no (ไม่มี k) {{b, r, o, c, k}, {m, u, s, t}} no (t ไม่เป็นสมาชิกของ S) {{u, m, b, r, o, c, k, s}} yes {{b, o, o, k}, {r, u, m}, {c, s}} yes ({b,o,o,k} = {b,o,k}) {{u, m, b}, {r, o, c, k, s}, } no (เป็น  ไม่ได้) โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  46. ชั้นสมมูล(Equivalence Classes) • ทฤษฎีบท:ให้ R เป็นความสัมพันธ์สมมูลบนเซต S ดังนั้นชั้นสมมูลของความสัมพันธ์ R จะทำให้เกิดการแบ่งส่วน(partition)ของเซต S และ หากกำหนดการแบ่งส่วน {Ai | iI} ของเซต S มาให้ จะมีความสัมพันธ์สมมูล R ซึ่งมีเซต Ai, iI, เป็นชั้นสมมูลของความสัมพันธ์นั้น • ชั้นสมมูลของความสัมพันธ์สมมูล R ใดๆที่นิยามบนเซต S จะทำให้เกิดการแบ่งส่วนของเซต S เพราะสมาชิกทุกตัวในเซต S ถูกกำหนดให้อยู่ในชั้นสมมูลได้เพียงชั้นเดียวเท่านั้น โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  47. ชั้นสมมูล(Equivalence Classes) • ตัวอย่าง:สมมติแฟรงก์, ซูซานและจอร์จอาศัยในเมืองบอสตัน, สเตฟานีและแมค อาศัยอยู่ในเมืองเบอลิน เจนนิเฟอร์อาศัยอยู่ในเมืองซิดนีย์ • ให้ R เป็นความสัมพันธ์สมมูล {(a, b) | a และ b อาศัยอยู่ในเมืองเดียวกัน} บนเซต P = {แฟรงก์, ซูซาน, จอร์จ, สเตฟานี, แมค, เจนนิเฟอร์} ดังนั้น R = {(แฟรงก์, แฟรงก์), (แฟรงก์, ซูซาน), (แฟรงก์, จอร์จ), (ซูซาน, แฟรงก์), (ซูซาน, ซูซาน), (ซูซาน, จอร์จ), (จอร์จ, แฟรงก์), (จอร์จ, ซูซาน), (จอร์จ, จอร์จ), (สเตฟานี,สเตฟานี), (สเตฟานี, แมค), (แมค, สเตฟานี), (แมค, แมค), (เจนนิเฟอร์, เจนนิเฟอร์)} • ดังนั้นชั้นสมมูล ของ R คือ: {{แฟรงก์, ซูซาน , จอร์จ}, {สเตฟานี, แมค}, {เจนนิเฟอร์}} ซึ่งเป็นการแบ่งส่วน (partition) ของ P โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

  48. ชั้นสมมูล(Equivalence Classes) • ตัวอย่าง:กำหนดให้R เป็นความสัมพันธ์{(a, b) | a  b (mod 3)} บนเซตของจำนวนเต็ม หรือกล่าวได้ว่า R เป็นความสัมพันธ์ (a, b) | a หารด้วย 3 แล้วเหลือเศษ b } • ความสัมพันธ์R เป็นความสัมพันธ์สมมูลหรือไม่? • เป็น เพราะ R เป็นความสัมพันธ์สะท้อน สมมาตร และถ่ายทอด (ให้เหตุผล เป็นแบบฝึกหัด) • จงหาชั้นสมมูลของความสัมพันธ์ R ? {{…, -6, -3, 0, 3, 6, …}, {…, -5, -2, 1, 4, 7, …}, {…, -4, -1, 2, 5, 8, …}} โครงสร้างคณิตศาสตร์เต็มหน่วยสำหรับวิศวกรรมซอฟต์แวร์

More Related