Myself, I would start by looking at the Delaney triangulation of a set of points: http://en.wikipedia.org/wiki/Delaunay_triangulation
There are apparently a lot of resources for efficient algorithms to build this here - the Fortune algorithm in O (n log n) for starters.
My intuition tells me that your widest path will be determined by one of the edges on this graph (namely, it will work perpendicular to the edge, and its width will be equal to the length of the edge). How to sort ribs, check candidates and identify the widest path. I like this question and I will continue to think about it. :)
EDIT 1: My intuition does not allow me! A simple equilateral triangle is a counter example: the widest path is shorter than any of the edges of the triangulation. Still thinking ...
EDIT 2: So, we need a black box algorithm that, given the two points in the set, finds the widest path through the set of points, which is limited to these two points. (Visualize two parallel lines passing through two points, rotate them in harmony with each other until there are no points between them). Let me call the runtime of this algorithm "R".
With this algorithm, we can do the following:
- Build a Delaunay triangulation of a set of points: O (n log n)
- Sort edges by width: O (n log n)
- Starting at the largest edge and moving down, use the black box algorithm to determine the widest path that includes these two points; saving it as X: O (nR))
- Stop if the investigated edge is shorter than the width of X.
Steps 1 and 2 are good, but O (nR) is intimidating. If R turns out to be O (n), then already O (n ^ 2) for the whole algorithm. The best part is that for the general set of random points, we expect that we do not have to go through all the edges.
source share