Bots and Simulations > Bot Tavern
Overall league thoughts
bacillus:
Talking of field size, would the antbot league have a massive field size? And can the queen be a MB? I'm thinking of rewriting my antbot so the workers each pull in a veggie, then assign themselves to that veggie and relay the nrg to the queen when it's low on nrg. This would only work on large maps with enough veggies, however.
An interesing idea for a bot would be one that forms 'gangs' to combat each other instead of just interspecies competition.
Peter:
Maybe some kind of random chapes league. I know Eric had a lot of ideas for different kind of chapes, not all are worked out yet.
But still if at every fight there are different chapes, those bots have to think instead of forwarding in a straight line. That could break a number of bots. See shape, not my specie, kill it. Most of F1 would act a lot weaker already.
jknilinux:
Abyaly:
So, you agree with moonfisher?
--- Quote from: Moonfisher ---...
But the efficiently league could promote more interesting behavior... or league with more fluid resistance, making volontary movement slow and expensive forcing the use of ties for movement.
If you can't use venom or mem shots or ties, then attacking from several angles won't be a grat advantage. Usualy the whole point of attacking from different angles is that atleast one of your bots will inject it's venom or use it's other dirty trick to rendering the oponent harmless. But if you can't use dirty tricks all you have is firepower and suddely larger organisms who can share energy and resources can be much stronger. You can transfer shell to the bot who is getting attacked, then transfer any surplus back when the fight is over. And in an environment with very litle food the bots that hamster and breed their food can easily outstarve a simpler species.
My sugestions for the setup would be something like this :
- No agressive use of ties. That means no tieing to enemies or alge, no tie attacks, no tie defences. If you use .sharenrg and such then you need to have a condition that makes sure you're tied to one of your own.
- No memmory shots of any kind.
- No use of venom.
- No viruses.
- No sexrepro. (Although the lack of mem shots should prevent raping anyway)
- Very large field, possibly without toroidal borders and with some shapes in there (Could be cool if we had some coustom maps, maybe with designated spawn points, both for bots and the initial veggies)
- Low veggy cap.
- Medium fluid resistance.
- F1 costs, possibly a litle more expensive, like set a 1.5-2 multiplier or something like that. And maybe cut the code execution costs completely.
I think these setting should encourage more interesting behavior. Especialy the big field with few alge.
Worker antbots can just push the alge if they need to gather them.
And ofcourse a very strong clever simple species can beat and complex species, but a complex species wich is clever and well made should dominate all the simple species I think.
And I think the NN league using mutations will be the easiest one to get going, for the other league we should make a setup showing how to implement BP in DB... I think there might be a clever way of doing it, but it's a litle tricky, so I think most people won't participate in that league unless the realy hardcore part of it can be copy pasted from somewhere.
I may try to set something up... but... not sure when if I do... finaly starting a new job on monday so there's agoing to be less free time for DB.
--- End quote ---
The thing is, although I agree, I'm not perfectly sure this will lead to complex behavior, instead of some new simple method of "cheating". With a complexity requirement, I know we'll get complex behavior. But then again, if we do get "cheating", where a fruitfly 2.0 can win, then maybe that points to a flaw in our rules/DB that we can fix...
Okay, you guys convinced me. I'm for an IBB league and a NNbot league, so long as we fix DB whenever a fruitfly-like thing wins the IBBL (IBB- league).
However, I still think we should have 2 separate NNBot leagues (one for point mutations changing weights, the other for BP-learning), simply because they're cool, a great starting point for evosims, can actually learn during a bot's lifetime, and will never survive in the IBBL.
One problem- the mutating NNBot league will need point mutations to adjust the weights and Mutation Protection to protect the NN structure. At least Mutation protection is getting closer to being implemented... We just need eric back so we can finally conclude the voting.
In the meantime, we can get the no-mutations-allowed BP-NNBot league started, although it might be hard to code up something like that...
Bacillus-
Either way, if we have a specific antbot league or an IBB league, the field size will be huge and the queen can be a MB.
By the way, do you also think we should lump everything together into an IBB- league?
Peter-
Sorry, could you explain that in more detail? Did you mean "random shapes league"?
Numsgil:
--- Quote from: jknilinux ---One problem- the mutating NNBot league will need point mutations to adjust the weights and Mutation Protection to protect the NN structure. At least Mutation protection is getting closer to being implemented... We just need eric back so we can finally conclude the voting.
--- End quote ---
If you're just interested in mutating the weights you can do that right now. Turn off mutations, and have the bots randomly modify different weights. You can either set it up as something that happens when a bot is born, or just set it up to happen randomly every couple of thousand cycles or so. The hard part would then be transferring the weights to the child. But you have 10 in/out pairs, so it shouldn't be impossible.
Moonfisher:
--- Quote from: abyaly ---I like the idea of encouraging more advanced behavior in leagues, but I think that requiring a specific kind of complex behavior for eligibility in the league is not good. Your rejection criteria would have to be specific so that people don't waste time building borderline cases that you later decide don't fit. But once you have this set of rejection criteria, you are also shutting out a lot of possible behaviors that you would not have intended to.
Rather than this artificial complexity requirement, why not just put the league in an environment where these things are actually necessary for survival? Increasing the field size a bit would weed out many of the simplest strategies (eg: dashing forward at max velocity is a very effective food hunting strategy in the smallest field size). Ban any base level functions that lead to trivial strategies. Movement speed could stand to be lowered, as well as bang efficiency. There are many possible things you can do to create a situation where complexity flourishes without saying "only bots that do suchandsuch are eligible".
--- End quote ---
I agree... that's why I was sugesting something like this :
- No agressive use of ties. That means no tieing to enemies or alge, no tie attacks, no tie defences. If you use .sharenrg and such then you need to have a condition that makes sure you're tied to one of your own.
- No memmory shots of any kind.
- No use of venom.
- No viruses.
- No sexrepro. (Although the lack of mem shots should prevent raping anyway)
- Very large field, possibly without toroidal borders and with some shapes in there (Could be cool if we had some coustom maps, maybe with designated spawn points, both for bots and the initial veggies)
- Low veggy cap.
- Medium fluid resistance.
- F1 costs, possibly a litle more expensive, like set a 1.5-2 multiplier or something like that. And maybe cut the code execution costs completely.
A lot of those rules and settings help encourage more complex behavior and larger organisms.
Also for the NN league I think the blank network would be the most interesting, but it would also be hard for a lot of people to build them. So maybe it should just be a blank bot league... where your bot isn't allowed to have a behavior when it starts...
But I'm having a hard time working out how the rules for such a league would go, since you could just have a strong bot in one gene with a condition that could easily break and protect everything but that condition... I figure you could limit mutation protection, but that would just make it hard to create interesting networks (On the other hand it may also force the authors to allow more interesting changes in the networks). You could also require that no sysvars that cause an action are allowed to be written into by the "zerobot". This would probably put some more focus on making a bot that evolves well, rather than ways to activate strong genes withing few mutation cycles through complex conditions and such. And I know a NN can evolve to use the network realy well even in the sims I've run with no mutation protection, so if you can protect the structure of your network it should be able to evolve all sorts of interesting behaviors (Only problem is it can take a while).
Also if you wan't to try running NN bots without mutation protection you can either transfer weights manualy or you can just write them in a redundant way.
0 mult
is the same as
20 20 sub 20 add 20 sub 20 add 20 sub '... asf depending on how long you want them.
In this case you also don't need to limit yourself to point mutations... but you may want to cut back on the mutation rate if you're making a realy large network...
I've only tryed running with point mutations but I think all mutations should work with this (Maybe cut the ones that delete stuff).
If you wan't I can post the bot I used for the last NN sim I ran, and the sim if you wan't to see where it got. (Longest sim I've run, because it kept evolving new behaviors, but got a litle tired of it, it reached 2K in population and the sim was just so damn slow. And carnivores never managed to get strong enough to eat other bots and had some code preventing tie formation (Since I find that fungus bots slow down sims a lot) so in the end I was just watching them improve their soccer skills).
Also about the BP thing, when regulating the weights manualy it means they need to be transfered to the offspring... now if the bots don't break the birth ties that would leave a max of 170 weights allowed (Unless you make your own ties and prolonge the birth process, then you have 10 more per cycle)... so for instance you could have 10 inputs, 10 hidden neurons and 7 outputs... (Not sure of BP actualy requires a bias). But if the tie breaks before the 15 cycles are past then the remaining weights won't get transfered.
Well that's one issue... the other issue is that BP if executed swiftly will just punish the bot for doing anything since it costs energy... so I guess it needs to wait a while to see how we're doing, but how long should it wait ? I men sometimes theres no alge around, but the bot may still be doing the right things, so BP would probably have to wait quite a while before knowing if whatever it's doing now is any better than before... I'm also not sure BP will even find the right aproach to survive, it may go in strange directions depending on what the network rewards and punishes (But ofcourse this could be part of the chalenge for the bot author). But there will be some issues figuring out how to avoid punishing bots for reproducing without encouraging a cancerous bot too much. And this brings the last issue... that the fitness function for the BP algorithm may end up becoming too specific, in the end it's just trying to ecourage a behavior that we encourage.
Not saying it's impossible or anything, just saying I'm seing a lot of issues for the NN league using BP...
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version