26,724 research outputs found
Steinitz Theorems for Orthogonal Polyhedra
We define a simple orthogonal polyhedron to be a three-dimensional polyhedron
with the topology of a sphere in which three mutually-perpendicular edges meet
at each vertex. By analogy to Steinitz's theorem characterizing the graphs of
convex polyhedra, we find graph-theoretic characterizations of three classes of
simple orthogonal polyhedra: corner polyhedra, which can be drawn by isometric
projection in the plane with only one hidden vertex, xyz polyhedra, in which
each axis-parallel line through a vertex contains exactly one other vertex, and
arbitrary simple orthogonal polyhedra. In particular, the graphs of xyz
polyhedra are exactly the bipartite cubic polyhedral graphs, and every
bipartite cubic polyhedral graph with a 4-connected dual graph is the graph of
a corner polyhedron. Based on our characterizations we find efficient
algorithms for constructing orthogonal polyhedra from their graphs.Comment: 48 pages, 31 figure
Recursive Algorithms for Distributed Forests of Octrees
The forest-of-octrees approach to parallel adaptive mesh refinement and
coarsening (AMR) has recently been demonstrated in the context of a number of
large-scale PDE-based applications. Although linear octrees, which store only
leaf octants, have an underlying tree structure by definition, it is not often
exploited in previously published mesh-related algorithms. This is because the
branches are not explicitly stored, and because the topological relationships
in meshes, such as the adjacency between cells, introduce dependencies that do
not respect the octree hierarchy. In this work we combine hierarchical and
topological relationships between octree branches to design efficient recursive
algorithms.
We present three important algorithms with recursive implementations. The
first is a parallel search for leaves matching any of a set of multiple search
criteria. The second is a ghost layer construction algorithm that handles
arbitrarily refined octrees that are not covered by previous algorithms, which
require a 2:1 condition between neighboring leaves. The third is a universal
mesh topology iterator. This iterator visits every cell in a domain partition,
as well as every interface (face, edge and corner) between these cells. The
iterator calculates the local topological information for every interface that
it visits, taking into account the nonconforming interfaces that increase the
complexity of describing the local topology. To demonstrate the utility of the
topology iterator, we use it to compute the numbering and encoding of
higher-order nodal basis functions.
We analyze the complexity of the new recursive algorithms theoretically, and
assess their performance, both in terms of single-processor efficiency and in
terms of parallel scalability, demonstrating good weak and strong scaling up to
458k cores of the JUQUEEN supercomputer.Comment: 35 pages, 15 figures, 3 table
Edge-Orders
Canonical orderings and their relatives such as st-numberings have been used
as a key tool in algorithmic graph theory for the last decades. Recently, a
unifying concept behind all these orders has been shown: they can be described
by a graph decomposition into parts that have a prescribed vertex-connectivity.
Despite extensive interest in canonical orderings, no analogue of this
unifying concept is known for edge-connectivity. In this paper, we establish
such a concept named edge-orders and show how to compute (1,1)-edge-orders of
2-edge-connected graphs as well as (2,1)-edge-orders of 3-edge-connected graphs
in linear time, respectively. While the former can be seen as the edge-variants
of st-numberings, the latter are the edge-variants of Mondshein sequences and
non-separating ear decompositions. The methods that we use for obtaining such
edge-orders differ considerably in almost all details from the ones used for
their vertex-counterparts, as different graph-theoretic constructions are used
in the inductive proof and standard reductions from edge- to
vertex-connectivity are bound to fail.
As a first application, we consider the famous Edge-Independent Spanning Tree
Conjecture, which asserts that every k-edge-connected graph contains k rooted
spanning trees that are pairwise edge-independent. We illustrate the impact of
the above edge-orders by deducing algorithms that construct 2- and 3-edge
independent spanning trees of 2- and 3-edge-connected graphs, the latter of
which improves the best known running time from O(n^2) to linear time
Engineering DFS-Based Graph Algorithms
Depth-first search (DFS) is the basis for many efficient graph algorithms. We
introduce general techniques for the efficient implementation of DFS-based
graph algorithms and exemplify them on three algorithms for computing strongly
connected components. The techniques lead to speed-ups by a factor of two to
three compared to the implementations provided by LEDA and BOOST.
We have obtained similar speed-ups for biconnected components algorithms. We
also compare the graph data types of LEDA and BOOST
PReaCH: A Fast Lightweight Reachability Index using Pruning and Contraction Hierarchies
We develop the data structure PReaCH (for Pruned Reachability Contraction
Hierarchies) which supports reachability queries in a directed graph, i.e., it
supports queries that ask whether two nodes in the graph are connected by a
directed path. PReaCH adapts the contraction hierarchy speedup techniques for
shortest path queries to the reachability setting. The resulting approach is
surprisingly simple and guarantees linear space and near linear preprocessing
time. Orthogonally to that, we improve existing pruning techniques for the
search by gathering more information from a single DFS-traversal of the graph.
PReaCH-indices significantly outperform previous data structures with
comparable preprocessing cost. Methods with faster queries need significantly
more preprocessing time in particular for the most difficult instances
- …