lemon/cycle_canceling.h
changeset 1240 ee9bac10f58e
parent 1179 f6f6896a4724
child 1241 879fcb781086
child 1296 330264b171cf
equal deleted inserted replaced
13:8bd804b49879 16:c2ebb476b90a
   668       for (int i = 0; i != _root; ++i) {
   668       for (int i = 0; i != _root; ++i) {
   669         _sum_supply += _supply[i];
   669         _sum_supply += _supply[i];
   670       }
   670       }
   671       if (_sum_supply > 0) return INFEASIBLE;
   671       if (_sum_supply > 0) return INFEASIBLE;
   672 
   672 
       
   673       // Check lower and upper bounds
       
   674       LEMON_DEBUG(checkBoundMaps(),
       
   675           "Upper bounds must be greater or equal to the lower bounds");
       
   676 
   673 
   677 
   674       // Initialize vectors
   678       // Initialize vectors
   675       for (int i = 0; i != _res_node_num; ++i) {
   679       for (int i = 0; i != _res_node_num; ++i) {
   676         _pi[i] = 0;
   680         _pi[i] = 0;
   677       }
   681       }
   776           _cost[ra] = 0;
   780           _cost[ra] = 0;
   777         }
   781         }
   778       }
   782       }
   779 
   783 
   780       return OPTIMAL;
   784       return OPTIMAL;
       
   785     }
       
   786     
       
   787     // Check if the upper bound is greater or equal to the lower bound
       
   788     // on each arc.
       
   789     bool checkBoundMaps() {
       
   790       for (int j = 0; j != _res_arc_num; ++j) {
       
   791         if (_upper[j] < _lower[j]) return false;
       
   792       }
       
   793       return true;
   781     }
   794     }
   782 
   795 
   783     // Build a StaticDigraph structure containing the current
   796     // Build a StaticDigraph structure containing the current
   784     // residual network
   797     // residual network
   785     void buildResidualNetwork() {
   798     void buildResidualNetwork() {