Я не уверен, какой алгоритм мне следует использовать для выполнения sh этой задачи. У меня есть график узлов. Некоторые узлы связаны с взвешенной линией, которую необходимо пройти. Однако каждый узел связан с взвешенной двунаправленной линией. Только некоторые из линий должны быть пройдены, в то время как другие только для навигации. Мне нужно найти путь к go по всем этим требуемым линиям (двунаправленный), но только go по линиям один раз. Я знаю, с какого узла мне следует начинать.
Реальная проблема заключается в том, что у меня есть список ребер, которые нужно вырезать из шаблона CN C. Я пытаюсь уменьшить количество времени, которое машина CN C проводит, вырезая этот шаблон. Я знаю, что всегда хочу начинать с начала координат, но мне все равно, где кончается узор, до тех пор, пока вырезаны все маленькие кусочки в узоре. Я знаю, сколько времени потребуется, чтобы отрезать каждый край детали, и машина достаточно точна, чтобы поднять головку и go в любую точку, чтобы начать движение из этой позиции. Мой график не большой, может быть до 100 узлов в общем случае.
Это не похоже на коммивояжера, потому что мне не нужно начинать и заканчивать в одном и том же месте, и мне разрешено (и требуется), чтобы ударить узел несколько раз.
Алгоритм Джикстра не работает, потому что мне нужно пройти через все узлы, чтобы обрезать все края ... Я не просто пытаюсь найти Самый быстрый путь от точки А до B.
Бонус, мне нужно, чтобы это было реализовано в C#, но даже если бы я просто знал, какой алгоритм, я, вероятно, могу запрограммировать его.
Вот Образец картины, которую мне нужно вырезать. Обратите внимание, что есть одна диагональ и одна ar c Я забыл назначить вес, который может быть 50 для диагонали и 75 для ar c: