For this final journal I would once again like to talk about my project. This week
has been interesting in that while last week I said BRTA* was being beat by single
look ahead RTA* I found out this was patently wrong. On the very simple example
I was using it was being out performed but in general BRTA* well out performs RTA*.
For instance with one expansion per tick BRTA* does the example problem in 532 moves.
RTA* with single look ahead does the same in 996. With two expansion BRTA does it
in 292 moves, with three, 194 moves, and the optimal path length is 72.
The majority of my work this week has been spent on implementing a harness which
allows testing on massive amounts of data. Currently I can run on the War Craft
3 maps given. Here is some example output which I need to convert to a CSV file
format soon so I can start producing graphs.
RESULT< alg:BRTA*, cl:1, exp:2000, gen:7200, ct:25, pl:1000, opl:127 >
RESULT< alg:BRTA*, cl:11, exp:2508, gen:8948, ct:25, pl:305, opl:127 >
RESULT< alg:BRTA*, cl:21, exp:2486, gen:8862, ct:25, pl:209, opl:127 >
RESULT< alg:BRTA*, cl:31, exp:2407, gen:8594, ct:25, pl:177, opl:127 >
RESULT< alg:BRTA*, cl:41, exp:2436, gen:8681, ct:25, pl:173, opl:127 >
RESULT< alg:BRTA*, cl:51, exp:2444, gen:8710, ct:25, pl:161, opl:127 >
RESULT< alg:BRTA*, cl:61, exp:2542, gen:9075, ct:25, pl:165, opl:127 >
RESULT< alg:BRTA*, cl:71, exp:2419, gen:8631, ct:25, pl:147, opl:127 >
RESULT< alg:BRTA*, cl:81, exp:2542, gen:9075, ct:25, pl:147, opl:127 >
RESULT< alg:BRTA*, cl:91, exp:2418, gen:8628, ct:25, pl:139, opl:127 >
RESULT< alg:RTA*, cl:1, exp:3000, gen:6072, ct:25, pl:1000, opl:127 >
It is interesting to see the reduction of the path length towards optimal as the
computation limit increases.
The other area that I have been working a lot on this week is implementing RTA*
which in fact has look ahead. I have been having trouble with this but I am close
to getting a solution. I am doing the A* look ahead with the heuristic estimate
of the second best node at the start of the open list, whose starting action is
not the same as the head of the open list’s starting action, as the heuristic estimate
to be stored for this node. I have some implementation issues right now and so once
I get those worked out I can get more details on comparison of BRTA* and RTA*.
One final side note is for a while I didn’t understand why the TBA* paper was calling
LRTA* as the algorithm it was using. I finally realized that LRTA* can be use on
multiple runs of itself but it also can be used on single runs with a slightly altered
RTA* F function.