Profile
Best ForComments
Mon, 08/02/2010 - 11:40
#2
:)
Interesting strategy!
Mon, 08/02/2010 - 18:39
#3
Questions:
1.: May I fix a bug according to the selection? regards,
Mon, 08/02/2010 - 19:44
#4
Please feel free to change it as you see fit
I submitted this as an idea generator so any changes that you make will reflect well on that. I have actually tried other variants and I'm going to try still more. Work is getting real crazy so I wanted to get the ideas other there before i got buried. One thing I was thinking of doing was having a 2nd "chromosome" that freezes segments of the peptide. I haven't had time to work on that yet. There's only so far that a random process like a GA will take us, that's a negative, but on the plus side when it works it works really really well. It is the only reason i have been able to FINALLY break into the top 10 a few times.
Fri, 08/06/2010 - 12:37
#5
First...
I want to change the script, that it can also run not only with the very best puzzle state.
Sat, 08/07/2010 - 00:42
#6
More...
I' don't think that the code is ugly.
Wed, 08/11/2010 - 15:55
#7
More...
To keep away the locking problem and the very-best-use, I've written a script from scratch, and included freezing, too. http://fold.it/portal/recipe/7812 But in opposite to breeding, I clone good critters (called cluster here) and modify them. Thanks for you inspiration! |
|
Beware: This script uses global best. We have to use it.
Beware: Ugly code ahead. And I mean it!
A _primative_ genetic algorithm on bands.
Run this in the early to mid game, after you have
a general structure but long before you do your tweaks
to get the last few fractions of a point.
A brief overview:
1) [Optional] Create some bands that you think may help the fold.
The bands that you create will not be modified. Note, that the
bands that you create do not have to be anchored at both ends.
2) This script will fill in random bands to make a enuf bands so that
the genetic algorithm can run smoothly. These bands will be
anchored and they may be deleted by the script.
3) The script generates a "herd" of random critters, a critter is a
subset of all of the bands both user and script generated.
4) Score how well each critter (band subset) does.
5) Keep the best critters and kill the rest.
6) "Breed" the critters you kept by mixing roughly half of the bands
from the "mom" with half of the bands from the "dad" critter. Do
this until you have filled the herd back up.
7) Some critters are mutated during breeding. A mutation is
the replacement of one of the critter's bands with another
randomly chosen band.
8) If the scores aren't going anywhere after a few generations
start over with a new herd and a new set of script generated
bands, step 2.
9) Repeat from the scoring step (4) until the max generation is
reached or we can't lock the script generated bands.
This is a greedy GA, we keep score increases as soon as they occur.
If it's half way thru scoring a generation then so be it. This is why
we use relative improvements as a critter score.