วงแหวนเว็บ

neizod's speculation

insufficient data for meaningful answer

ปัญหาการจ้างเลขาและค่า 1/e

Saturday, November 7, 2020, 09:18 AM

ลองจินตนาการว่าเรากำลังจะเปิดบริษัทแต่ยังขาดพนักงานเลขา ซึ่งตำแหน่งดังกล่าวถือว่าเป็นตำแหน่งฮอตฮิตที่บริษัทไหนๆ ก็ต่างแย่งชิงตัว การเรียกผู้สมัครมาสัมภาษณ์งานจึงจำเป็นต้องตอบรับทันทีเดี๋ยวนั้น มิเช่นนั้นแล้วก็รับประกันได้เลยว่าผู้สมัครจะถูกบริษัทอื่นแย่งตัวไปในทันทีที่เขาก้าวเท้าออกจากออฟฟิศ

สมมติว่าเราสามารถเรียกผู้สมัครมาสัมภาษณ์ได้มากที่สุด n คน โดยถือว่าก่อนสัมภาษณ์เราไม่รู้อะไรเกี่ยวกับผู้สมัครเลย และเมื่อสัมภาษณ์เสร็จเราก็จะบอกได้แค่ว่าผู้สมัครคนนี้ดีกว่าหรือแย่กว่าผู้สมัครคนก่อนๆ ที่เคยสัมภาษณ์ เราจะมีเทคนิคอย่างไรในการเฟ้นหาผู้สมัครเพียงหนึ่งคนที่ดีที่สุด?

มองเผินๆ นี่อาจจะดูเหมือนปัญหาที่ไม่น่าเป็นไปได้ ในเมื่อเราไม่รู้ว่าใครดีกว่าใครจนกว่าจะได้สัมภาษณ์ แต่พอสัมภาษณ์เสร็จก็ต้องตอบรับว่าจะให้ร่วมทางกับบริษัทเราหรือไม่ซะแล้ว หากเราถอดใจไม่วางแผนใดๆ และเลือกตอบรับผู้สมัครแบบสุ่ม โอกาสที่จะได้ผู้สมัครที่ดีที่สุดก็จะมีเพียงแค่ 1/n เท่านั้น

แต่เนื่องจากเราสามารถเปรียบเทียบผู้สมัครได้ หากเราลองสัมภาษณ์ผู้สมัครคนแรกดูก่อน (และต้องแข็งใจบอกปฏิเสธไป) เพื่อเป็นบรรทัดฐานว่าเราอยากได้ผู้สมัครประมาณไหน เมื่อสัมภาษณ์ต่อไปและพบว่าผู้สมัครคนที่สองดีกว่าคนแรก อย่างน้อยโอกาสที่เขาจะเป็นผู้สมัครที่ดีที่สุดก็มีมากกว่าการสุ่มแน่ๆ

หากเราแบ่งการสัมภาษณ์ออกเป็น 2 ช่วง โดยช่วงแรกสัมภาษณ์ผู้สมัครเป็นสัดส่วน 0<r1 ต่อผู้สมัครทั้งหมด เพื่อหาบรรทัดฐานของผู้สมัครที่เราต้องการ แล้วในช่วงหลังจึงสัมภาษณ์ผู้สมัครที่เหลือ เมื่อใดที่เจอผู้สมัครที่ดีกว่าทุกคนที่เคยเจอมา เราจะตอบรับให้ผู้สมัครคนนี้มาร่วมงานทันที โอกาสที่ผู้สมัครคนนี้จะเป็นผู้สมัครที่ดีที่สุดก็คือ

P(pick 1st)=k=1nP(baseline is kth)P(saw kth pick 1st)

โดยที่

  • 1st คือผู้สมัครที่ดีที่สุด (อันดับหนึ่ง) nth คือผู้สมัครที่แย่ที่สุด และไม่มีใครอยู่อันดับเดียวกัน
  • pick 1st แทนเหตุการณ์ที่ได้ผู้สมัครที่ดีที่สุดจากกระบวนการทั้งหมด
  • baseline is kth แทนเหตุการณ์ที่ผู้สมัครอันดับที่ kth เป็นบรรทัดฐานในการสัมภาษณ์ช่วงแรก
  • saw kth pick 1st แทนเหตุการณ์ที่ใช้ kth เป็นฐานแล้วได้ผู้สมัครที่ดีที่สุดในการสัมภาษณ์ช่วงหลัง

ซึ่งเราจะเห็นว่า

  • saw 1th pick 1st เป็นไปไม่ได้
  • baseline is kth หมายความว่า ในการสัมภาษณ์ช่วงแรก นอกจากจะเห็นผู้สมัครอันดับที่ kth แล้ว จะต้องไม่เห็นผู้สมัครตั้งแต่อันดับ 1st ถึง (k1)th ด้วย

หาก n มีขนาดเล็กเราจะต้องคำนวณแตกกรณียิบย่อยมากมาย ดังนั้นจะพิจารณาเฉพาะเมื่อ n มีขนาดใหญ่ ที่เราจะเห็นว่าพจน์หลังๆ มีค่าลดลงอย่างรวดเร็ว ทำให้เราสามารถประมาณด้วยอนุกรมอนันต์ได้ ซึ่งก็คือ

P(pick 1st)=k=1nP(baseline is kth)P(saw kth pick 1st)r0+r(1r)1+r(1r)212+r(1r)313+=rk=1(1r)kk

ให้ x=(1r) ปัญหาย่อยของเราจะแปลงไปเป็นการหาผลลัพธ์ของอนุกรมฮาร์โมนิค ที่แต่ละพจน์มีผลคูณของเลขยกกำลังติดมาด้วย ดังนี้

k=1xkk=x+x22+x33+x44+

ซึ่งเราสามารถใช้อนุกรมเทย์เลอร์มาช่วยแก้ได้ โดยเทคนิคคือเลือกใช้ฟังก์ชันที่อนุพันธ์อันดับ k มีพจน์ (k1)! โผล่เข้ามา เพื่อที่เราจะได้เอาไปตัดกับ 1/k! จากการกระจายเทย์เลอร์ จนได้ผลลัพธ์เป็นอนุกรมในรูปฮาร์โมนิคอย่างที่เราต้องการ ซึ่งฟังก์ชันที่มีสมบัติดังกล่าวก็คือฟังก์ชันตระกูล log นั่นเอง

f(x)logxlog(1x)f(x)1x11xf(x)1x21(1x)2f(3)(x)2!x32!(1x)3f(4)(x)3!x43!(1x)4f(k)(x)(1)k+1(k1)!xk(k1)!(1x)k

เลือกกระจาย log(1x) รอบจุด 0 จะได้ว่า

log(1x)=k=1f(k)(0)k!(x0)k=k=1(k1)!(10k)k!xk=k=1xkk

ดังนั้น

P(pick 1st)rlogr

แล้วใช้เทคนิคอนุพันธ์จากแคลคูลัสเพื่อหาค่า r ที่เหมาะสม

0=ddr(r)logr=(r)ddrlogr+logrddr(r)=1logrr=1e

ก็จะได้คำตอบว่า สัดส่วนที่เหมาะสมที่สุดที่ควรใช้หาบรรทัดฐานในช่วงแรก คือ 1/e36.8% นั่นเอง นอกจากนี้เมื่อย้อนกลับไปคำนวณความน่าจะเป็น ก็จะเห็นว่า P(pick 1st)1/e อีกด้วย!

และแนวทางการวิเคราะห์ข้างต้นก็สามารถนำไปใช้หาความน่าจะเป็นที่จะได้ผู้สมัครในอันดับอื่นๆ ได้เช่นกัน ดังตัวอย่างอันดับแรกๆ ดังนี้

P(pick 2nd)P(pick 1st)1e(11e)13.6%P(pick 3rd)P(pick 2nd)12e(11e)26.2%P(pick 4th)P(pick 3rd)13e(11e)33.1%P(pick 5th)P(pick 4th)14e(11e)41.6%

จะเห็นว่าด้วยวิธีนี้โอกาสที่จะได้ผู้สมัครที่ดีที่สุดสองอันดับแรกก็กินไปแล้วถึงครึ่งนึง 🤯

neizod

author