Попытка найти самый быстрый способ навигации по множеству ребер на графике - PullRequest
4 голосов
/ 14 апреля 2020

Я не уверен, какой алгоритм мне следует использовать для выполнения sh этой задачи. У меня есть график узлов. Некоторые узлы связаны с взвешенной линией, которую необходимо пройти. Однако каждый узел связан с взвешенной двунаправленной линией. Только некоторые из линий должны быть пройдены, в то время как другие только для навигации. Мне нужно найти путь к go по всем этим требуемым линиям (двунаправленный), но только go по линиям один раз. Я знаю, с какого узла мне следует начинать.

Реальная проблема заключается в том, что у меня есть список ребер, которые нужно вырезать из шаблона CN C. Я пытаюсь уменьшить количество времени, которое машина CN C проводит, вырезая этот шаблон. Я знаю, что всегда хочу начинать с начала координат, но мне все равно, где кончается узор, до тех пор, пока вырезаны все маленькие кусочки в узоре. Я знаю, сколько времени потребуется, чтобы отрезать каждый край детали, и машина достаточно точна, чтобы поднять головку и go в любую точку, чтобы начать движение из этой позиции. Мой график не большой, может быть до 100 узлов в общем случае.

Это не похоже на коммивояжера, потому что мне не нужно начинать и заканчивать в одном и том же месте, и мне разрешено (и требуется), чтобы ударить узел несколько раз.

Алгоритм Джикстра не работает, потому что мне нужно пройти через все узлы, чтобы обрезать все края ... Я не просто пытаюсь найти Самый быстрый путь от точки А до B.

Бонус, мне нужно, чтобы это было реализовано в C#, но даже если бы я просто знал, какой алгоритм, я, вероятно, могу запрограммировать его.

Вот Образец картины, которую мне нужно вырезать. Обратите внимание, что есть одна диагональ и одна ar c Я забыл назначить вес, который может быть 50 для диагонали и 75 для ar c: Here is a sample picture of a pattern I need to cut out

Ответы [ 2 ]

3 голосов
/ 14 апреля 2020

Я полагаю, что это можно решить в случае проблемы с проверкой маршрута.

https://en.wikipedia.org/wiki/Route_inspection_problem

Вам необходимо убедиться, что существует эйлерова схема для график, который может быть достигнут благодаря удаче или соединению нечетных вершин.

1 голос
/ 14 апреля 2020

Я думаю, что это все еще сводится к проблеме коммивояжера. TSP не становится легче, если удалить правило возврата к источнику или разрешить многократные посещения .

Таким образом, не будет никакого полономного решения, и ваша лучшая ставка, вероятно, равна * 1005. * примерное решение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...