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/01 16:27]
admin
beaver [2006/12/18 01:47]
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 5: Line 25:
 Evoluciu robim v pythone, asi je to pomale oproti c-cku ale easy sa v tom kodi. Tu je kod gentickeho algoritmu, doplnil som do neho poznamky. Procedury a funkcie ktore vola su nizsie. Evoluciu robim v pythone, asi je to pomale oproti c-cku ale easy sa v tom kodi. Tu je kod gentickeho algoritmu, doplnil som do neho poznamky. Procedury a funkcie ktore vola su nizsie.
  
-<code>+<code python>
 def genetic_alg(iterat,repro_prob,mut_prob,filename): def genetic_alg(iterat,repro_prob,mut_prob,filename):
     t = 0     t = 0
  
-    **# pop je pole pre sucasnu populaciu**+    # pop je pole pre sucasnu populaciu
     pop = []     pop = []
  
-    **# fit je pole kde sa drzi fitness kazdeho jedinca**+    # fit je pole kde sa drzi fitness kazdeho jedinca
     fit = []     fit = []
  
-   ** # fit_c je pole kde mam kolko jednotiek^2/100 vygeneroval TS**+    # fit_c je pole kde mam kolko jednotiek^2/100 vygeneroval TS
     fit_c = []     fit_c = []
     stop = False;     stop = False;
  
-   ** # nahodne si vygenerujem 100 TS, pridam do pop, a do fit a fit_c popridavam nuly**+    # nahodne si vygenerujem 100 TS, pridam do pop, a do fit a fit_c popridavam nuly
     for i in range(100):     for i in range(100):
         pop.append(generate_random())         pop.append(generate_random())
         fit.append(0)         fit.append(0)
         fit_c.append(0)         fit_c.append(0)
-    **# samotna evolucia sa zacina tu. konci sa zatial len po dosiahnuti isteho poctu generacii**+    # samotna evolucia sa zacina tu. konci sa zatial len po dosiahnuti isteho poctu generacii
     while (t < iterat):     while (t < iterat):
         t+=1         t+=1
  
-        **je pole kde davam potomkov generacie pop**+        # je pole kde davam potomkov generacie pop
         q=[]         q=[]
         i=0         i=0
                  
-        **# gradient je pole v ktorom si pamatam,  +        # gradient je pole v ktorom si pamatam,  
-        # kolko roznych stupnov fitness mam**+        # kolko roznych stupnov fitness mam
         gradient=[]         gradient=[]
  
-        **# pre kazdy TS vypocitam je fitness funkciu. +        # pre kazdy TS vypocitam je fitness funkciu. 
         # Najprv ho simulujem v eval_TS          # Najprv ho simulujem v eval_TS 
-        # potom vysledok prepocitam a hodim do fit a fit_c**+        # potom vysledok prepocitam a hodim do fit a fit_c
         for ts in pop:         for ts in pop:
             fit_c[i] = fitness(eval_TS(ts,5000))             fit_c[i] = fitness(eval_TS(ts,5000))
Line 44: Line 64:
             i+=1             i+=1
  
-        **# Penalizaciu som si vymyslel tak +        # Penalizaciu som si vymyslel tak 
         # aby sa v populacii rovnako vykonnych TS          # aby sa v populacii rovnako vykonnych TS 
-        # presadili nove, a menej rozsirene formy**+        # presadili nove, a menej rozsirene formy
         #fit = penalize(pop,fit)         #fit = penalize(pop,fit)
  
-        **# Pozriem na vsetky rozne fitness hodnoty  +        # Pozriem na vsetky rozne fitness hodnoty  
-        # a pridam ich po jednej do gradient**+        # a pridam ich po jednej do gradient
         for ts_fit in fit:         for ts_fit in fit:
             if (ts_fit not in gradient):             if (ts_fit not in gradient):
                 gradient.append(ts_fit)                 gradient.append(ts_fit)
  
-        **# Tu sa zacina reprodukcia +        # Tu sa zacina reprodukcia 
-        # Bezi to pokial je nova populacia q mensia ako populacia pop**+        # Bezi to pokial je nova populacia q mensia ako populacia pop
         while (len(q) < len(pop)):         while (len(q) < len(pop)):
  
-           ** # Vyberiem v rulete alebo rulete2 dvoch jedincov z populacie**+            # Vyberiem v rulete alebo rulete2 dvoch jedincov z populacie
             (ai,bi)= roulette(fit,gradient)             (ai,bi)= roulette(fit,gradient)
             a = pop[ai]             a = pop[ai]
             b = pop[bi]             b = pop[bi]
  
-            **# pokial nahodne cislo je mensie +            # pokial nahodne cislo je mensie 
             # ako pravdepodobnost reprodukcie tak sa idu reprodukovat             # ako pravdepodobnost reprodukcie tak sa idu reprodukovat
-            # reprodukcia ma svoju (globalnu) pravdepodobnost mutacie**+            # reprodukcia ma svoju (globalnu) pravdepodobnost mutacie
             if (random.random() < repro_prob):             if (random.random() < repro_prob):
                 (a,b) = reproduce(a,b,mut_prob)                 (a,b) = reproduce(a,b,mut_prob)
  
-            **# ci uz reprodukovany alebo povodny, pridam ich do q**+            # ci uz reprodukovany alebo povodny, pridam ich do q
             q.append(a)             q.append(a)
             q.append(b)             q.append(b)
  
-        **# zapisem staru generaciu do suboru**+        # zapisem staru generaciu do suboru
         write_pop(fit,fit_c,pop,filename,t)         write_pop(fit,fit_c,pop,filename,t)
          
-        **# vykreslim data**+        # vykreslim data
         graph_data(fit,fit_c,"e:/evolution.jpg",iterat)         graph_data(fit,fit_c,"e:/evolution.jpg",iterat)
  
-        **# zakillujem staru generaciu a nahradim novou**+        # zakillujem staru generaciu a nahradim novou
         pop = q         pop = q
 </code> </code>
Line 90: Line 110:
 === Ruleta === === Ruleta ===
  
-<code>+<code python>
  
-**# Ruleta 2**+# Ruleta 2
 def roulette2(fit,grad): def roulette2(fit,grad):
     a = random.sample(grad,1)[0]     a = random.sample(grad,1)[0]
Line 107: Line 127:
     return (aa,bb)     return (aa,bb)
  
-**# Ruleta 1**+# Ruleta 1
 def roulette(fit,grad): def roulette(fit,grad):
     add = sum(fit)     add = sum(fit)
Line 138: Line 158:
 === Fitness funkcia === === Fitness funkcia ===
  
-<code>+<code python>
  
 def fitness((count,halt)): def fitness((count,halt)):
Line 156: Line 176:
 == Krizenie == == Krizenie ==
  
-<code>+<code python>
  
 def reproduce(a,b,mut_prob): def reproduce(a,b,mut_prob):
Line 166: Line 186:
     lena = len(state_a)     lena = len(state_a)
  
-   ** # krizenie zavysi od toho ktory automat je dlhsi. +    # krizenie zavysi od toho ktory automat je dlhsi. 
     # (bullshit, oba su rovnako dlhe, myslel som ze mozno vzniknu aj kratke automaty)     # (bullshit, oba su rovnako dlhe, myslel som ze mozno vzniknu aj kratke automaty)
-    # urci sa bod a za bodom si automaty vymenia genom**+    # urci sa bod a za bodom si automaty vymenia genom
     if (lena > lenb):     if (lena > lenb):
         num = int(random.random()*lenb)         num = int(random.random()*lenb)
Line 178: Line 198:
         state_bb = state_b[:num] + state_a[num:]         state_bb = state_b[:num] + state_a[num:]
          
-    **# ak nahodne cislo mensie ako pravdepodobnost mutacie,  +    # ak nahodne cislo mensie ako pravdepodobnost mutacie,  
-    # tak este ideme krizenych jedincov zmutovat**+    # tak este ideme krizenych jedincov zmutovat
     if (random.random() < mut_prob):     if (random.random() < mut_prob):
         (state_aa,state_bb) = mutate(state_aa,state_bb)         (state_aa,state_bb) = mutate(state_aa,state_bb)
Line 194: Line 214:
 == Mutacia == == Mutacia ==
  
-<code>+<code python>
  
 def mutate(a,b): def mutate(a,b):
Line 202: Line 222:
     rndb = int(lenb*random.random())     rndb = int(lenb*random.random())
          
-    **### - Less probable but generates a random new state**+    ### - Less probable but generates a random new state
     if (random.random() > 0.90):     if (random.random() > 0.90):
                  
Line 208: Line 228:
         b[rndb] = random.sample(states,1)[0].replace(";"," ")         b[rndb] = random.sample(states,1)[0].replace(";"," ")
                  
-    **### - More probable, changes one bit in a state**+    ### - More probable, changes one bit in a state
     else:     else:
                  
-       ** # A - mutation**+        # A - mutation
         init =  a[rnda].split()[0]         init =  a[rnda].split()[0]
         read =  a[rnda].split()[1]         read =  a[rnda].split()[1]
Line 231: Line 251:
         a[rnda] = aa         a[rnda] = aa
          
-        **# B - mutation**+        # B - mutation
         init =  b[rndb].split()[0]         init =  b[rndb].split()[0]
         read =  b[rndb].split()[1]         read =  b[rndb].split()[1]
Line 272: Line 292:
 Vymyslel som si penalizaciu, ktora pokutuje prilis rozsirenych jedincov a tym padom dava vacsiu sancu mutantom ktory maju tu istu fitness ale je ich menej.  Vymyslel som si penalizaciu, ktora pokutuje prilis rozsirenych jedincov a tym padom dava vacsiu sancu mutantom ktory maju tu istu fitness ale je ich menej. 
  
-<code>+<code python>
  
 def penalize(pop,fit): def penalize(pop,fit):
Line 298: Line 318:
  
 Penalizacia proste vypocita percentualny podiel jedinca na populacii, obrati ho (100 - podiel) a prenasobi ho tak aby vysledne cislo bolo z intervalu 0.8 az 1. Tym padom sa nemoze stat ze schopnejsi jedinec ma mensiu fitness ako menej schopny.  Penalizacia proste vypocita percentualny podiel jedinca na populacii, obrati ho (100 - podiel) a prenasobi ho tak aby vysledne cislo bolo z intervalu 0.8 az 1. Tym padom sa nemoze stat ze schopnejsi jedinec ma mensiu fitness ako menej schopny. 
 +
 +
  
 ==== 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 riesnie (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, +vypocet:
  
-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-ove ts) mutacia sa asi ukazal prilis hrubou nato aby z vyssich ts spravila nejake lepsie riesenia.. ked vygeneruje cely stav nahodnejasne ze to vo vacsine pripadov cely ts odjebe.  +['1', '1', '1']\\ 
- +[0, '1', '1', '1']\\ 
-bezim evolucie na smecnete aj na laptope. na laptope su s grafmi priebehu fitness funkcie (spriemerovanej)+[0, '1', '1', '1', '1']\\ 
 +['1', '0', '1', '1', '1']\\ 
 +['1', '0''0', '1', '1']\\ 
 +['1', '1', '1', '0', '1']\\ 
 +['1', '1', '1', '0', '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']\\ 
 +[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 403: Line 454:
 ---- ----
  
-**smecnet:** +**laptop:** 
   * populacia: 100   * populacia: 100
-  * radical mut:0.87 +  * radical mut:0.9 
-  * repro:0.8 +  * repro:0.65 
-  * mut:0.6+  * mut:0.8
   * penalize   * penalize
-  * roulette1 +  * roulette2 OPRAVENA! 
-  * //Vysledok:// najvyssi TS: 0.25, 500 generacii+  * //Vysledok:// najvyssi TS: 1.0, 500 generacii. 1.0 sa nasiel pocas cca 150 generacie, zvysnych 350 generacii sa uz nic neudialo.
  
-**smecnet:**  +zda sa ze ruleta2 uz funguje lepsie a dovoluje aj slabsim jedincom prezitco spolu z penalizaciou ma za nasledok to ze geneticky pool je bohatsi.
-  * populacia: 200 +
-  * radical mut:0.92 +
-  * repro:0.6 +
-  * mut:0.8 - 1postupne od 0 po 5000 generaciu +
-  * penalize 0.7 - 1, od generacie 3000   +
-  * roulette1, od generacie 4000 roulette2 +
-  * fitness dava 0.01 nezastavenym automatom +
-  * //Vysledok://  najvyssi TS: 0.81, teraz uz 4600 generacia+
  
-=== Stare Data === 
  
-Evolucia s novou ruletou, a bez penalizacie:+{{:ts006.jpg|:ts006.jpg}}
  
-{{:evolution_nu_roulett_nut_mut_penalization_repaired.jpg|:evolution_nu_roulett_nut_mut_penalization_repaired.jpg}}+---- 
 + 
 +**laptop:**  
 +  * populacia: 100 
 +  * radical mut:0.9 
 +  * repro:0.65 
 +  * mut:0.8 
 +  * penalize 
 +  * roulette2  
 +  * //Vysledok:// najvyssi TS: 0.81, 500 generacii. 
 + 
 +podivne je ze 0.64 TS sa objavili a hned vyhynuli .. az na druhy krat sa presadili. 
 + 
 +Nove vizualizacie. 
 + 
 +{{:ts007.gif|:ts007.gif}}
  
 ---- ----
  
-Evolucia s novou ruletou, a s penalizaciou:+**laptop 2.12 01:30**  
 +  * populacia: 100 
 +  * radical mut:0.9 
 +  * repro:0.65 
 +  * mut:0.8 
 +  * penalize 
 +  * roulette2  
 +  * //Vysledok:// najvyssi TS: 1.0, 500 generacii.
  
-{{:evolution_nu_roulett_nu_mut_penalization.jpg|:evolution_nu_roulett_nu_mut_penalization.jpg}}+Nova mutacia. Dvojbitova. Rychlejsie dospievam ku komplexnejsim TS. Stale nestaci na preskakovanie medzi roznymi vetvami vyvoja. 
 + 
 +{{:population_2_12_1-30.jpg|:population_2_12_1-30.jpg}}
  
 ---- ----
  
-Stara evolucia, este stare fitness = pocet jednotiek / 100, bez penalizacie, so starou ruletou+**laptop 2.12 02:17**  
 +  * populacia: 100 
 +  * radical mut:0.9 
 +  * repro:0.65 
 +  * mut:0.8 
 +  * penalize 
 +  * roulette2  
 +  * //Vysledok:// najvyssi TS: 0.81500 generacii.
  
-{{:evolution_old_fit_mut_087_no_penalize_old_roulette.jpg|:evolution_old_fit_mut_087_no_penalize_old_roulette.jpg}}+{{:population_2_12_2-17.jpg|:population_2_12_2-17.jpg}}
  
 ---- ----
  
-Najstarsia evoluciabez penalizacie a so starou ruletou+**laptop 2.12 07:48**  
 +  * populacia: 100 
 +  * radical mut:0.9 
 +  * repro:0.9 
 +  * mut:0.2 
 +  * penalize 
 +  * roulette2  
 +  * //Vysledok:// najvyssi TS: 0.81500 generacii.
  
-{{:evolution_old_fit_much_mut.jpg|:evolution_old_fit_much_mut.jpg}}+{{:evolution_2_12_7-48.jpg|:evolution_2_12_7-48.jpg}}
  
 +{{:population_2_12_7-48.jpg|:population_2_12_7-48.jpg}}
  
 +Nizsia uroven mutacie a vyssia reprodukcia - znizili pomer shitnych TS na populacii. mozno treba skusit nechat bezat na 1000 generacii aby sa to niekam dopracovalo. 
  
 +----
 +
 +**laptop 2.12 10:52** 
 +  * populacia: 100
 +  * radical mut:0.7
 +  * repro:0.9
 +  * mut:0.9
 +  * penalize
 +  * roulette2 
 +  * //Vysledok:// najvyssi TS: 1.0, 500 generacii.
 + 
 +Vysoka mutacia, nizka reprodukcia, vysoka radikalna mutacia. Shitne TS vyskocili az na 80% populacie. Neda sa povedat ze by sa 1.0 TS objavili nejako velmi skoro, vzapati vyhynuli.
 +
 +{{:population_2_12_10-52.jpg|:population_2_12_10-52.jpg}}
 +
 +----
 +
 +**laptop 2.12 11:42** 
 +  * populacia: 100
 +  * radical mut: 0.7
 +  * repro:0.9
 +  * mut:0.6
 +  * penalize
 +  * roulette2 
 +  * //Vysledok:// najvyssi TS: 1.0, 500 generacii.
 + 
 +{{:population_2_12_11-42.jpg|:population_2_12_11-42.jpg}}
 +
 +----
 +
 +**laptop 2.12 12:30** 
 +  * populacia: 100
 +  * radical mut: 0.9 - 1
 +  * 2bit mut: 0.4 - 0.9
 +  * 1bit mut: 0 - 0.4
 +  * repro:0.9
 +  * mut:0.6
 +  * penalize
 +  * roulette2 
 +  * //Vysledok:// najvyssi TS: 0.64, 500 generacii.
 +
 +Nova mutacia - radical mutation vytvori novy stav ale s rovnakym initom, podla nahodneho cisla est aj 2bitova alebo jednobitova mutacia, 2bitova je najpravdepodobnejsia..
 +
 +{{:population_2_12_12-30.jpg|:population_2_12_12-30.jpg}}
 +
 +----
 +
 +**laptop 2.12 12:30** 
 +  * populacia: 100
 +  * radical mut: 0.9 - 1
 +  * 2bit mut: 0.4 - 0.9
 +  * 1bit mut: 0 - 0.4
 +  * repro:0.9
 +  * mut:0.6
 +  * penalize
 +  * roulette2 
 +  * //Vysledok:// najvyssi TS: 0.64, 500 generacii.
 +
 +Nova mutacia - radical mutation vytvori novy stav ale s rovnakym initom, podla nahodneho cisla est aj 2bitova alebo jednobitova mutacia, 2bitova je najpravdepodobnejsia..
 +
 +{{:population_2_12_12-30.jpg|:population_2_12_12-30.jpg}}
 +
 +----
 +
 +**laptop 2.12 12:30** 
 +  * populacia: 100
 +  * radical mut: 0.9 - 1
 +  * 2bit mut: 0.4 - 0.9
 +  * 1bit mut: 0 - 0.4
 +  * repro:0.9
 +  * mut:0.6
 +  * penalize
 +  * roulette2 
 +  * //Vysledok:// najvyssi TS: 0.64, 500 generacii.
 +
 +Nova mutacia - radical mutation vytvori novy stav ale s rovnakym initom, podla nahodneho cisla est aj 2bitova alebo jednobitova mutacia, 2bitova je najpravdepodobnejsia..
 +
 +{{:population_2_12_12-30.jpg|:population_2_12_12-30.jpg}}
 +
 +----
 +
 +**laptop 2.12 13:40** 
 +  * populacia: 100
 +  * radical mut: 0.9 - 1
 +  * 2bit mut: 0.4 - 0.9
 +  * 1bit mut: 0 - 0.4
 +  * repro:0.9
 +  * mut:0.6
 +  * penalize
 +  * roulette2 
 +  * //Vysledok:// najvyssi TS: 1.0, 1500 generacii.
 +
 +stale ten isty problem, akonahle dospeje povedzme po 0.64 uz iba mlati prazdne zito s tym istym genomom. nic nove sa uz neobjavi..
 +
 +{{:population_2_12_13-40.jpg|:population_2_12_13-40.jpg}}
 +
 +----
  
 +dalsie (new) vysledky [[http://smecnet.itchybit.org/evolucia/|tuna]]
beaver.txt · Last modified: 2007/04/17 12:58 (external edit)