360 likes | 1.06k Views
Combinatorics คอมบินาตอริกส์. Combinatorics. คอมบินาตอริกส์เป็นการศึกษาเรื่องการจัดเรียงวัตถุ ซึ่งเป็นเรื่องที่สำคัญใน Discrete mathematics หัวข้อที่ศึกษา กฎการรวมและกฎการคูณ (Sum and Product Rules) รังนกพิราบ (Pigeonhole Principle) Inclusion and Exclusion Permutation Combination.
E N D
Combinatorics คอมบินาตอริกส์เป็นการศึกษาเรื่องการจัดเรียงวัตถุ ซึ่งเป็นเรื่องที่สำคัญใน Discrete mathematics หัวข้อที่ศึกษา • กฎการรวมและกฎการคูณ (Sum and Product Rules) • รังนกพิราบ (Pigeonhole Principle) • Inclusion and Exclusion • Permutation • Combination
การนับแบบพื้นฐาน การแก้ปัญหาของตารางความจริงโดยการวาดต้นไม้ ที่บอกถึงความเป็นไปได้ต้นไม้นี้ได้บอกเป็นนัยของหลักทั่วไปที่สามารถใช้แก้ปัญหาการนับได้มากมายก่อนหน้านี้ได้กล่าวถึงหลักทั่วไปว่าจะพิจารณาตัวอย่างต้นไม้ในแบบอื่น ตัวอย่าง เด็กๆได้รับอนุญาตให้เลือกลูกกวาดธรรมดา ที่มีอยู่สองสีคือสีแดงและดำและลูกกวาดชนิดเคลือบมีอยู่สามสีคือเหลืองเขียวและขาวจะมีเซตที่แตกต่างกันกี่เซตที่เด็กจะเลือกลูกกวาดทั้งสองชนิดนี้ได้อย่างละหนึ่งสี
Tree Diagrams 2x3 =6= 3x2
การนับแบบพื้นฐาน หลักการนับแบบพื้นฐาน ที่จะศึกษากันมีสองแบบคือ กฎการคูณและกฎการรวม เรามาดูแต่ละกฎว่ามีการแตกต่างกันอย่างไร กฎการคูณ (Product Rule)สมมุติว่ามีกระบวนการหรือเหตุการณ์หนึ่งที่สามารถแยกออกได้เป็นสองเหตุการณ์ โดยเหตุการณ์แรกมี n1วิธี ส่วนเหตุการณ์ที่สองมี n2วิธี เมื่อเหตุการณ์แรกเสร็จสิ้นเรียบร้อยแล้ว ดังนั้นกระบวนการนี้สามารถทำได้ทั้งหมด n1n2วิธี กฎการบวก (Sum Rule)ถ้าAและBเป็นเซตของเหตุการณ์ที่แตกต่างกันโดยสิ้นเชิง(AB =) โดยเหตุการณ์ในเซตAมีn1ทางเลือกส่วนในเซตBมีn2ทางเลือกดังนั้นจำนวนผลลัพธ์ที่เป็นไปได้ทั้งหมดของเหตุการณ์ทางเลือกในเซตAและBคือ n1+ n2
i1 1 2 n1 i2 1 2 n2 1 2 n2 im 1 2 nm 1 2 nm ตัวอย่าง ให้หาค่า kหลังจากประมวลผลส่วนของโปรแกรมต่อไปนี้ วิธีทำ ค่าเริ่มต้นของ k = 0 ค่าของ kจะถูกเพิ่มครั้งละ 1 ในแต่ละครั้งที่วงวนที่ซ้อนกัน ดั้งนั้น ค่าของ kคือ n1n2n3...nm k = 0 for i1 := 1 to n1 for i2 := 1 to n2 : : for im := 1 to nm k := k + 1 k = n1n2n3...nm
ตัวอย่าง ให้หาค่า kหลังจากประมวลผลส่วนของโปรแกรมต่อไปนี้ วิธีทำ ที่วงวน i1 เพิ่มค่าจนถึง n1 ทำให้ k = n1ตามด้วยวงวน i2 วนจนถึง n2 ทำให้ kถูกเพิ่มค่าไปอีก n2 นั่นคือเมื่อจบวงวน n2 จำทำให้ k = n1 + n2 : และเมื่อประมวลผลไปจนถึงวงวน imพอจบวงวนนี้ก็จะได้ค่า k = n1 + n2 + ... + nm k = 0 for i1 := 1 to n1 k := k + 1 for i2 := 1 to n2 k := k + 1 : : for im := 1 to nm k := k + 1
ปัญหาการนับที่มีความซับซ้อนปัญหาการนับที่มีความซับซ้อน ปัญหาที่มีความซับซ้อนขึ้นจนไม่สามารถที่จะแก้ปัญหาได้ด้วยกฎการรวมหรือกฎการคูณเพียงวิธีใดวิธีหนึ่ง บางครั้งเมื่อนำทั้งกฎการรวมและกฎการคูณมาใช้รวมกันก็สามารถแก้ปัญหาที่ซับซ้อนได้ ตัวอย่างภาษาเบสิกเวอร์ชันแรกๆสามารถกำหนดชื่อของตัวแปรในรูปของสตริงที่ใช้หนึ่งหรือสองตัวอักษรแบบอัลฟานิวเมอริก(Alphanumeric characters) โดยที่ทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กไม่มีความแตกต่างกันอย่างไรก็ตามชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรที่จะต้องไม่ซ้ำกับสตริงห้าตัวของสองตัวอักษรที่เป็นคำสงวนของภาษาเบสิกดังนั้นในภาษาเบสิกเราสามารถตั้งชื่อตัวแปรที่ไม่ซ้ำกันสูงสุดได้กี่ตัว(สำหรับเวอร์ชันที่กล่าวมานี้)
V1 V2 A,a; B,b; ...; Z,z A,a; B,b; ...; Z,z A,a; B,b; ...; Z,z; 0, 1, ..., 9 ตัวอย่าง การใช้กฎการบวกร่วมกับกฎการคูณ ให้Vเท่ากับจำนวนตัวแปรที่ไม่ซ้ำกันของภาษาเบสิกเวอร์ชันนี้ ส่วนV1แทนจำนวนตัวแปรที่ตั้งชื่อโดยใช้อักษรเพียงหนึ่งตัว และV2แทนจำนวนตัวแปรที่เป็นไปได้ทั้งหมดของสองตัวอักษร ดังนั้นตัวแปรที่ไม่ซ้ำกันทั้งหมดคือV = V1 + V2 V1= 26 V2= 2636–5= 931 V = V1 + V2= 26 + 931 = 957 ตัวแปร
ต้นไม้ของการตัดสินใจ เราจะใช้ต้นไม้เพื่อแก้ปัญหาการนับที่เป็นการบวกแต่ที่ผ่านมาเราใช้ต้นไม้อธิบายกฎการคูณ และมีปัญหาไม่น้อยทีเดียวที่ใช้ต้นไม้ของการตัดสินใจซึ่งถูกใช้เพื่อแก้ปัญหาการนับ ที่หลักการคูณไม่สามารถนำมาแก้ปัญหาได้ ตัวอย่างในการโยนเหรียญแต่ละครั้งจะมีผลลัพธ์ไม่หัว(Head: H) ก็ก้อย(Tail: T) มีกี่หนทางที่โยนเหรียญห้าครั้งจะไม่ปรากฏหัวสองครั้งติดกัน วิธีทำในรูปได้แสดงต้นไม้การตัดสินใจของปัญหานี้ การโยนเหรียญแต่ละครั้งจะมีสองผลลัพธ์กิ่งทางซ้ายแทนการออกหัวและกิ่งทางขวาแทนการออกก้อยดังนั้นคำตอบของปัญหานี้คือเมื่อไรที่กิ่งนั้นออกหัวแล้วครั้งต่อไปจะต้องออกก้อยซึ่งนับจำนวนได้ทั้งหมด 13 หนทาง
โยนเหรียญห้าครั้งโดยไม่ปรากฏหัวซ้ำกันสองครั้งโยนเหรียญห้าครั้งโดยไม่ปรากฏหัวซ้ำกันสองครั้ง
AB S B–A A–B B A หลักการนำเข้า(Inclusion)-ตัดออก(Exclusion) เพื่อพัฒนาหลักการนำเข้าและการตัดออกจะกำหนดให้A และBเป็นเซตย่อยใดๆของเซตเอกภพสัมพัทธ์Sดังนั้นA–B, B–A และABจะเป็นเซตที่ไม่ร่วมกันเลย(ดูรูป) • ถ้าxA–Bดังนั้นxBเพราะฉะนั้นxB–AและxAB • ดังนั้นจากข้อเท็จจริงนี้สามารถกล่าวได้ว่ายูเนียนของทั้งสามเหตุการณ์
เมื่อ และ หลักการตัดออก หลักการนำเข้า หลักการนำเข้าและการตัดออกของสองเซต สามเหตุการณ์ที่ไม่ร่วมกัน เมื่อใช้ทั้งสองเทอมนี้แทนลงในสมการที่ (1) ก็จะได้ว่า
ตัวอย่างหลักการนำเข้า-ตัดออกของสองเหตุการณ์ตัวอย่างหลักการนำเข้า-ตัดออกของสองเหตุการณ์ • ตัวอย่างผู้สำรวจประชามติได้สอบถามผู้มีสิทธิออกเสียง 35 คนในการสนับสนุนผู้สมัครคนที่หนึ่งและคนที่สองหรือทั้งคู่จากการหยั่งเสียงพบว่า 14 คนสนับสนุนคนที่ 1 และ 26 คนสนับสนุนเบอร์สองจะมีกี่เสียงที่สนับสนุนผู้สมัครทั้งสองคน • วิธีทำถ้าให้เซตAแทนคนที่ออกเสียงเลือกเบอร์หนึ่งและBแทนคนที่ออกเสียงเลือกเบอร์สองในตอนนี้เราทราบว่า จากสมการที่สองจะได้ว่า
หลักการนำเข้า-ตัดออกของสามเซตหลักการนำเข้า-ตัดออกของสามเซต จากสมการที่ (2) สามารถที่จะขยายไปสู่กรณีที่เป็นการรวมกันของสามเซตดังต่อไปนี้ เพราะฉะนั้นจากหลักการรวมและการกีดกันของสามเซตใดๆจะได้ว่า
ในสมการที่ (4) มีสัญลักษณ์ ซึ่งเป็นการบวกจำนวน สมาชิกจากการอินเตอร์เซ็กกันของAiAjโดยที่iและjสามารถมีค่า ได้ในช่วง1 และnเมื่อi < j หลักการนำเข้า-ตัดออกของ nเซต ถ้ามีnเซตเราควรบวกจำนวนสมาชิกในเซตเดี่ยวๆทั้งหมดเข้าด้วยกันลบออกด้วยจำนวนสมาชิกที่อินเตอร์เซ็กชันกันอยู่และบวกด้วยจำนวนสมาชิกที่อินเตอร์เซ็กชันของสามเซตและลบออกด้วยจำนวนสมาชิกที่อินเตอร์เซ็กชันกันอยู่สี่เซตและเขียนเทอมต่อไปเรื่อยๆจนครบซึ่งสามารถเขียนในรูปแบบทั่วไปของหลักการนำเข้าและการตัดออกของเซตที่มีสมาชิกจำกัดได้ว่า
หลักรังนกพิราบ (Pigeonhole principle) ปัญหาอย่างหนึ่งในคอมบินาตอริกคือ การอธิบายหรือแจกแจงให้เห็นถึงความมีอยู่ (Existence) ของรูปแบบของวัตถุ เพื่อยืนยันว่ารูปแบบเหล่านั้นมีอยู่จริง มีวิธีตรงคือการแจกแจงให้เห็นว่ามีรูปแบบอะไรบ้าง วิธีนี้ทำได้เมื่อวัตถุดังกล่าวมีปริมาณน้อยๆ อีกวิธีหนึ่งเป็นวิธีอ้อมที่ใช้ยืนยันความมีอยู่ของรูปแบบการจัดเรียงวัตถุที่สนใจ ในกรณีที่วัตถุมีปริมาณมากๆ คือหลักรังนกพิราบที่สามารถใช้เป็นเครื่องมือในการพิสูจน์ โดยเริ่มจากหลักการที่มีรูปแบบง่ายๆ แล้วนำไปสู่รูปแบบทั่วไป ไปจนถึงใช้อธิบายรูปแบบที่ปราณีตอย่างทฤษฎีของแรมเซย์ (Ramsey Theory)
หลักรังนกพิราบ ชื่ออื่นๆ ของ Pigeonhole Principle • Shoebox Principle • Dirichlet Drawer Principle หลังจากศตวรรษที่ 19 Diriechlet ได้ใช้หลักรังนกพิราบบ่อยในงานของเขา ทฤษฎีบทหลักรังนกพิราบ: ถ้ามีนกพิราบ k+1 ตัว แล้วมีจำนวนรังนกอยู่ kรัง แสดงว่าจะต้องมีอย่างน้อยหนึ่งรังที่มีนกพิราบอย่างน้อยสองตัว พิสูจน์ โดยข้อขัดแย้ง จากสมมุติฐาน เมื่อแต่ละรังมีนกสูงสุดเพียงตัวเดียว จะมีนกพิราบทั้งหมดมากที่สุดได้เพียง kตัว ดังนั้นข้อสมมุติข้างต้นมีความขัดแย้ง เนื่องจากมีนก k+1 ตัว ซึ่งแสดงว่ามีบางรังที่มีนกมากกว่าหนึ่งตัว
ตัวอย่าง หลักรังนกพิราบ ตัวอย่าง เพื่อให้แน่ใจว่ามีสองคนที่มีนามสกุลที่เริ่มต้นด้วยตัวอักษรเดียวกัน(มีกี่คนที่อยู่ในห้อง ที่มีตัวอักษรแรกของนามสกุลซ้ำกัน) วิธีทำในภาษาไทยมีพยัญชนะอยู่ 44 ตัวสมมุติว่ามีการนำมาใช้ตั้งเป็นนามสกุลทุกตัวอักษรซึ่งในที่นี้ตัวอักษรทั้ง 44 ตัว จะเปรียบว่าเป็นถังถ้ามีคนอยู่ 45 ถ้าทั้ง 44 คนมีนามสกุลที่ขึ้นต้นด้วยพยัญชนะทุกตัวที่ไม่ซ้ำกันเลยทำให้คนที่ 45 จะต้องมีพยัญชนะที่ขึ้นต้นนามสกุลของเขาซ้ำกับ 44 คนอย่างแน่นอนซึ่งเปรียบได้กับนกพิราบ 45 บินเข้าไปใน 44 รัง เพราะฉะนั้นจะต้องมีอย่างน้อยหนึ่งรังที่มีนกมากกว่าหนึ่งตัว
กรณีทั่วไปของหลักรังนกพิราบกรณีทั่วไปของหลักรังนกพิราบ กรณีทั่วไปของหลักรังนกพิราบคือ เมื่อ kและ mเป็นจำนวนเต็มบวก ถ้ามีนกพิราบ mk+1 ตัว โดยที่มีรังนกอยู่ kรัง แสดงว่าจะต้องมีหนึ่งรังที่มีนกพิราบอยู่ m+1 ตัว เพราะว่าถ้าแต่ละรังมีนกพิราบอย่างน้อย mตัว ก็จะต้องมีจำนวนนกทั้งหมดเท่ากับ mk เป็นอย่างน้อย ซึ่งขัดแย้งกับข้อสมมุติข้างต้นที่มีนก mk+1 ตัว ทฤษฎีบท กรณีทั่วไปของหลักรังนกพิราบ: จะกำหนดให้จำนวนนกพิราบแทนจำนวนวัตถุที่มี Nชิ้นที่ถูกใส่ลงในกล่องที่มี kกล่อง ดังนั้นจะต้องมีอย่างน้อยที่สุดหนึ่งกล่องที่บรรจุอย่างน้อย N/kชิ้น
โดยที่อสมการ ถูกใช้ นี่เป็นข้อขัดแย้งเนื่องจากมีวัตถุทั้งหมด Nชิ้น ตัวอย่าง ในห้องเรียนมีนักศึกษา 30 คน แสดงว่ามีนักศึกษาอย่างน้อย คนที่เกิดเดือนเดียวกัน พิสูจน์ กรณีทั่วไปของหลักรังนกพิราบ สมมุติว่าไม่มีกล่องใดที่บรรจุวัตถุมากกว่า N/k - 1 ชิ้น ดังนั้นจำนวนทั้งหมดของวัตถุมีอย่างมากที่สุดเป็น
เพอร์มิวเตชัน (Permutation) เพอร์มิวเตชันเป็นเซตของการจัดเรียงวัตถุที่แตกต่างกัน โดยการจัดเรียงแบบมีลำดับของวัตถุ โดยทั่วไปจำนวนของการเรียงสับเปลี่ยนวัตถุrชิ้นที่แตกต่างกันโดยเลือกจากวัตถุnชิ้นที่แตกต่างกันจะแทนด้วยP(n,r) ดังนั้นผลลัพธ์ของปัญหาตัวเลขสี่หลักโดยไม่ให้มีตัวเลขในแต่ละหลักซ้ำกันสามารถแทนได้โดยP(10, 4) สูตรของP(n,r)สามารถเขียนในรูปของฟังก์ชันแฟกตอเรียล(Factorial function) สำหรับเลขจำนวนเต็มn ใดๆแฟกตอเรียลของnหรือเขียนแทนด้วยn! = n(n–1)(n–2)…1
จากฟังก์ชันแฟกตอเรียลจะได้ว่าจากฟังก์ชันแฟกตอเรียลจะได้ว่า ดังนั้นสูตรโดยทั่วไปของP(n,r)คือ สำหรับ สูตรของP(n,r) และสำหรับr<n
ตัวอย่าง เพอร์มิวเตชัน ตัวอย่าง มีกี่วิธีที่จะจับสลากรางวัลที่หนึ่ง รางวัลที่สอง และรางวัลที่สาม จากคนที่ส่งชิงรางวัล 100 คน โดยคนทั้ง 100 คนจะต้องไม่ซ้ำกัน วิธีทำ การจับสลากรางวัลสามรางวัลคือ รางวัลที่หนึ่งเปรียบได้กับตัวเลขในหลักร้อย รางวัลที่สองเป็นตัวเลขในหลักสิบ ส่วนรางวัลที่สามเป็นเลขหลักหน่วย โดยคนที่ได้รางวัลที่หนึ่งแล้วจะไม่มีโอกาสได้รางวัลอื่นๆ อีก คนที่สองและสามก็เช่นกัน โดยรางวัลที่หนึ่งเลือกจากคน 100 คน รางวัลที่สองเลือกจากคน 99 คน ส่วนรางวัลที่สามเลือกจากคน 98 นั่นก็คือ P(100,3) = 100 99 98
คอมบิเนชัน (Combination) r-combination จากสมาชิกของเซตที่เป็นการเลือกแบบไม่มีลำดับของสมาชิก rตัวจากเซต ดังนั้น r-combination คือเซตย่อยของเซตที่มีสมาชิก r ตัว ตัวอย่าง กำหนดให้ S={1, 2, 3, 4} ดังนั้น {1, 3, 4} คือ 3-combination จากเซต S
ทฤษฎีบท คอมบิเนชัน เราสามารถกำหนดจำนวนของ r-combination ของเซตที่มีสมาชิก nตัวได้โดยใช้สูตรจาก r-permutation ของเซต การสร้างสูตรโดยวิธีนี้สังเกตว่า r-permutation ของเซตใดๆ สามารถกำหนดได้โดยการสร้าง r-combination ครั้งแรก แล้วจึงเรียงลำดับของคอมบิเนชันเหล่านี้ ทฤษฎีบท จำนวนของ r-combination จากเซตที่มีสมาชิก nตัว โดยที่ nไม่เป็นจำนวนเต็มที่ติดลบ ส่วน rเป็นจำนวนเต็มที่ 0r nจะได้เท่ากับ
นี่แสดงว่า พิสูจน์ทฤษฎีบท คอมบิเนชัน r-permutation ของเซตที่ได้จากการเลือก r-combination จากวัตถุ n ชิ้น คูณด้วยการจัดเรียงวัตถุ rชิ้นจากเซต rนั่นคือ
ตัวอย่าง คอมบิเนชัน บิตสตริง(Bit strings) ที่มีความยาว nเซตที่มีเลข 1 อยู่ rตัว มีจำนวนเท่าไรที่ วิธีทำ ตำแหน่งต่างๆ ที่เลขหนึ่ง 1 ปรากฏอยู่จำนวน rตัว จากบิตสตริงที่มีความยาว nคือ r-combination ของเซตของตำแหน่ง {1, 2, 3,...,n} เพราะฉะนั้นจำนวนเลขหนึ่งที่ปรากฏอยู่ rตัวจาก nตำแหน่งคือ C(n,r) เช่น แปดบิตสตริงจะมี 1 ปรากฏอยู่เจ็ดตัวคือ
สัมประสิทธิ์ทวินาม (Binomial Coefficients) ข้อเท็จจริงอันหนึ่งของ r-combination คือเมื่อnและ rเป็นจำนวนเต็มที่ไม่ติดลบโดยที่ rnดังนั้น C(n,r) = C(n,n-r) ข้อพิสูจน์อย่างหนึ่งของข้อเท็จจริงนี้คือ และ ที่มาของ สัมประสิทธิ์ทวินาม เพราะฉะนั้น C(n,r) = C(n,n-r) จะเห็นว่าการเท่ากันของกรณีนี้เป็นการเท่ากันในส่วนของจำนวนของสิ่งที่เราสนใจจะนับ แต่ถ้าเราสนใจสิ่งที่ปรากฏอยู่ใน C(n,r) จะเห็นว่ามันเป็นสิ่งที่ตรงกันข้ามกับ C(n,n-r)
ทฤษฎีทวินาม เป็นสัมประสิทธิ์ทวินาม เนื่องจากจำนวน นี้ปรากฏอยู่ในการขยายการยกกำลังของนิพจน์ทวินามอย่าง (a+b)nซึ่งเป็นนิพจน์ทวินามอย่างง่ายเมื่อ n=1 ตัวอย่าง ให้ขยายนิพจน์ (x+y)3 ทฤษฎีบท ให้ x และ yเป็นตัวแปรและ n เป็นจำนวนเต็มที่ไม่เป็นลบดังนั้น
พิสูจน์ จากทฤษฎีบททวินามที่ x=1 และ y=1 เราจะเห็นว่า บทแทรกของทวินาม บทแทรกที่ 1 เมื่อ n เป็นจำนวนเต็มไม่ติดลบดังนั้น
พิสูจน์ จากทฤษฎีบททวินามที่ x=-1 และ y=1 เราจะเห็นว่า บทแทรกของทวินาม บทแทรกที่ 2 เมื่อ n เป็นจำนวนเต็มไม่ติดลบดังนั้น
บทแทรกของทวินาม บทแทรกที่ 3 เมื่อ n เป็นจำนวนเต็มไม่ติดลบดังนั้น พิสูจน์ จากทฤษฎีบททวินามที่ x=1 และ y=2 เราจะเห็นว่า
เอกลักษณ์ของปาสคาล (Pascal’s Identity) สัมประสิทธิ์ทวินามมีเอกลักษณ์ที่แตกต่างกันมากมาย ในที่นี้จะกล่าวถึงเอกลักษณ์ที่สำคัญที่สุดอย่างหนึ่งดังทฤษฎีบทต่อไปนี้ ทฤษฎีบทเอกลักษณ์ของปาสคาล ให้ nและ kเป็นจำนวนเต็มบวกโดยที่ nkดังนั้น จากเอกลักษณ์ของปาสคาล สามารถนำมาสร้างเป็นสามเหลี่ยมปาสคาล (Pascal’s Triangle) ได้
Pascal’s Triangle • 1 • 1 • 12 1 • 3 3 1 • 1 4 6 41 • 1 5 10 10 5 1 • ...