Manifold reconstruction in arbitrary dimensions using witness complexes It is a well-established fact that the witness complex is closely related to the restricted Delaunay triangulation in low dimensions. Specifically, it has been proved that the witness complex coincides with the restricted Delaunay triangulation on curves, and is still a subset of it on surfaces, under mild sampling assumptions. Unfortunately, these results do not extend to higher-dimensional manifolds, even under stronger sampling conditions. In this paper, we show how the sets of witnesses and landmarks can be enriched, so that the nice relations that exist between both complexes still hold on higher-dimensional manifolds. We also use our structural results to devise an algorithm that reconstructs manifolds of any arbitrary dimension or co-dimension at different scales. The algorithm combines a farthest-point refinement scheme with a vertex pumping strategy. It is very simple conceptually, and does not require the input point sample W to be sparse. Its time complexity is bounded by c(d)|W | 2 , where c(d) is a constant depending solely on the dimension d of the ambient space. A number of areas of Science and Engineering deal with point clouds lying on submanifolds of Euclidean spaces. Such data can be either collected through measurements of natural phenomena, or generated by simulations. Given a finite set of sample points W , presumably drawn from an unknown manifold S, the goal is to retrieve some information about S from W . This manifold learning problem, which is at the core of non-linear dimensionality reduction techniques [25 27 ], finds applications in many areas, including Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SCG'07, June 6-8, 2007 , Gyeongju, South Korea. Copyright 2007 ACM 978-1-59593-705-6/07/0006 ...$5.00. machine learning [4] , pattern recognition [26] , scientific visualization [28] , image or signal processing [22] , and neural computation [16] . The nature of the sought-for information is very application-dependent, and sometimes it is enough to inquire about the topological invariants of the manifold, a case in which techniques such as topological persistence [8 13 29] offer a nice mathematical framework. However, in many situations it is desirable to construct a simplicial complex with the same topological type as the manifold, and close to it geometrically.. This problem has received a lot of attention from the computational geometry community, which proposed elegant solutions in low dimensions, based on the use of the Delaunay triangulation D(W ) of the input point set W -see [6] for a survey. In these methods, the output complex is extracted from D(W ), and it is equal or close to D S (W ), the Delaunay triangulation of W restricted to the manifold S. What makes the Delaunay-based approach attractive is that, not only does it behave well on practical examples, but its performance is guaranteed by a sound theoretical framework. Indeed, the restricted Delaunay triangulation is known to provide good topological and geometric approximations of smooth or Lipschitz curves in the plane and surfaces in 3-space, under mild sampling conditions [1 2 5] .. Generalizing these ideas to arbitrary dimensions and codimensions is difficult however, because a given point set W may sample well various manifolds with different homotopy types, as illustrated in Figure 1 . To overcome this issue, it has been suggested to strengthen the sampling conditions, so that they can be satisfied by only one class of manifolds sharing the same topological invariants [12 17 20] . In some sense, this is like choosing arbitrarily between the possible reconstructions, and ignoring the rest of the information carried by the input. Moreover, the new sets of conditions on the input are so strict that they are hardly satisfiable in practice, thereby making the contributions rather theoretical. Yet [12 17 20] contain a wealth of relevant ideas and results, some of which are used in this paper.. A different and very promising approach [7 9 21 23] , reminiscent of topological persistence, builds a one-parameter family of complexes that approximate S at various scales. The claim is that, for sufficiently dense W , the family contains a long sequence of complexes carrying the same homotopy type as S. In fact, there can be several such sequences, each one corresponding to a plausible reconstruction -see Figure 1 . Therefore, performing a reconstruction on W boils down to finding the long stable sequences in the Any dense sampling of the curve is also a dense sampling of the torus. To deal with this ambiguity, the algorithm of [21] builds a sequence of complexes (bottom) approximating the input at various scales, and maintains their Betti numbers (top).. one-parameter family of complexes. This approach to reconstruction stands in sharp contrast with previous work in the area. In [7 9 23] , the family of complexes is derived from the α-offsets of the input W , where α ranges from zero to infinity. The theoretical guarantees of [7] hold in a very wide setting, since W is assumed to be a sufficiently dense sampling of a general compact set. In [21] , the family is given by the witness complex of L relative to W , or C W (L) for short, where L is a subset of W constructed iteratively, starting with L = ∅, and inserting each time the point of W lying furthest away from L. It is known that C W (L) coincides with D S (L) on smooth curves, and is still included in it on smooth surfaces [3 21] . The assumptions on L in [21] are more stringent than the ones on W , but this is not an issue since L is generated by the algorithm. Unfortunately, the structural results of [3 21 ] do not hold in higher dimensions, which makes it very unlikely that the algorithm works on any manifold S of dimension greater than two. The reason is that the normals of D S (L) can be arbitrarily wrong if D S (L) contains badly-shaped simplices, called slivers [12] . As a consequence, C W (L) may not be included in D S (L), which may not be homotopy equivalent to S [24] . This is true even if W and L satisfy strong sampling conditions, such as being arbitrarily dense uniform samples of S.. In this paper, we show how to enrich W and L in order to make the structural results of [3 21 ] hold for higherdimensional manifolds. To each point p ∈ L we assign a non-negative weight ω(p), so that D S (L) and C W (L) are now replaced by their weighted versions,. The idea of assigning weights to the vertices comes from [10] , where it was used to remove slivers from 3-dimensional Delaunay triangulations. This sliver removal technique was extended to higher dimensions by Cheng et al. [12] , who showed that, under sufficient sampling conditions on L, there exists a distribution of weights ω such that D S ω (L) is homeomorphic to S. Our main result is that, for the same distribution of weights and under similar conditions on. which is homeomorphic to S. This is a generalization of the result of [3] to higher-dimensional manifolds. It is not quite practical since W has to be equal to S. In the more realistic case where W is a finite subset of S, we enlarge it by replacing its points by balls of radius ζ. For sufficiently large ζ, this enlarged set W ζ contains S, and hence. Here again, the condition on L is stringent, but the one on W is mild.. These structural results suggest combining the method of [21] with the sliver exudation technique of [10] , in order to make it work on higher-dimensional manifolds. Our combination is the simplest possible: at each iteration of the algorithm, we insert a new point p in L, compute its best possible weight, and update C W ζ ω (L). This algorithm is very simple conceptually, and to some extent it can be viewed as a dynamic version of the algorithm of [12] , where the Delaunay triangulation of W would be constructed progressively as the weights of the points of W are computed. This raises a number of questions, such as whether the weight assignment process removes all the slivers from the vicinity of D S ω (L), since some of the weights are assigned in early stages of the course of the algorithm. We prove that all slivers are indeed removed at some point, and that consequently C W ζ ω (L) is homeomorphic to S, provided that W is a dense enough sampling of S.. Our assumption on W is much less stringent than the one used in [12] , which makes our algorithm more practical. On the other hand, our assumption that S is a smooth manifold is stronger than the one of [7] , but we get stronger guarantees, namely C W ζ ω (L) is homeomorphic to S, whereas the complex of [7] is only homotopy equivalent to S. Observe also that the witness complex is always embedded in the ambient space R d , which is not the case of the nerve of an offset. This is important if one wants to do further processing on the reconstruction. By considering the α-shape of W instead of the nerve of its α-offset, the authors of [7] get rid of this issue. Nevertheless, they cannot get rid of the so-called curse of dimensionality because, as α varies from zero to infinity, the α-complex spans the entire d-dimensional Delaunay triangulation of W , whose size is. " . In contrast, the witness complex can be maintained by considering only the κ(d) nearest neighbors in L of each point of W , which reduces the time complexity of our algorithm to O`c(d)|W | 2´, where κ(d) and c(d) are constants depending solely on d. This is worse than the bound of [12] (c(d)|W | log |W |) since we cannot benefit from the sparseness assumption on W , which is essential for the correctness of the algorithm of [12] .. The outline of the paper is as follows: after recalling the necessary background in Section 2, we present our main structural result (Theorem 3.1) in Section 3, and we introduce our reconstruction algorithm in Section 4. We have proved that the structural properties of the witness complex on low-dimensional manifolds can be extended to manifolds of arbitrary dimensions and co-dimensions. To avoid pathological cases generated by slivers, we have assigned weights to the landmarks, so that, for carefully-chosen distributions of weights, the witness complex is included in the weighted restricted Delaunay triangulation, which is homeomorphic to the underlying manifold. Moreover, both complexes coincide if the set of witnesses is dilated by a ball of suitable radius. We have also introduced a conceptually simple reconstruction algorithm, based on the witness complex, which combines a farthest-point refinement scheme with a vertex pumping strategy. Using our structural results, we have proved the correctness of the algorithm when applied to sufficiently dense samplings of smooth manifolds. These mild assumptions on the input make the approach relevant on practical data, even though constructing arrangements of hyperplanes is not desirable in practice. We also believe the approach is generic enough to be applicable to related problems, such as manifold sampling and meshing.. Note that our structural results still hold in the somewhat more general setting where W is an adaptive δ-sample of S, in the sense of [1] , and where L is an (ε, κ)-sample of W , in the sense of [12] . The proofs are roughly the same, with an additional twist which slightly degrades the constants. Observe that the structural results of Section 3 still hold 6 if we relax the assumption on W and allow its points to lie slightly off the manifold, at a Hausdorff distance of δ. This gives a deeper meaning to Theorem 4.1, which now guarantees that the algorithm generates a plateau whenever there exists a manifold S that is well-sampled by L and that passes close to the points of W . This holds in particular for small deformations S of the manifold S0 from which the points of W have been drawn: the consequence is that the topological features of S0 (connected components, handles, etc.) are captured progressively by the algorithm, by decreasing order of size in the ambient space. For instance, if S0 is a double torus whose handles have significantly different sizes, then the algorithm first detects the larger handle, generating a plateau with β0 = β2 = 1 and β1 = 2, then later on it detects also the smaller handle, generating a new plateau with β0 = β2 = 1 and β1 = 4. This property, illustrated in the experimental section of [21] , enlarges greatly the range of applications of our method. Note finally that our theoretical guarantees still hold if. respectively. This means that the algorithm can use indifferently the weak witness complex or the strong witness complex, with similar theoretical guarantees.

B B O O O O O O O O O O O O O B I O O O O O B I I O O O O O O O O O O B I O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I I O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O


A concealment method for shape information in MPEG-4 coded video sequences Abstract-In this paper, we propose a new method for error concealment of shape information in MPEG-4 video bit streams that are transmitted over error prone channels. The proposed method employs a MAP estimator with an MRF as the image a priori model. The MRF is designed for binary shape information and its parameters are adapted based on the information of neighboring blocks. Our experimental results show that the proposed concealment method restores missing shape blocks with high accuracy. Compared to the median filtering method, our method restores 20% more missing shape data, with a much greater subjective improvement. The proposed algorithm requires relatively small number of integer multiplications and additions and simple logic operations, making it suitable for real-time implementations.Index Terms-Error concealment, error resilience coding, Markov random fields, MPEG-4, post-processing, shape. C COMPRESSED multimedia data streams transmitted over error prone channels, such as wireless networks and the Internet, are usually corrupted by channel errors. MPEG-4, which is the latest ISO visual coding standard, offers error resilience tools that help localization and isolation of the erroneous data and partial recovery of the remaining data [1] . Concealment of the errors, however, is not specified in the MPEG-4 standard, and it is therefore a subject of ongoing research. MPEG-4 supports an object-based representation of video by allowing the coding of the shape information of arbitrarily shaped video objects along with the objects' texture and motion information. The concealment of errors in the texture information of the MPEG-4 coded video is similar to what has been vastly investigated in the frameworks of MPEG-2 and H263 [2] - [6] . However, efficient concealment of the shape information in the MPEG-4 coded video has, so far, not been addressed. In this paper, we propose a method for concealment of errors in the shape information of an MPEG-4 coded video object. An adaptive Markov Random Field (MRF), which is designed for binary shape information, is proposed as the image a priori model. The proposed image model is used along with a Maximum a Posteriori (MAP) estimator to recover the missing shape information. The proposed concealment method successfully reconstructs the missing shape data with good computation-performance tradeoffs. This paper presents an error concealment method for shape information in the MPEG-4 coded video sequences. A maximum a Posteriori estimator, which employs an adaptive Markov random field, is used to restore the missing shape information. The proposed concealment method successfully reconstructs the missing shape data providing about 20% improvement compared to median filtering method. The subjective improvement achieved by our algorithm is even much more significant. Moreover, reasonable computational complexity of our algorithm makes it suitable for real-time applications.

O O O O B O O B O O O O O O O O O O O O B I O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I B I I B B B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O B I O O B O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


First-Order Specifications of Programmable Data Types Abstract. We consider first-order specifications together with the restriction to accept only programmable algebras as models. We provide a criterion which links this approach with the "generation principle": all programmable models of any specification SP that meets this criterion are reachable. We also show an example of a specification which does not satisfy the criterion and admits a programmable yet nonreachable model. Moreover, a general method of showing the existence of programmable but nonreachable models for a class of first-order specifications is given.

O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Fair coalitions for power-aware routing in wireless networks Several power aware routing schemes have been developed under the assumption that nodes are willing to sacrifice their power reserves in the interest of the network as a whole. But, in several applications of practical utility, nodes are organized in groups, and as a result a node is willing to sacrifice in the interest of other nodes in its group but not necessarily for nodes outside its group. Such groups arise naturally as sets of nodes associated with a single owner or task. We consider the premise that groups will share resources with other groups only if each group experiences a reduction in power consumption. When this is the case the groups may form a coalition in which they route each other's packets. We demonstrate that sharing between groups has different properties from sharing between individuals and investigate fair mutually-beneficial sharing between groups. In particular, we propose a Pareto-efficient condition for group sharing based on max-min fairness called fair coalition routing. We propose distributed algorithms for computing the fair coalition routing. Using these algorithms we demonstrate that fair coalition routing allows different groups to mutually beneficially share their resources.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Using Formal Verification to Evaluate Human-Automation Interaction: A Review Abstract-Failures in complex systems controlled by human operators can be difficult to anticipate because of unexpected interactions between the elements that compose the system, including human-automation interaction (HAI). HAI analyses would benefit from techniques that support investigating the possible combinations of system conditions and HAIs that might result in failures. Formal verification is a powerful technique used to mathematically prove that an appropriately scaled model of a system does or does not exhibit desirable properties. This paper discusses how formal verification has been used to evaluate HAI. It has been used to evaluate human-automation interfaces for usability properties and to find potential mode confusion. It has also been used to evaluate system safety properties in light of formally modeled task analytic human behavior. While capable of providing insights into problems associated with HAI, formal verification does not scale as well as other techniques such as simulation. However, advances in formal verification continue to address this problem, and approaches that allow it to complement more traditional analysis methods can potentially avoid this limitation.

O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O


Efficient and Scalable Starvation Prevention Mechanism for Token Coherence Abstract-Token Coherence is a cache coherence protocol that simultaneously captures the best attributes of the traditional approximations to coherence: direct communication between processors (like snooping-based protocols) and no reliance on bus-like interconnects (like directory-based protocols). This is possible thanks to a class of unordered requests that usually succeed in resolving the cache misses. The problem of the unordered requests is that they can cause protocol races, which prevent some misses from being resolved. To eliminate races and ensure the completion of the unresolved misses, Token Coherence uses a starvation prevention mechanism named persistent requests. This mechanism is extremely inefficient and, besides, it endangers the scalability of Token Coherence since it requires storage structures (at each node) whose size grows proportionally to the system size. While multiprocessors continue including an increasingly number of nodes, both the performance and scalability of cache coherence protocols will continue to be key aspects. In this work, we propose an alternative starvation prevention mechanism, named priority requests, that outperforms the persistent request one. This mechanism is able to reduce the application runtime more than 20 percent (on average) in a 64-processor system. Furthermore, thanks to the flexibility shown by priority requests, it is possible to drastically minimize its storage requirements, thereby improving the whole scalability of Token Coherence. Although this is achieved at the expense of a slight performance degradation, priority requests still outperform persistent requests significantly. S HARED-MEMORY multiprocessors [1] , [2] , [3] , [4] are quite popular nowadays because they provide high performance while being relatively easy to program. To coordinate the different caches, these systems require a cache coherence protocol, which has high impact on the system performance. Multiprocessors include an increasingly number of nodes and, consequently, to perform well, they require low-latency and scalable cache coherence protocols. Although a broad quantity of protocols has been proposed, they are based on two traditional ideas, each one with their own advantages and disadvantages. On the one hand, snooping-based protocols [5] commonly provide low-latency cache misses when they rely on bus-like interconnects, which are not scalable. However, they can also be applied to non-ordered interconnects at the expense of introducing indirection or using a greedy algorithm [6] , which increases the miss latency. On the other hand, directory-based protocols [7] can use low-latency interconnects (not bus-like) which scale better. However, the communication among nodes is performed through a slow component called directory, which introduces indirection and increases the latency.. To simultaneously capture the best attributes of these two approximations, a new class of protocols based on tokens (Token Coherence [8] ) has been proposed. Hence, unlike the snooping-based and directory-based approximations, Token Coherence is able to exploit any unordered interconnect while providing low-latency cache misses. This is possible thanks to transient requests, which are fast messages that usually succeed in solving cache misses. However, transient requests may fail when contending for the same memory block because their lack of order may lead to the occurrence of protocol races. To solve races and guarantee miss completion, Token Coherence uses a starvation prevention mechanism. Initially, several implementations of a mechanism named persistent requests [9] were proposed. Some of these proposals are extremely inefficient since they use additional components (arbiters) that introduce indirection and increase the latency of cache misses. There exists another proposal without arbiters that outperforms the other implementations, but it is still inefficient. Besides, this approach requires a table at each node whose size grows proportionally to the number of nodes in the system and which requires associative lookup. These facts represent a serious drawback because there is a trend toward incorporating more and more nodes onto systems, being the scalability a key issue.. Despite their advantages, actual multiprocessor systems do not implement protocols based on tokens because they have serious drawbacks too. Most of these drawbacks are caused by both the time-outs used to detect starvation and the mechanism used to solve it (the persistent request mechanism). Since the problems related to time-outs have already been tackled in other works [6] , here we focus on addressing the main problems of the persistent request mechanism, thereby making more feasible the incorporation of Token Coherence into actual systems. To this end, in this work we propose an alternative starvation prevention mechanism, named priority requests [10] . The priority request mechanism relies on a total order of requests. However, in this case, unlike the snooping-based approximations, the ordering is provided by the routing algorithm. Hence, priority requests can resolve starvation in a way much more elegant, natural, and efficient than that used by the persistent request mechanism. Furthermore, the flexibility shown by priority requests allows us to define a strategy to decouple the size of the storage structures required at each node from the number of system nodes. Therefore, the size of the structures required to solve starvation can be drastically reduced.. The rest of this paper is organized as follows: In Section 2, we present some background about Token Coherence that is necessary to better understand the rest of this paper. Section 3 analyzes the problems of the starvation prevention mechanisms proposed up to now, which motivate this work. In Section 4, we describe the proposal of a more efficient and scalable starvation prevention mechanism. In Section 5, we show and discuss the main contributions of the proposals made in this work. Finally, in Section 6, we summarize the main conclusions of our work. We have proposed a new starvation prevention mechanism, named priority requests, for Token Coherence. Unlike persistent requests, starvation situations are resolved without requiring explicit acknowledgments and without overriding the component that provides high performance. As a consequence, Token Coherence using the priority request mechanism solves starvation situations faster and generates less network traffic. This fact contributes to reduce the execution time of applications, specially when races are common (like in medium and large systems).. Additionally, the priority requests can improve the scalability of Token Coherence by decoupling its storage requirements from the system size, while still maintaining the overall performance. Despite the fact that the table size can be reduced to a minimum of one entry, the execution time of the analyzed applications is never higher than that of the most efficient implementation of the persistent request mechanism. Fig. 16 . Normalized runtime depending on the system size when tables are the maximum size. Fig. 17 . Runtime (normalized to priority requests using tables with the maximum size) depending on the system size when using 2-entry tables. Marty et al. [6] proposed several improvements over the persistent request mechanism. The concept of persistent read request is introduced, which lets processors keep one token instead of forwarding all of them. Furthermore, the starvation prevention mechanism is used in several ways: after resending several times the same transient request, after sending once a transient request, or when a highly contended block is detected (to avoid the time-out). Furthermore, a delay is introduced after modifying a memory block, thereby ensuring that a processor will hold permissions for the block long enough to perform a short critical section.. In [12] , Marty and Hill proposed using a Ring-Order protocol to order requests and, therefore, to avoid generating protocol races, which eliminates the need to reissue requests or to issue persistent requests. However, this protocol is restricted to systems with ring interconnects, being impossible its implementation in systems with other interconnects.. Raghavan et al. proposed in [13] an alternative method to prevent starvation. Tokens are associated a timer at their arrival at nodes. If the timer associated with the tokens finishes and an acknowledgment is not received from the directory, a possible starvation situation is assumed, having to forward the tokens to the directory. The directory then activates a single request and sends all the tokens it receives until completing it. Although correct, this scheme has several problems. In particular, each cache miss requires an acknowledgment, which increases the network traffic. In addition, each node will require as many timers as the maximum number of cache misses that can be served before receiving the acknowledgments from the directory. Besides, the starvation prevention mechanism is specially inefficient in case of highly contended blocks, since requests are served one by one and a scheme based on acknowledgments between the nodes and the directory is used, which may increase the cache miss latency considerably.. Agarwal et al. proposed in [14] a technique that lets the network order requests in a distributed manner. When a request is injected into the network, it is assigned a snooporder. The snoop-orders are used by the NICs to deliver all the requests in the same order. An important problem of this proposal is the fact that requests must remain stored in NIC buffers until they can be delivered in order. Although several alternatives have been proposed, the number of buffers grows proportionally to the system size (either in NICs or in routers), which is not scalable. In addition, expiration messages are broadcast to avoid deadlock, which increases the generated traffic significantly. In order for this technique to work, point-to-point ordering and deterministic routing algorithms are required. In addition, to provide finite destination buffering, the routers must implement techniques that add considerable complexity.. We proposed in [15] a mechanism to pack several priority requests into just one, which reduces the harm of broadcasts and improves their scalability. That mechanism is complementary to that proposed in [16] , which allows to simultaneously serve several transient/starved requests by using a single multicast response. In very small systems, the starvation prevention mechanism used by Token Coherence will be rarely used since the probability of contention among processors is low and unordered requests quickly resolve cache misses. However, in larger systems, the average latency to solve a cache miss increases. As a result, the probability of contention (simultaneous misses for the same block) increases and, therefore, the starvation prevention mechanism will be more frequently used. This is shown in Fig. 1 , which illustrates the number of cache misses that must be resolved by the starvation prevention mechanism during the execution of the Barnes application. In relative terms, while in a 4-processor system only 6 percent of the misses require the use of the starvation prevention mechanism, it increases as long as the system is getting larger (14 percent with 8 processors, 24 percent with 16 processors, 31 percent with 32 processors, and 36 percent with 64 processors). Thus, although in small systems the starvation prevention mechanism has little impact on the overall performance, in medium and large systems it significantly affects the whole performance, being essential the use of an efficient mechanism.. To date, two implementation options of persistent requests have been proposed: one based on centralized arbiters and other based on distributed arbiters. The first option uses one or more arbiters. Processors first send persistent requests to the arbiter. This activates one of the requests and forwards it to all the processors. Processors use a table (which has as many entries as arbiters) to remember all the active persistent requests. The main advantages of this option are its simplicity, it requires tables whose size does not depend on the number of processors, and associative lookup is not required. Nevertheless, it presents a serious disadvantage that Token Coherence seeks to avoid: the indirection which considerably increases the latency. On the contrary, with the distributed arbiters option, processors communicate directly and indirection is avoided. Furthermore, the lack of centralized arbiters removes the associated queuing and highly contended blocks can be better managed. Thanks to this, the distributed arbiters option outperforms the centralized arbiters, mainly in small/medium systems. However, this option presents some disadvantages that make it unsuitable for medium/large systems. In particular, 1) it needs tables that require associative lookup and 2) their size depends on the number of processors. As a result, they do not scale and its application in medium/large systems is not suitable. In addition, the distributed arbiter option does not use any ordering point for persistent requests. In consequence, nodes may receive them in different order, which may create temporal races and penalize the performance. The temporal races are solved by a fixedpriority scheme that decides the order in which the received requests must be served. However, this scheme may create load imbalance when using certain types of unfair synchronization.. The described disadvantages are inherent to each implementation option, but persistent requests also present other problems common to all of them. In particular, one of the most harmful disadvantages is the fact that persistent requests override the performance policy, thereby losing efficiency and low latency. Thus, while transient requests can be served simultaneously, persistent requests must be served one after other, which increases the latency noticeably. Furthermore, persistent requests are so strict that they do not allow the service of transient requests while they are active. Consequently, all the transient requests generated while a persistent request is active will not be served, which leads to new races. This problem is aggravated by the deactivation messages since, apart from increasing the network traffic, they increase the time during which persistent requests are active.. To improve the starvation prevention mechanism and avoid most of the problems caused by persistent requests, in this work we propose an improved version of the priority request mechanism. In [10] , a preliminary version was presented. Here, we extend it with a more refined and scalable version, including a more extensive evaluation process too. In particular, in this work we provide the priority request mechanism with an effective strategy that decouples the table size from the system size. The result is a new starvation prevention mechanism that contributes to significantly increase the efficiency and scalability of Token Coherence.

O O O B I O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O B O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B O B I


Non-Rigid Stereo Factorization Abstract. In this paper we address the problem of recovering 3D non-rigid structure from a sequence of images taken with a stereo pair. We have extended existing non-rigid factorization algorithms to the stereo camera case and presented an algorithm to decompose the measurement matrix into the motion of the left and right cameras and the 3D shape, represented as a linear combination of basis-shapes. The added constraints in the stereo camera case are that both cameras are viewing the same structure and that the relative orientation between both cameras is fixed. Our focus in this paper is on the recovery of flexible 3D shape rather than on the correspondence problem. We propose a method to compute reliable 3D models of deformable structure from stereo images. Our experiments with real data show that improved reconstructions can be achieved using this method. The algorithm includes a non-linear optimization step that minimizes image reprojection error and imposes the correct structure to the motion matrix by choosing an appropriate parameterization. We show that 3D shape and motion estimates can be successfully disambiguated after bundle adjustment and demonstrate this on synthetic and real image sequences. While this optimization step is proposed for the stereo camera case, it can be readily applied to the case of non-rigid structure recovery using a monocular video sequence. Much interest has been recently devoted in computer vision to the study of the extent to which 3D information about the world can be inferred directly from image sequences taken from a moving camera, when the specific details of the camera and its motion are all unknown in advance. Such free-form inference can only succeed if certain assumptions are made, the standard one being that the scene observed by the camera is rigid. In this paper we explore the more challenging case of scenes that are not completely rigid, but which have certain degrees of flexibility or deformation.. Recent work in non-rigid factorization (Bregler et al., 2000; Brand and Bhotika, 2001; Torresani et al., 2001 ) has proved that it is possible under weak perspective viewing conditions to infer the principal modes of deformation of an object alongside its 3D shape within a structure from motion estimation framework. These non-rigid factorization methods stem from Tomasi and Kanade's factorization algorithm for rigid structure (Tomasi and Kanade, 1991) , developed in the early 90's. The key idea of this algorithm is the use of rank constraints to express the geometric invariants present in the data. This allows the factorization of a measurement matrix-which contains the image coordinates of a set of features tracks-into its shape and motion components.. In the case of non-rigid factorization, the 3D shape recovered by the algorithms is represented as a linear combination of a number of detected modes of deformation. These models can subsequently be used as compact representations of the objects suitable for use in tracking (Brand and Bhotika, 2001) , animation or other analysis. Similar to the rigid case, the underlying geometric constraints are expressed as a rank constraint which is used to factorize the measurement matrix to obtain the 3D pose, configuration coefficients and a pre-specified number of 3D basis shapes.. There have been other computer vision systems able to build similar morphable 3D models of non-rigid objects. However, most of them rely on having additional information-for instance depth estimates available from 3D scanning devices (Vetter and Blanz, 1999) or multi-view reconstruction (Pighin et al., 1998 )-or have been specialised to the specific object under observation: for example physically-based human face models (Essa and Basu, 1996) .. Crucially, the new factorization methods work purely from video in an unconstrained case: a single uncalibrated camera viewing an arbitrary 3D surface which is moving and articulating. The 2D point tracks needed as input data by the algorithm can be obtained initially using a local feature tracker provided the patch around the feature has high texture content (corner features). Alternatively, robust optic flow can also be obtained in areas of the image with low texture by exploiting the rank constraint (Torresani et al., 2001; Brand, 2001) , an approach inspired by its rigid equivalent (Irani, 1999) .. In this paper we have extended the non-rigid factorization algorithm to the multiple camera case. More specifically, we have formulated the problem for a stereo rig, where the two cameras remain fixed relative to each other throughout the sequence. In this case the measurement matrix requires not only the temporal tracks of points in the left and right image sequences but also the stereo correspondences between left and right image pairs. We have developed a new method to factorize the measurement matrix into the left and right motion matrices and the 3D non-rigid shape. Note that our work requires both cameras to be synchronized. However, this could be elegantly solved inside a factorization framework with the solution proposed by Tresadern and Reid (2003) for the synchronization of stereo video sequences in an uncalibrated scenario. We have developed a factorization algorithm to obtain non-rigid 3D models from image correspondences obtained from a stereo pair. The algorithm imposes the extra constraints that arise from the fact that both stereo cameras are viewing the same 3D structure. Furthermore, a novel non-linear optimization technique based on the bundle adjustment framework is used to refine both motion and shape components. The parameters obtained from the stereo factorization are used as the initial estimate in the minimization process. Experiments with real and synthetic data show that accurate 3D models can be achieved using the stereo factorization method and further improved applying the nonlinear optimization scheme.. While our solution can provide a description of a nonrigid object in terms of motion, shape and deformations, some issues still require a proper solution. We plan to extend our framework to deal with missing measurements. This problem can be solved directly by including the uncertainty of the measurements in the non-linear minimization scheme. In this sense, we plan to extend the approach developed in Sugaya and Kanatani (2004) for the rigid case to the case of nonrigid deformable structure.. Our focus here has been on the recovery of 3D shape: we have simplified the temporal and spatial correspondence problem by using markers and some manual matching. However, a future avenue which we plan to explore is to exploit the rank constraint to obtain further stereo matches given a small set of correspondences. Previous work on non-rigid factorization for a single camera has mainly concentrated its efforts in solving the temporal tracking problem, exploiting the rank constraints to obtain correspondences between frames (Torresani et al., 2001; Brand, 2001) . However, our focus here is on the recovery of flexible 3D shape and motion estimates. Bregler et al. (2000) were the first to use a factorization-based method for the recovery of nonrigid structure and motion. The decomposition between motion and shape parameters is not unique however, and the motion matrix is only obtained up to a post multiplication by a transformation matrix. While this matrix can be easily computed in the case of rigid structure by enforcing orthonormality constraints on the camera motion, its computation in the non-rigid case is not trivial since the motion matrix has a replicated block structure which must be imposed.. Several methods have been proposed so far to compute the transformation matrix. Bregler et al. (2000) enforced orthonormality constraints on the camera rotations in a similar way to the rigid factorization scheme. Later, (Brand, 2001) proposed an improvement to Bregler et al.'s method using numerically well-behaved heuristics to compute the transformation matrix and adding a final minimization to regularize the shape. Torresani et al. (2001) also extended the method by Bregler et al. (2000) by introducing a final trilinear optimization on the motion and structure parameters. However, none of these approaches are completely satisfactory since they do not impose the full block structure on the motion matrix.. It was not until recently that (Xiao et al., 2004) proved that the orthonormality constraints on the camera rotations are not sufficient to compute the transformation matrix and they proposed a new set of constraints on the shape basis. Their work proves that when both sets of constraints are imposed a closed-form solution exists to the problem of non-rigid structure from motion.. The main contribution of this paper has been to extend non-rigid factorization methods to the stereo camera case. The new algorithm is particularly well suited to sequences in which the overall rigid motion is small, where monocular algorithms will fail to give reliable 3D shape estimates. Here we have used an alternative method to solve for the ambiguity in the recovery of motion and shape parameters. First we obtain an initial estimate of the motion and structure parameters using an extension of Brand's algorithm (Brand, 2001) to the stereo camera case . We then use a bundle adjustment step to refine the initial solution given by the stereo algorithm, by minimizing im-age reprojection error: a geometrically meaningful error function. The parameterization of the problem takes into account the fixed geometry of the stereo rig. Aanaes and Kahl first proposed the use of bundle-adjustment in the non-rigid case (Aanaes and Kahl, 2002) for a monocular sequence. However, our approach differs in the choice of initialization and in the parameterization of the problem leading to improved results.. Previous work on non-rigid factorization in the multi-view case includes work by Tan and Ishikawa (2004) , however their approach limits itself to estimating the 3D coordinates of a set of points on a deformable object at each frame in the sequence without modelling the deformations.. The results of our experiments-where matching is aided by the use of markers-show that the stereo framework succeeds in computing reliable 3D reconstructions in cases where monocular algorithms fail to recover the correct shape (sequences where the overall rigid motion is small). We also present results on synthetic and real data to show that the bundle adjustment refinement step improves the estimates of motion and shape parameters. Note that while we have proposed this optimization step in the stereo camera case, it can be readily applied to the case of non-rigid structure recovery using a monocular video sequence .. The paper is organized as follows. In Section 2 we describe the use of rank constraints to compute motion and 3D shape within the factorization framework. We first outline the factorization algorithm in the rigid case and then describe the existing non-rigid factorization algorithms for a single camera. We then formulate nonrigid factorization for the case of multiple cameras in Section 3 and describe an algorithm that imposes the extra constraints. In Section 3.3 we describe the non-linear optimization scheme and finally in Section 4 we present some experimental results of the stereo algorithm and the bundle adjustment refinement on synthetic and real image sequences showing improved 3D reconstructions.

O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O


Plasmode simulation for the evaluation of pharmacoepidemiologic methods in complex healthcare databases Longitudinal healthcare claims databases are frequently used for studying the comparative safety and effectiveness of medications, but results from these studies may be biased due to residual confounding. It is unclear whether methods for confounding adjustment that have been shown to perform well in small, simple nonrandomized studies are applicable to the large, complex pharmacoepidemiologic studies created from secondary healthcare data. Ordinary simulation approaches for evaluating the performance of statistical methods do not capture important features of healthcare claims. In this paper, we develop and validate a statistical framework for creating replicated simulation datasets from an empirical cohort study in electronic healthcare claims data. Our approach relies on reusing the observed covariate and exposure data without modification in all simulated datasets to preserve the associations among these variables. Repeated outcomes are simulated using a true treatment effect of the investigator's choice and the baseline hazard function estimated from the empirical data. As an example, we applied our framework to a study of high versus low-intensity statin use and cardiovascular outcomes. Simulated data was based on real data drawn from Medicare Parts A and B linked with a prescription drug insurance claims database maintained by Caremark. We compared properties of the data simulated using this framework with the empirical data on which the simulations were based. In addition, we used the simulated datasets to compare variable selection strategies for confounder adjustment via the propensity score, including high-dimensional approaches that could not be evaluated with ordinary simulation methods. We found that our simulation ramework created datasets that closely resembled the observed complex data tructure, b f s ut had the advantage of an investigator-specified exposure effect. Longitudinal healthcare claims databases are frequently used for studying the comparative safety and effectiveness of medications. Administrative healthcare data generally provide a longitudinal record of medical services, procedures, diagnoses, and medications for large numbers of patients, and therefore provide a rich data source for conducting pharmacoepidemiologic research. Compared with randomized trials, the data available in healthcare claims better represent the full spectrum of patients that are exposed to a drug and the processes of care in routine practice (Schneeweiss and Avorn, 2005; Strom and Carson, 1990) . However, drug studies in claims data may suffer from bias due to residual confounding (Brookhart et al., 2010) , and it is unclear whether methods for confounding adjustment that have been shown to perform well in small, simple nonrandomized studies are applicable to the cohort studies created from complex healthcare claims data.. Monte Carlo simulation can be used to evaluate the performance of causal inference methods, but ordinary simulation approaches do not capture important features of healthcare claims. For example, healthcare claims databases often have hundreds, or even thousands, of measured covariates with complex covariance structures. These covariates, either singly or in combination, may serve as proxies for unmeasured confounders and be effectively used to remove bias (Schneeweiss et al., 2009 ). Further, the complexity of real-world data extends beyond confounding; patients' follow-up time and censoring patterns are often associated with exposure and outcome via a path of underlying characteristics. These complexities cannot be replicated in fully synthetic simulated data, as they are generally not completely understood and vary by data source.. As an alternative to simulation, Vaughan et al. (Vaughan et al., 2009) suggested creating "plasmode" datasets. A plasmode is a real dataset that is created from natural processes but has some aspect of the data-generating model known, for example, a "spike-in" experiment in microarray analysis of gene expression where a known amount of genome transcript is added to each sample. Merging this concept with simulation techniques has led to several studies of methods performance that use real observed data augmented with simulated data (Elobeid et al., 2009; Gadbury et al., 2008) . Other approaches utilize fully simulated data, but create associations among variables to match estimated associations from observed data (Chao et al., 2010; Erenay et al., 2011; McClure et al., 2008; Rolka et al., 2005; Schmidt et al., 2009) , including one approach specifically designed for simulating an entire healthcare claims database (Murray et al., 2011) . However, due to the massive size and complexity of the data in this approach, generally only one dataset is created for each set of simulation parameters, and the relative contributions of bias and variance to estimation error cannot be judged.. In this paper, we outline a statistical and computational framework for creating replicated simulation datasets based on an empirical pharmacoepidemiologic cohort study in healthcare claims data. The objective of this work is to enable the evaluation of analysis approaches in simulated data that preserve the complex features and information content of claims data but also have a known true treatment effect. As an example, we applied our framework to a study of high versus low-intensity statin use and cardiovascular outcomes. Simulated data was based on real data drawn from Medicare Parts A and B linked with a prescription drug insurance claims database maintained by Caremark. We compared properties of the data simulated using this framework with the empirical data on which the simulations were based. In addition, we used the simulated datasets to compare variable selection strategies for confounder adjustment via the propensity score, including high-dimensional approaches that could not be evaluated with ordinary simulation methods since their performance depends on the information richness and complexity of the underlying empirical data source. In this paper, we have outlined steps for creating simulated cohort studies based on observed data from healthcare claims. We applied our simulation framework to a typical pharmacoepidemiologic study and compared the simulated outcome data to the observed outcomes. In addition, we provided an example of how this simulation framework can be used to evaluate statistical methods that were previously not able to be evaluated in simulated data. We found that our simulation framework created datasets that closely resembled the observed complex data structure, but had the advantage of an investigator-specified event rate and exposure effect.. The validity of our framework is further reinforced when considering the results of our example simulation study in the context of other literature on covariate selection.. The reduction in bias using bias-based hdPS over exposure-based hdPS was expected, since past studies have shown that adjusting for variables that influence exposure but have minimal effect on the outcome can amplify residual confounding bias (Myers et al., 2011; Pearl, 2010; Pearl, 2011) . It seems probable that the bias-based hdPS algorithm avoids selecting such covariates by considering associations with outcome in the selection procedure. When adjusting for strata of the PS, past theoretical results have shown that using the estimated PS, rather than a true PS, will generally result in reduced variability in the exposure effect estimator, particularly if covariates that strongly predict outcome but are only weakly associated with exposure are included in the PS (Williamson et al., 2012) . This reduced variability is a result of the estimated PS adjusting for chance imbalances in covariates that are associated with outcome but may not be structurally related to the treatment decision. Both hdPS algorithms select a larger number of covariates than the pre-defined PS and therefore are likely to account for more chance imbalances and result in the observed increased precision for those methods. Finally, the reduced variation in the all-variables PS approach compared with the all-variables outcome model approach aligns with prior simulation studies that show that in the case of few events and many covariates, adjusting for the PS is more efficient than adjusting for the variables directly in the outcome model (Cepeda et al., 2003) .. Although our framework was ideal for evaluating the hdPS algorithms, which rely on a large pool of pre-exposure healthcare claims from which to select covariates, the simulation procedure has some limitations that may lessen its utility in evaluating other methods. First, comparing the variability of exposure effect estimators is complicated by the fact that exposure and covariate data is not regenerated in each simulated dataset. Given that repeated simulations are intended to mimic the variation from random sampling, this method will generally produce data that underrepresent the true variability of statistical approaches applied to it. Second, in our simulation framework, outcomes are generated based on a limited number of investigator-defined covariates, while in observed data, outcomes may be influenced by a much larger set of factors, both measured and unmeasured. However, because the covariate data and associations among covariates remain intact in our simulation framework, many covariates may influence outcome indirectly via their association with variables in C 1 , in addition to the variables that are used for directly generating outcome. In addition, our simulation framework provides the ability to set aside some covariates from C 1 to be "unmeasured," thereby mimicking this aspect of real-world claims data. Therefore, despite these limitations, the simulation framework presented in this paper can be useful for evaluating methods for comparative safety and effectiveness analyses in data that mimic the complex structure of observed healthcare claims. Figure 1: Diagram showing the steps in the simulation framework. Dashed lines represent carrying a data element unchanged from one step to the next. Solid arrows represent using a data element to create new data structures. The end result is a sequence of exposure effect estimates (one for each of J simulated datasets) given by . Covariates: C is all measured, C 1 is pre-defin e d , C 0 is all others, C* is all measured except those from C 1 set aside in U to be unmeasured Our simulation approach relies on reusing the observed covariate and exposure data without modification in all simulated datasets to preserve the empirical associations among these variables. Repeated outcomes are simulated using a true treatment effect of the investigator's choice and the baseline hazard function estimated from the empirical data ( Figure 1 ). R code and documentation for the simulation setup are available in the Web Appendix.

O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O


search GenBank: interactive orchestration and ad-hoc choreography of Web services in the exploration of the biomedical resources of the National Center For Biotechnology Information Background: Due to the growing number of biomedical entries in data repositories of the National Center for Biotechnology Information (NCBI), it is difficult to collect, manage and process all of these entries in one place by third-party software developers without significant investment in hardware and software infrastructure, its maintenance and administration. Web services allow development of software applications that integrate in one place the functionality and processing logic of distributed software components, without integrating the components themselves and without integrating the resources to which they have access. This is achieved by appropriate orchestration or choreography of available Web services and their shared functions. After the successful application of Web services in the business sector, this technology can now be used to build composite software tools that are oriented towards biomedical data processing.We have developed a new tool for efficient and dynamic data exploration in GenBank and other NCBI databases. A dedicated search GenBank system makes use of NCBI Web services and a package of Entrez Programming Utilities (eUtils) in order to provide extended searching capabilities in NCBI data repositories. In search GenBank users can use one of the three exploration paths: simple data searching based on the specified user's query, advanced data searching based on the specified user's query, and advanced data exploration with the use of macros. search GenBank orchestrates calls of particular tools available through the NCBI Web service providing requested functionality, while users interactively browse selected records in search GenBank and traverse between NCBI databases using available links. On the other hand, by building macros in the advanced data exploration mode, users create choreographies of eUtils calls, which can lead to the automatic discovery of related data in the specified databases. Conclusions: search GenBank extends standard capabilities of the NCBI Entrez search engine in querying biomedical databases. The possibility of creating and saving macros in the search GenBank is a unique feature and has a great potential. The potential will further grow in the future with the increasing density of networks of relationships between data stored in particular databases. search GenBank is available for public use at http://sgb.biotools.pl/. Not so long ago, the cooperation of medical science and informatics was not so common, but nowadays, collaboration of scientists from completely different fields of science is not unusual. Moreover, the cooperation of scientists from different domains initiated the formation of intermediate and interdisciplinary scientific fields; those which can combine knowledge and experience from apparently distant research areas. It appears that without the cooperation across boundaries resulting from differences between the various fields of science, the current image of scientific work would look quite different.. Several years ago, medicine and life sciences began to generate a huge amount of data. This unimaginably large amount of data had to be processed and stored in some way. Various research centers around the world began to create data repositories trying to solve the problem of collecting and processing large volumes of biological information. The solutions and techniques, which focus on storing medical data, are increasingly fine-tuned, due to the fact that the amount of information is constantly growing. One of the major reasons for the creation of biological databases is the very large amount of genetic information, including nucleotide sequences. Since 1981, when the Sanger sequencing method was invented, the problem of storing genetic information has been prevalent. GenBank [1, 2] is one of the most famous databases in the world that stores genetic information. GenBank and also other biomedical databases are maintained by the National Center for Biotechnology Information (NCBI, http://www.ncbi.nlm.nih.gov). The NCBI not only hosts the databases, but also provides a uniform system for data retrieval and additional programming tools that allow software developers to create specialized applications for biomedical data integration. search GenBank provides an internet portal that allows simple and advanced data searching in GenBank and other databases which are maintained by the National Center for Biotechnology Information. Furthermore, the possibility of creating macros allows for crossdatabase exploration of related data. This is a unique feature of the search GenBank system. Currently, the strength of this solution may not be fully utilized, due to the fact that the current relationships between records of different databases are not very complex. However, we believe that the potential of the idea that lies in the automation of finding useful information in biomedical databases will grow with the increasing density of relationships between data stored in particular databases.. The search GenBank system has been designed for people involved in the analysis of biological data, including biochemists, molecular biologists, medical doctors, staff of genetic laboratories and molecular pathologists. Registered and logged in users of the system can save queries and macros in the special dictionaries, so that, in the future, when conducting similar studies, they can reuse them.. search GenBank complements the capabilities of the NCBI Entrez portal. It concentrates largely on genetic data, based on the assumption that genetic data are currently the most frequently used data in life sciences. However, it also allows data searching and data exploration in other NCBI databases. Construction of the search GenBank and possibilities provided by the system confirm that the role of Web services in the integration and exploration of various biological resources is important. It also shows how the coordination of the complex workflows over Web services can be achieved by orchestration and choreography. Depending on the exploration mode, the search GenBank serves as an interactive orchestrator or choreographer executing various exploration paths. Comparing the search GenBank system to other tools that orchestrate Web services, like Taverna and SADI, and also commercial MapForce and SQL Server Integration Services, we can say that these tools have a universal purpose and provide the possibility to explore a broader range of resources and Web services. SADI gives even Figure 9 Query builder in advanced searching mode in the search GenBank service. Users can build complex queries using the query builder. Query builder allows composing a query by adding simple filtering phrases or terms that are joined by logical operators. Users are able to choose the logical operator and a database field that will be searched to find the given phrase or term (point 2). They can also set additional limits on the records that should be returned in the result set (point 3). In the presented example, a user wants to find all nucleotide sequences in the Nucleotide database that correspond to HNF1A gene in human organism and are involved in the maturity onset diabetes of the young (MODY). He/she intends to search the term hnf1a in the Gene Name field (GENE), term human in the Organism field (ORGN), and term MODY in All fields (ALL). All filtering conditions are joined by the AND operator. more by adding semantics to the discovery of distributed data resources. However, the above mentioned tools have different target users. These can be, for example, specialists in bioinformatics and data flow architects, whereas search GenBank is dedicated, e.g. to biochemists, biologists and medical doctors. Users of search GenBank do not have to take care of the implementation details, Web service interfaces, domain specific query languages, and how to connect inputs and outputs of particular tools. These details are hidden under the search GenBank web GUI that our system provides. In search GenBank, exploration paths can be constructed dynamically and users are able to traverse between various data sources whilst still having an open door to take another step. On the other hand, while working with macros, users construct predefined traverse paths that are similar to workflows in the Taverna and SQL Server Integration Services, although with limited possibilities, but in a simpler manner through the friendly graphical user interface that is appropriate for them.. search GenBank is still extendable. Similarly to other tools, search GenBank also allows the addition of new Figure 10 Creating macros in search GenBank web portal. In this example, a user wants to obtain a list of scientific articles that are related to all single nucleotide polymorphisms (SNPs) mapped to nucleotide sequences corresponding to human HNF1A gene. A user chooses an initial database (Nucleotide, point 1) and enters a query (e.g. "hnf1a"[GENE] AND "human"[ORGN] AND "MODY" [ALL] ) that will be executed against this database (point 2). Then, he/she chooses additional links that allow traversing to other databases (SNP and PubMed). In order to add another link he/she can use the + link next hyperlink. When the macro is completed, it can be executed by pressing the Run macro button.. WSDL files describing new Web services. However, this is only possible for administrators of the system through the special web form that is presented in Figure 11 . In the future, we plan a further development of the system by extending its capabilities in accessing biomedical resources available world-wide. We want search GenBank to provide an integrated access to distributed tools and biological data from various scientific repositories, hiding the implementation details of a particular set of functionality under a friendly graphical interface. While exploring biomedical databases in the face of the growing number of bio-resources available worldwide, we have to answer one fundamental question: whether to integrate the available data or use existing systems through the shared endpoints? Since the integration of biological data resources and tools requires investments in computer infrastructure and its maintenance, in our solution we adopted the latter approach. search GenBank uses Web services and a set of available utilities in order to explore biomedical databases of the NCBI.. search GenBank provides three paths of data exploration:. -simple searching based on the specified user's query, -advanced searching based on the specified user's query, and -advanced exploration with the use of macros.. Each of the above mentioned paths starts with the initial query, which is specified by a user. This query can be given as a single word or phrase, which usually takes place in the simple searching mode, or can have dedicated syntax specified by NCBI, which is typically used in the advanced searching mode. Advanced exploration with the use of macros allows not only the submission of a query to one particular database, but also traversing a predetermined path between various databases and discovering related information. From a technical point of view, we can treat simple and advanced searching modes as a special case of the advanced exploration with the use of macros, wherein we use a single database for the exploration.. Query syntax and construction, how phrases provided by users are automatically broken into terms and how they are mapped to appropriate fields that are searched by the NCBI search engine are described in the following subsections. These are internal features of the NCBI Entrez search engine. However, we describe them here because they are implicitly used while invoking NCBI Web services by search GenBank. We also present the architecture of the search GenBank system and the flow of information in various paths of data exploration. Before we go deeper into functional details of the system, we will consider the following scenario.

O O O B O O B O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O


On maximal QROBDD's of Boolean functions Abstract. We investigate the structure of "worst-case" quasi reduced ordered decision diagrams and Boolean functions whose truth tables are associated to: we suggest different ways to count and enumerate them. We, then, introduce a notion of complexity which leads to the concept of "hard" Boolean functions as functions whose QROBDD are "worstcase" ones. So we exhibit the relation between hard functions and the Storage Access function (also known as Multiplexer).Mathematics Subject Classification. 06E30, 68Q15, 94C10, 94C15. The complexity of Boolean functions is a central subject of information theory. In theoretical computer science, the term complexity usually refers to the size of a chosen representation of an object (or even some part of this description). There is a lot of representations for Boolean functions like: truth tables, Boolean circuits, binary decision diagrams, normal disjunctive and conjonctive forms, etc. We focus here on Quasi Reduced Ordered Binary Decision Diagrams.. The binary decision diagram (BDD) representation was introduced by Lee in 1959 but the rise of its success began with Bryant's thesis [1] giving theorems and good algorithms to handle them. It's now a widespread tool for Boolean function manipulation with many application areas such as verification or reliability Keywords and phrases. Boolean functions, Boolean complexity, Boolean graphs, binary decision diagrams, BDD, OBDD. studies and today the term BDD covers a large family of different representations: QROBDD, ROBDD, FBDD, ZBDD, etc. We refer the reader to Bryant's web site and Wegener's book [9] for exhaustive study.. We are concerned here with the most primitive BDD: the quasi reduced ordered BDD (QROBDD). They are directed acyclic graphs canonically associated to a given Boolean function and we quickly sketch the theoretical construction of the QROBDD graph:. Starting from the truth table of f (canonically associated to f ), we construct the binary tree associated to f whose leaves are labeled by the values (0 or 1) of f , that is to say the data contained in the truth table of f . Then, identifying all the isomorphic subgraphs of this tree (this process is sometimes called the merging rule) we get a directed acyclic graph called the QROBDD of f . Bryant work (or the minimal automata theorem) shows that the order in which the identifications of subtrees are made have no impact on the final result: it's a canonical graph associated to f . Now, let B n the set of Boolean functions in n Boolean variables. The number of vertices of the QROBDD of f ∈ B n is called the QROBDD-complexity of the function, and denoted c QROBDD (f ) (or c(f ) if the context is clear) in the following. The reader will then find immediately the trivial bound:. The lower bound is obviously exact but the upper bound is not. The true upper bound, say C(n), can be effectively computed and was studied by many people until recently (see [2] [3] [4] ). Our goal is the description of the family H n of Boolean functions in n variables achieving this maximal QROBBD-complexity. We shall often use the term of "hard" functions for them.. The main result is that H n can be precisely described and enumerated for any n. Functions in H n are all related to the Storage Access (SA) function (see [7, 8] ). It appears as the simplest among the hard functions and we are able to show that, for some special values of n, H n is exactly the family of "twisted" SA functions by a whole symmetric group. We also study the effect of the ordering of variables on H n and give elementary properties.

O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I I O O O O O O O O O O O O O B I I O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I B I B I B I I B B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O