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

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;


Which equations do you use for the incremental updates? Or do you just recompute the values?



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).


What is a proper UCT loop?



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/
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to