Text Classification using Graph Mining-based Feature Extraction Abstract A graph-based approach to document classification is described in this paper. The graph representation offers the advantage that it allows for a much more expressive document encoding than the more standard bag of words/phrases approach, and consequently gives an improved classification accuracy. Document sets are represented as graph sets to which a weighted graph mining algorithm is applied to extract frequent subgraphs, which are then further processed to produce feature vectors (one per document) for classification. Weighted subgraph mining is used to ensure classification effectiveness and computational efficiency; only the most significant subgraphs are extracted. The approach is validated and evaluated using several popular classification algorithms together with a real world textual data set. The results demonstrate that the approach can outperform existing text classification algorithms on some dataset. When the size of dataset increased, further processing on extracted frequent features is essential. The most common document formalisation for text classification is the vector space model founded on the bag of words/phrases representation. The main advantage of the vector space model is that it can readily be employed by classification algorithms. However, the bag of words/phrases representation is suited to capturing only word/phrase frequency; structural and semantic information is ignored. It has been established that structural information plays an important role in classification accuracy [14] .. An alternative to the bag of words/phrases representation is a graph based representation, which intuitively possesses much more expressive power. However, this representation introduces an additional level of complexity in that the calculation of the similarity between two graphs is significantly more computationally expensive than between two vectors (see for example [16] ). Some work (see for example [12] ) has been done on hybrid representations to capture both structural elements (using the graph model) and significant features using the vector model. However the computational resources required to process this hybrid model are still extensive.. The computational complexity of the graph representation for text mining is the main disadvantage of the approach, which prevents the full exploitation of the expressive power that the graph representation possesses. The work described in this paper seeks to address this issue by applying weighted graph mining analysis to the problem. The intuition behind the approach is that in standard frequent subgraph mining all generated subgraphs are assumed to have equal importance. However it is clear that, at least in the context of text mining, some subgraphs are more significant than others.. The rest of this paper is organized as follows. In Section 2 a brief overview of previous work is presented. The graph representation of document sets is then discussed in Section 3. In Section 4 the weighted subgraph mining is defined. The proposed Weighted graph mining algorithm, a variation of gSpan called Weighted gSpan (W-gSpan), is introduced in Section 5. A set of evaluating experiments are then presented in Section 6, followed by some concluding remarks in Section 7. An approach to text classification using a graph based representation has been described. The graph representation of text allows both the structure and content of documents to be represented. Key constructs to support text classification can then be identified using frequent subgraph mining. The disadvantage of standard frequent subgraph mining is that it is computationally expensive, to the extent that any potential advantage of the graph representation of text cannot be realised. To overcome this disadvantage a weighted subgraph mining mechanism is proposed, W-gSpan. In effect W-gSpan selects the most significant constructs from the graph representation and uses these constructs as input for classification. Experimental evaluation demonstrates that the technique works well, significantly out-performing the unweighted approach in every case. A number of different weighting schemes were considered coupled with three different categories of classifier generator. In terms of the generated classification accuracy pcc-weighting outperformed the other proposed weighting mechanisms. PCC-weighting also worked well in terms of computational efficiency and therefore represents the best overall weighting strategies. Much early work on document graph representations for text classification was directed at Web documents. Geibel et al. in [7] demonstrated that it is possible to classify Web documents using document structure alone; however we shall demonstrate that a much more powerful approach is to combine structure with linguistic and semantic information. For example Schenker [16] proposed a number of methods to represent Web documents as graphs so as to include the structural information of the Web documents. The typical approach is to conduct classification using some similarity-based algorithm. However, approaches that operate using graph similarity measures are computationally expensive (for example computing the "maximum common subgraph" between two graphs is a NP hard problem [5] ). Hybrid representations have been introduced to resolve the computational overhead associated with pure graph representations, see for example [12] . Such hybrid representations are reported to have better performance than pure graph based methods. However the computational resources required to process these hybrid model are still very high due to: (i) the extremely high number of nodes and edges, low number of edge labels and high repetition of structural node labels, encountered; and (ii) the consequent exponential complexity of the search space.. The use of graphs for representing text has a very long history in Natural Language Processing (NLP). However the work in NLP has focused on language understanding techniques such as Part Of Speech (POS) tagging, rather than text classification. Previous work [13, 20] has looked at the collocation of terms and their frequencies as graphs, rather than the linguistic structure of the sentence. One other study [6] has represented linguistic information as well as word order in a graph for text classification, however the work was limited to very small texts of between 8 to 13 tokens such as the titles of works. As such, we adopt the usage of of linguistic information, structure and semantics in a graph for text classification at a full text scale. In order to achieve this scale of processing, the use of frequent subgraph mining is essential.. Frequent subgraph (and sub-tree) mining, using various approaches, has been extensively studied [9, 10, 22, 8, 2] . However, the main bottleneck is the number of unnecessary candidate frequent subgraphs generated. A substantial amount of work has been undertaken focusing on developing efficient graph mining algorithms using elegant search strategies, data structures or their combinations. Some authors have suggested the use of constraint based frequent subgraph mining to remove unwanted patterns. The weighted subgraph mining approach advocated in this paper integrates the weight constraints into the frequent subgraph mining process to reduce the search space by generating only the most significant (interesting) patterns.. The frequent subgraph mining approach described in this paper is also influenced by work on weighted pattern mining, especially Weighted Association Rules Mining (WARM), see for example the work of [19, 17, 23, 24, 25] . A significant issue in WARM is that the "Downward Closure" (DC) property of items sets, on which many ARM algorithms are based, no longer holds. One solution (for example [19] ) is to handle the weights as a post-processing step after mining frequent itemsets, however the weights are then not integrated into the ARM process. Tao et al. [17] proposed a model of weighted support, which satisfies a weighted DC property. Yun et al. [23, 24, 25] introduced a series of concepts such as "weight range", "weight confidence", and "support confidence" for WARM in order to maintain the DC property and push the weight constraint deeply into the mining process. Although the ideas espoused by WARM cannot be directly applied to weighted frequent subgraph mining; the research described here is, at least in part, influenced by this body of work.

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


Graph-theoretical properties of parallelism in the digital plane We propose different graph-theoretical algorithms to partition a set of digitized lines into parallel groups, i.e., subsets in which each line is parallel to the other lines in the subset. The slope of a digitized line is not a fixed real number, but is represented by an interval. Likewise, the parallel relations of a collection of lines is represented by an interval graph. The extraction of parallel groups is then equivalent to the detection of cliques in the interval graph. We also consider other partitioning methods, for example, methods based on minimum dominating sets, and on simplicial elimination orderings. In addition, we compute the number of ways in which we can divide a set into parallel groups. In this paper we consider the graph-theoretical properties of digital parallelism, that is, parallelism as it has been defined for subsets of the digital plane Z Z 2 . In particular, we consider the problem of partitioning a set of digital straight line segments into parallel groups. This problem is part of the general line grouping problem as it is known in computer vision [14] . Our definition of digital parallelism comes from previous work, in which also definitions were given for digital collinearity and digital concurrency [16] .. By the process of digitization subsets of the Euclidean plane IR . Any digital version of a geometric property must cope with this uncertainty. Among geometric properties in the digital plane, digital parallelism stands out as the most manageable concept, as it involves only the uncertainty of one parameter, i.e. slope, which for digital straight line segments is not determined by a fixed number, but by a real interval. On the other hand, the digital version of parallelism is more involved than its Euclidean counterpart. Digital parallelism is not an equivalence relation, but a Helly-type property [16] . To Any algorithm that extracts geometric structure from a digital image must take into account the uncertainty of the position of the original objects. The main cause of the uncertainty is the digitization process itself. However, the notion of position and parameter uncertainty can be extended to model other aspects of image processing. For example, we may include into our model the localization errors introduced by an edge detection algorithm, and also the possible errors introduced by the algorithms that group edge pixels into straight line segments, e.g., the RANSAC technique, or the Hough Transform [3, 7] . In fact, uncertainty can even be an artificial parameter, e.g., to detect in an image the vanishing points of a perspective projection, a first step is to extract groups of lines that are "almost" parallel. In this view, digital geometry is an example of an uncertain geometry, in which we develop geometric properties for points and lines whose positions and slopes are not known or do not have to be known exactly.. Uncertain geometry is strongly linked to graph theory. In Euclidean geometry grouping lines into parallel classes is rather trivial, as Euclidean parallelism is an equivalence relation. In a digital image uncertainty on pixel positions causes uncertainty on the slopes of lines, and parallelism is no longer an equivalence relation. We must find partitions that "resemble" equivalence classes. In this work we explain how this problem can be reformulated as finding groups of lines that resemble cliques in a graph that represents the parallel relationships. It should be emphasized that this reformulation is only possible because parallelism in the digital plane is a Helly-type property: a collection of lines is digitally parallel if each of its pairs of lines is digitally parallel [16] . That is, the Helly-type property holds for the entire collection as soon as it holds for each of the collection's n-membered subcollections, where n = 2. As a result, digital parallelism is completely determined by binary relations, which can represented in 2-uniform hypergraph, that is, an ordinary graph. To represent digital collinearity and digital concurrency as they are defined in [16] we need a 3-uniform hypergraph, which is a far more complicated structure.. In the approach proposed here, the uncertainty of point positions is modeled by defining for each point a small uncertainty region in which the point can lie, without knowing its exact position. This may be compared to the more general approach as advocated by Durrant-Whyte and others where one defines for each position a probability distribution [1] . These distributions are then used to derive new geometric distributions, e.g., for the parameters of a line passing through two points. By contrast, instead of computing precise distributions, we only calculate in which region a distribution is non-zero. The advantage of this simplification is that we can go much further in the extraction of geometric information, without computing complicated probability measures. By comparison, also Lowe makes simplifying assumptions regarding the distribution of lines in an image and introduces an empirical significance measure for parallelism [10] . Lowe's interesting view is inspired by concepts from perceptual organization, but it remains empirical, without a strict formal introduction of uncertainty, and without the intention of systematically developing a theory of uncertain geometry.. One of the advantages of using uncertainty regions is that we can formulate the grouping of lines into parallel groups as a combinatorial optimization problem. In this work we examine two distinct optimization criteria. Each criterion specifies how much parallelism is required in a group of parallel lines. Thus, we may require that each group consists of lines that are all parallel to each other, or we may impose the weaker requirement that it suffices that each group contains at least one line to which all other lines in the group are parallel. The solution of an optimization problem may not be unique. We will also look at the number of ways lines may be grouped into a minimum number of parallel groups, measuring hereby the uniqueness of the optimal grouping.. In Section 2 we give a brief overview of the concepts of digital straightness, collinearity, parallelism, and concurrency. Section 3 introduces the so-called graph of parallel pairs, which represents all parallel relations between line segments. In Section 4 we propose two algorithms to extract groups of parallel line segments. The first algorithm defines groups as cliques. The second algorithm uses dominating sets to extract groups of parallel lines. We also discuss the geometric meaning of both group extraction approaches. In Section 5 we introduce simplicial elimination orderings to find multiple optimal groupings. Simplicial elimination orderings are also needed in Section 6 when we compute in how many ways a set of lines can be partitioned into k groups of parallel lines. This is equivalent to the computation of the chromatic polynomial of a comparability graph. The basic idea of the algorithm in Section 6 is to triangulate the comparability graph by adapting the boundaries of the slope intervals. We conclude the paper in Section 7. The primary goal of this paper was to present and compare different techniques for partitioning a set of lines into parallel groups. Digital parallelism has many other aspects, however. In table 1 we list several other combinatorial optimization problems and the geometric problems to which they correspond. One of the conclusions of this paper is that by representing slope uncertainty by intervals, and parallel relations by interval graphs, we can derive efficient algorithms for the geometric problem of parallel line grouping in the digital plane.. Besides investigating the applicability of other combinatorial optimization algorithms with respect to digital parallelism, we must also consider two other aspects of the theory, which have not been discussed in this work. First, to enlarge the applicability of the proposed algorithms, we should also look at the "discretization by dilation" schemes that use structuring elements that are more general than the vertical line segments used here. This extension seems to be rather straightforward, however, the major consequence being that the computation of the domains of the line segments becomes more intricate, while the graph-theoretical results can be equally applied. The extension to other more recent digitization schemes such as the topology preserving scheme proposed by Latecki et al. [9] , and the Hausdorff discretization of Ronse and Tajine is less obvious [12] . Both schemes have been developed to have certain desirable properties such as preservation of topology and reconstructability of the original object (when the grid resolution is increased). To capture the notion of position or line slope uncertainty was not the primary goal of these two schemes.. Second, and from the theoretical viewpoint even more importantly, we must examine how parallel line grouping can be integrated into a larger framework that also involves digital collinearity, concurrency, and the proximity of lines. Whatever the way uncertainty in a digital image is represented, it is rather natural to represent the uncertainty of line slopes by slope intervals, which has led us to interval graphs. Likewise, digital collinearity and digital concurrency lead almost directly to 3-uniform hypergraphs [15, 17] . Since 3-uniform hypergraphs are in a fundamental way more complex than interval graphs, we expect that problems involving digital collinearity and concurrency will not be solved with the same ease as problems on digital parallelism.

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


Interconnection Network Simulation Using Traces of MPI Applications Abstract This paper addresses the utilization of traces taken from MPI applications to do simulation-based performance studies of parallel computing systems. Different mechanisms to capture traces are discussed, pointing out important limitations of some of them. One of these limitations is the invisibility of message interchanges in collective operations, which is circumvented modifying a trace-capturing library. During a simulation, trace records must be simulated in causal order, to fully comply with application semantics. Alternatives to follow this order, and the risks of not following it, are presented and discussed. The techniques introduced in this paper have been implemented in an in-house developed simulation environment, which is used in two example studies to show its usefulness: an evaluation of alternatives for interconnection network design, and a performance prediction study in which traces from one machine are used to estimate the execution times of applications running in a different machine. Simulation is one of the most widely used tools for performance evaluation of computing systems, including parallel computers. A simulation-based study requires a model of the system being evaluated (a model that may have very different levels of accuracy) and also a mechanism to supply a representative workload.. In the field of interconnection networks, in which we place this paper, many simulation-based studies use synthetic traffic patterns, such as random uniform traffic or permutations of interest, to feed the simulator. This kind of synthetic workload is of great interest because it is easy to implement, sometimes it may support analytical studies, and may be representative of the ways applications use the network. However, a comprehensive evaluation requires actual workloads, otherwise important aspects of parallel applications cannot be understood in detail. For example, many applications pass through different phases, in which the ways of using the network differ widely; pressure on the network may be very intense in some phases, but the inter-dependencies amongst processes may lower the utilization of the interconnection infrastructure in some others.. Actual traffic may be generated using an execution-driven environment, in which applications run on real (or simulated) processors and are connected to a simulated interconnection network. This set-up provides very high levels of evaluation accuracy, but cannot be easily scaled to thousands of processors. It may also fail, victim of unexpected interactions between components, as shown in [16, 24] . For this reason, a frequently used alternative is the utilization of traces of parallel applications.. We can obtain traces of large systems, even using small ones. For example, given an application that uses a static logical topology, a cluster of 10 PCs can be used to generate a trace running on 200 nodes-we only need to run 20 processes per available computer. Timing information would not be representative of a real, 200-CPU computer; however, the (spatial) patterns defined by the sequence of interchanged messages are valid, and the distribution of message sizes is valid too.. The main contribution of this research work is the trace-based simulation toolset included in INSEE [23] , an in-house developed simulation environment for the evaluation of interconnection networks. INSEE is able to accept many kinds of workloads for the simulation: synthetically generated messages, full system simulation and traces. The focus of this paper is, precisely, on simulation with traces. We explain the mechanisms required to capture traces from MPI-based parallel applications, point out some important limitations in the way events are captured and stored in the trace files, and explain the way we circumvent some of those limitations. After that, we describe in detail the way traces must be processed in order to fully comply with application semantics, with particular attention to the order in which events are processed to avoid violations of message causality. A simple extension of the trace processing mechanism allows us to carry out performance prediction studies. Finally, we put INSEE to work and include two simple example studies carried out with traces from actual applications. Note that the problems and solutions discussed in this paper, although presented from the point of view of the INSEE developers and users, are not specific to this tool.. The rest of this paper is organized as follows. Section 2 introduces INSEE, with focus on its utilization with traces. Section 3 describes how traces are obtained. Sections 4 and 5 discuss the mechanisms used by our simulator to process traces, preserving application semantics. In Sect. 6 we use INSEE for two performance studies. Section 7 reviews some related work. Conclusions of the paper are summarized in Sect. 8. In this paper we have introduced a collection of tools and techniques to carry out evaluations, via simulation, of interconnection networks, using realistic workloads, provided by trace files obtained from the execution of actual applications. These techniques have been incorporated in the INSEE toolset.. Firstly, we needed to deal with the information contained in the trace files. As regular traces do not include the details of collective operations, we modified the trace capturing mechanism. Extended trace files allow us to deal only with simple, point-to-point message interchange records.. Then, we have pointed out the two main limitations of traces, namely the lack of accuracy in timing information, and the fact that a trace file includes only a possible valid outcome (record order) of a parallel program execution, but not the only valid one. We have explained that, for the evaluation of interconnection networks, we may ignore timing information, but not the causal relationships implicit in event order. We know that different orderings in event processing may be valid (respecting application semantics), but deciding about whether or not altering the order recorded in the trace file requires application-dependent knowledge, and our choice may lead to non-valid sequences of events. So the safest approach, for simulation purposes, is to follow, without exception, the exact event ordering of the trace file.. The trace processing ability integrated into INSEE offers a very flexible tool to evaluate different aspects of interconnection networks for parallel systems. As a way of showing the kind of work that can be carried out with this tool, we provide a simple but illustrative performance study: for some applications, the utilization of multiple virtual circuits per physical channel produces important performance gains, which can be even larger if using adaptive routing; the study shows the extent of the achievable gains. Additionally, we have shown how to estimate the execution time of an application running on a target architecture at different link speeds using traces captured in a real machine.. For future work, we plan to investigate how to integrate application semantics into simulation to allow different (but valid) event orderings. In the literature we can find many papers discussing different aspects of trace capturing mechanisms and utilization of traces for performance evaluation-see for example [10] . For the specific topic of interconnection networks, Chapters 23 to 25 of [7] are of particular relevance. In addition to performance evaluation and prediction, other common use of traces of parallel applications is visualization, often as a help for debugging and detection of bottlenecks. The list of references would be very long, because this is a well-established area of work, so we focus on the main topics addressed in this paper.

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


Interactive Object Recognition System for a Helper Robot Using Photometric Invariance SUMMARY We are developing a helper robot that carries out tasks ordered by the user through speech. The robot needs a vision system to recognize the objects appearing in the orders. It is, however, difficult to realize vision systems that can work in various conditions. Thus, we have proposed to use the human user's assistance through speech. When the vision system cannot achieve a task, the robot makes a speech to the user so that the natural response by the user can give helpful information for its vision system. Our previous system assumes that it can segment images without failure. However, if there are occluded objects and/or objects composed of multicolor parts, segmentation failures cannot be avoided. This paper presents an extended system that tries to recover from segmentation failures using photometric invariance. If the system is not sure about segmentation results, the system asks the user by appropriate expressions depending on the invariant values. Experimental results show the usefulness of the system. Helper robots or service robots in welfare domain have attracted much attention of researchers for the coming aged society [1] , [2] . Such robots need user-friendly human-robot interfaces. Multimodal interfaces [3] - [5] are considered strong candidates. Thus, we have been developing a helper robot that carries out tasks ordered by the user through voice and/or gestures [6] - [9] . In addition to gesture recognition, such robots need to have vision systems that can recognize the objects mentioned in speech. It is, however, difficult to realize vision systems that can work in various conditions. Thus, we have proposed to use the human user's assistance through speech [6] - [9] . When the vision system cannot achieve a task, the robot makes a speech to the user so that the natural response by the user can give helpful information for its vision system.. In the initial stage of research [6] - [8] , we assumed that the scene was relatively simple so that the vision system detected one or at most a few regions (objects) in the image. Thus, even though detecting the target object may be difficult and need the user's assistance, once the robot has detected an object, it can assume the object as the target. However, in actual complex scenes, the vision system may Manuscript received February 16, 2005 . Manuscript revised May 11, 2005 . † The authors are with the Department of Information and Computer Sciences, Saitama University, Saitama-shi, 338-8570 Japan.. † † The author is with the Department of Machinery System Engineering, Tokyo Denki University, Tokyo, 101-8457 Japan.. a) E-mail: hossain@cv.ics.saitama-u.ac.jp DOI: 10.1093/ietisy/e88-d. 11 .2500 detect various objects. The robot must choose the target object among them, which is a hard problem especially if it does not have much a priori knowledge about the object.. We have tackled this problem in [9] . The robot determines the target through a conversation with the user. We present a method of generating a sequence of utterances that can lead to determine the object efficiently and user-friendly. It determines what and how to ask the user by considering the image processing results and the characteristics of object (image) attributes. In our previous work, however, we still simplified the problem. We assumed that we could obtain perfect imagesegmentation results. Each segmented region in images corresponds to an object in the scene. However, we cannot always expect this one-to-one correspondence in the real world. Segmentation failures are inevitable even by a stateof-the-art method. In this paper, we address this problem. Although segmentation fails due to various reasons, we consider two most typical cases here: occlusion and multi-color objects. If a part of an object is occluded by another object, these two objects might be merged into one region in an image. If an object is composed of multiple color parts, each part might be segmented as a separate region. We propose to solve this problem by combining a vision process with photometric invariance and interaction with the user.. There has been a great deal of research on robot systems understanding the scene or their tasks through interaction with the user [10] - [16] . These conventional systems mainly consider dialog generation at the language level, treating image features and attributes equally. Thus, as long as the certainty factors or any other values alike for features are the same, the systems act in the same way regardless what kind of features are involved. However, all image features and attributes are not the same in their characteristics. For example, humans can easily describe some features by word while not others. Some features should be treated differently depending on the existence of other features. Ours is different in that its main concern is the problems and issues of computer vision. The main purpose is to develop a vision system that can work in complex real world with the help of human interaction.. The paper is organized as follows: in Sect. 2, the basic framework of object recognition method is introduced; the problems of segmentation are presented in Sect. 3. Section 4 shows how reflectance ratio can be used to measure the compatibility of the adjacent regions. The proposed interactive object recognition method is given in Sect. 5. Section 6 includes experiments on real color images. The conclusion can be found in Sect. 7. The service robot that carries out tasks ordered by the user through speech needs a vision system to recognize the objects appearing in the orders. The target objects can be single or multicolor, and in real scenes, some objects may be occluded by others. The system should have a capability of dealing with all possible complexities of single color, multicolor and occluded objects. Our proposed method using a photometric invariant with the help of the interaction with the user can efficiently and accurately identify single color, multicolor and occluded objects in different illumination conditions. Experimental results show the usefulness of the proposed method.. Interactive systems such as the one proposed here are good in that they can be expected to work under various conditions owing to human assistance. However, if they need too much human assistance, they cannot be accepted. This paper proposes to use photometric invariance to reduce segmentation failure cases. Although the system cannot recover from all segmentation failures, this kind of improvement can make the system more acceptable. When we add a new function like this, we need to design the function so that the user can easily help the system even if the function cannot work well. We would like to add such functions one by one to realize an actual working system that can be accepted by various people. We can expect that interactive vision systems can work in various conditions. However, if the situation is complex, they may need a great number of interactions and cannot be effective and user-friendly. In this paper, we show that we can improve the performance of an interactive vision system if we introduce a decision process with reasonable ability based on some image properties. We would like to consider 'reasonable ability' here.. The decision by our system is right or wrong. In addition, we allow no-decision judgment to our system. We denote the right decision probability by Pr, the wrong one by Pw, and no-decision one by Pn (Pr + Pw + Pn = 1). Given an image, we assume that one of the three cases happen according to these probabilities. If the decision is right, the system can reduce the number of interactions (questions) by Cr. In the no-decision case, the performance of the system is the same as that of the system without the decision capability. We consider this as the base performance without any advantage or disadvantage. (We need additional computing cost if we use the decision process. We assume that we can neglect it because we can have much computing power.) If the decision is wrong, the system needs additional interaction with the user to recover the error. We denote the number of interactions necessary for error recovery by Cw. Thus, whether or not the system is effective and worthy to be used depends on the following value Tc:. The actual values of Cr and Cw depend much on the situation. Thus, it is a good design policy to make Pr much larger than Pw. Generally, we can do this by setting decision parameters to allow large Pn. However, this means that Pr becomes small although Pr/Pw is large. To sum up, the effectiveness of introducing a new decision module depends on whether or not it can achieve Pr Pw while keeping Pn reasonably small.. In this paper, we have proposed to introduce a decision method based on the reflectance ratio into the interactive system. As shown in Table 2 , the system can reduce the number of questions when the decision is right. The system did not give wrong decisions in these experiments. The current system asks the user for confirmation. Thus, even if it makes a mistake, the system can know the mistake soon by the user's negative response. In such cases the system goes back to the state without the decision module. Thus, Cw is considered not large. In the current implementation, we have determined the decision parameters based on the experimental results shown in Fig. 6 so that there are no decision errors among the measured cases. Pn is about 0.4 for the measured cases. Although we cannot tell the actual value of Pn, we can say from the experimental results that the current system achieves Pr Pw while keeping Pn reasonably small.. We show that the decision based on the reflectance ratio is useful. However, there are cases that the system cannot determine where to check the ratio. For example, suppose that there is a small object in front of a large object and their colors are the same. If there are no discontinuous points on the boundary, the system misjudges these objects as one object. In this case, the system can tell through interaction with the user that there are two objects. However, we need to improve image processing capability to detect these two objects separately such as by examining edges or slight color changes. This is left for future work.

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


Crosscutting techniques in program specification and analysis We present three aspect-oriented constructs (formats, scopes, and defaults) that, in combination with a specification language based on abstract sets of objects, enable the modular application of multiple arbitrarily precise (and therefore arbitrarily unscalable) analyses to scalably verify data structure consistency properties in sizable programs. Formats use a form of field introduction to group together the declarations of all of the fields that together comprise a given data structure. Scopes and defaults enable the developer to state certain data structure consistency properties once in a single specification construct that cuts across the preconditions and postconditions of the procedures in the system. Standard approaches, in contrast, scatter and duplicate such properties across the preconditions and postconditions. We have implemented a prototype implementation, specification, analysis, and verification system based on these constructs and used this system to successfully verify a range of data structure consistency properties in several programs.Most previous research in the field of aspect-oriented programming has focused on the use of aspect-oriented concepts in design and implementation. Our experience indicates that aspect-oriented concepts can also be extremely useful for specification, analysis, and verification. A key principle of good software engineering is to collect related items together into a single program unit. Each collection of related items comprises a concern of the program; a decomposition of the program into appropriate concerns minimizes interactions between program units, making the program easier to develop, understand, and maintain. Over the years a set of standard program units has emerged: record declarations group together related data fields, procedures group together related computations and actions, and classes group together related data fields and computations that operate on those fields.. A key insight behind aspect-oriented programming is that the exclusive use of the standard set of program units may force developers to scatter (and in some cases, duplicate) items from a single concern across many different units. In response to this situation, researchers have developed new kinds of program units (such as aspects [13] and hyperslices [35] ) and new composition mechanisms (such as dynamic weaving [28] and hyperslice compositors [35] ). Together, these new aspect-oriented constructs may enable developers to improve the structure of their programs by collecting previously scattered items from the same concern into more intellectually coherent program units.. This paper discusses our use of aspect-oriented concepts in the Hob program specification, analysis, and verification system [18] [19] [20] [21] 37] . The goal is to specify data structure consistency properties, then verify that the program preserves these properties. The approach is to encapsulate each data structure inside a separate module, then apply potentially different, arbitrarily precise (and therefore arbitrarily unscalable) analyses in a scalable, modular fashion to verify that each module correctly preserves the consistency properties of the data structures that it encapsulates. A common specification language based on abstract sets of objects enables the analyses to interoperate to verify consistency properties that involve multiple data structures encapsulated in multiple modules and analyzed by different analyses.. The traditional approach to modular specification and verification uses assume/guarantee reasoning: each procedure has a specification that consists of a precondition (the properties that it assumes hold upon entry) and a postcondition (the properties that it guarantees will hold upon exit if the precondition holds upon entry). We have found, however, that a phenomenon we call specification aggregation makes this approach fundamentally unscalable. The problem is that each procedure's specification must typically contain, as part of its precondition and postcondition, the preconditions and postconditions of any procedures that it invokes. These properties therefore become scattered across the procedure specifications as the preconditions and postconditions of callees are duplicated in the preconditions and postconditions of their (transitive) callers, with the specification and verification overhead becoming prohibitive as one moves up the procedure invocation hierarchy.. Note that aspect-oriented constructs were originally designed (in a different context) to eliminate similar kinds of scattering and duplication. Indeed, we have been able to use constructs either borrowed from or conceptually related to those in aspect-oriented programming languages to eliminate specification aggregation and make the modular verification of data structure consistency properties feasible for programs of arbitrary size. Formats provide a form of field introduction [6] that enables developers to group together, in a single module, all of the declarations of all of the fields (potentially from different kinds of objects) that together comprise the data structure that the module encapsulates. Standard approaches, in contrast, group together all of the declarations of all of the fields of a given record or object, with fields from the same data structure scattered across the record declarations or classes of the objects that may participate in that data structure. Scopes and defaults enable the developer to state a property once in a single location; standard approaches require the developer to explicitly duplicate the property across the preconditions and postconditions of procedures that either require the property themselves or (transitively) invoke procedures that require the property. Scopes can be seen as enabling the effective specification and verification of data structure consistency properties in certain types of program hyperslices [35] . Our experience with modular pluggable analyses has identified crosscutting concerns as an issue in program specification and verification. We designed several constructs and added them to our implementation and specification languages to address these issues. We found these constructs to be useful for verifying data structure consistency: the use of formats allowed us to independently specify and analyze sets of shared objects implemented using different data structures, whereas scopes and defaults improved the locality and clarity of our specifications, and, at the same time, reduced the sizes of these specifications. Together, these constructs enabled us to build a prototype analysis system that deploys multiple precise, unscalable analyses to verify, in a scalable and modular fashion, precise data structure consistency properties in sizable programs. Our work explores the use of mechanisms to address crosscutting concerns arising in static analysis of data structure consistency. We survey related work in the areas of semantics and analysis of aspect-oriented programs, crosscutting module systems, aspect-oriented specification techniques, default logic, and program checking tools in general. Semantics and analysis of aspect-oriented programs. Ideas for addressing crosscutting concerns in design and implementation appear in [3, 14, 22, 25, 27, 35] . Classification systems for aspects are presented in [8, 16] , and a semantics of aspects with dynamic join points is presented in [36] . Our module mechanism is more modest than open modules [1] ; our primary goal is to support the analysis of data structure consistency in the presence of shared objects, so we preserve the control-flow structure of traditional module systems. In [30, 33, 34 ] the authors present techniques for analyzing and classifying aspects. Our contribution is somewhat dual to the analysis of aspect interactions, because we explore the use of crosscutting techniques in specifications themselves. Despite these differences, the present paper further contributes to the view that static program analysis and aspect-oriented development techniques can benefit from each other. Crosscutting module systems. Aspect-oriented tech-niques aim to modularize crosscutting concerns in software systems. A technique that is particularly relevant to our work is virtual source files. In the Decal system [12] , developers may browse and effectively edit two distinct views of a software system: the usual class-based view, and a modulebased view which cuts across classes to separate out parts of a program relevant to a given concern. Hob's use of formats to separate concerns is akin to Decal's module-based view; formats allow our system to verify properties of software systems which have this module-based form of crosscutting. Formats can also be viewed as a case of intertype declarations in AspectJ [13] . Scopes are related to virtual source files and hyperslices; augmenting Stellation's dynamic aggregate generation [7] or hyperslices [26] with invariants could achieve a similar effect as scope invariants. In particular, once a developer has identified a scope using a program query or a specification hyperslice, then the developer could state cross-module invariants corresponding to this scope. Hob's scopes allow developers to both state and verify such properties.. Our notion of module instantiation is related to Hyper/J's equate into construct: our example could be implemented in Hyper/J by creating a ExposedList hyperslice and an HiddenList hyperslice, each equating the global List into that hyperslice and redirecting the List's reference to Node into a reference to Cell. If two different modules both contribute a field init to objects of class Cell, these two init fields remain distinct; our system's treatment of such fields corresponds to the Hyper/J nonCorrespondingMerge qualifier. Our system differs from Hyper/J with respect to access control: Hyper/J does not allow developers to restrict access to fields across slices. Specifications for aspect-oriented aystems.. In [9] , the authors explore the applicability of model checking techniques to modular software systems. The methodology of [9] allows users of model checking tools to state and modularly prove properties of systems which consist of base modules, extension points for these base modules, and extensions to the base modules. Both the techniques of [9] and our approach take advantage of sophisticated software decomposition constructs to improve the effectiveness of program verification. Whereas [9] targets primarily finite-state properties of collaboration-based software designs, our system implements a technique for verification of complex data structure consistency properties. Hob's common specification language does not have temporal operators typically supported by model checkers; instead, Hob uses the sourcelevel concept of program points and the ability to introduce boolean flags to represent both global and per-object temporal properties. Hob's set-based specification language goes beyond the finite state models used in model checking; the specification languages for the individual analyses are even more expressive. Default logic. Reiter's default logic [29] is a nonmonotonic logic that extends first-order logic by adding a set of default rules. These default rules automatically add clauses to formulas in the absence of evidence to the contrary. Our notion of defaults differs from Reiter's default logic in that our defaults do not change the underlying logic of our system. We continue to use first-order logic for reasoning about program state and apply syntactic formula transformations to certain formulas in our specifications.. Program checking tools. ESC/Java [10] is a program checking tool whose purpose is to identify common errors in programs using program specifications in a subset of the Java Modelling Language (JML) [5] . ESC/Java sacrifices soundness in that it does not model all details of the program heap, but can detect some common programming errors. The Spec# programming system [2] adds similar features to C#, including the ability to specify method contracts, frame conditions and class contracts. These contracts may be verified at run-time or by the Boogie static verifier, which uses a theorem prover to discharge its verification conditions.. We discuss two key differences between our approach and the proposed Boogie approach. First, Boogie envisions the use of a single general-purpose theorem prover to discharge the generated verification conditions. Hob, on the other hand, is designed to support a diverse range of potentially narrow, specialized analyses (this range includes shape analyses, typestate analyses [19] and even interactive theorem provers [37] as well as less detailed analyses). This goal is reflected in Hob's format construct and in its abstract set specification language, both of which are designed to support a strong separation between different analyses (such a separation is necessary, of course, if multiple analyses are to cooperate to successfully analyze a single program). This approach minimizes the amount of expertise required to work within the Hob system and maximizes the ability of developers with specialized skills to contribute. We believe that enabling as many developers to contribute as possible will lead to a richer, more powerful analysis system. Second, Boogie is designed to verify object invariants, with an object ownership mechanism supporting the hierarchical specification and verification of invariants that involve hierarchies of linked objects. This mechanism eliminates a form of specification aggregation for computations that traverse a hierarchy of owned objects -if the procedure call hierarchy matches the ownership hierarchy, each procedure need only state consistency requirements for the object that it directly accesses, not all of the child objecs that that object owns. This hierarchical specification approach is reminiscent of hierarchical access specifications in Jade [31] and hierarchical locking mechanisms in databases [32] .. Hob, on the other hand, is designed to support computations organized around a flat set of data structures. The constructs that eliminate specification aggregation cut across the procedure call hierarchy rather than working within it. This adoption of cross-cutting organizational approaches reflects the maturation of computer science as a disciplineover time, the overwhelming dominance of hierarchical approaches will fade as the effectiveness of using other approaches in addition to hierarchies becomes obvious.

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


Leveraging Zipf's law for traffic offloading Internet traffic has Zipf-like properties at multiple aggregation levels. These properties suggest the possibility of offloading most of the traffic from a complex controller (e.g., a software router) to a simple forwarder (e.g., a commodity switch), by letting the forwarder handle a very limited set of flows; the heavy hitters. As the volume of traffic from a set of flows is highly dynamic, maintaining a reliable set of heavy hitters over time is challenging. This is especially true when we face a volume limit in the non-offloaded traffic in combination with a constraint in the size of the heavy hitter set or its rate of change. We propose a set selection strategy that takes advantage of the properties of heavy hitters at different time scales. Based on real Internet traffic traces, we show that our strategy is able to offload most of the traffic while limiting the rate of change of the heavy hitter set, suggesting the feasibility of alternative router designs. A reoccurring property of Internet traffic at various levels of aggregation is its consistency with Zipf's law [8, 26, 23, 3] , i.e., the amount of traffic per flow is consistent with a Zipf distribution. A flow can be as fine as the traffic between a given IP sourcedestination pair or as coarse as all the traffic sent to a single network. For this reason, a small fraction of flows capture most of the traffic. However, heavy hitters are known to be volatile [24] , making their selection for traffic engineering difficult [19] .. We propose to utilize the Zipf properties of Internet traffic to offload most of the traffic from a complex controller to a simple forwarder. We show that by taking advantage of the properties of Internet traffic, a simple forwarder can with limited communication overhead be used to boost the performance of a complex * Rob Sherwood did the majority of the work while employed at Deutsche Telekom Inc. R&D Lab. forwarding system, by offloading most of the traffic. The principle behind such a controller-forwarder system lies in bundling a controller, e.g., a complex and flexible software-centric system, together with a forwarder, e.g., a high-performance hardware-centric packet forwarding device. This approach follows the split architecture idea: most of the control plane load should be handled by the software-oriented part of the system, while most of the packet forwarding should be performed by a fast and simple device. Figure 1 illustrates the principle controller-forwarder system architecture with the use case of an IP router. The controller speaks routing and signalling protocols in the same fashion as route controllers on existing routers. It can take advantage of the extensive CPU and memory resources of commodity PCs. Furthermore, the controller makes use of a forwarder, a device optimized for high-performance packet forwarding, to offload most of the traffic. Through a communication channel, the controller modifies the set of heavy hitters which are offloaded and handled by the forwarder. In this paper we investigate the feasibility of such an offloading system based on Internet traffic traces.. We first show that in principle, the achievable offloading gain is in the order of more than 90 percent when offloading the traffic contributed by 0.2 % of the flows. However, the volatility in heavy hitters incurs significant communication overhead, which is contrary to our design goals of keeping the forwarder simple. To address this challenge, we propose our heavy hitter selection strategy called Traffic-aware Flow Offloading (TFO), which relies on traffic statistics over multiple time scales. Previous work [19, 24] has identified the volatility of heavy hitters in Internet traffic as a challenge for traffic engineering, which also applies to our controller-forwarder context. In addition, we require that the benefit of introducing a forwarder is not counterbalanced by the complexity of the communication between the controller and the forwarder. Therefore, TFO trades off the overhead of modifying the set of heavy hitters against the expected increase in offloading gain. Our results show that TFO is able to offload most of the traffic to the forwarder while keeping the number of modifications to the set of heavy hitters low, contrary to traditional route caching strategies [13] . This enables us to discuss both the benefits as well as challenges that Internet traffic properties pose for router design. The contributions of this paper are the following:. Traffic offloading: Based on traffic traces from a large European ISP, a large European IXP, and a transcontinental link we show the potential of traffic offloading and identify the challenges of heavy hitter selection strategies.

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


An Improved Greedy Search Algorithm for the Development of a Phonetically Rich Speech Corpus An efficient way to develop large scale speech corpora is to collect phonetically rich ones that have high coverage of phonetic contextual units. The sentence set, usually called as the minimum set, shouldhave small text size in order to reduce the collection cost. It can be selected by a greedy search algorithm from a large mother text corpus. With the inclusion of more and more phonetic contextual effects, the number of different phonetic contextual units increased dramatically, making the search not a trivial issue. In order to improve the search efficiency; we previously proposed a so-called least-to-most-ordered greedy search based on the conventional algorithms. This paper evaluated these algorithms in order to show their different characteristics. The experimental results showed that the least-to-most-ordered methods successfully achieved smaller objective sets at significantly less computation time, when compared with the conventional ones. This algorithm has already been applied to the development a number of speech corpora, including a large scale phonetically rich Chinese speech corpus ATRPTH which played an important role in developing our multi-language translation system. When porting available speech recognition and translation technologies to a new task or a new target language, researchers frequently meet the issue of developing either large scale speech training corpora or some amounts of adaptation speech data, under the condition of limited time and cost. One efficient way to do this is to use a minimum sentence set for data collection [1] , [2] . The minimum sentence set is desired to have as few as possible number of sentences, but as high as possible coverage of phonetic contextual environments. This approach have at least two merits: one is that it guarantees data coverage of important phonetic contextual variations. And the other one is that it helps to collect data of more number of speakers, when given the same amount of cost.. The design method is to some extent decided by the ratio of the number of different phonetic units and the desired number of sentences in the final set. If the ratio is relatively small, meaning that comparatively more sentences can be selected, then the sentence set can be required not only to Although the weighting method in [2] has the effect of reducing the size of generated objective sentence set, it has no effect of reducing the computation cost. Based on it, we proposed in [7] a modified greedy search, named as least-tomost-ordered greedy search, which selects a sentence only from those sentences containing the unit of least frequency. The method was found to be able to generate a smaller objective set at significantly lower computation cost when compared to the standard greedy search. From then on, the algorithm have been widely applied to a number of sentence set design tasks with various kinds of purposes: different contextual environments ranged from monophones, biphones, triphones and even higher contextual effect dependent units, very small sets for quick collections of speaker adaptation data, large scale speech databases for acoustic model training, very phonetically rich speech database for synthesis, and a number of languages including Chinese, Japanese, English, Indonesian and etc. This paper is to evaluate different characteristics of four greedy search algorithms for minimum sentence set: the conventional greedy in [1], the weighted conventional greedy in [2], the least-to-most-ordered greedy in [7] , and a so-called weighted least-to-most-ordered greedy algorithm proposed in this study. The experiments were to design a minimum sentence set for collecting a large scale Chinese speech training corpus. The following is arranged as follows: Section 2 described the four greedy algorithms. Section 3 introduces the experimental setup for designing a minimum sentences set with a high coverage of cross word triphones for Chinese. Section 4 presents the experimental results and analysis. Section 5 introduces an exact application of the designed minimum sentence set: the large scale Chinese speech corpus ATRPTH. The 792 sentence-set is given in Appendix A, as an reference for increasing interests in Chinese corpora construction. Finally we conclude in Sect. 6.. Step 2: Sentence selection: Select the sentence s* with the highest score where the inverse of frequencies, proposed in [2] . The algorithm keeps the same steps as the Method 1, except the sentence score is computed in the following way.. All the four methods select the sentences in one common way: one locally optimal sentence with the highest score at each step. The method 1 and 2 just differ in the way to calculate sentence score: one uses a ratio of types a, ai, an, ang, ao, e, ei, en, eng, er, i1, i2, i3, ia, ian, iang, iao, ie, ing, in, iu, iong, o, ou, u, ua, uai, uang, uan, ui, un, uo, ong, v, van, ve, vn class triphone types of possible 5,300 appeared in the text corpus, the following experiments are to search a minimum sentence-set which covers all the 4,854 triphone units.

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


Enhancing Lagrangian Dual Optimization for Linear Programs by Obviating Nondifferentiability W e consider nondifferentiable optimization problems that arise when solving Lagrangian duals of largescale linear programs. Different from traditional subgradient-based approaches, we design two new methods that attempt to circumvent or obviate the nondifferentiability of the objective function, so that standard differentiable optimization techniques could be used. These methods, called the perturbation technique and the barrier-Lagrangian reformulation, are implemented as initialization procedures to provide a warm start to a theoretically convergent nondifferentiable optimization algorithm. Our computational study reveals that this twophase strategy produces much better solutions with less computation in comparison with both the stand-alone nondifferentiable optimization procedure employed, and the popular Held-Wolfe-Crowder subgradient heuristic. Furthermore, the best version of this composite algorithm is shown to consume only about 3.19% of the CPU time required by the commercial linear programming solver CPLEX 8.1 (using the dual simplex option) to produce the same quality solutions. We also demonstrate that this initialization technique greatly facilitates quick convergence in the primal space when used as a warm start for ergodic-type primal recovery schemes. Consider the linear-programming problem LP: Minimize c T x (1a). where A is an m × n matrix, and l and u are vectors of (finite) lower and upper bounds, respectively, on the x variables. If LP is a large, ill-conditioned problem, simplex or interior-point solvers can get prohibitively expensive (Adams and Sherali 1993, Sherali and Tuncbilek 1997, for example) . Instead, Lagrangian relaxation, or Lagrangian dual optimization, along with a primal recovery scheme, could be more effective for obtaining lower bounds and selecting branching variables (Fisher 1981 , Sherali and Myers 1988 , Sherali and Choi 1996 , Larsson et al. 1999 , Barahona and Anbil 2000 . The Lagrangian dual of LP is LD: Maximize. where ≡ b T + min c T x − T Ax l ≤ x ≤ u . Although the Lagrangian dual optimization problem is a convex program, the nondifferentiability of obviates the use of conventional differentiable optimization methods. Hence, various nondifferentiable optimization (NDO) procedures are applied to solve LD, such as subgradient and conjugate subgradient algorithms (Polyak 1967 (Polyak , 1969 Held et al. 1974; Camerini et al. 1975; Sherali and Ulular 1989) , bundle methods (Mifflin 1977 , Lemarechal 1977 , Makela 2002 , and space-dilation algorithms (Shor 1970a, b; Sherali et al. 2001) . Bundle algorithms require solving quadratic subproblems, and space-dilation procedures need to store matrices and perform matrix operations, each of which can be prohibitive for large problems. On the other hand, conjugate subgradient methods can be effective approaches for solving large problems due to their relatively milder computational and memory requirements. However, this type of approach usually requires a suitable estimate of the optimal objective value to compute step lengths. For example, Sherali et al. (2000) proposed a variable target value method (VTVM) that assures convergence to an optimum when used with a conjugate subgradient direction strategy. Although the VTVM algorithm has demonstrated good performance in solving several standard test problems, we have observed that if the initial target value is far from the optimal objective value, the algorithm might stall for a significant number of iterations while the target value is adjusted to an appropriate level, before a progression of improvements results. In this vein, Lim and Sherali (2006) recently proposed a modified VTVM that employs a variable acceleration factor when updating target values and adopts a projected quadratic-fit linesearch whenever an improvement is attained. Among various direction-finding and step-length strategies investigated in concert with the modified VTVM procedure in their extensive computational study, Lim and Sherali prescribed a generalized Polyak-Kelley cutting-plane (GPKC) technique as a highly effective alternative. This approach simultaneously determines a direction and a step length by projecting an iterate onto the most recent pair of cuts, and then additionally utilizing sequential projections onto several other past cuts to obtain the next iterate.. Besides optimizing the Lagrangian dual, the recovery of primal solutions is another important consideration. A computationally simple idea for deriving primal solutions in Lagrangian dual optimization is to construct an ergodic sequence based on the solutions to the corresponding Lagrangian subproblems during the normal course of the dual search algorithm, in a manner that would induce convergence to an optimal pair of dual and primal solutions. Shor (1985) proved the primal convergence of sequences of this type when using specific weighting schemes in concert with pure subgradient optimization. Sherali and Choi (1996) proposed an extension of such weighting strategies and established primal convergence when employing both pure and deflected subgradient algorithms. Larsson et al. (1999) further extended these weighting schemes to yield primal convergence for general convex programs.. In this paper, we develop two new approaches for solving LD in (2), which attempt to circumvent or obviate the nondifferentiability of in providing a warm start for theoretically convergent NDO procedures. One of these methods involves perturbing iterates to create a differentiable trajectory of solutions, while the second approach examines the Lagrangian dual of a barrier reformulation of the problem, which yields a continuously twice differentiable dual function. In doing so, these approaches admit the use of a rich array of effective existing solution technologies for differentiable optimization problems. Note that with the same motivation, Nesterov (2005) has recently independently proposed a method for constructing a smooth -approximation having a Lipschitz continuous gradient for a nondifferentiable function, such that an -optimal solution can be derived using conventional differentiable optimization procedures. In contrast, although the second of our aforementioned two approaches can be run to produce an -optimal solution on its own, we utilize these methods only to provide a good initial starting solution.. In §2, we present a technique that utilizes perturbations at nondifferentiable points to create a differentiable pathway so that conventional differentiable optimization methods can be brought to bear for solving LD. Next, we introduce a barrier-function approach in §3 (see Bazaraa et al. 2006 for a general discussion on barrier-function methods), which provides a continuously twice differentiable Lagrangian dual function, thereby permitting application of standard differentiable optimization techniques to furnish a warm start for both the dual optimization and ergodic-primal-recovery schemes. Some differentiable optimization strategies that we implement for our numerical study are briefly described in §4. Subsequently, in §5, we design algorithmic procedures in which these proposed techniques are applied to initialize the theoretically convergent variable target value method that incorporates generalized Polyak-Kelley cuts (VTVM-GPKC), as proposed by Lim and Sherali (2006) , in the hope of enhancing its numerical performance. Computational test results are provided in §6 to demonstrate the efficacy of the proposed dual optimization and ergodic-primal-recovery strategies. The results reveal that the best proposed option improves the quality of solutions produced by the stand-alone VTVM-GPKC algorithm by reducing the optimality gap by 72.5% while being run for only about half as many iterations, and consumes only 3.19% of the CPU effort required by the dual-simplex option of the commercial software CPLEX 8.1 to obtain the same quality near-optimal solutions.

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


RNGSSELIB: Program library for random number generation, SSE2 realization The library RNGSSELIB for random number generators (RNGs) based upon the SSE2 command set is presented. The library contains realization of a number of modern and most reliable generators. Usage of SSE2 command set allows to substantially improve performance of the generators. Three new RNG realizations are also constructed. We present detailed analysis of the speed depending on compiler usage and associated optimization level, as well as results of extensive statistical testing for all generators using available test packages. Fast SSE implementations produce exactly the same output sequence as the original algorithms. Solution method: The library contains realization of a number of modern and reliable generators: mt19937, mrg32k3a and lfsr113. Also new realizations for the method based on parallel evolution of an ensemble of dynamical systems are constructed: GM19, GM31 and GM61.The library contains both usual Restrictions: For SSE realizations of the generators, Intel or AMD CPU supporting SSE2 command set is required. In order to use the realization lfsr113sse, CPU must support SSE4 command set. Pseudo random numbers, generated recursively by deterministic rules, represent one of important ingredients of numerical simulations widely used in physics and material science [1] . Design of the random number generators (RNG) producing pseudo random numbers which approximate "true randomness" [2] is a great challenge for the computational physics and computer science in general.. High speed and statistical robustness are the most important characteristics needed for good RNG. Also, long period length of the generated sequences is among the most desired features.. In the paper we present a library of modern and most reliable RNGs known today. Namely, the realizations of the modern generators MT19937, MRG32k3a, LFSR113, GM19SSE, GM31SSE and GM61SSE are presented. MT19937 is the 2002 version of the Mersenne Twister generator of Matsumoto and Nishimura [3] , which is based on the recent generalizations to the GFSR method. MRG32k3a is the combined multiple recursive generator proposed in [4] , and LFSR113 is the combined Tausworthe generator of L'Ecuyer [5] . Each of the generators GM19SSE, GM31SSE and GM61SSE is based on an ensemble of sequences generated by multiple recursive method. The method is closely related to the method of random number generation based on evolution of the ensemble of the chaotic dynamical systems [6] . We introduce three RNG realizations based on the method: GM19SSE, GM31SSE and GM61SSE.. An important feature of our library is the ability to speed up the RNG generation using Streaming SIMD Extensions 2 (SSE2) technology, introduced in Intel Pentium 4 processors in 2001 [7] . AMD added SSE2 support to their processors with the introduction of their Opteron and Athlon64 ranges of 64-bit CPUs in 2003 [8] . All of Intel and AMD processors, fabricated later than 2003, support SSE2 instruction set. SSE2 technology allows to use 128-bit XMM-registers effectively and to accelerate computations. A similar technique was previously used for implementing some RNGs [9, 6] . In the present work we demonstrate that this approach can essentially speed up most RNGs.. Program codes for the generators and proper initializations can be found in [10] . We would like to stress that our SSE implementations of algorithms produce exactly the same output sequence as the original algorithms. We would appreciate any comments on user experiences.

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