Re: Hash Table for self avoiding random walks
- To: mathgroup at smc.vnet.net
- Subject: [mg88460] Re: [mg88453] Hash Table for self avoiding random walks
- From: "W_Craig Carter" <ccarter at mit.edu>
- Date: Tue, 6 May 2008 06:37:35 -0400 (EDT)
- References: <200805051017.GAA08668@smc.vnet.net>
Hello JM,
I may be misunderstanding your question completely, so I am sorry if
this suggestion is off target:
atrail := Module[{trail}, NestWhile[takeStep, {{{0, 0, 0}}, trail},
(Length[availableSteps[#]] > 0) &]]
Table[atrail,{4}]
> As an aside, although there is no documentation for HashTable, doing
There is something, but not much, in the doc for Dispatch. I am not
sure, but I don't think you will need to get to the guts of HashTable.
> Can I make a bunch of things that work like hash tables without
> polluting the global scope?
:
:
> My primary complaint with this technique is that it seems to require
> giving your hash table a name with global scope. What if I want to
> make 100 different walks? Do I have to give them all separate names?
> I guess I could do something like h[10][1,1] = True;, but then I
> always have to keep track of which walk I'm working on. I'd rather
> just be able to let them all be anonymous and stick them in a list.
>
> Any ideas? Here's my current best effort:
>
> neighborhood[n_] :=
> With[{seed = ReplacePart[ConstantArray[0, n], 1 -> 1]},
> Join[Permutations[seed], Permutations[-seed]]]
>
> availableSteps[{points_, visitedFunction_}] :=
> With[{steps = (Last[points] + #) & /@
> neighborhood[Dimensions[points][[2]]]},
> Select[steps, visitedFunction[#] =!= True &]]
>
> takeStep[{points_, visitedFunction_}] :=
> With[{newStep =
> RandomChoice[availableSteps[{points, visitedFunction}]]},
> visitedFunction[Last[points]] = True;
> {Append[points, newStep], visitedFunction}]
>
> Clear[trail];
> {points, trail} =
> NestWhile[
> takeStep, {{{0, 0, 0}}, trail}, (Length[availableSteps[#]] > 0) &];
>
> The part that I really don't like is the Clear[trail] part.
>
--
W. Craig Carter
- References:
- Hash Table for self avoiding random walks
- From: "jwmerrill@gmail.com" <jwmerrill@gmail.com>
- Hash Table for self avoiding random walks