Допустим, у меня есть этот график

- всегда полный граф
- один начальный узел - также конечный узел
- взвешенные узлы и вершины
Я хочу найти путь максимально короткий, но с лучшим счетом (суммой точек узлов) - другими словами, путь, который не может быть длиннее определенногопостоянный, но дайте мне лучшее количество очков.И я хочу запускать и останавливаться в одном и том же узле и не хочу проходить через уже посещенные узлы.
Существуют ли алгоритмы, которые могут помочь мне с этой проблемой, или у вас есть идеи, как ее решить??
О, и это не домашняя работа, я просто хочу создать специальный искатель пути.
РЕДАКТИРОВАТЬ
До сих пор я был в состоянии построить работающий алгоритм, который может найти какой-то путь за несколько секунд.Но я не получаю желаемого количества баллов - я набираю только около 85% желаемого результата.И если я изменю параметры алгоритма, то время будет в часах и более ...