8 maj 2014

Universum, en simulering

Forskare vid MIT har gjort en datorsimulering av universums utveckling från 12 miljoner år efter Big bang och fram till idag. Resultatet av simuleringen är publicerat i Nature.

9 kommentarer:

Anders Hesselbom sa...

Jag har en branschkollega som är helt fenomenalt skicklig på evolutionära algoritmer, som bidragit med kod till flera välanvända system, bl.a. Microsofts, som har en uppfattning i frågan om huruvida vi är emulerade. Han hävdar att vi skulle kunna vara det. Lite förenklat så tänker han sig att strängars svängningar skulle kunna vara det som motsvarar en tick i en simulator, och att det vi betraktar som vår omvärld och våra tankar kommer från en väldigt stor state machine. Jag roas inte av diskussionen, eftersom så länge vi fumlar i hur vi ska ta reda på saker och ting, kan vi inte göra annat än att spekulera, men vill samtidigt säga detta blir mer och mer intressant ju mer man kan lägga på bordet. Och det är mycket tråkigt att man som vanlig dödlig inte har tillgång till den datorkraft som skulle behövas för att göra en POC, för jag gillar tanken på att "inte finnas på riktigt" även om definitionen av "på riktigt" naturligtvis blir ännu mer problematisk nu...

Lennart W sa...

Vill inte vara någon party pooper men den här sant imponerande simuleringen är fortfarande väldigt, väldigt långt från Bostroms idé om att vi själva kanske är simulerade:

"... 12 billion resolution elements in a cube of 106.5 megaparsecs a side"

"resolution elements" tolkar jag då som t ex numeriska småkuber i den stora kuben, som i så fall har en sida som är 152 tusen ljusår - längre än Vintergatans diameter.

(Fast de har nog gjort det på ett mycket listigare sätt - det mesta av den stora kuben är ju tomrum. T ex ett smartare sätt som jag vet har använts i andra liknande simuleringar är "adaptive mesh refinement" vilket gör att man kan ha störst upplösning (skött automatiskt i koden) där man verkligen behöver den i t ex galaxer).

12 miljarder är ett stort tal. Är t ex större än antalet neuroner i en elefants hjärnbark, men det är mindre än antalet i en människohjärna. Och det är mindre än antalet stjärnor i bara vår galax.

Lennart W sa...

Lite mer förklaringar om vad de har gjort och där de talar om "resolution elements" som pixlar:

http://www.cfa.harvard.edu/news/2014-10

Där finns även en länk till forskningsgruppens egen hemsida där de t ex har fler bilder.

Anders Hesselbom sa...

Apropå state machines så är det tokenkelt på en modern pc att allokera mer data än det finns atomer i universum. Problemet är att när man börjar befolka strukturen med faktisk information, så gör sig de fysiska begränsningarna påminda. Förenklat, en fysisk minnesyta med X poster tar upp X * Y bytes X där kapaciteten och Y är poststorleken, t.ex. en array. En virtuell minnesyta tar upp A + X * Z, där A är en strukturbeskrivning, X är antal lagrade poster och Z poststorleken plus postens "tänkta minnesadress" (ett stort tal), t.ex. en lista. Alltså, är minnet virtuellt så kan det vara hur stort som helst eftersom kapaciteten inte belastar minnet, men det kan tyvärr inte lagra hur mycket som helst eftersom antal lagrade poster belastar det fysiska minnet. Men det finns ett problem till, som knappast är ett problem i vanliga system: Om kapaciteten på den virtuella strukturen blir för stor, då går det åt för många bytes att beskriva den tänkta minnesadressen, och då slår vi i taket. Hur som, jag som programmerare älskar att lösa alla sådana problem genom att be om mer hårdvara...

Anders Hesselbom sa...

Ursäkta att jag visar med just Basic-kod, men denna spottar ut massor av stora tal i konsolfönstret, utan att krascha. Varje gång X *= 2 körs (1000 gånger) så dubblas värdet av X (som är initierat med 1).

Dim X As New Numerics.BigInteger(1)
For I As Integer = 0 To 9999
X *= 2
Console.WriteLine(X)
Next

Svaret blir 2, 4, 8, 16, 32, 64... ända upp till sista talet som är talet 19950631168807583848837421626835850838234968318861924548520089498529438830221946631919961684036194597899331129423209124271556491349413781117593785932096323957855730046793794526765246551266059895520550086918193311542508608460618104685509074866089624888090489894838009253941633257850621568309473902556912388065225096643874441046759871626985453222868538161694315775629640762836880760732228535091641476183956381458969463899410840960536267821064621427333394036525565649530603142680234969400335934316651459297773279665775606172582031407994198179607378245683762280037302885487251900834464581454650557929601414833921615734588139257095379769119277800826957735674444123062018757836325502728323789270710373802866393031428133241401624195671690574061419654342324638801248856147305207431992259611796250130992860241708340807605932320161268492288496255841312844061536738951487114256315111089745514203313820202931640957596464756010405845841566072044962867016515061920631004186422275908670900574606417856951911456055068251250406007519842261898059237118054444788072906395242548339221982707404473162376760846613033778706039803413197133493654622700563169937455508241780972810983291314403571877524768509857276937926433221599399876886660808368837838027643282775172273657572744784112294389733810861607423253291974813120197604178281965697475898164531258434135959862784130128185406283476649088690521047580882615823961985770122407044330583075869039319604603404973156583208672105913300903752823415539745394397715257455290510212310947321610753474825740775273986348298498340756937955646638621874569499279016572103701364433135817214311791398222983845847334440270964182851005072927748364550578634501100852987812389473928699540834346158807043959118985815145779177143619698728131459483783202081474982171858011389071228250905826817436220577475921417653715687725614904582904992461028630081535583308130101987675856234343538955409175623400844887526162643568648833519463720377293240094456246923254350400678027273837755376406726898636241037491410966718557050759098100246789880178271925953381282421954028302759408448955014676668389697996886241636313376393903373455801407636741877711055384225739499110186468219696581651485130494222369947714763069155468217682876200362777257723781365331611196811280792669481887201298643660768551639860534602297871557517947385246369446923087894265948217008051120322365496288169035739121368338393591756418733850510970271613915439590991598154654417336311656936031122249937969999226781732358023111862644575299135758175008199839236284615249881088960232244362173771618086357015468484058622329792853875623486556440536962622018963571028812361567512543338303270029097668650568557157505516727518899194129711337690149916181315171544007728650573189557450920330185304847113818315407324053319038462084036421763703911550639789000742853672196280903477974533320468368795868580237952218629120080742819551317948157624448298518461509704888027274721574688131594750409732115080498190455803416826949787141316063210686391511681774304792596709376. Ändå skriver jag alltså detta på min lilla laptop...

Lennart W sa...

Sånt där är intressant, Anders. Om jag nu s a s spinner vidare i tangentens riktning:

Kraftfulla datorer och algoritmer är bra, men ibland kan man också komma långt med lite matte.

Vill man veta vad 2^x är och bara är intresserad av de första typ 10 siffrorna (och 10-potensen) kan man göra så här:

2^x=10^(x*log(2))
=10^(x*log(2)-int(x*log(2)) * 10^(int(x*log(2))
där int står för heltalsdelen och log är 10-logaritmen.

Om t ex x=10000 får man att
10^(x*log(2)-int(x*log(2))
=1.995 063 116 83
och
int(x*log(2))=3010
så svaret är alltså
1.995 063 116 83*10^3010
där alltså bara sista värdesiffran (3) diffar.

På samma sätt blir
2^1000 000 000=4.613(0)*10^3 010 295
Där (0) är den sista osäkra värdesiffran från min grafräknare (en simulering av en TI Voyage 200 på min mobil..)

Noterar också att Maxima (ett CAS - Computer Algebra System - som också finns som androidapp..) fixar 2^10000 direkt. Bättre algoritm än TIs grafräknare.

---

Dock har man nog i den här kosmologiska simuleringen använt varenda en av simuleringens 12 miljarder "resolution elements" till det yttersta, antagligen också sparat i ganska många tidpunkter (tusentals?).

Anders Hesselbom sa...

Man får väl anta att resurserna för att simulera vår verklighet, inte går att finnas här i. Vi kan i bästa fall simulera andra enklare verkligheter. När jag var studerade jag t.ex. John Conway's Game of life, och jag är en av dem han gnäller på när han säger att han gjort så mycket viktigt arbete, men endast fått cred för detta som folk satt och lekte med på sina TI, CBM, Sinclair, Apple II och ABC under 80-talet.

Lennart W sa...

Are We Real? - Documentary: http://youtu.be/fRzPM3FgF9I

Med bl a Conway, Bostrom, (nämnda i tråden), Rees, Tegmark (kända kosmologer)..

Om kosmologisk finetuning, Skaparen, multiversum, transhumanism, simuleringshypotesen...
Nyast för mig är neurologen Hofmans resultat om primathjärnors begränsningar.

Enjoy.

Anders Hesselbom sa...

Denna var kul: https://www.youtube.com/watch?v=3d9i_0Ty7Cg

 
Religion Blogg listad på Bloggtoppen.se