https://medium.com/@monocosmo77/getting-started-with-approximation-algorithms-part2-artificial-intelligence-48c28fa51daf