31
Vývoj / Re:Cartesian genetic programming - pomoc
« kdy: 26. 12. 2019, 20:24:55 »
Nevadí, i tak děkuji za vynaloženou snahu, obávám se, že mi nic jiného nezbude, než to opravdu probrat s garantem po svátcích :/
Ano, také se mi to moc nezdá, ale pokud nevznikl někde informatický šum, tak to tak bude. Vždy se vybere nejlepší jedinec z těch řekněme 5 a ten se dál mutuje, s tím, že to stále může být ten stejný obvod, co byl jako první.
(osobně si to představuji jako, že zkouším náhodně mutovat tak dlouho až se mi to podaří na tom mém daném obvodě a najdu tak řešení. plus mínus autobus a slon k tomu
)
https://imgur.com/IKgtvgv takto zhruba vypadá pro představu ta má matice a logické hradla. Parita 5 jde realizovat pomocí 4 hradel XOR. A stavový prostor je opravdu obrovský, zde právě CGP naráží. Při velkém počtu vstupů a výstupů už to nalézt trvá až moc dlouho a je to relativně známý problém, nicméně stále taková 3 bitová sčítačka jde najít řekněme v řádech minut, násobička v řádech nízkých desítek. Používají se i různé optimalizace, že se sleduje, tam kde se mutuje, nebo lepší zakódování, atd. (to jen tak mimo pro info).
Osobně mi tento "lambda algoritmus" taky lehce smrdí... a celou dobu jsem v hlavě měl představu spíše toho, že tam budu dělat nějaký výběr ruletou, případně elitismus apod. Ale bylo mi to tak něják doporučeno, tak jsem to přijal jako dobrou radu...
Menší odbočka a "pochlubení se"
pokud jsem hledal náhodně, tak paritu 5 mi to našlo asi za 5 sekund v průměru, když jsem si dostatečně pohrál s parametry, jako velikost matice, mutace, výběr po křížení, ... a pro paritu 9 jsem se dostal na nízké řády desítek sekund, což mi stále dává jistý pocit, "že to už musí snad fungovat, jen to bude prkotina".
Citace
Tohle fakt neznam. Podle tohodle popisu nerozumim tomu, co se deje s ne-nejlepsima jedincema z predchozi generace. Zahodi se? Tj. kazda dalsi generace vychazi jenom z toho jednoho nejlepsiho jedince? To by mi prislo hodne divny a nedivil bych se, ze to nekonverguje...
Ano, také se mi to moc nezdá, ale pokud nevznikl někde informatický šum, tak to tak bude. Vždy se vybere nejlepší jedinec z těch řekněme 5 a ten se dál mutuje, s tím, že to stále může být ten stejný obvod, co byl jako první.
(osobně si to představuji jako, že zkouším náhodně mutovat tak dlouho až se mi to podaří na tom mém daném obvodě a najdu tak řešení. plus mínus autobus a slon k tomu

Citace
Popravde, z toho popisu uplne presne nerozumim tomu kodovani a nemam ted uplne cas se nad tim hloubeji zamyslet. Mas teda matici 5x5, na kazde pozici je nejaka logicka funkce a ty funkce muzou byt mezi sebou libovolne propojeny? Pricemz do nekterych obvodu vubec nevede cesta ze vstupu, coz je zamer ("geny bez exprese"). Chapu to spravne?
Pokud jo, je tohle cesta, kterou ti doporucil garant, popr. kterou jsi nasel v literature? Prijde mi to totiz (na prvni pohled) docela neprakticky - mas obrovskej stavovej prostor (relativne velkej genom), pricemz velky oblasti prostoru budou z hlediska fitness ekvivalentni (mutace v neexpresivni casti genomu). Samo tohle mi prijde, ze celkem logicky vede na strasne pomalou konvergenci. Kdybych mel tohle napsat, ciste od stolu bych zvolil kratkej genom s daleko mensim procentem neexpresivnich genu - treba dva chromozomy, v jednom seznam funkci, ve druhym seznam jejich propojeni. Krizeni pak samozrejme jenom mezi prislusnymi chromozomy. Pak by totiz treba pro tu 5-bitovou paritu stacil kratkej genom, kterej by se mel najit relativne rychle... Ten pristup s matici mi prijde zvlastni.
Ale to ber jako ciste laickej udiv, bez toho, abych mel konkretne tohle CGP nastudovany. Jestli se to pouziva, tak to urcite nejakou logiku ma. Ale mozna to ma taky svoje specificky problemy, ktery musis holt umet resitS tim fakt nepomuzu, to by mel ten, kdo ti to doporucil...
https://imgur.com/IKgtvgv takto zhruba vypadá pro představu ta má matice a logické hradla. Parita 5 jde realizovat pomocí 4 hradel XOR. A stavový prostor je opravdu obrovský, zde právě CGP naráží. Při velkém počtu vstupů a výstupů už to nalézt trvá až moc dlouho a je to relativně známý problém, nicméně stále taková 3 bitová sčítačka jde najít řekněme v řádech minut, násobička v řádech nízkých desítek. Používají se i různé optimalizace, že se sleduje, tam kde se mutuje, nebo lepší zakódování, atd. (to jen tak mimo pro info).
Osobně mi tento "lambda algoritmus" taky lehce smrdí... a celou dobu jsem v hlavě měl představu spíše toho, že tam budu dělat nějaký výběr ruletou, případně elitismus apod. Ale bylo mi to tak něják doporučeno, tak jsem to přijal jako dobrou radu...
Menší odbočka a "pochlubení se"
