Здравствуйте, задача у меня следующая
Имеется N пунктов и имеются пути между ними, другими словами ориентированный граф каждому ребру которого соответствует некий вес, не отрицательный.
Имеется отправной пункт (или вершина) A и множество конечных пунктов (вершин) B = {B1, B2, ..., Bk}
Задача заключается в следующем:
Найти кратчайший путь начиная с пункта (вершины) A до какого-либо одного пункта (вершины) из множества B, но при этом необходимо пройти как минимум M < N (в моем случае M = 4) любых пунктов (вершин) отличных от A и B.
То есть нужно подобрать такие M пунктов из всего множества чтобы пройдя от А через эти пункты до B у меня был кратчайший путь. Или хотя бы какой нибудь более менее оптимальный путь (нужно решить быстро задачу — полный перебор нельзя применить)
Имеются ли алгоритмы для подобных задач, если нет то как можно ее свести к стандартной задаче о коммивояжере?
Спасибо