Я предполагаю, что вы хотите обнаружить простой цикл с весом, превышающим некоторый порог (в противном случае вы можете повторить любой положительный вес> 1 цикла достаточно раз, чтобы превысить любой положительный порог).
К сожалению, эта проблема NP-Hard .
Простое сокращение от задачи о гамильтоновом цикле :
Учитывая экземпляр G=(V,E)
изЗадача о гамильтоновом цикле, оставьте тот же граф G
с w(e) = 2
для любого ребра и отправьте его в задачу с порогом 2^|V|-1
.
Если существует какой-либо цикл с весом, превышающим ребра 2^|V|-1, then it has more than
| V | -1`, то этот цикл является гамильтоновым, и если существует гамильтоновый цикл, алгоритм обнаружит, что существует цикл с весом 2 *2 * ... * 2> 2 ^ | V | -1.
Поскольку гамильтонов цикл является Np-полным, и мы нашли полиномиальную редукцию от него к этой задаче, эта задача является NP-сложной, и тамЭто неизвестное полиномиальное решение.
tl; dr: использование Bellman Ford для решения этой проблемы далеко не тривиально и, если возможно, потребует изменения графа, чтобы он был экспоненциальным по размеруисходный график (при условии P! = NP)