ichcubegerne
Veteran
Hello,
as some of you might have already heard somewhere, I am currently developing a megaminx solver as a project at university. Since my solver has now finally come to a point of producing valuable results, I thought, I would start documenting a bit of what is going on in this thread.
Current state: The solver utilizes basic blockbuilding to solve up to Last 2 Faces within an upper bound of 89 moves. For this purpose I generated lookuptables for a fixed order of blocks, so it can solve each substep optimally. It currently generates random states to solve for testing purposes.
I will now generate an EO table, aswell as a 2 sided search for a 2gen finish. That means that I will generate a lookuptable for a depth of 13 and then check if a given state is in that table and if its not, it will generate moves from that state to eventually connect to the lookuptable. Hence the second step has to be generated for each solve respectively. Since gods number for 2gen on megaminx is believed to be 26, this will generate up to 67 milion states on both sides. Since worst cases are really rare, it will be a lot faster to solve actual states with tho. (I will implement some kind of exception that can catch if the search goes beyond 13, cause then the 26 has been disproven. However even if a 27 mover exists, it seems unlikely that one is generated by chance).
At that point (Probably achieved tomorrow, since I like procrastinating learning for my exam), I have a functioning solver, I might prove an upper bound by splitting the 2gen phase into 2 substeps, just so there is an actual proven upper bound, but such a bound would be pretty bad anyway, so it seems hardly worth it. Either way, that would conclude the project. I will post the statistics on the substeps here, when thats all done.
HOWEVER I only consider this a starting point for future development. As you might have already realized, solving EO is basically a total waste of moves and we dont even have a (good) upper bound on gods number, since the 26 is not proven yet, just to name a few examples. There is A LOT left to do and I currently hope that my Professor considers this a worthy topic for a masters thesis. Either way, I will continue developing this, but if it becomes my thesis topic, development will be a lot faster.
Lastly I wanna give a huge thanks to Mallard-Creator Jonas Balsfulland for helping me out a lot with implementation advice.
Since I havent programmed in years, this was very much appreciated and helped accelerate the early development a lot.
-Alexander Botz
as some of you might have already heard somewhere, I am currently developing a megaminx solver as a project at university. Since my solver has now finally come to a point of producing valuable results, I thought, I would start documenting a bit of what is going on in this thread.
Current state: The solver utilizes basic blockbuilding to solve up to Last 2 Faces within an upper bound of 89 moves. For this purpose I generated lookuptables for a fixed order of blocks, so it can solve each substep optimally. It currently generates random states to solve for testing purposes.
I will now generate an EO table, aswell as a 2 sided search for a 2gen finish. That means that I will generate a lookuptable for a depth of 13 and then check if a given state is in that table and if its not, it will generate moves from that state to eventually connect to the lookuptable. Hence the second step has to be generated for each solve respectively. Since gods number for 2gen on megaminx is believed to be 26, this will generate up to 67 milion states on both sides. Since worst cases are really rare, it will be a lot faster to solve actual states with tho. (I will implement some kind of exception that can catch if the search goes beyond 13, cause then the 26 has been disproven. However even if a 27 mover exists, it seems unlikely that one is generated by chance).
At that point (Probably achieved tomorrow, since I like procrastinating learning for my exam), I have a functioning solver, I might prove an upper bound by splitting the 2gen phase into 2 substeps, just so there is an actual proven upper bound, but such a bound would be pretty bad anyway, so it seems hardly worth it. Either way, that would conclude the project. I will post the statistics on the substeps here, when thats all done.
HOWEVER I only consider this a starting point for future development. As you might have already realized, solving EO is basically a total waste of moves and we dont even have a (good) upper bound on gods number, since the 26 is not proven yet, just to name a few examples. There is A LOT left to do and I currently hope that my Professor considers this a worthy topic for a masters thesis. Either way, I will continue developing this, but if it becomes my thesis topic, development will be a lot faster.
Lastly I wanna give a huge thanks to Mallard-Creator Jonas Balsfulland for helping me out a lot with implementation advice.
Since I havent programmed in years, this was very much appreciated and helped accelerate the early development a lot.
-Alexander Botz