Kolmogorov Karmaşıklığı: Neden dizenin kendisinden daha fazla bayta ihtiyaç duyarsınız?


Yanıtlar:


13

Kolmogorov karmaşıklığının kesin değeri, dizeleri temsil etmek için seçilen dile bağlıdır. Bu dil Turing tamamlanmış olmalıdır, bu nedenle tüm dizeleri kendileri olarak temsil etmek bir seçenek değildir.

Güvercin deliği prensibine göre, temsili kendisinden daha kısa olan en fazla uzunluğunda en az bir dizi varsa, o zaman temsili kendisinden daha uzun olan en az uzunluğunda en az bir dizi vardır . (Gösterim bir sıkıştırma algoritmasıdır.)nn

Her dizenin kendisinden en fazla bir bit daha uzun bir temsile sahip olduğu bir açıklama diline sahip olabilirsiniz: her gösterime ya “tam anlamıyla yazdır” ya da “yorumla” yazan bir bitle başlayın. Bununla birlikte, tüm açıklama dilleri o kadar basit değildir.

Vikipedi makalesinde, değişmezlik teoremi bölümünde daha resmi bir açıklama yer almaktadır . Orada optimum herhangi bir dil için, sabit kalmayacak şekilde açıklama dilleri, optimum dilinde herhangi bir dize açıklaması (uzunluğu ne olursa olsun) en fazla olacak şekilde artık o diğer dillere göre daha bit. Sezgisel olarak, diğer dilde en uygun dilde bir tercüman yazın.CC


6

Burada ele alınan bir ipin açıklaması, bazı evrensel Turing makinesinin girdisidir. Bunu bir C programı olarak düşünebilirsiniz. Dize hello world, tek başına, bir C programı oluşturmadığı, ancak aşağıdaki biri yapar: int main(int argc, char *argv[]) { printf("hello world"); }. Gördüğünüz gibi, ek yük sabittir ancak sıfır değildir.


3
Eklenen bir incelik olarak, C (veya idealize edilmiş Turing-complete C) 'de O (1) boşluk yükü ile rastgele dizeler yazdırmak mümkün değildir, çünkü dize değişmezlerindeki bazı karakterlerin tırnak içine alınması gerekir.
Gilles 'SO- kötü olmayı bırak'
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.