Nilai yang diharapkan dari kompleksitas Kolmogorov dalam sampel acak

9

Kompleksitas string Kolmogorov tidak dapat dihitung. Namun, dalam bagian acak ukuran dari string biner dengan panjang , berapa banyak yang diharapkan memiliki kompleksitas kurang dari beberapa bilangan bulat kurang dari (sebagai fungsi dari , dan )?Mnn0nMnn0

vs.
sumber
Apakah Anda menggunakan kompleksitas "standar" Kolmogorov di sini, atau kompleksitas awalan?
Aubrey da Cunha
Sebenarnya saya hanya memikirkan kompleksitas Kolmogorov. Saya menduga terikat oleh domotorp yang disebutkan ketika kita mempertimbangkan semesta dari semua string. Saya tidak jelas apakah ada hasil 'konsisten' untuk subset acak ukuran dapat diproduksi. Namun apakah kompleksitas awalan akan membawa kita ke sudut pandang yang berbeda? M2noM
vs
Itu pasti tidak akan mengubah urutan besarnya, pada kenyataannya saya pikir sekarang jawaban saya adalah terikat untuk kedua versi.
domotorp
1
Untuk setiap dan setiap , probabilitas bahwa string bit acak memiliki kompleksitas Kolmogorov lebih besar dari (dengan ) . Jadi dalam distribusi acak string , Anda harus mengharapkan string dengan ... secara intuitif, ada probabilitas yang sangat tinggi untuk memilih string dengan kompleksitas Kolmogorov yang tinggi. c n x K ( x ) n - c 1 - 1ncnxK(x)n-c c=n-n0MM1-12cc=n-n0M. K(x)<n0M.2(n-n0)K(x)<n0
Marzio De Biasi

Jawaban:

10

Kompleksitas Kolmogorov hanya ditentukan hingga beberapa tetapan aditif, sehingga tidak mungkin untuk memberikan jawaban yang tepat. Batas yang saya jelaskan di sini bahkan lebih lemah.

Tentu saja angka yang diharapkan dapat dihitung dengan mudah setelah kita tahu berapa banyak string memiliki kompleksitas kurang dari , jadi izinkan saya menjawab ini. Biasanya pernyataan pertama tentang kompleksitas Kolmogorov bahwa angka ini paling banyak - karena hanya ada banyak string dengan panjang yang lebih kecil. Di sisi lain, jika program Anda mengatakan "panjang , ambil angka th", maka Anda mendapatkan string kompleksitas kurang dari , di mana adalah versi awalan-bebas dari kompleksitas Kolmogorov dari (jadi paling banyakn 0 2 n 0 - 1 n x 2 n 0 - K ( n ) - C n 0 K ( n ) n log n + log n + O ( 1 ) p x n x n O ( 1 ) p x2nn02n0-1nx2n0-K(n)-Cn0K(n)ncatatann+catatann+HAI(1)). Secara lebih rinci, string pertama berisi deskripsi dari mesin Turing yang mengambil input , di mana p adalah deskripsi dari program bebas awalan yang menghasilkan , menghasilkan jumlah panjang ke- , yaitu bit , dan kemudian ini diikuti oleh .halxnxnHAI(1)halx

Mungkin dimungkinkan untuk meningkatkan batasan ini, tetapi saya ragu Anda bisa mendapatkan jawaban yang tepat.

domotorp
sumber
Bisakah Anda menjelaskan sedikit tentang frasa 'jika program Anda mengatakan "panjang n, ambil angka x"?
vs
Anda benar, seharusnya bebas awalan di sana, saya memperbaikinya.
domotorp
3

Jawaban yang tepat dapat diberikan. Jumlah string panjang dengan kompleksitas (polos) paling banyak n 0 adalah 2 n 0 - K ( n 0 | n ) , hingga faktor konstan. Karenanya setiap proses yang secara acak memilih suatu himpunan bagian akan memiliki, dengan probabilitas yang masuk akal, 2 - K ( n 0 | n ) + O ( 1 ) fraksi string kompleksitas kurang dari n 0 . Untuk menunjukkan klaim kami, cukup untuk menunjukkan bahwa jumlah string dengan kompleksitasnn02n0-K(n0|n)2-K(n0|n)+HAI(1)n0sama dengan juga diberikan oleh 2 k - K ( k | n ) . Kita dapat menunjukkan hasil yang diperlukan dengan menentukan penjumlahan dari nilai ini di atas k dari 1 hingga n 0 . Untuk menunjukkan ini, kami menggunakan hasil aditivitas untuk kompleksitas polos (karena B. Bauwens dan A. Shen. Teorema aditivitas untuk kompleksitas Kolmogorov polos . Teori Sistem Komputasi, 52 (2): 297-302, Feb 2013), C ( a , b ) = K ( a | C ( a , b )k2k-K(k|n)kn0 Di sini K ( ) menunjukkan kompleksitas Kolmogorov yang bebas awalan. Memilih a = n , kita amati bahwa untuk setiapstring n- bit b dari kompleksitas k kita memiliki k = C ( b ) = C ( n , b ) + O (

C(Sebuah,b)=K(Sebuah|C(Sebuah,b))+C(b|Sebuah,C(Sebuah,b))+HAI(1).
K()Sebuah=nnbk Karenanya, untuk masing-masing b tersebut kita memiliki C ( b | n , k ) = k - K ( n | k ) + O ( 1 ) . Biarkan k = k - K ( n |
k=C(b)=C(n,b)+HAI(1)=K(n|k)+C(b|n,k)+HAI(1).
bC(b|n,k)=k-K(n|k)+HAI(1) . Sekarang kita dapat mengamati bahwa ada paling banyakstring O ( 2 k ) b , dan masing-masing leksikografis pertama 2 k string dengan panjang n memenuhi C ( b | n , k ) k + O ( 1 ) . Jadi Ω ( 2 k ) dari mereka memenuhi C ( b | n , k ) =k=k-K(n|k)HAI(2k)b2knC(b|n,k)k+HAI(1)Ω(2k) .C(b|n,k)=k+HAI(1)
Bruno Bauwens
sumber