A lógica para resolver esse problema foi primeiramente agrupar os problemas e filtrar os dados para assim criar as imagens.
Para replicar os testes feitos.
Crie um ambiente virtual
Instale o matplotlib e o numpy, que estão listados no arquivo requirements.txt, então pip install -r requirements.txt deve funcionar.
Os dados estão no arquivo data.txt
As imagens geradas dos gráficos, ficam na pasta resultados.
A conclusão de um modo geral é que existem algoritmos que resolvem bem determinados problemas.
Um fato é que todos os apresentados não tiveram custo nem se movimentaram no problema RouteProblem('A', 'A'), pois o estado final e inicial é o mesmo.
Em todos os problemas de RouteProblem é perceptível que os algoritmos não precisam percorrer muitos nós para alcançar o objetivo, mas o custo é bastante alto de um modo geral.
O depth_limited_search é o melhor algoritmo para resolver PourProblem.
Algoritmos varias da busca estrela são melhores para resolver problemas de EightPuzzle.