A new contributor who wishes to remain anonymous contacted me directly with a lot of new puzzles...
Old estimates of expected total numbers may need to be redone..
Cheers
Gordon
JPF wrote:Did he give you some clues on how he found them ?
anon17 wrote:As for "how my code works" ... "coloin's" last few messages at "sudoku.com",
have the right basic idea.
These were mostly found using "{-1,1}{reduce}" test on a bunch of 18's
...18's that came from 19's produced using the same techniqe ... and so on.
I use a cache of 12000 puzzles, and start it out, containing one random puzzle.
After that, the code chooses a random "untested" puzzle from the cache,
and runs its tests on it, and moves on. Usually it just ends up making more
and more 18's (after a brief startup interval). When the cache fills up, I start
it all over again. Once and a while, of course ... one of the 18's reduces to
a 17. The 17's that get produced, get a {-2,+2}{reduce} test, run on them.
The "{reduce}" part, never works, of course!
In addition to that, I use one other method to make (mostly) 18's from 18's,
in conjunction with the {-1,+1} test. I look for small minimal unavoidable
sets in the solution grids (9 cells or smaller), and if they use 2 or more of the
"given" cells ... I change thier values to one of the "alternatives" for the
unavoidable set ... and check to see if the puzzle is valid. That test doesn't
produce as many 18's as the {-1,+1} test does ... but I think it improves
the "variety" of the 18's that get tested before the cache fills up.
gfroyle wrote:A new contributor who wishes to remain anonymous contacted me directly with a lot of new puzzles...
anon17 wrote:To answer some questions ...
1) (Current, average) rate of producing new 17's:
One every 175000 18's tested.
About the "rate": It will depend on the cache size that
is used. I've been using a size of 12000, since I found
that dropping it from 60000 to 12000, nearly doubled the
production rate (at the time). A different size, might
work better now. When I first made that change, though,
I tinkered with the size for a few days, and for sizes
of 8000, 12000, 15000 and 20000, the normal fluctuation
(and continual decrease) in the production rate, was
enough to mask any differences.
2) My current rate of producing new 17's:
-- 50 a day (and dropping)
-- around 90-100 a day averaged over the past month
3) My rate of testing 18's:
101/sec, on 4 machines with the equivalent computing power
(for the task at hand) of 2.9 of my "hot rod" machine, which
is a 2.4Ghz/100Mhz AMD 64.
That will be difficult to believe, I would anticipate.
Even more difficult: 7.03s per 17, to do {-2,+2} tests,
on the "hot rod" machine.
For a clue to how it's done: in the full {-1,+1} test
(on an 18) the solver is called around 18*52 times, and
in the full {-2,+2} test (on a 17), it is called around
(17*16/2)*1467 times.
The solver is pretty fast too ... completing around 30000
calls per second, "for the task at hand", again.
4) My plans: run for a few more days, entering puzzles by hand
on Gordon's "sudokuid" page ... and then fall back into the
woodwork. But then I may just submit my "24 hours later"
finds, as "witness", and see how you guys do for a while,
with fewer 17's left to find. If I really do find 50 today, that
should put Gordon's list at around "20 to go, to make 47000".
And to sound a familiar chord: I'll predict that they won't
be as easy to find as they have been in the recent past
(using current methods).
-- Yeah, I'll go with the 2nd option
-- I have some empathy for Red Ed's (one time) comment
about electric bills, now that I've had my "ego boost".
5) Regarding coloin's questions about "{-1,+2} and {-1,+2}{-1,1}":
Yes, I think it's true that it isn't a good idea to run it/them
on the full spread of known 17's. I had some luck running a
{-1,+2}({-1,+1}+{2nd method})({-1,+1}+{2nd method}) test on some
of my "late finds". Being "harder to find" (on average), they
tended to produce a lot fewer 18's in the {-1,+2} stage, and
thereby shorten the time spent "per 17". I think that most of
the "hits" came on the 2nd {-1,+1}, but that may have been only
because (probably) there were more 18's being tested in that
stage. I think I tested around 4500 17's like that, and got
around 40 "hits". But the last 165 that I tested, produced
zero hits. Someone might have good luck, if they were to look
for 17's where the {-1,+2} test produces less than 100-150 18's,
and run with them. I saw a few of the "broad spectrum" 17's,
producing 1000 or more 18's in the {-1,+2} stage ... and
400-500 was "not uncommon".
6) There are a couple more things I probably should have mentioned
in my initial "code description":
a) I'm using a "prescreen list" of 17's that have "been
through the works", to avoid repeating old tests.
For the {-2,+2} tests, that would be very important,
unless your game is to try to produce {-2,+2} closures
before you run out of cache!
b) I add the puzzles to the cache, in a "canonical form",
and perhaps unfortunately, I only add "minimal" puzzles.
With that being true, before spending the time to do a
"reduce" test, the code can first canonicalize the 18's
(... usually 18's), and check for them in the cache.
If it finds one in the cache, then since it's minimal,
it won't reduce, and the code can move on. While that may
sound attractive, there's a drawback to it all, too.
An 18 that reduces a (new) "17", never gets tested as a
(non-minimal) 18, and that may end up meaning that a good
opertunity to find an additional (new) 17, has been lost.
My {-1,+2}{-1,+1}{-1,+1} experiments, were a twisted attempt
to compensate for being in that situation. (Don't try to
figure out "how it might compensate for it". I'm not sure
it even makes sense).
7) Last comments: I've been "lurking" at sudoku.com, for close to
two years now, and have always been impressed by the quality of
the discussion. I'll keep lurking, and listening. I hope that
nobody faults me for not volunteering source code or binaries
(or for "falling back into the woodwork"). I'll be more
entertained by the evolution of the conversation, that I hope
I've spurred on.
Cheers,
"anon17"
+---+---+---+
|123|456|789|
|45.|...|...|
|...|...|...|
+---+---+---+
|2..|...|...|
|...|...|...|
|...|...|...|
+---+---+---+
|...|...|...|
|...|...|...|
|...|...|...|
+---+---+---+
12345678945................2.....................................................
1413 # 000000009000700000700203000000000000694000000000000270002500000010090304000060000
1414 # 000000009000700000700203000000000000694000000000000270310090004002000000000560000
+---+---+---+
|...|...|..9|
|...|7..|...|
|7..|2.3|...|
+---+---+---+
|...|...|...|
|694|...|...|
|...|...|27.|
+---+---+---+
|..2|5..|...|
|.1.|.9.|3.4|
|...|.6.|...|
+---+---+---+ #1413
+---+---+---+
|...|...|..9|
|...|7..|...|
|7..|2.3|...|
+---+---+---+
|...|...|...|
|694|...|...|
|...|...|27.|
+---+---+---+
|31.|.9.|..4|
|..2|...|...|
|...|56.|...|
+---+---+---+#1414
old # 003000700000700102089000000000300000000090000060000004310000000000004006000005090
new # 003000700000700102089000000004090050010000000000000000000000000000030094070102000
new # 003000700000700102089000000040005000000000070000004090000000000800930000060000500
old # 003000700000700102089000000260004000000000390000000000040100005000000000000830000
gsf wrote:there a strange coincidence in the ether
right around the time of anon17's additions my ~5/day processes dried up
I thought this meant that all hits by my processes were covered by anon17+previous_17s
but I checked the logs and there are only 2 anon17 hits
900M 18s perhaps
These include the "productive"
47000 * 63 non-minimal 18s [1 in 300]
47000 * ?250 minimal 18s [1 in 90]
all "non-productive" other 18s [wont give us a 17 with a {-2+1}]
random puzzle #17338
030000004000010000000050000500300700080200000000000100600000510002408000000000070
581 18-puzzles [~63 non-minimals and ~518 minimals}
anon17 #45000
100006070000090010040000000020000905000400000090000000000050200700300000800200000
181 18-puzzles [63 non-minimals and 118 minimals]
anon17 #45004
000204070810000009000000000002410000000000308050000000900080000300000040000000200
211 18-puzzles
coloin wrote:Well I think there has to be a statistical reason for this.
...
That would explain why you are tending not to get them with the {-2+1} method.
wintder wrote:I am wondering