Anti-Surfer Targeting

From RoboWiki
Jump to: navigation, search
"Did you flush the higher level stream when it’s done?" I really don't have any idea about its meaning =(
How long does a generation take with 2G data? Even When I do not fill the quota a single generation takes about 30 seconds with a population size of 102.
I use the compressed serialization method in the wiki.
Edit: Data truncation problem just disappeared after I restarted my computer.
Dsekercioglu (talk)10:18, 22 March 2019

2G of data takes me 5s (4 threads in parallel), which is 1NN with less than 5 attributes which should be lightning fast anyway.

Using all the waves (including virtual ones) and use maxK=100 with a 10+ attributes huge tree takes me less than a minute (still 4 threads in parallel).

I'm using NIO for file reading, and I use handmade serialization instead of the java builtin one, which the secret to speed.

Xor (talk)15:05, 22 March 2019
5 seconds?? I just started using 4 threads and it takes 11 seconds with 1.4 MB's of data without virtual waves, max K 100 and 102 population size.
What is your fitness function? Mine perfectly simulates WhiteFang's targeting including bot width calculations. I don't think the 51 bin system slows down the robot since it should just be faster as long as I have K more than 51.
I convert all the data into ArrayLists so file reading speed shouldn't affect much(Or the memory it takes slows it down?).
Dsekercioglu (talk)16:50, 22 March 2019

It's 1NN with only firing waves. It seems that kd-tree is the only slow part.

Worth mention that I already store everything slow to file, e.g. precise intersection, precise mea etc. So all I do is load those attributes, transform with my formula, load into tree and do kde for every firing wave.

Anyway this can be considered as 1 population and 1 generation, as I'm tuning it by hand yet.

Xor (talk)00:39, 23 March 2019
OK, now I understand. I was afraid that I had a big flaw in the algorithm that made it slow. What I learned is genetic algorithm always works better than manual tuning in the long run. What I do when it ends is to roll the numbers that are really high and low to the max/min values and then I get about a 1% boost in score which easily surpasses the hand tuning. Since only my GA is multi-threaded hand tuning is a little slower too.
One final question, where do the files I save go on RoboRunner-GUI? I didn't even test(Std Me) before putting WhiteFang against 28 surfers for 10 seasons then I accidentally compiled the project(Me again).
Dsekercioglu (talk)11:03, 23 March 2019

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

The action you have requested is limited to users in the group: Users.


You can view and copy the source of this page:

Return to Thread:Talk:WhiteFang/Anti-Surfer Targeting/reply (16).

I have even tried sorting by "last modified" and "last created" but nothing seems to have appeared. I am still getting data files with the development version though. Can't test the packed one because of the bug in 1.9.3.5.
Edit: .data was a hidden directory. command + shift + . solved all the problems.
Dsekercioglu (talk)12:06, 24 March 2019
 
 

Update: after some profiling, it confirmed that kd-tree is the only bottleneck.

However, it seems that file reading time grows as kd-tree time grows.

And after putting deserializaion into separate thread and use some producer-consumer pattern to communicate, total run time stays the same and file reading time decreased greatly. Maybe my profiling tool is yielding inaccurate result.

Xor (talk)23:43, 23 March 2019
 
 
 

flush means, when all data are written, call DataOutputStream.close() yourself.

Xor (talk)15:06, 22 March 2019
 
Personal tools