ขั้นตอนวิธี ของ ปัญหาการแต่งงานที่มีเสถียรภาพ

ข้อมูลนำเข้า และผลลัพธ์

  • ข้อมูลนำเข้า: เซตของผู้ชาย n คน และผู้หญิง n คน โดยที่แต่ละคนมิรายชื่อของบุคคลที่ตนหมายปอง
  • ผลลัพธ์ : เซตของคู่สมรสที่มีเสถียรภาพ ระหว่างฝ่ายชายและฝ่ายหญิง

รหัสเทียม

การทำงาน การจับคู่ที่มีเสถียรภาพ1:  เริ่มต้นให้ ฝ่ายชายทุกคน และฝ่ายหญิงทุกคนเป็นโสด2:  ขณะที่ มีฝ่ายชายที่ยังเป็นโสด 3:                เลือกฝ่ายชายที่ยังไม่ได้จับคู่เป็น M และฝ่ายหญิงคนแรกที่อยู่ในรายการของเขาเป็น W4:                ลบ W จากรายการของเขา เพื่อไม่ให้ถูกเลือกอีกเป็นครั้งที่สอง5:                ถ้า W หมั้นอยู่แล้ว ให้ทำ6:                           ถ้า W หมายปอง M มากกว่าคู่หมั้นชั่วคราวของตน P ให้ทำ7:                                       ตั้งค่าให้ W ถอนหมั้นกับ P และ P เป็นโสด8:                                       ตั้งค่าให้ M หมั้นชั่วคราวกับ W 9:                           มิเช่นนั้น ให้ทำ10:                                      M ยังคงเป็นโสดเช่นเดิม เนื่องจาก W พอใจที่จะอยู่กับ P มากกว่า11:                         จบการทำงานของเงื่อนไขรอง12:               มิเช่นนั้น ให้ทำ13:                         ตั้งค่าให้ W หมั้นชั่วคราวกับ M 14:               จบการทำงานของเงื่อนไขหลัก15:  จบการทำงานของวงวน16:  จบการทำงาน

ตัวอย่างการอธิบายขั้นตอนวิธี

กำหนดให้รายการที่รับมาเป็นดังนี้
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอซีดีบี
สองบีเอซีดี
สามบีดีซีเอ
สี่ซีเอบีดี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่งสี่สองสาม
บีสามหนี่งสองสี่
ซีสองสี่หนี่งสาม
ดีหนึ่งสี่สามสอง
รอบที่ 1 (รอบแรก)
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอ(เลือก)ซีดีบี
สองบี(เลือก)เอซีดี
สามบี(เลือก)ดีซีเอ
สี่ซี(เลือก)เอบีดี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่ง(หมั้น)สี่สองสาม
บีสาม(หมั้น)หนี่งสองสี่
ซีสองสี่(หมั้น)หนี่งสาม
ดีหนึ่งสี่สามสอง
ตารางแสดงความหมายปองรอบปัจจุบันคำอธิบาย
เอหนึ่ง---------
บีสองสาม------
ซีสี่---------
ดี------------
  • "หนึ่ง" ขอ "เอ" แต่งงาน และ"เอ"ก็ตอบรับ"หนึ่ง"ด้วยการหมั้นชั่วคราว
  • "สอง" ขอ "บี" แต่งงาน แต่ "บี"ปฏิเสธ"สอง"เนื่องจาก"สาม"ก็ขอ"บี"แต่งงานด้วยเช่นกัน และ"บี"หมายปอง"สาม" มากกว่า
  • "สี่"ขอ"ซี"แต่งงาน และ"ซี"ก็ตอบรับ"สี่"ด้วยการหมั้นชั่วคราว
  • "ดี"ยังไม่มีใครหมายปองในรอบที่ 1
รอบที่ 2
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอซีดีบี
สองบีเอ(เลือก)ซีดี
สามบีดีซีเอ
สี่ซีเอบีดี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่ง(หมั้น)สี่สอง(ปฏิเสธ)สาม
บีสาม(หมั้น)หนี่งสองสี่
ซีสองสี่(หมั้น)หนี่งสาม
ดีหนึ่งสี่สามสอง
ตารางแสดงความหมายปองรอบปัจจุบันคำอธิบาย
เอสอง---------
บี------------
ซี------------
ดี------------
  • "สอง" เป็นบุคคลเดียวที่ยังไม่มีคู่หมั้นชั่วคราว
  • "สอง" ทำการเลือกคู่ในรอบที่ 2 โดยเลือก "เอ"
  • "เอ" ปฏิเสธการขอของ "สอง" เนื่องจากมีคู่หมั้นชั่วคราวอยู่แล้วคือ "หนึ่ง" และ"เอ"ไม่ได้หมายปอง"สอง" ไปมากกว่า "หนึ่ง"
รอบที่ 3
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอซีดีบี
สองบีเอซี(เลือก)ดี
สามบีดีซีเอ
สี่ซีเอบีดี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่ง(หมั้น)สี่สองสาม
บีสาม(หมั้น)หนี่งสองสี่
ซีสอง(หมั้น)สี่(ถอนหมั้น)หนี่งสาม
ดีหนึ่งสี่สามสอง
ตารางแสดงความหมายปองรอบปัจจุบันคำอธิบาย
เอ------------
บี------------
ซีสอง---------
ดี------------
  • "สอง" เป็นบุคคลเดียวที่ยังไม่มีคู่หมั้นชั่วคราว
  • "สอง" ทำการเลือกคู่ในรอบที่ 3 โดยเลือก "ซี"
  • "ซี"ถอนหมั้นกับสี่ และตอบรับ"สอง"ด้วยการหมั้นชั่วคราว
  • "สี่" ต้องทำการเลือกคู่ใหม่
รอบที่ 4
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอซีดีบี
สองบีเอซีดี
สามบีดีซีเอ
สี่ซีเอ(เลือก)บีดี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่ง(หมั้น)สี่(ปฏิเสธ)สองสาม
บีสาม(หมั้น)หนี่งสองสี่
ซีสอง(หมั้น)สี่หนี่งสาม
ดีหนึ่งสี่สามสอง
ตารางแสดงความหมายปองรอบปัจจุบันคำอธิบาย
เอสี่---------
บี------------
ซี------------
ดี------------
  • "สี่" เป็นบุคคลเดียวที่ยังไม่มีคู่หมั้นชั่วคราว
  • "สี่" ทำการเลือกคู่ในรอบที่ 4 โดยเลือก "เอ"
  • "เอ" ปฏิเสธการขอของ"สี่"เนื่องจากมีคู่หมั้นชั่วคราวอยู่แล้วคือ"หนึ่ง" และเอไม่ได้หมายปอง"สี่" ไปมากกว่า "หนึ่ง"
รอบที่ 5
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอซีดีบี
สองบีเอซีดี
สามบีดีซีเอ
สี่ซีเอดีบี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่ง(หมั้น)สี่สองสาม
บีสาม(หมั้น)หนี่งสองสี่
ซีสอง(หมั้น)สี่หนี่งสาม
ดีหนึ่งสี่(หมั้น)สามสอง
ตารางแสดงความหมายปองรอบปัจจุบันคำอธิบาย
เอ------------
บี------------
ซี------------
ดีสี่---------
  • "สี่" เป็นบุคคลเดียวที่ยังไม่มีคู่หมั้นชั่วคราว
  • "สี่" ทำการเลือกคู่ในรอบที่ 5 โดยเลือก "ดี"
  • "ดี" ตอบรับการขอของ "สี่" ด้วยการหมั้นชั่วคราว
เสร็จสิ้นการเลือกคู่สมรส
รายชื่อที่หมายปองของฝ่ายชายรายชื่อที่หมายปองของฝ่ายหญิง
ชายหญิงอันดับ1หญิงอันดับ2หญิงอันดับ3หญิงอันดับ4
หนึ่งเอซีดีบี
สองบีเอซีดี
สามบีดีซีเอ
สี่ซีเอดีบี
หญิงชายอันดับ1ชายอันดับ2ชายอันดับ3ชายอันดับ4
เอหนึ่ง(หมั้น)สี่สองสาม
บีสาม(หมั้น)หนี่งสองสี่
ซีสอง(หมั้น)สี่หนี่งสาม
ดีหนึ่งสี่(หมั้น)สามสอง

จากตารางจะพบว่าไม่มีสมาชิกของฝ่ายชายและฝ่ายหญิงใด ที่ยังไม่มีคู่หมั้น จึงได้คำตอบของปัญหาการแต่งงานที่มีเสถียรภาพ ดังนี้

ด้วยขั้นตอนวิธีนี้ จะสามารถรับประกันได้ว่า

  1. ทุกคนจะได้ทำการสมรส เนื่องจาก ฝ่ายชายแต่ละคนจะมีรายชื่อของฝ่ายหญิงที่ตนหมายปองครบทุกคน ดังนั้นจะไม่มีฝ่ายหญิงคนใดเลยที่ไม่ถูกเลือก โดยฝ่ายชาย จึงเป็นไปไม่ได้ที่จะทั้งฝ่ายหญิงและฝ่ายชายเป็นโสดพร้อมกันในที่สุด
  2. การสมรสมีเสถียรภาพ เนื่องจากการที่ฝ่ายหญิงมีสิทธิ์ที่จะเลือกฝ่ายชายที่ตนเองหมายปองด้วยเช่นกัน สมมติเช่น ถ้าหากเกิดสถานการณ์ที่ฝ่ายหญิงมีคู่หมั้นชั่วคราวอยู่แล้ว แต่ว่ามีฝ่ายชายที่หมายปองตนและตนนั้นก็พึงพอใจฝ่ายชายคนนั้นมากกว่าคู่หมั้นชั่วคราวของตน ฝ่ายหญิงมีสิทธิ์ที่จะถอนหมั้น และทำการหมั้นกับฝ่ายชายคนใหม่ที่ตนพึงพอใจมากกว่าได้ ดังนั้นจึงรับประกันได้ว่าฝ่ายหญิงจะได้แต่งงานกับฝ่ายชายที่ตนพึงพอใจมากที่สุด จึงทำให้การสมรสมีเสภียรภาพ

ใกล้เคียง

ปัญหา ปัญหาสิ่งแวดล้อมในประเทศไทย ปัญหาวิถีสั้นสุด ปัญหาราชวงศ์ ปัญหาปี ค.ศ. 2000 ปัญหาการแต่งงานที่มีเสถียรภาพ ปัญหาสิ่งแวดล้อมในประเทศอัฟกานิสถาน ปัญหาสกันทอร์ป ปัญหาวันเกิด ปัญหารางวัลมิลเลนเนียม

แหล่งที่มา

WikiPedia: ปัญหาการแต่งงานที่มีเสถียรภาพ http://sephlietz.com/gale-shapley/ http://www.cs.columbia.edu/~evs/intro/stable/Stabl... http://www.cs.columbia.edu/~evs/intro/stable/Stabl... http://www1.cs.columbia.edu/~evs/intro/stable/writ... http://www.columbia.edu/~js1353/pubs/tst-ms01.pdf http://www.academic.marist.edu/~jzbv/algorithms/Th... http://www.csee.wvu.edu/~ksmani/courses/fa01/rando... http://www.jstor.org/pss/3008420 http://kevindriscoll.org/wiki/Algorithm_design http://rosettacode.org/wiki/Stable_marriage_proble...