:D

Jump to navigation Jump to search

Interesting approach! I had a similar idea around multi-bot targeting in Neuromancer where I do an XOR instead of simple OR because the bullet can only hit one of the potential enemies. I think this idea might have some real potential - although I think maybe using fire-only waves might get you even better scores against a lot of enemies and their anti-surfer guns.

You can be sure that there will be some experiments with DrussGT in the not too distant future =)

Skilgannon (talk)17:41, 21 October 2017

More thoughts on this.

When you only work with bullet hits, you can only be reactive to changes in the enemy targeting. Modern bots are designed around this, and they do a really good job with the limited information they have available too (see for example DrussGT's score on the Shark Challenge part 2) - even with complicated learning guns like RaikoMicro it is possible to effectively predict and dodge to get better results than a random gun would give.

However, the holy grail has always been to somehow predict where the enemy will shoot even before finding any bullets there. Theoretically we have the information we need to do that - we know where we were, we know what GFs for both hits and visits were logged, we could even model the type of gun the enemy has based on the bullet hits and (theoretically) transfer this learning across to the visits data. However until now there hasn't been any successful demonstration of using this pre-emptive data beyond just making a movement that is "flat with flat sauce" rather than taylor-made to dodge a specific gun.

I know in the past [[User::Voidious]] did quite a few experiments around adding very weak tick-wave flattening against mid-level opponents but was never able to realise any measurable gains. If this is able to be replicated across others bots and stats systems I see this as a great step-wise improvement in the state-of-the-art of Robocode, much like taking advantage of Bullet Shadows.

Skilgannon (talk)19:21, 21 October 2017

Another possibility why fuzzy AND works is that it simulates enemy data decay better, since they are decaying on visit, not hit. This way, I would not be dodging out dated data which reduced my movement options and therefore increase predictability.

If this is true, then why this doesn't work against weaker guns may be that the tick flattener is simulating the decay rate of strong guns, not weaker guns.

IMO The reason why OR approach doesn't work is that when you are already doing better than perfect random movement, being flat actually decreases your score. And unless your segmentation and decay matches them perfectly, you will end up a) dodging some bullet they will fire in the future — and making them not firing at there by avoiding there; b) dodging bullets that already hits you, this won't further help as well.

Xor (talk)02:13, 22 October 2017

So I did some quick experiments doing this with DrussGT and I saw a significant performance decrease. However, I think I'll need to re-tune the bandwidth / smoothing kernel, since now that it is effectively being squared it is much narrower.

Skilgannon (talk)10:39, 22 October 2017

Another thing is that my tick flattener decays very slowly, maybe that is also important for this to work :|

Xor (talk)11:29, 22 October 2017
 
 

note that the two trees in 0.012n2 are using exactly the same formula and same decay function. But using different formula and/or decay may work as well.

Xor (talk)02:16, 22 October 2017
 

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Users.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

Return to Thread:Talk:ScalarBot/Version History/:D/reply (10).

Your formula for the max(enemy1,enemy2) is incorrect. Given your example of 75% and 50%, if you miss the first one then you still have 50% chance of hitting the second one. You don't add them to get 125%, instead it is P += Pn * (1 - P) so you get .75 + .5*(1-.75) = .875

This is what I'm doing in Neuromancer. I guess it isn't exactly an XOR, but it does take both the hit probability and the miss probability into account correctly for multiple enemies.

Skilgannon (talk)10:33, 22 October 2017

Well, your formula is correct. I just forgot the chance after the first miss ;)

Xor (talk)11:27, 22 October 2017