เมื่อเดือนมกราคมผมได้อ่านบทความ The stable marriage problem ที่เขียนโดย Ajeya Cotra บน Substack
เป็นบทความที่มีความเนิร์ดพอสมควร แต่ยิ่งเวลาผ่านไปก็ยิ่งเห็นว่าคอนเซ็ปต์ในบทความนี้น่าจะมีประโยชน์ในหลายวาระ เลยขอนำมาเล่าต่อตามความเข้าใจของผม และใช้ชื่อตัวละครที่เหมาะกับคนไทยนะครับ
วิชาหนึ่งที่ Ajeya ผู้เขียน ชอบมากตอนเรียนที่ UC Berkeley คือวิชา CS 70 Discrete Mathematics and Probability Theory ที่สอนโดยอาจารย์ Anant Sahai
และหัวข้อที่สนุกเป็นพิเศษคือ The Stable Marriage Problem หรือ “การสมรสที่มั่นคง” โดยมีสถานการณ์ดังนี้:
- มีผู้ชายและผู้หญิงจำนวนเท่ากัน
- ผู้ชายมีการเรียงลำดับผู้หญิงที่เขาชอบจากมากสุดไปน้อยสุด และผู้หญิงก็เรียงลำดับผู้ชายที่เธอชอบจากมากสุดไปน้อยสุดเช่นกัน
- โจทย์คือต้องจับคู่ให้ชายและหญิงได้แต่งงานกัน โดยเมื่อได้คู่กันครบเรียบร้อยแล้วจะไม่มีการเลิกกันหรือหย่าร้างกัน เพราะแต่ละคนได้คู่ที่ดีที่สุดเท่าที่ตัวเองจะหาได้แล้ว
ยกตัวอย่างให้เห็นภาพ
สมมติว่ามีผู้ชายสามคน อาร์ท แบงค์ แชมป์ (Art, Bank, Champ)
และมีผู้หญิงสามคน ดิว อีฟ เฟิร์น (Dew, Eve, Fern)
และสามคู่นี้กำลังคบกันอยู่ Art-Dew, Bank-Eve, Champ-Fern
แต่ถ้าสมมติว่าอาร์ทชอบอีฟมากกว่าดิว และอีฟก็ชอบอาร์ทมากกว่าแบงค์ ดังนั้นทั้งอาร์ทและอีฟจะเลิกกับแฟนของตัวเพื่อมาคบกัน แบบนี้คือสถานการณ์ที่ไม่มั่นคงหรือ unstable marriage
แต่ถ้าสมมติว่าอาร์ทชอบอีฟมากกว่าดิว (เหมือนเดิม) แต่อีฟไม่ได้ชอบอาร์ทมากกว่าแบงค์ แม้อาร์ทจะอยากเลิกกับดิวเพื่อไปคบกับอีฟ แต่อีฟไม่เล่นด้วย ดังนั้นต่างฝ่ายต่างจะคบกับคู่ของตัวเองต่อไป นี่คือสถานการณ์การคบกันที่มั่นคง – stable marriage
หนึ่งในสิ่งที่วิชา Discrete Mathematics and Probability Theory สอนก็คือ ไม่ว่าจะมีหญิงและชายกี่คน และแต่ละคนจะเรียงความชอบที่มีต่อเพศตรงข้ามอย่างไร เราสามารถเขียนอัลกอริธึมเพื่อจับคู่ให้ทุกคนและสร้าง stable marriage ได้เสมอ ทุกคนอยู่ด้วยกันอย่างผาสุก ไม่มีการเลิกกันเพื่อเปลี่ยนคู่ไปเรื่อยๆ
ลองจินตนาการตามนี้
อาร์ทชอบดิวที่สุด ชอบอีฟรองลงมา และชอบเฟิร์นน้อยที่สุด จะเขียนออกมาเป็นสูตรได้ว่า
Art: Dew > Eve > Fern
และสมมติว่าแบงค์ชอบดิวที่สุด ชอบเฟิร์นรองลงมา และชอบอีฟน้อยที่สุด ก็จะเขียนได้ว่า
Bank: Dew > Fern > Eve
เราก็จะสามารถเขียนการจัดลำดับของทุกคนได้ตามนี้ (คนที่เหลือผมก็สุ่มเอาเหมือนสองคนที่ผ่านมา)
Art: Dew > Eve > Fern
Bank: Dew > Fern > Eve
Champ: Fern > Dew > Eve
Dew: Champ > Bank > Art
Eve: Bank > Champ > Art
Fern: Bank > Champ > Art
หนึ่งในอัลกอริธึมที่จะช่วยให้เกิดการจับคู่จนได้ stable marriage มีชื่อว่า the Gale-Shapley algorithm โดยมีหลักการดังนี้
- ให้เริ่มต้นจากทุกคนโสด
- ให้ฝ่ายชายจีบผู้หญิงที่ตัวเองชอบมากที่สุด และถ้าผู้หญิงปฏิเสธ วันต่อมาค่อยจีบผู้หญิงที่ตัวเองชอบรองลงมา
- ผู้หญิงจะเลือกคบกับผู้ชายที่ชอบที่สุดที่มาจีบในวันนั้นๆ
ลองมาไล่ตามอัลกอริธึมนี้กัน ขอนำการเรียงลำดับมาแปะไว้ตรงนี้อีกที
Art: Dew > Eve > Fern
Bank: Dew > Fern > Eve
Champ: Fern > Dew > Eve
Dew: Champ > Bank > Art
Eve: Bank > Champ > Art
Fern: Bank > Champ > Art
วันที่ 1 (1st iteration)
อาร์ทกับแบงค์แข่งกันจีบดิว ดิวเลือกคบกับแบงค์ เพราะดิวชอบแบงค์มากกว่าอาร์ท (แต่จริงๆ แล้วดิวชอบแชมป์ที่สุด เพียงแต่แชมป์ไม่ได้มาจีบ)
แชมป์ขอคบกับเฟิร์นซึ่งเป็นคนที่แชมป์ชอบที่สุด จริงๆ เฟิร์นชอบแบงค์มากกว่า แต่แบงค์ไม่ได้มาจีบ เฟิร์นเลยเลือกคบกับแชมป์
อีฟไม่ได้มีใครมาจีบเพราะไม่ได้เป็นช้อยส์แรกของใครเลย
จบวันเราได้สองคู่ คือ Bank-Dew และ Champ-Fern ส่วน Art และ Eve ยังโสด
วันที่ 2 (2nd iteration)
อาร์ทที่ยังโสดขอคบกับอีฟ แม้อีฟจะชอบอาร์ทน้อยที่สุดในบรรดาผู้ชายทั้งสามคน แต่อีฟก็ตอบตกลง เพราะทั้งแบงค์กับแชมป์มีคู่ไปแล้ว
ดังนั้นเราจะจบวันที่สองด้วยสามคู่นี้
Art-Eve
Bank-Dew
Champ-Fern
ซึ่งเป็นคู่ที่ stable เพราะว่าแม้อาร์ทจะชอบดิวมากกว่าอีฟ แต่ดิวไม่สนใจเพราะชอบแบงค์มากกว่าอาร์ท
ส่วนอีฟเองแม้จะชอบอาร์ทน้อยที่สุด แต่แบงค์กับแชมป์ก็ชอบอีฟน้อยกว่าคู่ของตัวเองในปัจจุบัน
แบงค์นั้นชอบดิวที่สุดอยู่แล้วจึงไม่คิดนอกใจ ส่วนดิวถึงจะชอบแชมป์มากกว่าแบงค์ แต่แชมป์ไม่สนใจเพราะแชมป์มีเฟิร์นเป็นช้อยส์แรกอยู่แล้ว
เฟิร์นนั้นแม้จะชอบแบงค์มากกว่าแชมป์ แต่แบงค์เองก็ไม่สนใจเฟิร์นเช่นกันเพราะมีดิวเป็นที่หนึ่งในดวงใจ
ดังนั้นสามคู่นี้จึงเป็น stable marriage ไม่มีการเปลี่ยนคู่กันเกิดขึ้น
คราวนี้ลองมาดูความพึงพอใจกันบ้าง
สมมติว่าเราได้เป็นแฟนกับคนที่เราชอบที่สุด ความพึงพอใจ 3 คะแนน
ถ้าได้เป็นแฟนกับคนที่เราชอบเป็นอันดับสอง ความพึงพอใจ 2 คะแนน
และถ้าได้เป็นแฟนกับคนที่เราชอบเป็นอันดับสาม ความพึงพอใจ 1 คะแนน
เขียนออกมาได้ว่า
Art: Dew (3) > Eve (2) > Fern (1)
Bank: Dew (3) > Fern (2) > Eve (1)
Champ: Fern (3) > Dew (2) > Eve (1)
Dew: Champ (3) > Bank (2)> Art (1)
Eve: Bank (3) > Champ (2) > Art (1)
Fern: Bank (3) > Champ (2) > Art (1)
และสามคู่ที่เป็น stable marriage ก็คือ
Art-Eve
Bank-Dew
Champ-Fern
คะแนนความพึงพอใจจะเป็นดังนี้
อาร์ทได้เป็นแฟนกับอีฟ คะแนนความพึงพอใจ 2
แบงค์ได้เป็นแฟนกับดิว คะแนนความพึงพอใจ 3
แชมป์ได้เป็นแฟนกับเฟิร์น คะแนนความพึงพอใจ 3
รวมคะแนนความพึงพอใจของฝ่ายชายคือ 8 คะแนน
ดิวได้เป็นแฟนกับแบงค์ คะแนนความพึงพอใจ 2
อีฟได้เป็นแฟนกับอาร์ท คะแนนความพึงพอใจ 1
เฟิร์นได้เป็นแฟนกับแชมป์ คะแนนความพึงพอใจ 2
รวมคะแนนความพึงพอใจของฝ่ายหญิงคือ 5 คะแนน
จะเห็นว่าฝ่ายชายได้คะแนนความพึงพอใจสูงกว่าฝ่ายหญิง
อัลกอริธึม Gale-Shapley ที่ให้ฝ่ายชาย active จีบคนที่ชอบที่สุดก่อน และให้ฝ่ายหญิง passive เลือกคบกับคนที่ชอบที่สุดที่เข้าหา จะนำไปสู่ stable marriage ที่ฝ่ายชายจะได้คู่ที่ดีที่สุด (เท่าที่ตัวเองจะหาได้) เสมอ ส่วนฝ่ายหญิงก็มักจะไม่ได้ชอยส์ที่ดีที่สุด แม้ตัวเองจะเป็นช้อยส์แรกของผู้ชายหลายคนก็ตาม
นี่คือตัวอย่าง 3×3 หรือชายสาม หญิงสาม แต่ในชีวิตจริงเราไม่ได้มีตัวเลือกแค่ 3 คน เราพอจะจินตนาการได้ว่าตัวเลือก (และการจัดลำดับ) อาจมีหลายสิบคนหรือแม้กระทั่งหลายร้อยคน
ดังนั้น “คะแนนความพึงพอใจโดยรวม” ของฝ่ายชายก็จะยิ่งถ่างออกจากฝ่ายหญิง ถ้าสังคมนั้นเป็นสังคมที่ฝ่ายชายจีบผู้หญิงที่ตัวเองชอบที่สุดก่อน ส่วนฝ่ายหญิงก็เฝ้าแต่รอให้มีคนดีๆ เข้าหา
แน่นอนว่าชีวิตจริงมันซับซ้อนกว่านี้ อาจมีคนขออยู่เป็นโสดดีกว่าต้องอยู่กับคนที่ไม่ชอบ อาจมีคนที่ชอบเพศเดียวกันมากกว่าเพศตรงข้าม
แต่ผมชอบคอนเซ็ปต์นี้เพราะเมื่อเรามองสังคมด้วยเลนส์ของคณิตศาสตร์ มันก็จะช่วยให้เราเห็นภาพ (แม้จะไม่สมบูรณ์แบบ) ว่า social norms นำไปสู่ผลลัพธ์ในภาพใหญ่อย่างไรบ้าง
และเรื่องนี้ไม่ได้มีประโยชน์แค่การหาคู่ แต่ยังใช้ได้กับหลายๆ สถานการณ์ในชีวิต
ว่าถ้าเราเป็น “ฝ่ายรับ” อย่างเดียวในเรื่องความสัมพันธ์ การทำงาน การทำธุรกิจ และการเรียนรู้ เราก็อาจกำลังเสียโอกาสที่ดีที่สุดไป ซึ่งไม่ได้เกิดจากโชคชะตาหรือฟ้ากลั่นแกล้ง แต่เกิดจากความจริงทางคณิตศาสตร์
เราจึงควรเล่นให้เป็นทั้ง “รุก” และ “รับ” ในเกมสำคัญที่เรียกว่า “ชีวิต” ครับ
