ในการดำเนินการตามคำตอบของ Deigo ขอบเขตความซับซ้อนตัวอย่างมาตรฐานจากทฤษฎีการเรียนรู้จะบอกคุณว่าหากคุณพอใจกับการค้นหาโปรแกรมที่ "ถูกต้อง" คุณไม่จำเป็นต้องลองหลาย ๆ จุดเลย ให้บอกว่าเราเข้ารหัสโปรแกรมในรูปแบบไบนารี่เพื่อให้มีเพียงโปรแกรมที่มีความยาว d ให้คิดว่ายังว่ามีการกระจายตัวอย่างบางกว่าอินพุตD บางทีเป้าหมายของคุณคือการหาโปรแกรมที่คุณมั่นใจว่าเกือบจะถูกต้อง ("อาจจะประมาณถูกต้อง" เช่นในรูปแบบการเรียนรู้ของ Valiants PAC) นั่นคือคุณต้องการเรียกใช้อัลกอริทึมที่จะใช้ตัวอย่างจำนวนน้อยx ∼ Dพร้อมกับf ( x )2dDx ∼ Df(x)และจะมีความน่าจะเป็นอย่างน้อยการส่งออกบางโปรแกรมPซึ่งเห็นด้วยกับฉบนอย่างน้อย( 1 - ε )ส่วนของปัจจัยการผลิตมาจากD (1−δ)Pf(1−ϵ)D
เราก็จะวาดตัวอย่างx ~ Dและเอาท์พุทโปรแกรมใด ๆPของความยาว≤ dที่เห็นด้วยกับFในทุกตัวอย่าง (มีการรับประกันว่ามีอยู่เนื่องจากเราถือว่าfมีความซับซ้อนของ Kolmogorov มากที่สุดd ) ...mx∼DP≤dffd
ความน่าจะเป็นที่โปรแกรมใดโปรแกรมหนึ่งที่ไม่เห็นด้วยกับfในตัวอย่างมากกว่าϵส่วนมีความสอดคล้องกับตัวอย่างmที่เราเลือก? มันเป็นที่มากที่สุด( 1 - ε )ม. เราต้องการที่จะใช้ความน่าจะเป็นนี้ให้มากที่สุดδ / 2 dเพื่อให้เราสามารถรวมยูเนี่ยนข้ามโปรแกรม2 dทั้งหมดและบอกว่าด้วยความน่าจะเป็นอย่างน้อย1 - δโปรแกรม "เลว" ไม่สอดคล้องกับตัวอย่างที่เราวาด . การแก้ปัญหาเราเห็นว่าเพียงพอที่จะรับค่าm ≥ 1เท่านั้น
Pfϵm(1−ϵ)mδ/2d2d1−δ
ตัวอย่าง (กล่าวคือมีเพียงเส้นตรงจำนวนมากในความซับซ้อนของ Kolmogorov ของf... )
m≥1ϵ(d+log1/δ)
f
BTW ข้อโต้แย้งเช่นนี้สามารถใช้เพื่อพิสูจน์ "Occam's Razor": เนื่องจากมีจำนวนการสังเกตที่คงที่ในบรรดาทฤษฎีทั้งหมดที่อธิบายพวกเขาคุณควรเลือกอันที่มีความซับซ้อน Kolmogorov ต่ำที่สุดเพราะมีโอกาสน้อยมาก
แน่นอนถ้าคุณต้องการตรวจสอบโปรแกรมคงที่เดียวด้วยวิธีนี้คุณจะต้องมีตัวอย่าง ...O(log(1/δ)/ϵ)