ShootMe / Klondike-Solver

https://github.com/ShootMe/MinimalKlondike for the updated Solver
MIT License
64 stars 29 forks source link

Solvable Klondike draw 1...Klondike-Solver unable to solve after two hours using '/states 200000000' #14

Open clemente213 opened 2 years ago

clemente213 commented 2 years ago

Solvable Klondike draw 1...Klondike-Solver unable to solve after two hours using '/states 200000000' on a laptop with 16GB of RAM.

A non-minimal solution is printed below using the Klondike-Solver notation.

KlondikeSolver64.exe /D 132114074043113024111053121013041063042032103091044093011023012064061071101092102021084034081051122014062123022133112134082054072033104124073083052094031131 /moves /states 200000000

0: 1: KD 2: 5H -JS 3: 3D -QC-7S 4: AC -TH-AH-4H 5: 6C -2H-9C-4C-JH 6: 9D -7C-AD-4S-6H-2S 7: 2C -TD-TC-6S-9H-4D-JC 8: 8S 3S 8C 5C QD AS 6D QH 2D KH JD KS 8D 5S 7D 3H TS QS 7H 8H 5D 9S 3C KC 9: 10: 11: 12: Minimum Moves Needed: 102

Solution: 4C F4 7C F7 DR6 WS 25 F2 72 F7 DR12 W1 DR6 NEW DR10 W1 71 F7 DR12 NEW DR1 W6 DR12 W6 76 F7 71 F7 DR7 WC DR1 NEW DR2 W1 DR12 W1 51-2 F5 DR4 NEW DR1 W7 57 F5 52 F5 5C F5 DR11 W5 65-4 F6 DR1 W2 62 F6 6D F6 DR3 NEW DR5 WD 3D F3 53-6 61 F6 62 F6 6S DR1 W5 35-7 F3 DR7 NEW DR1 W2 72-3 F7 47 F4 4H F4 All tableau cards uncovered.

After entering and running 60 solvable high difficulty games from Microsoft Grandmaster level, this is the first time that KlondikeSolver64.exe was unable to solve a draw 1 game that was solvable.

I would be interested in an explanation of the KlondikeSolver64.exe inability to solve this game.

Are there other examples of solvable draw 1 games that could not be solved by KlondikeSolver64.exe?

Given enough time, would KlondikeSolver64.exe have eventually found a solution?

Thanks for providing this fabulous tool for Klondike obsessed fanatics!

ShootMe commented 2 years ago

Yep there are many deals like this, specially at the draw 1 variation. The problem is that this solver tries to solve minimally and not just for any solution. So some deals explode in the search space even though they may be "easier" to solve, they are harder for the solver since it's trying every possible move to find the best solution.

Using my newer solver (ShootMe/MinimalKlondike) I had to up the allowed search space for this deal to 800 million and use around 40gb of ram to solve it minimally. It showed a best solution of 142 moves (163 when including flips)

Deal: 132114074043113024111053121013041063042032103091044093011023012064061071101092102021084034081051122014062123022133112134082054072033104124073083052094031131

  A        B  C  D  E

  F  G  H  I  J  K  L
+KD JS 7S 4H JH 2S JC
   +5H QC AH 4C 6H 4D
      +3D TH 9C 4S 9H
         +AC 2H AD 6S
            +6C 7C TC
               +9D TD
                  +2C

 8S 3S 8C 5C QD AS 6D
 QH 2D KH JD KS 8D 5S
 7D 3H TS QS 7H 8H 5D
 9S 3C KC

Moves: IB LB @AK @@@@@AD GJ LG @@@@@@@@@@@@AF @AK @@@@AB AI @@@@@@@@@@AF LF LK LF @@AI @@@@@@@@@AF AL @@@@@@@@@AF JF JL JG JB @@AJ KJ KI KC KF KI KD AF AI LI IL IE LE FE IE LD FD FE AI AK AC HC LC LD JD LE JE @AE @AC HK HD JD AI AC @AH AH AB FB FC LB FB FE GB LC FB JC GC LD FC JD GD HC LE FD JE IE ID LB FC KB HB KE