NRP Solving Algorithm - Proof of Concept
Автор: TurtleLink
Загружено: 2022-07-19
Просмотров: 115
Описание:
Board size: 10x11
Number of moves: 16233 (shortened from 27889 in the simplification stage)
Explanation:
Mostly explained in https://puzzling.stackexchange.com/questio.... A notable improvement is that I use an O(1) 3-cycle, valid for all N at least 5, constructed by conjugating an instance of Cycle with itself.
The rough description of the algorithm is ultimately pretty simple:
We solve one number (or more, if conditions allow for it) at a time by executing an appropriate cycling of three numbers
There exists a sequence of moves that cycles the positions of three squares without modifying any other squares. However, those three squares may not be the squares we want.
To fix this, we use a clever sequence of tricks, that I call the Spiral-Cycle algorithm, that can send the three numbers we're trying to cycle to those three key squares that we know can be cycled. Then we execute the three-cycle, cycling the three numbers we want. Lastly, the Spiral-Cycle sequence totally messed up other numbers, but by just doing the moves executed by this algorithm in reverse, we can "undo the damage", so that in the end the only numbers that end up modified are those that we wanted to three-cycle.
Implementation of the NRP game and solver was an incredible pain due to the sheer number of wild edge cases and technicalities that need to be handled.
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: