Если у вас есть узлы, которые ищут маршруты в терминах переходов, то график, вероятно, является правильным подходом. Я не уверен, что понимаю, что вы пытаетесь сделать и какие ограничения существуют, особенно в отношении «Любой узел может быть подключен к любому другому» .., который кажется немного открытым.
Не считая этого, однако; с некоторым графическим представлением:
Кажется, что начинаем с первого узла и делаем там первый поиск глубины и завершаем поиск, если (а) сделанные переходы больше указанного вами числа или (b) мы имеем прибыл во второй узел; это определит первый (не только) путь, соединяющий два узла в (самое большее), что много переходов.
Если он должен быть точно указанными перелетами, завершите любую ветвь поиска, если хмель перешли, и прекратите успешно, если вы также прибыли на второй узел.
0 Я не уверен, что существует хороший алгоритм, но я знаю, что вы не всегда будете иметь правильное решение. Например, если у вас треугольный граф, вы не найдете пути от точки A до точки B, которая занимает 3 прыжка. –
Вы можете, если вам разрешено повторно посещать узлы, например. путешествовать по кругу.Чтобы перейти с 1 на 2, пройдите 1-3-1-2. 3 прыжка, и вы там. – DVK