Talk:ScalarBot

From Robowiki
Jump to navigation Jump to search

Contents

Thread titleRepliesLast modified
Beaten DrussGT!314:20, 12 October 2017
Adding Bullet Shielding117:29, 4 October 2017
Third Place511:55, 3 October 2017
FastKDE?408:32, 1 October 2017
First page
First page
Previous page
Previous page
Last page
Last page

Beaten DrussGT!

After two battles you have beaten DrussGT. Hopefully in the next battles too. Congratulations.

Dsekercioglu (talk)21:30, 10 October 2017

well, it’s performing worse against more bots than it’s doing better ;/

Xor (talk)01:49, 11 October 2017

Yes, ScalarBot has hardly veaten RougeDC and loses against DrussGT now=|*

Dsekercioglu (talk)07:05, 11 October 2017

It's only losing to two bots now ;) Diamond and Shadow, with little disadvantage. Anyway, always remember that older bots are never tuned against newer bots, so defeating the existing ones is not truly a fair competition...

And it takes me ~1.46 APS to achieve that.

Xor (talk)14:20, 12 October 2017
 
 
 

Adding Bullet Shielding

Have you ever thought about adding bullet shielding? You could get extremely high scores against some top bots.

Dsekercioglu (talk)16:58, 4 October 2017

Yes, I've been thinking about that for awhile, even before ShieldBot (which ranks #3 in vote) is created. Anyway, doing bullet shielding would mask some improvements in both gun and movement, therefore I decided not to add it until the last (probably) version.

ShieldBot shares a lot of code with ScalarBot (actually all the framework stuffs are from ShieldBot, and that framework is designed for multi-mode, especially bullet shielding), which makes adding a bullet shield painless (just copy the shield module into ScalarBot, then, done).

Xor (talk)17:26, 4 October 2017
 

Third Place

Congratulations! You got the third place in roborumble. I hope you don't have anything to improve now. =)
Dsekercioglu (talk)07:44, 3 October 2017

Unfortunately, I have a new Anti-Surfer gun and a strong flattener to add to it =) Anyway, I’m taking a break right now. Then, I would work in melee first, though.

Xor (talk)07:59, 3 October 2017

That's impressive! Knight has just caught up with Roborio 1.2.3 (which has no BS), and it has all of these features. It seems that I really have problems with doing baby steps in Robocode :P Your patience to climb the RR bit by bit amazes me, and now I see that coming on melee. No way you won't give a hard time to Cb and Skilgannon. Congratulations!

Rsalesc (talk)09:02, 3 October 2017

Thanks! And congratulations on the achievement of Knight! I tried some refactor in the past but soon went back to the old one, it seems rather hard to catch up with the old one with a full rewrite, but your success motivated me! Waiting for an amazing competition in both 1v1 and melee!

Xor (talk)09:17, 3 October 2017

What a great achievement, congratulations! It's really nice to see so many improvements happening and I am excited about your next updates, in 1vs1 as well as in melee :)

Cb (talk)11:46, 3 October 2017

Thanks! It’s also exciting to see a new melee king ;)

Xor (talk)11:55, 3 October 2017
 
 
 
 
 

I've heard that recent works have done some improvements over traditional KDE (kernel density estimation).

And this project fastKDE contains an implementation.

Any thoughts on that?

Xor (talk)17:23, 30 September 2017

Well, assuming that you are using binning followed by KDE, this process doesn't seem to be anywhere near a bottleneck in Robocode. Or is it? I mean, binning reduces the number of kernel evaluations from quadratic order to linear order if you precompute the results for each possible delta. You still get a quadratic number of additions and multiplications, but it shouldn't be that expensive and even if it is, the biggest improvement I can imagine is using FFT here, which would not have a big impact for the number of bins we usually use in Robocode (I've never seen more than 120). And I don't see any advantage on not using binning if you have more than number_of_bins samples, since the GuessFactor [-1, +1] range is pretty "small".

Anyway, seems to be a really nice article to read :P Maybe those optimizations can work well on swarm targeting?

Rsalesc (talk)00:20, 1 October 2017

Well, afaik DrussGT is using 151 bins in his movement, iirc. And my old experimental anti-aliased VCS gun uses more than 1500 bins (where continuing increasing bins no longer increase performance).

In targeting, DrussGT and ScalarBot (inspired by DrussGT) is using max overlap to reconstruct firing angles, not kernel density estimation, and it's O(nlgn).

Note that by KDE I'm not only mentioning reconstructing firing angles, but also kNN. Actually we do KDE on entire data set, on every dimension, then calculate the conditional density function (reconstruct firing angles).

Anyway, fastKDE is not to accelerate existing computation — but to accelerate the process of getting the real probability density function (which includes computing bandwidth and shape function effectively), with way less samples. You know, in robocode, the sample amount is really restricted, and I think this method is exactly what modern bots needs.

And my thoughts are, the use of kNN in robocode is just some acceleration of KDE. Instead of computing KDE for every data point, we only use the nearest ones.

However, so far, we are using artificial bandwidth & shape function in this process. And I think fastKDE could bring the computation of bandwidth & shape function to robocode.

Xor (talk)03:45, 1 October 2017

I use max overlap in O(nlogn) in Monk in the swarm gun as well because of the great amount of data, and I see those subquadratic approaches as a very nice way to spend more time in other time-consuming tasks. Anyway, looking closer, fastKDE seems to be very useful at first glance, given that it could even be used on top of the existing kNN guns just to weight the queried data more carefully. The real question now is if that's worth understanding and implementing :P That's probably a topic for the future. Maybe you gonna be the first one to put your hands on that?

Rsalesc (talk)06:01, 1 October 2017

Yes that's probably a topic for the future. I'm putting it here to remind me to try it at some point, and I'll always be glad if someone else gonna be the first one. Anyway, some experiments on that is on the way ;p

Xor (talk)08:32, 1 October 2017
 
 
 
 
First page
First page
Previous page
Previous page
Last page
Last page