Kolmogorovkomplexitet

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

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

  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

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

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

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

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

Noter

Källor