У меня следующая проблема.Для заданного графа G = (V, E) ребро стоит cij между всеми ребрами {i, j}.У нас есть несколько источников, скажем, s1, ..., sk и одна цель, скажем, t.Проблема состоит в том, чтобы найти наименьшие совокупные затраты, идущие от s1, ... sk до t, где общее количество посещенных вершин по всем различным путям равно M. (Источники и цель не считаются посещенными вершинами и 0 <=M <= | V | -k + 1, поэтому, если M = 0, все пути идут напрямую от источника к цели.) </p>
Я придумал следующее, но пока не нашел решения.
Проблема схожа с несколькими целями (t1, ..., tk) и одним источником, просто поменяв местами все ребра и сделав цели источниками и источником цели.Я подумал, что это может быть полезно, поскольку, например, Дейкстра вычисляет кратчайший путь от одного источника ко всем остальным вершинам графа.
Только с одной целью и одним источником можно найти кратчайший путь с макс.количество посещенных вершин M по алгоритму Беллмана Форда.Это делается путем итеративного увеличения количества посещаемых вершин.
Проблема нахождения кратчайшего пути от одного источника к одной цели при посещении вершин v1, ..., vk для малых k может быть решена следующим образом: i) вычислить кратчайший путь между всеми вершинами.II) проверить, какой из к!перестановки самые короткие.Я подумал, что это может быть полезно при преобразовании моей скорректированной задачи в 1) в проблему перехода от одного источника к одной «сверхцелевой» с обязательным посещением «старых» целей t1 = v1, ..., tk = vk.
К сожалению, объединение 1, 2 и 3 не дает решения, но может помочь.Кто-нибудь знает решение?Может ли это быть эффективно решено?