You might consider combining almost-locked grids with your newly-discovered "almost-locked ranges":

- Code: Select all
`. . .|. . .|/ / 5`

. 5 .|5 . .|5 5 5

. | .|| . .|/ / 5

--|--+|----+-----

. 5 .|5 . .|. . *

. | .|| . .|. . .

. | .|| . .|. . .

--|--+|----+-----

. 5 .|5 . .|. . *

. . .|. . .|. . .

. . .|. . .|. . .

*<>5

I don't know how useful they might be...

One thing I have noticed in your solver that seems not to have occurred before is the strange choice of subsets. Of course, for every naked subset there is a corresponding hidden one and vice versa, but your solver sometimes finds the larger subset.

Here you can use a naked pair instead of the hidden triple.

And your only example of a hidden quad can be replaced by a naked triple.