Finding no-self-intersecting path in geometric graphs

994 Views Asked by At

Is there a polynomial algorithm to determine whether there exists no-self-intersecting path between given vertices $s$ and $t$ in a geometric graph $G$?

Geometric graph is an image of a graph on a plane where vertices are represented as points and edges are drawn as straight line segments (possibly intersecting with each other).
A path is called no-self-intersecting if every two edges from the path do not intersect.

For example, there exists no-self-intersecting path between highlighted vertices on the following picture,

enter image description here

but there is no such path on the second picture.

enter image description here

Here is a stronger version of the problem: given a conventional graph $G$, a list of "crossings", where a "crossing" is a pair of edges, and vertices $s$ and $t$, determine whether there is a path between $s$ and $t$ in which no edges form a "crossing". I have a proof it's NP-complete, but I don't know a way to convert an arbitrary "graph with a list of crossings" to corresponding geometric graph, in which edges intersect iff they formed a "crossing" in original graph.

1

There are 1 best solutions below

2
On BEST ANSWER

The second problem is a variant of problem called Path avoiding forbidden pairs (PAFP) (see Computers and intractability by Garey and Johnson, 1979, page 203).

I could not find any mention of the main problem, though, so I prooved it is NP-complete. I uploaded the paper to my Github (sorry, only in Russian).