Суть ограничения веса заключается в том, что алгоритм не должен использовать пути, превышающие этот предел, даже если это кратчайший путь.
Таким образом, если ограничение веса было 50, на графике ниже алгоритм должен выбрать путь от 0 до 2. https://i.stack.imgur.com/I9SCL.png
Это некоторый код для поиска кратчайшего пути с использованием алгоритма Флойда Уоршалла.
for (unsigned int i = 0; i < m; i++)
{
// Pick all vertices as source one by one
for (unsigned int j = 0; j < m; j++)
{
// Pick all vertices as destination for the
// above picked source
for (unsigned int k = 0; k < m; k++)
{
// If vertex k is on the shortest path from
// i to j, then update the value of dist[i][j]
if (dist[i][k] + dist[k][j] < dist[i][j])
{
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
}
Я почти уверен, что вы не писали этот код. Но в любом случае, если определенные ребра должны быть запрещены из-за «ограничения веса», просто игнорируйте их при установке начальной стоимости ребер.