Hi Gary,
thanks for your comments. See below for my comments.
On Tue, 24 Jan 2012 08:58:49 -0800
"Gary Campbell" <gary_at_numin8r.us> wrote:
> A couple of observations.
>
> A move from an incompatible parent is not well defined as such, in my opinion.
You may have misunderstood me. I was referring only to atomic, single-card,
moves, which is what the DBM solver currently works with, and are used because
they can determine solvability with a 100% accuracy (barring implementation
bugs).
> I like to think of the contents of a column as empty, singletons, sequenced,
> partially sequenced, and fully unsequenced. It is only from a fully unsequenced
> column to a freecell that you get an irreversible move (from any other type of
> parent, you get a reversible move). Likewise, from one column to another you
> have to move the entire top sequence to get an irreversible move.
Well, you also get an irreversible move if you move a *single* card from an
incompatible parent to an empty column or a compatible parent (say, moving 2D
from being present on top of a 5D to a 3S).
>
> Secondly, I think the number of irreversible moves is far fewer than 52*2.
> Every column to column, irreversible move, puts another card into sequence.
> When all 52 cards are in sequence, the game is (the same as) solved. A trip
> from one column to another might be through a free cell, but the move from
> freecell to column is reversible, so it wouldn’t be counted.
Yes, 52*2 is only a pessimistic upper bound for the FCC-maximal-depth
approximation. In practise, we can expect it to be lower. The exact number does
not matter too much for the solver I proposed, because it only operates on two
consecutive depths at one time.
I also note that so far it seems that I'll have to forego using Horne's
prune for this solver, because it may interfere with the count of irreversible
moves required to reach the current layout and will complicate matters.
>
> My definitions are based on treating a valid multi-card move as a single
> move. If that definition isn’t used, I admit to not having thought through
> the above statements. It just seems to me that a freecell solver needs
> to handle multi-card moves as a single unit, or they become needlessly
> complex.
Well, this is a specialised Freecell solver used to determine whether a
solution exists for hard 2-freecell deals, and it needs to overcome
constraints of running out of RAM (we already ran out of using 128 GB of RAM
on an HPC machine with the so-called "dbm_fc_solver") and solution time and
general efficiency is of less concern. I don't intend it to replace "fc-solve",
the "freecell-solver" library, etc. which is more general purpose.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
My Aphorisms - http://www.shlomifish.org/humour.html
I used to be arrogant. Now I’m simply Perfect.
— one of Shlomi Fish’s relatives.
Please reply to list if it's a mailing list post - http://shlom.in/reply .
Received on Tue Jan 24 2012 - 10:10:01 IST