On Wed, 14 Feb 2001, Markus F.X.J. Oberhumer wrote:
> Many thanks, a first PySol integration seems to work now.
>
> Now for the real-live problem: your solution is not stable,
> i.e. when I request a hint and then play it, and then
> request another hint there sometimes the hint just
> suggests the undo of the previous hint -> loops.
>
That's why I suggest more than one move, and you should store all of
them, in case the user ask for more than one. Otherwise, I cannot
guarantee that there won't be any loops.
Making the solver stable is not an objective, as I have no idea how to do
it with DFS, much less with A*.
> This could be related to the fact the solutions look
> far from optimal. Maybe a postprocessing step
> could help, not sure...
>
That is one of the objectives of the upcoming 1.5.x tree and should be
stable in Freecell Solver 1.6.0. What I'm planning to do is to use a BFS
scan on the states in the solution path, thus hopefully optimizing the
solution.
> Or maybe I should have a look at patsolve <wink>
>
FOA, for XML-correctness - s!<wink>!<wink/>!. ;)
You could try. It has some problems, though:
1. It can only solve Freecell and Seahaven Towers.
2. It has no INDIRECT_STACK_STATES-like mechanism
3. Its moves need to be analyzed to be executed (I have a perl program
that does that, but it can be converted to python)
4. It operates on Atomic moves, so sometimes the user will be bothered by
it, or the solutions won't seem elegant.
5. When using DFS, I don't think it guarantees stability either. With BFS,
that's possible, but then it takes much more time than DFS.
I had a long discussion with Dr. Tom Holroyd, who is patsolve's author
about the differences between Freecell Solver and patsolve. To my biased
opinion, it seems that Freecell Solver is a better idea to serve as a
hint system for a games suite for the while, and will be even better when
the BFS optimization will be implemented.
Regards,
Shlomi Fish
> Markus
>
> On 14-Feb-2001 Shlomi Fish wrote:
> > On Wed, 14 Feb 2001, Markus F.X.J. Oberhumer wrote:
> >
> >> On 14-Feb-2001 Shlomi Fish wrote:
> >> > On Tue, 13 Feb 2001, Markus F.X.J. Oberhumer wrote:
> >> >
> >> >> Please run the script attached.
> >> >>
> >> >
> >> > You can't run the solver without specifiying a game. And you script does
> >> > not specify a board . Please throw an exception if this is the case.
> >>
> >> I already throw a Python exception. Then the object is garbage
> >> collected (via fcs_dealloc()), and once again there is a segfault
> >> in freecell_solver_user_free().
> >>
> >> Please just run the script and have a look.
> >>
> >
> > It was fixed in FCS 1.4.3. I just never expected a user to generate a user
> > instance without using it to solve something.
> >
> >> >> BTW, could you suggest compilation defines for the module ?
> >> >> I prefer (in this order): stability, low memory usage, speed
> >> >>
> >> >
> >> > 1. Use INDIRECT_STACK_STATES (check config.h). And make sure you are using
> >> > Soft-DFS.
> >>
> >> What are the compile options for this, and why don't you use
> >> them in the default setup ?
> >>
> >
> > Because for solving Freecell, which has only one deck, they make it
> > considerably slower. I'm planning to put the INDIRECT_STACK_STATES vs. the
> > COMPACT_STATES define in the makefile, but for now one needs to change
> > config.h.
> >
> >> BTW, how exactly does you stack-numbering in the resulting
> >> fcs_move_t go ? Some docs would be nice here, esp. when
> >> I think about the foundations in games with multiple decks.
> >>
> >
> > Stack number 0 is the first stack that is entered in the initial board,
> > number 1 is the second, etc. As for the foundations:
> >
> > 0: Hearts No. 0
> > 1: Spades No. 0
> > 2: Diamonds 0
> > 3: Clubs 0
> > 4: H 1
> > 5: S 1
> > 6: D 1
> > 7: C 1
> >
> > I don't think it is the same as PySol, but it is the numbering I'm used
> > to.
> >
> > Regards,
> >
> > Shlomi Fish
> >> Markus
>
> ---- Markus F.X.J. Oberhumer _at_ http://www.oberhumer.com ----
> ---- 5E CB 5C 85 DE AF 9E BF E9 DA 7E 6A 39 F8 CC 67 ----
>
> 3 WARPS TO URANUS
>
----------------------------------------------------------------------
Shlomi Fish shlomif_at_vipe.technion.ac.il
Home Page:
http://t2.technion.ac.il/~shlomif/
Home E-mail: shlomif_at_techie.com
The prefix "God Said" has the extraordinary logical property of
converting any statement that follows it into a true one.
Received on Wed Feb 14 2001 - 22:37:18 IST