我試圖實施Ford-Fulkerson算法來計算流量網絡中的最大流量。該算法的如何查找圖形擴充路徑
一個步驟是找到從起始節點到端節點的路徑(也稱爲水槽)與所有邊緣上的可用容量。
你能提出一個簡單易懂的方法來找到擴充路徑?
更新#1:
我的BFS功能:
template <class T>
vector<Vertex<T> *> Graph<T>::bfs(T source) const {
vector<Vertex<T> *> path;
queue<Vertex<T> *> q;
Vertex<T> * v = getVertex(source);
q.push(v);
v->visited = true;
while (!q.empty()) {
Vertex<T> *v1 = q.front();
q.pop();
path.push_back(v1);
typename vector<Edge<T> >::iterator it = v1->adj.begin();
typename vector<Edge<T> >::iterator ite = v1->adj.end();
for (; it!=ite; it++) {
Vertex<T> *d = it->dest;
if (d->visited == false) {
d->visited = true;
q.push(d);
}
}
}
return path;
}
它,因爲它的返回錯誤結果的錯誤/不完整。我想我正在僞造一些東西。
我已經嘗試使用BFS算法。請看我最新的問題。 – 2011-04-21 19:23:11
@Renato - 見我的編輯:) – 2011-04-21 19:48:00