รับ
นี่คือปัญหาที่มีรสชาติคล้ายกับการเรียนรู้ juntas: การป้อนข้อมูล:ฟังก์ชั่น , ตัวแทนจาก oracle สมาชิกคือ oracle ที่ได้รับxผลตอบแทนF ( x )f:{0,1}n→{−1,1}f:{0,1}n→{−1,1}f: \{0,1\}^n \rightarrow \{-1,1\}xxxf(x)f(x)f(x) เป้าหมาย:ค้นหา subcube SSSของ{0,1}n{0,1}n\{0,1\}^nด้วยโวลุ่ม|S|=2n−k|S|=2n−k|S|=2^{n-k}เช่นนั้น|Ex∈Sf(x)|≥0.1|Ex∈Sf(x)|≥0.1\left|\mathbb{E}_{x \in S} f(x) \right| \ge 0.1 0.1 เราสมมติว่ามี subcube อยู่ มันง่ายที่จะได้อัลกอริธึมที่ทำงานในเวลาnO(k)nO(k)n^{O(k)}และส่งกลับคำตอบที่ถูกต้องด้วยความน่าจะเป็น≥0.99≥0.99\ge 0.99โดยลองใช้วิธีทั้งหมด(2n)k(2n)k(2n)^kเพื่อเลือก subcube และสุ่มตัวอย่างค่าเฉลี่ยในแต่ละอัน ฉันสนใจในการหาอัลกอริทึมที่วิ่งในเวลาpoly(n,2k)poly(n,2k)poly(n,2^k) ) อีกทางเลือกหนึ่งขอบเขตที่ต่ำกว่าจะดี ปัญหามีรสชาติคล้ายกับการเรียนรู้ juntas แต่ฉันไม่เห็นการเชื่อมต่อที่แท้จริงระหว่างความยากลำบากในการคำนวณของพวกเขา ปรับปรุง: @Thomas ด้านล่างพิสูจน์ให้เห็นว่าความซับซ้อนตัวอย่างของปัญหานี้คือ ) ปัญหาที่น่าสนใจก็คือความซับซ้อนของปัญหาpoly(2k,logn)poly(2k,logn)poly(2^k,\log n) แก้ไข: คุณสามารถสมมติความเรียบง่ายที่มี subcube ด้วย (สังเกตช่องว่าง: เรากำลังมองหา …