Physiological compliance for social gaming analysis: Cooperative versus competitive play aalto.fi (J.M. Kivikangas), niklas.ravaja@aalto.fi (N. Ravaja).We report the results of an empirical study demonstrating the value of using physiological compliance as a measure of social presence during digital game playing. The physiological activity (facial EMG, electrodermal activity, cardiac activity and respiration) of 21 dyads were acquired synchronously while they were playing a digital game either cooperatively or competitively and either at home or in the laboratory. Physiological compliance was defined as the correlation between the physiological signals of the dyad members. The results of this study confirm that physiological compliance is higher in a conflicting situation than when playing cooperatively. Importantly, the results also demonstrate that physiological compliance is related to self-reported social presence. This suggests that physiological compliance is not limited to negative situations but rather increases due to rich interactions. Only minor differences in physiological compliance were observed between home play and laboratory play, suggesting the ecological validity of laboratory measures. Finally, we propose that compliance measures can be considered as objective indices of social presence in digital gaming. In the last decade, many studies have proposed tools and methods to better understand the experience of people playing digital games [1] [2] [3] [4] . The study of player experience is of central importance to the user-centered design and development of digital games. Moreover, since most games propose rich and complex interactions with the players, analyzing gamers' experience also provides valuable information to the more general field of human computer interaction research.. The analysis of physiological signals, conjointly with the use of questionnaires, has been proposed as a powerful method for player experience studies [3] . Among the main advantages, measuring physiological signals allows to quantitatively and continuously analyze the player experience without interrupting the gameplay. The recording of physiological signals implies the equipment of several sensors, such as electrodes for electrocardiography (ECG), facial electromyography (EMG), electrodermal activity (EDA; or skin conductance) measurements, and a respiration belt. Although it is arguable that this equipment can interfere with the player experience, physiological methods have proven to be effective in many cases and to provide added value compared to traditional think aloud protocols or post-gaming questionnaires. For instance, physiological signals can be used to reliably infer not only the valence and arousal associated with game events [1, 5, 6] but also discrete states such as boredom, immersion, and flow [7, 8] . Most of games are social by nature, with their structure and rules calling on the necessity of having several players. Actually, the fact that games are social activities has been found to be one of the main motivations for playing [9] . Although many digital games are designed for single players, most computer and console games now at least include a multiplayer mode which allows several players to compete against each other or to cooperate toward a common objective. This has been the tendency especially with the rise of multiplayer online games. Moreover, It has to be noted that even a single-player game can be a social activity when friends or family gather as an audience when one plays, and since players often join together to play and create their own social rules, such as aiming at the best score [10] .. Despite of the importance of social aspects in games, there are only a few studies employing psycho-physiological methods to better understand multiplayer's experience (for example, [11] [12] [13] [14] ). However, those studies have addressed the experience of each player separately instead of considering their joint experience of the game. Analyzing the joint experience of players and the interactions occurring during play can be done by looking at the common patterns present in their physiological signals. This has been called physiological linkage by Levenson and Gottman [11] but also physiological compliance [12] . Observing the relationships between the physiological signals of several persons to analyze social interactions was proposed by Gottman [13, 14] . According to him, such information could be very useful in identifying the amount of dyadic behavioral entrainment and the directionality of the underlying interactions (i.e., asymmetric interaction with a dominant member or bidirectional interaction with equal behavior entrainment). One of the main results obtain from the following studies is that physiological linkage is mainly able to capture negative interactions [11] . However, interactions are rather intense in the chosen marital conflicting situations and it is still possible that physiological linkage measures the quantity and intensity of interactions rather than distressed situations only. Using the same measures it was shown that physiological linkage was also related to empathy [15] ; people who accurately evaluated the negative emotions of others also displayed a high degree of shared physiology. Finally, more recent studies have analyzed physiological compliance using correlation and coherence measures between physiological signals and examined its relationship with a group's or dyad's performance on a task. The first of these studies [12] demonstrated that many of the physiological compliance measures computed from heart rate, EDA and respiration are able to predict task completion time with higher compliance indicating a better performance. The task under consideration was a game where the participants had to synchronize their movements to move a cursor in a maze, which demonstrates the relevance of physiological compliance to gaming situations. However, this positive relationship was not confirmed in a second study [16] , where self-reported groupperformance was negatively correlated with physiological compliance. The authors explained this result by the possibility that the groups who perceived their interactions as more difficult and conflicting were actually the most productive. This is coherent with the findings obtained in previous studies [11, 15] concerning the association of high compliance with negative and conflicting interactions.. As explained in [2] , we propose to use physiological compliance as a measure of social interaction and social experience when playing a digital game. For this purpose we first need to better understand the origin of physiological compliance and its relationship with the players' perceived experience of the social interaction. We believe that during gameplay physiological compliance can arise due to three factors. Firstly, perceiving the same stimuli can lead to similar physiological activations, especially if players' appraisals of the situation are concordant. It is quite often that in a multiplayer game many players encounter the same situation or that a "pause" screen is displayed to all of them, potentially leading to similar physiological activation patterns, such as orienting responses. Secondly, in most of the multiplayer games, the players are interacting through the generated virtual world. In order to accomplish their objective, they generally have to adapt their behavior to the behavior of the other which would imply a form of physiological compliance because of the supportive function of the autonomous nervous system. In a competitive scenario involving immediate interaction (such as classical action games), behavior adaptation is rather obvious since a player will have to adapt to the opponent moves or will, at least, adapt his or her behavior to the opponent performance (i.e., investing more effort if the opponent is currently winning). In a cooperative mode, the behavioral adaptation strongly depends on the structure of the cooperation. If it is a sufficient condition for a team to win that one member of the team is winning, the interaction is likely to be limited.. However, if the players need to perform actual collaborative actions to reach a common objective, we expect an increase in behavioral adaptation and interaction. Thirdly, physiological compliance can occur because of social-emotional processes, such as empathy and emotional contagion [17] that can also impact mediated interactions [18] . Emotional contagion is the process by which emotions are communicated from a person to another by unconscious imitation of the emotional behavior resulting in the elicitation of the same emotional state. But in the virtual reality of games, there are frequently also other relevant social-emotional reactions, such as "malicious delight" and pleasure due to the struggle of the opponent [4] .. The increased popularity of social interaction technologies and collaboration software (e.g., collaborative learning platforms, social network services) has lead to the inclusion of social experience in the presence concept. Accordingly, presence can be divided in two components:. (a) spatial presence [19, 20] , the sensation of "being there" which corresponds to immersion and (b) social presence [21] [22] [23] , the awareness of the others' presence. According to Biocca and coworkers [21] , social presence can be defined as the sense of "being together" in the context of mediated interaction. They decompose social presence into three components: (a) copresence, which relates to the sensation of being in contact with the other; (b) behavioral engagement referring to the interdependence of behavior between two individuals; and (c) psychological involvement, which refers to the level of interpersonal understanding and attention. At least behavioral engagement and psychological involvement are tightly related to two of the physiological compliance sources that we identified (behavioral adaptation and social-emotional processes). It has also been proposed that physiological measures could be used as indicators of social presence [21] .Social presence has also been suggested as being an important factor during a gaming situation in both a mediated and non-mediated context [24] . For these reasons, we view the social presence theory as an ideal candidate to help understanding the occurrence of physiological compliance during digital game play.. In this study, our objective is twofold: to examine the relationship of physiological compliance with social presence and to compare the degree of physiological compliance between a cooperative and competitive game mode in a classic action game. Given the components of social presence that imply an intense interaction and interdependence of behavior between individuals, it would be expected that social presence is accompanied by higher synchrony also at the physiological level. This leads to our first hypothesis: The objective of this study was to analyze whether physiological compliance, as computed from distinct physiological signals, would be able to provide information about the social experience of game players. Two main findings emerged. First, physiological compliance was found to increase with players' self-reported involvement in the social interaction, suggesting that it could be used as an objective measure of social presence. Second, for most of the signals physiological compliance was higher for competitive game play compared to cooperative play; that is, when playing a classic action game (Bomberman), participants' reactions were more similar during competitive play.

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


Efficient enumeration of all ladder lotteries and its application A ladder lottery, known as the "Amidakuji" in Japan, is a common way to choose a permutation randomly. A ladder lottery L corresponding to a given permutation π is optimal if L has the minimum number of horizontal-lines among ladder lotteries corresponding to π. In this paper we show that for any two optimal ladder lotteries L 1 and L 2 of a permutation, there exists a sequence of local modifications which transforms L 1 into L 2 . We also give an algorithm to enumerate all optimal ladder lotteries of a given permutation. By setting π = (n, n − 1, . . . , 1), the algorithm enumerates all arrangements of n pseudolines efficiently. By implementing the algorithm we compute the number of arrangements of n pseudolines for each n ≤ 11. A ladder lottery, known as the "Amidakuji" in Japan, is a common way to choose a permutation randomly. Formally, a ladder lottery L of a permutation π = (p 1 , p 2 , . . . , p n ) is a network with n vertical lines (lines for short) and many horizontal lines (bars for short) each of which connects two consecutive vertical lines. The i-th line from the left is called line i. The top ends of lines correspond to π. The bottom ends of lines correspond to the identical permutation (1, 2, . . . , n). See Figure 1 . Each number p i in π starts the top end of line i, and goes down along the line, then whenever p i comes to an end of a bar, p i goes horizontally along the bar to the other end, then goes down again. Finally p i reaches the bottom end of line p i . We can regard a bar as a modification of the current permutation, and a sequence of such modifications in a ladder lottery always results in the identical permutation (1, 2, . . In this paper, we first showed that, for any two ladder lotteries L 1 and L 2 in S π , there exists a sequence of operations consisting of zero or more left swap operations followed by zero or more right swap operations which transforms L 1 into L 2 . We also gave an algorithm to enumerate all optimal ladder lotteries of a given permutation. Our algorithm uses O(n 2 ) space and enumerate all ladder lotteries in S π in O(1) time for each in worst case. The algorithm can be applied to enumerate all combinatorial structures of pseudoline arrangements.

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


Output-sensitive algorithms for Tukey depth and related problems ABSTRACT. The Tukey depth (Tukey 1975 ) of a point p with respect to a finite set S of points is the minimum number of elements of S contained in any closed halfspace that contains p. Algorithms for computing the Tukey depth of a point in various dimensions are considered. The running times of these algorithms depend on the value of the output, making them suited to situations, such as outlier removal, where the value of the output is typically small. Let S be a set of n points in R d . The Tukey depth, or halfspace depth of a point p ∈ R d with respect to S can be defined in several equivalent ways [29] :. depth(p, S) = min{|h ∩ S| : h is a closed halfspace containing p} (1) = min{|h ∩ S| : h is a closed halfspace with p on its boundary} (2) = min{|S | : p is outside the convex hull of S \ S }. A point of maximum Tukey depth serves as a d-dimensional generalization of the (1-dimensional) median that has many nice statistical properties including being robust against outliers, invariant under affine transformations, and monotone. The contours of the Tukey depth function 1 are generalizations of 1-dimensional percentiles that also have many nice properties including convexity, robustness, and monotonicity [24, 25, 28] . Algorithms for computing a point p ∈ R d of maximum Tukey depth have a rich history [13, 12, 4] that has recently culminated in Chan's O(n log n+n d−1 ) expected time algorithm.. In this paper we consider the simpler, but still very difficult, problem of computing the Tukey depth of a given point p with respect to a set S. We present algorithms have running times that are dependent on the value, k, of the output. In some applications, such as outlier removal, the goal is to quickly identify data points of small depth (so they can be removed). Our algorithm are particularly well-suited to such applications since they run quickly when the depth of p is small. Specifically, we present the following results:. 2. An O(n + (n − k) log(n − k)) time algorithm to find the largest clique in an interval graph, where k is the size of the clique found (Section 3). This problem is related to the Tukey depth problem in R 2 .. 3. An O(n log n+k 2 log n) time algorithm for points in R 3 and an O(n+k 11/4 n 1/4 log O(1) n) time algorithm for points in R 4 (Section 4). These algorithms rely on results of Chan on linear programming with violated constraints [5] which in turn rely on sophisticated range searching data structures [14, 20] and/or dynamic convex hull data structures [3] .. , where LP(n, d) denotes the time required to determine the feasibility of a linear program having n constraints and d variables (Section 5). Not surprisingly, this algorithm is also based on linear programming with violated constraints and is obtained by presenting a fixed-parameter tractable algorithm for a parameterization of the NP-hard MAXIMUMFEASIBLESUBSYSTEM problem.. For the remainder of this paper we use the following notations: For points p, q ∈ R d , p i denotes the ith coordinate of p, p = (. The top side of this sphere is denoted by

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


Automating the Dependency Pair Method Developing automatable methods for proving termination of term rewrite systems that resist traditional techniques based on simplification orders has become an active research area in the past few years. The dependency pair method of Arts and Giesl is one of the most popular such methods. However, there are several obstacles that hamper its automation. In this paper we present new ideas to overcome these obstacles. We provide ample numerical data supporting our ideas. Proving termination of term rewrite systems has been an active research area for several decades. In recent years the emphasis has shifted towards the development of powerful methods for automatically proving termination. The traditional methods for automated termination proofs of rewrite systems are simplification orders like the recursive path order, the Knuth-Bendix order, and (most) polynomial orders. The termination proving power of these methods has been significantly extended by the dependency pair method of Arts and Giesl [2] . In this method, depicted in Fig. 1, a rewrite system is transformed into groups of ordering constraints such that termination of the system is equivalent to the (separate) solvability of these groups. The number and size of these groups is determined by the approximation used to estimate the dependency graph and, more importantly, by the cycle analysis algorithm that is used to extract the groups from the approximated dependency graph. Typically, the ordering constraints in the obtained groups must be simplified before traditional simplification orders like the recursive path order or the Knuth-Bendix order are applicable. Such simplifications are performed by so-called argument filterings. It is fair to say that the dependency pair method derives much of its power from the ability to use argument filterings to simplify constraints. The finiteness of the argument filtering search space has been stressed in many papers on the dependency pair method, but we do not hesitate to label the enormous size of this search space as the main obstacle for the successful automation of the dependency pair method when using strongly monotone simplification orders.. The dependency pair method can also be used for automatically proving innermost termination. Innermost termination is easier to prove than termination for the following two reasons: (1) the innermost dependency graph is typically much smaller than the dependency graph and (2) each group of ordering constraints for innermost termination is (often strictly) contained in a group of ordering constraints for termination.. We present several new ideas which help to tackle the argument filtering problem in Section 5. In Section 4 we present a new algorithm for cycle analysis and in Section 3 we present new approximations of the (innermost) depen-dency graph. A brief introduction to the dependency pair method is given in the next section. In Section 6 we report on the numerous experiments that we performed to assess the viability of our ideas.. It goes without saying that the dependency pair method is not the only automatable method for proving termination of rewrite systems that cannot be handled by traditional simplification orders. We mention here the pioneering work of Steinbach [22] on automating the transformation order of Bellegarde and Lescanne [5] and the more recent work of Borralleras et al. [6] on transforming the semantic path order of Kamin and Lévy [17] into a monotonic version that is amenable to automation. We believe that an implementation of the monotonic semantic path order of [6] may benefit from the ideas presented in this paper. We conclude by stating that the techniques presented in this paper are very useful for obtaining termination proofs of TRSs efficiently and automatically. Nevertheless, as can be inferred from Tables 10 and 11 , there are numerous (innermost) terminating TRSs that cannot be handled by using only our techniques. Taking a different base order (LPO with quasi-precedence, polynomial interpretations, Knuth-Bendix order) will cover some of these. Dependency pair transformations [9, 12] like narrowing and instantiation or taking polynomial interpretations with negative coefficients [16] (which do not produce quasi-simplification orders) as base order cover many more. Furthermore, recent modular refinements [15, 24, 26] have a very positive effect on the termination proving power as well as the efficiency of the dependency pair method.. Since termination is an undecidable property, it goes without saying that there always remain terminating TRSs that are beyond the scope of any automatable method for proving termination. As a particular challenge we mention Example 33 in [8] which encodes the battle of Hydra and Hercules. Our ideas have been implemented in the termination prover T T T, which is described in [14] and available at

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


Rapid Almost-Complete Broadcasting in Faulty Networks This paper studies the problem of broadcasting in synchronous pointto-point networks, where one initiator owns a piece of information that has to be transmitted to all other vertices as fast as possible. The model of fractional dynamic faults with threshold is considered: in every step either a fixed number T , or a fraction α, of sent messages can be lost depending on which quantity is larger.As the main result we show that in complete graphs and hypercubes it is possible to inform all but a constant number of vertices, exhibiting only a logarithmic slowdown, i.e. in time O(D log n) where D is the diameter of the network and n is the number of vertices.Moreover, for complete graphs under some additional conditions (sense of direction, or α < 0.55) the remaining constant number of vertices can be informed in the same time, i.e. O(log n). Fault tolerance has been a crucial issue in the distributed computing since its beginnings [3, 5, 6, 10, 16, 24] . Because a typical distributed system is designed to contain a large number of individual components, attention must be paid to the fact that, even if the failure probability of a single component is negligible, the probability that some components fail may be high. There are numerous ways how to cope with failures, using either probabilistic or deterministic approaches. In the probabilistic setting, it is supposed that a failure probability of each component follows some probability distribution [4, 8, 11, 25, 26] . Failures of individual components are usually assumed to be independent random events. The goal is to design algorithms and protocols that perform well with high probability if the failures follow the conjectured distribution. The deterministic approach, which is pursued also in this paper, copes with failures in a different way. Instead of considering a failure probability distribution for each individual component, algorithms and protocols are designed to perform well in the worst case, under some a-priori constraints on the failure behavior. [1, 2, 7, 12-14, 19, 20, 22, 23, 27] . These constraints may take the form of considering only computations with a limited overall number of faults [1, 19] , limited number of faults during any single computation step [7, 13, 14, 23, 27] , or during any window of first t steps [20] , requiring that after some finite time there is a long enough fault-free computation [10, 15] etc. While the probabilistic model is analyzed with respect to the expected behavior, the deterministic models have been mostly analyzed for the worst case scenario.. We shall focus our attention on synchronous point-to-point distributed systems, i.e. systems in which the communication is performed by sending messages along links connecting pairs of vertices. Moreover, the vertices are synchronized by a common clock, and the delivery of every message takes exactly one time unit. This model has been widely considered [7, 8, 12-14, 20, 22, 23, 25-27 ] not only for its theoretical appeal, but for its practical relevance as well (e.g. many wireless networking standards, like IEEE 802.11, or GSM, operate in discrete time steps). We shall consider only one type of failures: message loss.. The oldest deterministic model of faults considered in this setting is the static model [1, 3] , in which it is assumed that at most a fixed constant number k of messages may be lost in every step, and moreover, the failures are always located on the same links. Later, other models have been considered, too, like the dynamic model [7, 13, 14, 23, 27] in which the k failures may be located on arbitrary links in every step, linearly bounded faults [20] , fractional faults [22] , etc.. We continue in the analysis of the fractional model with threshold from [12] . Here, the number of messages lost in one time step is bounded by the maximum of a fixed threshold T and a fixed fraction α of sent messages. This restriction implies that if, in a given step, fewer than T messages are sent they may all be lost. On the other hand, if there are many messages sent, at least a fixed fraction 1−α of them is delivered. The threshold T is always assumed to be one less than the edge connectivity, since this is the largest value under which the network stays connected. This model has been developed in order to avoid some unrealistic special cases of static and dynamic models (the number of faults is independent on the actual network traffic), as well as those of fractional model (if just one message is being sent, its delivery is always guaranteed).. The broadcasting problem is a crucial communication task in the study of distributed systems (e.g. [21] ). One vertex, called initiator, has a piece of information that has to be distributed among all remaining vertices. The broadcasting has not only been used as a test-bed application for the study of the complexity of communication in various communication models, but has served as a building stone of many applications (e.g. [28] ) as well.. We analyze the broadcasting in complete graphs and hypercubes. The broadcasting time in these graphs has been studied in the static [19] , dy-namic [13, 14, 23] , and simple threshold [12] 1 models, and the results are summarized in Table 1 . We address a natural relaxation of the broadcasting problem in which we allow a small constant number of vertices to stay uninformed in the end (a problem called almost complete broadcasting), and analyze the worst case time needed to solve the problem. Our main motivation to study almost complete broadcasts is the fact that in large faulty networks it is often vital to finish a communication task fast, even subject to some small error. In the probabilistic setting, this is modelled by allowing a failure probability that tends to zero with increasing network size: in the worst case the task is not successful but this worst case scenario has a small probability. Since in our deterministic setting we study the worst case, another model of allowed error must be chosen. If we look at the broadcast as an optimization problem where the task is to inform as many vertices as possible, it is natural to introduce a constant additive error by allowing a constant number of vertices to stay uninformed 2 .. For complete graphs and hypercubes, we show that the problem can be solved in time O(D log n), where D is the diameter of the graph and n is the number of its nodes.. Moreover, we show that if the complete graph is equipped with the chordal sense of direction, complete broadcasting can be performed in time O(log n). This is asymptotically optimal since the broadcasting time in the fractional model is a lower bound for the fractional model with threshold. Similarly 1 If the number of messages sent in a given time step is less than the edge connectivity c(G) in the simple threshold model, all of them may be lost. Otherwise at least one of them is delivered.. 2 so that the uninformed vertices comprise at most an O(1/n) fraction of all vertices we show that the broadcasting can be completed in time O(log n) for values α < 0.55. The overview of the results can be found in Table 1 .

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


Toward Real-Time Simulation of Cardiac Dynamics We show that through careful and model-specific optimizations of their GPU implementations, simulations of realistic, detailed cardiac-cell models now can be performed in 2D and 3D in times that are close to real time using a desktop computer. Previously, large-scale simulations of detailed mathematical models of cardiac cells were possible only using supercomputers. In our study, we consider five different models of cardiac electrophysiology that span a broad range of computational complexity: the two-variable Karma model, the four-variable Bueno-Orovio-Cherry-Fenton (BCF) model, the eight-variable Beeler-Reuter (BR) model, the 19-variable Ten Tusscher-Panfilov (TP) model, and the 67-variable Iyer-Mazhari-Winslow(IMW) model. For each of these models, we treat both their single-and double-precision versions and demonstrate linear or even sub-linear growth in simulation times with an increase in the size of the grid used to model cardiac tissue. We also show that our GPU implementations of these models can increase simulation speeds to near real-time for simulations of complex spatial patterns indicative of cardiac arrhythmic disorders, including spiral waves and spiral wave breakup. The achievement of real-time applications without the need for supercomputers may facilitate the adoption of modeling-based clinical diagnostics and treatment planning, including patient-specific electrophysiological studies, in the near future. Cardiac arrhythmia, such as atrial fibrillation (AF) and ventricular fibrillation (VF), is a disruption of the normal excitation process in cardiac tissue due to faulty processes at the cellular level, at the single ion-channel level, or at the level of cell-to-cell communication. The clinical manifestation is a rhythm with altered frequency (tachycardia or bradycardia, see Fig. 1(a) ) or the appearance of multiple frequencies (polymorphic ventricular tachycardia), with subsequent deterioration to a chaotic signal (VF, see Fig. 1(b) ) [3, 14, 15, 41] . Cardiac tissue is typically modeled mathematically as a reactiondiffusion system involving partial differential equations (PDEs) for diffusing species (typically only the transmembrane potential) and a system of nonlinear differential equations describing all other state variables that describe the flux of ions across the cell membrane along with ion concentrations. Detailed models of cardiac cells can include more than 80 state variables and hundreds of fitted parameters [8] .. Because of the computational demands such models place on normal CPU-based and multi-core-based workstations, most studies of the electrical activity of the heart traditionally have focused on using either complex cell models in single-cell formations or simplified cell models in more realistic 3D heart structures. A few efforts have used supercomputers to integrate models of intermediate complexity with 3D structures [18, 29, 38] .. Real-time simulation refers to the ability to execute a computer model of a physical system at the same rate as the actual physical system. Recently, the advantages of GPU over CPU processing have been established for many areas of science, including systems biology, where the highly parallel and multi-core capabilities of GPUs allow the implementation of extremely fast simulations of complex models in 2D and 3D using CUDA (Compute Unified Device Architecture) from NVIDIA. If such large-scale realistic models can be simulated in near real-time, many more applications, including patient-specific treatment strategies for cardiac-rhythm disorders, become feasible without the need for supercomputers. To date, such efforts have come up short.. Below, we show that it is possible to perform simulations of models of cardiac cells ranging in complexity from two to 67 variables in near real time for realistic problem sizes through careful GPU implementations. To maximize the performance gain, model-specific optimization techniques, including partitioning of the model equations among multiple CUDA kernels as appropriate and judicious use of the different types of memory available to GPUs, are incorporated. In summary, we have shown that we can achieve near real-time performance of simulated cardiac dynamics in tissues of realistic sizes by using GPU architectures. To achieve the maximum gains in computational efficiency, it is necessary to consider modelspecific aspects of the implementation, including appropriate division of the model among multiple kernels and careful use of the available levels of memory. The significant performance gains should facilitate implementation of novel applications of simulation, including possible use in diagnosing cardiac disease or developing patient-specific treatment strategies. Over the last five years, GPU performance has exceeded that of the CPU. As this trend in outperformance continues [28] many areas of research that require large-scale simulation, such as systems biology [6] , have turned to GPU implementations to gain that acceleration in computing, and cardiac electrical dynamics is no exception [5] . Simulations of human heart dynamics at currently feasible spatial resolutions require the solution of between 2 24 and 2 27 nodal points or "cells" [18, 29] . Each cell, turn, involves a separate implementation of mathematical equations describing its electrophysiology, the description of which can be as simple as two [20] or as complicated as 67 [19] or 87 [11] ordinary differential equations. Even with a simple cell model, 0.6 seconds of simulation requires about 2 days using 32 CPU processors [29] ; for a more complex model, the same simulation time uses about 10 hours with 6144 CPUs [18] . However, accelerations to near real time soon will become possible on single desktops by taking advantage of GPU processing capabilities. The electrophysiological equations of cardiac cells are of the reaction-diffusion type, for which GPUs have been shown to be superior to CPUs in both 2 and 3 dimensions with typical acceleration values between 5 and 40 depending on the algorithms used [25, 33] . The first simulation of cardiac arrhythmias using GPUs actually was performed on an Xbox 360 [35] using the BCF model [2] (Fig. 7) . The eightvariable Luo-Rudy I (LRI) model was the first simulated using a realistic rabbit ventricular structure on a GPU [34] , with 1 s of simulation taking 45 minutes using a cluster with 32 CPUs and 72 minutes on a single GPU. Since then other studies have emerged comparing the speeds between CPUs and GPUs for different cardiac cell models. The 27-variable Mahajan et al. model [24] was reported to run 9 to 17 times faster (depending on tissue size) on GPUs [40] . More recently, Rocha et al. [31] reported a gain of up to 20 times for a single GPU implementation compared to a parallel CPU implementation running with 4 threads on a quadcore machine, with parts of the code accelerated by a factor of 180 for the 8-variable LRI model [23] and the 19-variable TP model [39] . Lionetti et al. [21, 22] showed how different implementations are needed for different cell models (two-variable FitzHughNagumo [10] , eight-variable BR [1] , 18-variable Puglisi-Bers (PB) [30] , 42-variable Grandi et al. [13] , and 87-variable Flaim et al. [11] ) in order to optimize each one and obtained a speedup of 6.7 for the 87-variable model. GPUs also have been used for intracellular calcium dynamics within a single cell using Monte Carlo simulations, where a factor of 15,000 reduction in time compared to previous studies was found [16] . In addition to electrophysiological dynamics, GPUs have been used to accelerate heart manipulations to enhance intervention simulations such as catheter positioning [43] , surgical deformation [26] , simple contractions [42, 44] , and ECG generation [36, 37] .. In this manuscript, we do not focus on comparing CPU vs GPU performance, as this has been amply demonstrated already using many different cell models. Instead, we focus on developing optimal implementations to obtain the maximum accelerations and get as close as possible to real time simulations. Sato et al. report 1 s of simulation in the 8-variable LR1 model in an 800x800 domain taking 283 s; in contrast, our simulations in the 8-variable-BR model (the two models are mathematically almost equivalent and share more than 90% of the same equations) take 11.34 s on a 512 x 512 domain and 39.2 s on a 1024 x 1024 domain (rescaling our times to the 800 x 800 domain results in a comparable speedup of a factor of 11). Vigmond et al. [40] report that 1 s of simulation time on 5 million nodes using the 27-variable Mahajan et al. model takes about 16 ksec (~4.5 h), whereas our 19-variable TP implementation in a 2048 x 2048 domain (close to 5 million nodes) takes about 8.2 min. However, a direct comparison is difficult to make as there is not only a difference of eight ODEs, but their simulations utilize a computationally more expensive bidomain approximation (used during simulations of defibrillation, where a Poisson equation needs to be solved at each time step). Lionetti et al [21, 22] performed 300 ms of a heart beat simulation on a domain that consisted of 42,240 "cell" points to represent a ventricular section. Their main interest was to optimize the ODE part of the reaction diffusion system, so no spatial integration was performed and all the cells were decoupled; therefore, their integration times did not included the spatial integrations. However, they used different optimizations for the different cell models tested and showed how different models benefit from different types of optimizations. Rocha et al. report simulations of the eight-variable LR1 and the 19-variable TP models for 500 ms for different 2D grid sizes (the largest of which was 640 x 640) using a higher spatial resolution of 0.01 cm. To compare with their results, we performed 500 ms simulations using the same domain size and spatial resolution. They report a simulation time of 11.4 minutes and 2.8 hours for the LR1 and the TP models, whereas we obtain for the BR and TP models 23.05 s and 285.56 sec on a C1060 card similar to theirs and 13.9 s and 105.4 s on a C2070 (Fermi-based) card. It is important to note that the times reported by Rocha et al. includes outputting data at unspecified intervals; for comparison, our times include outputting a byte representation of the voltage at all nodes every 1 ms.

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


Identification of biological tissue using chirped probe THz imaging We consider the application of pulsed THz imaging systems in biomedical diagnostics and mail/packaging inspection. The sub-millimetre spectroscopic measurements obtained from T-ray systems contain a wealth of information about the sample under test. We demonstrate that different types of tissue can be classified based on their terahertz response measured with the chirped probe pulse technique. We demonstrate the performance of a quadratic classifier using linear filter models for feature extraction in the discrimination between different tissues.Modern THz systems are hindered by the slow acquisition speed. The chirped probe pulse technique offers a significant improvement in this context. We present the terahertz responses of biological samples measured using a chirped probe pulse, and discuss the problem of data processing and extracting sample characteristics. q Terahertz imaging is a relatively new addition to the wide array of available imaging modalities. It utilises the terahertz, or far-infrared, region of the electromagnetic spectrum and is based upon the increasingly popular technique of terahertz time-domain spectroscopy (THz-TDS). The unique properties of THz radiation allow terahertz imaging to fill niches that are unreachable using other techniques. THz spectroscopy systems are seeing application in semi-conductor characterisation [1] , gas sensing [2] and molecular probing [3] . Terahertz imaging has been demonstrated for imaging flames [4] , leaf moisture content [5] , skin burn severity [4] , tooth cavities [6] and skin cancer [7] . Several excellent reviews of THz-TDS [8] and T-ray imaging [9, 10] are available.. Electro-optic (EO) detection of a terahertz pulse using a chirped probe pulse was first demonstrated by Jiang and Zhang [11] . This novel technique allows the full terahertz waveform to be measured simultaneously rather than requiring a stepped motion stage to scan the temporal profile. This provides a significant reduction in the acquisition time and greatly extends the applicability of terahertz systems in situations where the sample is dynamic or moving. Indeed, single shot measurements have been demonstrated for measuring the transmitted terahertz response using a single femtosecond light pulse [12] .. We have utilised the chirped probe pulse technique to acquire images of in vitro tissue samples and this paper presents classification results based on the spectroscopic information obtained from these measurements. The chirped pulse technique is not without its drawbacks, and the reduction in temporal resolution has been noted by other authors [13, 14] . We present spectra obtained using the chirped pulse method and discuss the limitations imposed in the frequency domain.. Signal processing techniques for terahertz systems is a relatively unexplored area, however, work has been reported in determining optimal techniques for de-noising [15, 16] , extracting material constants [17, 18] and gas mixture analysis [19] . This paper adds to this important field by considering linear modelling as a means of feature extraction with a goal of classifying samples based on their terahertz responses. This has particular application in a medical imaging setting where extracted diagnostic information is required to aid the medical practitioner in assessing the patient. This paper begins by summarising the field of T-ray imaging. Section 2 reviews the available technologies for performing T-ray imaging and Section 2.1 describes the principles of THz imaging with a chirped probe beam and details our experimental setup. We then introduce the signal processing algorithms employed to process the data from the chirped imaging system. Section 3 provides details on the linear filter models and the classification scheme which was developed. The results of this analysis are given in Section 4. Finally Section 5 summaries the results and suggests directions for future research. Terahertz imaging using a chirped probe pulse represents a recent addition to the available THz imaging techniques and promises to allow terahertz imaging and spectroscopy to extend to new applications in the monitoring of ultrafast phenomena due to its capacity for single shot measurements.. We have presented the first ever images of biological tissue measured using this technique, and have demonstrated the richness of the information content of the obtained data. Simple feature extraction and classification algorithms were presented that allow for the automated analysis of these images and may one day facilitate computerised diagnosis of medical conditions based on the measured THz response. Beef and chicken samples were classified using a Mahalanobis distance classifier. The required computational complexity of the classifier was reduced using linear filter models to extract features from the measured responses. Different filter models were compared and very simple second order FIR filters were found to perform surprisingly well indicating that this model may be an accurate approximation of the underlying physical system. Further investigation of a physical model for the interaction of THz radiation with tissue is an important open question and it is likely to yield vastly improved feature extraction and classification algorithms.. The chirped imaging technique allows the full THz response of a single pixel to be measured simultaneously. This has advantages over all other THz imaging techniques in that if the sample moves during a scan the signature responses of the pixels are not corrupted, only the pixel to pixel intensity may change. Thus identification schemes such as those described in this paper will still succeed in classifying each pixel. However, the chirped imaging technique does suffer from a number of disadvantages. The measured response is not linearly dependent on the terahertz pulse as indicated in Section 2.3 and the signal-to-noise ratio is significantly higher than time-scanning techniques due to the absence of the lock-in amplifier. A number of solutions to the noise problem have been suggested including a lock-in CCD [30] and this remains an important focus of future research. Fig. 12: (a) shows a pseudo-colour image generated by classifying each pixel of the image based on a number of training pixels which were chosen using knowledge of the original sample geometry; (b) shows a THz image generated by mapping the maximum amplitude of the THz pulse at each pixel to the grey scale intensity.

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


On the behaviours produced by instruction sequences under execution Abstract. The behaviour produced by an instruction sequence under execution is a behaviour to be controlled by some execution environment: each step performed actuates the processing of an instruction by the execution environment and a reply returned at completion of the processing determines how the behaviour proceeds. The increasingly occurring case where the processing takes place remotely involves the generation of a stream of instructions to be processed and a remote execution unit that handles the processing of this stream of instructions. We use process algebra to describe the behaviours produced by instruction sequences under execution and to describe two protocols implementing these behaviours in the case of remote processing. We also show that all finite-state behaviours considered in process algebra can be produced by instruction sequences under execution. The behaviour produced by an instruction sequence under execution is a behaviour to be controlled by some execution environment. It proceeds by performing steps in a sequential fashion. Each step performed actuates the processing of an instruction by the execution environment. A reply returned by the execution environment at completion of the processing of the instruction determines how the behaviour proceeds. Increasingly, the processing of instructions takes place remotely. This means that, on execution of an instruction sequence, a stream of instructions to be processed arises at one place and the processing of that stream of instructions is handled at another place. The main objective of the current paper is to bring this phenomenon better into the picture. To achieve this objective, we describe two protocols for instruction stream processing that deal with this phenomenon.. The phenomenon sketched above is found if it is impracticable to load the instruction sequence to be executed as a whole. For instance, the storage capacity of the execution unit is too small or the execution unit is too far away.. The phenomenon requires special attention because the transmission time of the messages involved in remote processing makes it hard to keep the execution unit busy without intermission. The more complex protocol for instruction stream processing described in this paper is directed towards keeping the execution unit busy. There is no reason to use the word "remote" in a narrow sense. It is convenient to consider processing remote if it involves message passing with transmission times that are not negligible. In that case, the more complex protocol provides a starting-point for studies of basic techniques aimed at increasing processor performance, such as pre-fetching and branch-prediction, at a more abstract level than usual. Therefore, we consider the more complex protocol relevant to the area of computer architectures.. The descriptions of the protocols for instruction stream processing start from the behaviours produced by instruction sequences under execution. By that we abstract from the instruction sequences which produce these behaviours. At the level of abstraction concerned, it is easy to describe how the instruction streams are generated. How instruction streams can be generated efficiently from instruction sequences is another matter.. The work presented in this paper is a spin-off of a line of research whose working hypothesis is that instruction sequence is a central notion of computer science. In this line of research, issues concerning the following subjects from the theory of computation have been investigated from the viewpoint that a program is an instruction sequence: semantics of programming languages, expressiveness of programming languages, computability, computational complexity, and performance related matters of programs. In the area of computer architectures, basic techniques aimed at increasing processor performance have been studied in this line of research as well, The main references to the work carried out in this line of research can for instance be found in [11] .. In the work carried out in the line of research mentioned above, use is made of a special-purpose process algebra to describe and analyse the behaviours produced by instruction sequences under execution. The process algebra in question is introduced in [5] under the name BPPA (Basic Polarized Process Algebra), but prompted by the development of thread algebra [6] , which is a design on top of it, BPPA has been renamed to BTA (Basic Thread Algebra). The behaviours considered in BTA are called threads. They model the behaviours produced by instruction sequences under execution directly: upon each action performed by a thread, a reply from an execution environment -which takes the action as an instruction to be processed -determines how the thread proceeds. In generalpurpose process algebras, such as ACP [4, 2] , CCS [15, 17] and CSP [12, 16] , it is rather awkward to describe and analyse behaviours of this kind. However, the behaviours considered in BTA can be viewed as processes that are definable over ACP. This allows for the protocols for instruction stream processing to be described using ACP or rather ACP τ , an extension of ACP which supports abstraction from internal actions.. Process algebras such as ACP, CCS and CSP are considered relevant to computer science, as is witnesses by the extent of the work on process algebras in theoretical computer science. This means that there must be programmed systems whose behaviours are taken for processes as considered in such a process algebra. Another objective of the current paper is to establish results concerning the processes as considered in ACP that can be produced by programs under execution, starting from the perception of a program as an instruction sequence. The main result established is that, by apposite choice of basic instructions, all finite-state processes can be produced by instruction sequences provided that the cluster fair abstraction rule (see e.g. [13] , Section 5.6) is valid.. In the work carried out in the line of research mentioned above, use is made of an algebra of instruction sequences to describe and analyse instruction sequences. The algebra in question is introduced in [5] under the name PGA (ProGram Algebra). The instruction sequences considered in PGA are single-pass instruction sequences, i.e. a finite or infinite sequences of instructions of which each instruction is executed at most once and can be dropped after it has been executed or jumped over. PGA does not provide a notation for programs that is intended for actual programming: programs written in an assembly language are finite instruction sequences for which single-pass execution is usually not possible. We show that all finite-state processes can as well be produced by programs written in a program notation which is close to existing assembly languages.. Instruction sequences under execution, and more generally threads, may make use of services such as counters, stacks and Turing tapes. The use operators introduced in [6] are concerned with the effect of services on threads. An interesting aspect of making use of services is that instruction sequences under execution that make use of services may produce infinite-state processes. On that account, we add the use operators to BTA and make precise what processes are produced by instruction sequences under execution that make use of services. This paper is organized as follows. First, we give brief summaries of PGA and BTA (Sections 2 and 3) and define the threads produced by the instruction sequences considered in PGA (Section 4). Next, we introduce a kind of instructions/actions meant for interaction with services (Section 5), give brief a summary of ACP τ (Section 6), and define the processes produced by the threads considered in BTA if the actions are of the kind meant for threadservice interaction (Section 7). Then, we describe two protocols for instruction stream processing (Sections 8 and 9) and discuss some conceivable adaptations of the more complex one (Section 10). After that, we introduce a kind of instructions/actions meant for producing non-deterministic processes (Section 11) and show how they allow for all finite-state processes to be produced by instruction sequences (Section 12). Following this, we extend BTA with operators for making use of services and define the processes produced by threads making use of services (Section 13). We also introduce PGLD, a program notation close to existing assembly languages, and show that all finite-state processes can also be produced by PGLD programs (Section 14). Finally, we make some concluding remarks (Section 15).. This paper consolidates material from [7, 9, 10] . Using the process algebra known as ACP, we have described two protocols to deal with the phenomenon that, on execution of an instruction sequence, a stream of instructions to be processed arises at one place and the processing of that stream of instructions is handled at another place. The more complex protocol is directed towards keeping the execution unit busy. In this way, we have brought the phenomenon better into the picture and have ascribed a sense to the term instruction stream which makes clear that an instruction stream is dynamic by nature, in contradistinction with an instruction sequence. We have also discussed some conceivable adaptations of the more complex protocol. The description of the protocol starts from the behaviours produced by instruction sequences under execution. By that we abstract from the instruction sequences which produce those behaviours. How instruction streams can be generated efficiently from instruction sequences is a matter that obviously requires investigations at a less abstract level. The investigations in question are an option for future work.. We believe that the more complex protocol described in this paper provides a setting in which basic techniques aimed at increasing processor performance, such as pre-fetching and branch-prediction, can be studied at a more abstract level than usual (cf. [14] ). In particular, we think that the protocol can serve as a starting-point for the development of a model with which trade-offs encountered in the design of processor architectures can be clarified. We consider investigations into this matter an interesting option for future work.. Because process algebras such as ACP, CCS and CSP are considered relevant to computer science, there must be programmed systems whose behaviours are taken for processes as considered in such a process algebra. In that light, we have investigated the connections between programs and the processes that they produce, starting from the perception of a program as an instruction sequence. We have shown that, by apposite choice of basic instructions, all regular processes can be produced by means of instruction sequences as considered in PGA.. We have also made precise what processes are produced by instruction sequences under execution that make use of services. The reason for this is that instruction sequences under execution are regular threads and regular threads that make use of services such as unbounded counters, unbounded stacks or Turing tapes may produce non-regular processes. An option for future work is to characterize the classes of processes that can be produced by single-pass instruction sequences that make use of such services.

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


The metabolic algorithm for P systems: Principles and applications Metabolic P systems, shortly MP systems, are a special class of P systems, introduced for expressing biological metabolism. An MP system evolution is given by a metabolic algorithm, a deterministic strategy, where the classical viewpoint on metabolic dynamics, in terms of ordinary differential equations, is replaced by suitable generalizations of chemical principles. The basic principles of MP systems are given and their main aspects are explained by means of examples of biological modeling. A new kind of regulation mechanism is outlined, which could be the basis for a more efficient construction of computational models from experimental data of specific metabolic processes.

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


Unsupervised Inference of Data Formats in Human-Readable Notation One common approach to validating data such as email addresses and phone numbers is to check whether values conform to some desired data format. Unfortunately, users may need to learn a specialized notation such as regular expressions to specify the format, and even after learning the notation, specifying formats may take substantial time. To address these problems, this paper introduces Topei, a system that infers a format from an unlabeled collection of examples (which may contain errors). The generated format is presented as understandable English, so users can review and customize the format. In addition, the format can be used to automatically check data against the format and find outliers that do not match. Topei shows substantially higher precision and recall than an alternate algorithm (Lapis) on test data. Topei's usefulness is demonstrated by integrating it with spreadsheet, database, and web services systems. Information systems typically use semantics-free character strings to store small semi-structured data, including postal codes, person names, and URLs. The usual approach to ensuring strings' validity is to write programs such as database triggers to check if values match a desired format.. From a human-computer interaction standpoint, two major challenges interfere with this approach.. First, users must learn specialized notation to write a format. Regular expressions are probably the most common notation for specifying simple formats such as email addresses, but the notation is hard for users to master (Blackwell, 2001) . Even experienced programmers recognize that regular expressions are hard to learn. For example, the top few results in a Google search for "regular expressions" will return comments such as, "Do not worry if the above example or the quick start make little sense" and, "Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.". Second, even after a user learns a notation, specifying simple constraints can be time-consuming and complex. For example, IPv4 addresses have four integers, separated by periods, and each integer can range from 0 through 255. Just the regular expression for an integer from 0 through 255 is lengthy: The Tope system begins to address these challenges by presenting formats in understandable English, so users do not need to learn a specialized notation (Scaffidi, 2007) . To date, the system's main weakness is its limited support for helping users to get started: Although users do not need to learn specialized notation in order to specify a format, there is still the cognitive work of examining data, breaking it into parts, and representing the parts in the format. This paper addresses this limitation by presenting Topei, an algorithm that examines examples and infers a format. The process involves three steps:. 1. The user provides examples to Topei, which infers a format. 2. The user reviews the format in the Tope system's editor tool. Although the format is internally represented in an XML notation, the user never sees this, as the editor presents the format to the user as a set of statements in English. After any customization by the user, the editor saves the format in a file. 3. The user validates strings by passing them through the Tope system's parser tool, which attempts to parse each string using an augmented context-free grammar (CFG) automatically derived from the format.. In short, Topei provides automatic inference of formats, saving users time and cognitive load, while retaining the advantage of editability. This is an important advantage, since every inference algorithm can make errors, so users should be able to understand the inferred format and make corrections if needed. In particular, the sample data may not exemplify some aspects of the format, so users must manually add these aspects.. An important aspect of data validation is outlier finding, which involves identifying invalid data values that are mixed among a set of valid values. This paper evaluates Topei as an outlier finder by comparing it to the Lapis system (Miller & Myers, 2001) , revealing that Topei has higher precision and recall.. Section 2 reviews related work on inference and data formats. Section 3 describes the integration of Topei with spreadsheets, databases, and web services. Section 4 discusses the inference algorithm and evaluates its accuracy and limitations. This paper's contribution, Topei, has these traits:. • It infers a data format.. • It is unsupervised (uses unlabeled examples).. • Its formats permit soft constraints.. • Its formats are presentable in English.. • Its formats are useful for outlier finding.. Other algorithms share some traits but lack others: Many machine learning algorithms train a recognizer to notice certain features, enabling the recognizer to identify outliers lacking those features (Mitchell, 1997) . However, such algorithms generally do not infer a human-editable data format.. Other algorithms generate formats in specialized notation. These include (Blackwell, 2001) , (Lerman & Minton, 2000) , (Lieberman et al., 2001) , and (Nardi et al., 1998) , all of which use regular expressions or CFGs. One last system, Lapis, has a specialized notation; it is like Topei in that it is intended to be highly intuitive (Miller & Myers, 2001 ). Yet using its notation still takes practice, since expressing simple constructs can be cumbersome. For instance, the Lapis library defines a day (in a date) as: In contrast, Topei infers formats that are presented to users as understandable English, and it supports "soft" (non-mandatory) constraints on data.. Several tools recognize or manipulate some of the same kinds of data as Topei (Hong & Wong, 2006) (Pandit & Kalbag, 1997) (Stylos et al., 2004) . However, these tools' formats are hard-coded and cannot be extended or customized by end users.

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


TWO BINARY SEQUENCE FAMILIES WITH LARGE MERIT FACTOR Abstract. We calculate the asymptotic merit factor, under all rotations of sequence elements, of two families of binary sequences derived from Legendre sequences. The rotation is negaperiodic for the first family, and periodic for the second family. In both cases the maximum asymptotic merit factor is 6. As a consequence, we obtain the first two families of skew-symmetric sequences with known asymptotic merit factor, which is also 6 in both cases. We consider a sequence A of length n to be an n-tuple (a 0 , a 1 , . . . , a n−1 ) of real numbers. The aperiodic autocorrelation of A at shift u is Key words and phrases: Binary sequence, merit factor, asymptotic, Legendre sequence, rotation, construction, periodic, negaperiodic, skew-symmetric.. The first named author is supported by Deutsche Forschungsgemeinschaft (German Research Foundation).. The second named author is supported by NSERC of Canada. Theorems 5 and 8 establish the asymptotic merit factor of a negaperiodic construction described in [8] and a periodic construction described in [12] , based in both cases on Legendre sequences. Corollaries 6 and 9 provide families of skewsymmetric sequences having asymptotic merit factor 6, equal to the current best proven result for lim sup n→∞ F n .. However there is considerable numerical evidence, though currently no proof, that an asymptotic merit factor greater than 6.34 can be achieved for a family of binary sequences constructed via periodic appending of a Legendre sequence [2] . Numerical results displayed by Yu and Gong [12, Fig. 3 ] for the periodic construction, and reported by Parker [9, p. 12] for the negaperiodic construction, indicate that both constructions also attain a merit factor greater than 6.34 under suitable appending. A possible direction for future research is to attempt to prove that the asymptotic merit factor of these appended sequences is equal to the (as yet undetermined) asymptotic merit factor of the periodically appended Legendre sequences described in [2] .

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