42 research outputs found
A Model of Cooperative Threads
We develop a model of concurrent imperative programming with threads. We
focus on a small imperative language with cooperative threads which execute
without interruption until they terminate or explicitly yield control. We
define and study a trace-based denotational semantics for this language; this
semantics is fully abstract but mathematically elementary. We also give an
equational theory for the computational effects that underlie the language,
including thread spawning. We then analyze threads in terms of the free algebra
monad for this theory.Comment: 39 pages, 5 figure
Circular pattern matching with k mismatches
The k-mismatch problem consists in computing the Hamming distance between a pattern P of length m and every length-m substring of a text T of length n, if this distance is no more than k. In many real-world applications, any cyclic shift of P is a relevant pattern, and thus one is interested in computing the minimal distance of every length-m substring of T and any cyclic shift of P. This is the circular pattern m
Optimal Algorithms for Probabilistic Solitude Detection On Anonymous Rings
Probabilistic algorithms are developed for a basic problem in distributed computation, assuming anonymous, asynchronous, unidirectional rings of processors. The problem, known as Solitude Detection, requires that a nonempty subset of the processors, called contenders, determine whether or not there is exactly one contender. Monte Carlo algorithms are developed, that err with probability bounded by a specified parameter ffl and exhibit either message or processor termination. The algorithms transmit an optimal expected number of bits, to within a constant factor. Their bit complexities display a surprisingly rich dependence on the kind of termination exhibited and on the processors' knowledge of the size of the ring. Two probabilistic tools are isolated and then combined in various ways to achieve all our algorithms. 1 Introduction In distributed models of computation, the complexity or feasibility of solving some problems can be significantly influenced by the constituent processors' ..
Constructive Complexity
Powerful and widely applicable, yet inherently non-constructive, tools have recently become available for classifying decision problems as solvable in polynomial time, as a result of the work of Robertson and Seymour. These developments challenge the established view that equates tractability with polynomialtime solvability, since the existence of an inaccessible algorithm is of very little help in solving a problem. In this paper, we attempt to provide the foundations for a constructive theory of complexity, in which membership of a problem in some complexity class indeed implies that we can find out how to solve that problem within the stated bounds. Our approach is based on relations, rather than on sets; we make much use of self-reducibility and oracle machines, both conventional and "blind," to derive a series of results which establish a structure similar to that of classical complexity theory, but in which we are in fact able to prove results which remain conjectural within the ..