Given a digraph, the following problem, informally, is to find a partition of its vertices into an ordered list of sets, such that the direction of edges connecting vertices in different sets corresponds with the order given to the list of sets.
It is, in a way, finding an underlying hierarchical structure in a graph by grouping its vertices in "small" sets.
Definitions
Let $G$ be a digraph with cardinality $n$ and let $k\in\mathbb{N}$. We say that $S_1,\dots,S_h$ is a hierarchical $k$-partition of $G$ if
- $\{S_i\}$ is a partition of the set of vertices of $G$.
- $|S_i|\leq k$ for every $1\leq i\leq h$.
- For every edge $(v,u)$ (an edge from $v$ to $u$) in $G$ such that $v\in S_i$ and $u\in S_j$, we have $j\leq i$.
The set $S_i$ is called the $i$-th layer in the partition and we say that a hierarchical $k$-partition is minimal if $h$ is minimal.
Example
Let $G$ be a digraph on the vertex set $\{a,b,c,d\}$ with the edge-set $\{(b,a),(b,c),(c,a),(c,b),(d,b),(d,c)\}$.
$\{a\},\{b,c\},\{d\}$ is a minimal hierarchical $2$-partition of $G$. It is, in fact, the only $2$-partition of $G$.
Problems
Let $G$ be a digraph and let $k\in\mathbb{N}$.
- Define (an efficient) algorithm to find a (minimal if possible) hierarchical $k$-partition of $G$ if it exists.
- Find the time complexity of the above problem.
I would, of course, appreciate references to related works or any directions.
Thank you
Initial Thoughts
To solve feasibility, we could contract cycles recursively till the graph is acyclic. Then if the "size" of the maximal contracted node is smaller than $k$ there exists a hierarchical $k$-partition. The minimal partition would follow by finding an appropriate linear extension (?).