Two things:  Firstly, I'm storing (only in RAM) the precalculated Winrate and 
InvSqrtVisits and keeping them updated.
So my UCT formula went from

        Wins / Visits + sqrt(lnParentVisits / Visits)

to

        WinRate + sqrtLnParentVisits * InvSqrtVisits;

This has a memory cost, but I don't care so much about RAM since I can send the 
nodes to disk.

And the second thing is to store in the parent node a reference to what is likely the UCT-best child node. If the parent has been visited 100*boardspaces times, I will go directly to the likely-best child with probability 2047/2048. Anytime a proper UCT loop occurs, the likely-best reference is updated (about 90% of the time there is no change, so I think it's safe).


Jason House wrote:
That sounds like a good optimization. What did you do?

Sent from my iPhone

On Jun 2, 2009, at 3:16 PM, Michael Williams <michaelwilliam...@gmail.com> wrote:

Update: After concentrating on tightening the UCT loop, I've optimized myself back into needing the SDD :/

But now I should be able to get to 20B nodes in just one day.

(still only doing 7x7 Go)


Michael Williams wrote:
Yes, when memory is full, I save and free all leaf nodes (which is the vast majority). Nodes are loaded as needed.
Don Dailey wrote:


On Mon, Jun 1, 2009 at 4:57 PM, Michael Williams <michaelwilliam...@gmail.com <mailto:michaelwilliam...@gmail.com>> wrote:

   I've optimized my disk access to the point where I'm mostly CPU
   limited now, even when using a standard hard disk instead of an SSD.
    I can now create trees of up to about 30 billion nodes, which would
   take about a week.  The simulation rate is continuously going down
   because so much time is spent in UCT loops in the huge tree.


That's impressive. Are you doing things which move parts of the tree onto the disk and back when needed? I'm curious about the details!

- Don






   Don Dailey wrote:



       On Mon, Jun 1, 2009 at 11:22 AM, Isaac Deutsch <i...@gmx.ch
<mailto:i...@gmx.ch> <mailto:i...@gmx.ch <mailto:i...@gmx.ch>>> wrote:


           > Well, I'll take that over crashing with an out-of-memory
       error. :)

          Still, pruning seems better to me and has the same effect. ;p


       But is it better?   I think it's not so obvious without thorough
       testing.

       Pruning throw away information that is lost forever and may need
       to be recalculated.   Requiring more simulations does not throw
       out results, but results in some inefficiencies.   So it's not
       clear to me which is better - it may even be that it depends on
       how much you push it.   I am just guessing but I would guess
       that pruning is better in the short term, worse in the longer
       term.   Imagine a search at a corespondence level, where the
computer thinks for 24 hours. Which method is best there? Could you use hard disk or SSD? Using some kind of caching
       system,  where you relegate the oldest unvisited nodes to the
       hard dirve.   It may be that nodes you might normally prune are
       unlikely to get used again but if they do you still have the
       data.    This is no good unless you can guarantee that the disk
is used very infrequently - but with SSD it may be more practical.


       - Don




                  --
          Nur bis 31.05.: GMX FreeDSL Komplettanschluss mit DSL 6.000
       Flatrate und
          Telefonanschluss nur 17,95 Euro/mtl.!*
       http://portal.gmx.net/de/go/dsl02
          _______________________________________________
          computer-go mailing list
          computer-go@computer-go.org
       <mailto:computer-go@computer-go.org>
       <mailto:computer-go@computer-go.org
       <mailto:computer-go@computer-go.org>>

          http://www.computer-go.org/mailman/listinfo/computer-go/



------------------------------------------------------------------------


       _______________________________________________
       computer-go mailing list
       computer-go@computer-go.org <mailto:computer-go@computer-go.org>
       http://www.computer-go.org/mailman/listinfo/computer-go/


   _______________________________________________
   computer-go mailing list
   computer-go@computer-go.org <mailto:computer-go@computer-go.org>
   http://www.computer-go.org/mailman/listinfo/computer-go/



------------------------------------------------------------------------

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to