Code center > Darwinbots3

Holy Moly! Species Classification Idea that Just Hit Me.

<< < (2/4) > >>

Numsgil:

--- Quote from: Peter on May 13, 2013, 04:12:30 PM ---Like a bot that can feed on shapes while feeding on other bots is less effective.

--- End quote ---

I'm currently thinking that the stuff shapes are made out of is like protein: an important raw material for building stuff, but little metabolic reward for decomposing.  And it can be synthesized from scratch, but it's expensive to do that.

So for example: maybe a bot "eating" its weight in shape could digest it for 10 nrg.  A veggy with a similar amount of shape in its gut could use it to build chloroplasts for, say, 1000 nrg, that give back 1 nrg/cycle.  And a similar amount of shape could be built from scratch using, say, 10K nrg.  An animal bots need the shape to build shell, connective material for multibots, etc.  The numbers probably have to be tweaked, but that gives you a rough idea.  There might also be different kinds of shape: one like protein and one like metals.  The metals wouldn't give you nrg but also couldn't be constructed, so they'd be conserved in a sim and could be used as a limiting factor.

I'm also playing with the idea of "muscles", which set the max rate of various activities.  So you'd have "shape digesting" muscles that you'd have to build to digest shape.  Sort of like how chloroplasts let you "digest" sunlight.  So a bot can build, say, 10 units of "shape digesting" muscles for 100 nrg, that would let it extract 1 nrg/cycle from shape, assuming it can find a constant supply.  If it builds 20 units of shape digesting muscle, it can extract 2 nrg/cycle from shape, but it burns through 2x the amount of shape per cycle, so it needs a much larger supply.  The benefit to specializing in this case is just the cost in time and nrg to build the muscles necessary to digest everything.  Hopefully it makes sense for some bots to just specialize in digesting "fat" and let shape fall to the bottom of the sim, where bottom feeders can feed on it, for instance.

There's a lot of specifics still to work out, but that's the sort of thing I'm going for.  There's nothing that says a bot can't do X and Y, or sets up arbitrary negative consequences if it does.  Instead, it's a matter of opportunity costs.

rwill128:
Also, wouldn't it be cool to have a section of genetic code that described the size and configuration of each bot's "brain"? It could contain code for a small neural net, the parameters and initial configuration of which could be subject to mutation.

Of course.. that'd require a lot of computational power. But it would be cool.

Botsareus:
I have a poor understanding of neural nets. But I do know they are not compatible with the style of coding used by the DB engine. I think we will need to add some recursion if we want to implement this directly.

On the other hand, if this code only describes how the net is formed then this may actually work.

In any case it is very much work

Numsgil:
You could implement a neural net in the DB programming language.  The weights would be stored in the bots' memory.  See NNTestBot, for instance.  Again, if you set the DNA to not mutate, you could enforce the structure and bots would have to adapt by changing weights, etc.

[tirade]
There's nothing all that special about neural nets.  They're just basically approximation functions.  They "train" on some known data points (inputs/outputs) and try to build an approximating function in its hidden layer.  Most of the hype around them is the fact that they have the word "neural" in their name.  If they were called "feedforward approximating systems" or something like that they wouldn't seem nearly so sexy.  They're more or less glorified splines.
[/tirade]

rwill128:
You're right that you could implement them in the code. It's just that when you do that the entire system is subject to mutations that are likely to break the code.

I was thinking of a system that allows variables in the genetic code that would affect various behaviors of the bot to be subject to the training you mention, rather than simply being static.

That way you've got evolution affecting the structure and logic of the code for each bot, with the neural nets adjusting behavior within an individual bots' lifetime.

You could implement that with DB code, but I was thinking more of a system that allows all DB bots to not only evolve but -- within some significant limitations, granted -- adjust their behavior during their own lifetimes.

----

Maybe neural nets aren't the best tool for that, but maybe they are, I'm not sure. I just like the idea of each bot having a brain -- the framework of which is set by genetic code.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version