Andmete kokkusurumise paradoksid

Andmete kokkusurumise paradoksid Andmete kokkusurumise ĂŒlesanne oma lihtsaimas vormis vĂ”ib seonduda numbrite ja nende tĂ€histustega. Numbrid saab tĂ€histada numbritega (â€žĂŒheteistkĂŒmme“ 11 kohta), matemaatiliste avaldarvutustega („kaks kahekĂŒmnendas“ 1048576 kohta), stringiavaldusena („viis ĂŒheksandikku“ 99999 kohta), omadussĂ”nadega („selle looma number“ 666 kohta, „Turingi surma aasta“ 1954 kohta), vĂ”i nende suvaliste kombinatsioonide kaudu. Sobib iga tĂ€histus, mille alusel vestluskaaslane suudab ĂŒheselt mÀÀratleda, millest numbrist jutt. On ilmne, et vestluskaaslasele on tĂ”husam öelda „kaheksa faktoriaal“ kui sellele vastav tĂ€histus „nelikĂŒmmend tuhat kolmkĂŒmmend“. Siin tekib loogiline kĂŒsimus: milline tĂ€histus on antud numbri jaoks kĂ”ige lĂŒhem?

Filosoof Bertrand Russell avaldas 1908. aastal „Berry paradoksi“, mis kĂ€sitleb numbri tĂ€histamise kĂŒsimust vastupidiselt: milline on vĂ€ikseim number, mille tĂ€histamiseks ei piisa kaheksast kĂŒmnest tĂ€hest?
Selline number peab eksisteerima: kaheksast kĂŒmnest vene tĂ€hest ja tĂŒhikutest saab kokku vaid 3480 tĂ€hist, seega saab kaheksast kĂŒmnest tĂ€hest tĂ€histada mitte rohkem kui 3480 numbrit. Seega, mingit numbrit, mis ei ole suurem kui 3480, ei saa sel moel tĂ€histada.

Seega vastab sellele numbrile tĂ€histus „vĂ€ikseim number, mille tĂ€histamiseks ei piisa kaheksast kĂŒmnest tĂ€hest“, kus on kokku 78 tĂ€hte! Ühest kĂŒljest peab see number existeerima; teisest kĂŒljest, kui see number eksisteerib, siis ei vasta selle tĂ€histus sellele. Paradoks!

Lihtsaim viis sellest paradoksist kĂ”rvale hiilida on viidata sĂ”naliste tĂ€histuste mitteformaalusele. Nagu, kui tĂ€histustes oleks aktsepteeritud vaid kindel ja mÀÀratletud vĂ€ljendite kogum, siis „vĂ€ikseim number, mille tĂ€histamiseks ei piisa kaheksast kĂŒmnest tĂ€hest“ ei oleks see kehtiv tĂ€histus, samas kui praktiliselt kasulikud tĂ€histused, nagu „kaheksa faktoriaal“ jÀÀksid kehtivaks.

Kas on olemas formaalseid viise numbritega tehtavate toimingute (algoritmi) jĂ€rjekorra kirjeldamiseks? Jah, ja kĂŒllaga - neid nimetatakse programmeerimiskeelteks. Kasutame sĂ”naliste tĂ€histuste asemel programme (nĂ€iteks Pythonis), mis vĂ€ljastavad vajalikud numbrid. NĂ€iteks viis ĂŒheksandikku vĂ”iks sobida programm print("9"*5). JĂ€tkuvalt huvitume kĂ”ige lĂŒhemast programmist antud arvu jaoks. Sellise programmi pikkust nimetatakse kolmogorovi keerukuseks arvule; see on teoreetiline piir, mille vĂ”rra antud arvu saab kokku suruda.

Berry paradoksi asemel vĂ”ib nĂŒĂŒd kaaluda sarnast: milline on kĂ”ige vĂ€iksem number, mille vĂ€ljundiks ei piisa kilobaidist programmist?

Arutame nagu varem: eksisteerib 2561024 kilobaidi teksti, seega kilobaidiprogrammidega saab vĂ€ljundiks saada mitte rohkem kui 2561024 numbrit. Seega mingit arvu, mis ei ĂŒleta 2561024, ei saa sellisel viisil vĂ€ljundiks saada.

Kuid kirjutame Pythonis programmi, mis genereerib kÔik vÔimalikke kilobaidi texte, kÀivitab need ja kui need vÀljastavad mingi numbri - lisab selle numbri saavutuste sÔnastikku. PÀrast kÔigi 2561024 variandi kontrollimist, kui kaua see ka ei vÔtaks - programm otsib, milline on see kÔige vÀiksem number, mis puudub sÔnastikust, ja vÀljastab selle numbri. Tundub ilmselge, et selline programm mahtuks kilobaidi koodi - ja vÀljastaks just selle numbri, mida ei saa kilobaidiprogrammi abil vÀljastada!

Kus on nĂŒĂŒd nĂ”ks? Mitteformaalsust nimelt ei saa enam kasuks tuua!

Kui teid hÀirib, et meie programm nÔuab tööks astronoomilist hulka mÀlu - sÔnastik (vÔi bitimassiiv) 2561024 elemendist - siis on vÔimalik kÔik see ka ilma selleta teostada: igale 2561024 numbrile jÀrjestikku jÀrjestada kÔiki 2561024 vÔimalikke programme, kuni leitakse sobiv. Pole oluline, et selline lÀbivaatamine kestab vÀga kaua: pÀrast kontrollimist vÀhem kui (2561024)2 paari numbri ja programmi vahel see ju lÔpuks lÔpeb ja leiab selle kauaoodatud numbri.

VÔi ei lÔpeta? Sest kÔigi katsetatavate programmide seas satume me while True: pass (ja tema funktsionaalsed analoogid) - ja edasi niisuguse programmi kontrollimisega ei saagi edasi minna!

Erinevalt Berry paradoksist, kus nĂ”ks oli mitteformaalsuses, on teises olukorras meil hĂ€sti maskeeritud ĂŒmberformuleerimine «peatumisprobleemist». Asi on selles, et programmi pĂ”hjal ei ole vĂ”imalik selle vĂ€ljundit lĂ”pliku ajaga mÀÀrata. Eriti kolmogorovi keerukus on arvutamatu.: ei ole olemas mingit algoritmi, mis vĂ”imaldaks antud arvu jaoks leida kĂ”ige lĂŒhema programmi pikkust, mis seda arvu vĂ€ljastab; seega ei ole lahendust ka Berra ĂŒlesandele — leida antud arvu jaoks kĂ”ige lĂŒhema sĂ”nalise tĂ€histuse pikkust.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster