4,759 research outputs found
Enumeration of Linear Transformation Shift Registers
We consider the problem of counting the number of linear transformation shift
registers (TSRs) of a given order over a finite field. We derive explicit
formulae for the number of irreducible TSRs of order two. An interesting
connection between TSRs and self-reciprocal polynomials is outlined. We use
this connection and our results on TSRs to deduce a theorem of Carlitz on the
number of self-reciprocal irreducible monic polynomials of a given degree over
a finite field.Comment: 16 page
Survey on Combinatorial Register Allocation and Instruction Scheduling
Register allocation (mapping variables to processor registers or memory) and
instruction scheduling (reordering instructions to increase instruction-level
parallelism) are essential tasks for generating efficient assembly code in a
compiler. In the last three decades, combinatorial optimization has emerged as
an alternative to traditional, heuristic algorithms for these two tasks.
Combinatorial optimization approaches can deliver optimal solutions according
to a model, can precisely capture trade-offs between conflicting decisions, and
are more flexible at the expense of increased compilation time.
This paper provides an exhaustive literature review and a classification of
combinatorial optimization approaches to register allocation and instruction
scheduling, with a focus on the techniques that are most applied in this
context: integer programming, constraint programming, partitioned Boolean
quadratic programming, and enumeration. Researchers in compilers and
combinatorial optimization can benefit from identifying developments, trends,
and challenges in the area; compiler practitioners may discern opportunities
and grasp the potential benefit of applying combinatorial optimization
An extensive English language bibliography on graph theory and its applications, supplement 1
Graph theory and its applications - bibliography, supplement
Breaking Instance-Independent Symmetries In Exact Graph Coloring
Code optimization and high level synthesis can be posed as constraint
satisfaction and optimization problems, such as graph coloring used in register
allocation. Graph coloring is also used to model more traditional CSPs relevant
to AI, such as planning, time-tabling and scheduling. Provably optimal
solutions may be desirable for commercial and defense applications.
Additionally, for applications such as register allocation and code
optimization, naturally-occurring instances of graph coloring are often small
and can be solved optimally. A recent wave of improvements in algorithms for
Boolean satisfiability (SAT) and 0-1 Integer Linear Programming (ILP) suggests
generic problem-reduction methods, rather than problem-specific heuristics,
because (1) heuristics may be upset by new constraints, (2) heuristics tend to
ignore structure, and (3) many relevant problems are provably inapproximable.
Problem reductions often lead to highly symmetric SAT instances, and
symmetries are known to slow down SAT solvers. In this work, we compare several
avenues for symmetry breaking, in particular when certain kinds of symmetry are
present in all generated instances. Our focus on reducing CSPs to SAT allows us
to leverage recent dramatic improvement in SAT solvers and automatically
benefit from future progress. We can use a variety of black-box SAT solvers
without modifying their source code because our symmetry-breaking techniques
are static, i.e., we detect symmetries and add symmetry breaking predicates
(SBPs) during pre-processing.
An important result of our work is that among the types of
instance-independent SBPs we studied and their combinations, the simplest and
least complete constructions are the most effective. Our experiments also
clearly indicate that instance-independent symmetries should mostly be
processed together with instance-specific symmetries rather than at the
specification level, contrary to what has been suggested in the literature
Single-qubit unitary gates by graph scattering
We consider the effects of plane-wave states scattering off finite graphs, as
an approach to implementing single-qubit unitary operations within the
continuous-time quantum walk framework of universal quantum computation. Four
semi-infinite tails are attached at arbitrary points of a given graph,
representing the input and output registers of a single qubit. For a range of
momentum eigenstates, we enumerate all of the graphs with up to vertices
for which the scattering implements a single-qubit gate. As increases, the
number of new unitary operations increases exponentially, and for the
majority correspond to rotations about axes distributed roughly uniformly
across the Bloch sphere. Rotations by both rational and irrational multiples of
are found.Comment: 8 pages, 7 figure
- …