Changeset 1238
- Timestamp:
- 05/08/23 02:09:13 (19 months ago)
- Location:
- cpp/frams/genetics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/genetics/f4/f4_conv.h
r1236 r1238 5 5 // Copyright (C) 1999,2000 Adam Rotaru-Varga (adam_rotaru@yahoo.com), GNU LGPL 6 6 // Copyright (C) since 2001 Maciej Komosinski 7 // 2018, Grzegorz Latosinski, added support for new API for neuron types and development checkpoints7 // 2018, Grzegorz Latosinski, added development checkpoints and support for new API for neuron types 8 8 9 9 #ifndef _F4_CONV_H_ -
cpp/frams/genetics/f4/f4_oper.cpp
r1236 r1238 18 18 // TODO add support for properties of (any class of) neurons - not just sigmoid/force/intertia (':' syntax) for N 19 19 // TODO add mapping genotype character ranges for neural [connections] 20 // TODO change the default branching plane (to match f1) so they do not grow perfectly vertical (cheating vertpos) so easily? (so they require Rr or other modifiers) - verify if and how f4 is different from f121 // TODO for some genotypes, #defining/undefining F4_SIMPLIFY_MODIFIERS produces significantly different phenotypes (e.g. length of some Joint changes from 1.25 to 1.499, coordinates of Parts change, friction of some part changes from 1.28 to 0.32). Comparing f4_Node trees, the simplification works as intended, there are no huge changes apart from removing contradicting modifiers like 'R' and 'r' or 'L' and 'l', and dispersing the modifiers (changed order). There is no reason for such a significant influence of this. A hypothesis is that something may be wrong with calculating the influence of individual modifiers, e.g. some strong nonlinearity is introduced where it should not be, or some compensation between modifiers that should not influence each other (like L and R), or some modifier f4_Nodes are skipped/ignored when applying? Investigate. Example genotype: /*4*/,i<qlM,C<X>N:*#1>>,r<MRF<Xcm>N:Gpart>#5#1#2MLL#1>#1>>>>#5ML#2L#1>>>Lf,r<#1>rM<CqmLlCfqiFLqXFfl><F,<<XI>iN:|[-1:4.346]><XF><<XrRQ>N:G#3>>QiXFMR>fXM#2MfcR>R#3>>X20 // TODO for some genotypes, #defining/undefining F4_SIMPLIFY_MODIFIERS produces significantly different phenotypes (e.g. length of some Joint changes from 1.25 to 1.499, coordinates of Parts change, friction of some part changes from 1.28 to 0.32). Comparing f4_Node trees, the simplification works as intended, there are no huge changes apart from removing contradicting modifiers like 'R' and 'r' or 'L' and 'l', and dispersing the modifiers (changed order). There is no reason for such a significant influence of this. A hypothesis is that something may be wrong with calculating the influence of individual modifiers, e.g. some strong nonlinearity is introduced where it should not be, or some compensation between modifiers that should not influence each other (like L and R), or some modifier f4_Nodes are skipped/ignored when applying? Investigate. Example genotype that displays this issue: /*4*/,i<qlM,C<X>N:*#1>>,r<MRF<Xcm>N:Gpart>#5#1#2MLL#1>#1>>>>#5ML#2L#1>>>Lf,r<#1>rM<CqmLlCfqiFLqXFfl><F,<<XI>iN:|[-1:4.346]><XF><<XrRQ>N:G#3>>QiXFMR>fXM#2MfcR>R#3>>X 21 // TODO The f0 genotypes for /*4*/<<RX>X>X> and RX(X,X) are identical, but if you replace R with Q or C, there are small differences - check why and perhaps unify? 22 22 23 23 -
cpp/frams/genetics/genman.cpp
r988 r1238 476 476 { 477 477 char buf[50]; 478 int len = strlen(g);478 int len = int(strlen(g)); 479 479 int chars = 0, lines = 0; 480 480 bool shortened = false; 481 481 uint32_t *styletab = new uint32_t[len]; 482 482 getFullStyle(g, styletab); 483 string html = "\n<div style=\"background:white;padding:0.2em;font-family:arial,helvetica,sans-serif;font-size:90%\">"; 483 string html = "<style>" 484 "span.geno{background:white; padding:0.2em; font-family:arial,helvetica,sans-serif}" 485 "</style>\n\n"; 486 html += "<span class=\"geno\">"; 484 487 uint32_t prevstyle, prevcolor, style = 0, color = 0; 485 488 for (int i = 0; i < len; i++) … … 516 519 html += "</u></b></i></font>"; 517 520 if (shortened) html += " [etc...]"; 518 html += "</ div>\n";521 html += "</span>\n"; 519 522 return html; 520 523 } … … 533 536 { 534 537 char buf[50]; 535 int len = strlen(g);538 int len = int(strlen(g)); 536 539 int chars = 0, lines = 0; //currently not used 537 540 uint32_t *styletab = new uint32_t[len];
Note: See TracChangeset
for help on using the changeset viewer.