อัลกอริทึม: การค้นหาแบบไบนารีเมื่อค่าไม่แน่นอน


11

ฉันต้องการอัลกอริทึมเพื่อทำการค้นหาแบบไบนารีเมื่อการทดสอบในแต่ละขั้นตอนอาจให้ผลที่ผิด

พื้นหลัง: ฉันต้องการให้นักเรียนอยู่ในระดับที่ยากที่สุด 12 ระดับ วิธีการในปัจจุบันเป็นสัตว์เดรัจฉานและถามคำถามแบบเลือกตอบ 60 ข้อที่มี 4 ข้อเพื่อเพิ่มความยากหยุดหลังจากผิดสามข้อและทำให้นักเรียนอยู่ในระดับ: floor((score - 1) / 5) + 1อย่างน้อย 1

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

ค่าเฉลี่ยของการจัดตำแหน่งนั้นอยู่ที่ระดับ 2 ดังนั้นคะแนนนักเรียน + 50 +% <11 (เช่นคำตอบ <14 คำถาม) โดยทั่วไปอาจเป็นเพราะพวกเขารู้สึกเบื่อและหยุดคำถามอย่างจริงจัง (เป็นเด็ก)

โซลูชันที่เสนอ: ใช้การทดสอบเป็นการค้นหาแบบไบนารี่มากกว่าสิบสองรายการเริ่มต้นด้วยคำถามที่ระดับความยากลำบาก 6/7 และดำเนินการตามว่าพวกเขาได้รับคำถามถูกหรือผิด ในทางทฤษฎีสิ่งนี้สามารถค้นหาระดับความยากที่เหมาะสมสำหรับคำถาม 3-4 ข้อ

ปัญหา: ในขณะที่คุณอาจเดาได้จากการทดสอบที่มีอยู่สิ้นสุดเพียงหลังจากสามคำตอบที่ผิดและใช้ 60 คำถามเพื่อเลือกระหว่าง 12 ระดับเราต้องการให้ค่าเผื่อสำหรับนักเรียน fluking คำตอบที่ถูกต้อง (ซึ่งพวกเขาควรทำ 25% ของเวลา) หรือโดยไม่ตั้งใจ ให้คำตอบที่ไม่ถูกต้อง (นิ้วอ้วนคำถามผิด ๆ ฯลฯ ) สิ่งนี้มีความสำคัญยิ่งกว่าด้วยการค้นหาแบบไบนารีเพราะการตอบคำถามที่ถูกต้องในคำถามแรกอาจทำให้คุณอยู่ในระดับครึ่งบนของระดับความยากแม้ว่าคุณจะได้รับคำถามที่ผิด

ดังนั้นจะมีอัลกอริทึมที่รู้จักสำหรับการค้นหาแบบไบนารีที่คุณไม่สามารถรับประกันได้ว่าการทดสอบแต่ละรายการมีความถูกต้องหรือไม่?

ฉันอาจลองอย่างไร้เดียงสา 3 หรือ 5 คำถามในแต่ละขั้นตอนและเนื่องจากคำถามก่อนหน้านี้มีผลต่อผลลัพธ์สุดท้ายมากกว่าคำถามในภายหลังอาจเพิ่มคำถามเพิ่มเติมเหล่านี้ในขั้นตอนแรกเท่านั้นไม่ใช่คำถามต่อไป มีอะไรมากกว่านั้นอีกไหม?


ทำไมต้องสอบก่อน? เพียงแค่ปรับคำถามด้วยตนเองในการทดสอบจริง
Scott Stensland

@ScottStensland ความคิดที่น่าสนใจ อย่างไรก็ตามโปรแกรมจริงคือ 12 'แผนที่' ของ 10 'บทเรียน' แต่ละบทเรียนแต่ละบทประกอบด้วย 'กิจกรรม' ผ้าใบ 8-15 HTML5 หรือเกมแต่ละเกมที่มีการออกแบบที่แตกต่างกันไป นักเรียนดำเนินการผ่านแผนที่และรับรางวัลและรางวัล / ใบรับรองหลังจากแต่ละบทเรียนและแผนที่ หากเราปรับระดับของพวกเขาอย่างต่อเนื่องหลังจากเกมทุกเกมมันจะค่อนข้างสับสนและเราจำเป็นต้องสร้างข้อเสนอแนะในเกมที่มีอยู่ทั้งหมดของเราและกำหนดกฎสำหรับข้อเสนอแนะสำหรับแต่ละเกมด้วย

@ คิริลมีวิธีง่ายๆในการย้าย / ข้ามคำถามไปยังส่วนอื่นหรือไม่?

@jim คุณสามารถตั้งค่าสถานะเพื่อให้ผู้ดูแลสนใจถามว่าพวกเขาย้ายคำถามหรือคุณสามารถลบคำถามนี้ที่นี่และสร้างคำถามที่เหมือนกันใหม่ที่นั่น Crossposting (มีคำถามเหมือนกันในเว็บไซต์ต่าง ๆ ในเวลาเดียวกัน) มักจะหมดกำลังใจ ฉันทำข้อเสนอแนะนั้นเพราะดูเหมือนว่าฉันชอบคำถามการเรียนรู้สถิติ / เครื่องที่ค่อนข้างตรงไปตรงมาซึ่งจะได้คำตอบที่ชัดเจนมากขึ้นที่นั่น
คิริลล์

คำตอบ:


2

ปฏิบัติต่อปัญหาดังกล่าวด้วยความน่าจะเป็นแบบเบย์ เริ่มแรกสมมติว่ามีโอกาส 1/13 ที่เด็กจะอยู่ต่ำกว่าแต่ละระดับและเพื่อความสมบูรณ์มีโอกาส 1/13 ที่พวกเขาอยู่ด้านบน จากนั้น: 1) ค้นหาระดับค่ามัธยฐานของอาร์เรย์ของคุณเช่นระดับที่ความน่าจะเป็นของการอยู่เหนือมันใกล้เคียงกับ 50% 2) ถามเด็กคนหนึ่งจากระดับนั้น 3) ใช้กฎของ Bayes เพื่ออัปเดตความน่าจะเป็นของแต่ละเซลล์โดยสมมติว่าอัตราความผิดพลาด 25% ยุติและกลับสู่ระดับที่เป็นไปได้มากที่สุดเมื่อเซลล์หนึ่งมีโอกาสสูงพอที่จะเกิดขึ้นหรือฉันเดาว่าเมื่อคุณหมดคำถามในระดับหนึ่ง

การรักษาที่เข้มงวดมากขึ้นของขั้นตอนวิธีนี้เป็นที่นี่ ; ฉันแนะนำให้อ่านก่อนใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.