5403901
Wait-Free Implementations in Message-Passing Systems
We study the round complexity of problems in a synchronous, message-passing system with crash failures. We show that if processors start in order-equivalent states, then a logarithmic number of rounds is both necessary and sufficient for them to reach order-inequivalent states. These upper and lower bounds are significant because they establish a complexity threshold below which no nontrivial problem can be solved, but at which certain nontrivial problems do have solutions. This logarithmic lower bound implies a matching lower bound for a variety of decision tasks and concurrent object implementations. In particular, we examine two nontrivial problems for which this lower bound is tight: the strong renaming task, and a wait-free increment register implementation. For each problem, we present a nontrivial algorithm that halts in O(log c) rounds, where c is the number of pa~icipating processors. @ 1999 Elsevier Science B.V. All rights reserved.
32346819
Graph Bisection Algorithms with Good Average Case Behavior
We describe a polynomial time algorithm that, for every input graph, either outputs the minimum bisection of the graph or halts without output. More importantly, we show that the algorithm chooses the former course with high probability for many natural classes of graphs. In particular, for every fixed d⩾3, all suffciently large n and all b = o(n1-(1/[(d+1)/2]), the algorithm finds the minimum bisection for almost all d-regular labelled simple graphs with 2n nodes and bisection width b.
206818151
Graph bisection algorithms with good average case behavior
In the paper, we describe a polynomial time algorithm that, for every input graph, either outputs the minimum bisection of the graph or halts without output. More importantly, we show that the algorithm chooses the former course with high probability for many natural classes of graphs. In particular, for every fixedd≧3, all sufficiently largen and allb=o(n1−1/[(d+1)/2]), the algorithm finds the minimum bisection for almost alld-regular labelled simple graphs with 2n nodes and bisection widthb. For example, the algorithm succeeds for almost all 5-regular graphs with 2n nodes and bisection widtho(n2/3). The algorithm differs from other graph bisection heuristics (as well as from many heuristics for other NP-complete problems) in several respects. Most notably:(i)the algorithm provides exactly the minimum bisection for almost all input graphs with the specified form, instead of only an approximation of the minimum bisection,(ii)whenever the algorithm produces a bisection, it is guaranteed to be optimal (i.e., the algorithm also produces a proof that the bisection it outputs is an optimal bisection),(iii)the algorithm works well both theoretically and experimentally,(iv)the algorithm employs global methods such as network flow instead of local operations such as 2-changes, and(v)the algorithm works well for graphs with small bisections (as opposed to graphs with large bisections, for which arbitrary bisections are nearly optimal).
7826204
Probabilistic Recurrence Relations Revisited
The performance attributes of a broad class of randomised algorithms can be described by a recurrence relation of the form T(x)=a(x)+T(H(x)), where a is a function and H(x) is a random variable. For instance, T(x) may describe the running time of such an algorithm on a problem of size x. Then T(x) is a random variable, whose distribution depends on the distribution of H(x). To give high probability guarantees on the performance of such randomised algorithms, it suffices to obtain bounds on the tail of the distribution of T(x). Karp derived tight bounds on this tail distribution, when the distribution of H(x) satisfies certain restrictions. However, his proof is quite difficult to understand. In this paper, we derive bounds similar to Karp's using standard tools from elementary probability theory, such as Markov's inequality, stochastic dominance and a variant of Chernoff bounds applicable to unbounded variables. Further, we extend the results, showing that similar bounds hold under weaker restrictions on H(x). As an application, we derive performance bounds for an interesting class of algorithms that was outside the scope of the previous results.
7046577
Control flow based obfuscation
A software obfuscator is a program O to transform a source program P for protection against malicious reverse engineering. O should be correct (O(P) has same functionality with P), resilient (O(P) is resilient against attacks), and effective (O(P) is not too much slower than P). In this paper we describe the design of an obfuscator which consists of two parts. The first part extracts the control flow information from the program and saves it in another process named Monitor-process. The second part protects Monitor-process converting it into an Aucsmith like self-modifying version. We prove the correctness of the obfuscation scheme. We assess its resilience and efficiency to show that both are This supports the claim that our approach is practical.