Solving toeplitz- and vandermonde-like linear systems with large displacement rank Linear systems with structures such as Toeplitz-, Vandermonde-or Cauchy-likeness can be solved in O˜(α 2 n) operations, where n is the matrix size, α is its displacement rank, and O˜denotes the omission of logarithmic factors. We show that for Toeplitz-like and Vandermonde-like matrices, this cost can be reduced to O˜(α ω−1 n), where ω is a feasible exponent for matrix multiplication over the base field. The best known estimate for ω is ω < 2.38, resulting in costs of order O˜(α 1.38 n). We also present consequences for Hermite-Padé approximation and bivariate interpolation. Structured linear algebra techniques are a versatile set of tools. They enable one to deal at once with matrices with features such as Toeplitz, Vandermonde or Cauchy-likeness, and that arise in various problems, from interpolation to reconstruction of rational or algebraic functions, etc.. Following [21] , the usual way of measuring to what extent a matrix possesses one such structure is through its displacement rank, that is, the rank of its image through a suitable displacement operator. For P and Q in respectively K n×n and K m×m , where K is our base field, we will use the displacement operator. Two matrices (Y, Z) in K n×α × K m×α will be called a P, Qgenerator of length α for A if Δ[P, Q](A) = Y Z t . The main idea behind algorithms for structured matrices is to use such generators as a compact data structure, in cases Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. when Δ[P, Q](A) has low rank. Even though these definitions hold for rectangular A, in most of the paper, except Subsection 4.1, we have n = m.. Usual choices for P or Q are diagonal matrices, or cyclic down-shift matrices of size n, defined for ϕ in K by Zn,ϕ = The Toeplitz structure corresponds to P = Zn,0 and Q = Z In this paper, we consider the following task: LinearSystem(P, Q, α): Given a P, Q-generator of length α for a matrix A ∈ K n×n , with α ≤ n, and given v ∈ K n , find a uniform random solution to the equation Au = v, or determine that none exists.. This problem makes sense only when the operator Δ[P, Q] is invertible: this will be the case in our two cases of focus, Toeplitz-like and Vandermonde-like matrices. Previous work then yielded the following kind of results: for the Toeplitz, Vandermonde and Cauchy structures, one can solve the problem LinearSystem using O˜(α 2 n) operations in K, where the O˜notation hides logarithmic factors.. When α is constant, such estimates are optimal up to logarithmic factors. However, there are several situations where α is not bounded a priori (see examples below). In the extreme case of very loosely structured matrices, when α goes up to α n, the cost above becomes O˜(n 3 ). On the other side of the spectrum, we find dense linear algebra methods. Let ω < 3 be such that n×n matrices over K can be multiplied in O(n ω ) operations (the current record estimate is ω < 2.38 [10] ). Then, linear systems of size n can be solved in time O(n ω ), using e.g. LSP factorization [20] ; with ω < 3, this is better than the above O˜(n 3 ) estimate. Our contribution bridges a gap between the approaches of structured and dense linear algebra, in the case of Toeplitzlike and Vandermonde-like matrices. The algorithms rely on polynomial multiplication; we will thus denote by M : N>0 → R>0 a function such that polynomials in K[x] of degree less than d can be multiplied in M(d) operations. We make the standard super-linearity assumption that. ; see [16, Chapter 8] . Using [38, 9] , one can take. Using [9] , polynomial matrices over K of degree less than d and size n can be multiplied in O(M(d)n ω ) operations in K. The algorithms are probabilistic; to simplify the presentation, we will say that an algorithm has type P (r, d) if it chooses r random elements in K, say 1, . . . , r , and if there exists a non-zero polynomial Γ ∈ K[L1, . . . , Lr] of degree at most d such that if Γ( 1, . . . , r ) = 0, the algorithm succeeds. It follows from the Zippel-Schwartz lemma [11, 44, 39] that if 1, . . . , r are chosen uniformly at random in a finite subset S of K, the probability of success is at least 1 − d/|S|.. Main results. The first result covers matrices having Toeplitz-like structure, with P = Zn,0 and Q = Z t n,0 . We obtain a complexity in O˜(α ω−1 n) ⊂ O˜(α 1.38 n), to be compared with an optimal cost of O(αn). For α constant, our result is quasi-linear in n; when α n, we recover the O(n ω ) behaviour of dense methods, up to logarithmic factors.. , by a probabilistic algorithm of type P (3n − 2, n 2 + n).. A fundamental application of this result is the solution of approximation problems: given a master polynomial M and polynomials f1, . . . , fs, one seeks a combination of the fi, with polynomial coefficients of prescribed degrees, which vanishes modulo M . This includes in particular Padé and Hermite-Padé approximation (taking M = x n ), with applications to e.g. recovering the minimal polynomial of an algebraic power series f (taking fi = f i−1 ).. be of degrees less than n and let ν1, . . . , νs ∈ N be such that. , not all zero, of respective degrees less than ν1, . . . , νs, such that g1f1. The algorithm is probabilistic of type P (3n − 2, n 2 + n).. As observed before, the cost is in O˜(s ω−1 n) ⊂ O˜(s 1.38 n), to be compared with an optimal cost of O(sn).. Our second result addresses the Vandermonde-like case, where P = D(x) is the diagonal matrix with diagonal x = [x1, . . . , xn] and Q has the form Z t n,ψ . In this article, we work under the following assumption:. The complexity in the Vandermonde case is then similar to that of the Toeplitz case:. Theorem 2. Suppose that K has cardinality at least n. If x ∈ K n and ψ satisfy assumption A, one can solve problem. by a probabilistic algorithm of type P (3n − 2, n 2 + n).. We conclude with an application of the latter theorem to polynomial interpolation. The approach applies to any number of variables, but we discuss only the bivariate case for simplicity. Consider n interpolation points in K 2 ; without loss of generality, we assume that they are written as. with ν1 ≥ · · · ≥ νs > 0 and n = ν1 + · · · + νs. The following figure illustrates the case s = 3, n = 7, ν1 = 3, ν2 = ν3 = 2.. In general, it is difficult to state a priori that a multivariate interpolation problem is well-defined. Here, however, given [vi,j ] 1≤i≤s,1≤j≤ν i in K n , Theorem 1 in [29] (see also [14] ) implies that there exists a unique F ∈ K[x, y] of the form . Suppose for instance that ν1 = s, ν2 = s − 1, . . . , νs = 1, so that we are interpolating on the simplex of monomials of degree less than s; here, n = s(s+1)/2. Then, our algorithm has subquadratic complexity O˜(n (ω+1)/2 ) ⊂ O˜(n 1.69 ). Few practical algorithms are currently known for matrix multiplication with complexity better than cubic (see [42, 28] and [26] for an exponent 2.77). However, even when using algorithms of cubic complexity, the re-introduction of dense matrix arithmetic in our algorithms means that we can rely on extremely optimized implementations of matrix multiplication, such as the ones relying on BLAS libraries for finite field arithmetic [12] . Hence, besides theoretical estimates, our approach may lead to practical improvements.. Previous work. The notions of displacement rank and displacement operators originate from the work of Kailath, Kung and Morf [21] . Since then, the literature has vastly developed; see [36] for a list of references.. The basis of Theorem 1 is the algorithm of Bitmead and Anderson [6] and Morf [30, 31] , which requires several invertibility conditions to hold. Kaltofen [22, 23] extended this idea to arbitrary matrices (see also [5, p. 204] for some related ideas), obtaining a complexity of O(α 2 M(n) log(n)); for small α, this is better than our result in Theorem 1. We follow his approach, our main technical contribution being the fast multiplication of a Toeplitz-like matrix (given by its generators) by several vectors.. An important example of Toeplitz-like system solving is the approximation problem of Corollary 1. In the particular case of Hermite-Padé approximation, with M = x n , a central reference is Beckermann-Labahn's algorithm [2] , that has complexity O(s ω M(n) log(n)) for computing a σ-basis of order n of the input system (and thus a solution to the approximation problem); see [18] . In generic cases, an unpublished result of Lecerf reduces the cost to O(s ω−1 M(n) log n) and Storjohann [41] subsequently obtained a deterministic algorithm of similar complexity, applying in all cases. However, to our knowledge, these results do not extend to an arbitrary choice of M . Following notably [1, 43] , Beckermann and Labahn study that general case in [3] under the angle of fraction-free algorithms, with however a complexity more than linear in n.. Another example of Toeplitz-like system that occurs frequently is when the matrix is block-Toeplitz, a block-size equal to α giving a displacement rank in O(α). Although Theorem 1 applies to any such system, a deterministic cost of O(α ω−1 M(n) log(n)) can be obtained in the particular case where the matrix is invertible. As described for example in [13] , this cost follows from combining an inversion formula of [27] with σ-basis computations as in [18] .. To prove Theorem 2, we transform a Vandermonde-like system into a Toeplitz-like one, following Pan's idea [34] . We use a transformation from [19] , generalizing it by taking into account the possibility of repetitions in the diagonal component of the operator. Again, the main technical tool is to multiply (submatrices of) a Vandermonde-like matrix, given by its generator, by several vectors.. Multivariate polynomial interpolation has been studied extensively (see [15] for a survey and [4, 8, 45] for algorithms relevant from sparse techniques). However, to our knowledge, previous references either do not cover the problems we deal with, or have higher complexity (typically, quadratic). Regarding the converse evaluation problem, let us mention the subquadratic complexity result of [33] , which however deals with more general situations than ours.. Organization of the paper. After introducing basic notation and results in Section 2, we present in Section 3 the bases of our technical improvement, which can be stated in terms of polynomial operations only. These results are then applied, first to the Toeplitz case in Section 4, then to the Vandermonde case in Section 5.. All complexities are expressed in terms of base field operations. In several cases, we will add big-Oh estimates, with sometimes a non-constant number of summands. While such big-Oh additions are in general delicate to handle, one easily sees that all our simplifications are indeed valid.

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


Multilayer Cluster Based Energy Efficient Routing Protocol for Wireless Sensor Networks Wireless sensor networks (WSNs) are one of the most promising technologies and have immense potential in both the military and civil field. WSNs offer a range of challenges for scientists and engineers of today. The biggest challenge among all is the energy constraint of these networks. In this context, various schemes have been presented in order to improve the life time of these networks and to overcome the energy constraint. One of the effective schemes is based on clustering of sensor nodes within a network in order to improve the network life time and decrease communication latency. Clustering algorithms are believed to be the best for wireless sensor networks because they work on the principle of divide and conquer. This paper includes a brief survey of various existing clustering algorithms and present a new clustering algorithm based on nondetermistic finite automata which further divides the communication between cluster heads into multihop by using a few nodes from each cluster. Performance studies indicate that the proposed algorithm is more efficient in terms of energy consumption and network connectivity. The development in the filed of micro electrical mechanical systems (MEMS) [1] [2] [3] , radio communication has made it possible to form small tiny nodes with the capability of sensing, computing, and communication in a short range. These nodes can perform the sensing collaboratively which if monitored by a singe sensor will not give precise results. Technology review at Mit and Global Future say that sensor technology is one of the ten emerging technologies that will change the world [4] .. A WSN consists of nodes with sensing, computing, and communication capability connected according to some topology. The network is capable of monitoring activities and phenomenon which can not be monitored easily by human beings such as the site of a nuclear accident, some chemical field monitoring, or environment monitoring for a longer period of time. The general characteristics of WSNs are [5] continuously changing topology, dense deployment of the network, autonomous network management, multihop communication, limited node energy [6] , and limited bandwidth, In network cooperative processing, each node tries to perform computation on data locally so data to be forwarded becomes less. WSNs are data centric networks and because of the sheer number of nodes it is not efficient to give a unique identification number (ID) to the sensor nodes. The nodes are usually referred to as the type or the range of data they are dealing with [7] . These networks are highly application specific so the architecture of protocol operation varies from application to application. One routing algorithm might be good for periodic monitoring while it may not perform well where it will have continuous data sensing.. WSNs are able to monitor a wide range of applications which include Temperature, Humidity, Pressure, Lightning conditions, Soil makeup, Presence of objects, Mechanical stress, Speed, direction, and size of objects. Typical applications include surveillance and battle space monitoring by military, and in the agricultural, and environmental fields. For example researchers at UC Berkeley and the College of the Atlantic in Bar Harbour deployed sensors on Great Duck Island in Maine. These networks monitor the microclimates in and around nesting burrows used by the Leach's Storm Petrel. The goal was to develop a habitat monitoring kit that enables researchers worldwide to engage in the nonintrusive and non-disruptive monitoring of sensitive wildlife and habitats [8] . Engineering applications include maintenance in a large industrial plant or monitoring of civil structures, and regulation of modern buildings in terms of temperature, humidity etc. Other applications include forest fire detection, flood detection [9] etc.. The algorithm presented in this paper is an extension of the famous Leach protocol. The algorithm further divides direct communication between the cluster head and the sink into multihop using some nodes from the clusters.. The paper is organized as follows. Section 2 gives a brief overview of the challenges faced while clustering the WSNs. Section 3 gives an overview of the various clustering algorithms. The proposed algorithm and simulation results are presented in Section 4. Finally Section 5 concludes the paper. It is obvious from the simulation results that the proposed algorithm compared to Leach is more energy efficient and also as the network progresses the network connectivity decreases in MEEECHCP and is less compared to Leach. This paper, like most of the previous approaches, is based on the assumption of error free radio transmission. The extension of this work will include simulation of WSNs with mobile nodes and to Multilayer Cluster Based Energy Efficient Routing Protocol 191 Routing in WSNs is a challenging task firstly because of the absence of global addressing schemes; secondly, data source from multiple paths to single sources; thirdly because of data redundancy and also because of energy and computation constraints of the network [10] . Because of these reasons the conventional routing algorithms are not efficient when applied to WSNs. The performance of the existing routing algorithms for WSNs vary from application to application because of different demands of different applications. There is a strong need for the development of routing techniques which work well across a wide range of applications. Broadly the routing protocols are divided into two categories; one is based on the network structure and the second is based on the protocol operation. The network structures are further classified as flat network routing, hierarchal network routing, and location based routing. The protocol operation based can be classified as negotiation based, multipath based, query based, QoS based, and coherent based routing. The remaining section briefly describes the routing protocols based on network structure and more specifically the hierarchal routing algorithms.. Cluster based routing in WSNs comes under the category of hierarchal routing. Hierarchal routing involves the formation of clusters where nodes are assigned the task of sensing which have low energy and transmission task to nodes which have higher energy. The purpose is to perform energy efficient routing. The cluster heads may be special nodes with higher energy or normal nodes depending on the algorithm and application. The cluster head also performs computational functions such as data aggregation and data compression in order to reduce the number of transmission to the base station (or sink) there by saving energy. One of the basic advantages of the clustering is that latency is minimized compared to flat base routing and also flat based routing nodes that are far away from the base station lack the power to reach the base station [11] .. The basic principle of its efficiency is that it operates on the rule of divide and conquer. Clustering along with reduction in energy consumption improves bandwidth utilization by reducing collision. Work is currently underway on the energy efficiency in WSNs which will result from the selection of cluster heads, the distance between the cluster heads, the size of the cluster, and inter and intra cluster communication, the type of environment they are deployed in, the organization of the network into set up and steady phase that determines how much time should be given to each to make it more efficient. These are some of the main factors to consider for devising an efficient cluster based routing algorithm. In the next section we take a brief look at some of the common clustering algorithms.

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


Automated, Highly-Accurate, Bug Assignment Using Machine Learning and Tossing Graphs Empirical studies indicate that automating the bug assignment process has the potential to significantly reduce software evolution effort and costs. Prior work has used machine learning techniques to automate bug assignment but has employed a narrow band of tools which can be ineffective in large, longlived software projects. To redress this situation, in this paper we employ a comprehensive set of machine learning tools and a probabilistic graph-based model (bug tossing graphs) that lead to highly-accurate predictions, and lay the foundation for the next generation of machine learning-based bug assignment. Our work is the first to examine the impact of multiple machine learning dimensions (classifiers, attributes, and training history) along with bug tossing graphs on prediction accuracy in bug assignment. We validate our approach on Mozilla and Eclipse, covering 856,259 bug reports and 21 cumulative years of development. We demonstrate that our techniques can achieve up to 86.09% prediction accuracy in bug assignment and significantly reduce tossing path lengths. We show that for our data sets the Naïve Bayes classifier coupled with product-component features, tossing graphs and incremental learning performs best. Next, we perform an ablative analysis by unilaterally varying classifiers, features, and learning model to show their relative importance of on bug assignment accuracy. Finally, we propose optimization techniques that achieve high prediction accuracy while reducing training and prediction time. Software evolution has high associated costs and effort. A survey by the National Institute of Standards and Technology estimated that the annual cost of software bugs is about $59.5 billion [1] . Some software maintenance studies indicate that maintenance costs are at least 50%, and sometimes more than 90%, of the total costs associated with a software product [2, 3] , while other estimates place maintenance costs at several times the cost of the initial software version [4] . These surveys suggest that making the bug fixing process more efficient would reduce evolution effort and lower software production costs.. Most software projects use bug trackers to organize the bug fixing process and facilitate application maintenance. For instance, Bugzilla is a popular bug tracker used by many large projects, such as Mozilla, Eclipse, KDE, and Gnome [5] . These applications receive hundreds of bug reports a day; ideally, each bug gets assigned to a developer who can fix it in the least amount of time. This process of assigning bugs, known as bug assignment 1 , is complicated by several factors: if done manually, assignment is labor-intensive, time-consuming and fault-prone; moreover, for open source projects, it is difficult to keep track of active developers and their expertise. Identifying the right developer for fixing a new bug is further aggravated by growth, e.g., as projects add more components, modules, developers and testers [6] , the number of bug reports submitted daily increases, and manually recommending developers based on their expertise becomes difficult. An empirical study by Jeong et al. [7] reports that, on average, the Eclipse project takes about 40 days to assign a bug to the first developer, and then it takes an additional 100 days or more to reassign the bug to the second developer. Similarly, in the Mozilla project, on average, it takes 180 days for the first assignment and then an additional 250 days if the first assigned developer is unable to fix it. These numbers indicate that the lack of effective, automatic assignment and toss reduction techniques results in considerably high effort associated with bug resolution.. Effective and automatic bug assignment can be divided into two sub-goals: (1) assigning a bug for the first time to a developer, and (2) reassigning it to another promising developer if the first assignee is unable to resolve it, then repeating this reassignment process (bug tossing) until the bug is fixed. Our findings indicate that at least 93% of all "fixed" bugs in both Mozilla and Eclipse have been tossed at least once (tossing path length ≥ 1). Ideally, for any bug triage event, the bug should be resolved in a minimum number of tosses.. In this paper, we explore the use of machine learning toward effective and automatic bug assignment along three dimensions: the choice of classification algorithms, the software process attributes that are instrumental to constructing accurate prediction models, and the efficiency-precision trade-off. Our thorough exploration along these dimensions have lead us to develop techniques that achieve high levels of bug assignment accuracy and bug tossing reduction.. Similar to prior work, we test our approach on the fixed bug data sets for Mozilla and Eclipse. Our techniques achieve a bug assignment prediction ac-curacy of up to 85% for Mozilla and 86% for Eclipse. We also find that using our approach reduces the length of tossing paths by up to 86% for correct predictions and improves the prediction accuracy by up to 10.78 percentage points compared to previous approaches. We demonstrate that on average, the highest prediction accuracy is achieved using a Naïve Bayes classifier, with products/components as attributes, with bug triaging graphs, and with incremental learning (aka intra-fold updates) as shown in Figure 1 . We then follow a standard machine learning ablative analysis:. 2 we take our best case (top of the figure) and unilaterally vary the underlying attributes to show their relative importance in Section 5-the corresponding subsections are shown on the bottom of the figure. The primary goal of our work is to find the optimal set of machine learning techniques (classifiers, features, tossing graphs and incremental learning) to improve bug assignment accuracy in large projects and we show this optimal set for our data sets, Mozilla and Eclipse. The optimal set of techniques we report can change with changes in data sets for the same project or across other projects, or with changes in the underlying supervised learning algorithm and we address these issues as potential threats to validity of our approach in Section 6.. We now proceed to presenting the three main contributions of this work.. Wide range of classification algorithms. Machine learning is used for recommendation purposes in various areas such as climate prediction, stock market analysis, or prediction of gene interaction in bioinformatics [8] . Machine learning techniques, in particular classifiers, 3 have also been employed earlier for automating bug assignment. These automatic bug assignment approaches [9, 10, 11, 12] use the history of bug reports and developers who fixed them to train a classifier. Later, when keywords from new bug reports are given as an input to the classifier, it recommends a set of developers who have fixed similar classes of bugs in the past and are hence considered potential bugfixers for the new bug. Prior work that has used machine learning techniques for prediction or recommendation purposes has found that prediction accuracy depends on the choice of classifier, i.e., a certain classifier outperforms other classifiers for a specific kind of a problem [8] . Previous studies [7, 9, 10, 11] only used a subset of text classifiers and did not aim at analyzing which is the best classifier for this problem. Our work is the first to examine the impact of multiple machine learning dimensions (classifiers, attributes, and training history) on prediction accuracy in bug assignment and tossing. In particular, this is the first study in the area of bug assignment to consider, and compare the performance of, a broad range of classifiers along with tossing graphs: Naïve Bayes Classifier, Bayesian Networks, C4.5 and Support Vector Machines.. Effective tossing graphs. Jeong et al. [7] have introduced tossing graphs for studying the process of tossing, i.e., bug reassignment; they proposed automating bug assignment by building bug tossing graphs from bug tossing histories. While classifiers and tossing graphs are effective in improving the prediction accuracy for assignment and reducing tossing path lengths, their accuracy is threatened by several issues: outdated training sets, inactive developers, and imprecise, single-attribute tossing graphs. Prior work [7] has trained a classifier with fixed bug histories; for each new bug report, the classifier recommends a set of potential developers, and for each potential developer, a tossing graphwhose edges contain tossing probabilities among developers-is used to predict possible re-assignees. However, the tossing probability alone is insufficient for recommending the most competent active developer (see Section 4.6.3 for an example). In particular, in open source projects it is difficult to keep track of active developers and their expertise. To address this, in addition to tossing probabilities, we label tossing graph edges with developer expertise and tossing graph nodes with developer activity, which help reduce tossing path lengths significantly. We demonstrate the importance of using these additional attributes in tossing graphs by performing a fine-grained per-attribute ablative analysis which reveals how much each attribute affects the prediction accuracy. We found that each attribute is instrumental for achieving high prediction accuracy, and overall they make pruning more efficient and improve prediction accuracy by up to 22% points when compared to prediction accuracy obtained in the absence of the attributes.. Accurate yet efficient classification. Anvik's dissertation [13] has demonstrated that choosing a subset of training data can reduce the computation time during the classification process, while achieving similar prediction accuracies to using the entire data set; three methods-random, strict and tolerant, were employed for choosing a subset of training data set as we explain in Section 2. In our work, in addition to classification, we also use a probabilistic ranking function based on bug tossing graphs for developer recommendation. Since bug tossing graphs are time-sensitive, i.e., tossing probabilities change with time, the techniques used by Anvik are not applicable in our case (where bug reports were not sorted by time for selection). Therefore, in this paper, we propose to shorten the time-consuming classification process by selecting the most recent history for identifying developer expertise. As elaborated in Section 5.7 we found that by using just one third of all bug reports we could achieve prediction accuracies similar to the best results of our original experiments where we used the complete bug history. Therefore, our third contribution in this paper is showing how, by using a subset of bug reports, we can achieve accurate yet efficient bug classification that significantly reduces the computational effort associated with training.. Our paper is structured as follows. In Section 2 we discuss prior work and how it relates to our approach. In Section 3 we define terms and techniques used in bug assignment. In Section 4 we elaborate on our contributions, techniques and implementation details. We present our experimental setup and results in Section 5. Finally, we discuss threats to validity of our study in Section 6. Machine learning and tossing graphs have proved to be promising for automating bug assignment. In this paper we lay the foundation for future work that uses machine learning techniques to improve automatic bug assignment by examining the impact of multiple machine learning dimensions-learning strategy, attributes, classifiers-on assignment accuracy.. We used a broad range of text classifiers and found that, unlike many problems which use specific machine learning algorithms, we could not select a specific classifier for the bug assignment problem. We show that, for bug assignment, computationally-intensive classification algorithms such as C4.5 and SVM do not always perform better than their simple counterparts such as Naïve Bayes and Bayesian Networks. We performed an ablative analysis to measure the relative importance of various software process attributes in prediction accuracy. Our study indicates that to avoid the time-consuming classification process we can use a subset of the bug reports from the bug databases and yet achieve stable-high prediction accuracy.. We validated our approach on two large, long-lived open-source projects; in the future, we plan to test how our current model generalizes to projects of different scale and lifespan. In particular we would like to find if the classifier preference should change as the project evolves and how source code familiarity of a developer could be used as an additional attribute for ranking developers. Similarly, when we assign tossing probabilities, we only consider the developer who could finally fix the bug. However, it is common that developers contribute partially to the final patch in various ways. For example, when a bug is assigned to a developer, he might provide insights and add notes to the bug report instead of actually fixing the bug; in fact, there are contributors who provide useful discussions about a bug in the comment sections of a bug report who are never associated with the fixing process directly. These contributions are not considered in our ranking process, though they would significantly help in understanding contributor expertise and role in the software development community. Quantifying how these useful insights (or contribution) can be attributed towards the bug-fix based expertise of a contributor has the potential of further improving the triaging process. We also intend to test our approach on proprietary software where developer expertise, role, and contributions are more clearly defined. In Figure 7 we compare our approach to previous techniques. Initial work in this area (Figure 7(a) ) used classifiers only [9, 10, 11, 12] ; more recent work by Jeong et al. [7] (Figure 7(b) ) coupled classifiers with tossing graphs. Our approach (Figure 7(c) ) adds fine-grained incremental learning and multi-feature tossing graphs. Our algorithm consists of four stages, as labeled in the figure: (1) initial classifier training and building the tossing graphs, (2) predicting potential developers, using the classifier and tossing graphs, (3) measuring prediction accuracy, (4) updating the training sets using the bugs which have been already validated, re-running the classifier and updating the tossing graphs. We iterate these four steps until all bugs have been validated. We maintain a list of all developers and their history of bug fixes. Each developer D has a list of product-component pairs {P, C} and their absolute count attached to his or her profile. A sample developer profile is shown in Table 4 , e.g., developer D 1 has fixed 3 bugs associated with product P 1 and component C 2 . This information is useful beyond bug assignments; for example, while choosing moderators for a specific product or component it is a common practice to refer to the developer performance and familiarity with that product or component. We used Mozilla and Eclipse bugs to measure the accuracy of our proposed algorithm. We analyzed the entire life span of both applications. For Mozilla, our data set ranges from bug number 37 to 549,999 (May 1998 to March 2010). For Eclipse, we considered bugs numbers from 1 to 306,296 (October 2001 to March 2010). Mozilla and Eclipse bug reports have been found to be of high quality [7] , which helps reduce noise when training the classifiers. We divided our bug data sets into 11 folds and executed 10 iterations to cover all the folds.. Data collection. We used the bug reports to collect four kinds of data:. 1. Keywords: we collect keywords from the bug title, bug description and comments in the bug report. 2. Bug source: we retrieve the product and component the bug has been filed under from the bug report. 3. Temporal information: we collect information about when the bug has been reported and when it has been been fixed. 4. Developers assigned: we collect the list of developer IDs assigned to the bug from the activity page of the bug and the bug routing sequence.

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


Front Propagation in Random Media: From Extremal to Activated Dynamics Front propagation in a random environment is studied close to the depinning threshold. At zero temperature we show that the depinning force distribution exhibits a universal behavior. This property is used to estimate the velocity of the front at very low temperature. We obtain a Arrhenius behavior with a prefactor depending on the temperature as a power law. These results are supported by numerical simulations. Front propagation in a random environment has in recent years become a generic problem describing the motion of interfaces as different as magnetic domain walls [1] , wetting [2] or fracture fronts [3] . In all cases the balance between a roughening effect due to the quenched random environment and the smoothing effect of the elastic interactions leads to a rich phenomenology. At zero temperature one observes a depinning transition: a threshold force is required for unlimited motion. When the front is driven at a force close to the threshold, one observes spatio-temporal organization, the front roughness exhibits self-affine correlations and the critical exponents characterising the propagation of the front can be shown to depend on the nature of the elastic interactions [4] . At finite temperature the dynamics is controlled by thermal activation and a creep regime characterized by a stretched exponential dependence of the velocity on the driving force has been predicted by scaling [5] or renormalisation [6] arguments. This creep regime has been experimentally observed in weak pinning conditions for the propagation of a magnetic domain wall [1] .. In the following we consider the case of strong pinning, we first give results obtained in the framework of an extremal dynamics focusing on the depinning force distribution in the vicinity of the macroscopic depinning threshold. We then consider the thermally activated propagation of a front driven at a constant force and we show that at low temperature the knowledge of the depinning force distribution leads to a simple Arrhenius regime with a prefactor that depends on the temperature as a power law. To illustrate these results we present in the following numerical simulations performed with two different elastic interactions: Laplacian (corresponding to the motion of magnetics walls or fluid invasion in a Hele-Shaw cell) and long range elasticity (which corresponds to the propagation of a wetting or a fracture front).

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


A Galerkin least-square stabilisation technique for hyperelastic biphasic soft tissue An hyperelastic biphasic model is presented. For slow-draining problems (permeability less than 1×10 −2 mm 4 N −1 s −1 ), numerical instabilities in the form of non-physical oscillations in the pressure field are observed in 3D problems using tetrahedral Taylor-Hood finite elements. As an alternative to considerable mesh refinement, a Galerkin least-square stabilization framework is proposed. This technique drastically reduces the pressure discrepancies and prevents these oscillations from propagating towards the centre of the medium. The performance and robustness of this technique are demonstrated on a 3D numerical example. The theory of porous media (TPM) is a powerful and yet simple tool to model multi-phase media, primarily comprising a solid and a fluid (which are referred to as "constituents"). Due to its modularity, this theory also represents a practical framework to include other effects such as mass exchange, chemical reactions and electrochemical phenomena. There is no restriction as to which material models can be used, e.g. anisotropy or viscosity and is therefore well suited for the analysis of hydrogels, polymeric foams and hydrated biological soft tissues (e.g. cartilage and intervertebral disc).. The concepts behind the TPM find their roots in diffusion and soil mechanics problems formulated in the nineteenth century (for historical developments, see [3] and [9] ). The TPM is a homogenized macroscopic representation of the porous media. It is a continuum-based model which fully couples the fluid and the solid (see Fig. 1 ). It overcomes the difficulty of obtaining an accurate geometrical description of the microstructure by using the concept of volume fractions to "smear" the constituent properties over a control space to obtain properties of the overall mixture. This is described in the following section. The authors have employed TPM in the development of an hyperelastic biphasic swelling model for modelling the intervertebral disc. This application illustrates slow-draining problems, where a porous medium with low permeability (in the range 1×10 −2 −1×10 −3 mm 4 N −1 s −1 ) is rapidly loaded. Such low permeabilities are typical for soft tissues (e.g. cartilage, brain tissue), mortar or homogeneous clays ( [2] , [13] , [17] ).. This model has been implemented in a finite element framework, employing Taylor-Hood (quadratic shape functions for the solid displacement, linear shape functions for the pressure) tetrahedral elements, aiming to fulfil the inf-sup condition (see [6] and [5] ). However, numerical instabilities manifest in the form of non-physical oscillations in the pressure field, which is a shortcoming already observed in the past (see for example [16] for a recent review of biological applications). Vermeer and Verruijt [20] explain that these instabilities occur because loads applied to free-flow boundary conditions may lead to singularities in the derivatives of the pressure field. They also derive a lower bound critical time-step for one-dimensional problems, suggesting the requirement for large time-steps to overcome this issue, often incompatible with fast loading rates.. Several stabilisation techniques have been proposed in the context of Biot's consolidation problems for small deformations (e.g. [12] using least-squares mixed finite element methods, and [1] by perturbation of the flow equation). The current work proposes to stabilize the pressure oscillations in the context of TPM for finite deformation problems, using a Galerkin Least-Square (GLS) formulation based on [19] . In order to focus only on the stabilization aspect, only a biphasic mixture is considered, that is a porous medium composed of two constituents α: an isotropic, non viscous hyperelastic solid (α = S) and an ideal fluid (α = F ). It was observed that an hyperelastic biphasic model, implemented in a finite element framework with Taylor-Hood tetrahedral elements, exhibits non-physical pressure oscillations for low permeabilities. A Galerkin least-square formulation was derived for finite deformations in order to stabilise these oscillations.. In the context of constant permeability and near to uni-axial fluid flow, the current formulation shows good results. It eliminates the spurious oscillations for most meshes (and damp the oscillations for others meshes) and also prevents these oscillations from propagating towards the centre of the medium as reported for very coarse meshes. The solution scheme proved to be robust when tested against various mesh densities, permeabilities, loading rates, compressive strains and time steps. It is also worth mentioning that the benefits of this formulation come at minimal computational cost, as no additional degrees of freedom are required.. For more complex fluid flow situations, information regarding the fluid flow directionality should be included in the derivation of the element's characteristic size. In [19] , this has been considered for 2D and for 3D brick elements. It will prove more challenging for 3D tetrahedral elements. For extension to strain-dependent permeability, derivation of the stabilisation terms is straightforward but would result in a non-symmetrical system that would be computationally more expensive to solve.

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


Coevolution of intelligent agents using cartesian genetic programming A coevolutionary competitive learning environment for two antagonistic agents is presented. The agents are controlled by a new kind of computational network based on a compartmentalised model of neurons. The genetic basis of neurons is an important [27] and neglected aspect of previous approaches. Accordingly, we have defined a collection of chromosomes representing various aspects of the neuron: soma, dendrites and axon branches, and synaptic connections. Chromosomes are represented and evolved using a form of genetic programming (GP) known as Cartesian GP. The network formed by running the chromosomal programs, has a highly dynamic morphology in which neurons grow, and die, and neurite branches together with synaptic connections form and change in response to environmental interactions. The idea of this paper is to demonstrate the importance of the genetic transfer of learned experience and life time learning. The learning is a consequence of the complex dynamics produced as a result of interaction (coevolution) between two intelligent agents. Our results show that both agents exhibit interesting learning capabilities. In this paper we present a coevolutionary competitive learning environment in which two agents struggle to achieve Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. GECCO'07, July 7-11, 2007 tasks and survive in a predator-prey relationship [26] . These agents are controlled by a new kind of computational network inspired by the biological neurons. Agents have a health which is related to their actions and encounters in a grid-based environment. The first agent increases its health (and consequently its fitness) by avoiding deleterious and attaining beneficial encounters. While the opposing agent increases its health solely by direct antagonistic encounters with the first agent. Paredis describes this type of fitness as 'life-time fitness evaluation' and discusses how this 'arms race' provides a strong driving force toward complexity [25] .. The computational network possesed by each agent is based on a compartmentalised model of neural functions based on neuroscience. In this model we have idealised seven neural functions which we have encoded as chromosomes (see section 4.4). These represent various aspects of the neuron: soma, dendrites and axon branches, and synaptic connections. The collection of chromosome (forming the genotype) is encoded and evolved using a well known GP technique, Cartesian Genetic Programming (CGP) [9, 10] . The neurons are placed in a two dimensional grid. Neurite branches are allowed to grow and shrink, and communicate with each other via synapses. Dendrites [8] , synaptic dynamics [7] and synaptic communication have been included to enhance the capabilities of the computational network. The network we described has the potential virtue that it is autonomous in the sense that when the compartmentalised chromosomal programs are run a network of neurons, neurites and synapses grows in response to its own internal dynamics and the agents environmental experiences. Stanley and Miikkulainen acheive complexification by the incremental elaboration of solutions through adding new neural structures (i.e. neurons and connections) [24] . However our computational network can 'complexify' itself in a way inspired by the way the brain complexifies itself without any change in genetic code.. One of the difficulties one faces at the outset in attempting to create a dynamic computational model inspired by neuroscience is that as it stands, the internal dynamics of biological neurons are too complicated to be modeled in a machine learning technique. However, we took the view that the biology of neurons (i.e. their gross morphology and connectivity) is sufficiently well understood [22] , [20] to allow us to identify essential sub-systems (and their inputs and outputs) that we must attempt to evolve in order to achieve a computational equivalent. Conventional models of neural networks do not consider the genetics of neurons and the development (as in biology) of a mature network during learning. Instead, they are dominated by a static connectionist view of the brain. However, Genetic Programming (GP) offers the capability to represent neural programs and the transfer of genetic changes from generation to generation. GP has been shown to be able to solve problems of this type in the absence of a fixed model [3] and often these solutions are not fragile and show unexpected emergent behaviours such as self-assembly and self-repairability [11] , [12] which are natural properties of living systems. Thus GP, in principle, provides us with a means to represent complex neuron 'engines' that can be evolved to exhibit the properties of real neural systems, without the restrictions of a theoretical model of these systems. We have described co-evolutionary competitive learning environment in which the neuron-inspired computational networks of two antagonistic agents grow and change in response to their behaviour, interactions with each other, and the environment. We found that the agents can learn from their experiences and in some cases appear to build a kind of map of their environment. We used a technique called Cartesian Genetic Programming to encode and evolve seven computational functions inspired by the function of the neuron. In future work, we plan to evaluate this approach in richer and more complicated environments. The eventual aim is to see if it is possible to evolve a general capability for learning.

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


The Kernel of Maximum Agreement Subtrees Abstract-A Maximum Agreement SubTree (MAST) is a largest subtree common to a set of trees and serves as a summary of common substructure in the trees. A single MAST can be misleading, however, since there can be an exponential number of MASTs, and two MASTs for the same tree set do not even necessarily share any leaves. In this paper, we introduce the notion of the Kernel Agreement SubTree (KAST), which is the summary of the common substructure in all MASTs, and show that it can be calculated in polynomial time (for trees with bounded degree). Suppose the input trees represent competing hypotheses for a particular phylogeny. We explore the utility of the KAST as a method to discern the common structure of confidence, and as a measure of how confident we are in a given tree set. We also show the trend of the KAST, as compared to other consensus methods, on the set of all trees visited during a Bayesian analysis of flatworm genomes. P HYLOGENY inference done on genetic data using maximum parsimony, maximum likelihood, and Bayesian analysis usually yields a set of most likely trees (phylogenies). A typical approach used by biologists to discern the commonality of the trees is to apply a consensus method which yields a single summary tree containing edges that are well represented in the set. For example, the majority rules consensus tree contains only the edges (bipartitions of the leaf set) that exist in a majority of input trees, and is in some sense the optimal balance between including edges that are false, and including edges that are true [2] . Consensus methods are also commonly used for their original purpose [3] ; they summarize the information provided from different data sets, as in the case when gene trees from different genes provide conflicting phylogenies. There are other uses [4] but these are the two that we consider in this paper.. If one desires a more conservative summary, they may use the strict consensus tree, which has an edge if and only if the edge exists in all of the input trees. Yet even for this extremely conservative consensus method, there has been debate as to its validity and the conditions under which it should be used [5] , [6] , [7] . In particular, Barrett et al. [5] showed an example where a parsimony analysis of two data sets yields a consensus tree that is at odds with the tree obtained by combining the data. Nelson [6] replied with an argument that the error was not the act of taking the consensus, but the act of pooling the data.. The issue at the heart of this debate is, essentially, that of wandering or rogue leaves (taxa). Indeed, one or many leaves appearing in different locations of otherwise identical trees have created the problems noticed by Barrett et al., and can also reduce the consensus tree to very few, if any, internal edges. On the other hand, at the time of this debate, Finden and Gordon [8] had already characterized Maximum Agreement SubTrees (MASTs): maximum cardinality subsets of the leaves for which all input trees agree. By calculating a MAST, one avoids Barrett's issue because all MASTs agree with the parsimonious tree they computed on the combined data. As we will see, a single MAST can be misleading however, as there can exist two MASTs (on a single set of trees) which share almost no leaves. Further, there are potentially an exponential (in the number of leaves) number of MASTs for a single set of trees [9] . For Barrett's example we will see that our new method appropriately excludes the contentious part of the tree, and so may be more fit than traditional consensus methods for comparing trees obtained from different analyses.. Wilkinson was the first to directly describe the issues surrounding rogue leaves and develop an approach to try to combat them [4] . Since then, a large body of work by Wilkinson and others has grown on the subjects of finding a single representative tree [4] , [10] , [11] , [12] , [13] , [14] or something other than a tree (forest, network, etc.) [15] , [16] , [17] , [18] , [19] . A full review of this work is out of the scope of this paper so we refer the reader to the chapters of Bryant [20] or Bonizzoni et al. [21] , the earlier work of Wilkinson [4] , [10] , and Pattengale et al. [14] . Despite the myriad of options we notice a distinct lack of an efficiently computable base-line method for reporting subtrees of high confidence; a method analogous to the strict consensus, but less susceptible to rogue leaves.. Thus, we introduce the Kernel Agreement SubTree (KAST) to summarize the information shared by all (potentially exponential) MASTs: the KAST is the intersection of all MASTs. Like the strict consensus, the KAST gives a summary of the common structure of highest confidence, except that it excludes the rogue leaves that confound traditional consensus methods. In other words, the strict consensus gives only the edges with 100 percent support of the input trees, while a MAST criterion gives a single subset of the leaves M, where all edges have 100 percent support, considering only those leaves. Where there may be many MASTs, the KAST is the unique subtree that has 100 percent support irrespective of the subset of leaves we consider, and may thus be considered a subtree of confidence.. The KAST has the benefits of having a simple definition, of summarizing the subtree of confidence by reporting a single tree, and unlike the other known subtree methods can be computed in polynomial time (when at least one input tree has bounded degree). Note that we do not use the term kernel in the machine learning sense (as in [22] ).. When speaking of a reconstruction method that produces many most probable trees, Barrett et al. [5] called for "conservatism" and suggests the use of the strict consensus. In Section 5, we show the utility of the KAST as a means to get a conservative summary of many most probable trees. We then show the utility of the KAST in the original setting of consensus methods: on trees obtained through different analyses. In each setting, we use the KAST not only to find subtrees of confidence, but as an indicator of randomness in the input trees. We then explore the trend of the KAST, as well as other commonly used consensus methods, on the set of phylogenies visited during a Bayesian analysis of flatworm phylogenies.. The paper is organized as follows: we continue by formally defining the problem in Section 1.1 and showing properties of the MAST and KAST in Section 1.2. We then present Bryant's algorithm for computing the MAST in Section 2, on which our algorithm to compute the KAST (Section 3) is based. Section 4 reports experimental values for the expected size of the KAST on various sets of trees generated at random while Section 5 shows how the KAST can be used to find subtrees of confidence, and report subsets of trees for which we are confident. We claim that the utility of the KAST is two-fold. The first is that the KAST is a safe summary of the subtree of confidence for a set of trees. The second is that the size of the KAST is correlated with how related the set of trees is. The KAST is not as susceptible to rogue leaves as the very conservative strict consensus, and is not as misleading as the MAST can be. Furthermore, unlike the other methods that attempt to Fig. 9 . The number of edges in the KAST, majority, and strict consensus trees on the k most frequent topologies visited in the last 9,000 iterations by PhyloBayes. Fig. 10 . The number of edges in the KAST, majority, and strict consensus trees on the k most frequent topologies visited in all 10,000 iterations by PhyloBayes.. characterize tree structure in the presence of rogue leaves, our measure is computable in polynomial time.. Eric Chen received the graduate degree in molecular biology and biochemistry from Simon Fraser University and worked on a bioinformatic analysis of the malaria parasites for his undergrad research project. He is currently working toward the master's degree in Dr. Sankoff's lab at the University of Ottawa, working on genome rearrangement studies.. Nicholas D. Pattengale received the PhD degree in computer science from the University of New Mexico in 2010. He is an algorithms researcher and software engineer at Sandia National Laboratories in Albuquerque, New Mexico. His research interests include computational molecular biology (primarily phylogenetics) has been in deriving efficient algorithms for phylogenetic postanalysis.. David Sankoff received the PhD degree in mathematics from McGill University, and has been a member of the Centre de recherches mathematiques in Montreal for many years. He currently holds the Canada Research Chair in mathematical genomics in the Mathematics and Statistics Department at the University of Ottawa, and is cross appointed to the Biology and the Computer Science Departments. His research interests include comparative genomics, particularly probability models, statistics, and algorithms for genome rearrangements.. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. We implemented the KAST from code that computes the MAST in the phylogenetic package RAxML [25] . In this section, we report empirical evidence about the expected size of the KAST and MAST under three different models. The first model builds a tree set T of random trees constructed through a birth/death process, while the second starts with a random birth/death tree and then incrementally adds new trees to the set, each a single Nearest Neighbor Interchange (NNI) move ( [26] , [27] ) from the last. This way we see how the expected sizes react to adding drastically dissimilar, or fairly similar trees to the set T . The birth/death process has parameters 1 for birth and 1/2 for death but is terminated when the desired number of leaves is reached (if it terminates before this, then the process is repeated). Fig. 3 shows that as the size of T (the tree set) increases, the size of the KAST decreases precipitously in the case of the birth/death model, whereas it decreases more gracefully in the case of the NNI model. Each plot is generated from an initial birth/death tree on 50 leaves, where new trees are added to the tree set according to the prescribed model. This process was repeated 10 times and the average is reported. Plots with various numbers of leaves are similar except that the curve is scaled on the "number of leaves" axis proportionately.. The third model starts with a tree set comprised of three trees, each with the same topology on 40 leaves. Rogue leaves are then introduced by placing a new leaf in a random location, independently in each of the three trees. Fig. 4 shows the average of 10 runs. The figure clearly shows that the size of the majority and strict consensus trees are very small in the presence of only a few rogue leaves. When only six rogue leaves are present, nearly a quarter of the edges of the original tree are lost on the majority consensus, whereas almost all are present in the KAST. On the other hand, the KAST maintains three quarters of all possible edges even when the number rogue leaves is equal to the number of leaves in the original topology.. With regards to the number of MASTs, the plots in Figs. 3 and 4 show an erratic curve while the curve for the KAST is stable, confirming that the phenomenon described in Property 1.4 is not a rarity.

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


Equalizer: A Scalable Parallel Rendering Framework Abstract-Continuing improvements in CPU and GPU performances as well as increasing multicore processor and cluster-based parallelism demand for flexible and scalable parallel rendering solutions that can exploit multipipe hardware accelerated graphics. In fact, to achieve interactive visualization, scalable rendering systems are essential to cope with the rapid growth of data sets. However, parallel rendering systems are nontrivial to develop and often only application specific implementations have been proposed. The task of developing a scalable parallel rendering framework is even more difficult if it should be generic to support various types of data and visualization applications and at the same time work efficiently on a cluster with distributed graphics cards. In this paper, we introduce a novel system called Equalizer, a toolkit for scalable parallel rendering based on OpenGL, which provides an application programming interface (API) to develop scalable graphics applications for a wide range of systems ranging from large distributed visualization clusters and multiprocessor multipipe graphics systems to single-processor single-pipe desktop machines. We describe the system architecture and the basic API, discuss its advantages over previous approaches, and present sample configurations and usage scenarios as well as scalability results. T HE continuing improvements in hardware integration lead to ever faster CPUs and GPUs, as well as higher resolution sensor and display devices. Moreover, increased hardware parallelism is applied in form of multicore CPU workstations, massive parallel supercomputers, or cluster systems. Hand in hand goes the rapid growth in complexity of data sets from numerical simulations, high-resolution 3D scanning systems, or biomedical imaging, which causes interactive exploration and visualization of such large data sets to become a serious challenge. It is thus crucial for a visualization solution to take advantage of hardwareaccelerated scalable parallel rendering. In this systems paper, we describe a new scalable parallel rendering framework called Equalizer that is aimed primarily at cluster-parallel rendering but works as well in a sharedmemory system. Cluster systems are the main focus because workstation graphics hardware is developing faster than high-end graphics (super-) computers can absorb new developments, and also because clusters offer a better costperformance balance.. Previous parallel rendering approaches typically failed in one of the following system requirements:. 1. generic application support, instead of special domain solution,. 2. scalable abstraction of the graphics layer, 3. exploit existing code infrastructure, such as proprietary scene graphs, molecular data structures, levelof-detail (LOD), and geometry databases. To date, generic and scalable parallel rendering frameworks that can be adopted to a wide range of scientific visualization domains are not yet readily available. Furthermore, flexible configurability to arbitrary cluster and display wall configurations has also not been addressed in the past but is of immense practical importance to scientists depending high-performance interactive visualization as a scientific tool. In this paper, we present Equalizer, which is a novel flexible framework for parallel rendering that supports scalable performance, configuration flexibility, is minimally invasive with respect to adapting existing visualization applications, and is applicable to virtually any scientific visualization application domain.. The main contributions that Equalizer introduces in a single parallel rendering system and which are presented in this paper are given as follows:. 1. novel concept of compound trees for flexible configuration of graphics system resources, 2. easy specification of parallel task decomposition and image compositing choice through compound tree layouts, 3. automatic decomposition and distributed execution of rendering tasks according to compound tree, 4. support for parallel surface as well as transparent (volume) rendering through z-visibility as well as -blending compositing, 5. fully decentralized architecture providing network swap barrier (synchronization) and distributed objects functionality, 6. support for low-latency distributed frame synchronization and image compositing, 7. minimally invasive programming model.. Equalizer is open source, available under the LGPL license from http://www.equalizergraphics.com/, which allows it to be used both for open source and commercial applications. It is source-code portable and has been tested on Linux, Microsoft Windows, and Mac OS X in 32 and 64-bit modes using both little endian and big endian processors. In this paper, we have presented a state-of-the art distributed parallel rendering framework, which has been designed to be minimally invasive in order to facilitate the porting and development of real-world visualization applications. Equalizer has also been designed to be as generic as possible to support development of parallel rendering applications for different data types.. The major strengths of Equalizer are its flexible compound tree structures, fully distributed rendering support, as well as efficient compositing algorithms. Compound trees allow for easy specification of complex parallel task decomposition strategies, which are automatically implemented and executed by the Equalizer system. The parallel task decomposition and efficient compositing achieves great scalability for large data sets as demonstrated by the 225M polygonal mesh and 512 3 volume data sets. The fully distributed design supports effective network synchronization as well as shared objects and remote method invocation, which facilitate the development of decentralized applications.. Parallel rendering of transparent data is not only supported for sort-first configurations with applicationside back-to-front traversal but also for sort-last configurations given the data partitioning enables a back-to-front spatial ordering. This is demonstrated in our eVolve volume rendering application, which exploits the efficient -compositing compound provided in Equalizer.. Scalable sort-first rendering depends on a balanced distribution of the rendering cost across the different screen tiles. To achieve this, dynamic tile decomposition must be supported as well as some basic rendering cost heuristics for effective load balancing. These extensions pose interesting but also tractable challenges and are lined up for integration into Equalizer. In fact, efficient load balancing is an important aspect for parallel applications, and with its flexible task decomposition abilities, Equalizer offers the basic structural support that applications can readily use.. Equalizer efficiently supports but does not solve all problems of parallel rendering for the programmer. As mentioned before, load balancing is a focus area, as is an improved image compression and transport (readbacktransfer-draw) pipeline. While these two problems are going to be addressed directly in Equalizer, the data distribution and replication problem may be more of an application-dependent challenge, which will be supported by facilitating distributed objects.. The current Equalizer system already goes beyond just the necessary basic scalable rendering functionality. Nevertheless, we plan to extend the functionality to include also time-multiplex support, sophisticated automatic load balancing for sort-first and sort-last task decompositions, as well as an API to compress and mask the channels' screen frames for optimized image transport.. Aside from the core parallel rendering API, in the long term, we plan to improve the resource management capabilities of the server by enabling it to handle multiple applications, resource reservation, and cross-application load balancing. Furthermore, the creation of a transparent OpenGL layer with Equalizer as the back end could allow running existing applications alongside with parallel applications. Eventually, we will integrate remote visualization capabilities, for example by supporting the VNC protocol. The early fundamental concepts of parallel rendering have been laid down in [39] and [13] . A number of domainspecific parallel rendering algorithms and special-purpose hardware solutions have been proposed in the past; however, only few generic parallel rendering frameworks have been developed.

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