sobota 8. listopadu 2025

Jak jsem psal článek s jazykovým modelem

Tedy, nepsal jsem článek do impaktovaného časopisu. Skutečnou vědu jsem už dávno opustil a tento problém se nekvalifikuje, protože už jej vyřešili jiní. Ale nebyl lehký a už pěkných pár let mi ležel v hlavě. (Link zde).


Otázka je následující: Kdybych měl raketu, u které dokážu měnit rychlost, jakou palivo tryskou opouští komoru, můžu fungovat ve dvou módech: Při vysoké rychlosti (a tedy energii) spalin pálím palivo úsporně. Zrychlení je miniaturní, ale palivo mi dlouho vydrží a celkově můžu změnit rychlost rakety o hodně. Při nízké rychlosti spalin zvládnu posílat paliva za sekundu víc. Okamžité zrychlení je vyšší, ale palivo mi dřív dojde. Kdybych plánoval přesun mezi dvěma planetami, existuje určité optimum, jak to přesně dělat, abych do cíle dorazil co nejrychleji (a taky s cílem srovnal rychlost). A rychlost paliva se bude měnit v čase.

Teď nechci tolik psát o problému samotném, ale jak mi k řešení pomohla kombinace jazykových modelů (hlavně o3 a Gemini 2.5 Pro), a jak jsem s nimi vyřešil problém, který jsem sám vyřešit neuměl a poměrně rychle z něj dostal obstojně vypadající text. Z fyziky řeknu jenom tolik, aby bylo jasné, co se snažím vyřešit a kde mi modely pomohly.

Když jsem úlohu zkoušel řešit sám, uměl jsem si poradit s jednorozměrným případem bez gravitačního pole. Tam je to v podstatě variační úloha, která se musí vhodně parametrizovat, vyřešit Euler-Lagrangeovu rovnici a u řešení pak nastavit integrační konstanty tak, že člověk "sešije" etapu, kdy raketa zrychluje, kdy vypne motory a jen volně pluje, a kdy zpomaluje, do jedné rovnice. Varianta ve více rozměrech a s gravitačním polem hvězdy byla beznadějně složitá, a tak jsem zkoušel různé numerické procedury. 

Při cestě z planety na planetu je těžké se trefit do koncové polohy a rychlosti a člověk tedy neřeší jenom problém, aby trajektorie byla co nejrychlejší, ale aby v cíli vůbec skončil. Zkoušel jsem tedy opačný přístup: nakreslit trajektorii v čase tak, aby se do cíle trefila, spočítat, kolik mě to stálo paliva a pak minimalizovat palivo dokud není pod tolerovanou mezí, a pak teprv čas. Vůbec to nefungovalo. Trajektorie měla hodně parametrů a každý solver, který jsem zkusil se hned zasekával v lokálních minimech.Tak jsem dělal variace: nakreslit trajektorii, která se trefí do cíle a je definovaná jen několika málo parametry (první členy Fourierova rozvoje, spliny, apod.). To trochu fungovalo v tom smyslu, že to našlo nějaké trajektorie, ale ani zdaleka nebyly ty nejrychlejší, což se dalo poznat z různých kontrol konzistence.

A teď se dostávám ke své spolupráci s modely. Nejprve jsem se snažil ptát na různé variace této úlohy. Přesvědčit model, aby řešil nejprve tu jednoduchou jednorozměrnou úlohu, pak aby se zamyslel nad tou těžší, apod. Trvalo mi nějakou dobu se správně zeptat, ale pak mi o3 řekl o Pontriaginově principu maxima, který jsem neznal. Je to Hamiltonovská obdoba lagrangeových multiplikátorů pro variační úlohy, která explicitně zavádí extra proměnné pro to, jak raketu řídit. Přišlo mi to jako potenciálně nadějná cesta, a tak jsem trápil o3, aby rovnice vyřešil pro raketu v Keplerovském poli. Přesné řešení úloha nejspíš nemá, ale diferenciální rovnice model odvodil. Jedna z věcí, které je ale potřeba pořád kontrolovat je správnost. LLM dělají chyby. Řešení jsem střídavě předhazovat o3 s Gemini 2.5 Pro jako reviewerem, pak naopak, a pak zase znovu, až jsem se nakonec dostal k formulaci, které jsem docela věřil.

Další fáze byla implementace v Pythonu. Na podobné problémy existují specializované knihovny a stroj mi navrhoval kód s takovými knihovnami. Problém byl, že když kód nenašel řešení, vůbec jsem nevěděl proč. Přiměl jsem model napsat všechno od začátku. Chtělo to potom hodně debugování, kde člověk pochopí, co se děje špatně, řekne modelu, co zlepšit, a iteruje. Taky jsem používal modely střídavě, občas se jeden z nich zasekl a dělal pořád stejné chyby, a jiný model to rychle vyřešil. Vyplatilo se mi taky mít kód v gitu a umazávat nechtěné změny. Oba modely rády mění komentáře a stylistické věci, když kód přepisují. Pravděpodobně artefakt reinforcement-learningu, je velmi  patrné, které části kódu na výsledek nemají žádný vliv.  

Pak přišla část, kdy jsem kódu už docela věřil, ale pořád nenacházel řešení. To byl moment, kdy jsem musel modely vést hodně za ruku a použít určitý "expertní vhled". Přiměl jsem je přepsat kód tak, aby solver používal bezrozměrné diferenciální rovnice. Pak se totiž dá čekat, že hledané parametry budou alespoň řádově podobné jedničce a nebudou v rozsazích mnoho řádů jinde. Taky jsem zjednodušil úlohu: už jsem nechtěl najít řešení, kde cílová planeta je na konkrétním místě, hledal jsem prostě jakékoliv řešení, kde cílová rychlost je tečná ke kruhové dráze a má tu správnou velikost. Nakonec jsem takové řešení našel.

Finální krok byl začít s tím řešením, které už funguje a vždy malinko posunout cílovou pozici planety směrem, kde jsem ji chtěl mít. Pak se dá předpokládat, že i vstupní parametry se změní jen o malinko, a solver dost blízké řešení najde. Tyto úpravy jsem dělal sám ručně.  

Poslední fází bylo sepsat článek. Tam jsem vždy jeden model požádal, aby rovnice, na kterých je zdrojový kód založen a o kterých jsme se bavili, sepsal jako LaTeX. Ten druhý model jsem pak požádal o review a o to, aby našel chyby a možné vylepšení. Takto jsem iteroval, dokud jsem neměl LaTeX kód, se kterým jsem byl spokojen. Jediné, co mne teď odrazuje od toho, abych se s článkem nějak víc chlubil je, že jsem jej vlastně nikdy nečetl v takovém detailu, abych jeho obsahu úplně věřil.

Můj závěr je, že s moderními LLM modely se dá velmi dobře fungovat jako hydra-tým. Člověk je důležitou součástí procesu, aby držel záměr, a taky je potřeba, aby pomohl modelu překlenout úseky, kde by se model zasekl. Ale zároveň mi model ukázal nové přístupy, které bych bez něj jen těžko hledal, a usnadnil mi práci natolik, že jsem byl schopný dát dohromady po večerech po práci, což by se bez takového usnadnění jinak zcela jistě nestalo.

sobota 1. listopadu 2025

 Od doby, co známe Obecnou teorii relativity, víme, že existují řešení, které fungují jako stroje času. Jeden takový stroj času se nachází uvnitř rotující (Kerrovy) černé díry v podobě časoprostoru umožňujícím uzavřené světočáry. Většina časoprostorů, které tyto vlastnosti mají, vyžadují hmotu, která by měla zápornou klidovou hmotnost, nebo se stroj času schovává pod horizontem událostí. Většina fyziků o kterých vím si příliš nemyslí, že by stroje času byly ve skutečnosti možné. Často se však vyskytují v zajímavějších sci-fi, a je to jedna z věcí, nad kterou je radost přemýšlet. 


Rád bych se dnes zamyslel nad jedním konkrétním strojem času. Ten funguje tak, že se v jeden konkrétní moment aktivuje a vrátí určitou oblast P zpět v čase o čas T. Chtěl bych ho zkoumal v pohledu klasické newtonovské fyziky, kdy máme N částic, které na sebe nějak silově působí. Hned si všimneme jedné podivnosti: Protože máme jenom jeden časoprostor a jednu verzi historie, musí částice v oblasti P v t = 0 a v čase t = T být naprosto identické, včetně poloh a rychlostí. To vypadá jako něco velmi nepravděpodobného - stroj času dělá něco velmi zvláštního s entropií. Je snadné to uvidět na příkladu hodinek, které jsem dostal od svého otce, odcestoval jsem s nimi do minulosti a tam je otci za jeho mladých let dal. Hodinky nikde neznikly a jenom chodí časem tam a zpět. Že se někdy musí jejich entropie snižovat, pokud se jindy zvýší, je tady velmi patrné. Hlavní otázka, které mě zajímá je, jestli vůbec existuje fyzikálně možné řešení pro velké množství částic, a jak trochu lépe formalizovat, co se to s entropií děje. 

Konkrétně se dá takový stroj času přeformulovat jinak: místo abych řekl, že čas vrací oblast P z budoucnosti do minulosti, budu si představovat, že v čase t = 0 zadávám počáteční podmínku pro všechny částice. Teď ale navíc mám to omezení, že stav, který nastavím pro oblast P, se musí přesně zopakovat i v čase T = 0. Kdybych měl N částic, za normálních okolností bych vybíral počáteční podmínku z 6N-dimenzionálního prostoru. (3 polohy + 3 rychlosti za částici). Pokud je ale M z nich v oblasti P, mám také 6M vazeb, a tedy celkově volím počáteční podmínku jenom z 6(N-M)-rozměrného prostoru. Pro danou vazbu může sice existovat více řešení, ale to neznamená, že by se tím obecně zvedala dimenzionalita počáteční podmínky. 

Ve skutečnosti je to ještě trochu složitější. Zaprvé: Pokud bych před existencí stroje času měl N částic a zvažuji, jestli M z nich neskončí ve stroji času, musím uvažovat, že těchto M částic vytvoří (z hlediska formalismu stanovování počáteční podmínky s budoucí vazbou) K replik, jak částice prochází strojem času několikrát. Tyto repliky ale nezvyšují dimenzionalitu vstupní počáteční podmínky, protože za každou repliku, kterou přidáme navíc do oblasti P v t=0, přidáme taky jednu vazbu v oblasti P v čase t=T. Zadruhé: Stroje času v principu umožňují existenci částic s uzavřenou světočarou, které prochází strojem stále dokola a nemají původ ve světě před strojem času. Tam opět platí, že pokud přidám L takových částic navíc, přidám pro ně také L vazeb. To, že mohu zkoušet přidávat K>0 a L>0 extra částic jistě rozšiřuje šanci, že existuje řešení se strojem času, ale díky vazbám to ve skutečnosti nezvyšuje počet volných parametrů, které mám.

Co se dohromady snažím ukázat úvahami o vazbách bude možná daleko jasnější pohledem na tento obrázek, kde je jen jedna dimenze  (vodorovně) a čas (svisle). Vidíme, že ačkoliv díky existenci stroje času máme potenciálně mnoho replik, jediný volný parametr, který opravdu můžu měnit je poloha a rychlost jedné částice.


Vazby nejsou jediný efekt, který stroj času má na možnou existenci řešení. Pokud např. řeknu, že v t=0 v P žádná částice není, vytvářím tím taky podmínku na všechny částice v t=0 mimo P. Žádná totiž nesmí zabloudit do P v t=T. To je také podmínka, ale není tak tvrdá, jako vazba pro přesnou polohy a hybost částice. Jen z možných počátečních podmínek vysekne určitou část prostoru, a je tedy analogická např. podmínce x < 0 ∨ x > 1. Připomeňme, že rovnice klasické mechaniky ve fázovém prostoru poloh a hybností fungují stejně jako rovnice pro nestlačitelnou kapalinu. Oblast P do které v čase T částice nesmějí vstoupit bude mít dobře definovaný tvar. V t=0 se tento tvar promíchá, jako by se promíchala "fázová kapalina", a tvar zakázané oblasti ve fázovém prostoru bude proto potenciálně velice komplikovaný, ale zachová se dimenze původního povoleného prostoru. Tento zakázaný objem ale ale pravděpodobně alespoň částečně kompenzuje tím, že při hledání řešení hledám přes všechny K>0 a L>0. Podobně jako na ilustračním obrázku pro mnoho uspořádání, kdy částice do oblasti P v t=T vletí, bude existovat nějaká konfigurace přidaných replik částice, která na toto řešení naváže.

Co to dohromady znamená?
Kdyby existoval jen stroj času a nebyly by žádné částice mimo něj, dimenze povolené počáteční podmínky bude díky vazbám 1. Pravděpodobně bude existovat jen konečně mnoho řešení, nejvýše spočetně mnoho řešení. 

Pokud by stroj času vznikl dynamicky, pravděpodobně by měl počet volných řešení stejnou dimenzi, jako má počáteční podmínka pro částice, které se nachází mimo něj, podle logiky "za každou repliku a částici s uzavřenou světočarou jedna vazba". Člověk by tedy neměl očekávat, že možných řešení bude velmi málo nebo žádné, ani pro velké množství částic. 

Zpětně viděno je to možná triviální pozorování, ale je to myšlenkové cvičení, které jsem dlouho chtěl udělat, protože jsem měl celkem silnou intuici, že pro velké množství částic by počet řešení mohl být malý, nebo téměř žádný, a že podmínka self-konzistence je tak silná, že se entropie bude v přítomnosti strojů času chovat velmi podivně. Úvahy o vazbách a počátečních podmínkách neříkají nic moc konkrétního, ale umožňují se zamyslet, které situace jsou velmi nepravděpodobné (prsten složený z částic s uzavřenou světočarou) a které naopak jsou relativně neproblematické (částice vlétající do stroje času a po několika smyčkách ho zase opouštějící).

pátek 24. října 2025

Váha volebního hlasu

V českém systému parlamentních voleb má být hlas rovný, tj. pro každého člověka by měl mít stejnou váhu, ať už volí jakoukoliv stranu. V médiích se často mluví o tom, že díky systému přepočítávání hlasů mají větší váhu větší strany, což je pravda v tom smyslu, že mají větší poměr mandáty / obdržené hlasy. To je důležité pro politické strany, když posuzují, jestli budou kandidovat v koalicích nebo samostatně, ale ve skutečnosti to není příliš důležité pro voliče, kteří přemýšlí, jakou stranu volit.


Z pohledu voliče je zajímavá úplně jiná váha hlasu: střední hodnota křesel, kterou statisticky vytvořím, když k volbám přijdu, v porovnání s alternativou, že bych k volbám nešel. A to je úplně jiné číslo. Abych to ilustroval, dám extrémní příklad: Pokud bych přesně věděl, jak ostatní lidi budou volit pak můžu dopočítat, jestli můj hlas udělá rozdíl jednoho mandátu a nebo ne. Pokud ne, má můj hlas váhu 0, a pokud ano, má váhu 1. Vyplatilo by se mi tedy jít k volbám jenom pokud bych byl tím, kdo mandát přetočí.

Ve skutečnosti nevím, jestli mandát přetočím, ale mohu se pokusit to spočítat. Hlavní věc co potřebuji je co nejlepší model toho, jak lidi budou hlasovat. Bude mít formu nějakého pravděpodobnostního rozdělení a jak bude vypadat upřesníme později. Pak potřebuji vědět, jak se vypočítává rozdělení křesel. Algoritmus je poměrně složitý. Nebudu jej zde popisovat podrobně, ale vypíchnul bych některé zajímavosti. Například: v prvním kroku se určí, který kraj bude mít kolik křesel a až poté se určuje, kdo která křesla obsadí. Efekt, který může mít váš hlas, je tedy celkem komplikovaný, včetně toho, že vaší straně ublíží. Může totiž vytvořit křeslo ve vašem kraji, což automaticky znamená, že někde jinde zanikne. A pokud to křeslo, co zaniklo, patřilo vaší straně a křeslo, které jste vytvořili jí patřit nebude, pak jste své straně ve skutečnosti ublížili. Ve střední hodnotě ve skutečnosti skoro vždy pomáháte, ale chtěl jsem ilustrovat, že interakce, které je potřeba vzít v potaz, jsou komplikované.

Jak tedy můj model pro váhu hlasu funguje?
  • Ze zvoleného rozdělení vygeneruji kolik voličů přijde ve kterém kraji k volbám a pro koho budou hlasovat.
  • Spočítám křesla podle oficiálního algoritmu.
  • Spočítám verzi, kde v daném kraji dám hlas dané straně a znovu spočítám křesla. (Nejčastěji vyjde nula, ale někdy ne).
  • Udělám průměr přes stovky milionů realizací, abych spočítal průměrné množství získaných mandátů za hlas.
Zisk mandátů můžu počítat pro jednu stranu, nebo pro nějakou skupinu stran. Můžu to udělat i pro váženou skupinu stran, kde bych si např. řekl, že každá ze skupiny stran pro mě má nějakou hodnotu a pro každou z nich si mohu zvolit váhu. Mandáty pro skupinu se musí počítat zvlášť, protože strany se dost složitým a nelineárním způsobem o křesla obírají, takže co je dobré pro jednu stranu nemusí být dobré pro skupinu stran, do které patří.

Co jsou hlavní výsledky?
  • Strany mají v různých krajích a navzájem vůči sobě různou váhu hlasu. U sledovaných stran byl rozdíl maxima od průměru cca 16 %, minima od průměru cca 14 % a směrodatná odchylka vůči průměru byla 7,5 %. Čili jsou to rozdíly, které v některých případech mohou člověka motivovat přejet s voličským průkazem do jiného kraje, ale není to zdaleka tolik, kolik ukazovaly mé první modely před revizí parametrů.
  • Nejsilnější srozumitelný efekt je s velikostí strany. Pokud je strana hluboko pod hranicí 5%, je téměř jisté, že hlas propadne a velikost středního mandátu je malinká. Pokud je těšně kolem ní, nad i pod, střední počet získaných mandátů výrazně naroste. Vyplatí se zachraňovat strany, kterým hrozí propadnutí. Máte sice vyšší šanci, že váš hlas propadne, ale kdyby náhodou byl tím hlasem, který stranu zachrání od propadnutí, pak váš hlas nevytvoří jenom jeden mandát, ale cca 10 mandátů, což vydatně zvyšuje střední hodnotu.

Ilustrační graf spočítaný s hrubým modelem šumu a bez vyřazení lidí mladších 18 let z voličů. Relativní váhu hlasu ale myslím ilustruje celkem dobře.

Dá se tomu věřit?
Tento výpočet jsem dělal v reakci na parlamentní volby 2025. Model jsem nastavil podle posledních volebních průzkumů, které obsahovaly preference v jednotlivých krajích. Hodně se hraje o zbytky po dělení v jednotlivých krajích, takže tato úroveň granularity se zdá být hodně důležitá. Předpokládal jsem dvě náhodná rozdělení: log-normální rozdělení pro to, jak vysoká bude volební účast, a Dirichletovo rozdělení (Bayes posterior k multinomiálnímu) pro to, komu hlasy  dají. Hlavní parametr, který bylo potřeba nastavit odhadem, byl rozptyl jednotlivých rozdělení.

Hlavní slabinou určitě je, že volební průzkumy mají systematickou chybu. Na to, abych ji opravil, si netroufám. V minulosti ale volební průzkumy podceňovaly strany jako ANO, nebo naopak přeceňovaly extrémistické strany. Druhý efekt samozřejmě je, jak moc dobře člověk odhadnul rozptyl šumu. Přesvědčený bayesián by argumentoval, že je lepší nějak kvantifikovat svou neznalost jako pravděpodobností rozdělení, než nedělat nic - a že odhad šumu je zkrátka ten nejlepší, co máme, a tak bychom s ním měli pracovat. A třetí otázka je, jestli je moje implementace programu správně. Neříkám, že model je na úrovni vědecké publikace, ale osobně mu věřím alespoň natolik, že ho chci spíš použít než nepoužít. Konkrétní čísla najdete níže

pondělí 20. října 2025

Matematický vesmír a Solomonoffův prior

V tomto příspěvku bych chtěl komentovat Tegmarkovu knihu Matematický vesmír. Je to téma, které je úzce spojeno s antropickými úvahami, o kterých jsem psal výše. Pokud jste knihu nečetli, pak vězte, že hlavním tvrzením, které v knize autor vysvětluje je klasifikace mnohasvětových teorií. Tegmark začíná relativně dobře přijímanými teoriemi a postupně se dostává až k velmi spekulativnímu tvrzení, že žijeme v multiverzu všech myslitelných matematických struktur. A právě k tomu bych rád přidal několik technických poznámek, ale nejprve se pojďme podívat na Tegmarkovu klasifikaci multiverz:


Typ 1: Pokud je náš vesmír nekonečný (v prostorovém smyslu, nejen v tom smyslu, že se bude do nekonečna rozpínat), nebo pokud se bude expanze vesmíru urychlovat, jak aktuální měření kosmologické konstanty napovídají, pak jsou v něm regiony, kam se za dobu jeho existence nikdy nedostaneme. Objekty za kosmologickým horizontem. V případě prostorově nekonečného vesmíru se dokonce dá tvrdit, že všechno, co se tu dnes na Zemi děje, se někde v dálce za horizontem zopakuje s přesností na libovolně malé ε. Ale i pokud je vesmír na něco takového příliš malý, není asi důvod si myslet, že vzdálené části vesmíru za horizontem neexistují jenom proto, že je nemůžeme (a nikdy nebudeme moci) pozorovat. 

Typ 2: Pokud se vesmíry nějakým procesem rodí, pak multiverzum druhého typu jsou různé vesmíry, které jsou od sebe prostorově oddělené. Jedním konkrétním případem, který je mezi kosmology dobře přijímaný, jsou bubliny vzniklé rozpadem inflatonového pole. Má se za to, že v minulosti vesmír prošel tzv. inflací, což bylo časově extrémně krátké období, kdy se exponenciálně zvětšoval objem vesmíru díky tomu, že byl vyplněn hypotetickým polem, které při rozpínání neztrácí hustotu energie, a způsobuje kladnou hodnotu kosmologickou konstanty, která urychluje rozpínání vesmíru. Pole by se mělo rozpadat náhodným fázovým přechodem, který se nastartuje v nějakém konkrétním bodě a pak se šíří rychlostí světla. Jelikož se ale regiony, kde inflatonové pole rozpadlé není, rozšiřuje exponenciálně rychle, je podle této teorie vesmír tvořen téměř všude nerozpadlým inflatonovým polem a pak mnoha prostorově oddělenými bublinami s "normálním" prostorem, jako je ten náš. Byli bychom tedy jednou z mnoha takových bublin, což je Tegmarkovo multiverzum 2.

Typ 3: Kvantová mechanika má hodně interpretací. Zatímco některé buď předpokládají, že vlnová funkce objektivně prochází kolapsem, nebo že jenom představuje informaci pozorovatele o stavu světa, který se lépe poznat nedá, mnohosvětová interpretace nabízí vysvětlení, že žijeme v obrovské vlnové funkci, která popisuje všechny možné stavy vesmíru rozvětvené od jeho počátku, a kolaps vlnové funkce je jenom zdánlivý jev daný tím, že jako pozorovatelé uvnitř této vlnové funkce sami procházíme dělením na mnoho větví, a nakonec vždy vidíme jen tu jednu, ve které daná naše kopie skončí. Výhoda je, že teorie nepotřebuje přidané předpoklady o tom, jak kolaps probíhá, jenom základní rovnice kvantové mechaniky. Její existence by tedy podle Occamovy břitvy měla být jednodušší a proto pravděpodobnější. Kvantové světy jsou Tegmarkovým multiverzem 3.

Typ 4: Tegmark argumentuje, že nejobecnějším objektem, který je nějak správně formálně uchopený, jsou matematické struktury. Měli bychom tedy předpokládat, že v nějakém smyslu existují, a my se podle antropického principu nacházíme uvnitř těch, které jsou jednak v nějakém smyslu "hojné", a podporují struktury podobné našim mozkům, které zjevně generují zážitky.

Pokud znáte Tegmarkovu knihu, skočte sem!

Mezi fyziky jsou multiverza 1-3 poměrně často diskutována, byť ne vždycky nadšeně přijímána. Typ 4 ale působí tak exoticky a bez opory v experimentu, že jsem nepotkal příliš fyziků, kteří by se jím vůbec nějak zabývali. Zkusil jsem si představit nějaký model, který by byl dostatečně dobře technicky uchopený, aby alespoň mohl dávat nějaké empirické předpovědi (v návaznosti na antropický princip a self-sampling assumption).

Solomonoff prior a Kolmogorova komplexita
Jednou velmi nadějnou třídou matematických struktur jsou Turingovy stroje. Ať už je chceme použít jako samotné Tegmarkovy matematické struktury, nebo jenom jako struktury, které nějak formálně popisují Tegmarkovy matematické struktury, budou užitečné. A to proto, že umí plně popsat všechny problémy, pro které vůbec existuje algoritmus. Pokud máme nějaký Turingův stroj, který generuje řetězce znaků, mohli bychom chtít vědět, jaká je pravděpodobnost, že řetězec 1, 2, 3, 4, 5, 6 bude pokračovat číslem 7, a ne třeba 123. Někdo by mohl namítnout, že každá posloupnost je stejně pravděpodobná a proto nemá smysl očekávat, že by řada měla pokračovat sedmičkou a ne číslem 123. Intuitivně však cítíme, že sedmička je v nějakém smyslu přirozenějším pokračováním této sekvence. Tuto intuici formalizuje tzv. Solomonoffův prior: Každá sekvence má takovou apriorní pravděpodobnost, jako je 2^-K, kde K je velikost nejmenšího programu na Turingově stroji, který danou sekvenci generuje. (Kolmogorova složitost

K čemu je to dobré? Především teď můžeme porovnávat, jak složité jsou jednotlivé teorie. Asi znáte Occamovu břitvu, která říká, že nejjednodušší vysvětlení s co nejmenším počtem předpokladů je nejpravděpodobnější. Teď ale vidíme, že Occamova břitva řeže velmi ostře: každý bit v minimálním popisu teorie navíc činí teorii dvakrát méně pravděpodobnou. Zároveň, pokud se chceme nějak zabývat Tegmarkovým multiverzem, můžeme se podívat, jak by vypadalo pro tento konkrétní případ. Má to ale několik háčků. 

Mícháme popis objektu s objektem?
Jedna z námitek proti multiverzu 4 je, že zaměňuje popis za realitu. Konec konců je jasné, že mapa není území a že fyzikální teorie není vesmír. A už samotný Solomonoffův prior jako míra má jisté rysy, které na tento problém ukazují. Přesná váha 2^-K totiž záleží na Turingově stroji, který popis realizuje. Představme si, že bychom chtěli vědět, jaká je Kolmogorova komplexita čísla pí. Můžeme si zvolit nějakou typickou Turingovu mašinu v podobě např. holého jazyka C, jazyka Rust, nebo assembleru pro nějaký konkrétní procesor a dát lidem výzvu, aby napsali co nejkratší program, který bude pí na N míst generovat. Pokud pak vezmeme výsledný kód a komprimujeme jej, přibližně bychom mohli čekat, že dostaneme K, které ale bude záležet na přesně zvoleném jazyku. (Pokud vám z takto hrubého inženýrského odhadu vstávají vlasy hrůzou na hlavě, můžete místo toho napsat formální Turingův stroj a spočítat délku pásky, komprimovat zdrojové kódy asi může obsahovat nějaké systematické chyby proti přesnému formalismu).

Můžeme tedy multiverzum 4 shodit ze stolu? Myslím, že ještě ne. Na námitku, že mícháme popis a realitu se dá odpovědět tak, že nikdo přece neříká, že když matematické modely používáme k popisu naší reality, že stejný matematický popis v nějakém hlubším slova smyslu taky realitou není. Nezaměňujeme mapu a území, jenom říkáme, že jsou dobré důvody si myslet, že mapa i území jsou vybrané ze stejné množiny objektů.

Ale co s tím, že váha matematických struktur, kterou chceme použít (Solomonoffův prior) je zjevně závislá na Turingově stroji? Na to se dá odpovědět alespoň dvěma způsoby: Ten první je: co když je multiverzum 4 opravdu nějaký konkrétní Turingův stroj, jen nevíme přesně jaký? Pak můžeme těmito úvahami získat alespoň nějaký vhled do situace, i když identifikovat přesný stroj asi bude těžké (pokud vůbec teorie nějaké empirické předpovědi dává.) Ale vyloučit to nelze, byť by to pak teorie byla opravdu hodně specifická. 

Druhý způsob, kterým bychom mohli odpovědět je, že možná matematické struktury mají nějakou vlastní složitost, něco jako průměr mezi Turingovými stroji, pokud něco takového dává smysl. (Tady se už pouštím na docela tenký led). Na jednu stranu asi vždycky můžu postavit velmi speciální Turingovu mašinu tak, aby danou strukturu nějak obsahovala (kompilátor, který pro prázdný program vypíše hodnotu pí), nebo s ní naopak měla problémy, ale čekal bych, že velká třída Turingových strojů na tom bude tak nějak podobně.

Musím ukázat? A pokud ne, není to divné?

Číslo pí někde ve svém rozvoji obsahuje jakoukoliv sekvenci. Pokud bych chtěl ale tu sekvenci najít a identifikovat, musím popsat od jakého desetinného místa začíná. Typicky bude ukazatel stejně dlouhý, jako sekvence samotná. Pí má možná Kolmogorovu komplexitu malou, ale pokud bych chtěl popsat nějaký složitý objekt, pokud na něj musím ukázat, nepomůžu si.

Jak chápu Tegmarkovu vizi já, ukázat bych nemusel. To je nutné pro premisu, že "jednoduché světy mají větší váhu". A že jednoduché světy mají vyšší váhu je zase nutné, abychom mohli tvrdit, že vesmíry s jednoduchými zákony (a možná i s jednoduchými počátečními podmínkami) jsou typické. Kdyby nebyly, tak by aplikace antropického principu (self-sampling assumption) předpovídalo, že svět bude náhodnou sekvencí nekoherentních zážitků, jako náhodná simulace která jenom náhodou obsahuje struktury nějak odpovídající mozkům.

Intuitivně mi připadne trochu podivné, že "napsání několika rovnic" by mělo způsobit větší vnitřní komplexitu, než detailní popis každého atomu. Ale pokud se na to člověk dívá prismatem toho, že jednoduchý program může vygenerovat velmi komplexní chování, a to, že je krátký znamená, že je více častý ("snáz se najde v náhodných datech"), zase mi to dává smysl.

Dává to nějaké empirické předpovědi?
Hlavní předpověď, kterou taková formulace Tegmarkova multiverza 4 dává je, že jednoduché světy by měly být daleko pravděpodobnější. Jako pozorovatel jsem strukturou, která odpovídá mému tělu a hlavně mozku. A jako takový můžu být zakódován v různých prostředích. Mohl bych být jenom Boltzmannovým mozkem, který se náhodou vytvořil - v tomto případě ne z náhodných stavů částic, které se zrovna poskládaly do struktury mého mozku tady a teď a zase se rozpadnou, jak si to představoval Boltzmann, ale jako náhodná matematická struktura, která obsahuje jenom ten mozek a nic dalšího. Taky můžu být simulace, jak si Bostrom představuje ve své simulační hypotéze. Ne nutně provozované na počítači v nějakém fyzickém vesmíru, ale přímo v jako jednu z alternativních matematických struktur se Solomonoff priorem. A nakonec můžu být mozkem savce na planetě Zemi, která je součástí nějaké matematické struktury popisující celý vesmír s jeho počáteční podmínkou.

Jak se tyto tři varianty poměřují? Pokud bych chtěl najít samotný můj mozek, bude jeho struktura (ať už v simulaci nebo jako Boltzmannův mozek) úměrná počtu synapsí a neuronů (krát velikost popisu těchto prvků). To je celkem řádově alespoň 10^15 bitů. Nevím, jak složitý je minimální popis zákonů fyziky a jaké jsou, ale pokud je to jednoduchá rovnice / struktura, může mít stovky až desítky tisíc bitů. Poměr pravděpodobností, že se najdu v takovém vesmíru vs. jako simulace mozku by pak byl cca 2^-1000 ku 2^(-10^15), tedy nesrovnatelně víc ve prospěch fyzikálních vesmírů.

Je vesmír skutečně jednoduchý, když obsahuje složitou počáteční podmínku?
Odpověď na tuto otázku bychom museli dát ve finální fyzikální teorii (minimálně např. kvantově), ale snazší asi bude to ilustrovat na klasických kuličkách. Když bych chtěl popsat krabici ve které je N molekul, potřeboval bych 6xN čísel. Z hlediska toho, jak se běžně formuluje termodynamika je každý mikrostav rovnocenný, takže složitost každého stavu je prostě 6N. Ale pokud byste psali počítačovou simulaci, jistě víte, že daleko úsporněji zapíšete např. stav, který molekuly rovnoměrně rozhodí po prostoru, nebo jim dá nějakou pseudo-náhodnou polohu a rychlost, než libovolný pozdější stav, který už je z daleko obecnějšího prostoru stavů. I kdybyste chtěli opustit analogii programů, v rovnicích bude mít takový speciální stav taky daleko jednodušší popis. Čili v jistém smyslu se dá tvrdit, že speciální počáteční podmínka může být jednoduchá.

Z čeho jsem pořád zmatený?
Jednak je tu námitka, že pokud mám nějaký popis vesmíru, existuje popis, ve kterém je podmínka, že od určitého času se začne něco chovat jinak, než zákony popisují. Kdyby takové modifikace byly v metrice Solomonoffova prioru jednoduché, pak by tato verze Tegmarkova multiverza 4 předpovídala, že místo normálního pokračování podle přírodních zákonů budeme pozorovat náhodné modifikace našeho vesmíru. ("Od času T zvedni Planckovu konstantu o x".) Pokud tato námitka nemá teorii diskvalifikovat, museli bychom ukázat, že takové modifikace jsou buď o hodně složitější (protože např. musí přesně popsat "od času T", což v komplikovanější teorii může být složitý objekt), anebo že skoro všechny takové modifikace jsou neslučitelné s fungováním inteligentních pozorovatelů, což by takovou modifikaci zabránilo komukoliv pozorovat a zůstala by v antropickém stínu.

Pak jsem taky zmatený z této námitky: Pokud je číslo pí jednoduchý objekt, možná jednodušší než minimální popis našeho vesmíru, a přesto obsahuje každou myslitelnout sekvenci; a pokud nepotřebuji specifikovat ukazatel na danou strukturu, neměly by být simulace a Boltzmannovy mozky (ve smyslu simulací našeho mozku) stejně časté jako fyzikální pozorovatelé? Nebo jsou struktury uvnitř čísla pí meta-popis, který znovu vygeneruje nový seznam Turingových strojů a bude to znovu replikovat Solomonoffův prior? Pak by to chtělo minimálně dokázat, že popis a meta-popis jsou jedno a to samé a ne dvě různé neekvivalentní věci.


Tegmarkovo multiverzum 4 možná vůbec není self-konzistentní, a pokud je, pak asi stejně není pořádně falzifikovatelné ("not even wrong"). Ale pořád se mi nedaří ho myšlenkově opustit a tohle byl další pokus o zamyšlení nad ním.

sobota 18. října 2025

Antropické efekty

Nedávno jsem konečně přečetl Anthropic Bias od Nicka Bostroma. Tento příspěvek je přehled toho, co jsem si z knihy odnesl a soubor postřehů, které mne na ni napadly, nebo jsem je zhodnotil jako tématu blízké, nebo je přidávám pro vysvětlení kontextu. 

Jedna z oblastí, která mi připadne zajímavá a zároveň neprozkoumaná, jsou antropické efekty a otázky spojené s tím, jak je správně zahrnout do našeho uvažování. Objevují se v moderních fyzikálních teoriích, které vysvětlují problém jemného vyladění či otázek, odkud se vzaly hodnoty fyzikálních konstant. Často jsou spojeny s představou, že žijeme v nějakém širším multiverzu, kde se realizuje mnoho možností, a my se (logicky) nacházíme tam, kde vesmír umožňuje vznik inteligentních pozorovatelů. Nelze se tedy divit, že se nenacházíme uprostřed mezigalaktické prázdnoty, ve vesmírech, kde elementární částice mají takové hmotnosti a vazbové konstanty, že neumožňují vznik prvků složitějších než helium, nebo ve vícerozměrných prostorech, kde jsou elektronové orbitaly stlačené do jader a klasická chemie nemůže fungovat

Co jsou ale antropické efekty přesněji? Jednoduše řečeno jde o zahrnutí role pozorovatele do úvah o tom, jak interpretovat naše pozorování. V mnoha případech, které bych označil jako „krotké“, asi nebude sporu o tom jak to správně udělat a že je tato oprava správná. Jedním takovým efektem je tzv. antropický stín. Představme si, že by se vesmírem šířila rychlostí světla oblast, ve které se vakuum a všechny částice rozpadnou na horké plazma. (Model rozpadu falešného vakua). Jelikož se bublina šíří rychlostí světla, neuvidíme ji, než nás zničí. Antropický stín je v tomto případě tvrzení, že jelikož v rozpadlém vakuu žádní pozorovatelé být nemohou, nemohli bychom takovou teorii falzifikovat. I kdyby 99% našeho vesmíru už bylo vyplněno rozpadlým vakuem, ničeho bychom si nevšimli. 

Jiný a možná lépe uchopitelný příklad antropického stínu můžeme ilustrovat na odhadech pravděpodobnosti vypuknutí jaderné války. Pokud jste forecaster na predikčním trhu a snažíte se odhadnout, jaká je pravděpodobnost vypuknutí jaderné války v příštím roce, mohli byste udělat zhruba tuto úvahu: Jaderné zbraně má lidstvo od roku 1945 a zhruba od roku 1955 jich má dost na to, aby efektivně zničilo civilizaci. V roce 2025 tedy máme za sebou 70 let, kdy jsme se úspěšně nezničili a podle Laplaceova pravidla bychom tedy mohli usoudit, že následující rok bude pravděpodobnost nejvýše 1-(1+1/70)^-1 = 1.4%. (Pokud vás toto číslo znervózňuje, tak vězte, že skutečné odhady, které zahrnují i jiné věci než jen časovou řadu, např. geopolitickou situaci, jsou víc jak 4x menší.) Jak to souvisí s antropickým stínem? Co kdybych byl v pozici mladého pozorovatele, kterému je 20 let. Pokud by před jeho narozením byl svět zničený jadernou válkou, velmi pravděpodobně by se nemohl narodit a nad touto otázkou přemýšlet. Pokud jsme předtím v odhadu pravděpodobnosti použili čas 70 let, tento mladý pozorovatel by tedy měl použít nejvýše 20. Jeho odhad pravděpodobnosti, s jakou se lidstvo jaderně zničí by tedy měl být spíše 1-(1+1/20)^-1 = 4.8%, což vypadá jako poměrně významný rozdíl. (Toto je ve skutečnosti jenom hrubý odhad pro ilustraci, správný výsledek bychom měli přepočítat použitím Bayesovy věty a zabývat se nuancemi jako jestli bych měl odečítat jenom roky před narozením pozorovatele nebo i něco z let za jeho života, nebo jestli katastrofa zabrání pozorování stoprocentně, nebo jenom s nějakou pravděpodobností. Ačkoliv tyto detaily nejsou dobře definované a nechávají dost prostoru pro interpretaci, myslím si, že příklad dobře ilustruje, že antropické efekty mají jasný vliv na odhad).

Extrémní aplikací antropického stínu je potom tzv. kvantová sebevražda / kvantová nesmrtelnost. To je argument, že pokud platí mnohasvětová interpretace kvantové mechaniky, (z antropických důvodů) nikdy nemůžeme zažít vlastní smrt a tedy ze svého subjektivního pohledu budeme žít věčně. (Vždy se najde nějaká verze světa, kdy jsme, byť velkou náhodou, ještě nezemřeli.) Nikomu bych ale takový experiment nedoporučil. 

SSA / SSI
Pokud jsem předchozí aplikace označil za krotké a neproblematické, nyní se dostáváme k těm obtížnějším. Bostrom v knize formalizuje antropické úvahy a dává jim konkrétní matematickou podobu a návod, jak s nimi zacházet. Konkrétně říká toto:

Self-Sampling Assumption (SSA) - Měl bych uvažovat tak, jako bych byl typickým představitelem své referenční třídy v daném vesmíru.

Self-Indication Assumption (SIA) - Měl bych uvažovat, jako bych byl typickým představitelem své referenční třídy ve všech myslitelných vesmírech.

(Oba ještě existují ve variacích, kdy počítáme pozorovatel-momenty a ne pozorovatele. Tj. pozorovatel žijící desetkrát déle má desetkrát větší váhu.)

V čem se liší? Pokud bych uvažoval různé hypotézy o tom, jak může svět vypadat, SSA mi říká, abych nezohledňoval antropické efekty v apriorním odhadu pravděpodobností těchto hypotéz. O dané hypotéze bych měl začít pochybovat teprve tehdy, pokud si všimnu, že je moje místo ve světě v rámci této hypotézy nějak privilegované. Pokud bych například měl dva možné světy: v jednom je 99 červených a jeden zelený pokoj a v druhé 990 zelených pokojů a 10 červených, než se rozsvítí světla a já zjistím, v pokoji jaké barvy se nacházím, je každá z těchto teorií stejně pravděpodobná. Pokud se rozsvítí světla a já zjistím že jsem v červeném pokoji, u prvního světa je to velmi typické umístění s likelihood 0.99, zatímco u toho druhého je to velmi netypické umístění s likelihood 0.01. První hypotéza by tedy měla být stokrát pravděpodobnější než druhá. 

To se ve skutečnosti v astronomii běžně používá, např. pro rozřešení tzv. paradoxu červené oblohy, tedy otázky, proč se nenacházíme na planetě obíhající červeného trpaslíka, když jsou tyto hvězdy mnohokrát četnější než hvězdy typu našeho slunce, a navíc žijí mnohem déle. (Závěr, který z toho pak autor dělá je, že planety kolem červených trpaslíků se slušnou mírou jistoty nejsou příliš obyvatelné).

Jenže pokud SSA vezmeme do důsledků, vede k velmi znepokojivým paradoxům. Zvažme dvě hypotézy: V první se v budoucnosti narodí ještě několik desítek, možná set miliard lidí a pak lidstvo vyhyne nebo se přemění k nepoznání. V druhé budoucnosti bude lidstvo úspěšně kolonizovat vesmír a budou žít ještě miliony miliard lidí. Pokud si nyní seřadíme lidi od prvního k poslednímu, zjistíme, že v první předpovědi budoucnosti jsme relativně typičtí lidé a teorie je proto neproblematická, zatímco v druhé teorii jsme se narodili velmi brzy, a to tak brzy, že je to náhoda téměř jedna ku milionu. Podle SSA bychom tedy měli „šťastnou budoucnost lidstva“, kde je mnoho lidí, považovat za velice nepravděpodobnou, protože v takové budoucnosti by naše pozice v rané minulosti Země byla velmi podivně privilegovaná. To je známo jako Carterův paradox soudného dne.

Takový výsledek je velice podivný z několika důvodů: ten první nasnadě je, že jsme udělali poměrně velice silný závěr jen na základě informace „jsem člověk, co se narodil jako stomiliardtý“, aniž bych řekl cokoliv o tom, jak vypadá svět. Bostrom zkouší paradox řešit různými způsoby. Jedním jsou referenční třídy. Co znamená být člověk? Proč je seřazení od prvního k poslednímu ta zajímavá vlastnost, na kterou se dívat? Proč nepočítat naše předky ve formě primátů nebo starších zvířat? Máme počítat vzdálené potomky lidí, kteří nás už nemusí moc připomínat? Jsou dobré referenční třídy „každý sudý člověk“? A co „člověk který ví / neví o Carterově paradoxu“? Nebo mám počítat jen lidi, kteří „jsou přesně já“ a tedy v budoucnu nejspíš žádní takoví nejsou? Bostrom nedává definitivní odpověď a někdy jsou argumenty kolem referenčních tříd poměrně komplikované. Myšlenka, kterou jsem si k referenčním třídám odnesl je, že u „krotkých“ problémů, které zmiňuji na začátku, je řešení problému často velmi robustní k tomu, jaké referenční třídy volím. Naopak u problémů, kde se tvářím, že lidi losuji do světa, aby se narodili v nějakém pořadí jsou na referenční třídu citlivé docela dost.. a možná už to samotné je indikace, že řešení není dobré.

Jednou z odpovědí, kterou lidé často navrhují je říct, že protože je lidí v budoucnu daleko více, je taková teorie apriorně pravděpodobnější. Tady přichází na řadu SIA. Tento předpoklad zvýhodňuje teorie, které obsahují více pozorovatelů a tyto členy se v Carterově paradoxu přesně vyruší a paradox vysvětlí. Ale Bostrom upozorňuje, že to také není snadno přijatelné řešení. Pokud bychom totiž zvažovali dvě fyzikální teorie, kde jedna má mnoho pozorovatelů a druhá málo (řekněme téměř nekonečný vesmír vs. malý vesmír, mnohosvětová teorie vs. objektivní kolaps v kvantové mechanice, apod.), někdo by mohl snadno tvrdit, že vůbec nemusíme provádět žádné experimenty, protože teorie s velkým vesmírem jsou apriorně o mnoho řádů pravděpodobnější. Tomu Bostrom říká paradox domýšlivého filozofa.

Bostrom nakonec neříká, jestli je správně SSA nebo SIA, ale ukazuje, že oba vedou k problémům. Tím nechává hodně otevřených otázek, ale možná i to dělá tento problém nadále tak zajímavým.

Tady dnes skončím. Rád bych se k problému ještě vrátil a zkusil aplikovat SSA na konkrétní modely Tegmarkova matematického vesmíru, o čemž snad napíšu někdy příště.