Queue number: Difference between revisions
imported>Citation bot Added isbn. | Use this bot. Report bugs. | Suggested by Abductive | Category:NP-complete problems | #UCB_Category 175/181 |
(No difference)
|
Latest revision as of 14:33, 12 August 2024

In the mathematical field of graph theory, the queue number of a graph is a graph invariant defined analogously to stack number (book thickness) using first-in first-out (queue) orderings in place of last-in first-out (stack) orderings.
Definition
A queue layout of a given graph is defined by a total ordering of the vertices of the graph together with a partition of the edges into a number of "queues". The set of edges in each queue is required to avoid edges that are properly nested: if Template:Mvar and Template:Mvar are two edges in the same queue, then it should not be possible to have Template:Math in the vertex ordering. The queue number Template:Math of a graph Template:Mvar is the minimum number of queues in a queue layout.[1]
Equivalently, from a queue layout, one could process the edges in a single queue using a queue data structure, by considering the vertices in their given ordering, and when reaching a vertex, dequeueing all edges for which it is the second endpoint followed by enqueueing all edges for which it is the first endpoint. The nesting condition ensures that, when a vertex is reached, all of the edges for which it is the second endpoint are ready to be dequeued.[1] Another equivalent definition of queue layouts involves embeddings of the given graph onto a cylinder, with the vertices placed on a line in the cylinder and with each edge wrapping once around the cylinder. Edges that are assigned to the same queue are not allowed to cross each other, but crossings are allowed between edges that belong to different queues.[2]
Queue layouts were defined by Template:Harvtxt, by analogy to previous work on book embeddings of graphs, which can be defined in the same way using stacks in place of queues. As they observed, these layouts are also related to earlier work on sorting permutations using systems of parallel queues, and may be motivated by applications in VLSI design and in communications management for distributed algorithms.[1]
Graph classes with bounded queue number
Every tree has queue number 1, with a vertex ordering given by a breadth-first traversal.[3] Pseudoforests and grid graphs also have queue number 1.[4] Outerplanar graphs have queue number at most 2; the 3-sun graph (a triangle with each of its edges replaced by a triangle) is an example of an outerplanar graph whose queue number is exactly 2.[5] Series–parallel graphs have queue number at most 3,[6] while the queue number of planar 3-trees is at most 5.[7]
Binary de Bruijn graphs have queue number 2.[8] The d-dimensional hypercube graph has queue number at most .[9] The queue numbers of complete graphs Kn and complete bipartite graphs Ka,b are known exactly: they are and respectively.[10]
Every 1-queue graph is a planar graph, with an "arched leveled" planar embedding in which the vertices are placed on parallel lines (levels) and each edge either connects vertices on two consecutive levels or forms an arch that connects two vertices on the same level by looping around all previous levels. Conversely, every arched leveled planar graph has a 1-queue layout.[11] In 1992, Template:Harvtxt conjectured that every planar graph has bounded queue number. This conjecture was resolved positively in 2019 by Template:Harvtxt who showed that planar graphs and, more generally, every proper minor-closed class of graphs has bounded queue number. In particular, Template:Harvtxt proved that the queue number of planar graphs is at most 49, a bound which was reduced to 42 by Template:Harvtxt.
Using a variation of queue number called the strong queue number, the queue number of a graph product can be bounded by a function of the queue numbers and strong queue numbers of the factors in the product.[12]
Related invariants
Graphs with low queue number are sparse graphs: 1-queue graphs with Template:Mvar vertices have at most Template:Math edges,[13] and more generally graphs with queue number Template:Mvar have at most Template:Math edges.[14] This implies that these graphs also have small chromatic number: in particular 1-queue graphs are 3-colorable, and graphs with queue number Template:Mvar may need at least Template:Math and at most Template:Math colors.[14] In the other direction, a bound on the number of edges implies a much weaker bound on the queue number: graphs with Template:Mvar vertices and Template:Mvar edges have queue number at most Template:Tmath.[15] This bound is close to tight, because for random Template:Mvar-regular graphs the queue number is, with high probability,
Template:Unsolved Graphs with queue number 1 have book thickness at most 2.[17] For any fixed vertex ordering, the product of the book thickness and queue numbers for that ordering is at least as large as the cutwidth of the graph divided by its maximum degree.[18] The book thickness may be much larger than the queue number: ternary Hamming graphs have logarithmic queue number but polynomially-large book thickness[18] and there are graphs with queue number 4 that have arbitrarily large book thickness.[17] Template:Harvtxt conjectured that the queue number is at most a linear function of the book thickness, but no functional bound in this direction is known. It is known that, if all bipartite graphs with 3-page book embeddings have bounded queue number, then all graphs with bounded book thickness have bounded queue number.[19]
Template:Harvtxt asked whether the queue number of a graph could be bounded as a function of its treewidth, and cited an unpublished Ph.D. dissertation of S. V. Pemmaraju as providing evidence that the answer was no: planar 3-trees appeared from this evidence to have unbounded queue number. However, the queue number was subsequently shown to be bounded by a (doubly exponential) function of the treewidth.[20]
Computational complexity
It is NP-complete to determine the queue number of a given graph, or even to test whether this number is 1.[21]
However, if the vertex ordering of a queue layout is given as part of the input, then the optimal number of queues for the layout equals the maximum number of edges in a [[Rainbow coloring|Template:Mvar-rainbow]], a set of Template:Mvar edges each two of which form a nested pair. A partition of edges into queues can be performed by assigning an edge Template:Mvar that is the outer edge of an Template:Mvar-rainbow (and of no larger rainbow) to the Template:Mvarth queue. It is possible to construct an optimal layout in time Template:Math, where Template:Mvar denotes the number of vertices of the input graph and Template:Mvar denotes the number of edges.[22]
Graphs of bounded queue number also have bounded expansion, meaning that their shallow minors are sparse graphs with a ratio of edges to vertices (or equivalently degeneracy or arboricity) that is bounded by a function of the queue number and the depth of the minor. As a consequence, several algorithmic problems including subgraph isomorphism for pattern graphs of bounded size have linear time algorithms for these graphs.[23] More generally, because of their bounded expansion, it is possible to check whether any sentence in the first-order logic of graphs is valid for a given graph of bounded queue number, in linear time.[24]
Application in graph drawing
Although queue layouts do not necessarily produce good two-dimensional graph drawings, they have been used for three-dimensional graph drawing. In particular, a graph class Template:Mvar has bounded queue number if and only if for every Template:Mvar-vertex graph Template:Mvar in Template:Mvar, it is possible to place the vertices of Template:Mvar in a three-dimensional grid of dimensions Template:Math so that no two edges (when drawn straight) cross each other.[25] Thus, for instance, de Bruijn graphs, graphs of bounded treewidth, planar graphs, and proper minor-closed graph families have three-dimensional embeddings of linear volume.[26][27][28]
Notes
References
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
- Template:Citation.
External links
- Stack and Queue Layouts, Problems presented in Summer 2009, Research Experiences for Graduate Students, Douglas B. West
- ↑ 1.0 1.1 1.2 Template:Harvtxt.
- ↑ Template:Harvtxt.
- ↑ Template:Harvtxt, Proposition 4.1.
- ↑ Template:Harvtxt, Propositions 4.2 and 4.3.
- ↑ Template:Harvtxt; Template:Harvtxt.
- ↑ Template:Harvtxt.
- ↑ Template:Harvtxt.
- ↑ Template:Harvtxt, Proposition 4.6.
- ↑ Template:Harvtxt
- ↑ Template:Harvtxt, Propositions 4.7 and 4.8.
- ↑ Template:Harvtxt, Theorem 3.2.
- ↑ Template:Harvtxt.
- ↑ Template:Harvtxt, Theorem 3.6
- ↑ 14.0 14.1 Template:Harvtxt.
- ↑ Template:Harvtxt. A polynomial-time algorithm for finding a layout with close to this many queues is given by Template:Harvtxt. Template:Harvtxt improved the constant factor in this bound to Template:Tmath, where Template:Mathis the base of the natural logarithm.
- ↑ Template:Harvtxt; Template:Harvtxt.
- ↑ 17.0 17.1 Template:Harvtxt
- ↑ 18.0 18.1 Template:Harvtxt.
- ↑ Template:Harvtxt.
- ↑ Template:Harvtxt; Template:Harvtxt. See Template:Harvtxt for a weaker preliminary result, bounding the queue number by the pathwidth or by a combination of treewidth and degree.
- ↑ Template:Harvtxt, Corollary 3.9.
- ↑ Template:Harvtxt, Theorem 2.3.
- ↑ Template:Harvtxt; Template:Harvtxt, pp. 321–327.
- ↑ Template:Harvtxt, Theorem 18.2, p. 401.
- ↑ Template:Harvtxt; Template:Harvtxt; Template:Harvtxt. See Template:Harvtxt for tighter bounds on the grid dimensions for graphs of small queue number.
- ↑ Template:Harvtxt
- ↑ Template:Harvtxt
- ↑ Template:Harvtxt