Even if I place the blank boxes at random, I can make as many Sudoku problems as possible, but that doesn’t necessarily mean the problem can be solved.
If the blank boxes are around 45, it can be done somehow, but at around 50, the chance of ending up with a problem that can be solved decreases to around 25%.
So I tried the following experiment.
There may be copyright regarding the placement of the blank boxes, but for now, I will borrow some from existing problems (the problems on this website do not use such material).
A great way to arrange the boxes indeed. It was able to create a problem with about 55 blank boxes on 1 try.
I thought this was it, so I tried to make some problems from existing ones, but it only worked the first time. The rest failed.
So, if I can’t come up with problems when I randomly arrange blank boxes but can when I use nicely arranged ones from existing Sudoku, maybe the key is in the arrangement. Looking at various problems, it seems the clue boxes are scattered out pretty evenly, whether they be point symmetrical or 2~3 clue boxes per column.
In my research I found out that Japanese users prefer symmetrical shapes, so I tried creating a program that scatters out clue boxes evenly in a symmetrical shape, but that didn’t work either.
Maybe the solver is mistakenly detecting a solvable problem as an unsolvable one. So, I need to make the solver program stronger.
The program is constantly being upgraded, but in this upgrade I added solutions using pair boxes, trio boxes, 4 pair boxes, in addition to the method that deletes confirmed numbers from potential ones. I think I can still make improvements, but I think I have to improve my own ability to solve problems as well.
hen I looked up “How to create Sudoku problems”, I got a few results. It seems this is often used as a research report topic for college students. But students use methods that depend on the speed of the CPU, so I don’t think it’ll do me any good.
Then I found “Sudoku-mania” san’s method, which seemed pretty useful. In this method, you decide the blank box arrangements beforehand, place 1 number, then start placing the hint numbers to validate that.
It is the opposite of coming up with the answer first, but with this method I think I can make good questions.
But to create a program that uses this method, I need to have the ability to solve the problem on my own.
After much thought, I came with an idea to create a hybrid model. When creating a Sudoku problem with 55 blank boxes, I always make a mistake if I try to do it all at once, so if I just use the CPU, make a mistake, and do it over again, it’s not very efficient.
But up to 45 blanks, it can be done easily. So first, I create a Sudoku problem with 45 blank boxes.
Here, I will use a point symmetrical shape. Then for the remaining 10 boxes, I add one by one and determine whether it can be solved. If not, I add a different blank box, then repeat 10 times.
Up to 45 blank boxes, I use a coercive method (not sure if it’s solvable), then add solvable boxes 1 by 1, so I named it the hybrid model.
With this method, I can create a pretty symmetrical problem. I’ve only gone up to 55 blank boxes, but it didn’t take too long, so I can probably make something more difficult.