159,966 research outputs found
Second-Order Value Numbering
We present second-order value numbering, a new optimization method for suppressing redundancy, in a version tailored to the application for optimizing the decision procedure of jMosel, a verification tool set for monadic second-order logic on strings (M2L(Str)). The method extends the well-known concept of value
numbering to consider not merely values, but semantics transformers that can be efficiently pre-computed and help to avoid redundancy at the 2nd-order level. Since decision procedures for M2L are non-elementary, an optimization method like this can have a great impact on the execution time, even though our decision procedure comprises the analysis and optimization time for second-order value numbering.
This is illustrated considering a parametric family of hardware circuits, where we observed a performance gain by a factor of 3. This result is surprising, as the design of these circuits exploits already structural similarity
Classification and Numbering of Dental Radiographs for an Automated Human Identification System
 Dental based human identification is commonly used in forensic. In a case of large scale investigation, manual identification needs a large amount of time. In this paper, we developed an automated human identification system based on dental radiographs. The system developed has two main stages. The first stage is to arrange a database consisting of labeled dental radiographs. The second stage is the searching process in the database in order to retrieve the identification result. Both stages use a number of image processing techniques, classification methods, and a numbering system in order to generate dental radiograph’s features and patterns. The first technique is preprocessing which includes image enhancement and binarization, single tooth extraction, and feature extraction. Next, we performed dental classification process which aims to classify the extracted tooth into molar or premolar using the binary support vector machine method. After that, a numbering process is executed in accordance with molar and premolar pattern obtained in the previous process. Our experiments using 16 dental radiographs that consist of 6 bitewing radiographs and 10 panoramic radiographs, 119 teeth objects in total, has shown good performance of classification. The accuracy value of dental pattern classification and dental numbering system are 91.6 % and 81.5% respectively
Precise Null Pointer Analysis Through Global Value Numbering
Precise analysis of pointer information plays an important role in many
static analysis techniques and tools today. The precision, however, must be
balanced against the scalability of the analysis. This paper focusses on
improving the precision of standard context and flow insensitive alias analysis
algorithms at a low scalability cost. In particular, we present a
semantics-preserving program transformation that drastically improves the
precision of existing analyses when deciding if a pointer can alias NULL. Our
program transformation is based on Global Value Numbering, a scheme inspired
from compiler optimizations literature. It allows even a flow-insensitive
analysis to make use of branch conditions such as checking if a pointer is NULL
and gain precision. We perform experiments on real-world code to measure the
overhead in performing the transformation and the improvement in the precision
of the analysis. We show that the precision improves from 86.56% to 98.05%,
while the overhead is insignificant.Comment: 17 pages, 1 section in Appendi
On approximate decidability of minimal programs
An index in a numbering of partial-recursive functions is called minimal
if every lesser index computes a different function from . Since the 1960's
it has been known that, in any reasonable programming language, no effective
procedure determines whether or not a given index is minimal. We investigate
whether the task of determining minimal indices can be solved in an approximate
sense. Our first question, regarding the set of minimal indices, is whether
there exists an algorithm which can correctly label 1 out of indices as
either minimal or non-minimal. Our second question, regarding the function
which computes minimal indices, is whether one can compute a short list of
candidate indices which includes a minimal index for a given program. We give
some negative results and leave the possibility of positive results as open
questions
SAWdoubler: a program for counting self-avoiding walks
This article presents SAWdoubler, a package for counting the total number
Z(N) of self-avoiding walks (SAWs) on a regular lattice by the length-doubling
method, of which the basic concept has been published previously by us. We
discuss an algorithm for the creation of all SAWs of length N, efficient
storage of these SAWs in a tree data structure, and an algorithm for the
computation of correction terms to the count Z(2N) for SAWs of double length,
removing all combinations of two intersecting single-length SAWs.
We present an efficient numbering of the lattice sites that enables
exploitation of symmetry and leads to a smaller tree data structure; this
numbering is by increasing Euclidean distance from the origin of the lattice.
Furthermore, we show how the computation can be parallelised by distributing
the iterations of the main loop of the algorithm over the cores of a multicore
architecture. Experimental results on the 3D cubic lattice demonstrate that
Z(28) can be computed on a dual-core PC in only 1 hour and 40 minutes, with a
speedup of 1.56 compared to the single-core computation and with a gain by
using symmetry of a factor of 26. We present results for memory use and show
how the computation is made to fit in 4 Gbyte RAM. It is easy to extend the
SAWdoubler software to other lattices; it is publicly available under the GNU
LGPL license.Comment: 29 pages, 3 figure
- …