Talk:WhiteFang

From Robowiki
Jump to navigation Jump to search

Contents

Thread titleRepliesLast modified
Test Bed212:12, 10 July 2018
Possible errors723:31, 29 December 2017
Micro Ant115:49, 23 December 2017
First page
First page
Next page
Next page
Last page
Last page

I got RoboJogger working about 2 days ago and understood that challenges are not enough to improve WhiteFang. Since I don't have any experience about choosing robots for Test Beds I wanted to ask: How should I choose the test bed that will give me close to rumble scores?

Dsekercioglu (talk)13:38, 9 July 2018

I always got the best improvement from finding specific problem bots (look at the KNNPBI) and trying to design a specific feature that would help against the kind of behaviour they showed. Usually it involves watching a lot of battles. Test beds are only to make sure that nothing is broken against other bots when this is happening.

It is really about the size of the testbed you want. Best would be the whole rumble. Minimum is probably something that shoots HOT, something linear, something simple VCS, something simple WS + VCS, some PM, and a tough top-bot or two.

And from what I've found, fixing bugs almost always gets better results than adding features. So make sure you don't have bugs, and don't have any bad assumptions.

Skilgannon (talk)23:00, 9 July 2018
Thank you for your response about the test bed, I agree with the bugs part. I jumped from 28 to 26 with Bullet Shielding(2 days of coding) and 26 to 23 with a bug fix.(Stop position calculation)
I just realized I had been calculating wave locations wrong since 10 months. I think I will add "First robot to enter the top 30 with wrong wave calculations" =)
Dsekercioglu (talk)12:12, 10 July 2018
 
 

Possible errors

I still see low scores such as %5 against some bots and it seems like it isn't about the crowd part. I tried to fix it two times and it didn't work. I also tried to reproduce the error but it doesn't occur in my robocode 1.9.3.0. I didn't change anything but the normalised crowd thing. I would see if there was any IndexOutOfBounds Exception or Arithmetic Exception.

Dsekercioglu (talk)16:59, 24 December 2017

Don’t worry, ScalarBot is having the same bug, e.g. it scores near 0% against some opponents, which is never reproduced even after thousands of rounds.

Anyway, if that happens too much, you can try to catch every exception and log it to file, then look up the low scored opponents in the log. ScalarBot fixed a really rare bug in kd-tree by doing so.

Anyway, it still scores very low against some bot randomly, without throwing any exceptions,

Xor (talk)03:34, 25 December 2017

I think I should worry. In my tests it does better than my normal gun but in the rumble it has about -3 APS. May it be the bug fixed with 1.9.3.0?

Dsekercioglu (talk)08:12, 25 December 2017
 
java.lang.ArrayIndexOutOfBoundsException: 50
	at dsekercioglu.knn.knnCore.ags.kdtree.KdNode.addLeafPoint(KdNode.java:70)
	at dsekercioglu.knn.knnCore.ags.kdtree.KdNode.addPoint(KdNode.java:63)
	at dsekercioglu.knn.knnCore.ags.kdtree.KdTree.addPoint(KdTree.java:7)
	at dsekercioglu.knn.knnCore.KNNPredictor.addData(KNNPredictor.java:67)
	at dsekercioglu.knn.wfGun.gun.TestGun.wavePassed(TestGun.java:24)
	at dsekercioglu.knn.wfGun.Fang.updateWaves(Fang.java:122)
	at dsekercioglu.knn.wfGun.Fang.onScannedRobot(Fang.java:80)
	at dsekercioglu.knn.WhiteFang.onScannedRobot(WhiteFang.java:44)
	at robocode.ScannedRobotEvent.dispatch(ScannedRobotEvent.java:315)
	at robocode.Event$HiddenEventHelper.dispatch(Event.java:259)
	at net.sf.robocode.security.HiddenAccess.dispatch(HiddenAccess.java:191)
	at net.sf.robocode.host.events.EventManager.dispatch(EventManager.java:422)
	at net.sf.robocode.host.events.EventManager.processEvents(EventManager.java:376)
	at net.sf.robocode.host.proxies.BasicRobotProxy.executeImpl(BasicRobotProxy.java:423)
	at net.sf.robocode.host.proxies.BasicRobotProxy.execute(BasicRobotProxy.java:122)
	at net.sf.robocode.host.proxies.StandardRobotProxy.turnRadar(StandardRobotProxy.java:55)
	at robocode._AdvancedRadiansRobot.turnRadarRightRadians(_AdvancedRadiansRobot.java:150)
	at robocode.AdvancedRobot.turnRadarRightRadians(AdvancedRobot.java:1962)
	at dsekercioglu.knn.wfEyes.Lock.run(Lock.java:17)
	at dsekercioglu.knn.WhiteFang.run(WhiteFang.java:39)
	at net.sf.robocode.host.proxies.HostingRobotProxy.callUserCode(HostingRobotProxy.java:274)
	at net.sf.robocode.host.proxies.HostingRobotProxy.run(HostingRobotProxy.java:221)
	at net.sf.robocode.host.proxies.BasicRobotProxy.run(BasicRobotProxy.java:44)
	at java.lang.Thread.run(Thread.java:745)

I got this exception after some testing.

Dsekercioglu (talk)21:13, 25 December 2017

This is a bug in Rednaxela’s kd-tree. I created a PR to fix it in his bitbucket a few years ago, but no response.

IIRC, This bug happens when points are so concentrated that spliting happens more than once in one call, which is not considered at all. That’s why it happens so rarely, and only with some set of dimensions.

Xor (talk)22:44, 25 December 2017

Feel free to use my Kd-Tree, it has protections against infinite splitting and is similar performance to Rednaxela (perhaps even better in mixed workloads due to cache locality).

Skilgannon (talk)20:56, 26 December 2017

Sorry for answering late; I actually wrote an answer but I suppose there was a problem with Wi-fi. WhiteFang has already started to use it and there is also range search in your tree which is wonderful.

Dsekercioglu (talk)14:41, 29 December 2017
 
 
 
 
 

Hi,

WhiteFang's score against Ant seems a bit abnormal. I would expect it to be reversed.

Fighting battle 15 ... zyx.micro.Ant 1.1,dsekercioglu.knn.WhiteFang 1.5 RESULT = zyx.micro.Ant 1.1 wins 5540 to 726

It has weaknesses against PM but not this much.

Dsekercioglu (talk)14:32, 23 December 2017

Sorry, I understood why it happened. I assigned 0 values to scores and they were updated with waves(A form of crowd targeting). However, when the distance was high it would give an Arithmetic exception(I haven't seen it yet) if the distance was too high.

Dsekercioglu (talk)15:49, 23 December 2017
 
First page
First page
Next page
Next page
Last page
Last page