Hi,

 I try to use  "edmunds_karp_max_flow" and "push_relabel_max_flow" routines in my applicaton. Both routines receives the same set of parameters (g, src, sink, cap, res, rev) which is similar to the examples in  edmunds-karp-eg.cpp and push-relabel-eg.cpp.  The edmunds_karp_max_flow routine run through and output correct result. But  the push_relabel_max_flow ran into an error as follows:

Unhandled exception in test.exe: 0xC00000005: Access violation.

VS debugger points to the eigth line

     FlowValue maximum_preflow()
      {
        work_since_last_update = 0;

        while (max_active >= min_active) { // "main" loop

          Layer& layer = layers[max_active];
---->  list_iterator u_iter = layer.active_vertices.begin();

          if (u_iter == layer.active_vertices.end())
            --max_active;
          else {
            vertex_descriptor u = *u_iter;
            remove_from_active_list(u);
           
            discharge(u);

            if (work_since_last_update * global_update_frequency() > nm) {
              global_distance_update();
              work_since_last_update = 0;
            }
          }
        } // while (max_active >= min_active)

        return excess_flow[sink];
      } // maximum_preflow()



Can anyone give me some advice on this. Thanks.


Yihung Chen