ALLAN JAMES EDGAR

Knight's Tour Optimization


Home Hardware Software Venture

One of my favorite problems to tackle when learning languages has always been the knight's tour. The problem addressed is finding one or all ways that a knight can move around the chessboard only touching each position once. There are variations that include landing back on the first position and finding symmetrical paths but the premisce stays roughly the same.

During my first few months as a R&D Engineer at Thales and my C++ skills were brought briskly up to production level. I decided to try and re-attack the problem in an object oriented framework. Then I tried to implement more "exotic" solutions to improve performance. These included multithreading, branch heuristics and even probabilistic methods. It was one of the first programs I made when I was leveling up my Python programming more recently. Still to this day it serves as my "hello world" for new languages. If I can figure out how to use the statefulness and multidimensional data structures neccessary for this family of algorithms, it proves to me that I have at least functional knowledge of the language. Chess based algorithms will always be a particular interest of mine as dealing with the explosive complexity is always a tough but rewarding challenge.