We use Dijkstra’s algorithm for buffered routing because it tends to be very fast and efficient, especially for early planning and estimation. I think you’ll appreciate the speed of this approach, as it can quickly find paths in a buffer graph where edges represent buffer-to-buffer paths. This makes it particularly useful when we need to quickly estimate routing paths without getting bogged down by too many details.

## Limitation of Dijkstra’s algorithm

However, one limitation is that Dijkstra-based techniques can’t easily account for all the details that dynamic programming algorithms can, such as varying wire sizing resources from channel to channel. You might find that these details are important in more precise or complex routing scenarios. Despite this, the flexibility in estimating buffer input-to-input delays is a significant advantage.

### Delay Reduction to Cost Ratio (DRCR)

There are two key problems addressed using Dijkstra’s algorithm in this context: finding a minimum-delay path and finding a tradeoff between delay and cost. The first approach focuses on pre-computing minimum-delay wire sizing configurations, while the second deals with the Delay Reduction to Cost Ratio (DRCR) problem. By varying parameters like Dref, we can explore different solutions on the Lower Convex Hull of non-dominated paths, allowing for efficient optimization based on our specific objectives.