พื้นหลัง
ต้นไม้ตัดสินใจเลขฐานสองเป็นต้นไม้ที่ถูกรูตซึ่งแต่ละโหนดภายใน (และรูท) จะมีป้ายกำกับโดยดัชนีซึ่งไม่มีเส้นทางจากรากหนึ่งไปยังอีกใบหนึ่งทำดัชนี จะมีป้ายกำกับโดยเอาท์พุทในและแต่ละขอบจะมีป้ายกำกับสำหรับลูกซ้ายและสำหรับลูกขวา ในการใช้ต้นไม้กับอินพุต :{ A , B } 0 1 x
- เริ่มต้นที่รูท
- ถ้าคุณอยู่ที่ลีฟคุณจะส่งเอาท์พุตฉลากหรือBและยุติ
- อ่านเลเบลของโหนดปัจจุบันของคุณหากให้เลื่อนไปที่ลูกด้านซ้ายและหากให้ย้ายไปที่ลูกที่ถูกต้อง
- ข้ามไปที่ขั้นตอน (2)
ต้นไม้ที่ถูกนำมาใช้เป็นวิธีการประเมินผลการทำงานโดยเฉพาะอย่างยิ่งที่เราบอกว่าต้นไม้หมายถึงฟังก์ชั่นรวมถ้าสำหรับแต่ละเรามี ) ความซับซ้อนของแบบสอบถามของต้นไม้คือความลึกของมันและความซับซ้อนของแบบสอบถามของฟังก์ชันคือความลึกของต้นไม้ที่เล็กที่สุดที่แสดงถึงมัน
ปัญหา
รับแผนภูมิการตัดสินใจแบบสองจุด T เอาต์พุตการตัดสินใจแบบไบนารี T ของความลึกน้อยที่สุดซึ่ง T และ T แสดงถึงฟังก์ชันเดียวกัน
คำถาม
อัลกอริทึมที่รู้จักกันดีที่สุดสำหรับสิ่งนี้คืออะไร? ขอบเขตที่ต่ำกว่าเป็นที่รู้จักกัน? เกิดอะไรขึ้นถ้าเรารู้ว่า ? แล้วถ้าเราต้องการให้มีความลึกเพียงเล็กน้อยเท่านั้น
วิธีการไร้เดียงสา
วิธีการที่ไร้เดียงสาจะได้รับเพื่อระบุต้นไม้การตัดสินใจแบบไบนารีทั้งหมดของความลึกd - 1ในขณะที่ทดสอบว่าพวกเขาประเมินในสิ่งเดียวกันกับTหรือไม่ ดูเหมือนว่าจะต้องใช้O ( d 2 n n !ขั้นตอน (สมมติว่าใช้ขั้นตอนdเพื่อตรวจสอบสิ่งที่T(x)ประเมินว่าเป็นค่าใด ๆx) มีแนวทางที่ดีกว่านี้ไหม?
แรงจูงใจ
คำถามนี้เป็นแรงบันดาลใจจากคำถามก่อนหน้านี้ในการค้าออกระหว่างความซับซ้อนแบบสอบถามและความซับซ้อนเวลา โดยเฉพาะเป้าหมายคือการ จำกัด เวลาสำหรับฟังก์ชั่นทั้งหมด เราสามารถสร้าง tree จากอัลกอริธึมที่เหมาะสมที่สุดกับ runtime tและจากนั้นเราต้องการแปลงเป็น tree T ′สำหรับอัลกอริทึมการค้นหาที่ดีที่สุด แต่ถ้าเสื้อ∈ O ( n ! / ( n - d ) ! ) (และมักจะd ∈ Θ ( n )) คอขวดคือการแปลง มันจะดีถ้าเราสามารถแทนที่โดยสิ่งที่ต้องการ2 d