K кратчайших путей для указанного c ориентированного графа - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу найти K «кратчайших» путей или, точнее, K путей с минимальными затратами, в очень конкретном графике c, как показано на рисунке. Его функции:

  • Узлы задаются уровнем lev от 1 до d, с e[lev] узлами по уровню. Добавлены узел источника [0,1] и узел назначения [d+1,1].

  • От уровня lev-1 до уровня lev существуют все возможные ребра, и стоимость ребра зависит только от конечного узла [lev,j], поэтому его можно обозначить c[lev,j]. Узлы на уровне упорядочены по возрастанию стоимости. Стоимость c[d+1,1] ребра с конечным узлом [d+1,1] равна нулю.

  • Затраты неотрицательны.

enter image description here

Требуемые пути от источника [0,1] к месту назначения [d+1,1]. Путь с минимальной стоимостью, очевидно, является самым левым: [0,1] -> [1, 1] -> ... -> [d + 1, 1].

На практике типичное значение для d равно 10, а e[lev] составляет около 100 для lev между 1 и d. Максимальный сценарий будет для d=20. Число K требуемых путей составляет несколько сотен.

В первую очередь меня интересует выбор подходящего алгоритма: иены, Эппштейна, Като Хофмана, ... Тогда в идеале я хотел бы использовать существующую реализацию , Конечное использование будет внутри R, так что C, C ++ или Fortran реализации будут работать.

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