Door-keeper’s Algorithm

หลายๆ คนที่ไม่ได้เรียนด้านcomputerอาจจะงงกับชื่อหัวข้อ ก็จะอธิบายคร่าวๆ ละกัน คือ ทางด้านเนี้ย จะมีปัญหาและวิธีแก้ปัญหาต่างๆ มากมาย เพราะเราต้องสั่งให้คอมฯทำงานโดยต้องกำหนดวิธีแก้ปัญหาให้แกมัน เพราะมันไม่สามารถแก้ปัญหาด้วยอารมณ์ได้(แอบเหน็บมนุษย์) ก็จะมีชื่อเป็นชื่อคนคิดปัญหาหรือวิธีแก้บ้าง และก็จะมีชื่ออีกประเภทนึง เป็นชื่อของmodelที่เค้าใช้อธิยายปัญหา เช่น Travelling Salesman Problem, Banker’s Algorithm, Dinning-Philosophers Problem ประมาณนี้
 
หลังจากปูพื้นกันแล้ว ก็จะมาดู Algorithm ติ๊งต๊องๆ นี้กัน Door-keeper’s Algorithm
เรื่องมันก็มีอยู่ว่า มีเส้นทางนึงที่แท็ปต้องผ่านเป็นประจำแทบจะทุกวัน คือ ทางจากคณะไปกลับหอพัก ซึ่งจะต้องผ่านอุโมงค์ใต้ดิน ซึ่งเชื่อมต่อจุฬาฯสองฝาก ฟากนึงตรงประตูระหว่างคณะนิเทดและครุฯ ส่วนอีกฟากนึงเป็นคณะวิดยา อุโมงค์ใต้ดินนี้วันปกติจะปิดประมาณทุ่มนึง เวลาเปิดไม่รู้เพราะตื่นไม่ทันอยู่แล้ว และวันอาทิตย์ไม่เปิด
 
บางวันที่ฟ้ามืดๆ แล้ว เวลาแท็ปเดินกลับจากคณะ ก็ต้องคอยลุ้นว่ามันปิดหรือยัง(ไม่อยากเดินข้ามสะพานลอยเพราะมันสูงกว่า เหนื่อย แก่แล้ว) จนวันนึงก็ฉุกคิดขึ้นมาได้อย่างนึงว่า เอ อุโมงค์เนี้ย เค้าต้องใช้คนปิดประตูกี่คนหว่า เพราะถ้าคนปิดประตูคนเดียวเนี้ย ถ้าปิดฝั่งนึงแล้ว ระหว่างที่เดินไปปิดอีกฝั้งนึงเนี้ย ถ้ามีคนเดินสวนเข้ามาหละ เค้าก็ออกไม่ได้แล้วก็ต้องเดินย้อนอะดิ แต่ถ้ามาสองคนก็เปลืองแรงงานคนไปม้าง สำหรับการปิดประตูอุโมงค์เนี้ย ใครจะบ้าจ้างคนงานสองคนมาปิดประตูอุโมงค์กันเล่า แต่เท่าที่ตอนนั้นพอคิดได้ก็ประมาณว่าคงใช้สองคนแหละ ฝั่งนึงมีคนเฝ้าไว้ แล้วอีกคนไปปิดอีกฝั่งแล้วเดินย้อนกลับมา ก็จำไม่ได้แล้วนะว่าคิดเรื่องนี้ขึ้นมาตั้งแต่เมื่อไหร่
 
แล้วคุณหละคิดว่าเค้ามาปิดกัน 1 หรือ 2 คน ยังไง
 
แต่แล้ววันนี้แท็ปก็ได้คำตอบที่รู้สึกว่าสมเหตุสมผลตอบปัญหาตัวเองได้ละ (ซึ่งก็ไม่แน่ว่าเค้าจะใช้จริงหรือเปล่า)
ความคิดมันปิ๊งขึ้นมาตอนที่แท็ปออกประตูนิติเพื่อกลับหอ โดยวันเสาร์-อาทิตย์เนี้ยประตูจะปิดเร็วกว่าปกติ (3 ทุ่มมั้ง) แท็ปเดินมาตอนเกือบสามทุ่มประตูปิดแล้ว แต่เค้ายังไม่ล๊อก ก็เลยเดินไปเปิดแล้วก็ออกมา ก็เลยปิ๊งเลย
 
วิธีการปิดประตูอุโมงค์ที่กล่าวมาก็เพียงแค่ เค้าเดินไปปิดประตูฝั่งนึงก่อน แต่ยังไม่ต้องล๊อก แล้วก็เดินลอดอุโมงค์ไปปิดประตูอีกฝั่งโดยล๊อกให้สนิท แล้วก็ค่อยกลับมาล๊อกอีกข้าง ก็เป็นอันเสร็จพิธี
 
เพราะตามปกติแล้ว ถ้าเราเห็นประตูอุโมงค์มันปิดถึงแม้จะไม่ล๊อกก็ตาม ก็คงไม่เปิดแล้วเดินเข้าไปหรอก และก็ไม่มีปัญหาสำหรับคนที่อยู่ใต้อุโมงค์ที่กำลังจะเดินออก เพราะยังไงเค้าก็คงพยายามเปิดออกไปก่อน ก่อนที่จะเดินกลับหลังถ้ามันล๊อกจริงๆ สำหรับใครที่ผิดมนุษย์เค้าปิดไว้แล้วยังเดินเข้ามาก็ช่วยไม่ได้ละ ก็เดินย้อนกลับไปละกัน 555
 
จบละๆ สำหรับการอธิบายความคิดติ๊งต๊องของแท็ปในครั้งนี้ วันหลังมีอะไรจะมานำเสนอใหม่ สำหรับผู้ที่ติดตามอ่านมาได้ถึงบรรทัดนี้ แสดงว่าคุณมีความไร้สาระอยู่ในตัวพอสมควร ขอบคุณครับ สวัสดีครับ

Advertisements

6 thoughts on “Door-keeper’s Algorithm

  1. Rutz

    หลักการเรียนรู้ที่ดี เมื่อเรียนรู้แล้วเราควรจะสงสัยต่อ…
     
    แล้วตอนเปิดเขาทำยังไงนะ…?? 

    Reply
  2. -Natdanai-

    มีการคิดอะไรเป็นสาระจริงๆ
     
    ขอเดา คิดว่า เค้าคงปิดฝั่งนึงก่อนแต่ปิดข้างเดียว แล้วเดินมาปิดทั้งสองข้างของฝั่งตรงข้าม
     
    แล้วเดินย้อนกลับไปปิดอีกอันที่เหลือ กลับมาอยู่ที่จุดเดิมก่อนเดินลงอุโมง
     
    ยิ่งคิดยิ่งงง ทำไงดีหว่า 

    Reply
  3. Nuttanart

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

    Reply
  4. Rutz

     
    ถ้าจะทำให้อัลกอริทึมในการปิดใช้ได้ และส่งผลให้อัลกอริทึมในการเปิดใช้ได้ด้วยเราขอ Claim ก่อนเลยว่า สามารถ Lock/Unlock ประตูจากทางไหนก็ได้..
    มันชักจะมีสาระมากขึ้นทุกทีแล้วสินะ… 

    Reply
  5. Natthawut

    ถ้าเป็นเราจะปิดก่อนด้านนึง แล้วระหว่างเดินในอุโมงค์ไปออกอีกข้าง ถ้าเจอคนสวนมาก้อ ..
     
    ไล่มันกลับไปสิครับ!
     
    555+ 

    Reply
  6. Nuttanart

    เออเนอะๆ แท็ปลืมคิดไป แท็ปคิดแต่ว่าต้องเข้าอุโมงค์ทางด้านเดิม แล้วกลับด้านเดิม แต่ของแก๊นคือปิดด้านนึงแล้วเดินไปออกอีกด้านนึง ก็จบ ง่ายดี 

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s