https://medium.com/coding-odyssey/the-travelling-salesman-problem-tsp-deep-dive-with-code-breakdown-9247e986143c