View source for Talk:WhiteFang
- [View source↑]
- [History↑]
Contents
Thread title | Replies | Last modified |
---|---|---|
Test Bed | 2 | 11:12, 10 July 2018 |
Possible errors | 7 | 22:31, 29 December 2017 |
Micro Ant | 1 | 14:49, 23 December 2017 |
First page |
Previous page |
Next 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?
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.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page.
Return to Thread:Talk:WhiteFang/Test Bed/reply (2).
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.
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,
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?
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.
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.
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).
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.
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.
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.
First page |
Previous page |
Next page |
Last page |