Contents Previous Next

Solver Settings

In order to make the solver run, a problem must be selected first. A list of all previously defined problems is available right below the Parameters caption. Selecting problems to be solved is similar to selecting shapes, colours, or problems on the other tabs. Note that only the selected problem will be solved, and that solving one problem will preserve the results of any already solved or partially solved problem. Currently there are the following options for the solver. All deal with the kind of information the solver will report.

Solve Disassembly
When checked, the solver will try to disassemble any assemblies found, and only those that indeed can be disassembled will be added to the list of solutions. If this option is left unchecked, the solver will merely search for all theoretically possible assemblies, i.e. assemblies for which the pieces do not overlap. Since solving disassemblies takes time (and often far more than assembling), it's recommended to leave this option unchecked for puzzles that always can be disassembled (e.g. PENTOMINO problems and other packing problems). For that kind of puzzles, running the disassembler would only slow down the process without any gain in information.

Just Count
When checked, the solver will only count the number of solutions; it will drop the solutions right after they are found. Check this option if you're interested only in the number of solutions and not in the solutions themselves.

Drop Disassm
When checked, the program functions the same as with Solve Disassembly enabled, except that the disassembly is not stored, only the assemblies and some information about the disassemblies (like their level). This is useful if you have a problem that has many solutions and you want to find the most interesting solutions. Disassemblies take up a lot of memory within the computer so it is useful to just save some information while solving the puzzle and then later on, when everything is finished, recalculate the disassemblies for the interesting solutions.

Keep Mirror Solutions
When this box is checked, the program will not remove mirror solutions. Two solutions are mirror solutions are solutions when one solution is a real mirror of the other. This can happen only, when either all pieces are self mirroring (note that all flat pieces are self mirroring) or they have a mirror pair in the piece set. Sometimes it is possible to create the mirror solution by flipping the solution over. These are not mirror solutions to BURRTOOLS and are still removed. This option is useful when using piece ranges, as the mirror removal would remove too many solutions, like solutions with different piece sets.

Keep Rotated Solutions
When this box is checked, the program will not exclude solutions that are only rotations of other solutions. So the final solution count will be wrong. It will even be completely unpredictable somewhere in the range of the right number of solutions and a 120 fold of that value (for spheres). This option is useful if you just want to know if there are any solutions at all.

Expensive rotation check
When this box is checked, BURRTOOLS will do a more thorough but also more CPU time consuming check for double solutions. The basic idea behind it is explained in the chapter about Rotation Removal. A use of this switch is explained in the piece generation example

Sort by
This option lets you choose the order in which the solutions are presented while the solver runs. There are 3 possibilities:

unsorted: The solutions are sorted in the order in which they were found.
by level: The solutions are sorted by the level. First by the number of moves to remove the first piece, if that is identical then by the moves for the second piece, and so on.
by number of moves to disassemble: The solutions are sorted by the sum of all moves required to completely disassemble the puzzle.
If a puzzle has very many solutions, it might not be necessary or even possible to save all of them. E.g for polyomino-like puzzles it might be nice to keep just every 1000th of the millions of solutions, so as to have a profile of the possible solutions. Here you can specify every how many-th solution you want to keep. A 1 means you keep every solution, a 100 means you keep the first and the 101st and the 201st and so on.

Limits the number of solutions to be saved. There will never be more than the specified number of solutions in the list. When the list is full the program has 2 choices:

Solutions are sorted: The programs throws away the solutions at the end. So low level solutions are removed.
Solutions are unsorted: The program starts to throw away every 2nd solution. So if you started with a drop-value of one and the list is full, the program starts to drop every 2nd solution it finds, and only adds every 2nd solution to the list. But for each added solution it also removes every 2nd solution that was already added to the list. After a while the list contains only every 2nd solution — then the program only adds every 4th solution and removes again every 2nd solution that had been on the list, and so on. This sounds complicated but what is does is ensure you have an nice cross-section of all the solutions, and not just the first or last N found.

Contents Previous Next