In the traditional Dijkstra algorithm, the number of search beams (i.e., the number of unvisited nodes that are explored at each step) is set to one and the objective function is the sum of costs along the minimum cost pathway. Here, the number of search beams was set to five to achieve higher parallelization efficiency while the minimum overall barrier for each intermediate was used as the objective function. Here, "overall barrier" refers to the maximum ∆G † along a potentially multi-step pathway. Because a given product might be reached by several different pathways, the "minimum overall barrier" refers to the pathway yielding the product with lowest overall barrier. This is in very close analogy to the minimum cost pathway of Dijkstra's original formulation.