Kolmogorov karmaşıklığı (tanımsal karmaşıklık, Kolmogorov-Chaitin karmaşıklığı, stokastik karmaşıklık, algoritmik entropi veya program boyu karmaşıklığı olarak da bilinir), bilgisayar biliminde, bir metin parçası gibi bir nesneyi tanımlamak için kullanılması gereken bilgi işlemsel kaynakların ölçüsü.
Örneğin aşağıdaki 100 karakter uzunluğundaki iki ele alınırsa:
0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101
1100100001100001110111101110110011111010010000100101011110010110001101111111010001100011011001110111
Birinci karakter katarı Türkçe "'01'in 50 tekrarı" ifadesi ile kısaca ve tam olarak tanımlanabilir. İkinci karakter katarının bu şekilde tanımlanması mümkün değildir. Bu karakter katarını tanımlananın en kısa yolu kendisini yazmaktır.
Daha şekilsel olarak söylemek gerekirse, bir karakter katarının karmaşıklığı sabit bir tanımlama dilinde o karakter katarının en kısa ifade edilişidir. Aşağıda tanımlama dilinin seçimi ile karmaşıklık arasındaki hassas ilişki ele alınmıştır. Bir karakter katarının Kolmogorov karmaşıklığının karakter katarının uzunluğundan daha büyük olamayacağı gösterilebilir. Kolmogorov karmaşıklıkları, kendi uzunluklarına kıyasla daha kısa olan karakter katarları karmaşık kabul edilmez.
Kolmogorov karmaşıklığı kavramı şaşırtıcı ölçüde derin bir kavramdır. Bu kavram kullanılarak Gödel'in eksiklik teoremi ve ile ilgili imkânsızlık sonuçlarını ifade ve ispat için kullanılabilir.
Algoritmik bilgi teorisi, bilgisayar bilimlerinin bir alt alanı olup karakter katarlarının (ve diğer veri yapılarının) Kolmogorov karmaşıklığı ve diğer türden karmaşıklarını incelenmesi ile ilgilidir. Bu çalışma alanı Andrey Kolmogorov, ve tarafından 1960'larda kurulmuştur. Algoritmik bilgi veya Kolmogorov karmaşıklığının pek çok çeşitlemesi vardır. Bunlardan en yaygın olanı kendi kendini ayıran programlara dayanmaktadır ve (1974) tarafından ortaya konmuştur.
Tanım
Kolmogorov karmaşıklığını tanımlamak için önce karakter katarları için bir tanımlama dili belirlemeliyiz. Böyle bir tanımlama dili Lisp, Pascal veya Java bytecode gibi programlama dillerinden birine dayanabilir. Eğer P, x çıktısını üreten bir program ise P xin tanımıdır. Tanımlamanın uzunluğu P programının kaynak kodunun bir karakter katarı olarak uzunluğudur. Pnin uzunluğu belirlenirken, P içinde kullanılan altrutinler de hesaba katılmalıdır. P programındaki herhangi bir n sabitinin uzunluğu, nyi temsil etmek için gerekli bit sayısıdır ki bu da (kabaca) log2n kadardır.
Bir başka yöntem de Turing makineleri (TM) için bir kodlama seçmektir. Burada kodlama, her M Turing makinesini bit dizisi olan <M> ile ilişkilendiren bir fonksiyondur. Eğer M, w girdisine karşılık x çıktısını üreten bir TM ise bu durumda birleştirilmiş <M>w xin bir tanımıdır. Kuramsal analiz için bu yaklaşım şekilsel kanıtlar kurmaya daha yatkındır ve araştırmacılar tarafından tercih edilmektedir. Bu makalede ise biz bu kadar şekilsel olmayan bir yaklaşım kullanacağız.
Bir tanımlama dili sabitle. Herhangi bir s karakter katarının en az bir tanımı vardır ve o da şu programdır:
function SabitKatarUret() return s
snin tüm tanımları arasında en kısa olanı d(s) şeklinde gösterilir. Eğer aynı en kısa uzunlukta birden fazla program varsa herhangi birini seç. Bunun için söz gelimi sözlük sırasına göre ilk geleni seç. d(s), snin en kısa tanımıdır. snin Kolmogorov karmaşıklığı, K(s) olarak yazılır ve şu şekilde tanımlanır:
Diğer bir deyişle K(s) snin en kısa tanımının uzunluğudur.
Şimdi de tanımlama dilinin Kyı nasıl etkilediğine bakalım kullanılan dili değiştirmenin etkisinin sınırlı olduğunu gösterelim.
Teorem. Eğer K1 ve K2, L1 ve L2 tanımla dilleri kullanılarak elde edilmiş karmaşıklık fonksiyonları ise, o zaman (sadece L1 ve L2ye bağlı) öyle bir c sabiti vardır ki
eşitsizliğini sağlar.
Bakışımdan ötürü, tüm s bitdizileri için öyle bir c sabiti vardır ki,
eşitsizliği sağlanır önermesini ispat etmek yeterlidir.
Bunun neden böyle olduğunu anlamak için L2 dili için yorumlayıcı olarak çalışan ve L1 dilinde yazılmış bir fonksiyon olsun:
function DilYorumla(string p)
burada p L2 dilinde yazılmış bir programdır. Yorumlayıcı şu özelliğe sahiptir:
- p girdisi üzerinde DilYorumla fonksiyonunu çalıştırmak pyi çalıştırmanın sonucunu döndürür.
Dolayısı ile eğer p, L2 dilinde bir program ve snin en kısa tanımı ise DilYorumla(P) s karakter katarını döndürür. snin bu tanımının uzunluğu aşağıdakilerin toplamıdır:
- DilYorumla programının uzunluğu
- Pnin uzunluğu ki bu da tanım itibarıyla K2(s)dir.
Böylece yukarıda sözü geçen üst sınırın varlığı ispatlanmış olur.
Ayrıca bkz. .
Temel sonuçlar
Aşağıda tek bir tanımlama olduğunu kabul edip, snin karmaşıklığını K(s) olarak göstereceğiz.
Bir karakter katarının en kısa tanımının katarın kendisinden çok daha uzun olamayacağını görmek zor değildir: syi çıktı olarak veren yukarıdaki SabitKatarUret programı snin kendisinden sabit miktarda daha uzundur.
Teorem. Öyle bir c sabiti vardır ki
eşitsizliği sağlanır.
İlk şaşırtıcı sonuç Knın etkin olarak hesaplanamayacağı gerçeğidir.
Teorem. K hesaplanabilir bir fonksiyon değildir.
Bir başka deyişle, s karakter katarını girdi olarak alıp çıktı olarak K(s) üretebilecek bir program yazılamaz. Bunu olmayana ergi yöntemi ile gösterelim. Aşağıdaki gibi bir program bulunduğunu var sayalım
function KolmogorovKarmasikligi(string s)
öyle ki bu program girdi olarak s karakter katarını alıp çıktı olarak da K(s) karmaşıklığını versin. Şimdi de şu programı düşünelim:
function KarmasikKarakterKatariUret(int n) for i = 1 to infinity: for each string s of length exactly i if KolmogorovKarmasikligi(s) >= n return s quit
Bu program KolmogorovKarmasikligi programını bir altrutin olarak çağırır ve en kısa olanından başlayarak en az n karmaşıklığına sahip bir karakter katarı bulana dek tüm karakter katarlarını dener, sonra da bulduğu karakter katarını döndürür. Dolayısı ile herhangi bir n pozitif tam sayısı verildiğinde Kolmogorov karmaşıklığı en az n kadar büyük olan bir karakter katarı üretir. Bu programın kendisinin uzunluğu sabit bir U değeridir. KarmasikKarakterKatariUret programınının girdisi n tam sayısıdır ve burada n sayısının boyu bunu temsil etmek için gerekli bit sayısı ile ölçülür ki bu da log2(n)dir. Şimdi de aşağıdaki programı ele alalım:
function ParadoksalKarakterKatariUret () return KarmasikKarakterKatariUret(n0)
Bu program KarmasikKarakterKatariUret programini altrutin olarak çağırmaktadır ve n0 isimli bir serbest parametresi vardır. Program, karmaşıklığı en az n0 olan bir s karakter katarı üretir. n0 için uygun bir değer verilirse bir çelişki elde ederiz. Bu değeri seçmek için snin, uzunluğu en fazla
olan ParadoksalKarakterKatariUret programı tarafından üretildiğine dikkat edelim; burada C, ParadoksalKarakterKatariUret tarafından eklenmiş sabit bir fazlalıktır. n, log2(n) değerinden daha hızlı büyüdüğü için aşağıdaki eşitsizliği sağlayan bir n0 değeri vardır
Ancak bu durum en az n0 kadar bir karmaşıklık değeri olduğu tanımı ile çelişir. Dolayısı ile "KolmogorovKarmasikligi" olarak isimlendirilmiş program istenen Kolmogorov karmaşıklığında karakter katarları üretiyor olamaz.
Olmayan ergi ile yapılan bu ispat benzer: "n yirmi İngilizce sözcükten daha az sözcük ile tanımlanamayan en küçük tam sayı olsun. Az önce bu sayıyı yirmiden az İngilizce sözcük ile tanımladım."
Sıkıştırma
Ancak K(s) değeri için üst sınırları hesaplamak basit bir iştir: uygun bir yöntemle s karakter katarını sıkıştır, seçilen dilde sıkıştırma yönteminin tersi olan açma yöntemini yaz, bu açıcı programın kaynak kodunu sıkıştırılmış karakter katarına ekle ve sonuçta elde ettiğin karakter katarının uzunluğunu ölç.
Bir s karakter katarı eğer uzunluğu |s| - c değerini geçmeyecek şekilde tanımlanabiliyorsa o zaman c kadar sıkıştırılabilir demektir. Bu da K(s) ≤ |s| - c demektir. Aksi takdirde s karakter katarı c kadar sıkıştırılabilir değildir. En az bir bit kadar bile sıkıştırılamayan karakter katarına kısaca sıkıştırılamaz denir. Güvercin deliği ilkesine göre sıkıştırılamaz karakter katarları mevcut olmak zorundadır çünkü n uzunluğunda 2n adet bit katarı varken sadece 2n-1 tane daha kısa katar vardır ki bunların da boyu n - 1 kadardır.
Aynı sebepten ötürü "çoğu" karakter katarı karmaşıktır yani çok fazla sıkıştırılamazlar. Yani K(s), s katarının bit cinsinden uzunluğu olan |s| değerinden çok daha küçük olamaz. Bunu daha detaylı olarak söylemek için belli bir n değeri alalım. Uzunluğu n olan n farklı bit katarı vardır. olasılık dağılımına göre bu bit katarı uzayında n uzunluğundaki her bit katarının ağırlığı 2-n kadardır.
Teorem. n uzunluğundaki bit katarları uzayındaki üniform olasılık dağılımına göre herhangi bir bit katarının c kadar sıkıştırılamama olasılığı en az 1 - 2-c+1 + 2-n kadardır.
Bu önermeyi ispatlamak için şuna dikkat edelim: n - c uzunluğunu geçmeyen katar tanımlamalarının sayısı şu ile belirlenir:
Böylece n uzunluğunda olup da c kadar sıkıştırılamayan en az
kadar bit katarı kalır. Olasılığı belirlemek için bunu 2n ile bölmek yeterlidir.
Bu teorem comp.compression FAQ 11 Ekim 2006 tarihinde Wayback Machine sitesinde . belgesindeki pek çok meydan okuma için temel teşkil eder. Bu teoremin varlığına rağmen zaman zaman bazı kişiler (bunlara çatlak denir) herhangi bir veriyi kayıpsız olarak büyük ölçüde sıkıştırabilen algoritmalar geliştirdiklerini iddia ederler. Bkz.
Chaitin'in eksiklik teoremi
Biliyoruz ki çoğu karakter katarı karmaşıktır yani önemli ölçüde "sıkıştırılamaz". Bununla birlikte eğer uzunluğu belli bir eşik değerini geçerse o karakter katarının karmaşık olduğu şekilsel olarak ispatlanamaz. Detaylı olarak söylemek gerekirse doğal sayılar için belli bir S alın. Bu aksiyomatik sistem yeterince güçlü olmalıdır yani karakter katarlarının karmaşıklığı ile ilgili A önermelerine FA formülleri karşılık getirilebilmelidir ve bunlar da S içinde olmalıdır. Bu karşılık getirme, ilişkilendirme, şu özelliğe sahip olmalıdır: eğer FA ifadesi S içindeki aksiyomlardan yola çıkılmak sureti ile ispatlanabiliyorsa o zaman buna karşılık gelen A önermesi doğrudur. Bu şekilleştirme (formalizasyon) gibi yapay bir kodlama ile yapılabileceği gibi S sisteminin kast edilen yorumuna daha uygun olan bir şekilleştirme ile de yapılabilir.
Teorem. Öyle bir L sabiti vardır ki (sadece belli bir aksiyomatik sisteme ve seçilmiş belli bir tanımlama diline bağlı olan) aşağıdaki
ifadesinin S aksiyomatik sisteminde ispatlanabileceği bir s karakter katarı olmasın.
Hemen hemen sıkıştırılamaz olan karakter katarlarının bolluğundan ötürü bu ifadelerin çoğunun doğru olmak zorunda olduğuna dikkat edin.
Bu sonucun ispatı için kendine gönderme (self-referantial) yapısı kullanılır. Olmayana ergi yöntemi ile teoremdeki iddianın yanlış olduğunu var sayalım, bu durumda:
- Varsayım (X): Herhangi bir n tam sayısı için öyle bir s katarı vardır ki S sisteminde "K(s) ≥ n" ifadesinin ispatı mevcuttur (ifadenin S sisteminde şekilsel olarak yazılabildiğini var sayıyoruz).
S sistemindeki tüm şekilsel ispatları numaralandırmak için girdi olarak n tam sayısını alan ve bir ispatı çıktı olarak üreten aşağıdaki gibi bir prosedür bulabiliriz
function NinciIspat(int n)
Bu fonksiyon tüm ispatları numaralandırır. Bu ispatların bir kısmı bizim ilgilenmediğimiz formüllerin ispatlarıdır (örneğin Fermat'nın küçük teoremi, Fermat'nın son teoremi gibi ispatlar NinciIspat fonksiyonu tarafından üretilebilir ispatlardır). İspatların küçük bir kısmı ise K(s) ≥ n şeklindeki karmaşıklık formüllerinin ispatlarıdır (burada s ve n S dilindeki sabitlerdir). Öyle bir
function NinciIspatKarmasiklikFormulunuIspatlar(int n)
programı vardır ki ninci ispatın K(s) ≥ L karmaşıklık formülünün ispatı olup olmadığını belirler. s karakter katarı ve L tam sayısı şu programlar tarafından hesaplanabilir:
function KatarNinciIspat(int n)
function KarmasiklikAltSinirNinciIspat(int n)
Aşağıdaki programı ele alalım
function KarmasikligiIspatlanabilirKarakterKatariUret(int n) for i = 1 to infinity: if NinciIspatKarmasiklikFormulunuIspatlar(i) and KarmasiklikAltSinirNinciIspat(i) >= n return KatarNinciIspat(i) quit
Bir n tam sayısı verildiğinde bu program S siteminde K(s) ≥ n formülünün ispatını ve buna karşılık gelen katarı bulana dek tüm ispatları dener. Program bizim Varsayım (X) koşulumuz sağlanınca durur. Şimdi bu programın uzunluğuna U diyelim. Öyle bir n0 tam sayısı vardır ki U + log2(n0) + C < n0, burada C aşağıdaki programın getirdiği ek uzunluktur:
function IspatlanabilirParadoksalKarakterKatariUret() return KarmasikligiIspatlanabilirKarmasikKarakterKatariUret(n0) quit
IspatlanabilirParadoksalKarakterKatariUret programı K(s) ≥ n0 formülünün S sisteminde şekilsel olarak ispatlanabildiği s karakter katarını üretir. K(s) ≥ n0 ifadesi tek başına doğrudur. Ancak s aynı zamanda uzunluğu U+log2(n0)+C olan program tarafından da tanımlanabilir dolayısı ile karmaşıklığı n0dan azdır. Bu da çelişkiye yol açar ve Varsayım (X) olarak söylediklerimizin doğru olmadığını gösterir.
özelliklerini ispatlamak için de benzer fikirler kullanılır.
İstatistiksel/tümevarımsal çıkarım ve makina öğrenme alanlarındaki prensibi ve D.M. Boulton tarafından 1968 yılında geliştirilmiştir. EKİU (önsel inançları işin içine katar) ve bilgi kuramsaldır. İstatistiksel invaryansın istenen özelliklerine sahiptir (çıkarım yeniden parametikleştirme ile dönüştürülebilir, söz gelimi kutupsal koordinatlardan Kartezyen koordinatlara), istatistiksel tutarlılığı vardır (en zor problemler için bile EKİU herhangi bir modele yakınsar) ve etkindir (EKİU herhangi bir modele en kısa sürede yakınsar). C.S. Wallace 14 Haziran 2006 tarihinde Wayback Machine sitesinde . ve D.L. Dowe, EKİU ile algoritmik bilgi teorisi (veya Kolmogorov karmaşıklığı) arasındaki şekilsel ilişkiyi 1999 yılında göstermişlerdir.
Kaynakça
- Ming Li and Paul Vitányi, An Introduction to Kolmogorov Complexity and Its Applications, Springer, 1997. Giriş bölümünün tam metni (İngilizce)17 Mayıs 2008 tarihinde Wayback Machine sitesinde ..
- Yu Manin, A Course in Mathematical Logic, Springer-Verlag, 1977.
- Michael Sipser, Introduction to the Theory of Computation, PWS Publishing Company, 1997.
- Rónyai Lajos, Ivanyos Gábor, Szabó Réka, Algoritmusok. TypoTeX, 1999.
Dış bağlantılar
- Solomonoff'un IDSIA sayfası 14 Haziran 2006 tarihinde Wayback Machine sitesinde .
- Schmidhuber'in algoritmik bilgi genelleştirmeleri 18 Mayıs 2006 tarihinde Wayback Machine sitesinde .
- Li & Vitanyi'nin ders kitabı 14 Mayıs 2006 tarihinde Wayback Machine sitesinde .
- David Dowe12 Şubat 2006 tarihinde Wayback Machine sitesinde .'in En Kısa İleti Uzunluğu (Minimum Message Length (MML))9 Şubat 2006 tarihinde Wayback Machine sitesinde . ve Occam'ın usturası 16 Mayıs 2006 tarihinde Wayback Machine sitesinde . sayfaları.
- P. Grunwald, M. A. Pitt and I. J. Myung (ed.), Advances in Minimum Description Length: Theory and Applications19 Haziran 2006 tarihinde Wayback Machine sitesinde ., M.I.T. Press, April 2005, .
- basit bir açıklama sunar.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Kolmogorov karmasikligi tanimsal karmasiklik Kolmogorov Chaitin karmasikligi stokastik karmasiklik algoritmik entropi veya program boyu karmasikligi olarak da bilinir bilgisayar biliminde bir metin parcasi gibi bir nesneyi tanimlamak icin kullanilmasi gereken bilgi islemsel kaynaklarin olcusu Ornegin asagidaki 100 karakter uzunlugundaki iki ele alinirsa 0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 1100100001100001110111101110110011111010010000100101011110010110001101111111010001100011011001110111 Birinci karakter katari Turkce 01 in 50 tekrari ifadesi ile kisaca ve tam olarak tanimlanabilir Ikinci karakter katarinin bu sekilde tanimlanmasi mumkun degildir Bu karakter katarini tanimlananin en kisa yolu kendisini yazmaktir Daha sekilsel olarak soylemek gerekirse bir karakter katarinin karmasikligi sabit bir tanimlama dilinde o karakter katarinin en kisa ifade edilisidir Asagida tanimlama dilinin secimi ile karmasiklik arasindaki hassas iliski ele alinmistir Bir karakter katarinin Kolmogorov karmasikliginin karakter katarinin uzunlugundan daha buyuk olamayacagi gosterilebilir Kolmogorov karmasikliklari kendi uzunluklarina kiyasla daha kisa olan karakter katarlari karmasik kabul edilmez Kolmogorov karmasikligi kavrami sasirtici olcude derin bir kavramdir Bu kavram kullanilarak Godel in eksiklik teoremi ve ile ilgili imkansizlik sonuclarini ifade ve ispat icin kullanilabilir Algoritmik bilgi teorisi bilgisayar bilimlerinin bir alt alani olup karakter katarlarinin ve diger veri yapilarinin Kolmogorov karmasikligi ve diger turden karmasiklarini incelenmesi ile ilgilidir Bu calisma alani Andrey Kolmogorov ve tarafindan 1960 larda kurulmustur Algoritmik bilgi veya Kolmogorov karmasikliginin pek cok cesitlemesi vardir Bunlardan en yaygin olani kendi kendini ayiran programlara dayanmaktadir ve 1974 tarafindan ortaya konmustur TanimKolmogorov karmasikligini tanimlamak icin once karakter katarlari icin bir tanimlama dili belirlemeliyiz Boyle bir tanimlama dili Lisp Pascal veya Java bytecode gibi programlama dillerinden birine dayanabilir Eger P x ciktisini ureten bir program ise P xin tanimidir Tanimlamanin uzunlugu P programinin kaynak kodunun bir karakter katari olarak uzunlugudur Pnin uzunlugu belirlenirken P icinde kullanilan altrutinler de hesaba katilmalidir P programindaki herhangi bir n sabitinin uzunlugu nyi temsil etmek icin gerekli bit sayisidir ki bu da kabaca log2n kadardir Bir baska yontem de Turing makineleri TM icin bir kodlama secmektir Burada kodlama her M Turing makinesini bit dizisi olan lt M gt ile iliskilendiren bir fonksiyondur Eger M w girdisine karsilik x ciktisini ureten bir TM ise bu durumda birlestirilmis lt M gt w xin bir tanimidir Kuramsal analiz icin bu yaklasim sekilsel kanitlar kurmaya daha yatkindir ve arastirmacilar tarafindan tercih edilmektedir Bu makalede ise biz bu kadar sekilsel olmayan bir yaklasim kullanacagiz Bir tanimlama dili sabitle Herhangi bir s karakter katarinin en az bir tanimi vardir ve o da su programdir function SabitKatarUret return s snin tum tanimlari arasinda en kisa olani d s seklinde gosterilir Eger ayni en kisa uzunlukta birden fazla program varsa herhangi birini sec Bunun icin soz gelimi sozluk sirasina gore ilk geleni sec d s snin en kisa tanimidir snin Kolmogorov karmasikligi K s olarak yazilir ve su sekilde tanimlanir K s d s displaystyle K s d s quad Diger bir deyisle K s snin en kisa taniminin uzunlugudur Simdi de tanimlama dilinin Kyi nasil etkiledigine bakalim kullanilan dili degistirmenin etkisinin sinirli oldugunu gosterelim Teorem Eger K1 ve K2 L1 ve L2 tanimla dilleri kullanilarak elde edilmis karmasiklik fonksiyonlari ise o zaman sadece L1 ve L2ye bagli oyle bir c sabiti vardir ki K1 s K2 s c s displaystyle K 1 s K 2 s leq c quad forall s esitsizligini saglar Bakisimdan oturu tum s bitdizileri icin oyle bir c sabiti vardir ki K1 s K2 s c displaystyle K 1 s leq K 2 s c esitsizligi saglanir onermesini ispat etmek yeterlidir Bunun neden boyle oldugunu anlamak icin L2 dili icin yorumlayici olarak calisan ve L1 dilinde yazilmis bir fonksiyon olsun function DilYorumla string p burada p L2 dilinde yazilmis bir programdir Yorumlayici su ozellige sahiptir p girdisi uzerinde DilYorumla fonksiyonunu calistirmak pyi calistirmanin sonucunu dondurur Dolayisi ile eger p L2 dilinde bir program ve snin en kisa tanimi ise DilYorumla P s karakter katarini dondurur snin bu taniminin uzunlugu asagidakilerin toplamidir DilYorumla programinin uzunlugu Pnin uzunlugu ki bu da tanim itibariyla K2 s dir Boylece yukarida sozu gecen ust sinirin varligi ispatlanmis olur Ayrica bkz Temel sonuclarAsagida tek bir tanimlama oldugunu kabul edip snin karmasikligini K s olarak gosterecegiz Bir karakter katarinin en kisa taniminin katarin kendisinden cok daha uzun olamayacagini gormek zor degildir syi cikti olarak veren yukaridaki SabitKatarUret programi snin kendisinden sabit miktarda daha uzundur Teorem Oyle bir c sabiti vardir ki K s s c s displaystyle K s leq s c quad forall s esitsizligi saglanir Ilk sasirtici sonuc Knin etkin olarak hesaplanamayacagi gercegidir Teorem K hesaplanabilir bir fonksiyon degildir Bir baska deyisle s karakter katarini girdi olarak alip cikti olarak K s uretebilecek bir program yazilamaz Bunu olmayana ergi yontemi ile gosterelim Asagidaki gibi bir program bulundugunu var sayalim function KolmogorovKarmasikligi string s oyle ki bu program girdi olarak s karakter katarini alip cikti olarak da K s karmasikligini versin Simdi de su programi dusunelim function KarmasikKarakterKatariUret int n for i 1 to infinity for each string s of length exactly i if KolmogorovKarmasikligi s gt n return s quit Bu program KolmogorovKarmasikligi programini bir altrutin olarak cagirir ve en kisa olanindan baslayarak en az n karmasikligina sahip bir karakter katari bulana dek tum karakter katarlarini dener sonra da buldugu karakter katarini dondurur Dolayisi ile herhangi bir n pozitif tam sayisi verildiginde Kolmogorov karmasikligi en az n kadar buyuk olan bir karakter katari uretir Bu programin kendisinin uzunlugu sabit bir U degeridir KarmasikKarakterKatariUret programininin girdisi n tam sayisidir ve burada n sayisinin boyu bunu temsil etmek icin gerekli bit sayisi ile olculur ki bu da log2 n dir Simdi de asagidaki programi ele alalim function ParadoksalKarakterKatariUret return KarmasikKarakterKatariUret n0 Bu program KarmasikKarakterKatariUret programini altrutin olarak cagirmaktadir ve n0 isimli bir serbest parametresi vardir Program karmasikligi en az n0 olan bir s karakter katari uretir n0 icin uygun bir deger verilirse bir celiski elde ederiz Bu degeri secmek icin snin uzunlugu en fazla U log2 n0 C displaystyle U log 2 n 0 C quad olan ParadoksalKarakterKatariUret programi tarafindan uretildigine dikkat edelim burada C ParadoksalKarakterKatariUret tarafindan eklenmis sabit bir fazlaliktir n log2 n degerinden daha hizli buyudugu icin asagidaki esitsizligi saglayan bir n0 degeri vardir U log2 n0 C n0 displaystyle U log 2 n 0 C leq n 0 quad Ancak bu durum en az n0 kadar bir karmasiklik degeri oldugu tanimi ile celisir Dolayisi ile KolmogorovKarmasikligi olarak isimlendirilmis program istenen Kolmogorov karmasikliginda karakter katarlari uretiyor olamaz Olmayan ergi ile yapilan bu ispat benzer n yirmi Ingilizce sozcukten daha az sozcuk ile tanimlanamayan en kucuk tam sayi olsun Az once bu sayiyi yirmiden az Ingilizce sozcuk ile tanimladim SikistirmaAncak K s degeri icin ust sinirlari hesaplamak basit bir istir uygun bir yontemle s karakter katarini sikistir secilen dilde sikistirma yonteminin tersi olan acma yontemini yaz bu acici programin kaynak kodunu sikistirilmis karakter katarina ekle ve sonucta elde ettigin karakter katarinin uzunlugunu olc Bir s karakter katari eger uzunlugu s c degerini gecmeyecek sekilde tanimlanabiliyorsa o zaman c kadar sikistirilabilir demektir Bu da K s s c demektir Aksi takdirde s karakter katari c kadar sikistirilabilir degildir En az bir bit kadar bile sikistirilamayan karakter katarina kisaca sikistirilamaz denir Guvercin deligi ilkesine gore sikistirilamaz karakter katarlari mevcut olmak zorundadir cunku n uzunlugunda 2n adet bit katari varken sadece 2n 1 tane daha kisa katar vardir ki bunlarin da boyu n 1 kadardir Ayni sebepten oturu cogu karakter katari karmasiktir yani cok fazla sikistirilamazlar Yani K s s katarinin bit cinsinden uzunlugu olan s degerinden cok daha kucuk olamaz Bunu daha detayli olarak soylemek icin belli bir n degeri alalim Uzunlugu n olan n farkli bit katari vardir olasilik dagilimina gore bu bit katari uzayinda n uzunlugundaki her bit katarinin agirligi 2 n kadardir Teorem n uzunlugundaki bit katarlari uzayindaki uniform olasilik dagilimina gore herhangi bir bit katarinin c kadar sikistirilamama olasiligi en az 1 2 c 1 2 n kadardir Bu onermeyi ispatlamak icin suna dikkat edelim n c uzunlugunu gecmeyen katar tanimlamalarinin sayisi su ile belirlenir 1 2 22 2n c 2n c 1 1 displaystyle 1 2 2 2 cdots 2 n c 2 n c 1 1 quad Boylece n uzunlugunda olup da c kadar sikistirilamayan en az 2n 2n c 1 1 displaystyle 2 n 2 n c 1 1 quad kadar bit katari kalir Olasiligi belirlemek icin bunu 2n ile bolmek yeterlidir Bu teorem comp compression FAQ 11 Ekim 2006 tarihinde Wayback Machine sitesinde belgesindeki pek cok meydan okuma icin temel teskil eder Bu teoremin varligina ragmen zaman zaman bazi kisiler bunlara catlak denir herhangi bir veriyi kayipsiz olarak buyuk olcude sikistirabilen algoritmalar gelistirdiklerini iddia ederler Bkz Chaitin in eksiklik teoremiBiliyoruz ki cogu karakter katari karmasiktir yani onemli olcude sikistirilamaz Bununla birlikte eger uzunlugu belli bir esik degerini gecerse o karakter katarinin karmasik oldugu sekilsel olarak ispatlanamaz Detayli olarak soylemek gerekirse dogal sayilar icin belli bir S alin Bu aksiyomatik sistem yeterince guclu olmalidir yani karakter katarlarinin karmasikligi ile ilgili A onermelerine FA formulleri karsilik getirilebilmelidir ve bunlar da S icinde olmalidir Bu karsilik getirme iliskilendirme su ozellige sahip olmalidir eger FA ifadesi S icindeki aksiyomlardan yola cikilmak sureti ile ispatlanabiliyorsa o zaman buna karsilik gelen A onermesi dogrudur Bu sekillestirme formalizasyon gibi yapay bir kodlama ile yapilabilecegi gibi S sisteminin kast edilen yorumuna daha uygun olan bir sekillestirme ile de yapilabilir Teorem Oyle bir L sabiti vardir ki sadece belli bir aksiyomatik sisteme ve secilmis belli bir tanimlama diline bagli olan asagidaki K s L displaystyle K s geq L quad ifadesinin S aksiyomatik sisteminde ispatlanabilecegi bir s karakter katari olmasin Hemen hemen sikistirilamaz olan karakter katarlarinin bollugundan oturu bu ifadelerin cogunun dogru olmak zorunda olduguna dikkat edin Bu sonucun ispati icin kendine gonderme self referantial yapisi kullanilir Olmayana ergi yontemi ile teoremdeki iddianin yanlis oldugunu var sayalim bu durumda Varsayim X Herhangi bir n tam sayisi icin oyle bir s katari vardir ki S sisteminde K s n ifadesinin ispati mevcuttur ifadenin S sisteminde sekilsel olarak yazilabildigini var sayiyoruz S sistemindeki tum sekilsel ispatlari numaralandirmak icin girdi olarak n tam sayisini alan ve bir ispati cikti olarak ureten asagidaki gibi bir prosedur bulabiliriz function NinciIspat int n Bu fonksiyon tum ispatlari numaralandirir Bu ispatlarin bir kismi bizim ilgilenmedigimiz formullerin ispatlaridir ornegin Fermat nin kucuk teoremi Fermat nin son teoremi gibi ispatlar NinciIspat fonksiyonu tarafindan uretilebilir ispatlardir Ispatlarin kucuk bir kismi ise K s n seklindeki karmasiklik formullerinin ispatlaridir burada s ve n S dilindeki sabitlerdir Oyle bir function NinciIspatKarmasiklikFormulunuIspatlar int n programi vardir ki ninci ispatin K s L karmasiklik formulunun ispati olup olmadigini belirler s karakter katari ve L tam sayisi su programlar tarafindan hesaplanabilir function KatarNinciIspat int n function KarmasiklikAltSinirNinciIspat int n Asagidaki programi ele alalim function KarmasikligiIspatlanabilirKarakterKatariUret int n for i 1 to infinity if NinciIspatKarmasiklikFormulunuIspatlar i and KarmasiklikAltSinirNinciIspat i gt n return KatarNinciIspat i quit Bir n tam sayisi verildiginde bu program S siteminde K s n formulunun ispatini ve buna karsilik gelen katari bulana dek tum ispatlari dener Program bizim Varsayim X kosulumuz saglaninca durur Simdi bu programin uzunluguna U diyelim Oyle bir n0 tam sayisi vardir ki U log2 n0 C lt n0 burada C asagidaki programin getirdigi ek uzunluktur function IspatlanabilirParadoksalKarakterKatariUret return KarmasikligiIspatlanabilirKarmasikKarakterKatariUret n0 quit IspatlanabilirParadoksalKarakterKatariUret programi K s n0 formulunun S sisteminde sekilsel olarak ispatlanabildigi s karakter katarini uretir K s n0 ifadesi tek basina dogrudur Ancak s ayni zamanda uzunlugu U log2 n0 C olan program tarafindan da tanimlanabilir dolayisi ile karmasikligi n0dan azdir Bu da celiskiye yol acar ve Varsayim X olarak soylediklerimizin dogru olmadigini gosterir ozelliklerini ispatlamak icin de benzer fikirler kullanilir Istatistiksel tumevarimsal cikarim ve makina ogrenme alanlarindaki prensibi ve D M Boulton tarafindan 1968 yilinda gelistirilmistir EKIU onsel inanclari isin icine katar ve bilgi kuramsaldir Istatistiksel invaryansin istenen ozelliklerine sahiptir cikarim yeniden parametiklestirme ile donusturulebilir soz gelimi kutupsal koordinatlardan Kartezyen koordinatlara istatistiksel tutarliligi vardir en zor problemler icin bile EKIU herhangi bir modele yakinsar ve etkindir EKIU herhangi bir modele en kisa surede yakinsar C S Wallace 14 Haziran 2006 tarihinde Wayback Machine sitesinde ve D L Dowe EKIU ile algoritmik bilgi teorisi veya Kolmogorov karmasikligi arasindaki sekilsel iliskiyi 1999 yilinda gostermislerdir KaynakcaMing Li and Paul Vitanyi An Introduction to Kolmogorov Complexity and Its Applications Springer 1997 Giris bolumunun tam metni Ingilizce 17 Mayis 2008 tarihinde Wayback Machine sitesinde Yu Manin A Course in Mathematical Logic Springer Verlag 1977 Michael Sipser Introduction to the Theory of Computation PWS Publishing Company 1997 Ronyai Lajos Ivanyos Gabor Szabo Reka Algoritmusok TypoTeX 1999 Dis baglantilarSolomonoff un IDSIA sayfasi 14 Haziran 2006 tarihinde Wayback Machine sitesinde Schmidhuber in algoritmik bilgi genellestirmeleri 18 Mayis 2006 tarihinde Wayback Machine sitesinde Li amp Vitanyi nin ders kitabi 14 Mayis 2006 tarihinde Wayback Machine sitesinde David Dowe12 Subat 2006 tarihinde Wayback Machine sitesinde in En Kisa Ileti Uzunlugu Minimum Message Length MML 9 Subat 2006 tarihinde Wayback Machine sitesinde ve Occam in usturasi 16 Mayis 2006 tarihinde Wayback Machine sitesinde sayfalari P Grunwald M A Pitt and I J Myung ed Advances in Minimum Description Length Theory and Applications19 Haziran 2006 tarihinde Wayback Machine sitesinde M I T Press April 2005 ISBN 0 262 07262 9 basit bir aciklama sunar