# File lib/graphviz/theory.rb, line 165
    def critical_path
      return nil if range.include?(nil) or @graph.type != "digraph"
      r = [ [0, [1]] ]
      
      critical_path_recursion( distance_matrix, adjancy_matrix, r, [], 0 ).inject( {:distance => 0, :path => []} ) { |r, item|
        (r[:distance] < item[0]) ? { :distance => item[0], :path => item[1] } : r
      }
    end