Board instances
The solver supports “board instances” that can be duplicated and deleted on command. Each board instance has its own set of remaining two side options. A board can also have a specified 2x2 piece on each of the 64 locations.
A board instance is referenced by its number. Evaluators always work on a specified board.
An operator or script can request a board instance to be duplicated, as shown below.
Duplicate board 0 to board 1:
$ ./manage.sh dup_segments 0 1
[INFO] Duplicating processor 0 to 1
[INFO] Creating 23637 records
$Duplicate board 0 to the next free number (this is intended for scripts):
$ ./manage.sh dup_segments_new 0
2
$Drop board 1:
$ ./manage.sh drop_segments 1
[INFO] Deleting 23637 TwoSide records
[INFO] Deleted 0 jobs for processor 1 from work queueDead end
An evaluator can mark a board as a “dead end”, for example when zero options remain for one of the segments. Boards that are a dead end can be cleaned up with the drop segments command.
Example of a dead-end:

The progress shows that the single-location evaluator concluded no 2x2 pieces is available for location 13, given the remaining two-side options around location 13 and the base pieces already taken by the filled locations.
