Я пытаюсь найти способ найти кратчайший путь через продуктовый магазин, посетив список мест (список покупок). Путь должен начинаться с заданной начальной позиции и может заканчиваться на нескольких конечных позициях (имеется несколько счетчиков проверки). Кроме того, у меня есть некоторые предопределенные ограничения на пути, такие как "элемент x в списке покупок должен быть последним, вторым последним или третьим последним элементом на пути". Существует функция, которая вернет true или false для данного пути. Наконец, это нужно вычислить с ограниченной мощностью процессора (на смартфоне) и в течение секунды или около того. Если это невозможно, то приближение к оптимальному пути также нормально.
Возможно ли это? Пока я думаю, что мне нужно начать с вычисления расстояния между каждым элементом в списке, используя что-то вроде A * или Dijkstra's. После этого, следует ли относиться к нему как к проблеме коммивояжера? Потому что в моей проблеме есть заданный старт node, указанные конечные узлы и некоторые ограничения, которые не входят в проблему коммивояжера.