Results 11 - 20
of
36
Probabilistic Performance of a Heuristic for the Satisfiability Problem
- Discrete Applied Mathematics
, 1986
"... An algorithm for the Satisfiability problem is presented and its probabilistic behavior is analysed when combined with two other algorithms studied earlier. The analysis is based on an instance distribution which is parameterized to simulate a variety of sample characteristics. The algorithm dynamic ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
An algorithm for the Satisfiability problem is presented and its probabilistic behavior is analysed when combined with two other algorithms studied earlier. The analysis is based on an instance distribution which is parameterized to simulate a variety of sample characteristics. The algorithm dynamically assigns values to literals appearing in a given instance until a satisfying assignment is found or the algorithm "gives up" without determining whether or not a solution exists. It is shown that if n clauses are constructed independently from r boolean variables where the probability that a variable appears in a clause as a positive literal is p and as a negative literal is p then almost all randomly generated instances of Satisfiability are solved in polynomial time if p ! :4 ln(n)=r or p ? ln(n)=r or p = c ln(n)=r, :4 ! c ! 1 and lim n;r!1 n 1\Gammac =r 1\Gammaffl ! 1 for any ffl ? 0. It is also shown that if p = c ln(n)=r, :4 ! c ! 1 and lim n;r!1 n 1\Gammac =r = 1 then almost ...
A linear-time approximation algorithm for weighted matchings in graphs
- ACM TRANSACTIONS ON ALGORITHMS
, 2005
"... Approximation algorithms have so far mainly been studied for problems that are not known to have polynomial time algorithms for solving them exactly. Here we propose an approximation algorithm for the weighted matching problem in graphs which can be solved in polynomial time. The weighted matching p ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
Approximation algorithms have so far mainly been studied for problems that are not known to have polynomial time algorithms for solving them exactly. Here we propose an approximation algorithm for the weighted matching problem in graphs which can be solved in polynomial time. The weighted matching problem is to find a matching in an edge weighted graph that has maximum weight. The first polynomial-time algorithm for this problem was given by Edmonds in 1965. The fastest known algorithm for the weighted matching problem has a running time of O(nm + n² log n). Many real world problems require graphs of such large size that this running time is too costly. Therefore, there is considerable need for faster approximation algorithms for the weighted matching problem. We present a linear-time approximation algorithm for the weighted matching problem with a performance ratio arbitrarily close to 2/1. This improves the previously best performance ratio of 3/2. Our algorithm is not only of theoretical interest, but because it is easy to implement and the constants involved are quite small it is also useful in practice.
Algorithms for Polynomial GCD Computation over Algebraic Function Fields
- Proceedings of ISSAC ’04, ACM Press
, 2004
"... Let L be an algebraic function field in k ≥ 0 parameters t1,...,tk. Let f1,f2 be non-zero polynomials in L[x]. We give two algorithms for computing their gcd. The first,a modular GCD algorithm,is an extension of the modular GCD algorithm of Brown for Z[x1,...,xn] andEncarnacion for Q(α)[x] to functi ..."
Abstract
-
Cited by 9 (5 self)
- Add to MetaCart
Let L be an algebraic function field in k ≥ 0 parameters t1,...,tk. Let f1,f2 be non-zero polynomials in L[x]. We give two algorithms for computing their gcd. The first,a modular GCD algorithm,is an extension of the modular GCD algorithm of Brown for Z[x1,...,xn] andEncarnacion for Q(α)[x] to function fields. The second,a fraction-free algorithm,is a modification of the Moreno Maza and Rioboo algorithm for computing gcds over triangular sets. The modification reduces coefficient growth in L to be linear. We give an empirical comparison of the two algorithms using implementations in Maple.
Asynchronous Analysis of Parallel Dynamic Programming Algorithms
, 1994
"... We examine a very simple asynchronous model of parallel computation that assumes the time to compute a task is random, following some probability distribution. The goal of this model is to capture the effects of unpredictable delays on processors, due to communication delays or cache misses, for exa ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
We examine a very simple asynchronous model of parallel computation that assumes the time to compute a task is random, following some probability distribution. The goal of this model is to capture the effects of unpredictable delays on processors, due to communication delays or cache misses, for example. Using techniques from queueing theory and occupancy problems, we use this model to analyze two parallel dynamic programming algorithms. We show that this model is simple to analyze and correctly predicts which algorithm will perform better in practice. The algorithms we consider are a pipeline algorithm, where each processor i computes in order the entries of rows i, i + p and so on, where p is the number of processors; and a diagonal algorithm, where entries along each diagonal extending from the left to the top of the table are computed in turn. It is likely that the techniques used here can be useful in the analysis of other algorithms that use barriers or pipelining techniques. Ind...
Program Optimization Using Indexed and Recursive Data Structures
, 2002
"... This paper describes a systematic method for optimizing recursive functions using both indexed and recursive data structures. The method is based on two critical ideas: first, determining a minimal input increment operation so as to compute a function on repeatedly incremented input; second, determi ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
This paper describes a systematic method for optimizing recursive functions using both indexed and recursive data structures. The method is based on two critical ideas: first, determining a minimal input increment operation so as to compute a function on repeatedly incremented input; second, determining appropriate additional values to maintain in appropriate data structures, based on what values are needed in computation on an incremented input and how these values can be established and accessed. Once these two are determined, the method extends the original program to return the additional values, derives an incremental version of the extended program, and forms an optimized program that repeatedly calls the incremental program. The method can derive all dynamic programming algorithms found in standard algorithm textbooks. There are many previous methods for deriving efficient algorithms, but none is as simple, general, and systematic as ours.
Broadcasting in Butterfly and DeBruijn Networks
, 1992
"... Broadcasting is the process of message dissemination in a communication network in which a message originated by one processor is transmitted to all processors of the network. In this paper, we present a new lower bound of 1:7417m for broadcasting in the butterfly network of dimension m. This improv ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Broadcasting is the process of message dissemination in a communication network in which a message originated by one processor is transmitted to all processors of the network. In this paper, we present a new lower bound of 1:7417m for broadcasting in the butterfly network of dimension m. This improves the best known lower bound of 1:5621m. We also describe an algorithm which improves the upper bound from 2m to 2m \Gamma 1. This is shown to be optimal for small dimensions m. In addition, the presented lower bound technique is used to derive non-trivial lower bounds for broadcasting in the deBruijn network of dimension m. An upper bound of 1:5m+1:5 is well-known for this network. Here, we are able to improve the lower bound from 1:1374m to 1:3171m. A preliminary version of these results appears in: Proc. STACS 92, Lecture Notes in Computer Science 577, pp. 351-362. y The work of these authors was supported by grant Mo 285/4-1 from the German Research Association (DFG). 1 Introduct...
General Techniques For Analyzing Recursive Algorithms With Applications
- SIAM Journal on Computing
, 1997
"... . The complexity of divide-and-conquer algorithms is often described by recurrences of various forms. In this paper, we develop general techniques and master theorems for solving several kinds of recurrences, and we give several applications of our results. In particular, almost all of the earlier w ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
. The complexity of divide-and-conquer algorithms is often described by recurrences of various forms. In this paper, we develop general techniques and master theorems for solving several kinds of recurrences, and we give several applications of our results. In particular, almost all of the earlier work on solving the recurrences considered here is subsumed by our work. In the process of solving such recurrences, we establish interesting connections between some elegant mathematics and analysis of recurrences. Using our results and improved bipartite matching algorithms, we also improve existing bounds in the literature for several problems, viz, associative-commutative (AC) matching of linear terms, associative matching of linear terms, rooted subtree isomorphism, and rooted subgraph homeomorphism for trees. Key words. analysis of algorithms, divide-and-conquer, recurrences, problem complexity, subtree isomorphism, associative-commutative (AC) matching, graph algorithms AMS subject cla...
Domain Independant Heuristics in Hybrid Algorithms for CSP's
, 1994
"... Over the years a large number of algorithms has been discovered to solve instances of CSP problems. In a recent paper Prosser [9] proposed a new approach to these algorithms by splitting them up in groups with identical forward (Backtracking, Backjumping, Conflict-Directed Backjumping) and backward ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Over the years a large number of algorithms has been discovered to solve instances of CSP problems. In a recent paper Prosser [9] proposed a new approach to these algorithms by splitting them up in groups with identical forward (Backtracking, Backjumping, Conflict-Directed Backjumping) and backward (Backtracking, Backmarking, Forward Checking) moves. By combining the forward move of an algorithm from the first group and the backward move of an algorithm from the second group he was able to develop four new hybrid algorithms: Backmarking with Backjumping (BMJ), Backmarking with Conflict-Directed Backjumping (BMCBJ) , Forward Checking with Backjumping (FC-BJ) and Forward Checking with Conflict-Directed Backjumping (FC-CBJ). Variable reordering heuristics have been suggested by, among others, by Haralick [6] and Purdom [11, 14] to improve the standard CSP algorithms. They obtained both analytical and empiral results about the performance of these heuristics in their research. In this thes...
Fully Persistent Arrays for Efficient Incremental Updates and Voluminous Reads
- 4th European Symposium on Programming
, 1992
"... The array update problem in a purely functional language is the following: once an array is updated, both the original array and the newly updated one must be preserved to maintain referential transparency. We devise a very simple, fully persistent data structure to tackle this problem such that ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
The array update problem in a purely functional language is the following: once an array is updated, both the original array and the newly updated one must be preserved to maintain referential transparency. We devise a very simple, fully persistent data structure to tackle this problem such that ffl each incremental update costs O(1) worst--case time, ffl a voluminous sequence of r reads cost in total O(r) amortized time, and ffl the data structure use O(n + u) space, where n is the size of the array and u is the total number of updates. A sequence of r reads is voluminous if r is \Omega\Gamma n) and the sequence of arrays being read forms a path of length O(r) in the version tree. A voluminous sequence of reads may be mixed with updates without affecting either the performance of reads or updates. An immediate consequence of the above result is that if a functional program is single--threaded, then the data structure provides a simple and efficient implementation of funct...
Approximating weighted matchings in parallel
"... revised Version Abstract. We present an NC approximation algorithm for the weighted matching problem in graphs with an approximation ratio of (1 − ɛ). This improves the previously best approximation ratio of − ɛ) of an NC algorithm for this problem. ( 1 2 ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
revised Version Abstract. We present an NC approximation algorithm for the weighted matching problem in graphs with an approximation ratio of (1 − ɛ). This improves the previously best approximation ratio of − ɛ) of an NC algorithm for this problem. ( 1 2

