Source author record

Corwin Sinnamon

Explore this author’s publications, collaborators and research topics. This catalog record has not been claimed by its author.

ResearcherUnclaimed source record

Catalog footprint

Research overview

4works
2topics
4close collaborators

Published work

4 publications

preprint2022arXiv

A Simpler Proof that Pairing Heaps Take O(1) Amortized Time per Insertion

The pairing heap is a simple "self-adjusting" implementation of a heap (priority queue). Inserting an item into a pairing heap or decreasing the key of an item takes O(1) time worst-case, as does melding two heaps. But deleting an item of minimum key can take time linear in the heap size in the worst case. The paper that introduced the pairing heap proved an O(log n) amortized time bound for each heap operation, where n is the number of items in the heap or heaps involved in the operation, by charging all but O(log n) of the time for each deletion to non-deletion operations, O(log n) to each. Later Iacono found a way to reduce the amortized time per insertion to O(1) and that of meld to zero while preserving the O(log n) amortized time bound for the other update operations. We give a simpler proof of Iacono's result with significantly smaller constant factors. Our analysis uses the natural representation of pairing heaps instead of the conversion to a binary tree used in the original analysis and in Iacono's.

preprint2021arXiv

Fast and Simple Edge-Coloring Algorithms

We develop sequential algorithms for constructing edge-colorings of graphs and multigraphs efficiently and using few colors. Our primary focus is edge-coloring arbitrary simple graphs using d+1d+1 colors, where dd is the largest vertex degree in the graph. Vizing's Theorem states that every simple graph can be edge-colored using d+1d+1 colors. Although some graphs can be edge-colored using only dd colors, it is NP-hard to recognize graphs of this type [Holyer, 1981]. So using d+1d+1 colors is a natural goal. Efficient techniques for (d+1)(d+1)-edge-coloring were developed by Gabow, Nishizeki, Kariv, Leven, and Terada in 1985, and independently by Arjomandi in 1982, leading to algorithms that run in O(∣E∣∣V∣log⁡∣V∣)O(|E| \sqrt{|V| \log |V|}) time. They have remained the fastest known algorithms for this task. We improve the runtime to O(∣E∣∣V∣)O(|E| \sqrt{|V|}) with a small modification and careful analysis. We then develop a randomized version of the algorithm that is much simpler to implement and has the same asymptotic runtime, with very high probability. On the way to these results, we give a simple algorithm for (2d−1)(2d-1)-edge-coloring of multigraphs that runs in O(∣E∣log⁡d)O(|E|\log d) time. Underlying these algorithms is a general edge-coloring strategy which may lend itself to further applications.

preprint2020arXiv

Space-Efficient Data Structures for Lattices

A lattice is a partially-ordered set in which every pair of elements has a unique meet (greatest lower bound) and join (least upper bound). We present new data structures for lattices that are simple, efficient, and nearly optimal in terms of space complexity. Our first data structure can answer partial order queries in constant time and find the meet or join of two elements in O(n3/4)O(n^{3/4}) time, where nn is the number of elements in the lattice. It occupies O(n3/2log⁡n)O(n^{3/2}\log n) bits of space, which is only a Θ(log⁡n)Θ(\log n) factor from the Θ(n3/2)Θ(n^{3/2})-bit lower bound for storing lattices. The preprocessing time is O(n2)O(n^2). This structure admits a simple space-time tradeoff so that, for any c∈[12,1]c \in [\frac{1}{2}, 1], the data structure supports meet and join queries in O(n1−c/2)O(n^{1-c/2}) time, occupies O(n1+clog⁡n)O(n^{1+c}\log n) bits of space, and can be constructed in O(n2+n1+3c/2)O(n^2 + n^{1+3c/2}) time. Our second data structure uses O(n3/2log⁡n)O(n^{3/2}\log n) bits of space and supports meet and join in O(dlog⁡nlog⁡d)O(d \frac{\log n}{\log d}) time, where dd is the maximum degree of any element in the transitive reduction graph of the lattice. This structure is much faster for lattices with low-degree elements. This paper also identifies an error in a long-standing solution to the problem of representing lattices. We discuss the issue with this previous work.

preprint2016arXiv

Complexity of Prefix-Convex Regular Languages

A language LL over an alphabet ΣΣ is prefix-convex if, for any words x,y,z∈Σ∗x,y,z\inΣ^*, whenever xx and xyzxyz are in LL, then so is xyxy. Prefix-convex languages include right-ideal, prefix-closed, and prefix-free languages. We study complexity properties of prefix-convex regular languages. In particular, we find the quotient/state complexity of boolean operations, product (concatenation), star, and reversal, the size of the syntactic semigroup, and the quotient complexity of atoms. For binary operations we use arguments with different alphabets when appropriate; this leads to higher tight upper bounds than those obtained with equal alphabets. We exhibit most complex prefix-convex languages that meet the complexity bounds for all the measures listed above.

Research graph

See the researcher in context

Open full explorer

Inspect adjacent papers, topics, institutions and collaborators without losing the researcher page.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.