Seuraa 
Viestejä950

Tutukin vuosituhannen vaihteessa klustereiden syntymekanismia, mutta ongelma jäi geometriseksi kysymysmerkiksi.

Linkin kuvassa pisteet on jaettu geometrisesti mahdollisimman tasan. Kun siitä sitten otetaan varjokuva, "viivakoodiin" syntyy klustereita.

3D-tapauksessa syntyy 2D-sienirakenne. (Laitan kuvan siitäkin tapauksesta, kun ensin vähän muokkaan ohjelmaa.)

Mutta tuntuisi luonnolliselta, että tasaisesti 2D:hen jaetuista pisteistä syntyisi tasaisesti 1D-jakautunut varjokuva.

Ikävä havainto on, että jos aine olisi jakautunut neljään (tai => 4D) ulottuvuuteen mahdollisimman tasaisesti, sen 3D-varjokuvassa olisi klustereita.

Kun galakseja on kartoitettu, ne muodostavat klustereita. Jos näemme universumista vain 3D-varjokuvan, niin...

Kommentit (6)

Läskiperse
Seuraa 
Viestejä950

Tuossa 3D-tapauksen 2D-varjokuva. Vuosituhannen vaihteessa ohjelma oli optimoitu niin, että se pystyi järjestämään 100000 pistettä tasavälisiksi, jolloin sienirakenne rupeaa korostumaan.

Mutta kyllä tälläkin ohjelmalla sai saman ilmiön jotenkin esiin. Pitää optimoida tämäkin pläjäys käsittelenään suurempia pistejoukkoja.

Mutta summa summarum: miksi tasaisesti jakautuneet pisteet muodostavat varjokuviinsa klustereita?

Cargo
Seuraa 
Viestejä979

Jos jaetaan äärelliselle alueelle joukko pisteitä tasaisesti, niin pisteiden muodostama hilarakenne riippuu vahvasti alueen geometriasta (ympyrä, kolmio, kuinka suuri, nje.). Kun aluetta suurennetaan, niin hilarakenne muuttuu yhä säännöllisemmäksi, jolloin "viivakoodiprojektiokin" alkaa näyttämään paikallisesti tasaiselta.

Äärellisissä avaruuksissa siis syntyy aina epäsäännöllisyyttä, johtuen juuri optimaalisen jakauman tarjoaman hilan geometriasta. Äärettömässä avaruudessa taas kaikki näyttää samalta, katsoi sitten mistä vinkkelistä tahansa.

" sähkö (se sähkö, jota tuotetaan mm. voimalaitoksissa) ei ole energiaa "
- Vastaaja_s24fi

“Jos et ole kaksikymppisenä vihreä, sinulla ei ole sydäntä. Mutta jos et ole nelikymppisenä perussuomalainen, sinulla ei ole aivoja.”
- Cargo

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
kfa
Seuraa 
Viestejä2517
Läskiperse
Mutta summa summarum: miksi tasaisesti jakautuneet pisteet muodostavat varjokuviinsa klustereita?



Oletko varma satunnaislukugeneraattorisi laadusta? Eräs oire LCG:n ongelmista oli klustereiden ja muun rakenteen näkyminen käytettäessä LCG:n tuottamia lukuja pisteiden koordinaatteina esimerkiksi 3D - tapauksessa.

http://en.wikipedia.org/wiki/Linear_con ... _generator

Itsekin olen tuohon simulaatioissa törmännyt, kun erehdyin aikanaan käyttämään suoraan ohjelmointikielen itsensä tarjoamaa satunnaisgenistä ilman jakauman laatua parantavia mutta ohjelman ajoa hidastavia lisävaiheita. Tuolloin apu löytyi kirjasta Numerical Recipes in C.

[edit: kuva lisätty]

Kim Fallström kfa+news@iki.fi

Läskiperse
Seuraa 
Viestejä950
kfa
Oletko varma satunnaislukugeneraattorisi laadusta?

Ohjelma ei käytä satunnaislukuja. Kaikki pisteet saavat aluksi arvon nolla. Siitä sitten ruvetaan yksikkötilassa iteroimaan piste pisteeltä mahdollisimman tasan jakautuneita pisteitä. Loppua kohden jokaisen pisteen etäisyys lähimpään pisteeseen on suunnilleen vakio.

(Tuossa kuvassa muuten pisteet näyttävät satunnaisilta, mutta asettuvat kaikki oudolle attraktorille.)

kfa
Seuraa 
Viestejä2517
Läskiperse
kfa
Oletko varma satunnaislukugeneraattorisi laadusta?

Ohjelma ei käytä satunnaislukuja. Kaikki pisteet saavat aluksi arvon nolla. Siitä sitten ruvetaan yksikkötilassa iteroimaan piste pisteeltä mahdollisimman tasan jakautuneita pisteitä. Loppua kohden jokaisen pisteen etäisyys lähimpään pisteeseen on suunnilleen vakio.



Käyttämäsi iteraatioalgoritmi tuottaa tuloksen, joka riippuu algoritmista ja pisteiden paikkojen alkujakaumasta (random key). Siinä sinulla on (todennäköisesti huono) satunnaislukugeneraattori.

Ympyrän kaaret sitovat pisteiden mahdolliset sijainnit tasossa. Jos lisäät pisteiden lukumäärää yksitellen löydät todennäköisesti "maagisia" arvoja, joilla havaitsemasi periodisuus on paljon voimakkaampaa kuin muuten. Kun vaadit pisteiden välisen etäisyyden olevan mahdollisimman vakio tuotat välittömästi jaksollisuutta rakenteeseen. Tuo jaksollisuus näkyy projektioissa klustereina pisteiden lukumäärän ollessa pieni.

[edit: lisäys]

Äärettömän suuressa ympyrässä äärettömän monella pisteellä algoritmisi tuottaisi optimitilassa ratkaisuna täydellisen säännöllisen kaksiulotteisen rakenteen.

Kim Fallström kfa+news@iki.fi

Läskiperse
Seuraa 
Viestejä950
kfa
Käyttämäsi iteraatioalgoritmi tuottaa tuloksen, joka riippuu algoritmista ja pisteiden paikkojen alkujakaumasta (random key). Siinä sinulla on (todennäköisesti huono) satunnaislukugeneraattori.

Pisteiden järjestys muutetaan joka kierroksella. Jokaista pistettä yritetään sitten siirtää deltan verran siihen suuntaan, että etäisyys lähimpään pisteeseen olisi mahdollisimman suuri. Algoritmi tuottaa nopeasti sellaisen pisteavaruuden, jossa jokaisen pisteen suhde lähimpiin pisteihin on vakio.

Optimoin vähän ohjelmaa, ja ohessa on 8000 pistettä jaettu tasan 3D-avaruuteen. Siitä on sitten otettu 2D-varjokuva. Koska päivätyö ei nyt oikein huvita, käytän tämän päivän sellaisen version optimointiin, jolla pisteitä voi olla mielivaltainen määrä.

(Toisinaan omat projektit hyödyttävät myös varsinaista työtäkin. Minun mielestä ovet on pidettävä auki kaikille mahdollisuuksille.)

Suosituimmat

Uusimmat

Sisältö jatkuu mainoksen alla

Uusimmat

Suosituimmat