tdat- a genetic approach

so, the last post on this topic left me with a ruleset that i liked and moving on to start filling in those ascii characters with meaningful content. i am sorry to say that i have hit a snag. that is, i ran a few simulations of the 'tHl' ruleset and got enough unsatisfactory results that i decided to can it. i was not thrilled to do this, to be sure.

i have somewhat intentionally been allowing my ideas to stew about what to fill into those characters, since i will be performing the piece as my thesis presentation and i'm still doing some research. it no longer worries me that i do not have this content, since i'm bursting at the seams with ideas for what that content should be. what worries me now is that the structure is inadequate, and that i had prematurely settled on such a structure.

my solution has been to use a genetic algorithm to traverse the massive search space and find a ruleset with a reasonably good chance of lasting longer than a few asynchronous turns. i am not modeling sexual reproduction because the bitmasking involved makes it somewhat unwieldy. in other situations breeding would make more sense. Jenny and i just aren't ready for that just yet. har har har. seriously though, sexual reproduction is terrifying.

so these rulesets don't breed, they split and mutate. charming, no? i spend most of my time testing them, all 16 variants at a time, 32 times per generation. the variants are then evaluated for their average longevity. in my implementation, since i do plan on sonifying these systems, each player in each game is a routine forked off of the system clock. that is, each turn does take an amount of time, albeit small. i have tuned down this timing element to vary between 1/128 to 1/256 th of a second. i was able to do smaller subdivisions with smaller gene pools, but i decided to go for bigger populations. at the end of each generation, i write out a little data file, keeping track of the population as it evolves, and then remove all but the top 25%. these four are permitted to pass on their genes to 3 other children each, and themselves live on to compete in the next generation.

right now, i'm on my fifth generation. generations take about 20 minutes each and require intermittent input. not the best implementation, but for now it'll do. i may eventually get this running on its own. perhaps i could distribute the breeding process across the cattri. right now that seems like more trouble than it's worth, but who knows. there are so many variables at play here that perhaps the only way though is by brute force.

2 thoughts on “tdat- a genetic approach

  1. Hey this was probably one of the most intelligent posts I have read on the topic so far. I do not understand where you get all your data but up! I'm going to send some individuals over here to take a look at this post. Awesome, just plain awesome. I'm just getting into crafting articles myself, nothing remotely close to your writing potential (lol) but I would love for you to check out my stuff someday!

Leave a Reply

Your email address will not be published. Required fields are marked *