Kolmogorov karmaşıklığının verimli bir şekilde hesaplanabilir varyantları


28

Kolmogorov ön ek karmaşıklığı (yani , çıktısını alan minimum kendiliğinden sınırlayan programın boyutudur ) birkaç hoş özelliğe sahiptir:K(x)x

  1. Bu, yamalı olan ya da olmayan dizelere göre daha düşük bir karmaşıklığa sahip olan dizeleri verme sezgisine karşılık gelir.
  2. Bazı oracle için koşullu karmaşıklığı , hatta daha iyi tanımlamamızı sağlar .K(x|y)K(x|O)O
  3. Alt katkı maddesi .K(x,y)K(x)+K(y)

Ancak çok kötü bir dezavantajı vardır: dönen verilen undecidable.K(x)x

Kolmogorov karmaşıklığı bir varyantı olup olmadığını merak olan bir hesaplama kısıtlı modeli kullanarak (ya da kaynağa sahip sınırlı TM TM'ler daha zayıf dilleri kullanarak veya kullanarak) olup korur özellikler (1) ve (2) (özelliği ( 3) etkili bir şekilde hesaplanırken bir ikramiye, ancak bir zorunluluk değil)?K(x)

Bu soru için motivasyon evrimin çeşitli oyuncak modellerinin simülasyon çalışmalarında kullanılmak içindir. Bu nedenle daha önce sayısal çalışmalarda Kolmogorov karmaşıklığı için 'kaba bir yaklaşım' olarak kullanılan bir cevap tercih edilmiştir. Ancak, amaç, tamamen deneysel gitmek nispeten basit / temiz tanımlama dili / model-of-the hesaplama için çok değil mi ne kadar büyük ölçüde ilgili bazı makul teoremleri ispat etmek mümkün olabilir, böylece tercih edilir K' değişmesidir K ve ne tür ipler üzerinde.KKK

Soruları ilişkilendirir

Kolmogorov karmaşıklığı ile zayıf açıklama dilleri

Kararsız bir problem için yaklaşık bir algoritma anlayışı var mı?

Yanıtlar:


10

Gzip. Çilibrasi ve Vitanyi, gzip'i kümeleme yapmak için Kolmogorov karmaşıklığının bir yaklaşımı olarak kullandıkları çok hoş bir makaleye sahiptir. Sıkıştırma ile Kümeleme


1
Koşullu karmaşıklığı nasıl tanımlarlar?
Artem Kaznatcheev

1
A ve B iki belge olsun, AB birleştirilmiş iki olsun. SIZE (gzip (A) + gzip (B)) 'nin SIZE (gzip (AB)) oranına bakarlar.
Chad Brewbaker

1
Biri, Kolmogorov karmaşıklığını yaklaştırmak için gzip (ve benzeri) kullanmanın olumsuz yanlarının olduğunu bilmelidir : bactra.org/notebooks/cep-gzip.html . Bu, gerçek hayattaki veri kümelerini kümelemek için kullanışlı olmadığını söylemez, ancak gerçek hayattaki veri kümelerine yönelik kullanımının bize, bu veri kümelerinin sözde rasgele sayı üretecinin çıktısından ne kadar farklı olduğu hakkında bir şeyler söylediğini söyler. ...
Joshua Grochow

3

Sorum hakkında daha fazla düşündüm ve olası bir çözüme ulaştım. İki sınırlaması vardır, yalnızca uzunluğunda dizilerde tanımlanmıştır (bunu daha fazla tartışacağım halde) ve önceki bir soruyu takip etmek ve alternatif bir hesaplama modeli kullanmak gibi evrensel Turing makineleri hakkında konuşmuyor .n=2m


Temel olarak, bir dize yorumlayabilir ile | x | = 2 m bir fonksiyonu olarak m X : { 0 , 1 } m{ 0 , 1 } . O zaman karmaşıklık ölçüsü K ' ( x ) tek düşük sıralı ikili karar diyagramı boyutu (kenarlarının sayısı) (ROBDD, standart sipariş ankastre) temsil f x . Bu durumu [1] karşılar. Ayrıca, ROBDD'ler 2 m'de zaman polinomunda hesaplanabildiğindenx|x|=2mfx:{0,1}m{0,1}K(x)fx2mverimli bir önlemimiz var.

Durumu [2] yerine getirmek için, standart BDD'leri, özel bir düğüm tipine izin vererek değiştirmeliyiz. Genellikle düğümleri dizinler tarafından etiketlenmiştir , özel bir kehanet düğümü ekleyeceğiz. For K ( x | y ) nerede | y | = 2 m , BDD’lerde aşağıdaki gibi özel düğümlere izin vereceğiz:i{1,...,m}K(x|y)|y|=2m

Biz girdi üzerinde bir BDD çalıştırıyorsanız ( | a | = m ) o sırada etiketli normal düğüm i basitçe etiketli kenarı aşağı bize gönderin bir i . Bir kehanet düğümü bunun yerine bizi f y ( a ) etiketli bir kenara gönderir . Böylece, K ( x | x ) = 2 ve yüksek olasılıkla K ( x | y ) K ( x ) rasgele eşit şekilde toplanmış bir y için .a|a|=miaify(a)K(x|x)=2K(x|y)K(x)y

[Not: Koşullu karmaşıklığın hala verimli bir şekilde hesaplanıp hesaplanmadığı açık değildir :(]

Açıkçası, için bir OBDD oluşturduğumuzdan beri alt katkımız da var . y biz ilk bit ve bir sorgu olabilir 0 için ROBDD için halindeyken x ve üzerinde 1 için ROBDD için y . Böylece, K ( x . Y ) K ( x ) + K ( y ) var .x.y0x1yK(x.y)K(x)+K(y)


Alt katılabılirlik potansiyel maliyeti anda tanımlayabiliriz herhangi bir uzunlukta için x sadece güç-of-iki parçalarını alıp birlikte karmaşıklığını ekleyerek. Örneğin | x | = 2 m ve | y | = 2 L ile m > l biz tanımlayabilir K ' ( X . Y ) = K ' ( x ) + K ' ( y ) .K(x)x|x|=2m|y|=2lm>lK(x.y)=K(x)+K(y)

Yaklaşımımla ilgili ne yazık ki bazı sınırlamalar da var. Biz o zaman sorunlar ele inatçılığı dolanabilir olacak asgari karar ağaçları ya da sadece BDDs düşünüldüğünde Biz çok OBDDs öteye gidemez bu cevap . OBDD'lerin değişken sıralaması için bile, tutarlılık sonuçları olduğu görülüyor . Öyle görünüyor ki, OBDD'ler, standart-Kolmogorov-karmaşıklık yaklaşımına çok benzemeyen bir sınırdır.


2

Ben uzman değilim, ancak dizgiler için pratik bir karmaşıklık ölçütüne ihtiyacınız varsa , Titchener T-karmaşıklık ölçüsüne bir göz atabilirsiniz .

Hızlı bir giriş için Titchener web sitesine bakın ; Onun kağıtları pdf formatında indirilebilir .

Özet - Sonlu karakter dizileri için yeni bir karakter dizisi karmaşıklığı ölçüsü, belirli bir özyinelemeli hiyerarşik karakter dizisi üretim sürecine dayanarak sunulmaktadır . Maksimum sınırdan karmaşıklık ve toplam bilgi içeriği arasındaki ilişkiyi tespit ediyoruz. ..Tam makale...

Pratik uygulamalar hakkında da bazı makaleler buldum (örneğin " Hızlı T-ayrıştırma algoritması " na bakınız)


2

Temel olarak, hemen hemen her makine öğrenmesi veya sıkıştırma yöntemi Kolmogorov karmaşıklığına bir yaklaşımdır:

  • Veri olasılığınızı atan hesaplanabilir bir olasılık dağılımınız varsa, o zaman, Kraft eşitsizliği nedeniyle, - log p ( x ) bitlerinde verilerinizi sıkıştıran bir kompresörünüz vardır .p(x)logp(x)
  • Eğer için verileri sıkıştırır hesaplanabilir bir kompresör C varsa bit, o zaman var K ( x ) n + s C , s C ancak üzerinde, Kompresörünüzün bağlıdır x (temelde yapmanız gerekenler bit numara C'yi evrensel Turing makinenize tanımlayın).nK(x)n+sCsCx

Böylece herhangi bir kompresör veya olasılık dağılımına sahip modelleri arayabilir ve verilerinizi ne kadar iyi sıkıştırırlarsa, K (x) için üst sınırınız o kadar iyi olur. Sadece tahminde bulunmak için kompresörün boyutunu, sıkıştırılmış verilerin boyutuna eklediğinizden emin olun.

Daha da iyisi, verilerinizi çıkaran bağımsız bir program yazın. Bu programı ne kadar küçük yaparsanız, de o kadar küçük olur.K(x)

Tabii, yukarıdan sınırlamak yeterli olmayabilir. Tahmininiz oldukça büyükse, in gerçekte çok küçük olma olasılığı nedir? Bunun için verilerinizde bazı varsayımlarda bulunmanız gerekir: bir olasılık dağılımları sınıfını düzeltin (olasılıksal otomatlar gibi) ve verilerinizi sıkıştırmak için bu dağılımların üzerinde bir Baseyyen karışımı kullanın. Verileriniz aslında olasılıksal bir otomat tarafından üretildiyse, K'nin tahmininizden önemli ölçüde daha küçük olma olasılığı katlanarak ortadan kalkar.K(x)K

Model sınıfınızı tanımlamak için bir zaman aralığı da kullanabilirsiniz, bu sizi Suresh'in cevabına götürür. Temel olarak, veri kaynağınızın polinom zaman karmaşıklığına sahip olduğunu varsayarsanız ve tüm polinom Turing makinelerini sıkıştırmak için denerseniz, Kolmogorov karmaşıklığını doğru bir şekilde tahmin ettiğinizden emin olabilirsiniz. Bu hala o kadar pratik olmayabilir, ancak daha düşük zaman sınırları için, tam bir Bayesian karışımını hesaplayabilirsiniz, buna iyi bir yaklaşım olabilir.

Teknik detaylar için bu makaleye bakınız . Yasal Uyarı: Ben yazarlardan biriyim.

K(x)K(x)


-1

Kaynak sınırlı Kolmogorov karmaşıklığı arıyorsunuz. Bu kağıtla başlayabilir ve dallanabilirsiniz.


2
Makaleye verilen bağlantı için teşekkürler, söz konusu kaynağın sınırlı karmaşıklığından söz ediyorum, ancak gerçekten verimli bir şekilde hesaplanabilecek önlemlere ilgi duyuyorum. Rapor, bu modeller için 'rastgele dizelerin' yüksek karmaşıklıktaki kümelere karşılık geldiğini gösteriyor gibi görünüyor. Bu, bu modellerde bir dizgenin karmaşıklığına karar vermenin etkin bir şekilde hesaplanabilir olmadığını göstermektedir, değil mi?
Artem Kaznatcheev
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.