Kolmogorovkomplexitet

Från Wikipedia

Kolmogorovkomplexiteten av ett objekt, såsom en textsträng, är ett mått på beräkningsresurserna som krävs för att specificera objektet eller med andra ord ett mått på hur kaotiskt objektet är. Det tillhör området algoritmisk informationsteori och är döpt efter Andrej Kolmogorov, som publicerade artiklar under 1960-talet om ämnet.[1]

Vi betraktar följande två strängar:

101010101010101010101010101010101010101010
111000110100011111100001001010001001010000

Det är lätt att se vilken av dessa som är mer kaotisk. Den första strängen kan kort beskrivas som "10" skrivet 21 gånger. Den andra strängen blir däremot svårare att beskriva och har därmed högre Kolmogorovkomplexitet än den första. Som det formellt beskrivs nedan, mäter Kolmogorovkomplexiteten den minsta mängden resurser som behövs för att beskriva ett objekt. Men komplexiteten kan inte beräknas utan endast approximeras uppifrån.

Definition[redigera | redigera wikitext]

Säg att vi har objektet τ, en beskrivning av denna kan då sägas vara något ω om,

.

Den formella versionen av Kolmogorovkomplexitet är

där U är en Universell Turingmaskin, d.v.s. en maskin som kan simulera en godtycklig maskin för godtycklig indata.

Egenskaper[redigera | redigera wikitext]

  1. , c är konstant.
  2. För alla delvis beräknebara h är , där ch är längden av en beskrivning av h.

Kolmogorovslump[redigera | redigera wikitext]

Sats: För alla n finns det något x med |x| = n så att . Detta x kallar vi för kolmogorovslump.

Bevis: Antag motsatsen. Då är för alla x. Alltså måste det existera ett program px, och . Om är ej heller . Men det finns program med kortare längd än n, och strängar av längden n. Om alla strängar av längd n har ett program som är kortare än n, måste det finnas ett program som producerar två strängar. Uppenbarligen är det omöjligt och därav måste det finnas minst en sträng av längd n som har ett program av minst längden n.

Användningsområden[redigera | redigera wikitext]

Kolmogorovkomplexitet kan tillämpas i ett stort antal områden, bland annat har det tillämpats i

  • Per Martin-Löfs test för slumpmässighet, informationsteori för individuella objekt
  • allmän sannolikhet, induktivt resonemang och interferens, förutsägbarhet
  • kombinatorik, okompressibilitetsmetoden, grafteori
  • logiskt djup, universell optimal sökning, beräkningstermodynamik, statistisk termodynamik och Boltzmann-entropi

Till exempel kan Kolmogorovkomplexitet tillämpas för att bevisa ett antal klassiska satser, som i följande exempel där teorin används för att bevisa att det finns oändligt många primtal.

Bevis för att det finns oändligt antal primtal: Antag först motsatsen, att det finns ett ändligt antal primtal. I så fall kan vi säga att det finns det k stycken primtal, p1, p2,...,pk för k . Vi kan då välja ett tal m och skriva det som en produkt av primtalen .

Låt m vara Kolmogorovslumpen av längden n. Vi kan påstå att det ger en kort beskrivning av m. Först för att . Då är . Vilket ger . Därav då och blir . Då m är slumpmässigt valt blir falskt för stora n.

Historik[redigera | redigera wikitext]

Kolmogorovkomplexitet gjordes känd av matematikern Andrej Kolmogorov, men definierades tidigare av Raymond J. Solomonoff som en del i hans arbete kring algoritmisk informationsteori [2] och matematisk induktion och även senare av Gregory J. Chaitin, som formulerade en rigorös definition i den artikel han publicerade 1969.[3] Motivationen till Kolmogorovs arbete var informationsteoretisk och inriktad på slump/kaos medan Solomonoffs var motiverat av matematisk induktion.

Paralleller till entropi[redigera | redigera wikitext]

I somliga fall kallas teorin för algoritmisk entropi. Detta härrör från att entropi i ett system är ett mått på systemets kaos. Inom informationsteori refererar entropi vanligast till Shannons entropi som delar flertalet egenskaper med Kolmogorovkomplexitet.

Referenser[redigera | redigera wikitext]

Noter[redigera | redigera wikitext]

  1. ^ Kolmogorov, Andrey (1963). ”On Tables of Random Numbers”. Sankhyā Ser. A. 25: sid. 369–375. 
  2. ^ Solomonoff, Ray (February 4, 1960). ”A Preliminary Report on a General Theory of Inductive Inference” (PDF). Report V-131 (Cambridge, Ma.: Zator Co.). http://world.std.com/~rjs/rayfeb60.pdf.  revision, Nov., 1960.
  3. ^ Chaitin, Gregory J. (1969-07-01). ”On the Simplicity and Speed of Programs for Computing Infinite Sets of Natural Numbers”. Journal of the ACM 16 (3): sid. 407–422. doi:10.1145/321526.321530. ISSN 0004-5411. https://doi.org/10.1145/321526.321530. Läst 28 augusti 2022. 

Källor[redigera | redigera wikitext]