Мои математические классы далеко позади, и я в настоящее время изо всех сил стараюсь найти достойное решение проблемы, с которой я сталкиваюсь: у меня есть дерево, в котором узлы являются действиями, и «взвешены» в соответствии с несколькими критериями: стоимость указанного действия, время, которое потребуется, необходимые ресурсы, нарушение и т. д.Найти минимальный путь в дереве с многозначными узлами
И я хочу найти в этом дереве путь, который минимизирует оба стоимость И время например, или нарушение И стоимость И время и т. д. Моя проблема заключается в том, что я понятия не имею, как это сделать, за исключением того, что придумывает глобальную функцию стоимости F (стоимость, время, ресурсы. ..) и применить обычный алгоритм обхода дерева, используя результат из F (...) в качестве моего единственного веса. Но тогда, как мне придумать F? Что-то вроде "F (стоимость, время, ресурсы) = а * + стоимость б * время + C * ресурсы" чувствует себя очень "непрофессионально" ...
Edit:
Я хотел бы избежать слова «суммирующий «поскольку я не был уверен, что это действительно способ, но по существу это то, что я делаю: вычисление общей стоимости для каждого« пути »или« ветви », идущего от этого верхнего узла, до одного из листьев и выбора «пути» или «ветви», что минимизирует стоимость. Проблема состоит в том, что каждый узел имеет вес, основанный на времени, необходимом, на финансовых затратах, на использовании ресурсов и т. Д.
Таким образом, кажется неизбежным необходимость придумать формулу, как говорит Стефан, что уменьшит все эти параметры достигают одной глобальной стоимости на каждый узел, который я могу затем суммировать по узлам, когда я перемещаюсь по дереву, и выбираю путь, который минимизирует общую стоимость.
Так что, я думаю, мой вопрос на самом деле есть, есть ли там методология для выбора этой функции?
Благодарим за ответы и комментарии. Теперь это становится немного более ясным в моей голове.
Это поможет, если вы можете привести конкретный пример ваших данных. Обычно я ассоциирую «найти путь» с графиком, а не с деревом. –
И если я использую слово «ветвь» вместо «пути», это имеет смысл? – Florian
Вы суммируете затраты/время по узлам, когда вы едете по дереву? Или вы просто ищете конечный (листовой) узел с минимальными затратами/временем? Если в последнем случае существует какая-либо связь между стоимостью/временем родительского узла и его дочерними элементами? –