If I understand correctly, you want to find the path between some nodes with the maximum edge of the bottleneck. That is, you need a path whose smallest edge is as large as possible. If this is what you want to solve, then there is a very simple modification of the Dijkstra algorithm that can be used to solve the problem.
The idea of ββthe algorithm is to run Dijkstra's algorithm with a twist. Typically, when you run the Dijkstra algorithm, you track the length of the shortest path for each node. In the Dijkstra's modified algorithm, you instead save for each node the maximum possible edge value of the minimum weight along any path that reaches the node. In other words, usually in the Dijkstra's algorithm you determine which edge you want to expand to, finding the edge that maximizes
d (s, u) + l (u, v)
Where s is the beginning of a node, u is some node that you have studied so far, and (u, v) is an edge. In the modified Dijkstra, you will instead find a minimizing rib
min (bottleneck (s, u), l (u, v))
That is, you are considering the edge of the bottleneck on the way from the source of the node to any node that you have seen so far, and think about which way the bottleneck will be formed if you leave this node and go to some other place. This is the best bottleneck path to a node target, and you can repeat this process.
This version of Dijkstra's algorithm also runs in O (m + n log n) time using a good priority queue. For more information, review these lecture slides , which provide a brief description of the algorithm.
Interestingly, this is a well-known problem used as a subroutine in many algorithms. For example, one of the earliest polynomial time algorithms uses this algorithm as a subroutine to solve the maximum flow problem. Learn more about how these notes are lectures .
Hope this helps! And if I misinterpreted your question, let me know so that I can delete / update this answer.