Changeset 986:e997802b855c in lemon-0.x for src/work/marci/augmenting_flow.h
- Timestamp:
- 11/13/04 13:53:28 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1376
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/marci/augmenting_flow.h
r970 r986 211 211 OutEdgeIt e; 212 212 for(g->first(e,w) ; e!=INVALID; ++e) { 213 Node v=g-> head(e);213 Node v=g->target(e); 214 214 if (!M[v] && (*flow)[e] < (*capacity)[e] ) { 215 215 queue.push(v); … … 220 220 InEdgeIt f; 221 221 for(g->first(f,w) ; f!=INVALID; ++f) { 222 Node v=g-> tail(f);222 Node v=g->source(f); 223 223 if (!M[v] && (*flow)[f] > 0 ) { 224 224 queue.push(v); … … 271 271 ResGWEdge e=bfs; 272 272 if (e!=INVALID && bfs.isBNodeNewlyReached()) { 273 Node v=res_graph. tail(e);274 Node w=res_graph. head(e);273 Node v=res_graph.source(e); 274 Node w=res_graph.target(e); 275 275 pred.set(w, e); 276 276 if (pred[v]!=INVALID) { … … 279 279 free.set(w, res_cap[e]); 280 280 } 281 if (res_graph. head(e)==t) { _augment=true; break; }281 if (res_graph.target(e)==t) { _augment=true; break; } 282 282 } 283 283 … … 291 291 ResGWEdge e=pred[n]; 292 292 res_graph.augment(e, augment_value); 293 n=res_graph. tail(e);293 n=res_graph.source(e); 294 294 } 295 295 } … … 330 330 ResGWEdge e=bfs; 331 331 if (e!=INVALID && bfs.isBNodeNewlyReached()) { 332 Node v=res_graph. tail(e);333 Node w=res_graph. head(e);332 Node v=res_graph.source(e); 333 Node w=res_graph.target(e); 334 334 pred.set(w, e); 335 335 if (pred[v]!=INVALID) { … … 338 338 free.set(w, res_cap[e]); 339 339 } 340 if (res_graph. head(e)==t) { _augment=true; break; }340 if (res_graph.target(e)==t) { _augment=true; break; } 341 341 } 342 342 … … 350 350 ResGWEdge e=pred[n]; 351 351 res_graph.augment(e, augment_value); 352 n=res_graph. tail(e);352 n=res_graph.source(e); 353 353 } 354 354 } … … 396 396 if (e!=INVALID) { 397 397 if (bfs.isBNodeNewlyReached()) { 398 dist.set(res_graph. head(e), dist[res_graph.tail(e)]+1);399 typename MG::Edge f=F.addEdge(res_graph_to_F[res_graph. tail(e)],400 res_graph_to_F[res_graph. head(e)]);398 dist.set(res_graph.target(e), dist[res_graph.source(e)]+1); 399 typename MG::Edge f=F.addEdge(res_graph_to_F[res_graph.source(e)], 400 res_graph_to_F[res_graph.target(e)]); 401 401 //original_edge.update(); 402 402 original_edge.set(f, e); … … 404 404 residual_capacity.set(f, res_cap[e]); 405 405 } else { 406 if (dist[res_graph. head(e)]==(dist[res_graph.tail(e)]+1)) {407 typename MG::Edge f=F.addEdge(res_graph_to_F[res_graph. tail(e)],408 res_graph_to_F[res_graph. head(e)]);406 if (dist[res_graph.target(e)]==(dist[res_graph.source(e)]+1)) { 407 typename MG::Edge f=F.addEdge(res_graph_to_F[res_graph.source(e)], 408 res_graph_to_F[res_graph.target(e)]); 409 409 //original_edge.update(); 410 410 original_edge.set(f, e); … … 434 434 if (typename MG::Edge(dfs)!=INVALID) { 435 435 if (dfs.isBNodeNewlyReached()) { 436 typename MG::Node v=F. tail(dfs);437 typename MG::Node w=F. head(dfs);436 typename MG::Node v=F.source(dfs); 437 typename MG::Node w=F.target(dfs); 438 438 pred.set(w, dfs); 439 439 if (pred[v]!=INVALID) { … … 460 460 typename MG::Edge e=pred[n]; 461 461 res_graph.augment(original_edge[e], augment_value); 462 n=F. tail(e);462 n=F.source(e); 463 463 if (residual_capacity[e]==augment_value) 464 464 F.erase(e); … … 499 499 ResGWEdge e=bfs; 500 500 if (e!=INVALID && bfs.isBNodeNewlyReached()) 501 potential.set(res_graph. head(e), potential[res_graph.tail(e)]+1);501 potential.set(res_graph.target(e), potential[res_graph.source(e)]+1); 502 502 ++bfs; 503 503 } … … 554 554 if (dfs.isBNodeNewlyReached()) { 555 555 556 typename ErasingResGW::Node v=erasing_res_graph. tail(dfs);557 typename ErasingResGW::Node w=erasing_res_graph. head(dfs);556 typename ErasingResGW::Node v=erasing_res_graph.source(dfs); 557 typename ErasingResGW::Node w=erasing_res_graph.target(dfs); 558 558 559 559 pred.set(w, typename ErasingResGW::Edge(dfs)); … … 586 586 typename ErasingResGW::Edge e=pred[n]; 587 587 res_graph.augment(e, augment_value); 588 n=erasing_res_graph. tail(e);588 n=erasing_res_graph.source(e); 589 589 if (res_cap[e]==0) 590 590 erasing_res_graph.erase(e);
Note: See TracChangeset
for help on using the changeset viewer.