From 0fe5cf08830ba7cfaa2d2d3fca8d128858a7fa51 Mon Sep 17 00:00:00 2001 From: Sacha Ligthert Date: Tue, 21 Jan 2025 01:56:54 +0100 Subject: [PATCH] Draft: Sudoku blog post --- ...ration-fun-and-process-cycles-of-sudoku.md | 166 ++++++++++++++++++ ...y_L2G-20050714_standardized_layout.svg.png | Bin 0 -> 19487 bytes site/content/static/sudokufunparktop.png | Bin 0 -> 49106 bytes 3 files changed, 166 insertions(+) create mode 100644 site/content/posts/exploration-fun-and-process-cycles-of-sudoku.md create mode 100644 site/content/static/Sudoku_Puzzle_by_L2G-20050714_standardized_layout.svg.png create mode 100644 site/content/static/sudokufunparktop.png diff --git a/site/content/posts/exploration-fun-and-process-cycles-of-sudoku.md b/site/content/posts/exploration-fun-and-process-cycles-of-sudoku.md new file mode 100644 index 0000000..304f2ac --- /dev/null +++ b/site/content/posts/exploration-fun-and-process-cycles-of-sudoku.md @@ -0,0 +1,166 @@ +--- +title: "Exploration, fun, and process cycles of Sudoku" +date: 2025-01-20T23:33:06+01:00 +draft: true +--- + +# The idea +I like to play games, or play with puzzles. Even better, if I can automate solving 1-off single puzzles like Sudoku puzzles I can write an algorithm to solve them and I will never have to play them ever again. + +[Sudoku puzzles](https://en.wikipedia.org/wiki/Sudoku) have been around for a while and with them [algorithms to solve them](https://en.wikipedia.org/wiki/Sudoku_solving_algorithms). Most of them revolve around throwing random numbers against and see what sticks, intelligent guesswork and finally coming to a solution. I wanted to take a different approach: brute-force all possible solutions, store them in a database. And when I want to have a sudoku puzzle solved I just query the database and it returns all possible solutions. + +This idea has been in the back of my mind for close to a decade and late last year I decided to take a shot at it. I dusted off my trusty Go language skills as I a) wanted to learn the language a bit better and b) wanted to use Go routines to easily (ab)use all my CPU cores in this new quest of mine, and finally c) I am terribad at math, so I am working with the tools I have. + +# Lay of the land +Classic Sudoku puzzles have 9 blocks in a 3x3 grid with each block containing all the digits from 1 to 9, each block consistent out of 3x3 digits. The puzzle setter provides a partially complete grid and its up to you to solve them, which usually have only a single solution. + +Example puzzle: + +![Example Sudoku Puzzle](/static/Sudoku_Puzzle_by_L2G-20050714_standardized_layout.svg.png) + +( _Honestly stolen from Wikipedia._ ) + +The first step is to come up with all these unique blocks. As these are the puzzle pieces I need to work with. What I did was the following: + +1. Iterate from the lowest possible number (`123456789`) to the highest possible number (`987654321`). +2. Check if all the digits were present once +3. If the block was valid, then print or store it + +This resulted into [this file](https://gitea.ligthert.net/golang/sudoku-funpark/src/branch/trunk/blocks.csv). [Load the file](https://gitea.ligthert.net/golang/sudoku-funpark/src/branch/trunk/solver/blocks.go#L11-L34) into Go as a slice of ints and we can work with that from here on out. (This is faster than adding 363k lines to your source code and keep adding them to a slice, because after 20 minutes of compiling it still wasn't finished and I stopped it. So loading in a CSV was faster) + +Inspecting the file it resulted into `362880` possible blocks. It was only later that I noticed that this was the same as `9!` (9 factorial aka `9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1`). It wasn't entirely a surprise that the number 9 returned in a mathy game like Sudoku about 9 digits in a grid of 9 blocks. As far as I can tell this was the last time I encountered something 9 in the maths later on down the line. + +# Making it fit. +The next step was writing code that would make a block like this: +``` +123 +456 +789 +``` +next to a block like: +``` +912 +345 +678 +``` +This become a mess as I had to ensure that: +1. The block was uniq (done!) +2. Every horizontal line was unique +3. Every vertical line was unique + +The code for this became a lengthy headache, as I need to work with multi-dimensional array and make sure elements 3, 4, and 5 do not mess to much with other. And I ended up with some kind of mapping ensuring that there was no overlap. It was tedious to design, create, test, and very heavy on the processor to properly analyse everything. + +It was at this point I had an epiphany and realized that: +1. All blocks have to be unique +2. All columns shouldn't have repeating digits +3. All rows shouldn't have repeating digits. + +So, instead of comparing 3x3 grids, why not use rows to populate the puzzle? + +``` +123456789 +912345678 +...etc... +``` + +There are benefits to this approach: +1. It would not impact the end result as 3 unique lines that do not violate the constraints of the puzzle will result in 3 unique and valid blocks in a 1x3 row. +2. It is easier to compare rows than 3x3 digits and its adjecent 3x3 digits. +3. It saves on precious process cycles, which ultimately would speed up the entire process. + + +# Generate a (costly) solution +With this piece of the puzzle, it was time to put this into practice and see what I would get out of it. + +I found some random and easy Sudoku puzzle and put this into my code: +``` + row1 := "769104802" + row2 := "154800060" + row3 := "002700150" + row4 := "600900308" + row5 := "045328670" + row6 := "328670945" + row7 := "597410280" + row8 := "006283090" + row9 := "200590006" +``` +I substituted empty entries with a `0`, and used this to find possible substitutions with the remaining numbers. + +I will take `row1` as an example for the next bit: +> row1 := "769104802" +Replacing the null values with the remaining number I wrote an algorithm that would find all the possible solutions that could work for row one. Missing only two digits this would leave me with two compatible entries: +> 769134852 +> 769154832 +I put them into a slice and moved on to the next row. And repeated this until all the 9 rows had a slice with possible compatible blocks (row1s, row2s, row3s, etc, etc) + +The next step was comparing all the 9 slices, compare every entry, and validate every possible solution. This resulted into [a nesting 9 levels deep](https://gitea.ligthert.net/golang/sudoku-funpark/src/commit/16de7dda97747812eb99ef14088656e5f413b090/solver/processing.go#L45-L71): +* Iterate through row1 and take an element +* Iterate through row2 and take an element +* repeat 7 more times +* Validate all the 9 different elements. + +If it validates, print the solution. It if doesn't, discard and move on. + +This worked great. It took a poor single core on my computer only ~2.5 hours to solve a simple Sudoku puzzle. + +# Go Routines and Speedbumps +This was probably the time to utilize Go Routines, a handy way to give a function a task, run it somewhere in the background, and then spawn some more. Ensuring that I use all my CPU cores grinding my poor computer to a halt. + +This was my first foray in serious Go routine usage, and I've learnt something. I was fortunate I could exploit an interace for sharing interprocess memory, so I didn't need to resort to using channels (which would add to complexity and speed). I ran the validate step at the end of the 9th level of nesting as a go routine and had roughly thousands of Go routines running at the same time. This reduced the computation time from ~2.5 hours to ~1.5 hours. All things considered, it wasn't bad. + +Wanting to increase the brute force performance I tried to run a Go routine at the 8th nesting level, spawning a Go routine for every 8th row slice, that would in turn spawn Go routines for every element in the slice of row9. With the number of simultanious running Go routines in the 100s of thousands, all my cores were at 100%, my desktop was rendered useless, processing time was increased, and overall this was a detrimental approach. + +My top wasn't too happy with this: + +![Top output](/static/sudokufunparktop.png) + +The lesson of this exercise was that I needed to put a brake on the Go routines, and manage this. + + +# Further (possible) optimisation +At this stage I've been at this for roughly a week and was happy with the intermediate results, but this could be optimized further. I haven't taken the time but intend to work on this in the future. So I would like to explain my thinking and possible solutions. + +Comparing rows like the one below are costly: +``` +123456789 +912345678 +...etc... +``` + +You compare every digit with the digit in the lower rows and do this for every possible solution. This is CPU intensive and with that a costly way to validate all possible solutions. To combat this I would like to compare something more abstract, since I already have a slice with blocks I can use the indexes. + +I want to compare the slice of blocks with itself, and validate two entries, and store incompatible entries. + +1. Take blocks[1] +2. Validate it with blocks[2] +3. If it is invalid, store the pair +4. Repeat step two, but with blocks[3] + +Once step 2 has been exhausted, replace step 1 with blocks[2], validate with blocks[3], and work it way through the slice. Keep in mind that if blocks[2] and blocks[3] are incompatible, this also mean that blocks[3] and blocks[2] are incompatible. This would hopefully reduce the time required to process all possible combinations. (Otherwise I would need to make 362880 * 362880 = 131681894400 comparisons) + +Once this the set of invalid combinations have established I can iterate through the 9x9! possible combinations (109110688415571316480344899355894085582848000000000). + +Why pairs of incompatible indices? + +Because, if I render and abstract notation of possible solutions using blocks[] index numbers: +> 123:345:910:789:684:24:738:182:102 + +If I know that indices `123` and `910` are not compatible with eachother I can discard this potential solution and move on. It doesn't matter where in the possible solution these indices are place, we know it will never validate. + +What I am not sure about, and I doubt if it is more efficient compared to bruteforcing the 9x9! solutions is that comparing possible solutions with invalid pairs may be just as costly, if not more. + +Although, once the set of incompatible pairs have been generated, it may be easier to run this on separate machines by giving each machine an index for the first row, let them generate the rest and compare. + +🤔 Thinking about this a bit more, the ordering of possible solutions shouldn't really matter, which may speed the process up a bit. + + +# The numbers +It was somewhere at this stage I started looking into other solutions and numbers: +* As you have seen earlier, comparing 9 rows of 9! possible solutions will result in 109110688415571316480344899355894085582848000000000 comparisons. +* [Looking at Wikipedia again](https://en.wikipedia.org/wiki/Mathematics_of_Sudoku) there are 6670903752021072936960 possible solutions for Sudoku +* This is going to consume a lot of a) time b) energy c) storage + +And the latter starts adding up when it comes to storage requiring me to have at least 540 zettabytes to store the solutions as efficiently as possible (a string 81 bytes). Let alone the upfront costs and infra required to hosts such a database. + +# Conclusion +I tried, I bit of more than I could chew, I learned a lot, it was fun. I can sleep well knowning I did my best, challanged myself, and can cross something of my todo list that has been living rent free in the back of my head for the better part of a decade. diff --git a/site/content/static/Sudoku_Puzzle_by_L2G-20050714_standardized_layout.svg.png b/site/content/static/Sudoku_Puzzle_by_L2G-20050714_standardized_layout.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..832e3aa6b24bb4c9081e1ff81b1a03f0071deed6 GIT binary patch literal 19487 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¨!N@L{5`Qh-(7AhXXHCqA}Bh?$V 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 L1+g*_!+`$}SDKWa literal 0 HcmV?d00001