Robust Object Recognition with Cortex-Like Mechanisms Abstract-We introduce a new general framework for the recognition of complex visual scenes, which is motivated by biology: We describe a hierarchical system that closely follows the organization of visual cortex and builds an increasingly complex and invariant feature representation by alternating between a template matching and a maximum pooling operation. We demonstrate the strength of the approach on a range of recognition tasks: From invariant single object recognition in clutter to multiclass categorization problems and complex scene understanding tasks that rely on the recognition of both shape-based as well as texture-based objects. Given the biological constraints that the system had to satisfy, the approach performs surprisingly well: It has the capability of learning from only a few training examples and competes with state-of-the-art systems. We also discuss the existence of a universal, redundant dictionary of features that could handle the recognition of most object categories. In addition to its relevance for computer vision, the success of this approach suggests a plausibility proof for a class of feedforward models of object recognition in cortex. U NDERSTANDING how visual cortex recognizes objects is a critical question for neuroscience. Because humans and primates outperform the best machine vision systems with respect to almost any measure, building a system that emulates object recognition in cortex has always been an attractive but elusive goal. For the most part, the use of visual neuroscience in computer vision has been limited to early vision for deriving stereo algorithms (e.g., [1] ) and to justify the use of DoG (derivative-of-Gaussian) filters and more recently of Gabor filters [2] , [3] . No real attention has been given to biologically plausible features of higher complexity. While mainstream computer vision has always been inspired and challenged by human vision, it seems to never have advanced past the very first stages of processing in the simple (and binocular) cells in V 1 and V 2. Although some of the systems inspired-to various degrees-by neuroscience [4] , [5] , [6] , [7] , [8] , [9] , [10] have been tested on at least some natural images, neurobiological models of object recognition in cortex have not yet been extended to deal with real-world image databases [11] , [12] , [13] , [14] .. We present a system that is based on a quantitative theory of the ventral stream of visual cortex [14] , [15] . A key element in the approach is a new set of scale and position-tolerant feature detectors, which agree quantitatively with the tuning properties of cells along the ventral stream of visual cortex. These features are adaptive to the training set, though we also show that a universal feature set, learned from a set of natural images unrelated to any categorization task, likewise achieves good performance. To exemplify the strength of this featurebased representation, we demonstrate classification results with simple linear classifiers. We show that the approach performs well on the recognition of isolated objects in clutter for both binary and multiclass classification problems on publicly available data sets. Our approach also demonstrates good classification results on a challenging (street) scene understanding application that requires the recognition of both shape-based as well as texture-based objects.. Both the source code of our system and the StreetScenes data set used in our experiments are readily available [16] . Perhaps the major limitation of our system in a real-world applications setting remains its processing speed (limited by the S 1 and C 1 stages)-typically, tens of seconds, depending on the size of the input image-which is too slow for a realtime application. Another important question, yet to be addressed, is whether the recognition results obtained with bags of C 2 features could be extended to other tasks, such as face and gesture recognition or the analysis of video. In this paper, we have described a new framework for robust object recognition, which we have applied to two different recognition scenarios: First, we have shown an application to the problem of semisupervised recognition of objects in clutter that does not involve image scanning. The system first computes a set of scale and translation-invariant C 2 features from a training set of images, which is then passed to a standard classifier on the vector of features obtained from the input image. The system was tested on several object databases and shown to outperform several more complex benchmark systems (e.g., the systems in [19] , [20] , [21] involve the estimation of probability distributions; [17] uses a hierarchy of SVMs and requires accurate correspondences between positive training images, i.e., 3D head models). Interestingly, the approach was shown to be able to learn from a few examples and could compete with generative models that use prior category information [21] . Second, we have described a new approach to scene understanding with an application to a StreetScenes database involving different types of rigid objects as well as texturebased objects. We found that the Standard Model Features (SMFs) constitute a flexible framework that can be used in conjunction with standard computer vision techniques, i.e., image scanning for the detection and localization of several target objects at multiple scales and image segmentation for the recognition of nonrigid texture-based objects. Comparison with benchmark systems: Table 2 summarizes the performance of the C 2 SMFs compared with other published results from benchmark systems: the constellation models by Perona et al. [19] , [20] , the hierarchical SVM-based facedetection system by Heisele et al. [17] and a standard system [18] that uses Ullman et al.'s fragments [26] and gentleBoost as in [45] . The performance measure reported is the accuracy at the equilibrium point, i.e., the accuracy point such that the false positive rate equals the miss rate. Results obtained with the C 2 SMFs are superior to previous approaches [17] , [18] on the MIT-CBCL data sets and comparable to the best systems [46] , [47] on the CalTech5 data sets. 5 Comparison with SIFT features: We also compared the C 2 SMFs to a system based on Lowe's SIFT features [27] . To perform this comparison at the feature level and ensure a fair comparison between the two systems, we neglected all position information recovered by Lowe's algorithm. It was recently suggested in [47] that structural information does not seem to help improve recognition performance. We selected 1,000 random reference key-points from the training set. Given a new image, we measured the minimum distance between all its key-points and the 1,000 reference key-points, thus obtaining a feature vector of size 1,000. 6 . The ROC results of this experiment are illustrated in Fig. 7 . For the two (C 1 and C 2 ) SMFs-based systems, the Grayscale as well as the Local Patch Correlation system, the classifier is gentleBoost, but we found very similar results with both a linear and a polynomial-kernel SVM. Overall, for all three object categories tested, the SMFs-based system performs best on cars and bicycles and second behind HoG on pedestrians (the HoG system was parameter-tuned in [52] to achieve maximal performance on this one class). Finally, for this recognition task, i.e., with a windowing framework, the C 1 SMFs seem to be superior to the C 2 SMFs. Indeed, the C 1 SMFs are adept at representing the object boundaries of these shape-based objects, which have strong interexample correspondence.. As shown in Fig. 8 , the SMFs-based texture system seems to consistently outperform the benchmarks (BW, T 1, T 2, and HoE). C 2 compared to C 1 SMFs may be better suited to this task because of their increased invariance properties and complexity. Hierarchical architectures have been shown to outperform single-template (flat) object recognition systems on a variety of object recognition tasks (e.g., face detection [17] and car detection [18] ). In particular, constellation models [19] , [20] , [21] have been shown to be able to learn to recognize many objects (one at a time) using an unsegmented training set from just a few examples [20] , [21] . Multilayered convolutional networks were shown to perform extremely well in the domain of digit recognition [4] , [5] and, more recently, generic object recognition [10] and face identification [22] .. The simplest and one of the most popular appearancebased feature descriptors corresponds to a small gray value patch [23] of an image, also called component [17] , [24] , part [19] , [25] , or fragment [26] . Such patch-based descriptors are, however, limited in their ability to capture variations in the object appearance: They are very selective for a target shape but lack invariance with respect to object transformations.. At the other extreme, histogram-based descriptors [27] , [28] , [29] have been shown to be very robust with respect to object transformations. Perhaps the most popular features are the SIFT features [27] , which excel in the redetection of a previously seen object under new image transformations and have been shown to outperform other descriptors [30] . However, as we confirmed experimentally (see Section 3.1.2), with such a degree of invariance, it is very unlikely that these features could perform well on a generic object recognition task.. The new appearance-based feature descriptors described here exhibit a balanced trade-off between invariance and selectivity. They are more flexible than image patches and more selective than local histogram-based descriptors. Though they are not strictly invariant to rotation, invariance to rotation could, in principle, be introduced via the training set (e.g., by introducing rotated versions of the original input).

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 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 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 O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O 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 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


Garbage collection of timestamped data in Stampede Stampede is a parallel programming system to facilitate the programming of interactive multimedia applications on clusters of SMPs.In a Stampede application, a variable number of threads can communicate data items to each other via channels, which are distributed, synchronized data structures containing timestamped data such as images from a video camera. Channels are not queue-like: threads may produce and consume items out of timestamp order; they may produce and consume items sparsely (skipping timestamps), and multiple threads (including newly created threads) may consume an item in a channel. These flexibilities are required due to the complex dynamic parallel structure of applications, to support increased parallelism, and because of real-time requirements.Under these circumstances, a key issue is the "garbage collection condition": When can an item in a channel be garbage collected?In this paper we specify precisely Stampede's semantics concerning timestamps, and we describe two associated garbage collection conditions-a weak condition, and a more expensive but stronger condition. We then describe a distributed, concurrent algorithm that implements these two GC conditions. We present performance numbers that show little or no application-level performance penalty to using this algorithm for aiding automatic garbage collection in a cluster. We conclude with some remarks about the implementation in the Stampede system. *This work has been funded in part by NSF grants MIPS-9630145 and CCR-9972216, and a research gift from Compaq Cambridge Research Lab.. 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 lbr 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. PODC 2000 Portland Oregon Copyright ACM 2000 1-58113-183-6/00/07...$5.00. In this paper we describe an unusual garbage collection (GC) problem and its solution.. There is an emerging class of important applications: sophisticated interactive systems that use vision and speech recognition to comprehend a dynamically changing environment and react in real time. Broadly speaking, such a system is organized as a pipeline of tasks processing streams of data, for example starting with sequences of camera images, at each stage extracting higher and higher-level "features" and "events", and eventually responding with outputs. Fig. 1 illustrates such a system. The task structure is usually a dynamic graph, more complex than a simple linear pipeline, and the "streams" are quite unlike FIFO queues. Items in a stream may be produced and consumed by multiple tasks both because the functionality demands it and because tasks may be replicated for greater performance. Although items have a natural ordering based on "time", they need not be produced nor consumed in that order. Items may be produced and consumed sparsely (non-consecutive timestamps). The producing and consuming tasks of a stream may not be known statically, e.g., in the figure the "Highfi" tracker task may only be created when the "Low-if' task detects something, and more than one "High-fi" task may be created to track multiple targets. In such an environment, garbage collection is a tricky issue-when can the resources occupied by an item in a stream be safely reclaimed?. Stampede is a programming system designed and built at CRL to simplify the programming of such applications [5, 4] . A Stampede program consists of a dynamic collection of threads communicating timestamped items through channels. Stampede's rules governing time and timestamps admit all the flexibility described in the previous paragraph, but still capture a notion of an overall forward progress of time. In this context, it is possible to determine certain lower time bounds below which all items are guaranteed to be garbage. This paper describes this system, the GC problem and its solution. We present related work in Sec. 2). In Sec. 3 we describe the computational system: threads, channels, connections, time, timestamps, and operations on these entities. We also describe the GC problem with respect to this system. In Sec. 4 we describe a simple "GC condition", i.e., a predicate that identifies garbage, and discuss its correctness. In Sec. 5 we describe a second GC condition that is more compficated (and expensive), but which is strictly Figure 1 : A simple vision pipeline (ovals are tasks, and rectangles are "streams" or "channels") more powerful (identifies more garbage) and solves a certain "progress" problem associated with the first GC condition. In Sec. 6 we discuss complexity and implementation cost. In Sec. 7 we describe a distributed, concurrent algorithm that implements the two GC conditions. Implementation details, and some performance notes are presented in Sec. 8. Finally, we conclude in Sec. 9 with some remarks about future work. The algorithms in this paper (and in our implementation) involve looking at all threads, all i_conns and all channels to calculate global minimums which are then used uniformly for GC on all channels. Our colleague K. Knobe has observed that we can exploit the "threads-and-channels graph" to segment these analyses, limiting them to smaller regions. The threads-and-channels graph is analogous to the traditional procedure call-graph in compilers, i.e., it is a graph which conservatively estimates which threads can create which other threads and which threads can attach to which channels, based on a static analysis of the application code. For example, if this graph indicates that a certain region of the graph R1 is always "upstream" from another region R2, then we can independently identify and collect garbage in R1 without considering R2. This idea is to be explored further in our future work. Another area of future work is consider communication link and node failures in implementing the Stampede computation model. The traditional GC problem (on which there is a large literature [7, 3] ) concerns reclaiming storage for heap-allocated objects (data structures) when they are no longer "reachable" from the computation. The "name" of an object is a heap address, i.e., a pointer, and GC concerns a transitive computation that locates all objects that are reachable starting with names in certain well-known places such as registers and stacks. In most safe GC languages, there are no computational operations to generate new names (such as pointer arithmetic) other than the allocation of a new object.. Stampede's GC problem is an orthogonal problem. 'The "name" of an object in a channel is its timestamp, i.e., the timestamp is an index or tag. Timestamps are simply integers, and threads can compute new timestamps.. Stampede's GC problem is somewhat analogous to the traditional problem of "black-holing space leaks". For example, consider a table (hash table, tree, association list, ...) that contains several objects. As long as the table itself is reachable, traditional GC will not reclaim any object in the table even if there are objects that will never be looked up in the future. "Black-holing" is an analysis and optimization that identifies such objects and reclaims them. Traditionally, black-holing is based on a flow analysis in the compiler. In Stampede, a channel is like a table, and the GC problem is to reason about time in order to identify items in the channel that will never be accessed in the future.. The terminology and the algorithms to be described in this paper are closely related to Global Virtual Time (GVT) calculation in Parallel Discrete Event Simulation [2] . Indeed, our distributed algorithms are inspired by knowledge of work in that area. However, there are many significant differences. PDES systems often work with static task graphs, and timestamps formally encode dependencies, so that tasks are required to process timestamps in timestamp order (optimistic systems have rollback/undo mechanisms if this is violated). In Stampede, task graphs can vary dynamically, timestamps may be consumed and produced sparsely, and timestamps may be consumed and produced out of order (the system does not associate correctness with this ordering).. A concrete context for Stampede would be an information kiosk in a public space such as an airport or shopping mall. Researchers at CRL have prototyped such kiosks and placed them in actual public environments [6, 1] , and this is a major motivator and concrete testbed for our work. Similar requirements exist in other systems that use vision/speech and react in real time to a changing environment, such as autonomous vehicles and virtual-reality simulators.

O O O O B O O O O O B O O O O O O O B I B O O O O O O O O O O O O O O B O O O O O O O O B O B I O O B O O O O O B 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 O O O O O O O O B B B O B 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 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 B O O O O O O O O B O O O O O O O B O O O O B 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 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 B O O O O O O O O O O O O O O O O O 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 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 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 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 B 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 O O O O O O O O O O O O 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 B O B O O O O O O O B O B 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 B 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 B O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Closures on CPOs Form Complete Lattices It is well known that closure operators on a complete lattice, ordered pointwise, give rise to a complete lattice, and this basic fact plays an important rô le in many fields of the semantics area, notably in domain theory and abstract interpretation. We strengthen that result by showing that closure operators on any directed-complete partial order (CPO) still form a complete lattice. An example of application in abstract interpretation theory is given. ] Closure operators (closures for short) have been extensively investigated from an order-theoretic viewpoint since the 1940s, and they find relevant applications in many fields of mathematics and theoretical computer science. In mathematics, closures play an important ro^le in algebra, logic, and topology (see, e.g., Gierz et al.'s (1980) ``compendium'' for a wide range of applications in topological algebra). In theoretical computer science, closures have been widely used in the semantics area, notably in domain theory (e.g., Abramsky and Jung, 1994; Sanchis, 1977) , in program semantics (e.g., Falaschi et al., 1997; Germano and Mazzanti, 1991) and in the theory of semantics approximation by abstract interpretation (Cousot and Cousot 1977, 1979b) . We have shown that closures on a CPO, ordered pointwise, form a complete lattice. The usefulness of this result stems from the relevant ro^le played by closure operators in numerous fields of the semantics area. As an example, we have applied it in abstract interpretation by providing a significant extension of the operation of abstract domain complementation. As a further example, let us mention that it could be successfully applied to extend the constructive methodologies of Giacobazzi et al. (1998) for minimally making abstract interpretations complete. In fact, by exploiting our result, Giacobazzi et al.'s assumption of dealing with concrete and abstract domains that are complete lattices may be relaxed to CPOs, thus enabling a significantly wider range of application in denotational semantics.

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 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 B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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


Storage Coding for Wear Leveling in Flash Memories Flash memory is a nonvolatile computer memory comprised of blocks of cells, wherein each cell is implemented as either NAND or NOR floating gate. NAND flash is currently the most widely used type of flash memory. In a NAND flash memory, every block of cells consists of numerous pages; rewriting even a single page requires the whole block to be erased and reprogrammed. Block erasures determine both the longevity and the efficiency of a flash memory. Therefore, when data in a NAND flash memory are reorganized, minimizing the total number of block erasures required to achieve the desired data movement is an important goal. This leads to the flash data movement problem studied in this paper. We show that coding can significantly reduce the number of block erasures required for data movement, and present several optimal or nearly optimal data-movement algorithms based upon ideas from coding theory and combinatorics. In particular, we show that the sorting-based (noncoding) schemes require O(n log n) erasures to move data among n blocks, whereas coding-based schemes require only O(n) erasures. Furthermore, coding-based schemes use only one auxiliary block, which is the best possible and achieve a good balance between the number of erasures in each of the n + 1 blocks. In this paper, we study the data movement problem for NAND flash memories. We present sorting-based algorithms that do not utilize coding, which can use as few as erasures for moving data among blocks. We show that coding techniques can not only minimize the number of auxiliary blocks, but also reduce the number of erasures to . In particular, we present a solution based on coding over that requires only erasures. We further present a linear-coding solution that requires at most erasures, which is worst-case optimal. Both solutions based on coding achieve an approximation ratio of two with respect to the minimum possible number of block erasures for each instance. They also balance the number of erasures in different blocks very well.. The data movement problem studied here can have numerous practical variations. In one variation, the data to be moved into each block are specified, but the order of the data in that block is allowed to be arbitrary. The algorithms presented in this paper can easily solve this variation of the problem by first assigning an arbitrary page order to each block (which does not affect the performance of the algorithms). In another variation, we are only given a specification as to which group of data needs to be moved into the same block, without specifying which block. Furthermore, the final data may be a function of the data originally stored in the blocks. Such variations require new solutions for optimal performance. They remain open for future research.

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 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 B I 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 B I 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


Analysis of optical waveguides with arbitrary index profile using an immersed interface method A numerical technique is described that can efficiently compute solutions in interface problems. These are problems with data, such as the coefficients of differential equations, discontinuous or even singular across one or more interfaces. A prime example of these problems are optical waveguides and as such the scheme is applied to Maxwell's equations as they are formulated to describe light confinement in Bragg fibers. It is based on standard finite differences appropriately modified to take into account all possible discontinuities across the waveguide's interfaces due to the change of the refractive index. Second and fourth order schemes are described with additional adaptations to handle matrix eigenvalue problems, demanding geometries and defects.Keywords: Finite differences, immersed interface method, high order finite difference method, coordinate stretching, Bragg fibers PACS: 02.70. Bf, 02.60.Lj, 02.60.Cb, 42.81.Qb, 41.20.Jb Light confinement due to cylindrical Bragg reflection instead of total internal reflection was first proposed more than three decades ago [1] and gave birth to the so-called Bragg fibers. These fibers attract considerable interest because of their ability to guide light in an air core; they are essentially dielectric coaxial fibers comprised of alternating circular layers with different indices of refraction. The key to making these fibers confine light efficiently, i.e., have low absorption loss and a high threshold power for nonlinear effects, is to use materials with a high index contrast [2, 3, 4, 5] . However, the high index contrast and the layered structure that gives these fibers their unique properties also makes them difficult to model.Mathematically, these problems are called interface problems since their input data (such as the coefficients of differential equations, source terms etc.) may be discontinuous or even singular across one or several interfaces. The solution to an interface problem, therefore, typically is non-smooth or even discontinuous across the interfaces. Interface problems occur in many physical applications, particularly for free boundary/moving interface problems, such as, the modeling of the Stefan problem of solidification process and crystal growth, composite materials, multi-phase flows, cell and bubble deformation, and many others [14] .Several methods have been proposed to study these problems, including asymptotic analysis [6] , the transfer matrix method [7] , finite element methods [8, 9] , special func- We presented a numerical method based on the immersed interface method that can be used to obtain the propagation modes of circularly symmetric Bragg fibers with arbitrary index profiles. In its original formulation the method is second order accurate and was applied to boundary value problems with discontinuous and/or singular coefficients. We extended this method to matrix eigenvalue problems and to higher accuracy. Cumbersome integrations or finding roots of nontrivial functions, such as Bessel functions, are avoided and computational time is minimized without sacrificing accuracy. All modes can be determined and excellent results are achieved even for fibers with complicated structure. Even when the geometry of the fiber is rather demanding, as in Omniguide fibers, a coordinate stretching can be applied to keep computation time to a minimum.

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 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 O O O O O O O O O O O O O O O O O B I B I I O O O O O B I 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 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 B I 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 O O O O O 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


Limitations on the simulation of non-sparse Hamiltonians The problem of simulating sparse Hamiltonians on quantum computers is well studied. The evolution of a sparse N ×N Hamiltonian H for time t can be simulated using O( Ht poly(log N )) operations, which is essentially optimal due to a no-fast-forwarding theorem. Here, we consider non-sparse Hamiltonians and show significant limitations on their simulation. We generalize the no-fast-forwarding theorem to dense Hamiltonians, ruling out generic simulations taking time o( Ht ), even though H is not a unique measure of the size of a dense Hamiltonian H. We also present a stronger limitation ruling out the possibility of generic simulations taking time poly( Ht , log N ), showing that known simulations based on discrete-time quantum walk cannot be dramatically improved in general. On the positive side, we show that some non-sparse Hamiltonians can be simulated efficiently, such as those with graphs of small arboricity. One of the primary applications of quantum computers is the simulation of quantum systems. Indeed, it was the apparent exponential time complexity of simulating quantum systems on a classical computer that led Feynman to propose the idea of quantum computation [14] .. In addition to predicting the behavior of physical systems, Hamiltonian simulation has algorithmic applications. For example, the implementation of a continuous-time quantum walk algorithm is a Hamiltonian simulation problem. Examples of algorithms that can be implemented using Hamiltonian simulation methods include unstructured search [13] , adiabatic optimization [12] , a quantum walk with exponential speedup over classical computation [8] , and the recent NAND tree evaluation algorithm [10] .. In the Hamiltonian simulation problem, our goal is to implement the unitary operator e −iHt for some given Hamiltonian H and time t. We say that a Hamiltonian H acting on an N -dimensional quantum system can be simulated efficiently if there is a quantum circuit using poly(log N, t, 1/ǫ) one-and two-qubit gates that approximates (with error at most ǫ) the evolution according to H for time t. (Of course, we can rescale t by rescaling H, so the complexity of simulating H for time t must also depend on some measure of the size of H, as discussed in more detail below.) Efficient simulations are known for various classes of Hamiltonians. For example, a Hamiltonian for a system of qubits can be simulated efficiently whenever it is local, meaning that it is a sum of terms, each of which acts on a constant number of qubits [18] . More generally, a Hamiltonian H can be simulated efficiently if it is sparse (i.e., has only poly(log N ) nonzero entries per row) and efficiently row-computable (i.e., there is an efficient means of computing the indices and the matrix elements of the nonzero entries in any given row) [1] .. These conditions lead to a convenient black-box formulation of the problem, in which a black box can be queried with a row index j and an index i to obtain the i th nonzero entry in the j th row. This black box can be implemented efficiently provided that H is efficiently row-computable. A series of results has decreased the number of black-box queries, in terms of N , from the original O(log 9 N ) [1] , to O(log 2 N ) [6] , to O(log * N ) [4] . In particular, Berry, Ahokas, Cleve, and Sanders [4] present an almost linear-time algorithm for simulating sparse Hamiltonians with query complexity. where d is the maximum number of nonzero entries in any row and ǫ is the maximum error permitted in the final state (quantified in terms of trace distance). The dependence of (1) on the simulation time is nearly optimal, since it is not possible to simulate a general sparse Hamiltonian for time t using o(t) queries. Intuitively, there is no generic way to fast-forward through the time evolution of quantum systems. More formally, Theorem 1 (No-fast-forwarding theorem [4, Theorem 3] ). For any positive integer N there exists a row-computable sparse Hamiltonian H with H = 1 such that simulating the evolution of H for time t = πN/2 within precision 1/4 requires at least N/4 queries to H.. More recently, methods have been presented for simulating a Hamiltonian H that is not necessarily sparse. Of course, we do not expect to efficiently simulate a general Hamiltonian, simply because there are too many Hamiltonians to consider (just as we cannot hope to efficiently implement a general unitary operation [17] ). However, we can conceivably efficiently simulate non-sparse Hamiltonians with a suitable concise description. In particular, by applying phase estimation to a discrete-time quantum walk derived from H, one can simulate H for time t in a number of walk steps that grows only linearly with t [7] . More precisely, we have Theorem 2. For any Hermitian matrix H, there is a discrete-time quantum walk on the graph of nonzero entries of H such that e −iHt can be simulated with error at most δ using O( abs(Ht) / √ δ) steps of the walk, where abs(H) is the matrix with entries abs(H) jk = |H jk |.. Of course, to apply this result, we must implement the discrete-time quantum walk derived from H. This can be done efficiently for various concisely specified non-sparse Hamiltonians [7] . Note that the same theorem holds with abs(H) replaced by H 1 (a matrix norm defined in Section 2); this quantity is generally larger than abs(H) , but the resulting walk may be easier to implement.. Notice that the overhead of this simulation is proportional not to the spectral norm H , but to a measure of the size of H that can be much larger when some entries of H are negative (or more generally, complex). This naturally raises the question of whether an improved simulation is possible. In the present article, we examine this possibility. Unfortunately, our main result is negative: there is no general Hamiltonian simulation algorithm that uses only poly( Ht , log N ) steps (Theorem 4).. The remainder of this article is organized as follows. In Section 2, we introduce various matrix norms that arise when quantifying the complexity of Hamiltonian simulation and relate them to one another. We then move on to lower bounds for non-sparse Hamiltonians in Section 3, where we describe how the no-fast-forwarding theorem can be modified to give a lower bound that depends on the spectral norm rather than various smaller measures of the size of a Hamiltonian. Then, in Section 4, we present the main result, an example of a family of Hamiltonians with abs(H) ≫ H that cannot be simulated in time poly( Ht , log N ). We then turn to upper bounds in Section 5, and investigate how certain structured Hamiltonians can be simulated in time O( Ht )-in particular, we give a positive result on the simulation of Hamiltonians whose graphs have small arboricity. 1 Finally, we conclude in Section 6 with a discussion of open problems.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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


Empirical Evaluation of User Models and User-Adapted Systems Abstract. Empirical evaluations are needed to determine which users are helped or hindered by user-adapted interaction in user modeling systems. A review of past UMUAI articles reveals insuf¢cient empirical evaluations, but an encouraging upward trend. Rules of thumb for experimental design, useful tests for covariates, and common threats to experimental validity are presented. Reporting standards including effect size and power are proposed.Key words: empirical evaluation, experimental design, covariant variables, e¡ect size, treatment magnitude, power, sensitivity.Empirical evaluation refers to the appraisal of a theory by observation in experiments. The key to good empirical evaluation is the proper design and execution of the experiments so that the particular factors to be tested can be easily separated from other confounding factors. For example, one may want to test whether a software system with a user model works better than the same system without a user model, test the effect of different levels of user modeling or different user model parameter settings, or test different user interfaces. These factors, which are under the control of the experimenter, are termed independent variables because their values can be varied independently of other variables by the experimenter. Dependent variables are variables whose values depend on the values of other variables. They include response variables or recorded measures such as the frequency/extent of certain behaviours (e.g., system usage), qualities of a behavior in a particular situation, number of errors, error rate, time to complete a task, proportion/quality of tasks achieved, interaction patterns, learning time/rate, and/or subjective evaluations (e.g., user satisfaction). Some dependent variables can only be measured indirectly such as cognitive load measured through blood pressure or pupil dilation.In an ideal experiment, only the independent variables are varied and everything else is ¢xed so that any changes in the dependent variables can be directly attributed to the variations in the independent variables. Unfortunately, such ideal control is Although the user modeling community is starting to embrace empirical evaluation, there is still a long way to go. As researchers and as reviewers, our community can do more to educate both one another and ourselves about empirical evaluation techniques and to encourage more empirical evaluation. We can also adhere to better reporting standards for empirical evaluations and avoid bias against reports of properly designed and executed experiments with statistically insigni¢cant results. Hopefully the next ten years of UMUAI will see empirical evaluations become common practice in user modeling.

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 B I O O O O O O O O O O O O O O O B I O B O O O B I B I B I O O B I B 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 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 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


A characterization of the (natural) graph properties testable with one-sided error Abstract The meta problem in the area of property testing is the following: Given a combinatorial structure S, distinguish if S satisfies some property P or if S is -far from satisfying P, where S is said to be -far from satisfying P if anfraction of its representation should be modified in order to make S satisfy P. The main goal is to design randomized algorithms, which look at a very small portion of the input, and using this information distinguish with high probability between the above two cases. Such algorithms are called property testers or simply testers for the property P. Preferably, a tester should look at a portion of the input whose size is a function of only. Blum, Luby and Rubinfeld [11] were the first to formulate a question of this type, and the general notion of property testing was first formulated by Rubinfeld and Sudan [25] , who were motivated in studying various algebraic properties such as linearity of functions.. The main focus of this paper is in testing properties of graphs. In this case a graph G, is said to be -far from satisfying a property P, if one needs to add/delete at least n 2 edges to G in order to turn it into a graph satisfying P. A Tester for P should distinguish with high probability, say 2/3, between the case that G satisfies P from the case that G is -far from satisfying P. Here we assume that the tester can query some oracle, whether a pair of vertices, i and j, are adjacent in the input graph G. In what follows we will say that a tester for a graph property P has one-sided error if it accepts any graph satisfying P with probability 1 (and rejects those that are -far with probability at least 2/3 just like a standard tester). If the tester may reject graphs satisfying P with non-zero probability then it is said to have two-sided error.. The study of the notion of testability for combinatorial structures, and mainly for labelled graphs, was introduced in the seminal paper of Goldreich, Goldwasser and Ron [17] . In this paper it was shown that many natural graph properties such as k-colorability, having a large clique and having a large cut, have a tester, whose query complexity (that is, the number of oracle queries of type "does (i, j) belong to E(G)") can be upper bounded by a function that depends only on and is independent of the size of the input. In this paper we will say that properties having such efficient testers, that is, whose query complexity can be upper bounded by a function of only, are simply testable. Note, that if the query complexity of a tester can be upper bounded by a function of only, then so can its running time. Following [17] , many other graph properties were shown to be testable, while others were shown to be non-testable.. The most interesting results in property-testing are those that show that large families of problems are testable. The main result of [17] states that a certain abstract graph partition problem, which includes as special cases k-colorability, having a large cut and having a large clique, is testable. The authors of [18] gave a characterization of the partition problems discussed in [17] that are testable with one-sided error. In [3] , a logical characterization of a family of testable graph properties was obtained. According to this characterization, every first order graph-property of type ∃∀ (see Subsection 2.3.2) is testable, while there are first-order graph properties of type ∀∃ that are not testable. These results were extended in [13] . There are also several general testability and non-testability results in other areas besides testing graph properties. In [4] it is proved that every regular language is testable. This result was extended to any readonce branching program in [21] . On the other hand, it was proved in [16] , that there are read-twice branching programs that are not-testable. The main result of [7] states that any constraint satisfaction problem is testable.. With this abundance of general testability results, a natural question is what makes a combinatorial property testable. As graphs are the most well studied combinatorial structures in the theory of computation, it is natural to consider the problem of characterizing the testable graph properties, as the most important open problem in the area of property testing. Regretfully, though, finding such a characterization remains a challenging open problem. The main result of this paper, Theorem 2.2, resolves an important natural special case of this open problem, which concerns property testers with one-sided error. For additional results and references on graph property-testing as well as on testing properties of other combinatorial structures, the reader is referred to [14] and [24] .

O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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


Formalizing and verifying protocol refinements A (business) protocol describes, in high-level terms, a pattern of communication between two or more participants, specifically via the creation and manipulation of the commitments between them. In this manner, a protocol offers both flexibility and rigor: a participant may communicate in any way it chooses as long as it discharges all of its activated commitments. Protocols thus promise benefits in engineering cross-organizational business processes. However, software engineering using protocols presupposes a formalization of protocols and a notion of the refinement of one protocol by another. Refinement for protocols is both intuitively obvious (e.g., PayViaCheck is clearly a kind of Pay) and technically nontrivial (e.g., compared to Pay, PayViaCheck involves different participants exchanging different messages). This article formalizes protocols and their refinement. It develops Proton, an analysis tool for protocol specifications that overlays a model checker to compute whether one protocol refines another with respect to a stated mapping. Proton and its underlying theory are evaluated by formalizing several protocols from the literature and verifying all and only the expected refinements. We focus our attention on business service engagements as realized over the Internet. In current practice, such an engagement is defined rigidly and purely in operational terms. Consequently, the software components of the business partners involved are tightly coupled with each other, and depend closely on the engagement specification. Even small changes in one partner's components must be propagated to others, even when such changes are inconsequential to the business being conducted. Conversely, if the model leaves the engagements unstructured, humans must carry out the necessary interactions manually, with concomitant loss in productivity. We motivate protocols as providing a happy middle ground between rigid automation and flexible manual execution.. Specifically, in contrast with traditional approaches, we model each partner as an autonomous agent. The agents participate in a (business) protocol to realize a service engagement. A protocol describes a pattern of communication between agents. Based on the foregoing, we formulate the following key requirements on a suitable formalization of protocols. First, a protocol is public, meaning that it pertains to the messages sent and received by participating agents, not how these agents are implemented. Thus, the semantics of a protocol should depend solely on the communications of the agents enacting it, not on their internal policies. Second, the semantics should capture the business meanings of the messages, thereby avoiding operational constraints, and thus enabling the agents to deal better with exceptions and opportunities [Yolum and Singh 2002] . Third, the semantics should be modular: an agent who enacts a protocol correctly may concurrently enact additional protocols. Fourth, designing engagements using protocols presupposes that we support engineering methodologies such as those based on stepwise refinement. We address the preceding criteria for protocols with an emphasis on their refinement.. We understand a protocol semantically in terms of exactly the set of runs (i.e., computations) that it allows. Following Mallya and Singh [2007] , we posit that a putative subprotocol refines a putative superprotocol if and only if each run allowed by the subprotocol is also allowed by the superprotocol. In general, a subprotocol would include additional roles and actions: in determining refinement, we disregard those that do not feature in the superprotocol. Doing so facilitates modularity, enhanceability, and reuse of protocols.. Consider a simple protocol Pay consisting of two actions where a payer first commits to paying a payee, and next pays. Now consider a protocol PayViaMM where the payer first pays a middleman, who in turn pays the payee. Both Pay and PayViaMM send a payment from the payer to the payee. Even though PayViaMM involves an additional role (middleman) and PayViaMM uses different messages (two payment messages instead of one), we expect PayViaMM refines Pay, because PayViaMM makes a payment as Pay specifies. Similarly, we expect PayViaCheck and PayViaCredit also refine Pay. We imagine a service engagement design exercise where protocol designers begin by identifying the need for payment as Pay, then refine it to PayViaMM , and then to PayViaCheck . The designers may build or find an existing repository of protocols (analogous to taxonomies of business processes [Malone et al. 2003] ). The question we address is how can protocols in such a repository be expressed so that their refinements can be rigorously verified. Commitments support finer guard granularity than propositions can. A proposition divides time into two stages: before and after it holds. A commitment divides time into four stages: null, active and conditional, active and detached, and resolved.. Rather than waiting for final resolution, a protocol can make progress sooner if an action's guard is enabled after one of the first three stages. Commitments increase protocol flexibility, because guards can specify earlier stages. For example, suppose the Buyer role in OrderPayShip decides whether to pay based on the state of proposition ship. Since ship has only two stages, the role's decision can only be "all" (ship complete) or "nothing" (ship not complete). The "all" choice is represented by the guarded statement [ship] pay, and the "nothing" choice is represented by [true] pay. Using commitments, the protocol can guard pay based on any of the four commitment stages. A guard can enable pay as soon as the debtor commits to make ship true.. [CREATE(C Seller,Buyer (pay, ship))] pay Incorporating commitments can improve flexibility over traditional protocol frameworks.. A necessary prerequisite of employing protocols is that the participants of a service engagement agree on the format and meanings of the messages they exchange. Note that such agreement is unavoidable: it is just that in today's practice the meanings are not expressed clearly and explicitly and any agreements are hardcoded in implementations.. Our definition of protocol refinement does not mean agents that can participate in a superprotocol can necessarily participate unchanged in a subprotocol. In our model, agents may need to be modified to participate in subprotocols. For example, an agent capable of participating in a basic payment protocol needs to handle the additional messages required in paying via check or credit card.

O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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


Games for complexity of second-order call-by-name programs We use game semantics to show that program equivalence and program approximation in a secondorder fragment of Idealized Algol are PSPACE-complete. The result relies on a PSPACE construction of deterministic finite automata representing strategies defined by second-order programs and is an improvement over the at least exponential space bounds implied by the work of other authors in which extended regular expressions were used.The approach makes it possible to study the contribution of various constructs of the language to the complexity of program equivalence and demonstrates a similarity between call-by-name game semantics and call-by-name interpreters. Game semantics views computation as an exchange of moves between two players, who represent respectively the program under evaluation and the environment in which the program is evaluated. Programs can then be interpreted as strategies for the first player. This approach has led to the construction of first fully abstract models for a variety of programming languages, i.e. models in which the interpretations of two programs coincide if and only if the programs are equivalent [3, 13, 4, 5, 12, 16, 2, 7] . The game models provide a semantic characterization of program equivalence and make it possible to recast questions about equivalence of programs as semantic problems. However, reasoning about programs with game models is not so easy, especially if one has automation in mind. Firstly, to achieve full abstraction, equivalence classes of strategies need to be considered instead of strategies, and in general the relation involved (the so-called intrinsic preorder) is very intricate. Secondly, positions arising in game semantics are not merely sequences of moves. In addition, they are endowed with pointers that connect moves subject to a number of combinatorial constraints.. The case of Idealized Algol in which expressions may have side effects is much more satisfying. There, the above-mentioned quotient set admits a direct characterization based on complete plays-plays that correspond to terminating computations. Consequently, the first obstacle is removed: questions about program equivalence (respectively approximation) can be restated as equivalence (respectively containment) queries for the induced sets of complete positions. Moreover, when one restricts the language to second order, positions can be treated as strings of moves, because the pointer structure is uniquely reconstructible and hence redundant. Then it turns out that complete plays generated by second-order programs form regular languages [10] , which immediately implies decidability of secondorder program equivalence and approximation, because the problems of equivalence and containment of regular languages are decidable.. Two expositions of the regular game semantics exist [1, 10] , both employing a class of semi-extended regular expressions with intersections to describe the sets of complete plays generated by programs. Because the equivalence and containment problems for such expressions are known to be EXPSPACE-complete, one might suspect that the corresponding problems concerning programs will inherit this complexity (intersections are crucial for modelling state). In this paper we show that this is not the case: program approximation as well as program equivalence in the fragment of Idealized Algol considered in these papers are in fact both PSPACE-complete.. Our approach consists of a direct construction of deterministic automata which represent the game semantics of programs. In order to avoid the use of exponential space this process has two stages: first we construct the automaton corresponding to programs in which state changes are not observed; then we refine it so that state changes are respected. Because the construction is conducted in polynomial space, and both equivalence and containment of deterministic automata are NL-complete, one can obtain a PSPACE algorithm for program approximation and equivalence by combining the two in a careful way.. To our knowledge this is the first time a complexity result like this has been proved using a denotational model. We have investigated the complexity of a simple imperative programming language IA 2 using its game model. Our results (Theorems 29 and 31) are summarized in the table below, where the right column refers to the complexity of program equivalence in the respective fragment (in each case it turned out that program approximation had the same complexity as program equivalence). One might also ask how the presence of state affects the complexity. For purely functional programs (without !, := or new) our approach still implies a PSPACE algorithm, since the automata involved can have exponential size because of procedures. Without them however, a PTIME algorithm can be extracted. On the other hand, it is known that IA 2 enriched with a let construct for procedures (i.e. IA 2 with -abstraction and application extended to all IA 2 types) can also be captured by regular languages [11] . After inlining the let's each IA 2 +let term becomes a (potentially exponentially larger) IA 2 term, so our approach would yield an EXPSPACE algorithm in this case. We were unable to prove completeness in these cases though.. As future work we plan to investigate the complexity of call-by-value programs. The categorical framework for modelling call-by-value [3] is more complicated than that of call-by-name models and the game model is not understood as well as for call-by-name. However, call-by-value fragments with regular semantics have already been found in [9] (for block-allocated variables) and in [18] (for a fragment of ML).

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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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