Test hataların olmadığını gösterebilir mi?


18

(n+1) noktaları benzersiz bir derece polinom belirlemek için gereklidir ; örneğin, bir düzlemdeki iki nokta tam olarak bir çizgiyi belirler.n

Kaç puan hesaplanabilir bir fonksiyon belirlemek benzersiz gerekmektedir bir programın uzunluğu göz önüne alındığında, bu değerlerini hesaplar sabit dilde? (yani Kolmogorov karmaşıklığına bağlı ).f ff:NNff

Fikir, en azından teorik olarak, bir programın doğruluğunu yeterli testler yaparak kanıtlayabilir.

Birinin uzunluğunu hesaplayan uzunluğunda bir programı varsa , en fazla kaynak uzunluğuyla hesaplanabilen fonksiyonların sayısında bir sınır vardır .L f LPLfL

Bu nedenle "sadece" şunu kanıtlamak gerekir:

  • f olabilir kaynak uzunluğu ile hesaplanabilmektedirL
  • P , bayt veya daha az olarak hesaplanan başka bir işlevi hesaplamaz (test ederek)L

Bu fikrin muhtemelen hiçbir pratik sonucu yoktur (sınırlar kesinlikle üstel olacaktır).


4
Fonksiyon tanımlarınızın ikili olarak verildiğini varsayalım, o zaman en fazla uzunluğunda en fazla . Ancak şimdi sorun, polinomlardan farklı olarak, iki farklı hesaplanabilir fonksiyonun sonsuz sayıda girişte aynı değerleri kolayca alabilmesidir. Böylece sorununuz benim için imkansız görünüyor. L2L+11L
Bruno

Fikrini anlıyorum. Ancak, tanım uzunluğu <= L olan iki farklı hesaplanabilir fonksiyon bir noktada farklılık göstermelidir (bazı n0 için). L verilen n0'ın değeri bulabilir mi?
pbaren

4
eğer varsa, böyle bir noktayı bulabilirsiniz, sadece dovetailing kullanarak tüm değerlerin fonksiyonlarını hesaplayın, ancak o zaman asla bilemezsiniz, karar verilemez, program boyutunda bir üst sınırın olması hiçbir şeyi değiştirmez.
Kaveh

7
Aslında, @Kaveh, kendi argümanınıza göre, üzerindeki bir üst sınır, nerede farklılık gösterdikleri hakkında bir şey söylüyor , sadece hesaplanabilir bir şey değil. Eğer ve , daha sonra burada Eğer (@Kaveh) tarif edilen algoritma uzunluğu ve üzerinde ilk dize ve farklılık. Özellikle, , bazı Meşgul-kunduz benzeri fonksiyonu ile sınırlıdır . Ancak, tüm bulmak içinK ( f ) L f g K ( x ) 2 L + c c x f g x 2 L + c x K ( x ) 2 L + cK(f)K(f)LfgK(x)2L+ccxfgx2L+cxK(x)2L+cya da BB hesaplaması hala hesaplanamaz. Yani @pbaren: bir sınır var, ama üstel olmaktan çok daha fazlası, hesaplanamaz.
Joshua Grochow

6
@Kaveh: "Meşgul-kunduz benzeri" bir işlevle kastediyorum: , Kolmogorov karmaşıklığı (evrensel bir makineyi düzeltin) en fazla olan en uzun dizenin uzunluğu olsun . Sadece son derece çok sayıda bu tür tel vardır, bu nedenle bu evrensel makine seçimine kadar iyi tanımlanmıştır. O zaman bir üst sınırdır: Kolmogorov karmaşıklığının iki (toplam hesaplanabilir) fonksiyonu en fazla olan uzunluğuna kadar olan tüm noktalar üzerinde anlaşırsa , eşittirler. BB(n)nBB(2L+c)LBB(2L+c)
Joshua Grochow

Yanıtlar:


9

(Bu bir yorum anlamına geliyordu, ancak uzun sürdü). Çok ilginç bir soru. Kolmogorov'un yanı sıra diğer karmaşıklık önlemlerini düşünmeye istekli iseniz, Öğrenme teorisinde sizi tatmin edebilecek bazı cevaplar vardır. Bunu bölgedeki uzmanlara bırakıyorum.

Örneğin, yanılmıyorsam, "Öğrenilebilir bir teori" de Valiant, k-CNF formülünün boyutu üzerindeki (herhangi bir sabit k ve "pozitif puanlarla" formdakilerin ) olduğunu kastediyorum .(x1,,xn,1)

Knuth'un TAOCP 7.2.1.6'sında, bir monote boolean fonksiyonunu (yani her bir değişkente azalma olmaması) yeniden inşa etmek için şaşırtıcı bir şekilde (Noel ağacı desenini kullanarak) gösterilir puan.(n+1n/2+1)


7

Deigo'nun cevabı boyunca devam etmek için, öğrenme teorisinden gelen standart örnek karmaşıklık sınırları, "yaklaşık olarak doğru" bir program bulmaktan memnunsanız, çok fazla puan denemeniz gerekmediğini size söyler. Diyelim ki ikili olarak programları kodluyoruz, böylece d uzunluğunda sadece programlar var. Diyelim ki girdi örnekleri D üzerinde bir miktar dağılım var . Belki de amacınız neredeyse doğru olduğundan emin olduğunuz bir program bulmaktır ("Muhtemelen Yaklaşık Doğru" yani Valiants PAC öğrenme modelinde olduğu gibi). Yani örneklerin az sayıda alacak bir algoritma çalıştırmak istediğiniz olduğu x ~ D ile birlikte f ( x )2dDxDf(x)ve en azından olasılıkla D' den alınan girdilerin en az bir ( 1 - ϵ ) fraksiyonunda f ile anlaşan bir program P çıkarır . (1δ)Pf(1ϵ)D

Biz, sadece çekecek örnekler X ~ D ve çıkış herhangi bir program P uzunluğunun d kabul eder f tüm örneklerde üzerinde. (Biz varsayalım beri Bir varolmaya garanti f en fazla Kolmogorov karmaşıklığı vardır d ) ...mxDPdffd

Olasılık belirli bir program da ne ile katılmadığını f bir daha üzerinde ε örneklerin fraksiyonu ile tutarlıdır m, biz, seçilen örnekler? En fazla ( 1 - ϵ ) m'dir . Biz en az olmasını olasılığını almak istiyorum δ / 2 d yüzden her yerinde bağlı bir birlik alabilir 2 d programları ve olasılık en azından ile söylemek 1 - δ , hiçbir "kötü" programı bizim çizilmiş örneklerle tutarlıdır . Çözme, biz sadece m almak için yeterli olduğunu görüyoruz 1Pfϵm(1ϵ)mδ/2d2d1δ örnekleri. (Kolmogorov karmaşıklığı sadece doğrusal birçok yanif...)

m1ϵ(d+log1/δ)
f

BTW, bunun gibi argümanlar "Occam's Razor" ı haklı çıkarmak için kullanılabilir: sabit bir sayıda gözlem göz önüne alındığında, bunları açıklayan tüm teoriler arasında, en düşük Kolmogorov karmaşıklığına sahip olanı seçmelisiniz, çünkü aşırı sığdırma şansı en azdır.

Tabii ki, tek bir sabit programı bu şekilde kontrol etmek istiyorsanız, sadece örneklerine ihtiyacınız vardır ...O(log(1/δ)/ϵ)


3

İşte önemsiz bir cevap: O zaman değerini bilmek gerekir f hiç | N | benzersiz olarak belirleme noktaları f . Bu nedenle, bir şekilde programın L uzunluğunun son derece kısa olduğunu bilmediğiniz sürece, çizdiğiniz yaklaşım size hiç yardımcı olmaz : lg | N | bit.Llg|N|f|N|fLlg|N|

işlevlerinin ailesini düşünün; burada f i , i = x ise f i ( x ) = 1 işlevi olarak tanımlanır ve i x ise f i ( x ) = 0 işlevidir . F i bilgisayar Kolmogorov karmaşıklığı hakkında lg dikkat edin | N | i değerini sabit kodlayabildiğiniz içinF={fi:iN}fifi(x)=1i=xfi(x)=0ixfilg|N|ikaynak kodunda ve sonra tek ihtiyacınız olan basit bir koşullu ifade ( ekstra).O(1)

Ancak, ayırt edemez girmek de bunu test sürece tüm sıfırlar işlev dan i . Sen ayırt edemez f i dan f j girmek de sınamak sürece i ya j . Bu nedenle, değerlendirmek gerekir f hiç | N | hangi f i ile uğraştığımızı benzersiz bir şekilde belirlemek için. (Tamam, teknik olarak, | N | - 1 girişlerinde değerlendirmeniz gerekir , ancak her neyse.)fiififjijf|N|fi|N|1


0

Programı keyfi olarak uzatabilirsiniz. Bu nedenle, herhangi bir program verildiğinde, dilinin bu programın diline eşdeğer olup olmadığına karar verebilirsiniz. Bunu Rice teoremiyle yapamazsınız.


1
Programı birkaç örnekte çalıştırarak kontrol etme fikrinin genel olarak çalışmadığı geçerli bir noktanız var.
Tsuyoshi Ito
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.