Difference between revisions of "User:Nat/SDSResearch"
(LinkedList is super slow) |
|||
Line 6: | Line 6: | ||
| '''Name''' || '''Author''' || '''Gun''' || '''CC''' || '''RMX''' || '''SHA''' || '''WS''' || '''WOE''' || '''Surf''' || '''DM''' || '''FT''' || '''GG''' || '''RMC''' || '''WLO''' || '''No Surf''' || '''Total''' || '''Comment''' | | '''Name''' || '''Author''' || '''Gun''' || '''CC''' || '''RMX''' || '''SHA''' || '''WS''' || '''WOE''' || '''Surf''' || '''DM''' || '''FT''' || '''GG''' || '''RMC''' || '''WLO''' || '''No Surf''' || '''Total''' || '''Comment''' | ||
|- | |- | ||
− | | | + | | Astraea 0.1TC || [[null]] || null || 56.86 || 73.82 || 63.35 || 67.59 || 67.96 || '''65.92''' || 85.84 || 77.37 || 70.01 || 80.83 || 79.87 || '''78.78''' || '''72.35''' || 7.5 seasons '''(not yet stable)''' |
+ | |- | ||
+ | | Astraea SDS0002 || [[null]] || null || 65.73 || 76.14 || 64.37 || 72.74 || 71.05 || '''70.01''' || 85.06 || 74.02 || 68.94 || 76.08 || 80.10 || '''76.84''' || '''73.42''' || 3.4 seasons '''(not yet stable)''' | ||
+ | |- | ||
+ | | Astraea SDS0003 || [[null]] || null || 73.63 || 72.53 || 61.94 || 78.63 || 71.31 || '''71.61''' || 84.29 || 74.74 || 72.00 || 74.63 || 72.46 || '''75.62''' || '''73.62''' || 1.5 seasons '''(not yet stable)''' | ||
|} | |} | ||
== Version History == | == Version History == | ||
− | * 0001: I need to improved a lot, this version have 7 segments; log size of 1000. | + | * 0001: I need to improved a lot, this version have 7 segments; log size of 1000. '''(Result in progress)''' |
− | * 0002: Change LinkedList to ArrayList, increase the segmentation length from 7 to 18, increase log size from 1,000 to 10,000. | + | * 0002: Change LinkedList to ArrayList, increase the segmentation length from 7 to 18, increase log size from 1,000 to 10,000. '''(Result in progress)''' |
+ | * 0003: Now use 22 000 log size with non-firing wave. (22 000 is the largest log size with acceptable skipped turn rate ''NOTE: a movement is not yet processed'') '''(Result in progress)''' | ||
=== Todo List === | === Todo List === | ||
* Make a single string contains every log. | * Make a single string contains every log. | ||
* <s>Examine what Virus does :-)</s> '''DONE!''' | * <s>Examine what Virus does :-)</s> '''DONE!''' | ||
− | * Make it faster | + | * Make it faster. |
− | * | + | * Use Kernel Density instead of an array to find firing angle |
+ | * If there are less than 2 matches, consider not to use that segment and truncate once more. | ||
+ | * If use only firing waves, match only when low gunheat (0001 and 0002 match every tick) | ||
* ... | * ... | ||
Line 44: | Line 51: | ||
With this I can have up to 7 velocity segment, 7 distance segment, 2 acceleration segment and 2 wall segment. It can fit every segment into one character. Do anyone have idea how to cut the string as per SDS? Or just <code>char & 0xFE</code> or <code>0xE0</code>? One more, what is faster, doing kernel density or log it to an array and find max? » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 01:36, 12 March 2009 (UTC) | With this I can have up to 7 velocity segment, 7 distance segment, 2 acceleration segment and 2 wall segment. It can fit every segment into one character. Do anyone have idea how to cut the string as per SDS? Or just <code>char & 0xFE</code> or <code>0xE0</code>? One more, what is faster, doing kernel density or log it to an array and find max? » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 01:36, 12 March 2009 (UTC) | ||
− | LinkedList is super slow. I change my code to use <code>ArrayList(10100)</code> and I can increase the segment and log size a LOT (see above). Let see 0002 with larger log size. And 0003 with non-firing waves. | + | LinkedList is super slow. I change my code to use <code>ArrayList(10100)</code> and I can increase the segment and log size a LOT (see above). Let see 0002 with larger log size. And 0003 with non-firing waves with larger log size. Anyway 0003 is faster than 0001 » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 14:41, 12 March 2009 (UTC) |
+ | |||
+ | Do I need to publish code for each research bot? I can have them on my page in a minute, but not sure if I need, or anyone want. Note that this research have codename Astraea. All the bot is Astraea with SDSxxxx version number. (OK, at first it is a competition robot, but I can't find better, but not the best, wave surfing to plug in + it really slow so it is now a research. In fact, a entry Astraea DEV in TC2K7 fastlearning result is really a SDS0001) » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 14:41, 12 March 2009 (UTC) | ||
+ | |||
+ | I'm wonder, with these incomplete result show that non-firing is better against surfer but worse against RM? But let see a complete score before. » <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> » 14:41, 12 March 2009 (UTC) |
Revision as of 15:41, 12 March 2009
Research with Symbolic Dynamic Segmentation.
Contents
Challenge Result
Targeting Challenge Y2K7 Fast Learning
Name | Author | Gun | CC | RMX | SHA | WS | WOE | Surf | DM | FT | GG | RMC | WLO | No Surf | Total | Comment |
Astraea 0.1TC | null | null | 56.86 | 73.82 | 63.35 | 67.59 | 67.96 | 65.92 | 85.84 | 77.37 | 70.01 | 80.83 | 79.87 | 78.78 | 72.35 | 7.5 seasons (not yet stable) |
Astraea SDS0002 | null | null | 65.73 | 76.14 | 64.37 | 72.74 | 71.05 | 70.01 | 85.06 | 74.02 | 68.94 | 76.08 | 80.10 | 76.84 | 73.42 | 3.4 seasons (not yet stable) |
Astraea SDS0003 | null | null | 73.63 | 72.53 | 61.94 | 78.63 | 71.31 | 71.61 | 84.29 | 74.74 | 72.00 | 74.63 | 72.46 | 75.62 | 73.62 | 1.5 seasons (not yet stable) |
Version History
- 0001: I need to improved a lot, this version have 7 segments; log size of 1000. (Result in progress)
- 0002: Change LinkedList to ArrayList, increase the segmentation length from 7 to 18, increase log size from 1,000 to 10,000. (Result in progress)
- 0003: Now use 22 000 log size with non-firing wave. (22 000 is the largest log size with acceptable skipped turn rate NOTE: a movement is not yet processed) (Result in progress)
Todo List
- Make a single string contains every log.
Examine what Virus does :-)DONE!- Make it faster.
- Use Kernel Density instead of an array to find firing angle
- If there are less than 2 matches, consider not to use that segment and truncate once more.
- If use only firing waves, match only when low gunheat (0001 and 0002 match every tick)
- ...
Chat
Help, does anyone have a TC calculator? The score above is just a roughly averaged by eyes score. I think the actual is much lower except the Total score, that was calculated with ScoreAveragedAddOns / 350. I know that the surf score is invalid. » Nat | Talk » 14:37, 11 March 2009 (UTC)
Try RoboResearch - look on the old wiki for info. --Skilgannon 15:28, 11 March 2009 (UTC)
Actually, don't look on the old wiki for RoboResearch, the new wiki page is more recently updated I believe. But yes, RoboResearch is very nice, it automates running all the battles, calculating the scores, and even generating the table row in mediawiki syntax :D (actually, challenges pages really should state to use RoboResearch). With the GUI version you can queue up multiple versions to test one after the other as you sleep too. --Rednaxela 15:36, 11 March 2009 (UTC)
I usually don't download everything that I need to check out from SVN repository by my self :) I took an hour to find download link for RoboResearch and at last admit that I must checkout them from SVN. Question: Can I pause the challenge and resume it next time I turn on my computer? I am not allow to turn on computer while I'm sleeping. » Nat | Talk » 00:53, 12 March 2009 (UTC)
RoboResearch saves battle results in a database as it goes and doesn't re-run unnecessary battles. In fact, if two different challenges have an exactly overlapping pairing it won't repeat the battles unnecessarially. Also, the GUI version (which I highly recommend) stores currently running challenges in a config file so it's super-easy to close at any time and continue running later. In summary that answer to your question is: Yes :-) --Rednaxela 01:10, 12 March 2009 (UTC)
If I do bit shifting to fit the data into 8-bits link this:
0 0 0 0 0 0 0 0 L D a W e i c a t s c l e t l l r a a n l c e
With this I can have up to 7 velocity segment, 7 distance segment, 2 acceleration segment and 2 wall segment. It can fit every segment into one character. Do anyone have idea how to cut the string as per SDS? Or just char & 0xFE
or 0xE0
? One more, what is faster, doing kernel density or log it to an array and find max? » Nat | Talk » 01:36, 12 March 2009 (UTC)
LinkedList is super slow. I change my code to use ArrayList(10100)
and I can increase the segment and log size a LOT (see above). Let see 0002 with larger log size. And 0003 with non-firing waves with larger log size. Anyway 0003 is faster than 0001 » Nat | Talk » 14:41, 12 March 2009 (UTC)
Do I need to publish code for each research bot? I can have them on my page in a minute, but not sure if I need, or anyone want. Note that this research have codename Astraea. All the bot is Astraea with SDSxxxx version number. (OK, at first it is a competition robot, but I can't find better, but not the best, wave surfing to plug in + it really slow so it is now a research. In fact, a entry Astraea DEV in TC2K7 fastlearning result is really a SDS0001) » Nat | Talk » 14:41, 12 March 2009 (UTC)
I'm wonder, with these incomplete result show that non-firing is better against surfer but worse against RM? But let see a complete score before. » Nat | Talk » 14:41, 12 March 2009 (UTC)