User Tools

Site Tools


beaver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
beaver [2006/12/06 23:40]
admin
beaver [2006/12/18 01:37]
admin
Line 1: Line 1:
 ====== Priprava Busy Beaver v domacom prostredi ====== ====== Priprava Busy Beaver v domacom prostredi ======
 +
 +=== Logbook ;) ===
 +
 +vsetko fici, az nato ze ked uz evolucia dospeje ku nejakemu rieseniu stale mam pocit ze je to len lokalne maximum - velka uniformita populacie a malo cudzich genov, mozno je to problem hamingovskej bariery, mozno toho ze mutacie TS, ktore su uz na hrane riesenia (napr. 10 alebo 9) ich len nicia a ze vyssie riesenia su umiestnene v priestore moznosti niekde inde. preto som sa rozhodol zmenit ruletu (aby vyberala nie to coho je najviac) ale aby vyberala podla pseudonahodnej funkcie (ako by mala v skutocnosti). takisto som zaviedol penalizaciu ktora tresta prilis rovnake ts a berie im fitness body. nakoniec som pridal mutaciu ktora v istom pripade vygeneruje ts cely novy stav nemiesto zmeny pismena.
 +
 +zmenil som roulette na roulette 2, z nejakeho dovodu sa cela populacia sprava ako totalny hnoj a chaos - aj ked sa objavi prevratne riesenie (napr. 0.64) nepresadi sa a vsetko sa straca v priemere. skusil som to pustit zo starou roulette - je to lepsie ale stali nic moc. urcite ma natom najvacsi vplyv ruleta, mozno aj penalizacia ktora sposobuje ze je potom viacej oblasti kde pada kocka s tym istym vysledkom (napr. 0.64 - 0.6312 0.64 - 0.6228 pre dve rozne 8 jednotkove ts) mutacia sa asi ukazala prilis hrubou nato aby z vyssich ts spravila nejake lepsie riesenia.. ked vygeneruje cely stav nahodne, jasne ze to vo vacsine pripadov cely ts odjebe. 
 +
 +Roulette2 som uz opravil - bola v nej chyba.. skusim vypocty s roulette1 a roulette2 ako sa spravaju.
 +
 +**2.12.2006**
 +
 +Spravil som novu vizualizaciu pre evoluciu, vidiet na nej ake rozne chromozomy sa nachadzaju v populacii a aj ich pomer a ich vyvoj v case. Premyslal som o mutacii, ktora je jednobitova a preto sposobuje to ze z jedneho typu TS rovnakej sily na druhy je tazke prejst, pretoze jednobitova mutacia hociaj spravnym smerom tento TS oslabi a preto sa nebude dalej rozmnozovat. Prepisal som mutacie tak, aby sa diali naraz dve bitove zmeny (bit - rozumej pismenko v stave). Hned tretia evolucia mi strasne rychlo nasla 11 jednotkovy TS !!! Zrusil som ju kvoli akejsi chybe vo vykreslovani, pustil zase a cela populacia stagnuje okolo 10 jednotkoveho TS. Ked som porovnaval rozdiely medzi 0.64 TS z ktorej sa vyvinul 1.21 TS a 0.64 TS z ktorej vzisiel 1.0 (aby bolo jasno - 8 jednotkovy TS ma fitness 0.64, teda x jednotkovy bude mat X^2/100) zistil som ze tie dve rozne 0.64 su fakt uplne rozdielne a ze mutaciami nieje mozne prejst z jednej vetvy evolucie do druhej. Toto sa vola hammingova bariera ?? Fook. Dalsia nepekna vec je, ze akonahle sa uz vyvinu nejake silnejsie TS (0.64 a vyssie), ich chromozomy sa casom uz vobec nemenia! Ved proti tomu som spravil penalizaciu pre rovnake TS v generacii. Aj ked penalizacia ich odlisuje maximalne o stotiny... Dalsi napad je, nechat evoluciu na zaciatku bezat len tak ze do zasoby naskrabe rozlicne TS - napriklad prvych 100 generacii bude kazdych 20 generacii slachtit TS do sily 0.64 (alebo 0.36, alebo 0.25,, neviem) a potom si ich zapamata, a zacne odznovu. Ak zisti ze ide uz vyslapanou cestou zrusi evoluciu a zase zacne. Takto po 100 prvych generaciach bude mat zasobu roznych chodnickov ktorymi sa evolucia moze uberat a tu vaznu evoluciu zacne s co najroznorodejsou, a najsilnejsou populaciou zlozenou z toho co bolo predslachtene. Takto to nebude evolucia len jednej vetvy, ale superenie viacerych vetiev, ktore na seba inaksie kvoli hammingovej bariere nedosiahnu. 
 +Dalsia zaujimava vec je, ze cca 40% populacie zabera shit - teda menejcenne automaty (0.25 a menej). Tie najlepsie su v hornych 15 percentach ;)
 +
 +bezim evolucie na smecnete aj na laptope. na laptope su s grafmi priebehu fitness funkcie (spriemerovanej). 
 +
 +**17.12.2006** 
 +
 +No tymto to asi padne, netusil som ze 5 a 6 stavove su uz take huste na vypocty. heh. Zacal som v pondelok (11.12) s tym ze som len prepisal 4stavovy kod pre 5stavove automaty. Este nejaky tinkering aby to bezalo na servri a aby som videl results (http://smecnet.itchybit.org/evolucia/). Rozdiel vo fitness funkcii - kym pre 4stavove bezala simulacia 5000 krokov a dost, tuna bezi na lubovolny pocet krokov, s tym ze horna hranica napisanych jednotiek je 10000 (som si povedal ze preco si mysliet ze najdeny 4098 TS bol strop ;).. ukazala sa cela plejada TS, co vedela zapisat 4 jednotky a bezat donekonecna , etc etc.. spravil som funkciu co checkuje historiu poctu jednotiek a stavov a ked je poslednych 300 stavov rovnakych asi to bude nejaky loop.. etc.. nechal bezat do piatku.,. potom zase strasne casu zozrali TS ktore idu ako husenica zlava doprava a donekonecna pridavaju po jednotke vzdy na jednej ci druhej strane, tie fakt pokial napisu 10000 jednotiek tak zanikne vesmir. som to zoptimalizoval tak ze ked robim simulaciu, tak strasne vela jednotiek v stave co sa hybe po jednotkach a zapisuje jednotky proste preskocim.. super.. hned vzapati sa ukaze napri. toto: **q0 0 1 A R ;D 1 1 B N ;A 0 0 B L ;C 1 0 B R ;B 0 1 A N ;A 1 0 q0 R ;D 0 0 A R ;B 1 0 C N ;C 0 1 A L ;** co uz sa hore-dole hybe cez cyklus zlozeny z dvoch stavov. Robi to na paske taku striedacku 010101 a strasne pomaly rastie pocet zapisanych jednotiek. No a na nejaky vseobecnejsi algorytmus co by sam rozoznal nejake bazalne formy loopov a preskocil ich som uz cas nemal.. 
 +ved toto necham dobezat, aspon som sa nieco naucil, nasiel som aj 11 jednotkovy 4TS a uz mam aj napad ako evoluciu pouzit na jeden plagat co mam spravit do konca decembra.. hmm kod dole je outdated,, keby niekto chcel poskytnem sucasny stav :)
  
 ==== Evolucia ==== ==== Evolucia ====
Line 301: Line 321:
 ==== Vysledky ==== ==== Vysledky ====
  
-=== Logbook ;) ===+Pre 4 stavove TS som nasiel najlepsi TS taky, ktory zapise 11 jednotiek a skonci: 
  
-vsetko fici, az nato ze ked uz evolucia dospeje ku nejakemu rieseniu stale mam pocit ze je to len lokalne maximum - velka uniformita populacie a malo cudzich genov, mozno je to problem hamingovskej bariery, mozno toho ze mutacie TS, ktore su uz na hrane riesenia (napr. 10 alebo 9) ich len nicia a ze vyssie riesenia su umiestnene v priestore moznosti niekde inde. preto som sa rozhodol zmenit ruletu (aby vyberala nie to coho je najviac) ale aby vyberala podla pseudonahodnej funkcie (ako by mala v skutocnosti). takisto som zaviedol penalizaciu ktora tresta prilis rovnake ts a berie im fitness body. nakoniec som pridal mutaciu ktora v istom pripade vygeneruje ts cely novy stav nemiesto zmeny pismena.+**q0 0 1 A R;A 0 1 C R;B 0 1 A L;C 0 1 B L;B 1 1 B L;q0 1 0 q0 L;C 1 0 q0 R;**
  
-zmenil som roulette na roulette 2, z nejakeho dovodu sa cela populacia sprava ako totalny hnoj a chaos - aj ked sa objavi prevratne riesenie (napr. 0.64) nepresadi sa a vsetko sa straca v priemere. skusil som to pustit zo starou roulette - je to lepsie ale stali nic moc. urcite ma natom najvacsi vplyv ruleta, mozno aj penalizacia ktora sposobuje ze je potom viacej oblasti kde pada kocka s tym istym vysledkom (napr. 0.64 - 0.6312 0.64 - 0.6228 pre dve rozne 8 jednotkove ts) mutacia sa asi ukazala prilis hrubou nato aby z vyssich ts spravila nejake lepsie riesenia.. ked vygeneruje cely stav nahodne, jasne ze to vo vacsine pripadov cely ts odjebe. +vypocet:
  
-Roulette2 som uz opravil - bola v nej chyba.. skusim vypocty s roulette1 a roulette2 ako sa spravaju. +['1', '1', '1'] 
- +[0, '1', '1', '1'] 
-**2.12.2006** +[0, '1', '1', '1', '1'] 
- +['1', '0', '1', '1', '1'] 
-Spravil som novu vizualizaciu pre evoluciuvidiet na nej ake rozne chromozomy sa nachadzaju v populacii a aj ich pomer a ich vyvoj v case. Premyslal som o mutaciiktora je jednobitova a preto sposobuje to ze z jedneho typu TS rovnakej sily na druhy je tazke prejstpretoze jednobitova mutacia hociaj spravnym smerom tento TS oslabi a preto sa nebude dalej rozmnozovat. Prepisal som mutacie takaby sa diali naraz dve bitove zmeny (bit - rozumej pismenko v stave). Hned tretia evolucia mi strasne rychlo nasla 11 jednotkovy TS !!! Zrusil som ju kvoli akejsi chybe vo vykreslovanipustil zase a cela populacia stagnuje okolo 10 jednotkoveho TS. Ked som porovnaval rozdiely medzi 0.64 TS z ktorej sa vyvinul 1.21 TS a 0.64 TS z ktorej vzisiel 1.(aby bolo jasno - 8 jednotkovy TS ma fitness 0.64teda x jednotkovy bude mat X^2/100) zistil som ze tie dve rozne 0.64 su fakt uplne rozdielne a ze mutaciami nieje mozne prejst z jednej vetvy evolucie do druhej. Toto sa vola hammingova bariera ?? Fook. Dalsia nepekna vec jeze akonahle sa uz vyvinu nejake silnejsie TS (0.64 a vyssie)ich chromozomy sa casom uz vobec nemenia! Ved proti tomu som spravil penalizaciu pre rovnake TS v generacii. Aj ked penalizacia ich odlisuje maximalne o stotiny... Dalsi napad jenechat evoluciu na zaciatku bezat len tak ze do zasoby naskrabe rozlicne TS - napriklad prvych 100 generacii bude kazdych 20 generacii slachtit TS do sily 0.64 (alebo 0.36alebo 0.25,, neviem) a potom si ich zapamataa zacne odznovu. Ak zisti ze ide uz vyslapanou cestou zrusi evoluciu a zase zacne. Takto po 100 prvych generaciach bude mat zasobu roznych chodnickov ktorymi sa evolucia moze uberat a tu vaznu evoluciu zacne s co najroznorodejsoua najsilnejsou populaciou zlozenou z toho co bolo predslachtene. Takto to nebude evolucia len jednej vetvyale superenie viacerych vetievktore na seba inaksie kvoli hammingovej bariere nedosiahnu.  +['1''0''0''1''1'
-Dalsia zaujimava vec jeze cca 40% populacie zabera shit - teda menejcenne automaty (0.25 a menej). Tie najlepsie su v hornych 15 percentach ;) +['1''1', '1', '0', '1'] 
- +['1', '1', '1', '0', '0'
-bezim evolucie na smecnete aj na laptope. na laptope su s grafmi priebehu fitness funkcie (spriemerovanej)+['1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1'
 +[0, '1', '1', '1', '1', '1', '1'
 +[0, '1', '1', '1', '1', '1', '1', '1'
 +['1', '0''1', '1', '1', '1', '1', '1'
 +['1', '0''0''1', '1', '1', '1', '1'
 +['1', '1', '1', '0', '1', '1', '1', '1'
 +['1', '1', '1', '0''0''1''1''1'
 +['1''1''1''1', '1', '0', '1', '1'] 
 +['1''1', '1', '1', '1', '0', '0', '1'] 
 +['1', '1', '1', '1', '1', '1', '1', '0', 0] 
 +['1', '1', '1', '1', '1', '1', '1', '0', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '0', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'
 +  
 +Pre 5 a 6 stavove som uz nestihol vela.
  
 === Data === === Data ===
Line 582: Line 626:
 ---- ----
  
 +dalsie (new) vysledky [[http://smecnet.itchybit.org/evolucia/|tuna]]
beaver.txt · Last modified: 2007/04/17 12:58 (external edit)