1 / 124

Discrete Mathematics

Discrete Mathematics. San Ratanasanya. บางส่วนของเอกสารนี้มาจากเอกสารประกอบหน้งสือของ Rosen, เอกสารประกอบการสอนของ ดร.ทิพยรัตน์ ประโยชน์ และ ดร. อรรจน์ โกญจนาท @ rsu.ac.th. Course Overview. Compulsory and intensive BUT short 3 classes @ 3 hrs. Total = 9 hrs.

Download Presentation

Discrete Mathematics

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. Discrete Mathematics San Ratanasanya บางส่วนของเอกสารนี้มาจากเอกสารประกอบหน้งสือของ Rosen, เอกสารประกอบการสอนของ ดร.ทิพยรัตน์ ประโยชน์และดร. อรรจน์ โกญจนาท@rsu.ac.th

  2. Course Overview • Compulsory and intensive • BUT short 3 classes @ 3 hrs. Total = 9 hrs. • Covers basic and some interesting topics • Topics are not discussed in order • In-class exercises, homework,andquizzes • Collaborative study and work: SSD • Any textbook in Discrete Mathematics will do • Kenneth Rosen, Discrete Mathematics and its Applications, 6th ed. • Steven G. Krantz, Discrete Mathematics Demystified • Edward A. Bender and S. Gill Williamson,A Short Course in Discrete Mathematics

  3. Background Inquiries • Logic and Proof • Sets and Matrices • Counting • Probability • Algorithm • Boolean • Automata • Graph and Tree • Number Theory • CS • CPE • IT • Others

  4. Discrete Mathematics (DM) • DM คืออะไร? • ครอบคลุมหลายหัวข้อทางคณิตศาสตร์ • เป็นพื้นฐานที่สำคัญของ CS ที่เกี่ยวกับ สมมติฐาน ความคิดต่างๆ และการพิสูจน์ความคิดเหล่านั้น (proofs and ideas and abstraction) • ไม่ต่อเนื่อง, เต็มหน่วย, สามารถนับได้, ปริมาณ • ทำอย่างไรจึงเข้าใจ DM? • พยายามคิดในเชิงนามธรรม ตั้งสมมติฐาน นิยาม • เชื่อมโยงนิยามต่างๆ เข้ากับการใช้งานจริง

  5. Discrete Mathematics(DM) • ทำไมเราต้องใช้DM? • ใช้ในการเชื่อมโยงทฤษฎีต่างๆกับปัญหาในชีวิตประจำวัน • เพื่อแก้ปัญหาเหล่านั้นด้วยวิธีการที่เหมาะสม • Examples • Internet, Computer Network, Computer Graphics, A.I., Database, Robotics, Image Processing and Computer Vision, Computer Security, etc.

  6. Chapter 1: Basic Foundations Logics, Predicate Logics, Rules of Inference, and Proofs

  7. Logics • Logics หมายถึง เหตุผล หรือ ระบบการใช้เหตุผล • เราใช้ logic ในชีวิตประจำวันเสมอ • ประโยคที่เราสามารถบอกได้ว่าเป็นจริงหรือเป็นเท็จเรียกว่าประพจน์ หรือ ถ้อยแถลง หรือ proposition • เมื่อเรามีประพจน์มากกว่าหนึ่ง และต้องการนำประพจน์เหล่านั้นมาใช้ในการแสดงเหตุผลร่วมกัน เราสามารถทำได้โดยใช้ตัวดำเนินการทางตรรก(logical operator) ต่างๆ เช่น • and (), or (), not (), xor (), conditional (), และ bidirectional () ซึ่งแต่ละตัวจะมีลำดับความสำคัญต่างกัน • เราเรียกประโยคที่มีประพจน์มากกว่าหนึ่งว่า ประพจน์ประกอบ หรือ ประพจน์ผสม หรือcompound proposition เช่น • ถ้าเราซื้อของราคา 10 บาทแล้วจ่ายเงินไป 100 บาทจะได้เงินทอน 15 บาท

  8. Logics • เราเรียกประพจน์ผสมที่มีค่าความจริงเป็นจริงทุกกรณีว่า สัจนิรันดร์ หรือ tautology และ ประพจน์ผสมที่มีค่าความจริงเป็นเท็จทุกกรณีว่า ข้อขัดแย้ง หรือ contradiction • เราเรียกประพจน์ผสมที่ไม่เป็นทั้ง tautology หรือ contradiction ว่า สิ่งที่เป็นไปได้ หรือ contingency • เราสามารถตรวจสอบได้ว่าประพจน์ผสมใดมีค่าความจริงเป็นอย่างไร โดยการสร้างตารางค่าความจริง (truth table) • ในทางคณิตศาสตร์ เราใช้ตัวอักษรภาษาอังกฤษในการแทนประพจน์เพื่อความสะดวกในการอ้างถึง เช่น • p: พระจันทร์สีเหลือง • Logical Equivalenceหรือ การสมมูล เป็นการการเท่ากันทางตรรกศาสตร์ เมื่อประพจน์ หรือประพจน์ผสมใดๆ มีค่าความจริงเท่ากันทุกประการ เราบอกว่าประพจน์เหล่านั้น สมมูล กัน • Bitwise operation เป็นการกระทำทางตรรก ในระดับ bit

  9. Predicate Logics • ประพจน์ใดที่มีตัวแปรมาเกี่ยวข้อง เราจะไม่สามารถทราบค่าความจริงของประพจน์นั้นได้ในทันที เราเรียกประพจน์ที่มีลักษณะดังนี้ว่า ภาคแสดงหรือ Predicate เช่น • P(x) = x is greater than 3 • Predicate หมายถึง คุณสมบัติ ของตัวแปรนั้นๆ ดังนั้นค่าความจริงของ ประพจน์เปิด จึงขึ้นอยู่กับคุณสมบัติของตัวแปรในประพจน์นั้น • Quantifiersหรือตัวบ่งปริมาณ ใช้ในการบอกปริมาณของตัวแปรในประพจน์

  10. Rules of Inference • ทฤษฎีบท (theorems) หรือ ข้อโต้แย้ง(arguments) ประกอบด้วยประพจน์ และ/หรือ ประพจน์ผสม หลายๆ ประพจน์ เราเรียกประพจน์เหล่านั้นว่า หลักฐาน(premises) • เมื่อเราต้องทำการพิสูจน์ (proof) ทฤษฎีบท หรือ ข้อโต้แย้งต่างๆ เราจะใช้ กฎของการอนุมาน หรือrules of inference ช่วยในการพิสูจน์ หรือนำไปสู่บทสรุป(conclusion) ว่าทฤษฎีบทนั้น หรือ ข้อโต้แย้งนั้น มีเหตุผล หรือไม่มีเหตุผล (valid or invalid) ด้วยการนิรนัย(deduction) • ทฤษฎีบท หรือ ข้อโต้แย้งต่างๆ จะมีเหตุผลก็ต่อเมื่อ หลักฐานต่างๆทั้งหมดเป็นจริงและบทสรุปก็ต้องเป็นจริงด้วย

  11. (Informal) Proofs • วิธีในการพิสูจน์มีหลายวิธีการ เช่น • การพิสูจน์โดยการแจกแจงด้วยตารางค่าความจริง • การพิสูจน์โดยตรง (direct proof) • พิสูจน์ว่า p  q เป็นจริง • การพิสูจน์โดยอ้อม (indirect proof) • การพิสูจน์โดยใช้รูปขัดแย้ง (proof by contraposition) • ใช้รูปขัดแย้ง (contrapositive) ของ p  q ในการพิสูจน์ • การพิสูจน์โดยใช้ข้อขัดแย้ง (proof by contradiction) • พิสูจน์ว่า p  q เป็นจริง โดยการพิสูจน์ว่าข้อขัดแย้งของ p  q เป็นท็จ ซึ่งสามารถทำได้โดย ให้ p เป็นเท็จ แล้วทำการหาบทสรุป ถ้าบทสรุปเป็นเท็จ แสดงว่า p  q เป็นจริง • การพิสูจน์โดยการพิจารณากรณี (proof by cases) • การพิสูจน์เพียงบางส่วน (trivial proof and vacuous proof) • Trivial: แสดงให้เห็นว่า q เป็นจริง จะสรุปได้ว่า p q เป็นจริง • Vacuous: แสดงให้เห็นว่า p เป็นเท็จ จะได้ p  qเป็นจริง • ฯลฯ • การพิสูจน์เชิงอุปนัย (proof by induction)

  12. In-Class Exercises

  13. Chapter 2: Basic Structures Sets, Functions, Sequences, and Sums

  14. Sets • เซต หรือ Set คือกลุ่มของสิ่งของต่างๆซึ่งมีกฎเกณฑ์ชัดเจนว่าสิ่งใดอยู่ในเซตและสิ่งใดไม่ได้อยู่ในเซต สิ่งที่อยู่ในเซตเรียกว่าสมาชิก(member หรือ element) ของเซต • เราใช้ตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่แทนชื่อของเซต และตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเมื่อกล่าวถึงสมาชิกในเซตเมื่อไม่ได้เจาะจงว่าเป็นตัวใด • เราเขียนสมาชิกของเซตอยู่ภายในวงเล็บปีกกา {} • a  A แปลว่า a เป็นสมาชิกของ A, A = {1,2,3} หมายถึงเซต A มีสมาชิกเป็น 1 2 3 • โดยทั่วไป เราสามารถเขียนเซตได้ 3 วิธี • ด้วยการใช้ถ้อยคำอธิบาย • A เป็นเซตของจำนวนเต็มบวกที่มีสมาชิกตั้งแต่ 1 ถึง 100 • ด้วยการแจกแจงสมาชิกทั้งหมด • A = {1,2,3,4,5,6,….,100} • ด้วยการใช้คุณสมบัติของสมาชิก หรือ เรียกว่า Set builder • A = {x | xZ+ and 0 < x  100}

  15. Sets • ขนาดของเซตหมายถึงจำนวนสมาชิกของเซต (cardinality) เราใช้สัญลักษณ์ |A| แทนจำนวนสมาชิกของเซต A • เราเรียก เซต A ที่มีสมาชิกทุกตัวเป็นสมาชิกของเซต B ว่า A เป็นเซตย่อย (subset) ของ B เขียนแทนด้วย A  B • เซตว่างคือเซตที่ไม่มีสมาชิกเลย และเป็น subset ของทุกเซต • เซตกำลัง หรือ P(A) คือเซตที่มีสมาชิกเป็น subset ของ A

  16. Set Operations • การดำเนินการบนเซต หรือ Set operation ได้แก่ Union (), Intersect (), Complement (¯ หรือ ’), Difference (-), Symmetric Difference () • เราสามารถใช้แผนภาพเวนน์ (Venn Diagram)ในการแสดงการกระทำบนเซตได้ ซึ่งในแผนภาพเวนน์นี้จะใช้หลักของการเพิ่มเข้าและตัดออก (inclusion and exclusion)ด้วย • การเท่ากัน หรือการสมมูลกัน ของเซตจะเกิดขึ้นก็ต่อเมื่อสมาชิกของเซตสองเซตนั่นเหมือนกันทุกประการ • เราสามารถพิสูจน์ว่าเซตสองเซตใดๆเท่ากันได้โดยใช้ Set Identities, Set Builder, หรือ Set Membership Table • ผลคูณคาร์ทีเซียน (Cartesian) เป็นความสัมพันธ์ระหว่างเซตสองเซต โดยเป็นการจับคู่กันระหว่างสมาชิกของเซตแรกกับสมาชิกของเซตที่สอง เขียนแทนด้วย X  Y โดยที่แต่ละค่าของ x ใน X จะมี y ใน Y ที่แตกต่างกัน ผลคูณฯ จะเป็นเซตที่มีสมาชิกที่มีลักษณะเหมือนคู่อันดับ (x, y)

  17. Functions • ฟังก์ชัน (function) คือความสัมพันธ์จากเซตหนึ่งไปยังอีกเซตหนึ่ง หรือเรียกว่าเป็นการจับคู่ (mapping) หรือ การแปลง (transformation) จากเซตแรกไปสู่เซตที่สอง โดยที่เซตแรกเรียกว่าโดเมน (domain) เซตที่สองเรียกว่า โคโดเมน (codomain) • เราบอกโดเมนกับโคโดเมนด้วยสัญลักษณ์ f: RRหมายถึงฟังก์ชัน f เป็นการแปลงจากเซตของจำนวนจริง (R)ไปยังเซตของจำนวนจริง f จึงมีRเป็นทั้งโดเมนและโคโดเมน • เราแทนฟังก์ชันด้วยสัญลักษณ์ f(x) = y หมายถึงฟังก์ชัน f เป็นการแปลงจาก x ไปเป็น y • เรนจ์ (range) ของฟังก์ชันคือเซตที่มีสมาชิกทั้งหมดที่ใช้สำหรับการแปลงจากโดเมนมาสู่โคโดเมน ดังนั้น range จึงเป็น subset ของcodomain • การแปลงมี 2 ลักษณะ ได้แก่ • หนึ่งต่อหนึ่ง (One-to-one) : ถ้า x1 และ x2 เป็นสมาชิกของโดเมนของ f แล้ว f (x1) = f (x2) ก็ต่อเมื่อ x1 = x2 และ • ทั่วถึง (Onto) : ถ้า y เป็นสมาชิกใดๆของโคโดเมนของ f แล้วจะมี x อย่างน้อย 1 ตัว ซึ่ง f (x) = y

  18. Functions • ฟังก์ชันที่เป็นทั้ง one-to-one และ onto จะเรียกว่าbijection • เราจะสามารถหาฟังก์ชันผกผัน (inverse function) ของฟังก์ชันใดๆได้ก็ต่อเมื่อฟังก์ชันนั้นเป็นbijection • ฟังก์ชัน f: X → Y และ g:Y → Z สามารถประกอบกันได้ ซึ่งจะได้ผลเป็น ฟังก์ชันประกอบ (composite function)gof: X → Z ซึ่งมีนิยามคือ (g o f) (x) = g (f (x)) • ฟังก์ชันเพดาน และฟังก์ชันพื้น (ceiling and floor functions) เป็นฟังก์ชันที่ใช้ในการประมาณค่าจำนวนจริงให้เป็นจำนวนเต็มโดยการปัดเศษขึ้นหรือลงตามลำดับ ใช้สัญลักษณ์  และ  ตามลำดับ • เราสามารถอธิบายฟังก์ชันได้ด้วยกราฟของฟังก์ชัน ซึ่งคือการวาดภาพความสัมพันธ์ของสมาชิกในโดเมนและเรนจ์นั่นเอง

  19. Sequences • ลำดับ หรือ Sequence เป็นรายการของสิ่งของที่มีการเรียงลำดับแล้ว • มีส่วนที่คล้ายกับ Set มีพจน์ ซึ่งเป็นสมาชิกในลำดับ และจำนวนสมาชิกคือความยาวของลำดับ • ส่วนที่แตกต่างจาก Set คือ สมาชิกทุกตัวมีลำดับ ดังนั้น พจน์ที่เหมือนกัน จะเกิดขึ้นต่างลำดับกัน • เราแทนสมาชิกตัวที่ n ของลำดับด้วย anโดยที่ n = 1,2,3, … • เราสามารถแบ่งลำดับตามจำนวนสมาชิกได้ดังนี้ • ลำดับอนันต์ คือลำดับที่มีจำนวนสมาชิกไม่จำกัด • ลำดับจำกัด คือลำดับที่มีจำนวนสมาชิกจำกัด

  20. Sequences • เราสามารถแบ่งลำดับตามความสัมพันธ์ของสมาชิกได้หลายประเภท เช่น • ลำดับเลขคณิต : คือลำดับที่มีผลต่างระหว่างพจน์ที่ n+1 กับพจน์ที่ n มีค่าคงตัว ค่าคงตัวนี้เรียกว่า ผลต่างร่วม (common diference) สามารถเขียนสูตรของพจน์ที่ n ในรูปของพจน์ที่ 1 ได้ดังสมการ an= a1 + (n-1)d โดยที่ d คือ ผลต่างร่วม • ลำดับเรขาคณิต : คือ อัตราส่วนระหว่างพจน์ที่ n +1 กับ พจน์ที่ n มีค่าคงตัว ค่าคงตัวนี้เรียกว่า อัตราส่วนร่วม (common ratio) สามารถเขียนพจน์ที่ n ใดๆ ในรูปของพจน์ที่ 1 ดังนี้ an = a1 * rn − 1โดยที่ r คืออัตราส่วนร่วม • ลำดับฮาร์โมนิก : หมายถึง ลำดับที่มีพจน์แต่ละพจน์เป็นส่วนกลับของพจน์ในลำดับเลขคณิต • ลำดับฟีโบนักชี : คือลำดับของจำนวนเต็มบวก ซึ่งมีคุณสมบัติว่า an = an − 1 + an − 2

  21. Summations • ผลบวก หรือ summation คือผลบวกของของเซตของจำนวน ในบางครั้งเราอาจเรียกว่า series • Series เป็นผลบวกของพจน์ใน sequence • เราใช้สัญลักษณ์  แทนผลบวกของสมาชิกในเซตหรือลำดับ • และใช้สัญลักษณ์  แทนผลคูณของสมาชิกในเซตหรือลำดับ • คุณสมบัติที่น่าสนใจของผลบวก เช่น • ca = c a เมื่อ c เป็นค่าคงที่ • a + b = (a+b)

  22. In-Class Exercises

  23. Chapter 3: Algorithms Algorithms and Analysis, (Algorithms on) The Integers, and Matrices

  24. Algorithms • ขั้นตอนวิธี หรือ อัลกอริทึม (algorithm) หมายถึงกระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและ ชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร • ในการทำงานอย่างเดียวกัน เราอาจจะเลือกขั้นตอนวิธีที่ต่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ที่ได้ในขั้นสุดท้ายจะออกมาเหมือนกันหรือไม่ก็ได้ และจะมีความแตกต่าง ที่จำนวนและชุดคำสั่งที่ใช้ต่างกันซึ่งส่งผลให้ เวลา (time) , และขนาดหน่วยความจำ (space) ที่ต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน • การนำขั้นตอนวิธีไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทำงานเครื่องจักรกล, หรือแม้กระทั่งปัญหาในธรรมชาติ เช่น วิธีของสมองมนุษย์ในการคิดเลข หรือวิธีการขนอาหารของแมลง

  25. Pseudocode • รหัสเทียม (Pseudocode) เป็นภาษาที่ใช้ในการเขียนอธิบาย algorithm โดยอยู่ในรูปที่ใกล้เคียงกับภาษาที่ใช้ในการเขียนโปรแกรม

  26. Analysis of Algorithms • ความซับซ้อน (Complexity) ของ algorithm • เชิงเวลา (time complexity) หมายถึงเวลาที่ใช้ในการทำงานของโปรแกรม โดยทั่วไปจะขึ้นอยู่กับขนาดของ input • เชิงพื้นที่ (space complexity) หมายถึงขนาดของพื้นที่ในหน่วยความจำที่ถูกใช้สำหรับการทำงานของโปรแกรม

  27. Analysis of Algorithms • การเติบโตของฟังก์ชัน (Growth of Function) • Big O • Big Theta • Big Omega

  28. Algorithms on the Integers • Division • Modular • GCD • LCM

  29. Algorithms on the Integers • Cryptology • Caesar’s • RSA

  30. Matrices • เมตริกซ์ (Matrices) เป็นการแสดงสมาชิกของเซตในรูปแบบของแถวและหลัก (row and column) • ขนาดของเมตริกซ์หาได้จาก จำนวนแถว x จำนวนหลัก • เมตริกซ์ใดๆ จะเท่ากันได้ก็ต่อเมื่อมีขนาดเท่ากันและสมาชิกทุกตำแหน่งมีค่าเท่ากัน • การบวกเมตริกซ์ • เป็นการบวกกันของสมาชิกที่อยู่ในตำแหน่งเดียวกันของเมตริกซ์ 2 เมตริกซ์ใดๆ ดังนั้นเมตริกซ์จะบวกกันได้ก็ต่อเมื่อเมตริกซ์ใดๆ 2 เมตริกซ์นั้นมีขนาดเท่ากัน • การคูณเมตริกซ์ • จะทำได้ก็ต่อเมื่อ จำนวนแถวของเมตริกซ์ตัวที่สองเท่ากับจำนวนหลักของเมตริกซ์ตัวแรก และผลลัพธ์จะได้เมตริกซ์ที่มีขนาดเป็น จำนวนแถวของเมตริกซ์ตัวแรก x จำนวนหลักของเมตริกซ์ตัวที่สอง

  31. In-Class Exercises

  32. Chapter 4: Induction and Recursion Induction and Recursion

  33. Mathematical Induction • อุปนัยเชิงคณิตศาสตร์ (Mathematical Induction) เป็นการพิสูจน์แบบหนึ่ง โดยใช้กรณีเฉพาะมาทำการอุปนัยให้ได้บทสรุป โดยทั่วไปมักใช้ในการสร้างทฤษฎีจากผลของการทดลอง • อุปนัยเชิงคณิตศาสตร์จะใช้กับการพิสูจน์คุณสมบัติบางประการของจำนวนเต็มบวก หรือจำนวนนับ

  34. Mathematical Induction • อุปนัยเชิงคณิตศาสตร์มี 2 ขั้นตอน • ขั้นมูลฐาน (basis step) เป็นการแสดงว่าประพจน์เป็นจริงเมื่อกล่าวกับจำนวนเต็มบวกตัวแรก • ขั้นชักนำ (inductive step) เป็นการใช้กรณีหนึ่งเพื่อไปสรุปอีกกรณีหนึ่ง คือใช้สมมติฐานว่าประพจน์เป็นจริงกับจำนวนเต็มบวก k และทำการพิสูจน์เพื่อนำไปสู่บทสรุปว่าประพจน์เป็นจริงกับจำนวนเต็มบวกที่ถัดจาก k หรือ k+1 เมื่อพิสูจน์ได้ว่าประพจน์เป็นจริงกับจำนวนเต็มบวก k+1 แล้วจะสามารถสรุปได้ว่าประพจน์นี้เป็นจริงกับจำนวนเต็มบวกทุกตัว

  35. Strong Induction and Well-Ordering • จากหลักการอุปนัยทางคณิตศาสตร์สำหรับ P(n) ที่ขึ้นกับจำนวนนับ n ถ้าเราสามารถพิสูจน์ได้ว่า1. P(1) จริง และ2. สำหรับจำนวนนับi 1 ใด ๆ P(i)  P(i+1)แล้ว P(n) เป็นจริงสำหรับทุก ๆ จำนวนนับ n • หลักการนี้ไม่สามารถใช้พิสูจน์ได้ทุกกรณี เนื่องจากอาจมีค่าบางค่าที่อยู่ระหว่าง 1 ถึงiใดๆ โดยที่i < n ที่ทำให้ P(i) มีค่าเป็นเท็จ • ดังนั้น เราจึงต้องทำการพิสูจน์ให้เห็นว่า ช่วงระหว่าง 1 ถึงiใดๆนั้นประพจน์ยังมีค่าความจริงเป็นจริงอยู่ แล้วค่อยทำการพิสูจน์ต่อจาก iนั้นๆ ไปยัง i+1 หลักการนี้เรียกว่าอุปนัยเชิงคณิตศาสตร์แบบแข็งแกร่ง (Strong Induction)

  36. Strong Induction and Well-Ordering • Well-orderingเป็นหลักการที่กล่าวว่า สำหรับเซตทุกเซตที่ไม่ใช่เซตว่าง เซตนั้นๆจะต้องมีสมาชิกที่มีค่าน้อยที่สุด • เราใช้หลักการ well-ordering นี้ในการพิสูจน์แบบ induction ได้ เนื่องจากมีความคล้ายคลึงกัน แต่โดยส่วนมากแล้วเราจะพิสูจน์โดยใช้ข้อขัดแย้ง

  37. Recursive Definition • วิธีในการแก้ปัญหาอย่างหนึ่ง โดยประยุกต์ใช้หลักของการอุปนัยเชิงคณิตศาสตร์ เรียกว่า การเวียนเกิด หรือrecursion • ในการแก้ปัญหาแบบนี้ คำตอบจะขึ้นอยู่กับคำตอบของปัญหาย่อยๆ ที่มีลักษณะเดียวกับปัญหาใหญ่ • เราต้องนิยามการเวียนเกิดของปัญหาก่อน และเรียกนิยามนี้ว่านิยามเวียนเกิดหรือ recursive definition • ดังนั้นวิธีในการพิสูจน์ หรือการนิยามการเวียนเกิดจึงใช้การอุปนัยเชิงคณิตศาสตร์เช่นกัน

  38. Recursive Definition • การพิสูจน์แบบเวียนเกิดมี 2 ขั้นตอน • ขั้นมูลฐาน (basis step) ทำการพิสูจน์ว่า P(1) เป็นจริง • ขั้นชักนำ หรือ ขั้นเวียนเกิด (inductive or recursive step) ทำการนิยาม นิยามเวียนเกิด เพื่อนำไปสู่การแก้ปัญหา และทำการพิสูจน์ว่า P(k)  P(k+1)

  39. Recursive Algorithms • เป็น algorithm ที่ใช้การเวียนเกิด (recursion) ในการแก้ปัญหา • การแก้ปัญหาแบบเวียนเกิดมี 2 ขั้นตอน • ขั้นมูลฐาน (basis step) กำหนดค่าเริ่มต้นของการเวียนเกิด • ขั้นชักนำ หรือ ขั้นเวียนเกิด (inductive or recursive step) ทำการนิยาม นิยามเวียนเกิด เพื่อนำไปสู่การแก้ปัญหา โดยการสร้างกฎสำหรับการหาคำตอบโดยเริ่มจากจำนวนนับที่น้อยๆ ก่อน

  40. Program Correctness • เป็นการพิสูจน์ว่าโปรแกรมที่เขียนขึ้นมานั้นมีความถูกต้องเมื่อเทียบกับ input และ output ที่กำหนดให้ • โปรแกรมจะมีความถูกต้องก็ต่อเมื่อได้ให้ output ที่ถูกต้องสำหรับทุกๆ input ที่เป็นไปได้ • Initial assertion คือคุณสมบัติของ input ที่กำหนดให้ • Final assertion คือคุณสมบัติที่ output ควรจะมี • การพิสูจน์ความถูกต้องของโปรแกรม (program verification) แบ่งได้เป็น 2 ส่วน • โปรแกรมจะมีความถูกต้องบางส่วน (partial correctness) เมื่อโปรแกรมสามารถให้ output ที่ถูกต้องหลังจากโปรแกรมหยุดทำงาน (terminate) ได้ • ถ้าโปรแกรมสามารถจบการทำงานได้ โปรแกรมจะมีความถูกต้องทั้งหมด (total correctness) • โดยทั่วไปจะใช้สัญลักษณ์ของ Hoare (Hoare Notation) ในการพิสูจน์

  41. In-Class Exercises • Homework

  42. Chapter 5: Counting Counting, Pigeonhole Principle, Permutation, and Combination

  43. Basic Rules of Count • กฎของผลคูณและผลบวก (Rules of Product and Sum) • ถ้า E1, E2, E3, …, Ekเป็นลำดับของเหตุการณ์ซึ่งจำนวนวิธีของการเกิดเหตุการณ์แต่ละอย่างไม่ขึ้นกับวิธีการเกิดของเหตุการณ์ที่เกิดก่อน • ถ้าจำนวนวิธีของการเกิด Ei = ni, i = 1, 2, 3, …, k แล้ว • จำนวนวิธีของการเกิดเหตุการณ์ทั้งลำดับ คือ n1n2n3…nk • จำนวนวิธีของการเกิดเหตุการณ์เพียงอย่างใดอย่างหนึ่ง คือ n1 + n2 + n3 + … + nk • หลักของการเพิ่มเข้าและตัดออก (Inclusion-Exclusion Principle) ใช้ในกรณีที่มีการนับขาด หรือนับเกิน

  44. Pigeonhole Principle • หลักการรังนกพิราบ (Pigeonhole Principle) • ถ้ามีรังนกพิราบ n รังและมีนกพิราบ m ตัว ถ้า n+1 แล้วจะมีอย่างน้อย 1 รังที่มีนกพิราบมากกว่า 1 ตัว • เราสามารถขยายหลักการนี้ให้ใช้งานได้มากขึ้นโดย • ถ้ามีนกพิราบ N ≥ k+1ตัวต้องการเข้ารังkรัง ดังนั้นต้องมีอย่างน้อยที่สุด 1 รังที่มีนกพิราบอย่างน้อยที่สุด N/k ตัว

More Related