Contents Previous Next

Solving Puzzles

Next to the solver options are some buttons to direct the solving process. Problems can be solved either in an automatic way or (manually) step-by-step.

Automatic Solving

An automatic search will proceed until all solutions, i.e. assemblies and disassemblies (when requested), are found. To begin an automated search, click the Start button. Typically the solving process consists of a preparation phase followed by several cycles of assembling and disassembling. The latter is of course omitted when the Solve Disassembly option is left unchecked.

The automatic solving process can be interrupted by clicking Stop, but often the solver needs to finish some tasks first before it can actually halt (→ Solver Information). Any interrupted solving process can be saved to the puzzle file and be resumed in another session with BURRTOOLS. In fact, on loading such a partially solved puzzle BURRTOOLS will inform you about the possibility to continue with the search for solutions.

When the solver is interrupted, the shapes (→ Chapter Shapes) and/or the problems (→ Chapter Puzzles) can be edited. If no editing whatsoever of these has been done, the solving process can be simply resumed (Continue ), otherwise you need to start all over again. But keep in mind that the saving of the internal state of the solver is very version dependent. So it is likely that a new version of BURRTOOLS cannot resume solving a puzzle saved with an older version. So it is good practice to finish solving jobs with one version of BURRTOOLS before updating to the next.

When the solver is running it provides a lot of information about what it is doing and an estimate of the time it will need to finish the search. All this information is presented on six lines immediately below the solver control buttons (Figure Solver Information). Keep in mind that the estimated time to finish can be off by a very big amount. It happens often that the figure starts with ages and millennia and then the solving is finished within a few seconds, so be careful not to give up too soon.


Figure: The solver information

Solver Progress Information

The first line of the solver information is a progress bar indicating the percentage of work it has done. The fifth (Time Used) and the sixth (Time Left) line respectively show the time already spent on the search and an estimate of the time still needed to finish the solving process. Note that these are very rough estimates since these are based on the possible placements of the pieces already tested and still to test. However, the possible placements to be tested are constantly fluctuating as they are determined by the positions of previously placed pieces (→ [Browsing Placements BrowsingPlacements]).

Solver State Information

Probably most important is the Activity and result information provided by the solver. The Activity line tells you not only what the solver is currently doing, but also whether the solver can be interrupted or not. The following is an overview of the activities of the solver:

nothing
This indicates that the solver is ready to be started (provided a valid problem is selected) and that no information is available about earlier attempts to solve the selected problem.

prepare piece n
The solver is creating the internal data structure for the assembler. This structure is more or less a listing of all the possible places that all the pieces can go.

optimize piece n
In this second stage of the preparation, the placements for each piece are tested for plausibility. Some placements are just nonsense in that they result in unfillable holes or prevent the placement of other pieces. These placements are removed from the data structure (→ Browsing Placements).

assemble
The program is currently searching for assemblies.

disassemble
An assembly was found and is now being tested for disasembability.

pause
A search was started and interrupted.

finished
The search has been completed, all the solutions found, ordered by the set up sorting criterion, can be inspected (→ Inspecting Results).

please wait
The user wanted to stop the search, but the program still has to finish what it is doing right now. Only the assembler is interruptible. The preparation and optimisation stages need to be finished. The disassembly search also has to be finish before halting.

error
Something is wrong with the puzzle and an error message, providing more specific information on the error, is usually displayed.

Finally, the solver gives information about the Assemblies found thus far (i.e. assemblies for which the pieces do not overlap in 3-D space) and Solutions or disassemblies (i.e. assemblies that also can be constructed in real life using the particular pieces of the puzzle). Note that the Solutions are reported (and in fact tested) only if the Solve Disassembly option is enabled.

Manually Solving

Besides the automated search, BURRTOOLS allows you to run the solver step-by-step. Note that this feature is still under construction and that it has a lot of shortcomings. For instance, it won't add the solutions it finds to the list or update the solver information. So it certainly needs a lot of improvements in a future release of the program. For the time being it is useful only to check the assembly process when something went wrong with the automated search.

It is also very useful to check, if your colour constraints are correctly defined as you can quickly see what placements are checked by the program. So you quickly see when the program tries invalid placements for some or all pieces of your puzzle. The same can be done in the placement browser.

A manual search needs the initial preparation phase as well as an automatic search. This can be accomplished by clicking Prepare . The solver will halt after this initial phase and the subsequent steps of the assembler can be seen in the 3-D viewer by clicking the Step button.


Contents Previous Next