Using spatio-temporal information in API calls with machine learning algorithms for malware detection Run-time monitoring of program execution behavior is widely used to discriminate between benign and malicious processes running on an end-host. Towards this end, most of the existing run-time intrusion or malware detection techniques utilize information available in Windows Application Programming Interface (API) call arguments or sequences. In comparison, the key novelty of our proposed tool is the use of statistical features which are extracted from both spatial (arguments) and temporal (sequences) information available in Windows API calls. We provide this composite feature set as an input to standard machine learning algorithms to raise the final alarm. The results of our experiments show that the concurrent analysis of spatio-temporal features improves the detection accuracy of all classifiers. We also perform the scalability analysis to identify a minimal subset of API categories to be monitored whilst maintaining high detection accuracy. The API calls facilitate user mode processes to request a number of services from the kernel of Microsoft Windows operating system. A program's execution flow is essentially Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. equivalent to the stream of API calls [2] . Moreover, the Microsoft Windows provides a variety of API 1 calls of different functional categories -registry, memory management, sockets, etc. Every API call has a unique name, set of arguments and return value. The number and type of arguments may vary for different API calls. Likewise, the type of return value may also differ.. In the past, a significant amount of research has been focused on leveraging information available in API calls for monitoring a program's behavior. The behavior of a program can potentially highlight anomalous and malicious activities. The seminal work of Forrest et al. in [9] leveraged temporal information (fixed length sequences of system calls) to discriminate between benign and malicious Unix processes [16] . Later, Wepsi et al. proposed an improved version with variable length system call sequences [17] . In a recent work, the authors propose to extract semantics by annotating call sequences for malware detection [6] . The use of flow graphs to model temporal information of system calls has been proposed in [5] . An important shortcoming of these schemes is that a crafty attacker can manipulate temporal information to circumvent detection [12] , [15] .. Subsequently, Mutz et al. proposed a technique that utilizes information present in system call arguments and return values [11] . The results of their experiments reveal that using spatial information enhances the robustness of their proposed approach to mimicry attacks and other evasion attempts. Another technique, M-LERAD, uses simple white-lists of fixed-length sequences and system call argument values for anomaly detection [14] . The authors report that the accuracy of the composite scheme is better than either of the standalone spatial and temporal approaches.. In this paper, we propose a composite malware detection scheme that extracts statistical features from both spatial and temporal information available in run-time API calls of Windows operating systems. The thesis of our approach is that leveraging spatio-temporal information in run-time API calls with machine learning algorithms can significantly enhance the malware detection accuracy. Figure 1 provides the architecture of our proposed scheme. Our tool consists of two modules: (1) offline training module applies machine learning algorithms on the available data to develop a training model, and (2) online detection module extracts spatiotemporal features at run-time and compares them with the In our scheme, spatial features are generally statistical properties such as means, variances and entropies of address pointers and size parameters. The temporal information is modeled using n th order discrete time Markov chain with k states, where each state corresponds to a particular API call. In the training phase, two separate Markov chains are constructed for benign and malicious traces that result in k n different transition probabilities for each chain. The less 'discriminative' transitions are pruned by using an informationtheoretic measure called information gain (IG). Γ transitions with the highest values of IG are selected as boolean features. The extracted spatial and temporal features are then given as input to the standard machine learning algorithms for classification.. We have used a commercial API call tracer that uses the kernel-mode hook to record the logs for running processes on Microsoft Windows XP. To reduce the complexity of runtime tracing, we have short-listed 237 core API calls from six different functional categories such as socket, memory management, processes, and threads etc. We have collected system call logs of 100 benign programs. Moreover, we have collected system call traces of 117 trojans, 165 viruses and 134 worms. These malware are obtained from a publicly available collection called 'VX Heavens Virus Collection' [3] . The results of our experiments show that our system provides an accuracy of 0.98 on the average. We have also carried out the scalability analysis to identify a minimal subset of API categories to be monitored whilst maintaining high detection accuracy. The results of the scalability analysis show that monitoring only memory management and file I/O API calls can provide an accuracy of 0.97.. The rest of the paper is organized as follows. In the next section we provide an introduction to the Windows API. In Section 3, we explore different design dimensions to extract information -spatial and temporal -available in the Windows API calls. In Section 4, we present the mathematical formulation of our problem and then use it to model and quantify spatio-temporal features. In Section 5, we present details of our dataset, experimental setup and discuss the results of experiments. Section 6 concludes the paper with an outlook to our future research. We provide brief details of machine learning classifiers in the accompanying technical report [4] . We further divide the core-functionality API calls into seven different categories: (1) registry, (2) network management, (3) memory management, (4) file I/O, (5) socket, (6) processor and threads, and (7) dynamically linked libraries (DLLs). A brief description of every category is provided in Table 1 . The majority of benign and malware programs use API calls from one or more of the above-mentioned categories. For example, a well-known Bagle malware creates registry entries uid and frun in HKEY CURRENT USER\ SOFTWARE\Windows. It also collects the email addresses from a victim's computer by searching files with the extensions .wab, .txt, .htm, .html. Moreover, Bagle opens a socket for communicating over the network. In this paper, we have presented our run-time malware analysis and detection scheme that leverages spatio-temporal information available in API calls. We have proven our thesis that combined spatio-temporal features' set increases the detection accuracy than standalone spatial or temporal features' set. Moreover, our scalability analysis shows that our system achieves the detection accuracy of 0.97 by only monitoring API calls from memory management and file I/O categories.. It is important to emphasize that spatial and temporal features use completely different data models; therefore, intuitively speaking they have the potential to provide an extra layer of robustness to evasion attempts. For example, if a crafty attacker manipulates the sequence of system calls to evade temporal features, then spatial features will help to sustain high detection accuracy and vice-versa. In future, we want to quantify the effect of evasion attempts by a crafty attacker on our scheme. (c) Worm-Benign (Zoomed) Figure 6 : ROC plots for detecting malicious executables using spatial and temporal features. We have discussed the formal foundation of our spatiotemporal features' set extracted from the traces of API calls. To analyze the classification potential of these features, we use definition of information gain (IG). The values of IG approaching one represent features with a higher classification potential and vice-versa. Figure 5 shows the normal probability plot of IG of spatial and temporal features for trojans, viruses and worms. It is interesting to see in Figure 5 . Another important observation is that the means of IG distribution of spatial features are 0.10, 0.09 and 0.08 for worms, viruses and trojans respectively. Similarly, the means of IG distribution of temporal features are 0.16, 0.14 and 0.12 for worms, viruses and trojans respectively. Intuitively speaking -on the basis of IG values -we expect that trojans will be most difficult to classify, followed by viruses and worms respectively. We now explain the experimental setup used in our study. We have combined the benign executable trace with each type of the malware to create three separate datasetsbenign-trojan, benign-virus and benign-worm. A stratified 10-fold cross validation procedure is followed for all experiments reported later in this section. In this procedure, we partition each dataset into 10 folds where 9 of them are used for training and the left over fold is used for testing. This process is repeated for all folds and the reported results are an average of all folds.. For two-class problems, such as malware detection, the classification decision of an algorithm may fall into one of the four categories: (1) True Positive (TP) -correct classification of a malicious executable as malicious, (2) True Negative (TN) -correct classification of a benign executable as benign, (3) False Positive (FP) -wrong classification of a benign executable as malicious, and (4) False Negative (FN) -wrong classification of a malicious executable as benign.. We have carried out the standard ROC analysis to evaluate the accuracy of our system. ROC curves are extensively used in machine learning and data mining to depict the tradeoff between the true positive rate and the false positive rate of a given classifier. We quantify the accuracy (or detection accuracy) of each algorithm by using the area under ROC curve (0 ≤ AUC ≤ 1). The high values of AUCs reflect high tp rate (= T P T P +F N ) and low fp rate (= F P F P +T N ) [8] . At AUC = 1, tp rate = 1 and fp rate = 0.

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


A new class of QoS routing strategies based on network graph reduction Abstract-This paper discusses a new approach to QoS routing, introducing the notion of algorithm resilience (i.e., its capability to adapt to network and load modifications) as performance index of the algorithm itself, for a given network topology, load and traffic pattern.The new approach can he summarized as Network Graph Reduction, i.e., a modification of the graph describing the network hefore the routing path is computed, in order to exclude from the path selection over-congested portions of the network. This solution leads to a class of two-step routing algorithms, where hoth steps are simple, hence allowing efficient implementation.Simulation experiments, run on randomly-generated topologies and traffic patterns, show that these routing algorithms outperform hoth the standard Minimum Hop algorithm and those QoShased algorithms hased on the same metrics hut not using the notion of Network Graph Reduction. Dynamic, QoS-based routing received considerable attention in recent years 111, 121, 131, 141, 1.51, 161, 171 , especially considering the difficulty in predicting Internet traffic patterns and the consequent impossibility to properly plan and dimension the network.. The core of any QoS-based routing algorithm is a networkstatus-dependent cost function that is used to find the optimal (or at least a suitable) route across the network by solving an optimization problem. In particular, given the best-effort nature of the current Internet where elastic data flows are in the majority, the most commonly used metric aims at the maximization of either network utilization or user throughput. Several proposals introduced cost functions, algorithms and protocols that give them advantages over traditional, topology-based algorithms such as the Minimum Hop (MH)' presently used in TCP/IP networks [ 81, [ 91. For example in [ 11, the authors introduce the bottleneck bandwidth as a metric and then define the maximization of user throughput as optimization target. Similarly, in 121, [ 31 the authors study how to improve the This work was supported in part by the Italian Ministry for University and Scientific Research through the PLANET-IP Project. 'In this paper we refer to the Minimum Hop path as a special case of' the Shortest Path, in which all links have unitary costs. throughput of high-bandwidth traffic, such as large file transfers, in a network where resources are fairly shared among connections. Their findings, obtained by simulation, show that, at high loads, a Minimum-Hop routing algorithm maximizes network and user performance; for low-congested networks, instead, they propose an algorithm, named Minimum Distance (MD) routing, offering better performance. However they are unable to provide an algorithm that merges the two behaviors. Researchers focused their attention upon other aspects of QoS routing, namely protocol overhead [ 5 1, [ 7 1, implementation issues 141, [6] ,impactofupdatepolicies 1.51. A major drawback, however, affects all QoS-based routing algorithms. The cost function at the core of the algorithms tries to find portions of the network where resources are underutilized and exploits them to the benefit of connections that would otherwise cross a congested portion of the network. In doing so, as shown in [ 111 for the case of simple alternate routing, the algorithm ends up consuming more resources than Minimum Hop routing does, hence, in case of heavy congestion, QoS-based routing wastes resources and performs poorly compared with MH. A formal proof of this observation can be found in [ 101. The extention of this property to TCP/IP networks is not straightforward, since Ilows often exhibit a greedy, elastic behavior, using up the available bandwidth. Minimum Hop routing has been already conjectured to be asymptotically optimal as the load p offered to the network tends to infinity, and many simulation results confirm this intuition [ 21, [ 3 1, [ 121, [ 1.51 . We stress at this point that the poor performance of QoSbased routing at high loads is not due to the sub-optimality of the used algorithms, but is rooted in the locality of the routing decision. Whenever a call is routed, the given cost function is minimized/maximized for the current state of the network, necessarily disregarding the future network evolution. Under heavy load, the overall network benefit does not coincide with the cost function of a single call, hence the minimization of the one does not lead to the maximization of the other.. In the light of the above discussion, the drawback of QoS routing in the Internet is clear: whatever is gained at low or medium network loads, it is paid for at high network loads. What is needed to solve this problem is a resilient algorithm that allows the migration of a QoS-based routing algorithm to A4H routing as p grows large. The problem is that p is typically not known to the routing algorithm, not even in the case of centralized routing algorithms.. The contribution of this paper lies in the identification and definition of a class of routing algorithms, named NGR (Network Graph Reduction), whose performance encompasses that of QoS-based routing algorithms at light and medium loads, and the optimality of A4H routing at high loads. The goal is obtained by reducing the graph that describes the network topology, and applying a suitable metric to the reduced graph. Results are reported showing both the elementary properties of the algorithm, and its behavior in randomly-generated topologies, both with uniform and non-uniform, time-varying traffic.. The rest of the paper is organized as follows. Section II provides a general description of the NGR algorithm, along with implementation issues. Section III presents the network and traffic models used in the simulation presented in Section IV, in which the performance of the NGR algorithm is compared to the one of classic QoS routing algorithms, both in simple network scenarios, and in more complex ones. Finally, conclusions and future work are discussed in Section V.

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


On stable parametric finite element methods for the Stefan problem and the Mullins-Sekerka problem with applications to dendritic growth We introduce a parametric finite element approximation for the Stefan problem with the Gibbs-Thomson law and kinetic undercooling, which mimics the underlying energy structure of the problem. The proposed method is also applicable to certain quasi-stationary variants, such as the Mullins-Sekerka problem. In addition, fully anisotropic energies are easily handled. The approximation has good mesh properties, leading to a well-conditioned discretization, even in three space dimensions. Several numerical computations, including for dendritic growth and for snow crystal growth, are presented. Pattern formation resulting from the motion of a two-phase boundary in a diffusing field appears in many physical situations, such as the growth of snowflakes, solidification of metals and Ostwald ripening in alloys. Often a dendritic structure appears during the growth of crystals leading to complex forms with side branches, as can be seen for snow crystals and for dendrites of a solidifying alloy. It is by now well understood that surface energy effects are important in these pattern forming scenarios. Roughly speaking, patterns emerge in diffusive driven phase boundary motion via the competition between interface energy and diffusion. To keep the interface energy small, the (weighted) surface area has to be small. On the other hand, the diffusion kinetics prefer to drive the system into irregular shapes with large surface area so that, e.g. in solidification, latent heat can diffuse away from the solidifying front more easily. We refer to the review of Ben-Jacob (1993) , the book of Davis (2001) and the references therein for more information on the physics of pattern formation in diffusive systems.. Patterns arise in diffusive phase boundary motion since a growing front becomes unstable. A meaningful attempt to numerically approximate these phenomena should make sure that the numerical method used does not lead to additional instabilities, and hence to patterns which result from the discretization. It is by now well accepted that some of the first numerical results on pattern forming systems led to patterns which resulted from numerical errors. For example, often side branches in dendritic growth simulations disappear when the grid parameters are sufficiently refined, see e.g. Schmidt (1996, Fig. 4.5) . Taking the unstable behaviour of the process into account, it is important to come up with a numerical method that is stable in the sense that dissipation inequalities which are true for the continuous problem have a natural discrete analogue. If this is guaranteed, one reduces the likelihood that instabilities are triggered by the numerical method.. It is the goal of this paper to introduce such a discretization for the free boundary problem which governs the evolution of phase boundary motion in diffusive systems. For dendritic growth it is also important to take the anisotropic nature of surface energy into account. Based on earlier work by the authors, see Barrett, Garcke, and Nürnberg (2008c) , our presented numerical method is able to handle fully anisotropic situations, which is particularly challenging as here the underlying equations are highly nonlinear.. The governing equations for the two-phase boundary motion, that we consider, are diffusion equations in the bulk coupled to the Stefan condition on the free boundary, which requires heat conservation on the phase boundary. In addition, one requires a condition stating local thermodynamical equilibrium on the two-phase interface. This condition is given by the Gibbs-Thomson relation with kinetic undercooling in which, typically, one has to allow for anisotropy. The full problem, that we consider, goes back to Mullins and Sekerka (1963) and Voronkov (1965) , the latter being the translation of Voronkov (1964) . We note that for a fully anisotropic situation, Gurtin (1988) derived the governing system within the context of rational thermodynamics. For reviews we refer to Langer (1980) , Gurtin (1993) , Visintin (1996) and Davis (2001) . An important result on the Stefan problem with the Gibbs-Thomson law is the seminal work of Mullins and Sekerka (1963) , and Mullins and Sekerka (1964) , where a linear stability analysis was used to show that a growing nucleus and a moving planar front, respectively, become unstable at large undercoolings. It is this instability which is the basic reason for pattern formation in diffusion driven interface motion, in situations where capillary effects cannot be neglected. Snow crystal formation is the most prominent example for such a pattern forming event.. Existence results for the Stefan problem with the Gibbs-Thomson law are due to Chen and Reitich (1992) for local-in-time smooth solutions, and Luckhaus (1990) for global-intime weak solutions. Both results are for isotropic situations, but we mention here that the result of Luckhaus (1990) was recently generalized by Garcke and Schaubeck (2009) to anisotropic situations. In many situations the interface evolution is slow compared to the time scale for diffusion in the bulk. Hence, it is often justified to replace the full parabolic diffusion equation in the bulk by a quasi-static diffusion equation, i.e. an elliptic equation has to be solved at each instance in time. The resulting system is the Mullins-Sekerka problem, and we refer to Duchon and Robert (1984) and Escher and Simonett (1997) for a local well-posedness result, and to Luckhaus and Sturzenhecker (1995) and Röger (2005) for results on global-in-time weak solutions.. Mathematical approaches for the numerical approximation of the Stefan problem can be distinguished according to how the two-phase interface is treated. Apart from parametric or front tracking approaches, such as the one considered in this paper, there exist phase field and level set methods. We remark that over the last two decades phase field methods, in particular, have been successfully used to model crystal growth and other related phenomena. In phase field methods the sharp interface is replaced by a diffuse interfacial layer for an order parameter. For the numerical simulation of dendritic growth in three dimensions, this method was first used in Kobayashi (1994) . We refer to Boettinger, Warren, Beckermann, and Karma (2002) , Chen (2002) and Singer-Loginova and Singer (2008) for recent review articles. A similar idea is used for level set methods. Here the sharp interface is represented as the zero level set of an auxiliary function, the so called level set function, the evolution of which is described by a highly nonlinear PDE, which can be solved on e.g. a fixed Cartesian grid. We refer to the books of Sethian (1999) and Osher and Fedkiw (2003) , and the paper of Fried (2004) for more details.. In this paper we will consider a parametric approach. Alternative sharp interface approaches for the Stefan problem with the Gibbs-Thomson law, where the interface is tracked explicitly, have been used and proposed by e.g. Almgren (1993) , Schmidt (1993) , Roosen and Taylor (1994) , Schmidt (1996) , Juric and Tryggvason (1996) and Schmidt (1998) . We mention here, in particular, the pioneering work Schmidt (1993) and Schmidt (1996) , where for the first time the full Stefan problem in three dimensions was solved within a sharp interface framework. Together with Kobayashi (1994) , these constitute the first numerical simulations of dendritic growth in 3d in the literature. We remark that our approach has some similarities to the approach by Schmidt, which is based on the coupling of a finite element method for solving the diffusion equation in the bulk to a parametric finite element method for the evolution of the two-phase interface. The latter makes use of ideas of Dziuk (1991) , which allow the computation of a discrete mean curvature vector of a polyhedral surface in a variational context. Compared to Schmidt (1996) our approach has the advantages that (a) fully anisotropic surface energies can be treated, (b) it mimics the Lyapunov structure for the continuous problem in both the isotropic and anisotropic case, and (c) no smoothing of the interface mesh is needed in practice. In addition, we can also handle quasi-static variants, such as the Mullins-Sekerka problem, which play an important role in practice.. For numerical approaches to the Mullins-Sekerka problem we refer to the work of Bates, Chen, and Deng (1995) , Zhu, Chen, and Hou (1996) , Mayer (2000) and Bates and Brown (2000) , where the approximations are based on a boundary integral formulation. In the paper Zhu, Chen, and Hou (1996) a method, which was introduced by Hou, Lowengrub, and Shelley (1994) for the equidistribution of mesh points on evolving planar curves, is used in order to remove the "stiffness" introduced through the curvature term. We remark that our approach also removes the "stiffness" of interfacial evolution problems as our method has very good properties with respect to the grid spacing, leading to a well-conditioned discretization. We refer to Barrett, Garcke, and Nürnberg (2007) and Barrett, Garcke, and Nürnberg (2008b) for a discussion of mesh properties in our approach; and remark that, in contrast to the approach of Hou, Lowengrub, and Shelley (1994) , our approach can also be applied in three space dimensions.. Let us summarize the advantages of our approximation compared to existing approaches.. • Our fully discrete scheme closely mimics an underlying Lyapunov structure of the continuous problem, leading to an unconditionally stable approximation in certain situations. Moreover, a semidiscrete version of our scheme is always stable and, in addition, conserves certain physical quantities exactly; see Remark 3.5 below.. • Like most other parametric approaches, we approximate the continuous interface Γ by a polyhedral surface Γ m . Often in parametric approaches the mesh gets distorted during the time evolution, making a reparameterization or mesh smoothing necessary. Instead, we obtain asymptotic equidistribution in two space dimensions, while in 3d the meshes in general remain well distributed. This, in particular, leads to a well-conditioned discretization.. • It is straightforward to include fully anisotropic surface energies into our model, for both two and three space dimensions. In particular, we consider the Gibbs-Thomson law with an anisotropic mean curvature, as it was derived in Gurtin (1988) .. • The cross terms involving the bulk and interface meshes are integrated exactly. This appears sensible, as it is the interaction at the interface which mainly drives the evolution. Most other approaches in the literature use quadrature for simplicity, see e.g. Schmidt (1996) , which, in particular, are not exact even for piecewise linear functions in the bulk. However, we remark that exact integration for piecewise linear finite elements has been considered previously, e.g. in Schmidt (1993) .. • Quasi-static variants of the Stefan problem, such as the Mullins-Sekerka problem, can be handled naturally in our formulation. For the Mullins-Sekerka problem our numerical discretization has a natural gradient flow structure, which is related to the continuous situation; see the Appendix for more details.. The remainder of the paper is organized as follows. In Section 2 we state strong and weak formulations of the Stefan problem and the Mullins-Sekerka problem that we consider in this paper. In Section 3 we introduce our numerical approximation for these problems; that is, a coupled finite element approximation for the interface evolution and the diffusion equation in the bulk. Moreover, we will show well-posedness and stability results for our numerical approximations. Solution methods for the discrete equations and mesh adaptation strategies are discussed in Sections 4 and 5, respectively. In addition, we present several numerical experiments, including simulations of snow crystal formations in three space dimensions, in Section 6. Finally, in the Appendix we present a gradient flow description of our spatially discrete approximation for the Mullins-Sekerka problem. 2 The mathematical models. , be a domain occupied by a material which at each time t and at each space point z ∈ Ω is either liquid or solid and let ν Ω be the outer unit normal to ∂Ω, the boundary of Ω. The solid-liquid interface is at each time t assumed to be a sufficiently smooth hypersurface Γ(t) ⊂ Ω. We assume furthermore that Γ = (Γ(t)) t∈[0,T ] , T > 0, is a sufficiently smooth evolving hypersurface parameterized by x(·, t) : Υ → R d , where Υ ⊂ R d is a given reference manifold, i.e. Γ(t) = x(Υ, t). Moreover, we denote the solid region by Ω s (t) and the liquid region is then given as Ω l (t) := Ω \ Ω s (t). Throughout this paper, for a quantity v defined on Ω, we use the shorthand notations v s := v | Ωs and v l := v | Ω l . For the interface Γ, we adopt the convention that its unit normal ν points into Ω l ; see Figure 1 . The mean curvature κ of Γ is defined to be the sum of the principal curvatures of Γ and we adopt the sign convention that κ is negative for a convex domain Ω s (t). Furthermore, V := x t . ν is the normal velocity of the evolving hypersurface Γ.

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


Single-Symbol ML Decodable Distributed STBCs for Cooperative Networks 2977 pN pdf of noise, continuous-valued RDP. 2 Maximum average power in query sequence. 2 n Maximum average power in noise. P Conditional privacy loss. I w Worst-case information. g(:) ML estimate function. S i ML estimate of S i . S ML estimate of S. ! m Maximum probability of error. M Alphabet for X i .M Number of possible values of X. m Number of queries per bit determined.3m Lower bound on i 8i m. min limm!1 3m. 8 RDP channel. C(8) Capacity of 8. Small bias of discrete RDP. E m Average probability of error. H(:) Entropy. m Query complexity per record. 0 m Lower bound on m 8i m. N r Number of records.The author would like to acknowledge the substantial contributions of the anonymous reviewers, including a pointer to [6].Abstract-In this correspondence, the distributed orthogonal space-time block codes (DOSTBCs), which achieve the single-symbol maximum likelihood (ML) decodability and full diversity order, are first considered. However, systematic construction of the DOSTBCs is very hard, since the noise covariance matrix is not diagonal in general. Thus, some special DOSTBCs, which have diagonal noise covariance matrices at the destination terminal, are investigated. These codes are referred to as the row-monomial DOSTBCs. An upper bound of the data-rate of the row-monomial DOSTBC is derived and it is approximately twice higher than that of the repetition-based cooperative strategy. Furthermore, systematic construction methods of the row-monomial DOSTBCs achieving the upper bound of the data-rate are developed when the number of relays and/or the number of information-bearing symbols are even.Index Terms-Cooperative networks, distributed space-time block codes, diversity, single-symbol maximum likelihood (ML) decoding. It is well known that relay terminal cooperation can improve the performance of a wireless network considerably [1] - [4] . A source terminal, several relay terminals, and a destination terminal constitute a cooperative network, where the relay terminals relay the signals from Manuscript the source terminal to the destination terminal. Because the destination terminal may receive different signals from several relay terminals simultaneously, some mechanism is needed to prevent or cancel the interference among these signals.. A simple solution is the so-called repetition-based cooperative strategy, which was proposed in [3] . In this strategy, only one relay terminal is allowed to transmit the signals at every time slot. Consequently, no interference exists at the destination terminal, and hence, the decoding process is single-symbol maximum likelihood (ML) decodable. 1 Furthermore, it has been shown that the repetition-based cooperative strategy could achieve the full diversity order K, where K is the number of relay terminals. Due to its single-symbol ML decodability and full diversity order, the repetition-based cooperative strategy was used and studied in many papers [4] , [6] - [10] . However, the repetition-based cooperative strategy has very poor bandwidth efficiency. It is easy to see that the data-rate 2 of the repetition-based cooperative strategy is 1=K. Recently, many researchers noticed that the use of distributed space-time codes could improve the bandwidth efficiency of cooperative networks [11] - [13] and many practical distributed space-time codes were proposed [14] - [17] . However, none of those codes were single-symbol ML decodable in general. 3 In [18] , Hua et al. investigated the use of the generalized orthogonal designs in cooperative networks. It is well-known that the generalized orthogonal designs can achieve the single-symbol ML decodability and full diversity [19] , [20] . However, when the generalized orthogonal designs were directly used in cooperative networks, the orthogonality of the codes was lost, and hence, the codes were not single-symbol ML decodable any more [18] . Very recently, Jing et al. used the existing orthogonal and quasi-orthogonal designs in cooperative networks [21] . But, the codes proposed in [21] were not single-symbol ML decodable in general. To the best of our knowledge, distributed space-time codes which achieve both the single-symbol ML decodability and the full diversity order have never been designed. This motivated our work.. In this correspondence, we first consider the distributed orthogonal space-time block codes (DOSTBCs) in the amplify-and-forward cooperative networks. The DOSTBCs achieve the single-symbol ML decodability and the full diversity order. However, systematic construction of the DOSTBCs is very hard due to the fact that the covariance matrix of the noise at the destination terminal is nondiagonal in general. Therefore, we restrict our interests to a subset of the DOSTBCs, which result in a diagonal noise covariance matrix at the destination terminal. We refer to the codes in this subset as the row-monomial DOSTBCs and derive an upper bound of the data-rate of the row-monomial DOSTBC. Compared to the repetition-based cooperative strategy, the row-monomial DOSTBCs achieve approximately twice higher data-rate, while having the same decoding complexity and diversity order. Furthermore, systematic construction methods of the row-monomial DOSTBCs are developed. We prove that the codes generated by the systematic construction methods achieve the upper bound of the data-rate when the number K of relays and/or the number N of information-bearing symbols are even. 1 A code or a scheme is said to be single-symbol ML decodable, if its ML decoding metric can be written as a sum of several terms, each of which depends on at most one transmitted symbol [5] . 2 In this correspondence, the data-rate of a cooperative strategy or a distributed space-time code is defined as the average number of symbols transmitted by the relay terminals per time slot, i.e., its value is equal to the ratio of the number of transmitted symbols to the number of time slots used by the relay terminals to transmit all these symbols. 3 The schemes proposed in [15] would be single-symbol ML decodable only if the space-time code it used was single-symbol ML decodable. The fundamental difference between [15] and this correspondence is that the decode-and-forward protocol is considered in [15] ; while, we consider the amplify-and-forward protocol in this correspondence.. The rest of this correspondence is organized as follows. Section II describes the cooperative network considered in this correspondence. In Section III, we define the DOSTBCs and show that they achieve the single-symbol ML decodability and the full diversity order. In Section IV, the row-monomial DOSTBCs are first defined and an upper bound of the data-rate of the row-monomial DOSTBC is then derived. Section V presents the systematic construction methods of the rowmonomial DOSTBCs. We present some numerical results in Section VI and then conclude this correspondence in Section VII.. Notations: Bold upper and lower letters denote matrices and row vectors, respectively. Also, diag[x 1 ; . . . ; x K ] denotes the K 2K diagonal matrix with x 1 ; . . . ; x K on its main diagonal; 0 k 2k the k 1 2k 2 all-zero matrix; I I IT 2T the T 2T identity matrix; [1] k the kth entry of a vector; [1] k ;k the (k 1 ; k 2 )th entry of a matrix; ( 1 ) 3 the complex conjugate; ( 1 ) H the Hermitian; ( 1 ) T the transpose. For two real numbers a and b, dae denotes the ceiling function of a; bac the floor function of a; mod(a; b) the modulo operation. For two sets S 1 and S 2 , S 1 0 S 2 denotes the set whose elements are in S 1 but not in S 2 . We have first studied the DOSTBCs and showed that the DOSTBCs are single-symbol ML decodable and have the full diversity order K. Then, further investigation has been given to the row-monomial DOSTBCs and an upper bound of the data-rate of the row-monomial DOSTBC has been derived. Compared to the repetition-based cooperative strategy, the row-monomial DOSTBCs achieve approximately twice higher data-rate without losing the single-symbol ML decodability or the full diversity order. Furthermore, systematic construction methods of the row-monomial DOSTBCs have been developed. When N and/or K are even, we have proven that the codes generated by the systematic construction methods always achieve the upper-bound of the data-rate. When N and K are both odd, the proof has not been found; but we have confirmed that the codes generated by the systematic construction method achieve the upper-bound of the data-rate for N and K up to 9.

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


The Effects of Walking, Feedback and Control Method on Pressure-Based Interaction This paper presents a study looking into the effects of walking and the use of visual and audio feedback on the application of pressure for linear targeting. Positional and Ratebased control methods are compared in order to determine which allows for more stable and accurate selections, both while sitting and mobile. Results suggest that Rate-based control is superior for both mobile (walking) and static (sitting) linear targeting, and that mobility significantly increases errors, selection time and subjective workload. The use of only audio feedback significantly increased errors and task time for Positional control and static Rate-based control, but not mobile Rate-based control. Despite this, the results still suggest that audio control of pressure interaction while walking is highly accurate and usable. Pressure/force input sits as a natural augmentation of the increasingly common touch interaction paradigms among mobile devices: those based on interaction through touchscreens, accelerometers and gestures. Pressure input also brings with it several benefits for mobile interaction such as real-time and fine-grained control over a single-axis input including media traversal (rewind/fast-forward), zooming and scrolling, replacing potentially inaccurate, repetitive and screen-occluding 'flick' or 'pinch' touchscreen gestures. It can add false physicality to virtual buttons, requiring a degree of force to activate, rather than solely a touch event, which may be beneficial for less desired options such as file deletion. An extension of this is giving virtual surfaces/objects physical properties such as texture, weight or friction through the addition of vibrotactile feedback [6] .. As a final example more relevant to the research presented here, pressure can be used for menu interaction using a form of linear targeting. A body of research has shown pressure-based linear targeting (shortened here to PBLT) to be highly accurate using up to 8-10 targets/menu items while stationary and using visual feedback [3, 9, 11, 12] , but much less work has looked at control while walking and using audio feedback. There are two related benefits that this kind of input can bring to interaction with mobile devices while the user is in motion. Firstly, it removes the need for accurate pointing on touchscreen menus when the hands and device are moving, and secondly, through the use of audio feedback, it allows for eyes-free interaction.. As an illustration of a potentially beneficial implementation of PBLT we will use listening to music on a touchscreen device while walking. In order to, for example, pause or change tracks the user must have the device in their hand in front of them and be looking at it to press the correct virtual button. A not uncommon process may involve: 1) taking the device out of a pocket, 2) waking the device screen, 3) swiping or entering a PIN to unlock the screen before 4) pressing the desired virtual button (many devices may have covers or sleeves which must also be removed). This is time-consuming and takes visual attention away from the environment. If a device was pressure sensitive, for example with sensors lining the sides of the device, the user could reach into the pocket and squeeze the device to interact with the mp3 player menu through linear targeting. This paper expands the research from Wilson et al. [16] by looking at the control of PBLT while the user is walking. In order to determine the feasibility of eyes-free interaction, we compared both visual and audio-only control. Within past PBLT research, nearly all studies have used the same control/interaction method, known as Positional control. However, results from pressure-based shape translation [13] and targeting through head tilt [4] have suggested that a velocity or Rate-based control may allow for better control of pressure or linear targeting (respectively), especially when the user is mobile. Therefore, in this paper we present two parts of one study looking at pressure input on mobile devices: one looking at how walking affects our ability to control pressure-based input and which control method allows for better control; and a second testing whether the same mobile interaction can be carried out with only audio feedback. The results from this study have shown that pressure is well suited to menu navigation on mobile devices, with Ratebased control facilitating superior performance over Positional control. Although error rates remain very low for audio and mobile-audio interaction, task time and user workload remain higher than static and visual interaction. The use of larger menu items, or lower numbers of menu items, would be likely to result in faster and easier targeting, resulting in both lower selection time and reduced user workload. Therefore pressure-based menus may be a realistic alternative to touch-based menus with the benefit of enabling 'eyes-free' interaction while on-the-move.

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


Order preserving minimal perfect hash functions and information retrieval Rapid access to information is essential for a wide variety of retrieval systems and applications. Hashing has long been used when the fastest possible direct search is desired, but is generally not appropriate when sequential or range searches are also required. This paper describes a hashing method, developed for collections that are relatively static, that supports both direct and sequential access. Indeed, the algorithm described gives hash functions that are optimal in terms of time and hash table space utilization, and that preserve any a priori ordering desired. Furthermore, the resulting order preserving minimal perfect hash functions (OPMPHFs) can be found using space and time that is on average linear in the number of keys involved. . When r = n log n, E(Y~) ~ 0 as n ~ oo. Table 3 shows the existence of cycles in random graphs in a 1024 edge G. The number of vertices varies from 1638 to 3276 with the ratio ranging from 1.6 to 3.2.. Vertices Existence of cycle Ratio where the first summation is on i, ranging from 1 to min(n, r), and the second on j from 1 to rnin(n,2r -1)-i+ 1. It is easy to see that the term (~)-(~) is the number of ways to have all the combinations of i and j vertices on both sides. The following term ji-1. i~-1 is the number of different trees constructible from these i + j vertices. The next term (i+~'-1) allows us to select (i + j -1) distinct edges (keys) to participate in the tree. Since these keys are distinct, there are (i + j -1)! ways to have the actual tree distinct. The next term {7"~ +i. j -r-(i + j)}{,-i-j+l) is the number of ways to have the remaining n -i -j + 1 edges freely go to G without being adjacent to any tree vertices. The last term, the denominator r 2n is the total number of ways to put n edges into G. Table 4 shows the actual number of trees in G with various numbers of vertices and edges, and the expected values computed by the E(Trees) formula. In this paper, a practical algorithm for finding order-preserving minimal perfect hash functions is described. The method is able to find OPMPHFs for various sizes of key sets in almost linear time, with the function size remaining within reasonable bounds. The application of the method to dictionary and inverted file construction is also illustrated. Several probabilistic analysis results on the characteristics of the random graph G are given. They are useful in guiding the proper selection of various parameters and providing insights on the design of the three main steps of the algorithm. More experiments with the algorithm are planned. One direction is to find ways to make more edges direct so that an OPMPHF can be specified using a smaller ratio setting. Other possible interests are concerned with applications. Currently, we are using the scheme to index graph structured data. More benefits can be obtained when the scheme is applied to other fields.. Other experimentation is proceeding with a wide range of key sets. We are experimenting with a key set provided by OCLC that has more than 4 million unique keys, and so will be able to validate our approach with what are clearly very large databases.. Additional work with MPHF and OPMPHF algorithms is underway, using several somewhat different approaches. We have preliminary results regarding a MPHFmethod that uses much smaller function specifications and is quite fast. Subsequent papers will discuss this and other findings.

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


Beam search algorithms for multilabel learning Abstract Multilabel learning is a machine learning task that is important for applications, but challenging. A recent method for multilabel learning called probabilistic classifier chains (PCCs) has several appealing properties. However, PCCs suffer from the computational issue that inference (i.e., predicting the label of an example) requires time exponential in the number of tags. Also, PCC accuracy is sensitive to the ordering of the tags while training. In this paper, we show how to use the classical technique of beam search to solve both these problems. Specifically, we show how to apply beam search to make inference tractable, and how to integrate beam search with training to determine a suitable tag ordering. Experimental results on a range of datasets show that the proposed improvements yield a state-of-the-art method for multilabel learning. In the classical supervised learning task of binary classification, the goal is to learn a model that, given an input x ∈ X , returns a single binary prediction y ∈ {0, 1}. This value y is considered to be a label of the example x, denoting whether it possesses some characteristic, or not. For example, x may represent an image by its pixel values, and y may denote whether or not the image contains a face. Multilabel learning is an extension of binary classification where the goal is to return multiple binary predictions, or equivalently a vector y ∈ {0, 1} K . The label y now measures multiple characteristics of the example x, each of which we call a tag. For example, x may represent an image as before, and y could denote whether K specific people's faces appear in the image.. The recently proposed probabilistic classifier chain (Dembczyński et al. 2010; Read et al. 2011 ) (PCC) method is an attractive solution for multilabel classification for several reasons. First, it is based on a reduction of multilabel to binary classification, which allows us to leverage existing research on designing scalable and powerful binary classifiers. Second, it is a principled probabilistic model, and there is a theoretical understanding of how it may be used to produce Bayes optimal predictions for a variety of loss functions (Dembczyński et al. 2010) . Third, it is computationally inexpensive to train unlike, for example, structured prediction methods (Finley and Joachims 2008) , which involve inference during training. Fourth, it is trained on the original label space without any prior transformations (Breiman and Friedman 1997; Weston et al. 2002; Hsu et al. 2009; Bi and Kwok 2011) , which is important in certain settings and applications.. Despite the above positive characteristics, the current formulation of PCCs suffers from at least a couple of drawbacks. First, on the computational side, they are only applicable to multilabel data sets with a few number of tags. This is because to use a PCC at test time for an example with K possible tags, we need to evaluate all 2 K possible labelings, and pick the highest scoring one. This becomes quickly infeasible as K increases. Second, on the performance side, their accuracy depends on a pre-specified ordering of the tags. Different orderings result in solutions of different accuracy, and so a natural question is whether one can determine the ordering that yields the best performance. As with the previous issue, the current understanding of PCCs requires either picking a random ordering, or trying all K! possibilities.. In this paper, we propose to address these shortcomings with PCCs using beam search, a classical heuristic search algorithm. In particular, we propose to use beam search to perform inference with PCCs at test time, changing the runtime from O(2 K ) to O(bK), where b is a tunable beam width. As we shall demonstrate, in practice a beam size b 2 K achieves good performance. We also present an algorithm that integrates the search for the best ordering of tags with the learning algorithm. To avoid the burden of training a classifier for each ordering, we use kernel target alignment (Cristianini et al. 2001) to score the viability of a given ordering. Finally, we propose a richer feature representation for learning individual tag models than what is used in existing PCC approaches (Dembczyński et al. 2010; Read et al. 2011) . Experimental results on a range of multilabel data sets show that the new scheme is able to improve on PCC, and to extend its applicability to data sets with a large number of tags.. This paper is organized as follows. First, in Sect. 2, we review the problem of multilabel learning and the PCC model. In Sect. 3, we analyze PCC in detail, pointing out its relationship to existing models, and highlighting some of the challenges in using them. Next, in Sect. 4, we show how one may use beam search to speed up test time inference of the method. In Sect. 5, we show how beam search may be integrated during the learning phase to determine the tag ordering. In Sect. 6, we discuss several issues related to the focus of this paper, and comment on possible extensions of our work. Finally, we present a range of experimental results in Sect. 7. This paper extends our earlier conference publication (Kumar et al. 2012) . We have included a new section analyzing PCCs in relation to other methods (Sect. 3) and a significantly expanded discussion (Sect. 6). We have extended our experimental results (Sect. 7) by (i) comparing our beam search method for inference with the approximate inference method of Dembczyński et al. (2012) , (ii) comparing PCCs trained with our beam search method for learning the tag ordering with ensemble PCCs (Dembczyński et al. 2010) , and (iii) providing a rigorous analysis of experimental results using statistical hypothesis tests. Empirical results clearly demonstrate the benefit of using beam search for test time inference, and for learning a good ordering of tags. We believe that these are important extensions to probabilistic classifier chains. We summarize the main conclusions from our experiments below.. (i) We did not find statistically significant differences between beam search inference and exact inference or the approximate inference method of Dembczyński et al. (2012) . Nevertheless, when compared to exact inference, our beam search inference is computationally tractable. (ii) Experiments show that using beam search for both inference and learning leads to statistically significant improvements in the performance of PCCs when compared to binary relevance for subset 0/1 loss. However, for Hamming and ranking losses the differences in performance are not statistically significant. (iii) We did not find statistically significant improvements from using ensemble methods.. We believe this is due to using fine-tuned regularized logistic regression as the base classifier, and to using the beam search method for inference and learning the tag ordering in PCCs. (iv) Experiments with cross-product features resulted in statistically significant improvements in the performance of PCCs when compared to binary relevance for subset 0/1 loss, even when the PCCs were trained with the original tag ordering but used beam search for inference. By contrast, PCCs trained with concatenated features and the original tag ordering did not achieve statistically significant gains, thereby providing evidence for the benefit of using cross-product features in PCCs, at least when optimizing the subset 0/1 loss. This section explores several issues related to the focus of this paper, and comments on possible extensions of the algorithms above.. 6.1 Is subset 0/1 loss reasonable?. The inference problem in PCC is to computeŷ = argmax y∈Y p(y | x;θ). This prediction is optimal if the goal is to minimize the subset 0/1 loss of the model (Dembczyński et al. 2010) . However, when minimizing a different loss function, such as Hamming loss, then a different inference problem needs to be solved, and the beam search strategy is not applicable. A natural question, then, is whether subset 0/1 loss is a reasonable loss function to optimize in practice.. A disadvantage of subset 0/1 loss is that it is very strict: even if we make a single mistake on one of the individual tags, we do not get "partial credit." However, this loss may be preferable to alternatives in some cases. Specifically, suppose that the marginal distributions for each tag are highly unbalanced, i.e., p(y k )(1 − p(y k )) ≈ 0 for each k ∈ {1, . . . , K}. Further, suppose that the joint distribution p(y 1 , . . . , y K ) is not concentrated around any particular value. Then, we may achieve a small per-tag metric like Hamming loss by predicting the majority tag value argmax v∈{0,1} p(y k = v) for each k, independent of the example x. This is intuitively dissatisfying, because the predictions are constant across examples, and so do not help to discriminate between them. (This is related to the fact that in unbalanced binary classification problems, the 0/1 loss for a majority class prediction is small.) However, such a prediction will incur a high subset 0/1 loss. Such settings are common in practical applications of multilabel learning, and in particular on many benchmark data sets (Luaces et al. 2012) . Therefore, inference for subset 0/1 loss is indeed useful in some cases, and important. We report experiments on the data sets listed in Table 1 . We selected all the benchmark multilabel data sets from Tsoumakas et al. (2011) that have fewer than 100 tags and fewer than 10 K training instances. These limits allow all models to be trained easily using batch optimization methods with both concatenated and cross-product features. Note that on the majority of these data sets, inference by exhaustive enumeration is either computationally expensive or intractable. All data sets have a pre-defined test set, and our reported results are on this set. We compare the following algorithms:. (a) Binary relevance (BR): This is the baseline algorithm where we train separate independent logistic regressors for each tag. (b) Kernel dependency estimation (KDE): This is the algorithm proposed by Weston et al. (2002) . Here, a (linear) transformation using principal components analysis is applied to the original label matrix in order to decorrelate the tags. Then, independent regressors are trained in the transformed label space. (c) Probabilistic classifier chain (PCC): We use the original formulation as described in Dembczyński et al. (2010) but with beam search as inference and the original ordering of tags found in the data sets. (d) PCC with logistic regression using beam search for both learning the tag ordering and inference. To learn the tag ordering, we use kernel target alignment as the scoring function in beam search. Note that, in this setting, the output of beam search for learning is the tag ordering which is then used at a later stage to train a PCC.. We evaluate the performance of algorithms using the following loss functions, where y and y are the target and the predicted labels respectively: . As mentioned above, BR is theoretically optimal for Hamming and ranking losses, and it has been noted previously that it is a strong baseline for other loss functions also (Read et al. 2011; Dembczyński et al. 2010) . This is especially true if the BR classifier for each tag is regularized. Some previous studies, such as Dembczyński et al. (2010) , use an unregularized base classifier, for which BR may be misleadingly suboptimal. In all our experiments, we use regularized linear models and tune the regularization parameter using cross-validation. We use the Friedman test (Friedman 1937 (Friedman , 1940 with Bonferroni-Dunn post-hoc analysis (Dunn 1961) to evaluate the statistical significance of results from multiple algorithms and data sets (Demšar 2006) . The following subsections provide experimental results and analysis for a number of related questions.. 7.1 What is the effect of beam width, used for inference and for learning tag orderings, on the performance of PCCs?. We choose three out of the six data sets for this experiment, namely, Emotions, Scene and Yeast, where it is computationally feasible to do inference by exhaustive enumeration of all possible labels, which allows us to study the effect of beam width on inference and learning the tag ordering. We compare the performance of (i) binary relevance (BR) and (ii) probabilistic classifier chain (PCC) with the original tag ordering in the data sets and using beam search for inference for several values of beam width b. Figure 4 shows the performance of the algorithms measured in terms of subset 0/1 loss, Hamming loss and ranking loss with varying beam width. From the figure, we see that the test set performance of PCC converges rapidly with b < 15 to the performance obtained with exhaustive enumeration, especially for the subset 0/1 loss. We also observe that with b = 15, a significant fraction of the true labels in the test set are among the candidate labels found by beam search, even if the single best label found by beam search is not exactly correct. Figure 5 shows the maximum of the cosine similarities between all the labels in the beam and the true label averaged across all the examples in the test set for varying beam width. It is clear that at b = 15, a significant fraction of the true labels appear in the beam. Figure 4 shows that for Hamming and ranking losses, the loss at certain values of beam width is lower than the loss obtained by exhaustive enumeration, which is surprising at first glance since exhaustive enumeration should ideally provide a lower bound for the test set loss. However, in beam search, labels are scored according to the conditional probability p(y | x) which may not necessarily correspond to the optimal result. Indeed, one of the points made by Dembczyński et al. (2010) was that taking argmax y∈Y p(y | x) gives the optimal result for subset 0/1 loss, but for Hamming and ranking losses the optimal result is for tag k, i.e., argmax b∈{0,1} p(. We also analyze the effect of increasing the beam width used in beam search to determine the tag ordering on the classifier performance. Figure 6 shows the performance of PCCs with The test time inference is done by exhaustive enumeration of all possible labels. There is no clear pattern with varying beam width for subset 0/1, Hamming and ranking losses. However, negative loglikelihood, in general, is non-increasing with increasing beam width, especially for larger widths. This confirms that beam search using KTA as the scoring function is successful at finding orderings that lead to improvements in negative log-likelihood; as the amount of search done by beam search increases, better orderings are found.. 7.2 How does beam search for inference compare to the approximate inference method of Dembczyński et al. (2012) ?. The results are shown in Table 2 , using a beam width of 15 in beam search inference. The inference method of Dembczyński et al. (2012) with = 0 and = 0.5 corresponds to exact inference and approximate inference with greedy search respectively. The beam search for inference performs better than the approximate inference method for both = 0.5 and = 0.25 on the subset 0/1 loss. For Hamming and ranking losses, it performs slightly worse than the approximate inference method with = 0.25. In all the cases, exact inference ( = 0) outperforms both the beam search inference and the approximate inference method with > 0 as expected.. We conducted a Friedman test with Bonferroni-Dunn post-hoc analysis to evaluate the statistical significance of the results. The critical values for four classifiers at 5 % and 10 % significance levels are 2.394 and 2.128 respectively, and the corresponding critical differences are 1.784 and 1.586 respectively (Demšar 2006) . For subset 0/1 loss, the difference in Table 2 Test set performance of PCCs with beam search inference and approximate inference method of Dembczyński et al. (2012) average ranks between PCC/b = 15 and PCC/ = 0.5 (greedy search) is 3.75−2.17 = 1.58, which is slightly less than 1.586 as needed for statistical significance at 10 % level. For Hamming and ranking losses, the differences in average ranks are not statistically significant. We conclude that the experimental results are not sufficient to make any statistically significant statements regarding the performance of the inference methods.. 7.3 Does learning to order tags improve the performance of PCCs when compared to PCCs trained using a random or predefined ordering?. The results are shown in Table 3 . We use the notation PCC/O/I to denote variants of PCC where O ∈ {or, 1, 5, 15} is used to denote the tag ordering determined by beam search with b = 1, 5 or 15 and the original tag ordering in the data sets (or), and I ∈ {1, 5, 15} is used to denote the beam width (b = 1, 5 or 15) used in inference. All variants of PCC outperform binary relevance for the subset 0/1 loss. Note that PCC/or/1 is the variant of PCC which uses the original tag ordering in the data sets and greedy search for inference, i.e., beam search with b = 1. All variants of PCC that use beam search for inference and/or beam search to determine the tag ordering outperform, or are on par with, PCC/or/1. This result demonstrates the advantages of using beam search for PCCs.. On a majority of the data sets, variants of PCC that use beam search to determine the tag ordering using KTA as the scoring function give the best results. For Hamming and ranking losses, binary relevance is a strong baseline and outperforms PCCs on average, especially for ranking loss, confirming the results reported by Dembczyński et al. (2010) . Nevertheless, PCCs using beam search to determine the tag ordering perform, on average, better than PCCs that use the original tag ordering.. We conducted a Friedman test with Bonferroni-Dunn post-hoc analysis. The critical values for nine classifiers at the 5 % significance level is 2.724, and the corresponding critical difference is 4.307 (Demšar 2006) . For subset 0/1 loss, the differences in average ranks between the pairs (BR, PCC/1/5), (BR, PCC/5/5) and (BR, PCC/5/15) are statistically significant. However, the differences in average ranks between the pairs (BR, PCC/or/1), (BR, PCC/or/5) and (BR, PCC/or/15) are not statistically significant. We conclude that using beam search for both inference and learning leads to statistically significant better performance by PCC. For Hamming loss, the differences are not statistically significant. For ranking loss, the performance of BR is statistically better than PCC/or/1, but not the other variants of PCC. Using beam search for inference and learning improves the performance of PCCs, and thereby makes differences between BR and PCC not statistically significant.. The beam search inference method is designed to minimize subset 0/1 loss, and not other loss functions such as Hamming and ranking loss. However, using beam search to learn the tag ordering leads to superior models for the conditional probability distribution p(y | x) when compared to those estimated by PCCs trained with a random tag ordering. To minimize loss functions such as Hamming and ranking loss, we can perform exhaustive inference, perhaps using sampling methods to make the computation tractable. Therefore, using beam search for learning the tag ordering has the potential to improve the performance of PCCs for not only subset 0/1 loss but also other loss functions. To support this argument, we compare the negative log-likelihood of PCCs trained with the ordering determined by beam search (PCC/15/15) and the original ordering (PCC/or/15). The results are shown in Table 4 . Five out of six data sets show an improvement in negative log-likelihood for the PCCs trained using the beam search ordering. We conclude this subsection with an experiment where we train PCCs with orderings determined by sorting the tags based on (i) KTA and (ii) cross-validation error on the training set. The results are shown in Tables 5 and 6 . When compared to the results in Table 3 , we see that PCCs trained with orderings determined by beam search outperform, in the majority of cases, those trained with the heuristic of ordering tags by cross-validation error. We trained ensemble PCCs (EPCC) (Dembczyński et al. 2010 ) using a set of 15 random orderings and compared their performance with PCCs trained using the ordering estimated by the beam search method with b = 15 (PCC/15/15). The results are shown in Table 7 . Inference in all PCCs was done using beam search with b = 15. We also include results from an ensemble consisting of binary relevance (BR) and PCC/15/15. PCC/15/15 performed better than BR and the ensemble methods for subset 0/1 loss. Since BR does not perform well on this loss function, the combination BR + PCC/15/15 results in no improvement. For subset 0/1 loss, we conclude that PCCs trained using beam search for learning the tag ordering perform best. For Hamming loss, there is no major difference in performance on the large data sets Enron, Medical and Genbase. On two of the other three data sets, either PCC/15/15 or BR + PCC/15/15 performs better than EPCC. We therefore conclude that for Hamming loss, there is no significant gain from using an ensemble method with random orderings (EPCC). For ranking loss, BR + PCC/15/15 performs better than EPCC on four out of six data sets, and either plain BR or BR + PCC/15/15 performs better than EPCC on five out of six data sets. Therefore, for ranking loss also, there is no significant gain from using EPCC.. These findings contradict those in Dembczyński et al. (2010) , where EPCC was found to perform better than competing methods. We believe that using regularized logistic regres- sion as the base classifier boosts the performance of binary relevance as well as of PCCs, minimizing the potential gain from ensembles. We conducted a Friedman test with Bonferroni-Dunn post-hoc analysis. The critical values for four classifiers at 5 % and 10 % significance levels are 2.394 and 2.128 respectively, and the corresponding critical differences are 1.784 and 1.586 respectively (Demšar 2006 ). The differences in performance above between PCC/15/15 and both ensemble methods, EPCC and BR + PCC/15/15, are not statistically significant. 7.5 How does the choice of feature representation affect the performance of PCCs?. We compare the performance of PCCs trained with concatenated features (Table 3) and cross-product features (Table 8 ). The relative performance of different algorithms is similar We conducted a Friedman test with Bonferroni-Dunn post-hoc analysis to evaluate the statistical significance of results in Table 8 . The critical values for nine classifiers at 5 % and 10 % significance levels are 2.724 and 2.498 respectively, and the corresponding critical differences are 4.307 and 3.95 respectively (Demšar 2006) . For subset 0/1 loss, the differences in average rank for the pairs (BR, PCC/1/5), (BR, PCC/5/5) and (BR, PCC/5/15) are statistically significant, similar to the findings with concatenated features. Furthermore, both PCCs with the original tag ordering perform statistically significantly better than BR at the 10 % significance level. Recall that the differences in average rank for the pairs (BR, PCC/or/1), (BR, PCC/or/5) and (BR, PCC/or/15) are not statistically significant with concatenated features. For Hamming and ranking losses, the findings are similar to those with concatenated features.

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