domino14 / macondo

A crossword board game AI, written in Go
https://domino14.github.io/macondo
GNU General Public License v3.0
48 stars 10 forks source link

bestbot peg cutoff algorithm bug #320

Closed domino14 closed 6 months ago

domino14 commented 6 months ago
macondo> s

   A B C D E F G H I J K L M N O     ->              BestBot  GLLMNOŚ  307
   ------------------------------                    fwf4015           288
 1|=     '       =       '   P = |
 2|  -       "       "     S Y Ć |   Bag + unseen: (8)
 3|    -       '   '     H E T   |
 4|'     -       '       I M A ' |   ? D E F R U W Z 
 5|      C -           T   E N   |
 6|  " P i L Ż E     W O Ź N I   |
 7|  K ' C     '   ' S I   Y     |
 8|D A S H I     Z A T N Ę     = |
 9|  R ' A     '   B A O   '     |
10|  M   C   Z   R O Ń       "   |   Turn 26:
11|      Z Ł U   A     -         |   fwf4015 played 12K WERS for 10 pts from a 
12|'     Y   P Ó K I   W E R S ' |   rack of ?ERSUWW
13|G O J     Y ' I W I E   -     |
14|  B O A   "   J Ą Ł       -   |
15|K A N A D Z I E       '     = |
   ------------------------------
13P1/12SYĆ/11HET1/11IMA1/3C6T1EN1/2PiLŻE2WOŹNI1/1K1C5SI1Y2/DASHI2ZATNĘ3/1R1A4BAO4/1M1C1Z1ROŃ5/3ZŁU1A7/3Y1PÓKI1WERS1/GOJ2Y1IWIE4/1BOA3JĄŁ5/KANADZIE7 GLLMNOŚ/?DEFRUZ 307/288 0 lex OSPS49; ld polish;

peg -endgameplies 7 finds the right winning play of G4 ŚL(E) with 3/8 wins

peg -endgameplies 7 -early-cutoff true seems to have several errors:

Play                Wins %Win   Spread   Outcomes                          
(Pass)              ---  ---             👍: D E U Z  👎: ? F R W          ❌ 
 G4 ŚL.             3.0  37.50           👍: ? E U  👎: D F R W Z            
L10 ŚL.             2.0  25.00           👍: ? U  👎: D E F R W Z            
 G3 MGL.            2.0  25.00           👍: ? U  👎: D E F R W Z            
 G6 .Ś              2.0  25.00           👍: ? U  👎: D E F R W Z            
B12 L...            1.0  12.50           👍: U  👎: ? D E F R W Z            
 E4 LO.             1.0  12.50           👍: U  👎: ? D E F R W Z            
 G5 M.              1.0  12.50           👍: U  👎: ? D E F R W Z            
 G3 OŚL.            1.0  12.50           👍: U  👎: ? D E F R W Z            
 N9 GLO.            ---  ---             👍: ?  👎: D E F R W Z            ❌ 
 G5 G.M             1.0  12.50           👍: U  👎: ? D E F R W Z            
 G5 M.L             1.0  12.50           👍: U  👎: ? D E F R W Z            
 G6 .L              1.0  12.50           👍: U  👎: ? D E F R W Z            
 G5 L.N             1.0  12.50           👍: U  👎: ? D E F R W Z            
 G1 GNOLL.M         1.0  12.50           👍: ?  👎: D E F R U W Z            
11N OŚ              1.0  12.50           👍: ?  👎: D E F R U W Z            
 G5 N.M             1.0  12.50           👍: ?  👎: D E F R U W Z            
 E4 MO.             1.0  12.50           👍: U  👎: ? D E F R W Z            
 G4 LN.M            1.0  12.50           👍: U  👎: ? D E F R W Z            
N10 OL.             ---  ---             🤝: ?  👎: D F R W Z              ❌ 
N10 LO.             ---  ---             🤝: ?  👎: D F R W Z              ❌ 
 G3 GOL.M           0.0  0.00            👎: ? D E F R U W Z                
 G1 GNOLL.          0.0  0.00            👎: ? D E F R U W Z                
 G5 L.G             ---  ---             👎: ? D E F R W Z                ❌ 
11C G...            ---  ---             👎: ? D E F R W Z                ❌ 
 G4 OL.             ---  ---             👎: ? D E F R W Z                ❌ 
N10 NO.             ---  ---             👎: ? D E F R W Z                ❌ 
 5G MOL             ---  ---             👎: ? D F R W Z                  ❌ 
M11 G.ON            ---  ---             👎: ? E F R W Z                  ❌ 
M10 NO.M            ---  ---             👎: ? D F R W Z                  ❌ 
❌ marks plays cut off early

Pass seems to be calculated incorrectly, and it also gets cut off early but still wins?? Perhaps something wrong with the iterative deepening?