THE MYSTICAL PUZZLE SOLVER (MPS)
within the scope of our lecture I am trying to establish an algorithm which is able to solve a simple three dimensional puzzle independendly.
The puzzle basically consists of a cube, which edge lengthes are distorted in a random manner. thereby each of the six boundary surfaces become unique
Then i dissemble the boundary surfaces and place them somewhere in space randomly, which a random orientation.
The goal of MPS will be, to assemble these pieces back together, without having a clue of how the result should look like.
I will subdivide the task in smaller subtasks which will be solved by so called "agents" or "routines"
some startin rules are:
start with one (random) piece and try to add the others, until the volume is complete again
sophisticated try and errorno use of any kind of "masterplan" - which means, no higher knowledge of the solution or any knowledge of how to get there quick and easy
no central control unit, which coordinates the work of the agents, they should do it themselves
I figured out the following routines or "agents"
pick one single piece from a set of available pieces
check if the chosen piece fits into the existing "construction site" of the puzzle
if it fits, squeeze that bitch in there
if none the available pieces fit, there must be something wrong with the previous assembly. So you have to dissemble the construction side again by a certain rule
to dissemble the failed construction efficiently, the algorithm has to have some kind of knowledge, how that baby got constructed previously (that one is optional so far)
STACK GATE (optional)
if you try a piece, and it doesn't, or if you diseemble the construction site, stack gate should decide, whether to put the piece back to pool or to put into a stack, which is nothing else but a second pile of pieces. this one could substitute the record agent
- I might add some later on-
Record and stack gate are optional, because i am not sure if I'll need them
The video above demonstrates the performance of COMPARE and ASSEMBLE
since there is not yet a routine introduced, which decides from which stack to pick the piece and what to do after ASSEMBLE completed it's work, the script looks a bit funny. there's no "plan" behind the dumpo executers "COMPARE" and "ASSEMBLE"
have fun :D