Multiple POM solution:
- Code: Select all
+-----------------+---------------------+-----------------+
| 6 1247 8 | 124 3 1247 | 125 1257 9 |
| 347 5 1234 | 9 1267 12467 | 8 1237 367 |
| 37 9 123 | 128 12678 5 | 123 4 367 |
+-----------------+---------------------+-----------------+
| 1 468 5 | 7 26 2346 | 9 38 348 |
| 2 4678 346 | 345 9 346 | 345 3578 1 |
| 347 47 9 | 1345 15 8 | 6 357 2 |
+-----------------+---------------------+-----------------+
| 458 3 124 | 6 12578 127 | 124 9 48 |
| 458 1248 7 | 12358 1258 9 | 1234 6 348 |
| 9 1268 126 | 1238 4 123 | 7 1238 5 |
+-----------------+---------------------+-----------------+
1) #VT: (28 28 22 22 8 8 7 7 1)
Single-digit POM: .7...7.7.7...77.777...7...7...7......7.....7.77.....7.....77.....7............7..
Digit 7 not in 7 Templates => -7 @ r1c8 r2c8
Single-digit POM: ..8............8.....88.....8.....88.8.....8......8...8...8...888.88...8.8.8...8.
Digit 8 not in 7 Templates => -8 @ r8c2 r9c2
- Code: Select all
+-----------------+---------------------+-----------------+
| 6 1247 8 | 124 3 1247 | 125 125 9 |
| 347 5 1234 | 9 1267 12467 | 8 123 367 |
| 37 9 123 | 128 12678 5 | 123 4 367 |
+-----------------+---------------------+-----------------+
| 1 468 5 | 7 26 2346 | 9 38 348 |
| 2 4678 346 | 345 9 346 | 345 3578 1 |
| 347 47 9 | 1345 15 8 | 6 357 2 |
+-----------------+---------------------+-----------------+
| 458 3 124 | 6 12578 127 | 124 9 48 |
| 458 124 7 | 12358 1258 9 | 1234 6 348 |
| 9 126 126 | 1238 4 123 | 7 1238 5 |
+-----------------+---------------------+-----------------+
2) #VT: (28 28 22 22 8 8 7 7 1)
Triple-digit POM: .2.2.222...2.22.2...222.2......22...2................2..2.222...2.22.2...222.2.2.
and POM: .1.1.111...1.11.1...111.1..1................1...11......1.111...1.11.1...111.1.1.
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
Digit 2 not in 24 Templates => -2 @ r1c6
Triple-digit POM: ....3....3.3....333.3...3.3.....3.33..33.333.3..3...3..3..........3..3.3...3.3.3.
and POM: 6............66..6....6...6.6..66....66..6.........6.....6............6..66......
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
Digit 3 not in 10 Templates => -3 @ r2c9 r3c9
Triple-digit POM: ....3....3.3....3.3.3...3.......3.33..33.333.3..3...3..3..........3..3.3...3.3.3.
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
and POM: ..8............8.....88.....8.....88.8.....8......8...8...8...88..88...8...8...8.
Digit 3 not in 8 Templates => -3 @ r5c8
Triple-digit POM: .4.4.4...4.4..4..........4..4...4..4.444.44..44.4.....4.4...4.444....4.4....4....
and POM: .1.1.111...1.11.1...111.1..1................1...11......1.111...1.11.1...111.1.1.
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
Digit 4 not in 13 Templates => -4 @ r4c2
Triple-digit POM: .4.4.4...4.4..4..........4......4..4.444.44..44.4.....4.4...4.444....4.4....4....
and POM: .2.2..22...2.22.2...222.2......22...2................2..2.222...2.22.2...222.2.2.
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
Digit 4 not in 11 Templates => -4 @ r1c6 r5c2
Triple-digit POM: .4.4.....4.4..4..........4......4..4..44.44..44.4.....4.4...4.444....4.4....4....
and POM: ......55..5............5.....5.........5..55....55..5.5...5....5..55............5
and POM: ..8............8.....88.....8.....88.8.....8......8...8...8...88..88...8...8...8.
Digit 4 not in 5 Templates => -4 @ r5c3 r6c4 r7c1 r8c1
Triple-digit POM: ......55..5............5.....5.........5..55....55..5.5...5....5..55............5
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
and POM: ..8............8.....88.....8.....88.8.....8......8...8...8...88..88...8...8...8.
Digit 5 not in 5 Templates => -5 @ r5c8
Triple-digit POM: 6............66..6....6...6.6..66....66..6.........6.....6............6..66......
and POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
and POM: ..8............8.....88.....8.....88.8.....8......8...8...8...88..88...8...8...8.
Digit 6 not in 5 Templates => -6 @ r5c2
Triple-digit POM: .7...7...7...77..77...7...7...7......7.....7.77.....7.....77.....7............7..
and POM: .1.1.111...1.11.1...111.1..1................1...11......1.111...1.11.1...111.1.1.
and POM: .4.4.....4.4..4..........4......4..4...4.44..44.........4...4.4.4....4.4....4....
Digit 7 not in 4 Templates => -7 @ r1c2 r2c5 r2c6 r3c5 r6c1 r7c6
Digit 7 in all 4 Templates => 7 @ r1c6 r7c5
Triple-digit POM: ..8............8.....88.....8.....88.8.....8......8...8.......88..88...8...8...8.
and POM: .1.1..11...1.11.1...111.1..1................1...11......1..11...1.11.1...111.1.1.
and POM: ......55..5............5.....5.........5..5.....55..5.5........5..55............5
Digit 8 not in 2 Templates => -8 @ r3c4 r4c9 r7c1 r8c4 r8c5 r8c9 r9c8
Digit 8 in all 2 Templates => 8 @ r3c5 r7c9 r8c1 r9c4
- Code: Select all
+---------------+-----------------+---------------+
| 6 124 8 | 124 3 7 | 125 125 9 |
| 34 5 1234 | 9 126 1246 | 8 123 7 |
| 7 9 123 | 12 8 5 | 123 4 6 |
+---------------+-----------------+---------------+
| 1 68 5 | 7 26 2346 | 9 38 34 |
| 2 78 36 | 345 9 346 | 345 78 1 |
| 34 47 9 | 135 15 8 | 6 357 2 |
+---------------+-----------------+---------------+
| 5 3 124 | 6 7 12 | 124 9 8 |
| 8 124 7 | 1235 125 9 | 1234 6 34 |
| 9 126 126 | 8 4 123 | 7 123 5 |
+---------------+-----------------+---------------+
3) #VT: (15 15 4 4 3 3 2 2 1)
Single-digit POM: ....3....3.3....3...3...3.......3.33..33.33..3..3...3..3..........3..3.3.....3.3.
Digit 3 not in 4 Templates => -3 @ r4c6 r5c7 r6c8
- Code: Select all
+---------------+-----------------+---------------+
| 6 124 8 | 124 3 7 | 125 125 9 |
| 34 5 1234 | 9 126 1246 | 8 123 7 |
| 7 9 123 | 12 8 5 | 123 4 6 |
+---------------+-----------------+---------------+
| 1 68 5 | 7 26 246 | 9 38 34 |
| 2 78 36 | 345 9 346 | 45 78 1 |
| 34 47 9 | 135 15 8 | 6 57 2 |
+---------------+-----------------+---------------+
| 5 3 124 | 6 7 12 | 124 9 8 |
| 8 124 7 | 1235 125 9 | 1234 6 34 |
| 9 126 126 | 8 4 123 | 7 123 5 |
+---------------+-----------------+---------------+
4) #VT: (15 15 4 4 3 3 2 2 1)
Triple-digit POM: .1.1..11...1.11.1...11..1..1................1...11......1..11...1.11.1...11..1.1.
and POM: .2.2..22...2.22.2...22..2......22...2................2..2..22...2.22.2...22..2.2.
and POM: ....3....3.3....3...3...3.........33..33.3...3..3......3..........3..3.3.....3.3.
Digit 1 not in 8 Templates => -1 @ r1c4
Triple-digit POM: .1....11...1.11.1...11..1..1................1...11......1..11...1.11.1...11..1.1.
and POM: .2.2..22...2.22.2...22..2......22...2................2..2..22...2.22.2...22..2.2.
and POM: .4.4.....4.4..4..........4......4..4...4.44..44.........4...4...4....4.4....4....
Digit 1 not in 7 Templates => -1 @ r3c7 r7c3
Triple-digit POM: .1....11...1.11.1...11.....1................1...11.........11...1.11.1...11..1.1.
and POM: .2.2..22...2.22.2...22..2......22...2................2..2..22...2.22.2...22..2.2.
and POM: ......55..5............5.....5.........5..5.....55..5.5...........55............5
Digit 1 not in 7 Templates => -1 @ r8c5
Triple-digit POM: .1....11...1.11.1...11.....1................1...11.........11...1.1..1...11..1.1.
and POM: .2.2..22...2.22.2...22..2......22...2................2..2..22...2.22.2...22..2.2.
and POM: 6............66...........6.6..66.....6..6.........6.....6............6..66......
Digit 1 not in 5 Templates => -1 @ r1c2 r2c8 r9c3
Triple-digit POM: .2.2..22...2.22.2...22..2......22...2................2..2..22...2.22.2...22..2.2.
and POM: ......11...1.11.....11.....1................1...11.........11...1.1..1...1...1.1.
and POM: ....3....3.3....3...3...3.........33..33.3...3..3......3..........3..3.3.....3.3.
Digit 2 not in 6 Templates => -2 @ r3c7 r7c3 r9c6
Triple-digit POM: .2.2..22...2.22.2...22.........22...2................2.....22...2.22.2...22....2.
and POM: ......11...1.11.....11.....1................1...11.........11...1.1..1...1...1.1.
and POM: ......55..5............5.....5.........5..5.....55..5.5...........55............5
Digit 2 not in 3 Templates => -2 @ r1c7 r1c8 r2c3 r2c5 r2c6 r8c2 r8c4 r9c8
Digit 2 in all 3 Templates => 2 @ r2c8
Triple-digit POM: ....3....3.3........3...3.........33..33.3...3..3......3..........3..3.3.....3.3.
and POM: ......11...1.11.....11.....1................1...11.........11...1.1..1...1...1.1.
and POM: .2.2............2...22.........22...2................2.....22......2.2...22......
Digit 3 not in 3 Templates => -3 @ r3c3 r8c7
Triple-digit POM: ....3....3.3............3.........33..33.3...3..3......3..........3....3.....3.3.
and POM: 6............66...........6.6..66.....6..6.........6.....6............6..66......
and POM: ..8............8......8.....8.....8..8.....8......8...........88...........8.....
Digit 3 not in 2 Templates => -3 @ r2c1 r5c3 r6c4
Digit 3 in all 2 Templates => 3 @ r2c3 r6c1
Triple-digit POM: .4.4.....4....4..........4......4..4...4.44...4.........4...4...4....4.4....4....
and POM: ......11.....11.....11.....1................1...11.........11...1.1..1...1...1.1.
and POM: .2.2............2...22.........22...2................2.....22......2.2...22......
Digit 4 not in 2 Templates => -4 @ r1c2 r2c6 r5c4 r7c7 r8c2
Digit 4 in all 2 Templates => 4 @ r1c4 r6c2
Triple-digit POM: ...4.....4...............4......4..4.....44...4.........4............4.4....4....
and POM: .2..............2...22.........22...2................2.....22......2.2...22......
and POM: 6............66...........6.6..66.....6..6.........6.....6............6..66......
Digit 4 not in 1 Template => -4 @ r4c6 r5c7 r8c9
Digit 4 in all 1 Template => 4 @ r4c9 r5c6 r8c7
Triple-digit POM: ......55..5............5.....5.........5..5.....55..5.5...........55............5
and POM: ......11.....11.....11.....1................1...11.........11...1.1......1...1.1.
and POM: .2..............2...22.........22...2................2.....22......2.....22......
Digit 5 not in 1 Template => -5 @ r1c7 r5c4 r6c4 r6c8 r8c5
Digit 5 in all 1 Template => 5 @ r1c8 r6c5 r8c4
Triple-digit POM: 6............66...........6.6..66.....6............6.....6............6..66......
and POM: ......1......11.....11.....1................1...1..........11...1........1...1.1.
and POM: .2..............2...22.........22...2................2.....22......2.....22......
Digit 6 not in 1 Template => -6 @ r2c5 r4c2 r4c6 r9c3
Digit 6 in all 1 Template => 6 @ r2c6 r4c5 r9c2
Triple-digit POM: .....7...........77...........7......7.....7........7.....7......7............7..
and POM: ......1......1......11.....1................1...1..........11...1............1.1.
and POM: .2..............2...22..........2...2................2.....22......2......2......
Digit 7 not in 1 Template => -7 @ r5c8
Digit 7 in all 1 Template => 7 @ r5c2
Triple-digit POM: ..8............8......8.....8.....8........8......8...........88...........8.....
and POM: ......1......1......11.....1................1...1..........11...1............1.1.
and POM: .2..............2...22..........2...2................2.....22......2......2......
Digit 8 not in 1 Template => -8 @ r4c8; stte
R. JamilAccording to Google AI Overview:
The Pattern Overlay Method (POM) in Sudoku, also known as templating, is a non-idempotent process. While it is not a "trial and error" method (it does not require guessing), it is an iterative technique where applying the method multiple times to the same, unchanging state of the puzzle will continue to yield new information and eliminate possibilities, rather than producing the same output as the first iteration.
Why the Pattern Overlay Method is Non-Idempotent:Iterative Reduction: POM works by identifying all possible valid "patterns" (or templates) for a single digit (9 instances of a digit) that conform to the current, known solved cells.
Sequential Elimination: Each time a pattern or set of patterns is eliminated (e.g., if a pattern never contains a certain cell), the total number of possible patterns for that digit decreases. This narrowing of possibilities makes it easier to eliminate more patterns in a subsequent pass.
The "Re-run" Effect: Because the initial step (identifying patterns) is based on the current set of "candidate spaces" for a digit, reducing the candidate space in step A allows step B to use that tighter constraint to eliminate even more patterns. Thus, POM(Puzzle) != POM(POM(Puzzle)).
Backtracking/BFS: Programmatic implementations often use a breadth-first search (BFS) that restarts at a two-pattern combination analysis every time a pattern is eliminated.
How the Method Works:- Isolate Candidates: Choose a digit and map all possible positions it could inhabit based on existing clues.
- Generate Patterns: Identify all 46,656 possible standard patterns (or fewer, given the clues) that the digit can form.
- Identify "Always On/Off": A cell that is part of all possible patterns for a digit is a "hidden single" (must be that digit). A cell that is part of no patterns for a digit can be eliminated.
- Iterate: Once cells are solved using this method, the number of possible patterns for other digits shrinks, which is why the method is reapplied.
Contextual Application:POM is considered a "last resort" technique that is inefficient in the early stages of a puzzle due to the high number of possible patterns, but highly effective in the endgame, often applied to break very difficult, non-consecutive, or otherwise constrained puzzles.