นี่คืออัลกอริทึมที่เอาชนะความพยายามเล็กน้อย
ต่อไปนี้เป็นความจริงที่รู้จักกัน (การใช้สิทธิ 1.12 ในหนังสือดอนเนลล์): ถ้าf:{−1,1}n→{−1,1}เป็นฟังก์ชั่นบูลีนซึ่งมีการศึกษาระดับปริญญา≤dเป็นพหุนามแล้วทุกค่าสัมประสิทธิ์ฟูริเยร์ ของf , F ( S )เป็นจำนวนเต็มของ2 - d ใช้ Cauchy-Schwarz และ Parseval หนึ่งได้รับว่ามีที่มากที่สุด4 dภัณฑ์สัมประสิทธิ์ฟูริเยร์และΣ S | f^(S)2−d4d∑S|f^(S)|≤2dd
นี่แสดงให้เห็นวิธีการสุ่มตัวอย่าง -
- เลือกเลขสุ่มที่ไม่ใช่เชิงลบSสำหรับทุกชุดS ⊆ [ n ]ขนาดที่มากที่สุดdซึ่งรวมถึง≤ 4 daSS⊆[n]d≤4d
- ให้f(x)=∑SaS2dχS(x))
- ตรวจสอบว่าfเป็นบูลีน ถ้าเป็นเช่นนั้นผลตอบแทนฉfอื่น ๆ กลับไปที่11
หมายเหตุว่าสำหรับทุกการศึกษาระดับปริญญา≤dพหุนามfอีกหนึ่งทางเลือกของจำนวนเต็มสุ่มในขั้นตอนที่ 1 จะสร้างพหุนามฉfความน่าจะเป็นของการศึกษาระดับปริญญาเฉพาะ≤dพหุนามมี
ดังนั้นเราต้องทำซ้ำขั้นตอนนี้มากที่สุดครั้งโดยคาดหวังก่อนที่จะหยุด 1/((n≤d)+4d4d)=1/O(n/d)d4d.
O(n/d)d4d
มันยังคงแสดงให้เห็นว่าการดำเนินการขั้นตอนที่ 3 หนึ่งสามารถกำหนด\} ตรวจสอบว่า (ซึ่งควรถือโดยนิสัน-Szegedy ทุกฟังก์ชั่นบูลีน) และจากนั้นประเมินที่ได้รับมอบหมายเป็นไปได้ทั้งหมดกับตัวแปรใน ซึ่งสามารถทำได้ในเวลาd} Gur และ Tamuz เสนออัลกอริทึมแบบสุ่มที่เร็วขึ้นสำหรับงานนี้อย่างไรก็ตามเนื่องจากส่วนนี้ไม่ได้ควบคุมความซับซ้อนของเวลาซึ่งเพียงพอแล้วA=⋃{S:aS≠0}|A|≤d2dfA2d2d
โดยรวมขั้นตอนวิธีการผลิตตัวอย่างที่สุ่มของระดับพหุนามในเวลาd} ภายใต้สมมติฐานว่าซับซ้อนเป็นเวลาd)}≤dO(nd)d4dn≤d2d2O(d24d)
นี้ไม่ได้เป็นเวลาพหุนามสุ่มตัวอย่างอัลกอริทึมแม้ว่ามันจะเป็นได้เร็วขึ้นมากแล้วสุ่มตัวอย่างฟังก์ชั่นแบบสุ่มสมบูรณ์ (ซึ่งในกรณีนี้น่าจะเป็นของการศึกษาระดับปริญญาเฉพาะพหุนามคือ )≤d1/22n