Někdejší profesor Fakulty pozemního stavitelství Českého vysokého učení technického Radim Servít byl podle všeho skutečně vůl. Na rozdíl od císaře pána; v jeho případě, jak se ukázalo v běhu času, byl naopak vůl každý, kdo si to myslel.
Proč ale hovoříme o Servítovi: představme si řadu N kabinek, u každé z nich dveře, a na dveřích nápis, že Servít je vůl. V případě, že tento nápis bude na všech dveřích, nenese uspořádaná N-tice žádnou další informaci. Pokud tam arci nápis být může a nemusí, mají záchodky informační hodnotu právě N bitů, tedy, příkladmo, půjde-li o zařízení osmikabinkové, jeden byte. Je arci možné představit si záchodky, které by měly neceločíselný, případně záporný počet kabinek, a tedy informační nosič obsahující neceločíselný a/nebo záporný počet bitů?
Z hlediska Shannonovy entropie, která se v theorické informatice pro měření obsahu informace používá, je odpověď nasnadě. Informační obsah je vyjádřen počtem stavů, který může určitý systém mít, a vyjadřuje se binárním logarithmem tohoto počtu: tedy, příkladmo 256 stavů dává log2 256 = 8 bitů informace. Nosič třístavový bude mít neceločíselný počet bitů, protože log2 3 ≈ 1,585 bitů (neboli jeden trit). Jeden bit nám pro vyjádření takové hodnoty nestačí, ovšem dva bity jsou na druhé straně zbytečně moc.
K těmto úvahám jsem dospěl, když se mne na sociálních sítích kdosi zeptal, proč nechci ze svého systém vymazat právě ani bit, a nikoli ani byte, a další požádal, zda by bylo možné nějak pro laiky srozumitelně vysvětlit, co znamená např. půl bitu.
Zamyslel jsem se, a zjistil, že věc je méně jednoduchá, než se na první pohled jeví. Nejprve mne napadlo, že bychom mohli bit rozdělit na dvě poloviny, řekněme, levou a pravou, a výsledek z nich skládat aplikací operace XOR: tedy b = b1 ⊗ b2. K určení výsledku by nám nestačil ani levý, ani pravý půlbit, ale museli bychom znát oba dva.
Jenže to není ono, protože ve skutečnosti se jedná o celé bity, a jejich složením dostáváme víc informace, než kolik je b: 0 ⊗ 0 je sice rovno 1 ⊗ 1, ale není to jedno a totéž. Tudy tedy cesta nepovede.
Zkusme to jinak. Co kdyby půlbit nesl informaci, zda je ve výsledku aspoň jedna jednička, případně nula. Jeden nám opět nestačí, k výsledku se dobereme až složením dvou takových informací: je-li v b aspoň jedna jednička a aspoň jedna nula, musí to být jednička, pokud tam je aspoň jedna jednička a žádná nula, je to nula, je-li tam nula jedniček a aspoň jedna nula, je to také nula, a není-li tam ani jedna jednička a ani jedna nula, máme něco špatně a měli bychom se nad sebou zamyslet.
To už je lepší, ale pořád tu máme nadbytečnou informaci, protože pro výsledek nula existují dvě varianty. Takhle to tedy nepůjde, řekl jsem si: bude potřeba vyzkoušet jiný přístup.
Informace o obsahu jednoho bitu znamená, že jednu věc víme určitě. Půl bitu musí tedy znamenat, že víme méně než něco, tedy, přesněji řečeno, půl něčeho.
Pokud bychom věděli, že b je s pravděpodobností 0,5 nula a s pravděpodobností 0,5 jedna, věděli bychom přesně tolik, co Plato, tedy vůbec nic. Řekněme tedy, že to budeme vědět s pravděpodobností 0,5 < p < 1. Stačí stanovit p a máme kýžený půlbit. Ale ouha, taková informace se nám neskládá aditivním způsobem, protože dva probabilistické půlbity s pravděpodobností p nám výsledek pouze zpřesní: příkladmo, bylo-li by p = 4/5 a dostali bychom dva půlbity, znali bychom b s pravděpodobností 24/25. My ale musíme trvat na tom, že dva půlbity jsou přesně rovny jednomu bitu.
Nakonec jsem na to šel z opačného konce. Máme-li třístavovou informaci a použijeme k jejímu zakodování dva bity, vyplýtvali jsme 1 – log2 3 ≈ 0,415 bitů, a do těch můžeme zakodovat další informaci. Řekněme tedy, že budeme-li kodovat 0 → [0,0], 1 → [0,1], 2 → [1,0] nebo [1,1], dává nám každá dvojka na vstupu další bit, který můžeme využít pro přenos další informace. A jestliže naše kodování upravíme tak, že kombinaci [1,1] nahradíme [1,0], odebrali jsme z informace přibližně 0,415 bitu.
Takže ano, ze svého systému bych mohl smazat i méně než jeden bit, ale musel bych k tomu použít jiné než běžné kodování informace, a vážně nevím, zda by si tím databasový systém PostgreSQL, na kterém moje právnické výpočty běží, uměl poradit.
A pokud se týká Servíta, záchodky se záporným počtem dveří si asi za bdělého stavu představit nelze, nicméně informace, které nesou záporný obsah, se vyskytují poměrně běžně: zkuste si přečíst třeba Aeronet a pochopíte, co tím myslím: předtím jste věděli víc než potom. A vzhledem k tomu, že logarithmus záporného čísla je imaginární, docela nám to sedí i mathematicky.
Číst dále...