Patterns of temporal variation in online media Online content exhibits rich temporal dynamics, and diverse realtime user generated content further intensifies this process. However, temporal patterns by which online content grows and fades over time, and by which different pieces of content compete for attention remain largely unexplored.We study temporal patterns associated with online content and how the content's popularity grows and fades over time. The attention that content receives on the Web varies depending on many factors and occurs on very different time scales and at different resolutions. In order to uncover the temporal dynamics of online content we formulate a time series clustering problem using a similarity metric that is invariant to scaling and shifting. We develop the K-Spectral Centroid (K-SC ) clustering algorithm that effectively finds cluster centroids with our similarity measure. By applying an adaptive wavelet-based incremental approach to clustering, we scale K-SC to large data sets.We demonstrate our approach on two massive datasets: a set of 580 million Tweets, and a set of 170 million blog posts and news media articles. We find that K-SC outperforms the K-means clustering algorithm in finding distinct shapes of time series. Our analysis shows that there are six main temporal shapes of attention of online content. We also present a simple model that reliably predicts the shape of attention by using information about only a small number of participants. Our analyses offer insight into common temporal patterns of the content on the Web and broaden the understanding of the dynamics of human attention. Online information is becoming increasingly dynamic and the emergence of online social media and rich user-generated content further intensifies this phenomena. Popularity of various pieces of content on the Web, like news articles [30] , blog posts [21, 27] , Videos [10] , posts in online discussion forums [4] and product reviews [13] , vary on very different temporal scales. For example, content on micro-blogging platforms, like Twitter [15, 34] , is very volatile, and pieces of content become popular and fade away in a matter of hours. Short quoted textual phrases ("memes") rise and decay on a temporal scale of days, and represent the integral part of the "news cycle." [22] Temporal variation of named entities and general themes (like, "economy" or "Obama") exhibits variations at even larger temporal scale [3, 14, 31] .. However, uncovering patterns of temporal variation on the Web is difficult because human behavior behind the temporal variation is highly unpredictable. Previous research on the timing of an individual's activity has reported that human actions range from random [26] to highly correlated [6] . Although the aggregate dynamics of individual activities tends to create seasonal trends or simple patterns, sometimes collective actions of people and the effects of personal networks result in a deviation from trends. Moreover, all individuals are not the same. For example, some act as "influentials" [33] . The overall picture of temporal activity on the Web is even more complex due to the interactions between individuals, small groups, and corporations. Bloggers and mainstream media are both producing and pushing new content into the system [16] . The content then gets adopted through personal social networks and discussed as it diffuses through the Web. Despite extensive qualitative research, there has been little work about temporal patterns by which content grows and fades over time and by which different pieces of content compete for attention during this process. We explored temporal patterns arising in the popularity of online content. First we formulated a time series clustering problem and motivated a measure of time series similarity. We then developed K-SC , a novel algorithm for time series clustering that efficiently computes the cluster centroids under our distance metric. Finally, we improved the scalability of K-SC by using a wavelet-based incremental approach.. We investigated the dynamics of attention in two domains. A massive dataset of 170 million news documents and a set of 580 million Twitter posts. The proposed K-SC achieves better clustering than K-means in terms of intra-cluster homogeneity and intercluster diversity. We also found that there are six different shapes that popularity of online content exhibits. Interestingly, the shapes are consistent across the two very different domains of study, namely, the short textual phrases arising in news media and the hashtags on Twitter. We showed how different participants in online media space shape the dynamics of attention the content receives. And perhaps surprisingly based on observing a small number of adopters of online content we can reliably predict the overall dynamics of content popularity over time. All in all, our work provides means to study common temporal patterns in popularity and the attention of online content, by identifying the patterns from massive amounts of real world data. Our results have direct application to the optimal placement of online content [5] . Another application of our work is the discovery of the roles of websites which can improve the identification of influential websites or Twitter users [23] . We believe that our approach offers a useful starting point for understanding the dynamics in the online media and how the dynamics of attention evolves over time. There are two distinct lines of work related to the topics presented here: work on temporal dynamics of human activity, and research on the general time series clustering.. Temporal dynamics of human activity. Patterns of human attention [34, 35] , popularity [24, 30] and response dynamics [6, 10] have been extensively studied. Research investigated temporal patterns of activity of news articles [5, 30] , blogposts [3, 14, 21, 27] , Videos [10] and online discussion forums [4] . Our work here is different as we are not trying to find a unifying global model of temporal variation but rather explore techniques that allow us to quantify what kinds of temporal variations exist on the Web. In this light, our work aligns with the researches on Web search queries that find temporal correlation between social media [2] or queries whose temporal variations are similar each other [8] . After temporal patterns are identified, one can then focus on optimizing media content placement to maximize clickthrough rates [5] , predicting the popularity of news [30] or finding topic intensities streams [19] .. Time series clustering. Two key components of time series clustering are a distance measure [11] , and a clustering algorithm [32] . While the Euclidean distance is a classical time series distance metric, more sophisticated measures such as the Dynamic Time Warping and the Longest Common Subsequence [18] have also been proposed. Among clustering algorithms, the agglomerative hierarchical [20] and the K-means clustering [28] are frequently used. Due to its simplicity and scalability, K-means inspired many variants such as k-medoids [17] , fuzzy K-means [17] , and the Expectation Maximization based variant [28] . To address the issues caused by the high dimensionality of time series data, transforms such as Discrete Fourier Transform, Discrete Haar Wavelet Transform [7] , Principal Component Analysis and Symbolic Aggregate Approximation [25] have also been applied. First we apply our algorithm to a dataset of more than 172 million news articles and blog posts collected from 1 million online sources during a one-year period from September 1 2008 to August 31 2009. We use the MemeTracker [22] methodology to identify short quoted textual phrases and extract more than 343 million short phrases. To observe the complete lifetime of a phrase, we only keep phrases that first appeared after September 5. This step removes the phrases quoted repeatedly without a reference to a certain event, such as "I love you." After these preprocessing steps, we choose the 1,000 most frequent phrases and for each phrase create a time series of the number of mentions (i.e., volume) per unit time interval. To reduce rapid fluctuation in the time series, we apply Gaussian kernel smoothing.. Choosing the time series length. In principle the time series of each phrase contains L =8,760 elements (i.e., the number of hours in 1 year). However, the volume of phrases tends to be concentrated around a peak [22] , and thus taking such a long time series would not be a good idea. For example, we measure the similarity between two phrases that are actively quoted for one week and abandoned for the rest of the time. We would be interested mainly in the differences of them during their active one week. However, the differences in inactive periods may not be zero due to noise, and these small differences can dominate the overall similarity since they are accumulated over a long period. Therefore, we truncate the time series to focus on the "interesting" part of the time series.. To set the length of truncation, We measure how long the peak popularity spreads out: let T p be the time when the phrase reached peak volume, and let vp be the phrase volume at that time (i.e., number of mentions at hour Tp). For a threshold, xvp (for 0 < x < 1), we go back in time from Tp of a given phrases and record as T1(x) the last time index when the phrase's volume gets below xvp. Next, we go forward in time from Tp and mark the first time index when its volume gets below threshold as T2(x). Thus, T1(x) measures the width of the peak from the left, and T2(x) measures the width of the peak from the right. Figure 4 plots the median value of Tp − T1(x), T2(x) − Tp and T2(x) − T1(x) as a function of x. We note that most phrases maintain nontrivial volume for a very short time. For example, it takes only 40 hours for the phrase volume to rise from 10% of the peak volume, reach the peak, and fall again below 10% of the peak volume. In general, the volume curve tends to be skewed to the right (i.e., Tp − T1(x) and T2(x) − Tp are far for small x). This means that in general the volume of phrases rather quickly reaches its peak and then slowly falls off.. Given the above results, we truncate the length of the time series to 128 hours, and shift it such that it peaks at the 1/3 of the entire length of the time series (i.e., the 43th index).. Choosing the number of clusters. The K-SC algorithm, like all the other variants of K-means, requires the number of clusters to be specified in advance. Although it is an open question how to choose the most appropriate number of clusters, we measure how the quality of clustering varies with the number of clusters. We ran K-SC with a different number of clusters, and measured Hartigan's Index and the Average Silhouette [17] . Hartigan's Index necessarily agree with each other, but Figure 3 .1 suggests that a lower value of K gives better results. We chose K = 6 as the number of clusters. We also experimented with K ∈ {3, . . . , 12} and found that clusterings are quite stable. Even when K = 12, all of 12 clusters are essentially the variants of clusters that we find using K = 6 (refer to extended version of the paper [1] for details).

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


Optimal routing in double loop networks In this paper, we study the problem of finding the shortest path in circulant graphs with an arbitrary number of jumps. We provide algorithms specifically tailored for weighted undirected and directed circulant graphs with two jumps which compute the shortest path. Our method only requires O(log N ) arithmetic operations and the total bit complexity is O(log 2 N log log N log log log N ), where N is the number of the graph's vertices. This elementary and efficient shortest path algorithm has been derived from the Closest Vector Problem (CVP) of lattices in dimension two and with an 1 norm. A directed circulant graph or m-loop network C N ( j 1 , j 2 , . . . , j m ) with N vertices, labeled with Z N , the integers modulo N , and jumps j 1 , j 2 , . . . , j m is a graph in which each vertex n, 0 ≤ n ≤ N − 1, is adjacent to all the vertices n + j i mod N , with 1 ≤ i ≤ m. In contrast, an undirected circulant graph or 2m-loop network C N (± j 1 , ± j 2 , . . . , ± j m ) with N vertices, and jumps j 1 , − j 1 , j 2 , − j 2 , . . . , j m , − j m is a graph in which each vertex n, 0 ≤ n ≤ N − 1, is adjacent to all the vertices n ± j i mod N , with 1 ≤ i ≤ m (see Fig. 1 ). In fact, they are Cayley graphs of the finite cyclic group Z N . Throughout the paper we employ the term circulant graph or multi-loop network for both undirected and directed circulant graphs.. Multi-loop networks were first proposed in [33] for organizing multimodule memory services and have a vast number of applications in telecommunication networking, VLSI design, and distributed computation. Their properties, such as diameters and reliabilities, have been the focus of lots of research in computer network design, see for instance [3] [4] [5] 8, 10, 12, 13, 22, 28, 35] .. Every circulant graph can be associated to a lattice L which consists of the integer solutions (x 1 , . . . , x m ) ∈ Z m to the congruence: Given two vertices r and s, a path from r to s for an undirected circulant graph C N (± j 1 , ± j 2 , . . . , ± j m ) can be described by an integer vector x = (x 1 , . . . , x m ) ∈ Z m such that. And a shortest path x is a path with minimum 1 norm. By contrast, a path from r to s for the directed circulant graph C N ( j 1 , j 2 , . . . , j m ) can be described by an integer positive vector x = (x 1 , . . . , x m ) ∈ N m satisfying Eq. (2) , and a shortest path x is a path with minimum 1 norm.. Message routing is a basic function in communication networks. The problem in message routing is to find a route along which messages should be sent. The routing algorithm dictates token passing strategies and information on distributed networks. Of course, for every path x from vertex r to s we can design several message routing from source r to destination s. It is called an optimal message routing if every message is sent along a shortest path from its source vertex to its destination vertex.. For general graphs, finding a shortest path between two vertices is a well-known and important problem. Efficient polynomial time algorithms have been developed for various routing problems. However, for the family of circulant graphs, there is an important distinction to be made, and that concerns the natural input size to a problem. For an arbitrary graph, it is common to consider the input size to be O(N 2 ), which is the number of bits in its adjacency matrix. However, any circulant graph can be described by only m integers. In this representation, the input size is O(m log N ). Thus, polynomial time algorithms for general graphs may exhibit exponential complexity in the special case of circulant graphs, for this compact input representation.. The single-loop network (also called a ring network) is mathematically trivial. The case m = 2 is the most important and most studied multi-loop network, that is, undirected circulant graphs of degree four or distributed double loop networks and directed circulant graphs of degree two or double loop networks. They have been extensively studied (see the surveys [4, 21] ). When N is given as an unary input and the time complexity is measured in these terms, there are several shortest path algorithms for directed circulant graph of degree two, see for instance [8, 20, 21, 30, 34] . Typically, they dynamically compute the next vertex the message is to be sent to, and show that the route a message traverses is indeed a shortest path from its source to its destination. So, as a consequence they obtain algorithms that require O(N ) arithmetic steps or O(log N ) time for preprocessing and constant processing time at each node on the route. But the lower bound of the diameter for circulant graphs and directed circulant graphs is Ω ( √ N ) (see [4] ). So in both cases, they are exponential in the input size log N . The paper [7] shows an algorithm to compute a shortest path in the circulant graph C N (±1, ±h) (the so called chordal ring graphs) in O(h/g + log h) time, where g = gcd(h, N ). Obviously, it can also exhibit exponential time complexity for this input measure.. In [6] , the authors establish relations between several routing applications for undirected circulant graphs and the problem of finding the shortest vector (with 1 norm) in the above lattice. They show that the shortest path problem is NP-hard for this concise representation.. Throughout the paper, the term polynomial time algorithm means polynomial in m log N .. We remark in Section 2 that using the well-known extended Euclidean algorithm, we can compute on polynomial time a path c, not necessarily a shortest one, in an undirected circulant graph, then the problem of finding a shortest path is equivalent to the problem of finding a vector that is closest to −c in the lattice defined by Eq. (1) with respect to 1 norm. The paper [24] presents an algorithm for solving the Closest Vector Problem in a lattice with respect to 1 , 2 and ∞ norms. Moreover, fixed the lattice dimension, this algorithm is polynomial in the bit-size of the lattice basis.. On the other hand, we also remark in Section 2 that the problem of finding a shortest path for a directed circulant graph is equivalent to the problem of solving a suitable integer program with m + 2 constraints associated to the circulant graph. The paper [25] presents a polynomial time algorithm in fixed dimension for solving an integer program which is defined by a fixed number of constraints. So, fixed the number of jumps m, papers [24] and [25] provide polynomial time algorithms of finding a shortest path in undirected and directed circulant graphs.. So, using Integer Programming and/or Closest Vector Problems, we derive polynomial time algorithms for computing a shortest path in circulant graphs defined by a fixed number of jumps. In accordance with previous paragraphs, this simple observation could be considered as a minor contribution of the present paper. The problem with those related general methods is that sometimes they are quite involved and difficult to implement.. In this article, we give polynomial time deterministic algorithms to compute a shortest path between two vertices in any weighted circulant graph with N vertices and two jumps. Our algorithms are simple to implement, the proofs are also quite elementary, and they require O(log N ) arithmetic steps and the total bit operations is O(log 2 N log log N log log log N ). Both of them are based on Closest Vector Problems for 1 norm. The paper is divided into six sections. In Section 2 we introduce some known lattice and Integer Programming concepts and show the relation between the shortest path problem for circulant graphs and these well known mathematical problems. Section 3 is devoted to describe an algorithm for solving the two dimensional CVP for 1 norm. As a consequence of the two previous sections, we obtain an algorithm for finding a shortest path in any undirected circulant graph of degree four. Section 4 is dedicated to finding a shortest path in double loop networks. Then, Section 5 analyzes the problem in weighted circulant graphs. Finally, in Section 6 we present our conclusions and some open problems. We provide algorithms specifically tailored for finding a shortest path between to vertices of any weighted undirected and directed circulant graph with two jumps. Our algorithms are very efficient: we can find a shortest path instantaneously in a circulant graph with more 2 300 vertices using a C++ implementation in a PC computer with two processors of 1 GHz and 1 Gb of memory RAM.. We have introduced the concept of an extra-reduced basis. We think that this new concept may shed light on problems in this kind of lattice, and can be extended to higher dimensions in an appropriate way.. We also leave unresolved many interesting questions. Unfortunately, we do not know how to extend those results to more jumps.. Concerning applications, we regard the future interrelation of our algorithm to circulant graphs in order to consider different problems in distributed double loop networks, like fault tolerance, and explicitly describe the class of nonisomorphic optimal networks.

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


Mutation-driven

generation

of

unit

tests

and

oracles

To

assess

the

quality

of

test

suites,

mutation

analysis

seeds

artificial

defects

(mutations)

into

programs;

a

non-detected

mutation

indicates

a

weakness

in

the

test

suite.

We

present

an

automated

approach

to

generate

unit

tests

that

detect

these

mutations

for

object-oriented

classes.

This

has

two

advantages:

First,

the

resulting

test

suite

is

optimized

towards

finding

defects

rather

than

covering

code.

Second,

the

state

change

caused

by

mutations

induces

oracles

that

precisely

detect

the

mutants.

Evaluated

on

two

open

source

libraries,

our

µtest

prototype

generates

test

suites

that

find

significantly

more

seeded

defects

than

the

original

manually

written

test

suites.

How

good

are

my

test

cases?

This

question

can

be

answered

by

applying

mutation

analysis:

Artificial

defects

(mutants)

are

injected

into

software

and

test

cases

are

executed

on

these

fault-injected

versions.

A

mutant

that

is

not

detected

shows

a

deficiency

in

the

test

suite

and

indicates

in

most

cases

that

either

a

new

test

case

should

be

added,

or

that

an

existing

test

case

needs

a

better

test

oracle..

Improving

test

cases

after

mutation

analysis

usually

means

that

the

tester

has

to

go

back

to

the

drawing-board

and

design

new

test

cases,

taking

the

feedback

gained

from

the

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.

mutation

analysis

into

account.

This

process

requires

a

deep

understanding

of

the

source

code

and

is

a

non-trivial

task.

Automated

test

generation

can

help

in

covering

code

(and

thus

hopefully

detecting

mutants);

but

even

then,

the

tester

still

needs

to

assess

the

results

of

the

generated

executionsand

has

to

write

hundreds

or

even

thousands

of

oracles..

In

this

paper,

we

present

µtest,

an

approach

that

automatically

generates

unit

tests

for

object-oriented

classes

based

on

mutation

analysis.

By

using

mutations

rather

than

structural

properties

as

coverage

criterion,

we

not

only

get

guidance

in

where

to

test,

but

also

what

to

test

for.

This

allows

us

to

generate

effective

test

oracles,

a

feature

raising

automation

to

a

level

not

offered

by

traditional

tools..

As

an

example,

consider

Figure

showing

a

piece

of

code

from

the

open

source

library

Joda-Time.

This

constructor

sets

iLocalMillis

to

the

milliseconds

represented

by

day,

month,

and

year

in

the

values

array

and

milliseconds.

It

is

called

by

out

of

test

cases

for

LocalDate-branches

and

statements

are

all

perfectly

covered,

and

each

of

these

test

cases

also

covers

several

definition-use

pairs

of

iLocalMillis.

These

test

cases,

however,

only

check

whether

the

day,

month,

and

year

are

set

correctly,

which

misses

the

fact

that

comparison

between

LocalDate

objects

compare

the

actual

value

of

iLocalMillis.

Consequently,

if

we

mutate

the

last

argument

of

getDateTimeMillis

from

to

thus

increasing

the

value

of

iLocalMillis

by

this

seeded

defect

is

not

caught.

µtest

creates

a

test

case

with

an

oracle

that

catches

this

very

mutation,

shown

in

Figure

LocalDate

object

is

initialized

to

a

fixed

value

in

our

case).

Line

generates

a

DateTime

object

with

the

same

day,

month,

and

year

as

and

the

local

time

(fixed

to

again).

The

constructor

call

for

implicitly

calls

the

constructor

from

Figure

and

therefore

and

have

identical

day,

month,

and

year,

but

differ

by

millisecond

on

the

mutant,

which

the

assertion

detects..

By

generating

oracles

in

addition

to

tests,

µtest

simplifies

the

act

of

testing

to

checking

whether

the

generated

assertions

are

valid,

rather

than

coming

up

with

assertions

and

sequences

that

are

related

to

these

assertions.

If

a

suggested

assertion

is

not

valid,

then

usually

a

bug

has

been

found..

Summarizing,

the

contributions

of

this

paper

are:.

Mutant-based

unit

test

case

generation:

µtest

uses

a

genetic

algorithm

to

breed

method/constructor

call

sequences

that

are

effective

in

detecting

mutants..

Mutant-based

oracle

generation:

By

comparing

executions

of

a

test

case

on

a

program

and

its

mutants,

we

generate

a

reduced

set

of

assertions

that

is

able

to

distinguish

between

a

program

and

its

mutants..

Impact-driven

test

case

generation:

To

minimize

assessment

effort,

µtest

optimizes

test

cases

and

oracles

towards

detecting

mutations

with

maximal

impact-that

is,

changes

to

program

state

all

across

the

execution.

Intuitively,

greater

impact

is

easier

to

observe

and

assess

for

the

tester,

and

more

important

for

a

test

suite..

Mutant-based

test

case

minimization:

Intuitively,

the

shorter

a

test

case,

the

easier

it

is

to

understand.

We

minimize

test

cases

by

first

applying

a

multi-objective

approach

that

penalizes

long

sequences

during

test

case

generation,

and

then

we

remove

all

irrelevant

statements

in

the

final

test

case.

Figure

shows

the

overall

µtest

process:

The

first

step

is

mutation

analysis

(Section

and

a

partitioning

of

the

software

under

test

into

test

tasks,

consisting

of

a

unit

under

test

with

its

methods

and

constructors

as

well

as

all

classes

and

class

members

relevant

for

test

case

generation.

For

each

unit

a

genetic

algorithm

breeds

sequences

of

method

and

constructor

calls

until

each

mutant

of

that

unit,

where

possible,

is

covered

by

a

test

case

such

that

its

impact

is

maximized

(Section

We

minimize

unit

tests

by

removing

all

statements

that

are

not

relevant

for

the

mutation

or

affected

by

it;

finally,

we

generate

and

minimize

assertions

by

comparing

the

behavior

of

the

test

case

on

the

original

software

and

its

mutants

(Section

We

have

implemented

µtest

as

an

extension

to

the

Javalanche

mutation

system

(Section

We

demonstrate

its

effectiveness

by

applying

it

to

two

open

source

libraries

that

have

a

reputation

of

being

extensively

well-tested.

The

results

show

that

our

approach

can

be

used

to

extend

(and

theoretically,

replace)

the

manually

crafted

unit

tests

(Section

Section

closes

with

conclusions

and

future

work.

Mutation

analysis

is

known

to

be

effective

in

evaluating

existing

test

suites.

In

this

paper,

we

have

shown

that

mutation

analysis

can

also

drive

automated

test

case

generation.

The

main

difference

between

using

structural

coverage

and

mutation

analysis

to

guide

test

case

generation

is

that

a

mutation

does

not

only

show

where

to

test,

but

also

helps

in

identifying

what

should

be

checked

for.

In

our

experiments,

this

results

in

test

suites

that

are

significantly

better

in

finding

defects

than

the

(already

high-quality)

manually

written

test

suites..

The

advent

of

automatic

generation

of

effective

test

suites

has

an

impact

on

the

entire

unit

testing

process:

Instead

of

laboriously

thinking

of

sequences

that

lead

to

observable

features

and

creating

oracles

to

check

these

observations,

the

tester

lets

a

tool

create

unit

tests

for

her

automatically,

and

receives

two

test

sets:

One

revealing

general

faults

detectable

by

random

testing,

the

other

one

consisting

of

regular

unit

tests.

In

the

long

run,

finding

bugs

could

thus

be

reduced

to

the

task

of

checking

whether

the

generated

assertions

match

the

intended

behavior..

Although

our

µtest

experiences

are

already

very

promising,

there

is

ample

opportunity

to

improve

the

results

further:

For

example,

previously

generated

test

cases,

manual

unit

tests,

or

test

cases

satisfying

a

coverage

criterion

could

serve

as

a

better

starting

point

for

the

genetic

algorithm.

The

search

based

algorithm

can

be

much

optimized,

for

example

by

applying

testability

transformation

or

improving

the

fitness

function.

If

a

mutated

method

is

executed

but

the

mutant

is

not

executed,

then

a

local

optimization

on

the

parameters

of

that

method

call

could

possibly

lead

to

a

result

much

quicker

than

the

global

search

(for

example,

if

the

input

parameters

are

numeric).

It

is

even

conceivable

to

use

a

hybrid

approach

with

dynamic

symbolic

execution

for

this

task.

Finally,

adding

intelligent

string

handling

will

immediately

increase

the

applicability

to

a

wide

range

of

additional

libraries..

To

learn

more

about

our

work

on

mutation

testing,

visit

our

Web

site:.

µtest

generates

test

suites

and

oracles

that

find

significantly

more

seeded

defects

than

manually

written

test

suites..

Keep

in

mind,

though,

as

shown

in

Table

that

not

all

units

are

testable

with

µtest

as

discussed

in

Sections

and

Table

only

counts

mutants

of

testable

units.

In

both

libraries,

µtest

increases

the

mutation

score

when

combining

the

manually

and

automatically

generated

unit

tests,

which

shows

that

the

manual

tests

find

some

mutants

that

µtest

misses..

Although

µtest

applies

minimization

to

keep

the

test

cases

as

short

as

possible

and

the

number

of

assertions

small,

automatically

generated

test

case

are

mostly

not

as

easy

to

understand

as

manually

written

test

cases,

which

is

not

surprising

as

the

search

algorithm

can

combine

arbitrary

statements.

In

our

future

work,

we

shall

leverage

actual

usage

patterns

to

make

test

cases

more

similar

to

client

code.

Table

shows

that

on

average

automatically

generated

test

cases

are

longer

than

manually

generated

test

cases,

despite

the

minimization.

However,

the

manually

generated

test

cases

build

on

a

significant

code

base

of

shared

setup

methods:

Joda-Time

has

non-commenting

source

code

statements

of

general

test

code,

and

Commons-Math

has

statements.

This

code

is

re-used

in

many

test

cases

thus

comparison

with

the

automatically

generated

test

cases

is

difficult..

In

terms

of

numbers,

the

vast

majority

of

all

test

cases

have

at

least

one

assertion;

Table

shows

that

the

number

of

assertions

typically

is

around

which

due

to

the

assertion

minimization

is

slightly

less

than

for

manually

generated

test

cases.

As

shown

in

Figure

inspector

assertions

are

the

most

common

assertions,

followed

by

comparison

assertions.

Surprisingly,

primitive

assertions

only

make

a

small

share

of

all

assertions.

String

assertions

are

more

common

in

Joda-Time

than

in

Commons-Math,

as

Joda-Time

involves

a

number

of

string

operations.

Inspector

assertions

are

preferable

over

other

types

of

assertions,

as

they

are

a

means

to

talk

about

the

state

of

an

object

without

revealing

its

internals.

Comparing

string

representations,

on

the

other

hand,

might

reveal

internal

details

and

would

thus

result

in

assertions

that

are

not

proof

to

future

change

of

the

class..

Although

the

achieved

mutation

score

is

already

quite

high,

the

search

based

approach

offers

potential

for

optimization.

While

the

coverage

based

impact

measurement

nicely

guides

the

search

towards

assertions,

the

construction

of

call

sequences

to

reach

and

execute

mutations

has

a

very

rough

fitness

landscape.

This

could,

for

example,

be

improved

by

applying

a

chaining

approach

to

identify

relevant

method

calls

and

taking

object

states

into

account..

The

generalization

to

other

programming

languages

than

used

in

our

experiments

(Java)

depends

on

the

testabilityfor

example,

a

search

based

approach

as

used

by

µtest

would

be

quite

hopeless

on

an

untyped

language

such

as

Python,

unless

putting

in

a

major

effort

in

type

analysis.

The

results

should,

however,

generalize

to

comparable

languages

such

as

C#

or

C++.

To

learn

about

the

applicability

and

feasibility

of

the

presented

approach,

we

applied

µtest

to

two

open

source

libraries.

Test

case

generation

only

requires

Java

bytecode,

and

we

used

the

prototype

"out

of

the

box"

as

far

as

possible,

i.e.,

without

writing

test

helper

functions

and

adding

as

few

as

possible

constraints.

Minor

adaptations

were

only

necessary

to

avoid

calling

methods

with

nondeterministic

results

like

random

number

generators;

these

methods

are

easily

detectable

as

a

test

case

calling

such

a

method

will

achieve

an

unrealistically

high

mutation

score,

and

assertions

are

not

guaranteed

to

hold

on

the

original

program

either.

For

both

libraries

we

generated

complete

test

suites

with

µtest,

and

compared

them

with

the

already

existing

unit

tests.

The

population

size

of

the

genetic

algorithm

was

set

to

with

an

initial

test

case

length

of

statements,

and

evolution

was

performed

for

generations

for

each

run.

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


Domestic violence sentencing: coefficient to a natural process that already reduces recidivism simply as a function of aging Background: Research on domestic violence (DV) sentencing, post-conviction, has mostly focused on incarceration and re-education programs, ignoring more than a dozen other components of the criminal sentence. Therefore, little is known, overall, about the breadth of DV sentencing, antecedents that may shape the content of the sentence, and a possible relationship between the criminal sentence and a theorized natural process believed to significantly reduce DV recidivism simply as a function of aging. Results: Data from this empirical study (N = 1,810) reveals rates of female DV recidivism decrease by about 2.56% per year, between ages 22-61, and males by about 3.13% per year between ages 28-60. These data closely match Federal Bureau of Investigation rates for recidivism, by age and sex, for violent crime in general. The study also identified 16 sentencing components used by judges in DV cases. Logistic regression on data from a randomly selected subset (n = 366), using the 16 sentencing components as dichotomous outcomes, regressed against 49 antecedent variables, illuminated a number of factors that have a significant relationship with the content of individual DV sentences, including many extra investigative actions that police officers can operationalize when investigating DV crime. Conclusion: Confirmation of a natural process that diminishes rates of DV recidivism as a function of aging demonstrates the need to factor this effect into any equation designed to assess the effectiveness of DV sentencing, or re-education/treatment programs upon rates of recidivism. It also confirms that the natural process is an important part of the milieu in which the criminal sentence is operationalized. The results also demonstrate the need for police to thoroughly investigate all DV crime, and to list multiple charges whenever the facts support doing so, because doing so significantly raises rates of inclusion of several sentencing components. Little is known about the breadth of domestic violence sentencing components, or the natural process that may represent an important part of the milieu in which the DV criminal sentence is operationalized. The domestic violence criminal sentence may actually represent an attempt to apply pressure to the natural slope in order to significantly increase its negativity. Using empirical data the present study aims to correct a vacuum in the literature regarding the breadth of potential content of the DV criminal sentence, many of their significant antecedents, and to examine for the operation of a domestic violence age/violence potential effect. The present study responds to two fundamental questions: "Does the aging process negatively influence rates of domestic violence recidivism?", and, "What is the identity and frequency of occurrence of individual DV sentencing components, and their antecedents of significance?" As the results of this study have demonstrated, the answers to these questions should be considered together because the two processes, aging and criminal sentences, act upon the same outcome. So long as one assumes each item of a DV criminal sentence is intended to reduce recidivism, then the aging process should be seen as an important part of the milieu within which the DV criminal sentence is operationalized. In order to address the null hypothesis, the full data set (N = 1,810) was used. Figure 2 contains a graph that presents within group frequencies, by sex and age group, for individuals who were identified as a domestic violence suspect in a written police report.. As the graph demonstrates, females and males show a similarly diminishing longitudinal pattern, though for males the peak of violence is delayed by about 6-7 years compared to females. The maxima for females is, essentially, identical to the one seen in Figure 1 , it being about age 22, with female violence decaying to zero at about age 61. That rate of decline is 2.56% per year of age, making it identical to the one calculated from Figure 1 . However, for domestically violent males, a bimodal maxima is seen, and it presentation is delayed about 10 years, to about age 28, when compared to the maxima for males seen in Figure 1 . The end point for males is about the same in both figures, at age 60. The rate of change for males in Figure 2 is about 3.13% per year of age. For both males and females, once the onset of the natural reduction in recidivism has begun, an approximately linear pattern is seen; however, at points within these data one sees some interesting points of localized inflection.. Because these data demonstrate a number of close similarities to those seen in Figure 1 , including a very close parallel to the aggregated violence pattern, they are interpreted as fairly strong evidence that the ageviolence potential effect does, in fact, describe changes in the rates of domestic violence recidivism as well, according to age; therefore, the null hypothesis is rejected and the alternative explanation is accepted. In western systems of justice criminal defendants (people accused of crimes by the State) face the potential of trial, where they risk being found guilty on all charges and having the full set of sentencing options imposed upon them such as incarceration, fines, probation, and an order to attend some form of treatment, and so forth. The criminal sentence is an assembly of individual orders that may include punishment, rehabilitation, compensation, and conduct requirements. Arguably, the various sentencing components share a common goal: Reduction of the likelihood of criminal re-offending.. Many defendants may choose to negotiate a reduced sentence in exchange for a guilty plea to one or more of the crimes they are charged with having committed. Alschuler describes plea bargaining, what this type of negotiation is called, as "the exchange of official concessions for a defendant's act of self-conviction" (Alschuler 1979 ). In the United States 93-95% of all criminal cases in local and state courts, and 97% of all federal prosecutions are resolved through negotiation and not criminal trial (Bureau of Justice Statistics 2008; Sourcebook of Criminal Justice Statistics, 2002 Statistics, , 2004 United States Courts 2011 a ) . Once the defendant pleads guilty or is found guilty at trial, a sentence is imposed.

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


Application neutrality and a paradox of side payments Net neutrality, side payments, regulated public networks /0 12$%345&$132 Different issues have been raised in the context of the net neutrality debate. For Tim Berners-Lee 1 , it means that "if I pay to connect to the Net with a certain quality of service, and you pay to connect with that or greater quality of service, then we can communicate * A full version of this paper is available at [2].

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


Data consistency for P2P collaborative editing Peer-to-peer (P2P) networks are very efficient for distributing content. We want to use this potential to allow not only distribution but collaborative editing of this content. Existing collaborative editing systems are centralised or depend on the number of sites. Such systems cannot scale when deployed on P2P networks. In this paper, we propose a new model for building a collaborative editing system. This model is fully decentralised and does not depend on the number of sites. Currently, peer-to-peer systems demonstrated how they can ensure scalable content distribution. In their survey [4] , Androutsellis-Theotokis et al. wrote:. "Peer-to-peer content distribution systems rely on the replication of content on more than one node for improving the availability of content, enhancing performance and resisting censorship attempts.". We want to reuse these characteristics not only for content distribution but also for content editing. Currently, P2P networks mainly distribute immutable contents, we want to distribute updates on this content and manage collaborative editing on it. We are convinced that if we can deploy a group editor framework on a P2P network, we open the way for P2P content editing. It means that all existing collaborative editing applications such as CVS and Wiki can be redeployed on P2P networks and take advantage of availability improvements, performance enhancements and censorship resistance of P2P networks. For instance, Wikipedia [2] is currently a collaborative encyclopaedia that has collected more than 4,700,000 articles in more than 200 languages. Wikipedia has more than 50 million of page requests per day. 200,000 changes are made every day [1] . However, Wikipedia needs a costly infrastructure to handle the load. Hundreds of thousands of dollars are spent every year to fund the infrastructure. A P2P massive collaborative editing system would allow to distribute the service, tolerate failures, improve performances, resist to censorship and share the cost of the underlying infrastructure.. Collaborative editing systems such as CVS or Wikis are currently centralised and cannot be adapted to peer-to-peer networks. Collaborative systems based on the operational transformation approach [7, 23] can be decentralised.. However, existing algorithms such as GOTO [23] , ABT [16] and SOCT2 [21] rely on vector clocks to detect concurrent operations. OT approach supposes that each operation is immediately executed locally, stored in a local log and then broadcast to other sites in order to be re-executed and stored in their logs. A vector clocks is associated to each operation. A vector clocks [17] is an array of logical clocks, one clock per site. It is used to detect the happened-before relationship and therefore the concurrency between operation. It causes no problem if the number of sites is fixed and low but if the number of sites grows, the size of the vector clocks is unbounded. Thus, messages exchanged between sites will grow as well as the size of local operation. Also, the time efficiency of operation on vectors clocks will decline as vectors clocks grow. Clearly, vectors clocks prevent these algorithms to scale and represent a serious bottleneck for their deployment on P2P networks.. In this paper we propose a new model called WOOT for building group editors that is suitable for dynamic P2P systems. Compared to existing decentralised group editor models, the number of sites involved in group editing is not a variable.. The remainder of this paper is organised as follows: Section 2 describes the WOOT approach and details the consistency model. Section 3 presents a formal definition of WOOT. Section 4 discusses about the correctness of the WOOT algorithm. Section 5 compares with related previous works. Section 6 summarises the contributions of this paper and presents some perspectives. WOOT is group editor framework suitable for peer-topeer networks. P2P networks help group editors to function, scale and self organise in presence of a highly transient population of node, network and computer failures. Group editors allow P2P systems not only to distribute contents but also to edit contents.. Compared to decentralised distributed systems, WOOT does not require vector clocks to ensure convergence, intentions and causality.. WOOT is only a first step towards massive collaborative editing. It solves only the problem of data consistency on a P2P collaborative system. Many problems are now open: how to ensure security on these systems? how to provide awareness? how to enact collaborative processes? how to replicate just fragment of data? All these questions need answers before starting to port a system such as Wikipedia on a P2P network. In the last decade, the operational transformation approach [7, 24] revealed as a suitable control mechanism for maintaining consistency of shared data in collaborative editing. In this approach, local operations are executed immediately after their generation, whilst remote operations must be transformed regarding concurrently executed operations. Algorithms based on this approach can be classified mainly in two categories. The first category regroups algorithms such as SOCT4 [27] and FORCE [20] . These algorithms use a central server for exchanging and timing operations, and thus, they are not suitable for deploying a group editor on a peer-to-peer network. The second category includes algorithms that are completely decentralised such as SOCT2 [21] , GOTO [23] , LBT [15] and ABT [16] . In these algorithms, after an operation is generated at one site, it is broadcast to all other sites. This diffusion relies on a group multicast protocol which generally need to know all other sites involved in the collaboration. Moreover, in order to integrate in their natural order operations which are causally related, each operation is timed using a vector clocks. The size of a vector clocks is proportional to the number of sites in the group. Consequently, these algorithms are not appropriate for peer-to-peer networks due to the huge number of sites constituting the system and the fact a site never knows all other sites participating to the collaboration. On the contrary, WOOT does not use vector clocks, it maintains a unique identifier for every character that ever appears in the system. However, maintaining such unique identifier should not affect the scalability of the approach. An identifier has a constant size which is equal to the size of only one component of the vector clocks. Indeed, a unique identifier is one couple (numSite s , H s ), while a vector clocks is a vector of couples (numSitei, Hi) where 0 ≤ i < number of site. As a future work, we plan to study in more details the impact of using unique identifiers comparing to vectors clocks to confirm this assertion.. Nevertheless, it is worth to point out that propositions based on the operational transformation were the first work to discuss about preserving intentions of operations. In [24] , Sun et al. state that a consistency maintenance mechanism must ensure convergence of copies but also preserve the original effects of operations. Unfortunately, they did not define formally this criterion and did not provide any trail on how verifying if an algorithm preserves operations intentions. The model proposed by Li et al. [14] was the first proposition to define formally and explicitly the intentions of its operations. Our definition of local effect of our operations is quite similar to their definition -at all sites, a character will always be inserted after its previous character and before its next character -.. In collaborative editing, the Mark & Retrace technique [10] is the closest work to our proposal. This technique is based on two procedures executed consecutively: the retrace and range-scan procedures. The range-scan procedure is quite similar to our IntegrateIns procedure. Its role is to insert a character between its previous cp and next character cn while arranging it among characters that have been concurrently inserted or deleted between c p and c n . However, in the Mark & Retrace technique, an insert operation does not store the previous and next characters between which it will insert. It stores only the insert position. Consequently, the algorithm has to seek these two characters. This is done by the retrace procedure which is called when a remote operation has to be integrated. Its goal is to retrace the document's address space to the state at the time the operation was generated. Characters which were present at the generation time -including the ones which have been deleted afterwards -are marked effective, while all other characters are set ineffective. To time operations, a vector clocks is associated to each operation. The use of vector clocks is a weak point in large-scale systems such as peer-to-peer systems, and the necessity to execute the retracing procedure each time a remote operation is received is too costly. On the contrary, WOOT identifies in a unique manner each character, and, the insert operation stores the previous and the next characters between which the insertion has to be performed. These features restrain the retracing mechanism.. IceCube [11] is able to ensure convergence and intention preservation. But, in IceCube, concurrent operations are merged at one site. It means that all concurrent operations must be sent at one site for merging. Then, the merged log must be dispatched to all sites. Consequently, all sites must be connected during reconciliation and frozen until reconcil-iation is completed. These constraints are not compatible with peer-to-peer networks. Compared to IceCube, WOOT proposes a distributed merge. Each site merges its own copy as soon as operations are received. The result is independent of the reception order.. The Bayou system [25] was proposed to support collaboration among users who cannot be or decide not to be continuously connected. Operations are broadcast between site using an epidemic propagation protocol. It should make it suitable for deploying a collaborative application on a peerto-peer network. Unfortunately, in order to ensure convergence of copies, Bayou has to arrange eventually operations in the same order. To achieve this, it relies on a primary site that will enforce a global continuous order on a growing prefix of history. Using such a primary site may constitute a congestion point, and, anyway is not suitable in a peer-topeer system.. The Thomas' write rule [26] is heavily used to achieve convergence in system based on an epidemic propagation. To ensure scalability Thomas' write rule needs to implement the strategy of "Last Writer Wins". However, this strategy does not ensure intention preservation: the last update is applied while other concurrent updates are simply ignored. Consequently, it is not possible to build a collaborative editing system with Thomas' write rule.. CVS [5] is a popular configuration management tool. It relies on an optimistic replication algorithm to allow users working in isolation while ensuring convergence of copies. It also uses a central server that enforces a global continuous order on updates. For example, if n sites produce a change, during round 1 only one site will be able to publish its changes. During round 2 all other sites have to update their replica. During round 3, only one site will be able to commit and so on. Thus, convergence will be achieved in (2n − 1) rounds. Compared to CVS, WOOT converges in one round.. In summary, WOOT is an optimistic replication algorithm that ensures convergence and intention preservation. It requires no vector clocks contrary to most operational transformation based algorithms. Unlike IceCube, it relies on a distributed merge. Moreover, WOOT does not require a primary site as Bayou. Unlike systems based on Thomas' write rule, WOOT ensures intentions preservation. Finally, compared to CVS, WOOT converges in one round. As far as we are aware, all these characteristics make WOOT the only model suitable for deploying group editors on peer-to-peer networks.. However, WOOT retains tombstones to record deleted characters. So, the space overhead of tombstones grows indefinitely. We can use an expiration period for garbaging deleted characters but this method is unsafe. We can also use a two-phase protocol to purge safely the tombstones as in [19] but all sites must be alive for the algorithm to make progress. For now, we prefer to keep tombstones for enabling group undo. Group undo is an important feature for collaborative editing [22, 9] . Group undo allows not only to undo the last operation, but any operation in the executed log. It requires to keep tombstones at least for a long time. Anyway, we need an algorithm to garbage old deleted characters.

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


Improving abstract interpretations by combining domains This article considers static analysis based on abstract interpretation of logic programs over combined domains. It is known that analyses over combined domains provide more information potentially than obtained by the independent analyses. However, the construction of a combined analysis often requires redefining the basic operations for the combined domain. A practical approach to maintain precision in combined analyses of logic programs which reuses the individual analyses and does not redefine the basic operations is illustrated. The advantages of the approach are that (1) proofs of correctness for the new domains are not required and (2) implementations can be reused. The approach is demonstrated by showing that a combined sharing analysis—constructed from “old” proposals—compares well with other “new” proposals suggested in recent literature both from the point of view of efficiency and accuracy. 1 0 +~T 1 od ev T inc$ 1 + ; T T inc~1 ev od T dec~J- - T - T dec~1 ev od T div~-L 0 + - T div~1 T T T

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


An economic analysis of electronic secondary markets: installed base, technology, durability and firm profitability The Internet has spawned a number of partially structured electronic secondary markets, which enable the trading of secondary goods between consumers. Many of these, such as Usenet groups, or WWW sites for niche products, tend to be self-administering; however, there has been significant recent growth in the number of more general web-based markets of this kind. These electronic secondary markets, while facilitating reliable and liquid trade of used goods, could also have an impact on the desirability of new products, as well as products that are complementaryrcompatible to those traded. We present an economic framework for analyzing how these markets affect the demand for a primary product. We examine when it is optimal for a firm to operate a market of this kind, and when its presence is socially optimal. Surprisingly, we find that in a number of cases, the presence of these markets has a primary positive effect on the profitability of a new good; this leads us to conjecture that there will soon be a number of such trading forums operated by manufacturers of primary goods. We also find that in a majority of cases, it is feasible for a third-party intermediary to profitably operate such a market. Key parameters that affect the desirability of the market are the existing installed customer base, the cost of information technology, the durability of the products in question, their rate of technological obsolescence and the nature of customer preferences. q Commerce on the Internet has grown considerably over the last few years, and is projected to increase by many multiples from 1998 to 2002, both in terms Ž of sales revenues and number of participants see w x w x Refs. 1 or 2 for some recent Internet commerce . forecasts . The term electronic commerce has become a catch-all phrase to describe all buying and as Internet-based forum that allows buyers and sellers to trade used products by placing bids and offers on a channel that is commonly accessed by all participants in the market. It is a secondary market, since the products that are bought are not sold by the original maker of the product.. Usenet-based newsgroups are only one of the many fora that bring together buyers and sellers. Many educational institutions have their own electronic bulletin boards, as do many regional nonprofit organizations. In addition to the newsgroup-based facilities, there are also an increasing number of Web-based services, including Barter Net and netTrader. These resellers are often product-focused. Some Web-based services such as OnSale and CarPoint combine primary and secondary electronic markets. Further, we have observed that the participant volume in certain Usenet secondary markets has nearly doubled between December 1995 and December 1996. Driving this growth has been the rapid increase in the penetration of PC's and the ease of Ž transacting on the web made possible in part by popular software suites that integrate browsing, conferencing and creation of real time synchronous, shared contexts, like Netscape's Collabra software, which allow rich information specification and nego-. tiation possibilities . Forrester Research claims that the Internet provides a highly effective trading mechanism by giving buyers the ability to both determine their needs, and costlessly seek suppliers. Since search on an electronic medium is intrinsically less costly than physical search, this a significant benefit for buyers and sellers. w x Forrester Research 15 calls the Internet the fourth channel for exchanging information between parties to a transaction, such as suppliers, buyers, sellers and Ž intermediaries the other three channels being faceto-face communication, telephone communication . and mailings . The three factors Maney et al. cite as having driven the growth in commerce on the Net are all applicable to ESMs: 1. It removes telephonic time constraints, thereby making it possible for buyers and sellers to exchange information at any time. 2. It enables media that exceed the richness of catalogs and other printed material. 3. It provides individualized attention, much like a sales force.. In addition, electronic secondary markets offer advantages that distinguish them to a very significant extent from physical secondary markets; this difference is more than one of degree. When viewed against the backdrop of rapid technological advances, it becomes a difference of kind. In Section 2, we provide an overview of ESMs and their characteristics. We have explicitly modeled the economic effects of an electronic secondary market on firm profits and consumer surplus. Our key insights are summarized below.. Ž . 1 When a firm has a very high share of the potential consumer market and faces a high rate of technological obsolescence, the existence of an electronic secondary market will tend to have a negative impact on the profitability of the firm's sales of new goods.. Ž .. 2 However, in a significant fraction of situations, it is optimal for the manufacturer of a product or set of products to operate an electronic market which enables the trade of their used goods or components. Rather than cannibalizing sales of new goods, this can actually have a positive effect on the profits from new goods. This effect is positive even when the customers ignore the benefits from easier future sales-simply the existence of the market to sell current used products can benefit the firm.. Ž .. 3 The desirability of these markets from the firm's perspective is enhanced when: Ø the durability of their product is high, or Ø the rate at which they introduce new versions of their product is high, and Ø the share they have of the product market is higher. Ž . 4 The presence of these electronic forums are almost always optimal from the perspective of the consumer; hence, in cases where the firm does not have enough of an incentive to establish the market, we expect a third-party intermediary to run such a market. The remarkably high corporate valuations of sites such as eBay indicates that this has been recognized to some extent.. Ž . 5 The establishing of an ESM can improve a firm's competitive position in an oligopoly; hence, we expect that this will emerge as a new way that a firm can use information technology for competitive ( ) advantage in the near future; however, it is likely that only the first few movers will gain any competitive rents from this move.. Our current research includes explicitly modeling the effects of trading histories on the operation of the market, using a game-theoretic model. There is also the issue of imperfect correlation between the valuations of new and used goods, which can be captured by imposing a noise factor on our current model. This could also act as a proxy for quality variance in the used goods.. Finally, we will also investigate the relative merits of different trading mechanisms in ESM's; though determining a market clearing price is the only logical static solution, it appears that a dynamic model could involve interpersonal exchanges of information, and other market divisions, that could affect firm profitability and welfare in very interesting ways. Table 3 .. These figures are obtained by referring to the table of prices and profits, and using the correspond- Table 3 Price regime Optimal price Optimal profit level Table 4 Price regime Optimal price Optimal profit level . The profits under each of the price regimes are summarized in Table 4 .. Ž . Ž . Ž . ii always dominates iii , since ii represents the optimum in this interval, and is hence at least as good as the values of the objective at the boundaries. Ž . Ž . Ž . C 1y d r2 F h F 1r 3 y 2 d : The profits under each of the price regimes are summarized in Table 5 .. Ž . The proof here is trivial. ii represents the optiwŽ Ž .. Ž mal solution to maximizing p 1 y pr 1 y d q h .x Ž . y p , the profit function under price regime 2. i Ž . and iii represent the values of this function at Ž . Ž . p s h and p s h 1 y d , respectively; evidently, ii Ž . Ž . is at least as good as i and iii. The profits under each of the price regimes are summarized in Table 6 . Table 5 Price regime Optimal price Optimal profit level -1 y d r 3 y 3d q d , which Ž . Ž . Ž .Ž is less than 1r 3 y 2 d . Hence, ii r iii which are . identical in this case dominates in the specified Ž . Ž . region. E h G 1r2 1y d : The profits under each of the price regimes are summarized in Table 7 .. Ž .. iii is evidently dominant, as it represents the Ž . global optimum of p 1 y p , which is the highest possible profits the firm can make for any value of h. This completes the proof.

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


CSS-like Constructions of Asymmetric Quantum Codes Abstract-Asymmetric quantum error-correcting codes (AQCs) may offer some advantage over their symmetric counterparts by providing better error-correction for the more frequent error types. The well-known CSS construction of q-ary AQCs is extended by removing the Fq-linearity requirement as well as the limitation on the type of inner product used. The proposed constructions are called CSS-like constructions and utilize pairs of nested subfield linear codes under one of the Euclidean, trace Euclidean, Hermitian, and trace Hermitian inner products.After establishing some theoretical foundations, bestperforming CSS-like AQCs are constructed. Combining some constructions of nested pairs of classical codes and linear programming, many optimal and good pure q-ary CSS-like codes for q ∈ {2, 3, 4, 5, 7, 8, 9} up to reasonable lengths are found. In many instances, removing the Fq-linearity and using alternative inner products give us pure AQCs with improved parameters than relying solely on the standard CSS construction.

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