Weekly challenge of 2015-01-09: Genetic Algorithms

Weekly challenge of 2015-01-09: Genet

For discussion for Jan 09, 2014's weekly challenge, with the theme of Genetic Algorithms
3812d ago – Martin Büttner
21

export all events for this room

Starred posts

1 2
Jan 10, 2015 03:00
Jan 19, 2015 22:55
0
Q: Lab Rat Race: an exercise in genetic algorithms

Martin BüttnerThis is Weekly Challenge #3. Theme: Genetic Algorithms This challenge is a bit of an experiment. We wanted to see what we could do, challenge-wise, with genetic algorithms. Not everything may be optimal, but we tried our best to make it accessible. If this works out, who knows what we might see ...

5
Jan 19, 2015 14:26
then thank you so much more for all the work you've put into this
3
Jan 19, 2015 12:24
spec golf
3
Jan 24, 2015 11:51
I love that we still get submissions 4 days in
2
Jan 19, 2015 23:34
with just empty, walls, traps, you could learn which cell is what and then just solve the problem locally. with teleports, you can't decide locally if it's safe to use one (if it sends you outside your field of view)... you have to learn it through evolution
2
Jan 18, 2015 12:36
Individual scores: [0, 27, 71349, 3, 2, 89915, 0, 37899, 73682, 3, 1, 0, 2800789, 6236, 38153, 93375, 0, 94, 0, 0]
On average, your bot got 160576.4 points
2
Jan 13, 2015 20:38
TODO: add todos
2
Jan 12, 2015 17:06
lets first finalize on spec and then discuss about implementation shall we ?
2
Jan 10, 2015 01:54
@NathanMerrill no one knows what the nodes in a neural network represent
2
Jan 9, 2015 23:00
Someone with way too much time on their hands needs to summarize decisions that were locked in and maintain a list for those of us who can't be actively here for 6 hours on end.
2
Jan 9, 2015 20:18
I like the death mechanism
2
Jan 9, 2015 19:44
@NathanMerrill I can see it now. Luigi Wolf. Mario Wolf. Yoshi Wolf
2
Feb 1, 2015 22:45
there should be a number of games tested column
Jan 24, 2015 04:40
The only feedback loop passes through the DNA, and the only means of winning the game is to let the controller kill and breed your rats until the assumptions they make about the reliability of the informations contained in their DNA become true for a sufficient number of specimens.
Jan 24, 2015 04:36
So basically, until the controller (which has the knowledge you lack of which color is what) sends you some feedback, you can chop and mix the 25 colors around all you want, you will be none the wiser.
Jan 24, 2015 04:35
Now if you plan on using a network with no feedback, the only added value would be the ability to correlate informations extracted from the 25 neighbouring cells. These cells have been carefully designed to look like white noise (all colors are practically equiprobable, even though the track is reworked a bit to insure a viable path exists from all possible locations, but that is certainly not enough to identify which color is which with a statistical analysis).
Jan 24, 2015 04:29
To work as such, a neural network would have to get a measure of the success of a given configuration. In the context of this challenge, the only two metrics of sucess are (1) the fitness score (i.e. the horizontal position of the track and number of completed runs) and (2) the death of a rat. Neither of these is accessable to the player, so you can grab your weights and kiss your feedback goodbye.
Jan 24, 2015 03:45
Dang...My rodents are too successfull.
Jan 24, 2015 02:40
right, the idea is if you are cheating it should be on purpose
Jan 24, 2015 02:16
frankly I'm not sure the controller is the bottleneck here. Consider the breeding process, it's only called 10 times per turn, while the population of rats will typiccally be a few hundreds. It means the player's code is the real bottleneck. And when your rats start to proliferate (they can reach a population of tens of thousands), the controller code does little more than call the player's code.
Jan 24, 2015 01:35
What could work is a neural network that takes the same input as the current bots, but is allowed to have persistent memory (to store the weights). This could be setup with little work. You would just have to modify the controller to let it pass a specimen identifier, so that you can associate the neural network memory to it
Jan 23, 2015 19:39
lol, be nice
Jan 23, 2015 00:12
Hi guys! I had an idea about score stability. You could have the controller compute the current mean after each turn, watch the relative variations over the last few dozen of turns, and stop when they remain within some limits. What do you think?
Jan 21, 2015 04:41
lol I was joking about that - it's a friendly game so discussion is fun
Jan 21, 2015 00:47
we've got more stars than CH! :)
Jan 20, 2015 03:06
each coordinate refers to the surrounding squares
Jan 19, 2015 23:33
@TAbraham but seriously, I'm considering trying to make a layered neural network and reuse the weights so I can fit more into the genome
Jan 19, 2015 19:58
my approach was to print the seed of each board to console, in case it needs to be reproduced
Jan 19, 2015 12:46
we're replacing the arithmetic mean with a geometric mean
Jan 19, 2015 12:40
the problem with the geometric mean is 0 scores
Jan 18, 2015 18:44
no problem, your exam has priority ;)
Jan 18, 2015 12:43
with the breeding, do we include newly bred specimens? i.e. can a specimen we just create breed immediately? (spec implies yes, as did Python controller last time I checked)
Jan 17, 2015 13:52
(also, they wouldn't know if their changes are any improvement until they break non-zero scores)
Jan 16, 2015 02:40
There's already lots of scope for ambiguity
Jan 16, 2015 01:17
The finish line is column 49
Jan 15, 2015 21:15
If your bot says "go right" regardless of what the genome looks like, then your specimens will never learn, they will just always go right. If you choose a different approach, then the direction they choose will depend on the genome, allowing them to change behaviour for different genomes
Jan 15, 2015 03:13
yuck, the python magic numbers are randomly scattered through different files
Jan 15, 2015 00:53
Running board #1/1
0% 0.00799989700317 sec - 0 points - Population: 25
1% 5.04200005531 sec - 3 points - Population: 376
2% 13.0009999275 sec - 6 points - Population: 350
3% 20.5580000877 sec - 18 points - Population: 363
4% 28.4819998741 sec - 32 points - Population: 331
5% 36.0509998798 sec - 50 points - Population: 356
6% 43.9849998951 sec - 74 points - Population: 357
7% 51.7779998779 sec - 121 points - Population: 366
8% 60.1019999981 sec - 265 points - Population: 422
9% 71.2379999161 sec - 593 points - Population: 468
Jan 15, 2015 00:16
@TAbraham training them would be adjusting the weights. You can also use genetic algorithms to adjust the connections and the number of nodes. The more different things you are changing the less chance of getting meaningful results, but it's possible (we are examples of neural networks where both the shape of the network ad the weights are the result of genetics)
Jan 14, 2015 23:17
basically you've got a "population" of candidate "solutions", where each individual has a genome (just a binary string). then you evaluate how each individual performs, kill off the worst ones, keep the best, and then you cross breed them (by mixing their genomes) and mutate them (by flipping some bits) to get a new generation. rinse and repeat.
Jan 14, 2015 23:16
@TAbraham I think the description from BoxCar2D is pretty good: boxcar2d.com/about.html
Jan 14, 2015 22:41
@TAbraham The random bot doesn't use the genome, just chooses a random move, so it can't improve. The idea is that people will submit code that takes the genome and the 5x5 view of the surrounding squares, and outputs a move.
Jan 14, 2015 22:39
@TAbraham It will always take a while to run because it's running 10000 turns
Jan 14, 2015 22:16
I guess we can invite comments requesting new language controllers, as long as we have a few to start with
Jan 14, 2015 20:25
I was pointing out that rooms are frozen automatically. Just wanted to make sure that wasn't a waste of typing.
Jan 14, 2015 14:43
If we pass the dna and vision as strings they won't have access to the specimen to read its bonus
1 2