JPF wrote:Is there a way to make g.r.emlin use a modified version of SExplainer or PGExplainer without this bug?JPF

I think Jason (Site-Admin) will be the one to make the update. PGExplainer can be renamed to SudokuExplainer, but some script changes are required (SE's diuf.sudoku.test.serate to PGE's sudoku.serate). Or I can build a version of PGExplainer (with diuf.sudoku.test.serate) that can be a direct replacement. When rating Multiple Forcing Chains, PGE is about (rough estimate) 4 times faster than SE.

I've done some testing of lksudoku's fix on several vintages of SE: Testing with JPF's ED=10.0 submission, repeated 10 times, with a few seconds gap between each test.

Unmodified versions of SE (i.e. no lksudoku's fix):

- Code: Select all
` unmodified`

3 secs 5 secs 10 secs

SE 304,777 ED=10.0 x10 x10 x10

original ED=9.9 0

SE(1) 281,366 ED=10.0 0

private ED=9.9 x10

SKE 2021.9.28 ED=10.0 x6 x7

ED=9.9 x4 x3

PGE 56,712 ED=10.0 x4 x6

released ED=9.9 x6 x4

Modified versions of SE (i.e. with lksudoku's fix):

- Code: Select all
` modified (lksudoku's fix)`

3 secs 5 secs 10 secs

SE(1) 282,185 ED=10.0 x10

private ED=9.9 0

SKE 2021.10.3 ED=10.0 x10

ED=9.9 0

PGE 80,566 ED=10.0 x10

private ED=9.9 0

(1) private build (Java-6u45) of SE 1.2.1.3, with no debugging info. Other builds are Java-8, usually a recent release at the time of the build.

SKE is my current (development) version of SukakuExplainer.

I have no explanation for the results of the unmodified SE and SE(1), maybe it's a Java issue (HashMap implementation, as noted by lksudoku), all tests were run using Java-8 (java version "1.8.0_301").

For some technical stuff, I dumped the list of (available) Forcing Chains for the 2 steps leading to the ED=10.0 or ED=9.9 rating - it may be insightful to someone, but I myself will not follow this up as lksudoku's fix appears to have resolved the problem.

ED=10.0 case:

- Code: Select all
`+----------------------+----------------------+----------------------+`

| 1 479 8 | 5 479 349 | 2367 2469 2467 |

| 479 3 2 | 1789 6 1489 | 78 5 1478 |

| 6 5 47 | 1378 14789 2 | 378 89 148 |

+----------------------+----------------------+----------------------+

| 8 147 34567 | 2367 12457 1346 | 2567 246 9 |

| 457 2 14567 | 16789 145789 14689 | 5678 3 4678 |

| 357 47 9 | 23678 24578 34568 | 1 2468 2678 |

+----------------------+----------------------+----------------------+

| 2459 489 45 | 2689 2589 7 | 268 1 3 |

| 259 6 15 | 1289 3 1589 | 4 7 28 |

| 237 178 37 | 4 128 168 | 9 268 5 |

+----------------------+----------------------+----------------------+

Contradiction Forcing Chain (w/68 nodes): R4C3.4 on ==> R1C9.2 both on & off: r4c3<>4

Contradiction Forcing Chain (w/98 nodes): R5C6.6 on ==> R6C4.2 both on & off: r5c6<>6

Contradiction Forcing Chain (w/98 nodes): R6C6.3 on ==> R7C4.6 both on & off: r6c6<>3

Contradiction Forcing Chain (w/103 nodes): R5C5.5 on ==> R5C9.7 both on & off: r5c5<>5

Contradiction Forcing Chain (w/104 nodes): R4C3.7 on ==> R1C8.4 both on & off: r4c3<>7

Contradiction Forcing Chain (w/124 nodes): R8C6.1 on ==> R9C8.8 both on & off: r8c6<>1

Contradiction Forcing Chain (w/127 nodes): R6C1.7 on ==> R4C6.4 both on & off: r6c1<>7

Contradiction Forcing Chain (w/134 nodes): R4C5.1 on ==> R9C8.8 both on & off: r4c5<>1

Contradiction Forcing Chain (w/150 nodes): R1C6.9 on ==> R7C7.2 both on & off: r1c6<>9

1.85......32.6..5.65...2...8.......9.2.....3...9...1.......7.13.6..3.47....4..9.5 9.9, Contradiction Forcing Chain (w/68 nodes): R4C3.4 on ==> R1C9.2 both on & off: r4c3<>4

Contradiction Forcing Chain (w/98 nodes): R5C6.6 on ==> R6C4.2 both on & off: r5c6<>6

Contradiction Forcing Chain (w/98 nodes): R6C6.3 on ==> R7C4.6 both on & off: r6c6<>3

Contradiction Forcing Chain (w/102 nodes): R5C5.5 on ==> R5C9.7 both on & off: r5c5<>5

Contradiction Forcing Chain (w/104 nodes): R4C3.7 on ==> R1C8.4 both on & off: r4c3<>7

Contradiction Forcing Chain (w/124 nodes): R8C6.1 on ==> R9C8.8 both on & off: r8c6<>1

Contradiction Forcing Chain (w/127 nodes): R6C1.7 on ==> R4C6.4 both on & off: r6c1<>7

Contradiction Forcing Chain (w/134 nodes): R4C5.1 on ==> R9C8.8 both on & off: r4c5<>1

Contradiction Forcing Chain (w/150 nodes): R1C6.9 on ==> R7C7.2 both on & off: r1c6<>9

1.85......32.6..5.65...2...8.......9.2.....3...9...1.......7.13.6..3.47....4..9.5 10.0, Contradiction Forcing Chain (w/98 nodes): R5C6.6 on ==> R6C4.2 both on & off: r5c6<>6

ED=9.9 case:

- Code: Select all
`pencilmarks as above.`

Contradiction Forcing Chain (w/68 nodes): R4C3.4 on ==> R1C9.2 both on & off: r4c3<>4

Contradiction Forcing Chain (w/95 nodes): R5C6.6 on ==> R8C4.2 both on & off: r5c6<>6 <- this is different

Contradiction Forcing Chain (w/98 nodes): R6C6.3 on ==> R7C4.6 both on & off: r6c6<>3

Contradiction Forcing Chain (w/103 nodes): R5C5.5 on ==> R5C9.7 both on & off: r5c5<>5

Contradiction Forcing Chain (w/104 nodes): R4C3.7 on ==> R1C8.4 both on & off: r4c3<>7

Contradiction Forcing Chain (w/124 nodes): R8C6.1 on ==> R9C8.8 both on & off: r8c6<>1

Contradiction Forcing Chain (w/127 nodes): R6C1.7 on ==> R4C6.4 both on & off: r6c1<>7

Contradiction Forcing Chain (w/134 nodes): R4C5.1 on ==> R9C8.8 both on & off: r4c5<>1

Contradiction Forcing Chain (w/150 nodes): R1C6.9 on ==> R7C7.2 both on & off: r1c6<>9

1.85......32.6..5.65...2...8.......9.2.....3...9...1.......7.13.6..3.47....4..9.5 9.9, Contradiction Forcing Chain (w/68 nodes): R4C3.4 on ==> R1C9.2 both on & off: r4c3<>4

Contradiction Forcing Chain (w/95 nodes): R5C6.6 on ==> R8C4.2 both on & off: r5c6<>6

Contradiction Forcing Chain (w/98 nodes): R6C6.3 on ==> R7C4.6 both on & off: r6c6<>3

Contradiction Forcing Chain (w/102 nodes): R5C5.5 on ==> R5C9.7 both on & off: r5c5<>5

Contradiction Forcing Chain (w/104 nodes): R4C3.7 on ==> R1C8.4 both on & off: r4c3<>7

Contradiction Forcing Chain (w/124 nodes): R8C6.1 on ==> R9C8.8 both on & off: r8c6<>1

Contradiction Forcing Chain (w/127 nodes): R6C1.7 on ==> R4C6.4 both on & off: r6c1<>7

Contradiction Forcing Chain (w/134 nodes): R4C5.1 on ==> R9C8.8 both on & off: r4c5<>1

Contradiction Forcing Chain (w/150 nodes): R1C6.9 on ==> R7C7.2 both on & off: r1c6<>9

1.85......32.6..5.65...2...8.......9.2.....3...9...1.......7.13.6..3.47....4..9.5 9.9, Contradiction Forcing Chain (w/95 nodes): R5C6.6 on ==> R8C4.2 both on & off: r5c6<>6

Edit: I've added pencilmarks grid.

The '<- this is different' highlighted line is sometimes not there (instead has the '(w/98 nodes)' line) in both ED=10.0 and ED=9.9 ratings. So this may be a 'red herring'.