lemon/preflow.h
changeset 2475 1e9cc7b2eabc
parent 2391 14a343be7a5a
child 2514 57143c09dc20
equal deleted inserted replaced
21:55f05dcd1801 22:11c5b26a5ef0
   208     ///maximum flow is not yet obtained. So after calling this method
   208     ///maximum flow is not yet obtained. So after calling this method
   209     ///\ref flowValue returns the value of a maximum flow and \ref
   209     ///\ref flowValue returns the value of a maximum flow and \ref
   210     ///minCut returns a minimum cut.     
   210     ///minCut returns a minimum cut.     
   211     ///\warning \ref minMinCut and \ref maxMinCut do not give minimum
   211     ///\warning \ref minMinCut and \ref maxMinCut do not give minimum
   212     ///value cuts unless calling \ref phase2.  
   212     ///value cuts unless calling \ref phase2.  
       
   213     ///\warning A real flow map (i.e. not \ref lemon::NullMap "NullMap")
       
   214     ///is needed for this phase.
   213     ///\pre The starting flow must be 
   215     ///\pre The starting flow must be 
   214     ///- a constant zero flow if \c fp is \c ZERO_FLOW, 
   216     ///- a constant zero flow if \c fp is \c ZERO_FLOW, 
   215     ///- an arbitary flow if \c fp is \c GEN_FLOW, 
   217     ///- an arbitary flow if \c fp is \c GEN_FLOW, 
   216     ///- an arbitary preflow if \c fp is \c PRE_FLOW, 
   218     ///- an arbitary preflow if \c fp is \c PRE_FLOW, 
   217     ///- any map if \c fp is NO_FLOW.
   219     ///- any map if \c fp is NO_FLOW.
   230     ///maximum flow is not yet obtained. So after calling this method
   232     ///maximum flow is not yet obtained. So after calling this method
   231     ///\ref flowValue returns the value of a maximum flow and \ref
   233     ///\ref flowValue returns the value of a maximum flow and \ref
   232     ///minCut returns a minimum cut.
   234     ///minCut returns a minimum cut.
   233     ///\warning \ref minMinCut() and \ref maxMinCut() do not
   235     ///\warning \ref minMinCut() and \ref maxMinCut() do not
   234     ///give minimum value cuts unless calling \ref phase2().
   236     ///give minimum value cuts unless calling \ref phase2().
       
   237     ///\warning A real flow map (i.e. not \ref lemon::NullMap "NullMap")
       
   238     ///is needed for this phase.
   235     void phase1()
   239     void phase1()
   236     {
   240     {
   237       int heur0=int(H0*_node_num);  //time while running 'bound decrease'
   241       int heur0=int(H0*_node_num);  //time while running 'bound decrease'
   238       int heur1=int(H1*_node_num);  //time while running 'highest label'
   242       int heur1=int(H1*_node_num);  //time while running 'highest label'
   239       int heur=heur1;         //starting time interval (#of relabels)
   243       int heur=heur1;         //starting time interval (#of relabels)