Characterizing chip-multiprocessor variability-tolerance Spatially-correlated intra-die process variations result in significant core-to-core frequency variations in chip-multiprocessors. An analytical model for frequency island chip-multiprocessor throughput is introduced. The improved variability-tolerance of FI-CMPs over their globally-clocked counterparts is quantified across a range of core counts and sizes under constant die area. The benefits are highest for designs consisting of many small cores, with the throughput of a globally-clocked design with 70 small cores increasing by 8.8% when per-core frequency islands are used. The smallcore FI-CMP also loses only 7.2% of its nominal performance to process variations, the least among any of the designs. Process variability from a range of sources is growing as technology scales, resulting in increasingly nonuniform transistor delays within each die. Meanwhile, scaling has allowed designers to integrate a growing number of processor cores, giving rise to true chip-multiprocessors (CMPs). Individual cores are thus becoming small enough that spatiallycorrelated intra-die process variations manifest themselves as core-to-core (C2C) power and performance variations [6] .. Prior studies of C2C variations were limited to globallyclocked (GC) designs [3] [6] . However, commercial CMPs such as AMD's quad-core Barcelona now offer per-core frequency scaling to enable fine-grained power control. Such frequency island (FI) designs have increased variability-tolerance because the impact of any slow path can be limited to the core containing it. Designs with a larger number of smaller cores are better able to isolate variations. However, the throughput of such designs is less sensitive to core frequency than that of designs with fewer, larger cores due to higher contention for the memory system [3] .. To quantify the magnitude of these effects, an analytical model for frequency island chip-multiprocessor (FI-CMP) throughput is developed. Monte Carlo analysis is performed over generated variation maps for four constant-area CMP configurations with different core counts and sizes.. It is demonstrated that per-core frequency control yields the greatest performance improvements for CMPs consisting of many small cores. When running a large number of application threads, moving to frequency islands increases the throughput of a design with 70 small cores by 8.8%, while a design with seven large cores in the same die area only sees an improvement of 5.4%. Moreover, the small-core FI design displays the highest variability-tolerance, losing the smallest amount (7.2%) of its nominal performance to variations.. Sensitivity to the number of application threads is examined and it is shown that the small-core frequency island design displays the best variability-tolerance across thread counts. The qualitative results are demonstrated to be insensitive to the magnitude and spatial correlation of the process variation.. The main contribution of this paper is an analytical model for the throughput of FI-CMPs and its use it to quantify the performance benefits of the FI design style across a range of CMP designs. Results show that a small-core FI-CMP displays the best variation-tolerance across application thread counts and variation parameters.. Section 2 presents an overview of related work. Section 3 details the model used for chip-multiprocessor throughput, while Section 4 explains the process variation model. Sections 5 and 6 present the experimental methodology and results. Section 7 concludes the paper. Current chip-multiprocessor designs implement per-core frequency scaling to enable fine-grained power control. Designers can use per-core frequency control to isolate the impact of slow paths to the cores they occur in and thus reduce the amount of performance lost to variability.. The throughput of globally-clocked and frequency island CMPs was compared across a range of core counts, core sizes, thread counts, and variability parameters. Designs with more, smaller cores were found to have higher variabilitytolerance than those with fewer, larger cores, and the FI design style always increased variability-tolerance. A design consisting of many small cores in a frequency island organization was found to consistently show the greatest throughput improvement over its globally-clocked counterpart and was found to have the best variability-tolerance overall. Marculescu and Talpes considered using frequency islands to address variability in single-core designs and reported the mean frequency increases that could be obtained for each clock domain [7] . However, CMP designs are better suited to being partitioned into FIs because synchronization only needs to be performed between the cores and shared cache, reducing the frequency of interdomain communication.. Humenay et al. modeled the impact of intra-die variation due to lens aberrations on C2C frequency variation in a CMP [6] . They examined using adaptive body-biasing or adaptive supply voltage to speed up slower cores, but both had significant power overhead. Teodorescu et al. evaluated using ABB to improve both power and performance [10] .. Real variation patterns are noisier than the smooth one used by Humenay et al. Masuda et al. examined the characteristics of intra-die variation from fabricated wafers [8] . Work by Sarangi et al. focused on generating artificial intradie variation maps with realistic spatial correlation [9] .. Bowman et al. presented an analytical throughput model for globally-clocked CMPs (GC-CMPs) and examined the sensitivity of several CMP designs' throughputs to process variations [3] . However, they assumed completely parallel workloads and only analyzed performance variation rather than the relative performance of the designs. Starting from their work, this paper develops a model for FI-CMPs running workloads composed of serial and parallel execution.

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


Consistency maintenance for evolving feature models Software product line (SPL) techniques handle the construction of customized systems. One of the most common representations of the decisions a customer can make in SPLs is feature models (FMs). An FM represents the relationships among common and variable features in an SPL. Features are a representation of the characteristics in a system that are relevant to customers.FMs are subject to change since the set of features and their relationships can change along an SPL lifecycle. Due to this evolution, the consistency of FMs may be compromised. There exist some approaches to detect and explain inconsistencies in FMs, however this process can take a long time for large FMs.In this paper we present a complementary approach to dealing with inconsistencies in FM evolution scenarios that improves the performance for existing approaches reducing the impact of change to the smallest part of an FM that changes. To achieve our goal, we formalize FMs from an ontological perspective and define constraints that must be satisfied in FMs to be consistent. We define a set of primitive operations that modify FMs and which are responsible for the FM evolution, analyzing their impact on the FM consistency. We propose a set of predefined strategies to keep the consistency for error-prone operations.As a proof-of-concept we present the results of our experiments, where we check for the effectiveness and efficiency of our approach in FMs with thousands of features. Although our approach is limited by the kinds of consistency constraints and the primitive operations we define, the experiments present a significant improvement in performance results in those cases where they are applicable. Software product line (SPL) engineering has emerged as one of the most promising software development paradigms for reducing development costs, enhancing quality, and shortening time to market (Clements & Northrop, 2001; Pohl, Bockle, & van der Linden, 2005; Sugumaran, Park, & Kang, 2006 ). An SPL is ''a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way'' (Clements & Northrop, 2001) . Features are essential abstractions of product characteristics relevant to customers and are typically increments in product functionality (Benavides, Segura, & Cortes, 2010; Kang, Lee, & Donohoe, 2002) . Every product or system of an SPL is represented by a unique combination of features. All the products in an SPL are usually captured in feature models (FMs) which describe the commonalities and variabilities of systems in terms of features (Kang, Cohen, Hess, Novak, & Peterson, 1990; Kang et al., 2002) . An FM is a tree-like structure that contains the relationships among features in a hierarchical manner. Relationships can be of different kinds to remark which are the choices a customer can make to build a customized product.. As any other software systems, SPLs are subject to changes and evolution along their lifecycle. Those changes can affect FMs (Sugumaran et al., 2006) . Even small changes to an FM could unintentionally break its consistency (Guo & Wang, 2010; Thum, Batory, & Kastner, 2009 ). Here, the consistency of an FM means that it remains well-formed (syntactic consistency) and it defines at least a valid product (semantic consistency). For example, the removal of a single feature from an FM, although could be valid from the point of view of FM syntax, could invalidate other related features, which must also be removed to make the resulting FM consistent. Inconsistency usually comes from contradictory constraints which impede producing any valid product (von der MaBen & Lichter, 2004) . Consistent FMs are needed to any further steps in SPL engineering such as verifying product derivation (Lutz, 2008) or checking for the consistency of product requirements (Lauenroth & Pohl, 2008) . Therefore, guaranteeing the FM consistency is a mandatory task in SPL development.. Many approaches have been proposed to automate the detection of inconsistencies in FMs . They mostly use SAT (Batory, 2005; Thum et al., 2009 ), BDD (Czarnecki & Wasowski, 2007) , or CSP solvers (Benavides, Martin-Arroyo, & Cortes, 2005; Trinidad, Benavides, Duran, Ruiz-Cortes, & Toro, 2008) to automate the checking process. However, these approaches suffer from an NP-hard problem of feature combinatorics and take a long time to perform with large FMs (Batory, Benavides, & Ruiz-Cortes, 2006) . Reports from industry have shown that practical FMs could have hundreds or thousands of features (Loesch & Ploedereder, 2007; Steger et al., 2004) , so existing approaches can take hours or days to detect inconsistencies.. Moreover the information obtained from these detection mechanisms hardly assists domain analysts to resolve inconsistencies in FMs. Existing approaches delegate the reparation of inconsistent FMs to domain analysts who must use their experience to find the best way to repair those FMs. The impact of performance and manual reparation gets worse since FMs frequently change during their evolution processes and the consistency of the resulting FMs has to be checked after every change.. This paper approaches the problem of consistency maintenance in FMs focusing on the changes since last version of an FM rather than checking the overall consistency of the resulting FM. We assume that the initial FM is consistent and study if a requested change affects the consistency or not. In case an inconsistency is detected, a set of additional operations are executed to restore the consistency of the FM. For example, the removal of a single feature X from an FM initially only affects those features that are directly connected to it. To restore the consistency, the surrounding relations of feature X are removed. What if the removal of a relationship generates a new inconsistency? In the worst case, the operation derivation could propagate to the whole FM; but in most cases it only affects a limited range, that is where the main improvement in performance comes.. Our approach relies on ontology, which is a formal and explicit specification of a shared conceptualization of a domain of interest (Gruber, 1993) . In our case we formalize FMs in Section 3, defining the primitive elements of FMs and the syntactical and semantic consistency constraints as the well-formedness rules of FMs. From this formalization, in Section 4 we obtain a set of primitive operations (Guo & Wang, 2010) which can represent any modification of an FM.. In Section 5 we apply and extend techniques from ontology evolution (Haase & Stojanovic, 2005; Stojanovic, 2004) to propose a systematical approach to consistency maintenance for evolving FMs. A dependency matrix, indicating the cause and effect relationships between changes, is built for supporting the derivation of additional operations from the requested change. Then we analyze the possible evolution strategies for all the primitive operations on FMs and propose a sequence of interdependent operations derived from the requested change to produce a unique consistent FM.. To demonstrate the realization of our approach, Section 6 presents the implementation of our approach based on FeatureIDE. 1 Section 7 evaluates our approach by experiments on randomly generated FMs with thousands of features. Section 9 briefly analyses the pros and cons of our approach and presents some future extensions of our work.. In order to introduce the readers in the context of our work, we complement our work with a brief definition of FMs in Section 2 and a discussion about the related work in Section 8. This paper proposes an approach to consistency maintenance for evolving FMs. We formalize FMs from an ontological perspective and suggest a set of syntactical and semantic consistency constraints as the well-formedness rules of FMs. We generate a set of primitive operations on FMs and analyze their interrelationships. By analyzing the semantics of change to FMs, the process of resolving a requested change to an FM and maintaining the consistency of the FM is decomposed as a sequence of interdependent operations. The dependency matrix and evolution strategies are introduced to obtain and organize the operations sequence. Our approach is implemented and applied to randomly generated FMs. By experiments, we verify that our approach can effectively and efficiently maintain the consistency of evolving FMs with thousands of features.. Our approach identifies a desirable property of FMs whose consistency maintenance can be achieved by construction. It is particularly suitable for incremental management of FMs and their evolution in practice.. Our approach improves significantly the complexity of the problem since we do not study a whole FM but the only part that changes since last consistent version. Although our approach depends on the completeness of the consistency constraints and the primitive operations we define, and if there were any situations where they are not applicable, previous approaches can still be applied. So our approach has to be seen as an optimization for those cases where our consistency constraints and primitive operations can apply.. Although FMs are the most popular kind of variability models, there are other alternatives that are still used and that we think our approach can be adapted to support consistency maintenance. Specifically, we plan to apply our approach to FMs with attributes , OVMs (Metzger et al., 2007) , and requirements consistency checking (Lauenroth & Pohl, 2008) . Many formalizations and notations of FMs have been proposed (Batory, 2005; Czarnecki et al., 2005; Kang et al., 1990) . Schobbens et al. formalized feature diagrams and detailed their generic semantics through a generic construction called Free Feature Diagrams (Metzger et al., 2007; Schobbens et al., 2006 Schobbens et al., , 2007 . However, there is a lack of detailed discussions about operations on FMs and their interrelationships. We give a new formalization of FMs from an ontological perspective. Based on this, we can easily obtain the primitive elements of FMs and then generate a set of primitive operations on FMs.. Some researchers classified the modifications of FMs as specializations (Czarnecki et al., 2005) , refactorings (Alves et al., 2006) , generalizations (Alves et al., 2006; Thum et al., 2009) , or arbitrary edits (Thum et al., 2009 ). Czarnecki et al. (2005) introduced specializations for deriving configurations of an FM, which result in FMs where some products are deleted. Janota and Kiniry (2007) formalized specifications between two FMs having the same set of features. Alves et al. (2006) discussed refactorings and generalizations that maintain the set of products or add new products to an SPL. They also suggested 16 operations for refactorings and generalizations. Thum et al. (2009) complemented five additional operations for arbitrary edits. These operations work at a high level to explain the effects of FM evolution, but they are still not enough to explain the details of the FM evolution process. That is, how one changes an FM X into a target FM Y using a sequence of concrete and sound operations is still not obvious. We suggest a set of primitive operations on FMs by the cross product of all of FM primitive elements and three meta-changes. We do not think primitive operations are better than those aggregated or high-level operations because primitive operations could aggravate the consistency problem (many primitive operations will necessarily leave an FM in an inconsistent state). However, primitive operations are fit to explain the details of resolving a requested change to an FM and maintaining the consistency of the FM.. von der MaBen and Lichter (2004) proposed a framework for describing deficiencies of FMs. They characterized inconsistency as one of the most severe deficiencies of FMs. They also identified four situations that lead to semantic inconsistencies of FMs. Based on their work and Schobbens et al.'s (Metzger et al., 2007; Schobbens et al., 2006 Schobbens et al., , 2007 , together with our ontology-based formalization of FMs, we define a set of syntactical and semantic consistency constraints as the well-formedness rules of FMs.. Many approaches focus on automated analysis of deficiencies of FMs . Mannion (2002) first used propositional formulas to analyze FMs. Batory (2005) proposed an approach to debugging FMs using off-the-shelf SAT solvers. Czarnecki and Wasowski (2007) applied BDD tools to analyze FMs. Benavides et al. (2005) first adopted constraint programming to analyze FMs. Wang, Li, Sun, Zhang, and Pan (2005) first proposed the automated analysis of FMs using description logic. These approaches mostly use SAT (Batory, 2005; Thum et al., 2009 ), BDD (Czarnecki & Wasowski, 2007) , CSP solvers (Benavides et al., 2005) , or description logic reasoning engines (Wang et al., 2005) to automate various reasoning tasks, e.g., checking satisfiability, detecting ''dead'' features, computing commonalities. They, however, suffer from the NP-hard problem of feature combinatorics and thus take a long time to perform with large FMs (Batory et al., 2006) . Moreover, these approaches only focus on the checking of deficiencies of FMs. Our approach resolves the possible inconsistencies caused by the requested changes to FMs by analyzing and applying the semantics of change to FMs and the interrelationships among primitive operations on FMs. It limits the consistency maintenance of evolving FMs in a local range affected by the requested changes not in the whole FM, which guarantee the efficiency and scalability of our approach for large FMs. Trinidad et al. (2008) provided a framework for explaining deficiencies of FMs based on constraint programming, but they do not give a solution to the deficiencies and the scalability of their approach is also not clear. White et al. (2010) detected errors on the configurations of an FM, and proposed changes in the configurations according to features to be selected or deselected to correct the errors. Our work purely focuses on the evolution and consistency maintenance of FMs themselves, not the configurations of FMs. Some researchers also investigated relationships to other variability models or other core assets in SPLs. For example, Kastner and Apel (2008) proposed a formal approach to type-checking SPLs on the background of an FM. Metzger et al. (2007) proposed a formalization of Orthogonal Variability Models (OVMs) and also followed the SAT approach to analyze OVMs automatically. Lauenroth and Pohl (2008) presented a consistency checking technique for dynamic properties of the domain requirements specification based on OVMs.. This paper greatly expands our previous work (Guo & Wang, 2010) . In that paper (Guo & Wang, 2010) , we only suggested a set of primitive operations on FMs and proposed a preliminary framework for analyzing the semantics of change to FMs. In this paper, we systematically give an ontology-based formalization of FMs and a set of consistency constraints, which build the theoretical foundations for generating primitive operations on FMs and analyzing their interrelationships. We detail how to obtain and apply the dependency matrix and the evolution strategies for maintaining consistency of FMs. We also perform experiments to verify the effectiveness and efficiency of our approach. We implemented our approach 2 based on FeatureIDE, which is an open-source Eclipse-based IDE that supports building program families following the AHEAD 3 architecture model and provides tools for the feature oriented design process and the implementation of SPLs. An extended FM editor based on FeatureIDE is shown in Fig. 8 . It provides users with two views of FMs: tree view and hierarchy view. Users can input the keyword of some feature and then locate it. Attributes of features and feature groups, defined in Table 2 , can be easily edited. Constraints also have a separate view and an edit area.. Evolution strategies are implemented by an interactive manner. For example, if the change RevNF (''f10: InternetConnection'') is applied in the FM shown in Fig. 1 , a dialog box (as shown in Fig. 9(a) ) is displayed for users to choose an evolution strategy. Users can choose to remove all children of the feature ''f10'' (the evolution strategy defined in Fig. 6(b) ) or to reconnect these children to another non-terminal feature (the evolution strategies defined in Fig. 6(c) and (d) ). If the latter is chosen, the dialog box is extended to prompt users to input the target feature, as shown in Fig. 9(b) . Note that the target feature group and the children group of the removed feature could have different group type, so users must confirm a certain group type to merge the two feature groups. We first generated FMs randomly and then performed a set of primitive operations (defined in Table 2 ) randomly on the generated FMs. Based on the dependency matrix, a set of additional operations are derived automatically from the requested operations. Further, according to predefined evolution strategies, the derived operations are executed automatically to maintain the consistency of those changed FMs. During the above process, we parametrically control the size of FMs, the number and kind of operations, and the kind of evolution strategies for a thorough runtime evaluation.. Independent parameters in our experiment are (a) the number of features in an FM, (b) number of operations, (c) kind of operations, (d) kind of evolution strategies. The time needed to perform the requested and derived operations is measured as a dependent variable. To reduce the fluctuations in the dependent variable caused by the random generation, we performed 200 repetitions for each configuration of independent parameters, i.e., we generated 200 random FMs with the same parameters and each performed the same number of random operations of the same kind. All measurements were performed on the same Windows 7 PC with Intel Core Duo CPU 1.5 GHz and 3 GB RAM.

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


Fast arithmetics in artin-schreier towers over finite fields An Artin-Schreier tower over the finite field F p is a tower of field extensions generated by polynomials of the form X p − X − α. Following Cantor and Couveignes, we give algorithms with quasi-linear time complexity for arithmetic operations in such towers. As an application, we present an implementation of Couveignes' algorithm for computing isogenies between elliptic curves using the p-torsion. Definitions. If U is a field of characteristic p, polynomials of the form P = X p − X − α with α ∈ U are called Artin-Schreier polynomials; a field extension U /U is ArtinSchreier if it is of the form U = U[X]/P , with P an ArtinSchreier polynomial.. An Artin-Schreier tower of height k is a sequence of ArtinSchreier extensions U i /U i−1 , for 1 i k; it is denoted by (U0, . . . , U k ). In what follows, we only consider extensions of finite degree over Fp. Thus, Ui is of degree p i over U0, and of degree p i d over F p , with d = [U 0 : F p ]. The importance of this concept comes from the fact that all Galois extensions of degree p are Artin-Schreier. As such, they arise frequently, e.g., in number theory (for instance, when computing p k -torsion groups of Abelian varieties over F p ). The need for fast arithmetics in these towers is motivated in particular by applications to isogeny computation and point-counting in cryptology, as in [7] .. Our contribution. We give fast algorithms for arithmetic operations in Artin-Schreier towers. Prior results for this task are due to Cantor [6] and Couveignes [8] . However, the algorithms of [8] need as a prerequisite a fast multiplication algorithm in some towers of a special kind (called "Cantor Complexity notation. We count time complexity in number of operations in F p . Then, notation being as before, optimal algorithms in U k would have complexity O(p k d); most of our results are (up to logarithmic factors) of the form O(p k+α d 1+β ), for small constants α, β such as 0, 1, 2 or 3. Many algorithms below rely on fast multiplication; thus, we let M : N → N be a multiplication function, such that polynomials of degree less than n can be multiplied in M(n) operations, under the conditions of [11, Ch. 8.3] . Typical orders of magnitude for M(n) are O(n log 2 3 ) for Karatsuba multiplication or O(n log n log log n) for FFT multiplication. Using fast multiplication, fast algorithms are available for Euclidean division or extended GCD [11, Ch. 9 & 11] .. For several operations, different algorithms will be available, and their relative efficiencies can depend on the values of p, d and k. In these situations, we always give details for the case where p is small, since cases such as p = 2 or p = 3 are especially useful in practice. Some of our algorithms could be slightly improved, but we usually prefer giving the simpler solutions.. Previous work. As said above, this paper builds on former results of Cantor [6] and Couveignes [8, 7] ; to our knowledge, prior to this paper, no previous work provided the missing ingredients to put Couveignes' algorithms to practice. Part of Cantor's results were independently discovered by Wang and Zhu [26] and have been extended in another direction (fast polynomial multiplication over arbitrary finite fields) by von zur Gathen and Gerhard [12] and Mateer [20] .. Organization of the paper. Section 2 consists in preliminaries: trace computations, duality, basics on Artin-Schreier extensions. In Section 3, we define a specific Artin-Schreier tower, where arithmetic operations will be fast. Our key change-of-basis algorithm for this tower is in Section 4. In Sections 5 and 6, we revisit Couveignes' isomorphism algorithm [8] in our context, giving fast arithmetics for any Artin-Schreier tower. Finally, Section 7 gives experimental results obtained by applying our algorithms to Couveignes' isogeny algorithm [7] for elliptic curves.

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


Nonlinear regularization techniques for seismic tomography The effects of several nonlinear regularization techniques are discussed in the framework of 3D seismic tomography. Traditional, linear, ℓ 2 penalties are compared to so-called sparsity promoting ℓ 1 and ℓ 0 penalties, and a total variation penalty. Which of these algorithms is judged optimal depends on the specific requirements of the scientific experiment. If the correct reproduction of model amplitudes is important, classical damping towards a smooth model using an ℓ 2 norm works almost as well as minimizing the total variation but is much more efficient. If gradients (edges of anomalies) should be resolved with a minimum of distortion, we prefer ℓ 1 damping of Daubechies-4 wavelet coefficients. It has the additional advantage of yielding a noiseless reconstruction, contrary to simple ℓ 2 minimization ('Tikhonov regularization') which should be avoided. In some of our examples, the ℓ 0 method produced notable artifacts. In addition we show how nonlinear ℓ 1 methods for finding sparse models can be competitive in speed with the widely used ℓ 2 methods, certainly under noisy conditions, so that there is no need to shun ℓ 1 penalizations. Since geophysical inverse problems are almost always underdetermined, regularization techniques are essential to obtain a meaningful solution. Two major classes of techniques exist. The first one, named 'mollifying' in the mathematical literature, or 'optimally localized averaging' (OLA) in helioseismology, can be traced back to the groundbreaking work of Backus and Gilbert [1, 2] in geophysics. In this approach one searches for the size of an averaging volume that can produce a local average of the model parameter with an acceptable variance. Since this method is computationally very expensive, it has found little application in large-scale geophysical inversions such as seismic tomography. To limit the computational effort, seismic tomographers instead search for a biased ('damped') solution. This has the disadvantage of introducing a systematic error -the bias -in lieu of the random error caused by the propagation of data errors. It can be turned into an advantage if the bias actually reflects a justified disposition of the scientist to prefer certain models over others, as long as the data are fit within their error bars.. Simple ℓ 2 -norm damping, which biases model perturbations towards zero in the absence of information based on the data, is generally a bad choice to regularize the inverse problem for seismic tomography as it tends to introduce structures reflecting ray coverage into the images. For that reason, most tomographers prefer to bias the model towards 'smooth' anomalies, in effect trying to forge a compromise between Backus-Gilbert theory and the efficiency of damped inversions. The smoothness of the images has the advantage that large structures become easily visible. Sharp discontinuities, however, are blurred, and smaller structures, even when resolved, may be diluted beyond recognition. 1 processor. However, we took pains to ensure that we would invert for a model that has a large range of length scales, and that the ray coverage would encompass both dense and sparse regions.. In dimensionless variables, the expression for a finite frequency sensitivity kernel corresponding to a constant background and a Gaussian power spectrum is given by the formula:. K(x, y, z) = e −u 2 H 5 (u). where u = π(d s + d r − d sr )/λ. Here d sr is the distance between source (earthquake) and receiver (station), and d s , d r are the distances to source and to receiver, measured from the point (x, y, z). λ is the dominant wavelength and H 5 (u) = 120u − 160u 3 + 32u 5 denotes the Hermite polynomial of order 5. Equation (1) can be derived from the expressions for the Fréchet kernel in a homogeneous medium using an analytical expression for the spectral integration (see [19] ). The constant background model that we use here is not at all realistic from a physical point of view for the salt dome input model that we will use in section 4: in case of of large velocity contrasts kernels are bent rather than straight as in expression (1) . However, as we will use the same constant background kernels (1) for generating synthetic data as well as for reconstructing models from these data, we believe it is possible to accurately evaluate the effects of the regularization technique on the inversions. Obviously, reconstructing a model from actual measurements requires kernels of a more complicated shape than (1) but their resolving power is not fundamentally different from those used in our simple application.. For each source-receiver pair and each dominant wavelength, the travel time differential and the model perturbation m are connected by the linear integral relation [20] . Given sufficiently many data, the aim of seismic tomography is to reconstruct the model m from a noisy version of the data vector d containing many travel time differentials corresponding to many source-receiver pairs. In section 4 we will perform a number of seismic reconstructions. The domain on which we will do this is the cube V = [−1, 1] 3 . For discretization, this domain is subdivided in 64 3 voxels, a convenient choice for the digital reconstruction of a model m, leading to 262144 degrees of freedom in m. In order to be able to produce meaningful reconstructions, we expect to need at least 10 4 data (about 1 datum for 10 degrees of freedom). Hence we will choose 4800 sources-receiver pairs and 5 different dominant wavelengths so as to yield 24000 data. This represents an overparametrization by a factor of more than 10. Thus regularization will be an essential requirement for any data inversion.. A very efficient set-up of our numerical experiment was obtained as follows: we first choose 100 source-receiver pairs in random positions on the surface of the cube, while making sure source and receiver are never on the same face (the kernels (1) are not curved and would not be able to cross the model domain very much if source and receiver were on the same face). From these initial 100 pairs, we construct the full set of 4800 pairs by using the 48 symmetry transformations of the cube. These 48 operations are constructed from the 3! permutations of the coordinates (x, y, z), and by the 2 3 reflections (±x, ±y, ±z), as listed in Table 1 . In other words, starting from one initial kernel K(x, y, z) we easily obtain 47 other kernels: K(z, x, y), K(y, x, −z), . . . , corresponding to differently positioned source-receiver pairs. The random nature of the positions of the original 100 source-receiver pairs (i.e. no coordinate is exactly zero or exactly equal to plus or minus another coordinate) ensures us that none of the 4800 source-receiver pairs are identical. The initial 100 source-receiver pairs and the final 4800 pairs are shown in Figure 1 . onto itself. They are constructed by combining the six permutations of (x, y, z) and eight sign changes of the components (x, y, z). with the initial 100 source-receiver pairs (black=source, red=receiver). Center: The 4800 source-receiver pairs one obtains by applying the 48 symmetry transformations of Table 1 on the initial 100 pairs. Right: A single source-receiver pair joined by a straight line and its 48 transformations. Plotting all 4800 rays obtained in this way would fill the whole cube. For each of the 4800 source-receiver pairs we will construct five finite frequency sensitivity kernels of type (1) corresponding to five different dominant wavelengths λ = {0.5, 0.2, 0.08, 0.04, 0.025}. Thus, in total there will be 24000 kernels at our disposal. Because of the symmetry transformations used and the random choice of the initial 100 source-receiver pairs, the coverage of the domain by these 24000 kernels is quite uniform. A picture that illustrates this property is too large to include here, but it is available in the online supplementary material in Figure A. 1.. In order to give the reader an idea of the size of the Fresnel zones of these finite frequency kernels, we include in Figure 2 and in one of the panels of Figures 6 and 7 a cross-sectional view of five kernels. Each of these kernels corresponds to one of the five wavelengths (λ ∈ {0.5, 0.2, 0.08, 0.04, 0.025}) and source-receiver distance d sr = 2. The width of the Fresnel zone is proportional to √ λd sr [21] . The cross sections in Fig. 2 illustrates not only the typical widths of the kernels, but also their relative amplitudes.. Additionally we construct a second operator containing only 20000 out of the 24000 kernels. We choose to remove the 4000 kernels for which the line connecting source and receiver (i.e. the central ray) comes closest to the point (0.24, −0.7, −0.23). In this way, we end up with an operator that has a 'hole' in its coverage of the cube (see Figure A. 1, right). Using this operator we will be able to study the effect of non-uniform coverage on reconstructions.. To discretize the model into voxels we calculate the integral of the sensitivity kernels over each voxel (using a Riemann sum with 4 3 terms/voxel) for each source-receiver pair and for each of the five dominant wavelengths we consider. The resulting values make up the operator A we want to invert: Because there are 24000 kernels and 64 3 = 262144 voxels, the matrix A will have 24000 rows and 262144 columns.. The use of the 48 symmetry transformations of the cube allows us to save a factor of 48 in memory requirements for our calculations, i.e. we need to compute and store only 500 kernels corresponding to the initial 100 source-receiver pairs and 5 wavelengths. The remaining ones are easily (and quickly) generated from these 500 kernels by the symmetry transformations of the cube (quick rearrangements of the elements in a 3D array).. 1 For convenience, we denote the model perturbation by m instead of δm as is often done.. An additional saving in memory requirements is obtained by exploiting the fact that most kernels are well localized (i.e. they are thin), and thus that the A ij are practically zero for many voxels. In other words, each row of the matrix A is relatively sparse.. Although this set-up is completely unrealistic from a physical perspective, this configuration of rays provides for an easy way to compare dense and partial data coverage of the model. It also allows us to focus on the relative merits of the inversion methods rather than on the difficulties a physically faithful modeling would entail.. In reality, sensor coverage is limited to the surface and a few boreholes. High frequency data with narrow Fresnel zones therefore leave significant areas at depth not illuminated by acoustic waves. Low frequency data have wider Fresnel zones but suffer a reduced sensitivity to small length scales. Illumination itself does not guarantee resolution as becomes clear when one regards the singular value spectrum of A: though the spectrum depends strongly on the experimental set-up, it often has a rapid drop-off and a significant fraction of eigenvalues is either zero or too small to be useful. In the present synthetic experiment, we chose to have about 1 datum for every 10 degrees of freedom in the model. The uniform random distribution of sources and receivers on the surface of the cube has a favorable influence on the singular value spectrum of A (we were able to confirm this on a scaleddowned version of the present operator A, but not on the full 24000 × 262144 matrix), and will aid in the reconstruction . This will allow us to focus on the characteristics of the different reconstruction methods, rather than on the lack of data. In Paper I we showed how a large scale anomaly could be reconstituted even where it was ill resolved because of the selective nature of the wavelet coefficients and the ℓ 1 criterion: one wavelet coefficient reconstituting a large, circular, anomaly gave a better optimization than a couple of coefficients reconstituting only the resolved part. With the results of the much more complex salt dome model at hand, we must now conclude that this probably represents more a (lucky) exception than a rule. There is no magical solution for the absence of data.. For the checkerboard reconstructions, the ℓ 1 method with Haar wavelets is able to do very well -much better than could be expected based on the data themselves-because the Haar wavelets are very efficient in representing this particular checkerboard pattern in a sparse way. The success of the ℓ 1 method thus depends heavily on the choice of a suitable basis. For realistic models it is much more difficult to find a good -sparsifying-basis, and the reconstruction errors will be much larger. For the 3D salt dome reconstruction, one could argue that the ℓ 1 -DT method does well because it has good directional sensitivity and is therefore able to adapt to the "curvy" nature of the outline of the salt body, as opposed to ℓ 1 -Haar and ℓ 1 -D4 methods. The ℓ 2 -∆ method does well because the Gaussian background that is present in the model is smooth 'noise' and this is exactly the prior information put into the minimization criterion. The TV method does well as the main part of the salt dome model is roughly piecewise constant and TV favors that. The ℓ 0 methods do not perform particularly well, both from a quantitative as a qualitative side.. The wavelets, however, do have the distinctive quality of retaining sharp features even when regularizing by penalizing highly oscillatory models. If the preservation of sharp boundaries is not as important as the correct estimation of amplitudes, the smoothed solution, using the ℓ 2 -∆ method, is to be preferred as it is fully linear and efficient to solve with conjugate gradients. Methods using wavelets with small support, however, are able to retain sharp features, despite their regularization effect that penalizes highly oscillatory models. These methods are thus preferable when edges are important; our preference would go to the ℓ 1 -D4 algorithm which gives less blocky solutions than ℓ 1 -Haar. In no cases should one use simple norm damping (ℓ 2 method). Without imposing additional smoothing, i.e. while still allowing for sharp transitions, the ℓ 1 methods yield models which do not show signs of noise.. The ℓ 0 methods, which use hard-thresholding of wavelet coefficients rather than soft-thresholding, cannot outperform the ℓ 1 methods. In some cases they appear to produce severe artifacts. Another reason not to favor ℓ 0 penalties is that they only produce a local minimum of the functional (19) . This may lead to larger variability in the reconstructions (depending on the starting point of the iteration). There is currently no proven technique to tackle the minimization more efficiently that algorithm (17) . The (unproven) method (20) proposed in this paper is, as far as the authors can tell, new.. We conclude that using hard-thresholding is less appealing than using soft-thresholding of wavelet coefficients: the mathematical theory is less developed, the hard-thresholded reconstruction may exhibit significant artifacts and the reconstructions are not better than the ones obtained with softthresholding (ℓ 1 method).. Speed-wise the nonlinear methods cannot do better than the conjugate gradient algorithm for the ℓ 2 methods. Many applied mathematics groups [40, 31, 41, 42, 25, 43, 44] are currently working on speeding up the iterative soft-thresholding algorithm (11), but it is still at least as time-consuming to use the ℓ 1 norm as it is to use the ℓ 2 norm for penalization, especially for severely ill-conditioned matrices and low noise conditions [45] .. In case the data is heavily contaminated by noise, it follows from relation (24) that a large value of the penalty parameter µ must be chosen. In [45] it was demonstrated that many competing algorithms for minimizing an ℓ 1 penalized functional converge quickly in such a case. We therefore expect that such methods remain competitive with the traditional ℓ 2 smoothing methods in case of travel time seismic tomography where the data noise level may reach 50%.. Based on the results in this paper, we can conclude that the nonlinear methods offer a way to invert data and denoise the resulting model in a single procedure without necessarily smoothing the model too much. The two salt dome examples also show that a good reconstruction, clearly showing the characteristic effects of the penalizations used, is still possible with a very limited number of iterations: This is a consequence of the FISTA algorithm producing sparse models at every iteration step. Sparse models can therefore be constructed with few iterations and little computer time (see [46] for a discussion of the number of iterations used as a regularization parameter).. As an alternative to D4 or complex DT wavelets one could consider using curvelets or shearlets, as they are naturally designed to sparsely represent singularities along smooth curves, such as, e.g., the sediment salt interface in our model. In this work we have not studied how the different regularization methods behave in conjunction with these particular choices of dictionaries.

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


A Split-Based Incremental Deterministic Automata Minimization Algorithm We here study previous results due to Hopcroft and Almeida et al. to propose an incremental split-based deterministic automata minimization algorithm whose average running-time does not depend on the size of the alphabet. The experimentation carried out shows that our proposal outperforms the algorithms studied whenever the automata have more than a (quite small) number of states and symbols. The algorithms that explicitly compute the Nerode's equivalence to minimize deterministic finite automata (DFA) can be classified into two main categories. The first one takes into account every pair of states in the automaton and search for a string to distinguish both states. Algorithms that follow this approach are due to HuffmannMoore [1] , Watson and Daciuk [2] , Almeida et al. [3] among others. The second approach considers an initial partition of the automaton set of states into final and non-final states. This partition is subsequently refined in order to obtain the partition induced by the Nerode's equivalence relation. The algorithms by Hopcroft [4] and Moore [5] follow this strategy. See [6] for a review of these methods.. It is well known that the most time-efficient method is the one by Hopcroft. This method has a worst-case running-time O(kn log n) where n denotes the number of states of the automaton and k the number of symbols in the alphabet. It has also been stablished that the average time-complexity of Moore's and Hopcroft's algorithms is O(kn log log n) [7] .. Recently, Almeida et al. propose an incremental algorithm with time complexity of O(kn 2 α(n)), where α(n) is a function related to the inverse of Ackermann's function, that grows so slowly that can be taken as constant. The experiments carried out by the authors using a corpus of uniformly random-generated automata show that, despite the algorithm is linear with respect the size of the alphabet, the average runningtime of the algorithm does not depend on the size of the alphabet. This is due to the fact that, taking into account automata from a uniform distribution, once the number of states and symbols in the alphabet is over a (quite small) bound, almost every generated automaton is already minimal [8] .. The experimental behavior of the incremental algorithm proposed by Almeida et al. is interesting in some circumstances where the number of symbols is comparable to the number of states because, in those cases, this algorithm theoretically outperforms Hopcroft's method.. In this paper we propose an incremental split-based minimization algorithm whose averaged running-time does not depend on the size of the alphabet. We used the automata dataset used in [3] in an experimentation that confirms that, in certain circumstances (automata with big enough alphabet), our proposal outperforms the algorithms by Hopcroft and Almeida et al. In this work we present a new incremental algorithm to minimize deterministic finite automata that considers previous algorithms by Hopcroft and Almeida et al. Its design allows to take profit from intermediate results in order to reduce partially the input automaton, that could be interesting in some contexts.. The experimentation carried out in this paper took into account a set of automata selected using a uniform distribution of probability. When the method we propose is compared with the method by Almeida et al., the methods show that their runningtime do not depend on the size of the alphabet. When bigger automata (in number of states) are considered, the experimentation shows that our method outperforms the approach by Almeida et al.. When our method is compared with Hopcroft's, and taking into account the ratio that relates the size of the alphabet with respect the number of states of the automata, the experimentation showed that the bigger the ratio the better compared behavior of the proposed algorithm.

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


An architecture for fluid real-time conversational agents: integrating incremental output generation and input processing Abstract Embodied conversational agents still do not achieve the fluidity and smoothness of natural conversational interaction. One main reason is that current system often respond with big latencies and in inflexible ways. We argue that to overcome these problems, real-time conversational agents need to be based on an underlying architecture that provides two essential features for fast and fluent behavior adaptation: a close bi-directional coordination between input processing and output generation, and incrementality of processing at both stages. We propose an architectural framework for conversational agents [Artificial Social Agent Platform (ASAP)] providing these two ingredients for fluid real-time conversation. The overall architectural concept is described, along with specific means of specifying incremental behavior in BML and technical implementations of different modules. We show how phenomena of fluid realtime conversation, like adapting to user feedback or smooth turn-keeping, can be realized with ASAP and we describe in detail an example real-time interaction with the implemented system. Embodied conversational agents (ECAs) aim to enable human-like face-to-face interaction between a human user and an artificial agent. Cassell and colleagues [6] define them to have abilities for (1) "recognizing and responding to verbal and nonverbal input," (2) "generating verbal and nonverbal output," (3) "dealing with conversational functions such as turn taking, feedback, and repair mechanisms," and (4) contributing "signals that indicate the state of the conversation or contribute new propositions to the discourse". A large body of work has been directed to developing approaches to these individual challenges. Still, interacting with today's ECAs is for the most part characterized by noticeable latencies and slow response times, resulting in an unnatural clumsiness. In other words, ECAs often fall short of the fluidity and smoothness of natural human conversational interaction.. One cornerstone of human conversation is the high interactivity and real-time responsiveness with which cooperative interactants co-construct their contributions. For example, while producing communicative actions, speakers attend to and even elicit reactions from the addressee. Depending on this instant feedback, speakers can re-plan the remaining part(s) of their communicative plan, adapt it to the addressees' needs, put it on hold, insert a sub-dialogue, and continue at the point of interruption. All this is done in such an effortless, smoothly coordinated and seemingly natural way that it is not even apparent that difficulties were payed attention to or that plans were changed mid way. That is, acting in a conversation can only partially be based on extensive and put it on the right hand half of the- planning ahead and deep representational models. Instead, interaction partners, while being guided by overall goals and strategies, are also highly sensitive to the the partner's verbal and nonverbal feedback and are able to alter their utterances in progress accordingly [7] . Figure 1 shows an example from this study, in which Jane (the speaker) suspends her utterance in response to Ken's (the addressee) feedback, inserts a short feedback utterance herself, and then resumes her initial delivery. These abilities are crucial for human-like, real-time interactivity and conversational fluidity, but they exceed the abilities of current ECAs. We argue that, to achieve these abilities in ECAs, what is needed are two pivotal features at the architectural level: (1) incremental processing and (2) bi-directional, multi-level interaction between input processing and output generation. In this paper, we discuss in detail the requirements that imply such an architecture (Sect. 2), discuss related work (Sect. 3), and propose the Artificial Social Agent Platform (ASAP) architectural framework (Sect. 4). ASAP is as a dedicated ECA middleware specifically tailored to real-time conversation. It lays down at a technical but also a semanticconceptual level how the input and output processing modules need to interact with each other. It thus extends the BML/FML output generation framework [23, 48] and goes beyond, on the one hand, technical software architectures for multi-component ECA systems (as the Virtual Human Toolkit [15] ) and, on the other hand, standard multi-agent communication architectures (e.g., blackboard systems). We will demonstrate how ASAP enables the fluid production and adaptation of multimodal output under the presence or absence of different kinds of input from the addressee or the environment, respectively. Section 5 presents a prototype implementation of a conversational agent based on ASAP and explicates how it allows for achieving more fluid realtime interaction. Achieving the fluidity, responsiveness and adaptiveness of human conversational interaction is still a key challenge for ECA research, both with regard to the technical enablement of such machine abilities as well as with regard to the eventual acceptance of these systems as face-to-face conversation partners. Based on a growing body of recent work-by others as well as by ourselves-and based on an analysis of human conversational behavior and phenomena, we have argued that incremental processing and a closer integration of concurrent output generation and input processing are two indispensable requirements for these qualities. Both, however, raise research questions that are relatively new to the field of ECA research and that need to be met at a basic architectural level of behavior processing.. We have presented the ASAP framework that aims to provide a unified basis for exploring those questions, both conceptually and technically. The models we have devised and the agents we have developed using this framework by bringing together several previous implementations onto a coherent architectural basis have yielded promising results that-to the best of our knowledge-exceed existing systems. Technical evaluation of the systems we have built (e.g., see [3] ) reveal that incremental processing allows for faster and more fluid interactional behavior and that this behavior is perceived as significantly more natural.. It stands to reason that there are numerous open challenges and questions with this kind of architectural ECA design. For example, an incrementally steered ECA inherently may correct itself more than a non-incremental ECA. In extreme cases, this might lead to the ECA being perceived as unreliable, insecure, etc. and the interaction being less efficient. It will thus be important to develop models to assess whether input information is reliable enough to start generating output based on it (cf. the recent work on Dialogue State Tracking). Such models may be dynamic based on learning and, e.g., adjust their thresholds based on the amount of repairs in the ongoing conversation. Another issue is the question of what the best size for an incremental unit is. Theoretically, this size emerges from the internal processes that are triggered into activity by a minimal amount of characteristic input and produce output as soon as a minimal amount is available [13] . In practice, it is not clear what sizes at the different levels provide the most fluid and most natural conversational behavior of an ECA. Again, an approach that allows for dynamically adjusting the increment size based on both internal processing measures and external measures of dialogue success (or problems) would seem attractive. Future work will need to combine the further development of the framework with empirical evaluations, in order to clarify these questions and to endow ECAs with increasingly advanced abilities of real-time conversation. A large number of ECAs have been developed based on architectures that in some way integrate input processing, output planning, and output generation. The architecture proposed by Cassell and colleagues [6] consisted of an input manager that fuses audio, speech and gestural inputs and sends them to a deliberative module in charge of creating behavior based on proper input interpretation and output planning. In addition, a reaction module realizes a direct pathway from input to output processing to implement hardwired quick reactions. Processing along both pathways operates upon self-contained plans or specifications of whole input or output behavior sets. For example, output generation produces a schedule of behaviors, either in absolutetime based or event-based ways, that specifies in advance how a number of extended behavior are to unfold over time.. Almost all existing ECAs have followed this general architecture layout, which is characterized by a modular structure and non-incremental, strictly sequential processing along a deliberative or a reactive route (e.g., Max [22] , Greta [16] , Virtual Justina [20] ). Very recent systems still adopt this structure: in the Thalamus architecture [32] , perception is simply a unidirectional information link from the body interface to the mind interface; in de Kok and Heylen's feedbackgiving system [9] input arrives in a module which determines the appropriateness of a listener response; in Crook et al.'s 'How Was Your Day?' prototype [8] for coping with bargeins, a 'long' loop is used for intent planning and a shorter loop is used to handle interruptions, back-channel feedback and emotional mirroring. Like others, this agent does not process input or generate output incrementally and the authors note that the use of incrementality would have made their design more elegant.. Some first attempts to overcome this rigid style of processing have been made. Nijholt et al. [28] proposed a first approach to directly link the timing of ongoing behavior to the timing predictions of interlocutor events. This enabled a finer degree of temporal coordination with the user's motion, as demonstrated in a dancer agent, a virtual orchestra conductor and a virtual fitness trainer. Incremental processing is also increasingly assumed to be a key principle for natural dialogue modeling. Schlangen and Skantze [38] propose that the internal mechanisms in incremental dialogue agents can be described in terms of abstract modules that communicate by passing around and holding incremental units (IUs). Several implementations of this model have been developed [37] and many aspects of dialogue agents have been successfully modeled within this incremental processing framework (speech recognition, natural language understanding [1] , dialogue management [5, 46] , natural language generation [3, 41] , speech synthesis [2] ). However, implementations of the IU architecture have been uni-modal so far (typically speech/text only).. Incremental realization of multimodal behavior by automatically connecting chunks that retain their internal synchrony, was first proposed in the ACE system [24] . The realizer component in our ASAP architecture [47] extends this approach by providing more fine-grained behavioral units that can be linked to anticipated input events based on [28] .. Much effort has been put on standardizing the output generation of ECAs in a way that allows for architectural modularity and flexibility of generated behavior. The SAIBA initiative [23] has put forth three main stages (content planning, behavior planning, behavior realization) with standardized XML interface representations in-between (BML, FML). This has now become the de facto standard for behavior generation in ECAs. However, this model is deliberately left coarse and does not make any assumptions about input/output coordination nor incremental processing. Recent work has started to extend this framework to also include a representation of nonverbal input behavior (the Perception Markup Language, PML) [36] . In contrast to BML, PML handles multiple hypothesis on three levels of input processing (sensing, behaviors and functions) along with probabilities to represent uncertainties. In a first example architecture, the different levels of PML are used to inform dialogue state update, intent planning or behavior generation.. The question how different stages of input processing and output generating should ideally interact within conversational agents has received only little attention so far. In principle, this includes horizontal (between input/output modules) as well as vertical (bottom-up and top-down) interactions. It is well known that in humans perception influences action via direct links that can bypass cognition, that perception and action share common representations, or that action planning influences perception (see e.g. [49] ). Cognitive robotics has adopted this view more extensively than research on ECAs, while focusing on the control of manipulative or locomotive actions [18] . Haazebroek et al. [14] presented a computational model which uses shared representations between perception and action for cognitive robots. Sadeghipour and Kopp [34] have presented a probabilistic model for learning, recognizing and producing communicative gestures based on shared sensorimotor representations. Hoffman and Breazeal [17] implement task anticipation for collaborative robotic systems and use knowledge about past events as a top-down bias in perception, allowing for more accurate and rapid 'sensing' decisions. This is recently paralleled in the field of human language technology (speech recognition or language understanding) which has started to build dynamic language models (vocabularies, grammars, recognition weights) in order to increase accuracy and adaptivity [39] . Such models are adjusted at runtime, e.g., when dialogue context changes [40] , certain entities become salient [26] , or conversation threads are switched [25] .. In sum, promising approaches are increasingly put forward for incremental language processing as well as for more flexible perception-action integration. However, to the best of our knowledge, a comprehensive concept of how to combine these methods in an ECA architecture that enables fast responses and incremental adaptation as needed for fluid, real-time multimodal conversation is still lacking.

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


Applying reach in direct manipulation user interfaces The HCI community currently faces the problem of making tangible user interfaces actively responsive to their user's current physical context. This paper explores the context of direct manipulation user interfaces for large horizontal interactive displays. Knowledge of users' reach provides direct manipulation user interfaces with a powerful tool for contextualizing and predicting user action. This paper introduces users' reach as a formal way to predict the previously observed phenomena of workspace segmentation and territoriality. By creating models of "reach-ability", reach probability surfaces can be generated which further explain the impact on workspace usage of the shape, height, and position of the workspace. As the presented techniques build on formal qualitative and mathematical models of reach, they lend themselves particularly well to an algorithmic implementation suited to driving complex user interface behaviour. This paper presents the results of an initial user study to determine the accuracy of these predictions and their underlying hypotheses about reaches role in shaping workspace usage. Applying anthropometric observations made about the user enables the creation of user interfaces that are responsive to their user's physical context. This paper explores the role of reach within the context of direct manipulation user interfaces for large horizontal interactive displays. In this context reach refers to the maximum extension of the arm at which the user can perform a manipulation. This paper introduces applying models of reach, derivable from easily observable anthropometric characteristics (Toney & Thomas, 2007) to roughly predict working surface usage patterns.. For the individual, depth of reach is shown to predict segmentation of the working plane into working and storage areas. For multiple collaborating users, regions of overlapping reach are shown to predict the formation, size, and shape of shared group spaces. In both contexts applied models of reach predicts the rough impact of such variables as working surface size, height, shape, and number of users on the working surface's utilization. The authors performed a 16 person user study to empirically test the predictions generated by applying reach models. Currently computer scientists in general think and work mostly in terms of small, on-screen interfaces. This paper explored the context of direct manipulation user interfaces for large horizontal interactive displays. Specifically this paper examined how models of the reach envelope can be used to improve the design of direct manipulation user interfaces. Applied anthropometric characteristics, specifically user reach, were shown to contextualize and predict utilization of the working plane. User reach was shown to be able to explain observed table segmentation into working, storage and group areas. For groups regions of overlapping reach were shown to help explain territoriality and the size and shape of collaborative areas. Additionally reach was shown to be able to assess the impact of table shape, size, and the placement of users on the utilization of a working plane. Application of reach models is a powerful tool enabling the creation of direct manipulation user interfaces that are actively tailored to their users.

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