Я пытаюсь решить модифицированную версию TSP. В моей версии допускается многократное посещение города, если путь самый короткий, а также обязательно посещать только подмножество городов, например, вы можете go через другие города, чтобы посетить все подмножество. города, если путь короче, но если нет, другие города можно игнорировать. NetworkX имеет ок. решение для традиционного TSP с использованием dwave_networkx.algorithms.tsp.traveling_salesperson
, но у меня есть проблемы с решением этого. Наивный подход может заключаться в том, чтобы найти все возможные комбинации подмножеств городов и проверить, какая из них имеет наименьшую общую длину пути, но это решение будет иметь сложность ^ 2 для попытки каждой комбинации, плюс сложность для поиска кратчайшего пути для каждых двух городов. Итак, что я должен использовать для решения этой проблемы с помощью NetworkX.