Table of Contents
Fetching ...

On the Complexity of Fundamental Problems for DAG-Compressed Graphs

Florian Chudigiewitsch, Till Tantau, Felix Winkler

Abstract

A DAG compression of a (typically dense) graph is a simple data structure that stores how vertex clusters are connected, where the clusters are described indirectly as sets of reachable sinks in a directed acyclic graph (DAG). They generalize tree compressions, where the clusters form a tree-like hierarchy, and we give the first proof that DAG compressions can achieve better compressions than tree compressions. Our interest in DAG compression stems from the fact that several simple standard algorithms, like breadth-first search on graphs, can be implemented so that they work directly on the compressed rather than on the original graph and so that, crucially, the runtime is relative to the (typically small) size of the compressed graph. We add another entry to the list of algorithms where this is possible, by showing that Kruskal's algorithm for computing minimum spanning trees can be adapted to work directly on DAG compressions. On the negative side, we answer the central open problem from previous work, namely how hard it is to compute a minimum-size DAG compression for a given graph: This is NP-hard; and this is even the case for the dynamic setting, where we must update the DAG compression optimally when a single edge is added or deleted in the input graph.

On the Complexity of Fundamental Problems for DAG-Compressed Graphs

Abstract

A DAG compression of a (typically dense) graph is a simple data structure that stores how vertex clusters are connected, where the clusters are described indirectly as sets of reachable sinks in a directed acyclic graph (DAG). They generalize tree compressions, where the clusters form a tree-like hierarchy, and we give the first proof that DAG compressions can achieve better compressions than tree compressions. Our interest in DAG compression stems from the fact that several simple standard algorithms, like breadth-first search on graphs, can be implemented so that they work directly on the compressed rather than on the original graph and so that, crucially, the runtime is relative to the (typically small) size of the compressed graph. We add another entry to the list of algorithms where this is possible, by showing that Kruskal's algorithm for computing minimum spanning trees can be adapted to work directly on DAG compressions. On the negative side, we answer the central open problem from previous work, namely how hard it is to compute a minimum-size DAG compression for a given graph: This is NP-hard; and this is even the case for the dynamic setting, where we must update the DAG compression optimally when a single edge is added or deleted in the input graph.
Paper Structure (1 section, 1 figure)

This paper contains 1 section, 1 figure.

Table of Contents

  1. Introduction

Figures (1)

  • Figure 1: A to-be-compressed graph $\bm{G}$ with vertex set $\bm{V} = \{\bm{1},\dots,\bm{8}\}$ and a DAG compression of $\bm{G}$. The compression adds new cluster vertices to $\bm{V}$, resulting in $V = \bm{V} \cup \{a,\dots, f\}$. The cluster DAG has the arc set $A$ shown in gray: For instance, the arcs $(a, \bm{1})$ and $(b, a)$ lie in $A$. For each $v \in V$, the set $\bm{C}(v)$ is the set of sinks reachable in $C$ from $v$, so $\bm{C}(a) = \{\bm{1},\bm{2}\}$ and $\bm{C}(b) = \{\bm{1}, \bm{2}, \bm{3}\}$ and $\bm{C}(\bm{3}) = \{\bm{3}\}$. The compression edges in $E$ are depicted using double lines. A compression edge like $(a,c) \in E$ represents the fact that in $\bm{G}$ there are edges from each vertex in $\bm{C}(a) = \{\bm{1},\bm{2}\}$ to each vertex in $\bm{C}(c) = \{\bm{3}, \bm{4},\bm{5}\}$; and the compression loop $(b,b) \in E$ implies that $\bm{C}(b) = \{\bm{1}, \bm{2}, \bm{3}\}$ is a clique in $\bm{G}$. In total, $\bm{E} = \bigcup_{(u,v) \in E} \bm{C}(u) \times \bm{C}(v)$.