I am curious whether the following problems has been studied before, but wasn't able to find any papers about it:
Given a planar graph $G$, and two vertices $s$ and $t$, find an $s$-$t$ path $P$ which minimizes the number of distinct faces of $G$ containing vertices of $P$ on their boundaries.
Does anybody know any references?
-
5$\begingroup$ This may be a silly question, but would you need to fix an embedding for this? $\endgroup$G. Bach– G. Bach2013年12月20日 02:14:45 +00:00Commented Dec 20, 2013 at 2:14
-
2$\begingroup$ @G.Bach: from an algorithmic point of view, when we say "given a planar graph", we usually mean "given a combinatorial map for a graph", hence the embedding is indeed fixed. $\endgroup$zarathustra– zarathustra2013年12月20日 08:03:14 +00:00Commented Dec 20, 2013 at 8:03
-
1$\begingroup$ Do you have an application in mind, or just curiosity? $\endgroup$Joe– Joe2013年12月20日 21:13:19 +00:00Commented Dec 20, 2013 at 21:13
-
15$\begingroup$ @zarathustra: No, if we say "given a planar graph" we mean "given a planar graph". If we assume that this graph is equipped with a combinatorial embedding we say, "given a plane graph". Of course, if the graph is 3-connected then the combinatorial embedding is fixed up to a global reflection. $\endgroup$A.Schulz– A.Schulz2014年12月19日 08:11:34 +00:00Commented Dec 19, 2014 at 8:11
-
3$\begingroup$ @zarathustra you need only go to Wikipedia for this distinction. $\endgroup$Ainsley H.– Ainsley H.2015年04月20日 05:19:30 +00:00Commented Apr 20, 2015 at 5:19
1 Answer 1
First off, note that this problem is only well-specified for a given planar embedding (or plane graph) of the planar graph, the planar graph itself is not enough as it doesn't encode which vertices share which incident faces.
Suppose we know and can access the incident faces of any given vertex of the graph in the given embedding, for example by a map $f:V\rightarrow F$ or a bipartite graph or similar suitable data structure.
The problem can then be solved with a slight modification of Dijkstra's algorithm: For every vertex $v$, we have to store a collection of path face sets that are incurred by some $s$-$v$ path. We expand nodes in priority by minimum cardinality of their attached face sets, propagating to the neighbours of the current vertex by taking the set union of each path face set with that neighbor's vertex face set. Terminate once some path face set at vertex $t$ is up for expansion.
For convenient solution extraction, one might want to store additional information in the data structure. E.g. instead of a mere collection of path face sets, store a map from path face sets to the neighbors of the vertex such that each path face set points at a neighbor from which it originated, or even a full path up to that point.
There's some optimizations possible, like keeping only the Pareto optimal path face sets to conserve memory, or doing lazy computation on the expansion step, but it should always return an optimal solution.
-
1$\begingroup$ I doubt this works (in polynomial time). You have to store, for each vertex, the set of visited faces. There are exponentially many possibilities. $\endgroup$Ainsley H.– Ainsley H.2024年04月26日 12:35:41 +00:00Commented Apr 26, 2024 at 12:35
-
$\begingroup$ I don't claim it runs in polynomial time, but it will at least give the correct (i.e. optimal) solution because a path with smaller face set cannot have been skipped. I doubt an optimal algorithm that runs in polynomial time even in the worst case exists for this problem anyways, intuitively because the information about the face sets cannot always be discarded and that implies there are instances which will take at least 2^(number of faces). If you find asymptotic optimizations for this or even an optimal polynomial algorithm feel free to share though. $\endgroup$MarioVX– MarioVX2024年04月27日 11:30:19 +00:00Commented Apr 27, 2024 at 11:30
-
$\begingroup$ If you're only claiming a 2ドル^f$ style algorithm, you might as well just guess the faces and run BFS, which should run in time $O(2^f n)$. $\endgroup$Ainsley H.– Ainsley H.2024年04月29日 07:53:10 +00:00Commented Apr 29, 2024 at 7:53
-
$\begingroup$ I think it should at least be doable in time $O(2^{k \log k} +n)$ where $k$ is the "cost" of the path sought, hence the problem is in FPT. $\endgroup$Ainsley H.– Ainsley H.2024年04月29日 11:19:18 +00:00Commented Apr 29, 2024 at 11:19
-
$\begingroup$ You mean trying face sets by running BFS on a copy of the graph with all vertices deleted that are incident to a face not in that set? Yup, that would work too. However, I strongly suspect the above method will be much faster on average due to planarity. For example, a face set is nonsensical if it disconnected by a gap wider than one edge as it cannot be the minimal cover for a path. All kinds of nonsensical face sets either don't show up at all or would only show up after the optimal solution is already found by the above method, which would then already terminate. $\endgroup$MarioVX– MarioVX2024年04月29日 11:25:09 +00:00Commented Apr 29, 2024 at 11:25
Explore related questions
See similar questions with these tags.